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: - First import into Fedora Date: Sat, 20 Jun 2026 04:39:08 GMT Message-ID: <178193034895.1.11002434606896186186.rpms-soci-d275e621b594@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: update-to-4.1.4 X-Git-Rev: d275e621b5946683cf01eb1e7baaad6fc2a7802e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc29jaQpCcmFuY2gg OiB1cGRhdGUtdG8tNC4xLjQKQ29tbWl0IDogZDI3NWU2MjFiNTk0NjY4M2NmMDFlYjFlN2JhYWFk NmZjMmE3ODAyZQpBdXRob3IgOiBEZW5pcyBBcm5hdWQgPGRlbmlzYXJuYXVkQGZlZG9yYXByb2pl Y3Qub3JnPgpEYXRlICAgOiAyMDA5LTA1LTA0VDIxOjU2OjExKzAwOjAwClN0YXRzICA6ICs2MDU2 Mi8tMCBpbiA2IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcv cnBtcy9zb2NpL2MvZDI3NWU2MjFiNTk0NjY4M2NmMDFlYjFlN2JhYWFkNmZjMmE3ODAyZT9icmFu Y2g9dXBkYXRlLXRvLTQuMS40CgpMb2c6Ci0gRmlyc3QgaW1wb3J0IGludG8gRmVkb3JhCgotLS0K ZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8uY3ZzaWdub3JlCmluZGV4IGU2OWRlMjkuLjlhZjQx YTMgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBA Citzb2NpLTMuMC4wLnRhci5negoKZGlmZiAtLWdpdCBhL2ltcG9ydC5sb2cgYi9pbXBvcnQubG9n Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMzFjNzIKLS0tIC9kZXYvbnVs bAorKysgYi9pbXBvcnQubG9nCkBAIC0wLDAgKzEgQEAKK3NvY2ktM18wXzAtNl9mYzEwOkhFQUQ6 c29jaS0zLjAuMC02LmZjMTAuc3JjLnJwbToxMjQxNDczOTE1CgpkaWZmIC0tZ2l0IGEvc29jaS0z LjAuMC1maXgtZ2NjNDMtY29tcGF0aWJpbGl0eS5wYXRjaCBiL3NvY2ktMy4wLjAtZml4LWdjYzQz LWNvbXBhdGliaWxpdHkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZTMzOGM0MQotLS0gL2Rldi9udWxsCisrKyBiL3NvY2ktMy4wLjAtZml4LWdjYzQzLWNvbXBhdGli aWxpdHkucGF0Y2gKQEAgLTAsMCArMSw0NyBAQAorZGlmZiAtdSAtciBzb2NpLTMuMC4wX3JlZi9z cmMvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggc29jaS0zLjAuMF93b3JraW5nL3NyYy9iYWNrZW5k cy9teXNxbC9jb21tb24uaAorLS0tIHNvY2ktMy4wLjBfcmVmL3NyYy9iYWNrZW5kcy9teXNxbC9j b21tb24uaCAgMjAwOC0wNy0wMyAwOToyMjo1Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMu MC4wX3dvcmtpbmcvc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oICAgICAgMjAwOS0wMy0yNiAx NTozMzozMy4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMCw2ICsxMCw3IEBACisKKyAjaW5jbHVkZSA8 c3N0cmVhbT4KKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorKyNpbmNsdWRlIDxjdGltZT4KKwor IG5hbWVzcGFjZSBzb2NpCisgeworZGlmZiAtdSAtciBzb2NpLTMuMC4wX3JlZi9zcmMvYmFja2Vu ZHMvbXlzcWwvc2Vzc2lvbi5jcHAgc29jaS0zLjAuMF93b3JraW5nL3NyYy9iYWNrZW5kcy9teXNx bC9zZXNzaW9uLmNwcAorLS0tIHNvY2ktMy4wLjBfcmVmL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNz aW9uLmNwcCAgICAgICAyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIHNv Y2ktMy4wLjBfd29ya2luZy9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgICAyMDA5LTAz LTI2IDE1OjM0OjUwLjAwMDAwMDAwMCArMDEwMAorQEAgLTExLDcgKzExLDggQEAKKyAjaW5jbHVk ZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjZXJybm8+CisgI2luY2x1ZGUgPGNpc282NDY+CistCisr I2luY2x1ZGUgPGNzdGRsaWI+CisrI2luY2x1ZGUgPGNsaW1pdHM+CisKKyAjaWZkZWYgX01TQ19W RVIKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQorZGlmZiAtdSAtciBzb2NpLTMuMC4w X3JlZi9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4w X3dvcmtpbmcvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0tLSBz b2NpLTMuMC4wX3JlZi9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCAg ICAyMDA4LTA1LTMwIDEzOjMzOjQ1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfd29y a2luZy9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCAgICAgICAgMjAw OS0wMy0yNiAxNTozNDowOS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMiw2ICsxMiw4IEBACisgI2lu Y2x1ZGUgImNvbW1vbi5oIgorICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxjYXNzZXJ0 PgorKyNpbmNsdWRlIDxjdGltZT4KKysjaW5jbHVkZSA8Y3N0cmluZz4KKworICNpZmRlZiBfTVND X1ZFUgorICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQzNTUpCitkaWZmIC11IC1yIHNvY2ktMy4w LjBfcmVmL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBf d29ya2luZy9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorLS0tIHNvY2kt My4wLjBfcmVmL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwICAgICAgIDIw MDgtMDUtMTUgMTU6NTg6MzguMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF93b3JraW5n L3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwICAgMjAwOS0wMy0yNiAxNToz MzoxNC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMyw2ICsxMyw3IEBACisgI2luY2x1ZGUgPGNpc282 NDY+CisgI2luY2x1ZGUgPGxpbWl0cz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KKysjaW5jbHVkZSA8 Y3RpbWU+CisKKyAjaWZkZWYgX01TQ19WRVIKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1 KQoKZGlmZiAtLWdpdCBhL3NvY2ktMy4wLjAtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0 eS5wYXRjaCBiL3NvY2ktMy4wLjAtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzMxZmY1Ci0tLSAvZGV2L251 bGwKKysrIGIvc29jaS0zLjAuMC1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNo CkBAIC0wLDAgKzEsNjAyMTggQEAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2Fs Lm00IHNvY2ktMy4wLjBfdHJlcDMwMC9hY2xvY2FsLm00CistLS0gc29jaS0zLjAuMF80LXBhY2sv YWNsb2NhbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2kt My4wLjBfdHJlcDMwMC9hY2xvY2FsLm00CTIwMDktMDUtMDMgMDA6MjA6MzMuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDc1MTIgQEAKKysjIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGFj bG9jYWwgMS4xMC4xIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwKKysjIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs CisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQ QVJUSUNVTEFSIFBVUlBPU0UuCisrCisrbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwK KysgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0p XSlkbmwKKyttNF9pZihBQ19BVVRPQ09ORl9WRVJTSU9OLCBbMi42M10sLAorK1ttNF93YXJuaW5n KFt0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42My4KKytZb3UgaGF2ZSBh bm90aGVyIHZlcnNpb24gb2YgYXV0b2NvbmYuICBJdCBtYXkgd29yaywgYnV0IGlzIG5vdCBndWFy YW50ZWVkIHRvLgorK0lmIHlvdSBoYXZlIHByb2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5l cmF0ZSB0aGUgYnVpbGQgc3lzdGVtIGVudGlyZWx5LgorK1RvIGRvIHNvLCB1c2UgdGhlIHByb2Nl ZHVyZSBkb2N1bWVudGVkIGJ5IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgYGF1dG9yZWNvbmYnLl0p XSkKKysKKysjIGxpYnRvb2wubTQgLSBDb25maWd1cmUgbGlidG9vbCBmb3IgdGhlIGhvc3Qgc3lz dGVtLiAtKi1BdXRvY29uZi0qLQorKworKyMgc2VyaWFsIDUyIEFDX1BST0dfTElCVE9PTAorKwor KworKyMgQUNfUFJPVklERV9JRkVMU0UoTUFDUk8tTkFNRSwgSUYtUFJPVklERUQsIElGLU5PVC1Q Uk9WSURFRCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBJZiB0aGlzIG1hY3JvIGlzIG5vdCBkZWZpbmVkIGJ5IEF1dG9j b25mLCBkZWZpbmUgaXQgaGVyZS4KKyttNF9pZmRlZihbQUNfUFJPVklERV9JRkVMU0VdLAorKyAg ICAgICAgIFtdLAorKyAgICAgICAgIFttNF9kZWZpbmUoW0FDX1BST1ZJREVfSUZFTFNFXSwKKysJ ICAgICAgICAgW200X2lmZGVmKFtBQ19QUk9WSURFXyQxXSwKKysJCSAgICAgICAgICAgWyQyXSwg WyQzXSldKV0pCisrCisrCisrIyBBQ19QUk9HX0xJQlRPT0wKKysjIC0tLS0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtBQ19QUk9HX0xJQlRPT0xdLAorK1tBQ19SRVFVSVJFKFtfQUNfUFJPR19MSUJU T09MXSlkbmwKKytkbmwgSWYgQUNfUFJPR19DWFggaGFzIGFscmVhZHkgYmVlbiBleHBhbmRlZCwg cnVuIEFDX0xJQlRPT0xfQ1hYCisrZG5sIGltbWVkaWF0ZWx5LCBvdGhlcndpc2UsIGhvb2sgaXQg aW4gYXQgdGhlIGVuZCBvZiBBQ19QUk9HX0NYWC4KKysgIEFDX1BST1ZJREVfSUZFTFNFKFtBQ19Q Uk9HX0NYWF0sCisrICAgIFtBQ19MSUJUT09MX0NYWF0sCisrICAgIFtkZWZpbmUoW0FDX1BST0df Q1hYXSwgZGVmbihbQUNfUFJPR19DWFhdKVtBQ19MSUJUT09MX0NYWAorKyAgXSldKQorK2RubCBB bmQgYSBzaW1pbGFyIHNldHVwIGZvciBGb3J0cmFuIDc3IHN1cHBvcnQKKysgIEFDX1BST1ZJREVf SUZFTFNFKFtBQ19QUk9HX0Y3N10sCisrICAgIFtBQ19MSUJUT09MX0Y3N10sCisrICAgIFtkZWZp bmUoW0FDX1BST0dfRjc3XSwgZGVmbihbQUNfUFJPR19GNzddKVtBQ19MSUJUT09MX0Y3NworK10p XSkKKysKKytkbmwgUXVvdGUgQV1bTV9QUk9HX0dDSiBzbyB0aGF0IGFjbG9jYWwgZG9lc24ndCBi cmluZyBpdCBpbiBuZWVkbGVzc2x5LgorK2RubCBJZiBlaXRoZXIgQUNfUFJPR19HQ0ogb3IgQV1b TV9QUk9HX0dDSiBoYXZlIGFscmVhZHkgYmVlbiBleHBhbmRlZCwgcnVuCisrZG5sIEFDX0xJQlRP T0xfR0NKIGltbWVkaWF0ZWx5LCBvdGhlcndpc2UsIGhvb2sgaXQgaW4gYXQgdGhlIGVuZCBvZiBi b3RoLgorKyAgQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfR0NKXSwKKysgICAgW0FDX0xJQlRP T0xfR0NKXSwKKysgICAgW0FDX1BST1ZJREVfSUZFTFNFKFtBXVtNX1BST0dfR0NKXSwKKysgICAg ICBbQUNfTElCVE9PTF9HQ0pdLAorKyAgICAgIFtBQ19QUk9WSURFX0lGRUxTRShbTFRfQUNfUFJP R19HQ0pdLAorKwlbQUNfTElCVE9PTF9HQ0pdLAorKyAgICAgIFtpZmRlZihbQUNfUFJPR19HQ0pd LAorKwkgICAgIFtkZWZpbmUoW0FDX1BST0dfR0NKXSwgZGVmbihbQUNfUFJPR19HQ0pdKVtBQ19M SUJUT09MX0dDSl0pXSkKKysgICAgICAgaWZkZWYoW0FdW01fUFJPR19HQ0pdLAorKwkgICAgIFtk ZWZpbmUoW0FdW01fUFJPR19HQ0pdLCBkZWZuKFtBXVtNX1BST0dfR0NKXSlbQUNfTElCVE9PTF9H Q0pdKV0pCisrICAgICAgIGlmZGVmKFtMVF9BQ19QUk9HX0dDSl0sCisrCSAgICAgW2RlZmluZShb TFRfQUNfUFJPR19HQ0pdLAorKwkJZGVmbihbTFRfQUNfUFJPR19HQ0pdKVtBQ19MSUJUT09MX0dD Sl0pXSldKV0pCisrXSldKSMgQUNfUFJPR19MSUJUT09MCisrCisrCisrIyBfQUNfUFJPR19MSUJU T09MCisrIyAtLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19BQ19QUk9HX0xJQlRPT0xdLAor K1tBQ19SRVFVSVJFKFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKKytBQ19CRUZPUkUoWyQwXSxbQUNf TElCVE9PTF9DWFhdKWRubAorK0FDX0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX0Y3N10pZG5sCisr QUNfQkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfR0NKXSlkbmwKKysKKysjIFRoaXMgY2FuIGJlIHVz ZWQgdG8gcmVidWlsZCBsaWJ0b29sIHdoZW4gbmVlZGVkCisrTElCVE9PTF9ERVBTPSIkYWNfYXV4 X2Rpci9sdG1haW4uc2giCisrCisrIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KKytMSUJU T09MPSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKKytBQ19TVUJTVChMSUJUT09M KWRubAorKworKyMgUHJldmVudCBtdWx0aXBsZSBleHBhbnNpb24KKytkZWZpbmUoW0FDX1BST0df TElCVE9PTF0sIFtdKQorK10pIyBfQUNfUFJPR19MSUJUT09MCisrCisrCisrIyBBQ19MSUJUT09M X1NFVFVQCisrIyAtLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfU0VUVVBd LAorK1tBQ19QUkVSRVEoMi41MClkbmwKKytBQ19SRVFVSVJFKFtBQ19FTkFCTEVfU0hBUkVEXSlk bmwKKytBQ19SRVFVSVJFKFtBQ19FTkFCTEVfU1RBVElDXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19F TkFCTEVfRkFTVF9JTlNUQUxMXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0p ZG5sCisrQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKKytBQ19SRVFVSVJFKFtB Q19QUk9HX0NDXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0xEXSlkbmwKKytBQ19SRVFVSVJF KFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFHXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX05NXSlk bmwKKysKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0xOX1NdKWRubAorK0FDX1JFUVVJUkUoW0FDX0RF UExJQlNfQ0hFQ0tfTUVUSE9EXSlkbmwKKysjIEF1dG9jb25mIDIuMTMncyBBQ19PQkpFWFQgYW5k IEFDX0VYRUVYVCBtYWNyb3Mgb25seSB3b3JrcyBmb3IgQyBjb21waWxlcnMhCisrQUNfUkVRVUlS RShbQUNfT0JKRVhUXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19FWEVFWFRdKWRubAorK2RubAorK0FD X0xJQlRPT0xfU1lTX01BWF9DTURfTEVOCisrQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9Q SVBFCisrQUNfTElCVE9PTF9PQkpESVIKKysKKytBQ19SRVFVSVJFKFtfTFRfQUNfU1lTX0NPTVBJ TEVSXSlkbmwKKytfTFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFTSAorKworK2Nhc2UgJGhvc3Rfb3Mg aW4KKythaXgzKikKKysgICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0ND IGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQorKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUg Q09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCisrICAjIHZh bmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCisrICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3Nl dH0iICE9IFhzZXQ7IHRoZW4KKysgICAgQ09MTEVDVF9OQU1FUz0KKysgICAgZXhwb3J0IENPTExF Q1RfTkFNRVMKKysgIGZpCisrICA7OworK2VzYWMKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhh dCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRh Y2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3Ry aW5ncy4KKytYc2VkPSdzZWQgLWUgMXMvXlgvLycKKytbc2VkX3F1b3RlX3N1YnN0PSdzL1woW1xc IlxcYCRcXFxcXVwpL1xcXDEvZyddCisrCisrIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1 b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCisrW2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtcXCJc XGBcXFxcXVwpL1xcXDEvZyddCisrCisrIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFu c2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxlIGluIGEKKysjIGRvdWJsZV9xdW90ZV9z dWJzdCdlZCBzdHJpbmcuCisrZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xc XFxcXCQvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9i YmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKKytub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycK KysKKysjIENvbnN0YW50czoKKytybT0icm0gLWYiCisrCisrIyBHbG9iYWwgdmFyaWFibGVzOgor K2RlZmF1bHRfb2ZpbGU9bGlidG9vbAorK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCisrCisrIyBBbGwg a25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAo ZXhjZXB0IE1TVkMsCisrIyB3aGljaCBuZWVkcyAnLmxpYicpLgorK2xpYmV4dD1hCisrbHRtYWlu PSIkYWNfYXV4X2Rpci9sdG1haW4uc2giCisrb2ZpbGU9IiRkZWZhdWx0X29maWxlIgorK3dpdGhf Z251X2xkPSIkbHRfY3ZfcHJvZ19nbnVfbGQiCisrCisrQUNfQ0hFQ0tfVE9PTChBUiwgYXIsIGZh bHNlKQorK0FDX0NIRUNLX1RPT0woUkFOTElCLCByYW5saWIsIDopCisrQUNfQ0hFQ0tfVE9PTChT VFJJUCwgc3RyaXAsIDopCisrCisrb2xkX0NDPSIkQ0MiCisrb2xkX0NGTEFHUz0iJENGTEFHUyIK KysKKysjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcworK3Rlc3QgLXog IiRBUiIgJiYgQVI9YXIKKyt0ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQorK3Rl c3QgLXogIiRBUyIgJiYgQVM9YXMKKyt0ZXN0IC16ICIkQ0MiICYmIENDPWNjCisrdGVzdCAteiAi JExUQ0MiICYmIExUQ0M9JENDCisrdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZM QUdTCisrdGVzdCAteiAiJERMTFRPT0wiICYmIERMTFRPT0w9ZGxsdG9vbAorK3Rlc3QgLXogIiRM RCIgJiYgTEQ9bGQKKyt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCisrdGVzdCAteiAi JE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUKKyt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCisr dGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1Q PW9iamR1bXAKKyt0ZXN0IC16ICIkUkFOTElCIiAmJiBSQU5MSUI9OgorK3Rlc3QgLXogIiRTVFJJ UCIgJiYgU1RSSVA9OgorK3Rlc3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4dD1vCisrCisr IyBEZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMu Cisrb2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMnCisrb2xk X3Bvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xkbGliJworK29sZF9wb3N0dW5pbnN0YWxs X2NtZHM9CisrCisraWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgIG9wZW5ic2QqKQorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5z dGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgorKyAgICA7OworKyAgKikKKysgICAgb2xk X3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxp YiIKKysgICAgOzsKKysgIGVzYWMKKysgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9j bWRzflwkUkFOTElCIFwkb2xkbGliIgorK2ZpCisrCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGls ZXJdKQorKworKyMgT25seSBwZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNr IG1ldGhvZCByZXF1aXJlcyBpdAorK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrZmls ZV9tYWdpYyopCisrICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0 aGVuCisrICAgIEFDX1BBVEhfTUFHSUMKKysgIGZpCisrICA7OworK2VzYWMKKysKKytfTFRfUkVR VUlSRURfREFSV0lOX0NIRUNLUworKworK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19MSUJUT09MX0RM T1BFTl0sIGVuYWJsZV9kbG9wZW49eWVzLCBlbmFibGVfZGxvcGVuPW5vKQorK0FDX1BST1ZJREVf SUZFTFNFKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sCisrZW5hYmxlX3dpbjMyX2RsbD15ZXMsIGVu YWJsZV93aW4zMl9kbGw9bm8pCisrCisrQUNfQVJHX0VOQUJMRShbbGlidG9vbC1sb2NrXSwKKysg ICAgW0FDX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbGlidG9vbC1sb2NrXSwKKysJW2F2b2lkIGxv Y2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcyldKV0pCisrdGVzdCAieCRlbmFibGVf bGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMKKysKKytBQ19B UkdfV0lUSChbcGljXSwKKysgICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtcGljXSwKKysJW3Ry eSB0byB1c2Ugb25seSBQSUMvbm9uLVBJQyBvYmplY3RzIEA8OkBkZWZhdWx0PXVzZSBib3RoQDo+ QF0pXSwKKysgICAgW3BpY19tb2RlPSIkd2l0aHZhbCJdLAorKyAgICBbcGljX21vZGU9ZGVmYXVs dF0pCisrdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1kZWZhdWx0CisrCisrIyBVc2Ug QyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKKyt0 YWduYW1lPQorK0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJRworK19MVF9BQ19UQUdDT05GSUcKKytd KSMgQUNfTElCVE9PTF9TRVRVUAorKworKworKyMgX0xUX0FDX1NZU19DT01QSUxFUgorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSwKKytbQUNf UkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVj aWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGls ZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFH Uy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3VtZW50cy4KKytjb21waWxlcj0kQ0MKKytdKSMgX0xUX0FDX1NZU19DT01QSUxFUgorKworKwor KyMgX0xUX0NDX0JBU0VOQU1FKENDKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2FsY3Vs YXRlIGNjX2Jhc2VuYW1lLiAgU2tpcCBrbm93biBjb21waWxlciB3cmFwcGVycyBhbmQgY3Jvc3Mt cHJlZml4LgorK0FDX0RFRlVOKFtfTFRfQ0NfQkFTRU5BTUVdLAorK1tmb3IgY2NfdGVtcCBpbiAk MSIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltbXFwvXV1jb21w aWxlIHwgY2NhY2hlIHwgKltbXFwvXV1jY2FjaGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1tcXC9d XWRpc3RjYyB8IHB1cmlmeSB8ICpbW1xcL11dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAg ICAqKSBicmVhazs7CisrICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190 ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorK10pCisr CisrCisrIyBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgQ2hlY2sgZm9yIGNvbXBpbGVyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5n cyB3aXRoCisrIyB0aGUgc2ltcGxlIGNvbXBpbGVyIHRlc3QgY29kZS4KKytBQ19ERUZVTihbX0xU X0NPTVBJTEVSX0JPSUxFUlBMQVRFXSwKKytbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRu bAorK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2NvbXBpbGUiIDI+ JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRybSBjb25mdGVzdCoK KytdKSMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrCisrCisrIyBfTFRfTElOS0VSX0JPSUxF UlBMQVRFCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayBmb3IgbGlua2VyIGJv aWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCisrIyB0aGUgc2ltcGxlIGxpbmsgdGVz dCBjb2RlLgorK0FDX0RFRlVOKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwKKytbQUNfUkVRVUlS RShbTFRfQUNfUFJPR19TRURdKWRubAorK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAor K2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZh bCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29u ZnRlc3QuZXJyCisrX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKysk cm0gLXIgY29uZnRlc3QqCisrXSkjIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysKKysjIF9MVF9S RVFVSVJFRF9EQVJXSU5fQ0hFQ0tTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg Q2hlY2sgZm9yIHNvbWUgdGhpbmdzIG9uIGRhcndpbgorK0FDX0RFRlVOKFtfTFRfUkVRVUlSRURf REFSV0lOX0NIRUNLU10sWworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBk YXJ3aW4qKQorKyAgICBBQ19DSEVDS19UT09MKFtEU1lNVVRJTF0sIFtkc3ltdXRpbF0sIFs6XSkK KysgICAgQUNfQ0hFQ0tfVE9PTChbTk1FRElUXSwgW25tZWRpdF0sIFs6XSkKKysKKysgICAgQUNf Q0FDSEVfQ0hFQ0soW2ZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZ10sW2x0X2N2X2FwcGxl X2NjX3NpbmdsZV9tb2RdLAorKyAgICAgIFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5vCisr ICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorKyAgICMgQnkgZGVm YXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlk ZQorKyAgICMgYnkgZWl0aGVyIHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExUX01V TFRJX01PRFVMRQorKyAgICMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRp bmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysgICAjIGxpbmsgZmxhZ3MuCisrICAgZWNobyAiaW50 IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKKysgICAkTFRDQyAkTFRDRkxBR1Mg JExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAorKyAgICAgLWR5bmFtaWNsaWIgJHt3bH0t c2luZ2xlX21vZHVsZSBjb25mdGVzdC5jCisrICAgaWYgdGVzdCAtZiBsaWJjb25mdGVzdC5keWxp YjsgdGhlbgorKyAgICAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKKysgICAgIHJtIC1y ZiBsaWJjb25mdGVzdC5keWxpYioKKysgICBmaQorKyAgIHJtIGNvbmZ0ZXN0LmMKKysgICAgICBm aV0pCisrICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5r ZXIgZmxhZ10sCisrICAgICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdF0sCisrICAg ICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubworKyAgICAgIHNhdmVfTERGTEFH Uz0kTERGTEFHUworKyAgICAgIGVjaG8gIl9tYWluIiA+IGNvbmZ0ZXN0LnN5bQorKyAgICAgIExE RkxBR1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0LGNvbmZ0ZXN0LnN5bSIK KysgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisrICAgW2x0 X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXNdLAorKyAgIFtsdF9jdl9sZF9leHBvcnRl ZF9zeW1ib2xzX2xpc3Q9bm9dKQorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrICAgIF0p CisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bWzAxMjNd XSkKKysgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9 c3VwcHJlc3MnIDs7CisrICAgIGRhcndpbjEuKikKKysgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZp bmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycg OzsKKysgICAgZGFyd2luKikKKysgICAgICAjIGlmIHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwg dGhlIGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCisrICAgICAgIyB0byB0aGUgT1MgdmVyc2lv biwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKKysgICAgICAjIHRhcmdldCBk ZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KKysgICAgICBjYXNlICR7TUFDT1NY X0RFUExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGluCisrICAgMTAuMCwqODYqLWRhcndpbjgq fDEwLjAsKi1kYXJ3aW5bWzkxXV0qKQorKyAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7 d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OworKyAgIDEwLltbMDEyXV0qKQor KyAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9 LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAgIDEwLiopCisrICAgICBfbHRfZGFyX2Fs bG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Cisr ICAgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVf Y2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0n JHNpbmdsZV9tb2R1bGUnCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRl ZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1z PScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0t c3ltYm9scy5leHBzeW0nCisrICAgIGVsc2UKKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSJ+ JE5NRURJVCAtcyBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gXCR7 bGlifSIKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiI7IHRoZW4KKysg ICAgICBfbHRfZHN5bXV0aWw9In4kRFNZTVVUSUwgXCRsaWIgfHwgOiIKKysgICAgZWxzZQorKyAg ICAgIF9sdF9kc3ltdXRpbD0KKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytdKQorKworKyMg X0xUX0FDX1NZU19MSUJQQVRIX0FJWAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgTGlu a3MgYSBtaW5pbWFsIHByb2dyYW0gYW5kIGNoZWNrcyB0aGUgZXhlY3V0YWJsZQorKyMgZm9yIHRo ZSBzeXN0ZW0gZGVmYXVsdCBoYXJkY29kZWQgbGlicmFyeSBwYXRoLiBJbiBtb3N0IGNhc2VzLAor KyMgdGhpcyBpcyAvdXNyL2xpYjovbGliLCBidXQgd2hlbiB0aGUgTVBJIGNvbXBpbGVycyBhcmUg dXNlZAorKyMgdGhlIGxvY2F0aW9uIG9mIHRoZSBjb21tdW5pY2F0aW9uIGFuZCBNUEkgbGlicyBh cmUgaW5jbHVkZWQgdG9vLgorKyMgSWYgd2UgZG9uJ3QgZmluZCBhbnl0aGluZywgdXNlIHRoZSBk ZWZhdWx0IGxpYnJhcnkgcGF0aCBhY2NvcmRpbmcKKysjIHRvIHRoZSBhaXggbGQgbWFudWFsLgor K0FDX0RFRlVOKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlYXSwKKytbQUNfUkVRVUlSRShbTFRfQUNf UFJPR19TRURdKWRubAorK0FDX0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSxbCisrbHRfYWl4 X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAv IHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4 X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAt biAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0 IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7 IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9k ZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2ZpXSxbXSkKKytp ZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGli IjsgZmkKKytdKSMgX0xUX0FDX1NZU19MSUJQQVRIX0FJWAorKworKworKyMgX0xUX0FDX1NIRUxM X0lOSVQoQVJHKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtfTFRfQUNf U0hFTExfSU5JVF0sCisrW2lmZGVmKFtBQ19ESVZFUlNJT05fTk9USUNFXSwKKysJICAgICBbQUNf RElWRVJUX1BVU0goQUNfRElWRVJTSU9OX05PVElDRSldLAorKwkgW0FDX0RJVkVSVF9QVVNIKE5P VElDRSldKQorKyQxCisrQUNfRElWRVJUX1BPUAorK10pIyBfTFRfQUNfU0hFTExfSU5JVAorKwor KworKyMgX0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0gKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBBZGQgc29tZSBjb2RlIHRvIHRoZSBzdGFydCBvZiB0aGUgZ2VuZXJhdGVkIGNv bmZpZ3VyZSBzY3JpcHQgd2hpY2gKKysjIHdpbGwgZmluZCBhbiBlY2hvIGNvbW1hbmQgd2hpY2gg ZG9lc24ndCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCisrQUNfREVGVU4oW19MVF9BQ19QUk9HX0VD SE9fQkFDS1NMQVNIXSwKKytbX0xUX0FDX1NIRUxMX0lOSVQoWworKyMgQ2hlY2sgdGhhdCB3ZSBh cmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KKytTSEVMTD0ke0NPTkZJR19TSEVM TC0vYmluL3NofQorKworK2Nhc2UgWCRFQ0hPIGluCisrWCotLWZhbGxiYWNrLWVjaG8pCisrICAj IFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1h a2UpLgorKyAgRUNITz1gZWNobyAiJEVDSE8iIHwgc2VkICdzLFxcXFxcWyRdXFxbJF0wLCdbJF0w JywnYAorKyAgOzsKKytlc2FjCisrCisrZWNobz0ke0VDSE8tZWNob30KKytpZiB0ZXN0ICJYWyRd MSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KKysgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxh ZywgYW5kIGNvbnRpbnVlLgorKyAgc2hpZnQKKytlbGlmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxi YWNrLWVjaG87IHRoZW4KKysgICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBi ZSBsZWZ0IG92ZXIKKysgIDoKKytlbGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9udWxs YCIgPSAnWFx0JyA7IHRoZW4KKysgICMgWWlwcGVlLCAkZWNobyB3b3JrcyEKKysgIDoKKytlbHNl CisrICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwuCisrICBleGVjICRTSEVMTCAi WyRdMCIgLS1uby1yZWV4ZWMgJHsxKyJbJF1AIn0KKytmaQorKworK2lmIHRlc3QgIlhbJF0xIiA9 IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KKysgICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCisrICBz aGlmdAorKyAgY2F0IDw8RU9GCisrWyRdKgorK0VPRgorKyAgZXhpdCAwCisrZmkKKysKKysjIFRo ZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRv IHN0ZG91dAorKyMgaWYgQ0RQQVRIIGlzIHNldC4KKysodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxs IDI+JjEgJiYgdW5zZXQgQ0RQQVRICisrCisraWYgdGVzdCAteiAiJEVDSE8iOyB0aGVuCisraWYg dGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCisrIyBmaW5kIGEg c3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29w ZSB3aXRoIGl0CisrICBmb3IgY21kIGluICdzZWQgNTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAi JyAnc2VkIDEwcSAiWyRdMCInICdzZWQgMnEgIlskXTAiJyAnZWNobyB0ZXN0JzsgZG8KKysgICAg IyBleHBlY3RlZCBzaXplczogbGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVz LCAuLi4KKysgICAgaWYgKGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGApIDI+L2Rldi9udWxs ICYmCisrICAgICAgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGAgJiYKKysgICAgICAgKHRl c3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251 bGwKKysgICAgdGhlbgorKyAgICAgIGJyZWFrCisrICAgIGZpCisrICBkb25lCisrZmkKKysKKytp ZiB0ZXN0ICJYYCgkZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICBlY2hv X3Rlc3Rpbmdfc3RyaW5nPWAoJGVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxg ICYmCisrICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJp bmciOyB0aGVuCisrICA6CisrZWxzZQorKyAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRh bCBVbml4IGRlZmF1bHQgZWNobyBwcm9ncmFtcyB1bnF1b3RlCisrICAjIGJhY2tzbGFzaGVzLiAg VGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCisrICAj ICAgZWNobyAiJHNvbWV0aGluZyIgfCBzZWQgJ3MvXFwvXFxcXC9nJworKyAgIworKyAgIyBTbywg Zmlyc3Qgd2UgbG9vayBmb3IgYSB3b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgorKwor KyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgZGlyIGlu ICRQQVRIIC91c3IvdWNiOyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgaWYgKHRl c3QgLWYgJGRpci9lY2hvIHx8IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4dCkgJiYKKysgICAg ICAgdGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgorKyAg ICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIp IDI+L2Rldi9udWxsYCAmJgorKyAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0g IlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysgICAgICBlY2hvPSIkZGlyL2VjaG8iCisrICAg ICAgYnJlYWsKKysgICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorKworKyAg aWYgdGVzdCAiWCRlY2hvIiA9IFhlY2hvOyB0aGVuCisrICAgICMgV2UgZGlkbid0IGZpbmQgYSBi ZXR0ZXIgZWNobywgc28gbG9vayBmb3IgYWx0ZXJuYXRpdmVzLgorKyAgICBpZiB0ZXN0ICJYYChw cmludCAtciAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgZWNob190ZXN0 aW5nX3N0cmluZz1gKHByaW50IC1yICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAm JgorKyAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0 cmluZyI7IHRoZW4KKysgICAgICAjIFRoaXMgc2hlbGwgaGFzIGEgYnVpbHRpbiBwcmludCAtciB0 aGF0IGRvZXMgdGhlIHRyaWNrLgorKyAgICAgIGVjaG89J3ByaW50IC1yJworKyAgICBlbGlmICh0 ZXN0IC1mIC9iaW4va3NoIHx8IHRlc3QgLWYgL2Jpbi9rc2gkYWNfZXhlZXh0KSAmJgorKwkgdGVz dCAiWCRDT05GSUdfU0hFTEwiICE9IFgvYmluL2tzaDsgdGhlbgorKyAgICAgICMgSWYgd2UgaGF2 ZSBrc2gsIHRyeSBydW5uaW5nIGNvbmZpZ3VyZSBhZ2FpbiB3aXRoIGl0LgorKyAgICAgIE9SSUdJ TkFMX0NPTkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorKyAgICAgIGV4cG9ydCBP UklHSU5BTF9DT05GSUdfU0hFTEwKKysgICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gKKysgICAg ICBleHBvcnQgQ09ORklHX1NIRUxMCisrICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICJbJF0wIiAt LW5vLXJlZXhlYyAkezErIlskXUAifQorKyAgICBlbHNlCisrICAgICAgIyBUcnkgdXNpbmcgcHJp bnRmLgorKyAgICAgIGVjaG89J3ByaW50ZiAlc1xuJworKyAgICAgIGlmIHRlc3QgIlhgKCRlY2hv ICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgorKwkgZWNob190ZXN0aW5nX3N0cmluZz1g KCRlY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkgdGVzdCAiWCRl Y2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSMgQ29v bCwgcHJpbnRmIHdvcmtzCisrCToKKysgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgk T1JJR0lOQUxfQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2 L251bGxgICYmCisrCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgor KwkgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIg LS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkg ICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRo ZW4KKysJQ09ORklHX1NIRUxMPSRPUklHSU5BTF9DT05GSUdfU0hFTEwKKysJZXhwb3J0IENPTkZJ R19TSEVMTAorKwlTSEVMTD0iJENPTkZJR19TSEVMTCIKKysJZXhwb3J0IFNIRUxMCisrCWVjaG89 IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCisrICAgICAgZWxpZiBlY2hvX3Rl c3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcp IDI+L2Rldi9udWxsYCAmJgorKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hc dCcgJiYKKysJICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0t ZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKKysJICAg dGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVu CisrCWVjaG89IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCisrICAgICAgZWxz ZQorKwkjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0cmluZy4uLgorKwlwcmV2PToKKysKKysJZm9y IGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJxICJbJF0wIicgJ3NlZCAxMHEgIlskXTAiJyAnc2Vk IDIwcSAiWyRdMCInICdzZWQgNTBxICJbJF0wIic7IGRvCisrCSAgaWYgKHRlc3QgIlgkZWNob190 ZXN0X3N0cmluZyIgPSAiWGBldmFsICRjbWRgIikgMj4vZGV2L251bGwKKysJICB0aGVuCisrCSAg ICBicmVhaworKwkgIGZpCisrCSAgcHJldj0iJGNtZCIKKysJZG9uZQorKworKwlpZiB0ZXN0ICIk cHJldiIgIT0gJ3NlZCA1MHEgIlskXTAiJzsgdGhlbgorKwkgIGVjaG9fdGVzdF9zdHJpbmc9YGV2 YWwgJHByZXZgCisrCSAgZXhwb3J0IGVjaG9fdGVzdF9zdHJpbmcKKysJICBleGVjICR7T1JJR0lO QUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiWyRdMCIgJHsxKyJbJF1A In0KKysJZWxzZQorKwkgICMgT29wcy4gIFdlIGxvc3QgY29tcGxldGVseSwgc28ganVzdCBzdGlj ayB3aXRoIGVjaG8uCisrCSAgZWNobz1lY2hvCisrCWZpCisrICAgICAgZmkKKysgICAgZmkKKysg IGZpCisrZmkKKytmaQorKworKyMgQ29weSBlY2hvIGFuZCBxdW90ZSB0aGUgY29weSBzdWl0YWJs eSBmb3IgcGFzc2luZyB0byBsaWJ0b29sIGZyb20KKysjIHRoZSBNYWtlZmlsZSwgaW5zdGVhZCBv ZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRlci4KKytFQ0hPPSRlY2hv CisraWYgdGVzdCAiWCRFQ0hPIiA9ICJYJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNo byI7IHRoZW4KKysgICBFQ0hPPSIkQ09ORklHX1NIRUxMIFxcXCRcWyRdMCAtLWZhbGxiYWNrLWVj aG8iCisrZmkKKysKKytBQ19TVUJTVChFQ0hPKQorK10pXSkjIF9MVF9BQ19QUk9HX0VDSE9fQkFD S1NMQVNICisrCisrCisrIyBfTFRfQUNfTE9DSworKyMgLS0tLS0tLS0tLS0KKytBQ19ERUZVTihb X0xUX0FDX0xPQ0tdLAorK1tBQ19BUkdfRU5BQkxFKFtsaWJ0b29sLWxvY2tdLAorKyAgICBbQUNf SEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1saWJ0b29sLWxvY2tdLAorKwlbYXZvaWQgbG9ja2luZyAo bWlnaHQgYnJlYWsgcGFyYWxsZWwgYnVpbGRzKV0pXSkKKyt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29s X2xvY2siICE9IHhubyAmJiBlbmFibGVfbGlidG9vbF9sb2NrPXllcworKworKyMgU29tZSBmbGFn cyBuZWVkIHRvIGJlIHByb3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29v ZAorKyMgbGlidG9vbCBzdXBwb3J0LgorK2Nhc2UgJGhvc3QgaW4KKytpYTY0LSotaHB1eCopCisr ICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsnID4g Y29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysg ICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorKyAgICAqRUxG LTMyKikKKysgICAgICBIUFVYX0lBNjRfTU9ERT0iMzIiCisrICAgICAgOzsKKysgICAgKkVMRi02 NCopCisrICAgICAgSFBVWF9JQTY0X01PREU9IjY0IgorKyAgICAgIDs7CisrICAgIGVzYWMKKysg IGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKyotKi1pcml4NiopCisrICAjIEZpbmQg b3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdbI11saW5lIF9fb2xpbmVfXyAi Y29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiBBQ19UUllfRVZBTChhY19jb21w aWxlKTsgdGhlbgorKyAgIGlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4K KysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorKyAgICAq MzItYml0KikKKysgICAgICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJzbWlwIgorKyAgICAgIDs7Cisr ICAgICpOMzIqKQorKyAgICAgIExEPSIke0xELWxkfSAtbWVsZjMyYm1pcG4zMiIKKysgICAgICA7 OworKyAgICAqNjQtYml0KikKKysgICAgICBMRD0iJHtMRC1sZH0gLW1lbGY2NGJtaXAiCisrICAg ICAgOzsKKysgICAgZXNhYworKyAgIGVsc2UKKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25m dGVzdC4kYWNfb2JqZXh0YCBpbgorKyAgICAqMzItYml0KikKKysgICAgICBMRD0iJHtMRC1sZH0g LTMyIgorKyAgICAgIDs7CisrICAgICpOMzIqKQorKyAgICAgIExEPSIke0xELWxkfSAtbjMyIgor KyAgICAgIDs7CisrICAgICo2NC1iaXQqKQorKyAgICAgIExEPSIke0xELWxkfSAtNjQiCisrICAg ICAgOzsKKysgICAgZXNhYworKyAgIGZpCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAg OzsKKysKKyt4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51eCp8cHBjKi0qbGludXgq fHBvd2VycGMqLSpsaW51eCp8IFwKKytzMzkwKi0qbGludXgqfHNwYXJjKi0qbGludXgqKQorKyAg IyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50IGk7JyA+IGNv bmZ0ZXN0LiRhY19leHQKKysgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisrICAg IGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KKysgICAgKjMyLWJpdCopCisrICAg ICAgY2FzZSAkaG9zdCBpbgorKyAgICAgICAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKyAgICAg ICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJzZCIKKysgICAgICAgICAgOzsKKysgICAg ICAgIHg4Nl82NC0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYi CisrICAgICAgICAgIDs7CisrICAgICAgICBwcGM2NC0qbGludXgqfHBvd2VycGM2NC0qbGludXgq KQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysgICAgICAgICAg OzsKKysgICAgICAgIHMzOTB4LSpsaW51eCopCisrICAgICAgICAgIExEPSIke0xELWxkfSAtbSBl bGZfczM5MCIKKysgICAgICAgICAgOzsKKysgICAgICAgIHNwYXJjNjQtKmxpbnV4KikKKysgICAg ICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgorKyAgICAgICAgICA7OworKyAgICAg IGVzYWMKKysgICAgICA7OworKyAgICAqNjQtYml0KikKKysgICAgICBsaWJzdWZmPTY0CisrICAg ICAgY2FzZSAkaG9zdCBpbgorKyAgICAgICAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKyAgICAg ICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NF9mYnNkIgorKyAgICAgICAgICA7OworKyAg ICAgICAgeDg2XzY0LSpsaW51eCopCisrICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2 XzY0IgorKyAgICAgICAgICA7OworKyAgICAgICAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51 eCopCisrICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGY2NHBwYyIKKysgICAgICAgICAgOzsK KysgICAgICAgIHMzOTAqLSpsaW51eCopCisrICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGY2 NF9zMzkwIgorKyAgICAgICAgICA7OworKyAgICAgICAgc3BhcmMqLSpsaW51eCopCisrICAgICAg ICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIKKysgICAgICAgICAgOzsKKysgICAgICBl c2FjCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysg IDs7CisrCisrKi0qLXNjbzMuMnY1KikKKysgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVl ZCAtYmVsZiB0byBnZXQgZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KKysgIFNBVkVfQ0ZMQUdTPSIk Q0ZMQUdTIgorKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1iZWxmIgorKyAgQUNfQ0FDSEVfQ0hFQ0soW3do ZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGZdLCBsdF9jdl9jY19uZWVkc19iZWxmLAor KyAgICBbQUNfTEFOR19QVVNIKEMpCisrICAgICBBQ19UUllfTElOSyhbXSxbXSxbbHRfY3ZfY2Nf bmVlZHNfYmVsZj15ZXNdLFtsdF9jdl9jY19uZWVkc19iZWxmPW5vXSkKKysgICAgIEFDX0xBTkdf UE9QXSkKKysgIGlmIHRlc3QgeCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVu CisrICAgICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBu byBuZWVkIGZvciAtYmVsZgorKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKKysgIGZpCisrICA7 OworK3NwYXJjKi0qc29sYXJpcyopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNp bmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VW QUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5v YCBpbgorKyAgICAqNjQtYml0KikKKysgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgor KyAgICAgIHllcyopIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKKysgICAgICAqKQor KyAgICAgICAgaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgTEQ9IiR7TEQtbGR9IC02NCIKKysJZmkKKysJOzsKKysg ICAgICBlc2FjCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVz dCoKKysgIDs7CisrCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX0xJQlRPT0xfV0lOMzJfRExMXSwK KytbKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqKQorKyAgQUNfQ0hFQ0tfVE9P TChETExUT09MLCBkbGx0b29sLCBmYWxzZSkKKysgIEFDX0NIRUNLX1RPT0woQVMsIGFzLCBmYWxz ZSkKKysgIEFDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCisrICA7OworKyAg XSkKKytlc2FjCisrCisrbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCisrCisrXSkj IF9MVF9BQ19MT0NLCisrCisrCisrIyBBQ19MSUJUT09MX0NPTVBJTEVSX09QVElPTihNRVNTQUdF LCBWQVJJQUJMRS1OQU1FLCBGTEFHUywKKysjCQlbT1VUUFVULUZJTEVdLCBbQUNUSU9OLVNVQ0NF U1NdLCBbQUNUSU9OLUZBSUxVUkVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciB0aGUg Z2l2ZW4gY29tcGlsZXIgb3B0aW9uIHdvcmtzCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElM RVJfT1BUSU9OXSwKKytbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKQorK0FDX0NBQ0hFX0NI RUNLKFskMV0sIFskMl0sCisrICBbJDI9bm8KKysgIGlmZWxzZShbJDRdLCAsIFthY19vdXRmaWxl PWNvbmZ0ZXN0LiRhY19vYmpleHRdLCBbYWNfb3V0ZmlsZT0kNF0pCisrICAgZWNobyAiJGx0X3Np bXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgbHRfY29tcGls ZXJfZmxhZz0iJDMiCisrICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRo ZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKysgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRh aW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorKyAgICMgTm90ZSB0aGF0ICRh Y19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMK KysgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hv dWxkIHdvcmsgY29ycmVjdGx5LgorKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBh IHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCisrICAgbHRfY29tcGlsZT1gZWNobyAi JGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2Nv bXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2Nv bXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisr ICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19N RVNTQUdFX0xPR19GRCkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQor KyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19G RAorKyAgIGVjaG8gIiRhc19tZTpfX29saW5lX186IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVT U0FHRV9MT0dfRkQKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0 ZmlsZSI7IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9y ZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVy ZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorKyAgICAgJGVjaG8g IlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0 LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3Qu ZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhw IGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgICQyPXllcworKyAgICAgZmkK KysgICBmaQorKyAgICRybSBjb25mdGVzdCoKKytdKQorKworK2lmIHRlc3QgeCJbJF0kMiIgPSB4 eWVzOyB0aGVuCisrICAgIGlmZWxzZShbJDVdLCAsIDosIFskNV0pCisrZWxzZQorKyAgICBpZmVs c2UoWyQ2XSwgLCA6LCBbJDZdKQorK2ZpCisrXSkjIEFDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9O CisrCisrCisrIyBBQ19MSUJUT09MX0xJTktFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFN RSwgRkxBR1MsCisrIyAgICAgICAgICAgICAgICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwg W0FDVElPTi1GQUlMVVJFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gY29t cGlsZXIgb3B0aW9uIHdvcmtzCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0s CisrW0FDX1JFUVVJUkUoW0xUX0FDX1BST0dfU0VEXSlkbmwKKytBQ19DQUNIRV9DSEVDSyhbJDFd LCBbJDJdLAorKyAgWyQyPW5vCisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBMREZM QUdTPSIkTERGTEFHUyAkMyIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+ IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikg JiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBj YW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAg ICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNv bmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25m aWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JkFTX01FU1NBR0VfTE9HX0ZECisr ICAgICAgICRlY2hvICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9k JyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3Qu ZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3Qu ZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICAkMj15ZXMKKysgICAgICAgZmkKKysgICAg IGVsc2UKKysgICAgICAgJDI9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJHJtIC1yIGNvbmZ0 ZXN0KgorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrXSkKKysKKytpZiB0ZXN0IHgiWyRd JDIiID0geHllczsgdGhlbgorKyAgICBpZmVsc2UoWyQ0XSwgLCA6LCBbJDRdKQorK2Vsc2UKKysg ICAgaWZlbHNlKFskNV0sICwgOiwgWyQ1XSkKKytmaQorK10pIyBBQ19MSUJUT09MX0xJTktFUl9P UFRJT04KKysKKysKKysjIEFDX0xJQlRPT0xfU1lTX01BWF9DTURfTEVOCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0s CisrWyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwor K0FDX01TR19DSEVDS0lORyhbdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1 bWVudHNdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAorKyAg aT0wCisrICB0ZXN0c3RyaW5nPSJBQkNEIgorKworKyAgY2FzZSAkYnVpbGRfb3MgaW4KKysgIG1z ZG9zZGpncHAqKQorKyAgICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5 IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCisrICAgICMgKGFueSBzaW5nbGUgYXJndW1l bnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KKysgICAgIyBk dXJpbmcgZ2xvYiBleHBhbnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0 IG9mIHRoaXMKKysgICAgIyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUu CisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmln aHQKKysgICAgOzsKKysKKysgIGdudSopCisrICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVz dCBpcyBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBpcworKyAgICAjIG5vIGxpbWl0IHRvIHRo ZSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0b29sIHdpbGwg aW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPS0xOworKyAgICA7OworKworKyAgY3lnd2luKiB8IG1pbmd3KikKKysgICAgIyBPbiBX aW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKKysg ICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxs eS4KKysgICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRp dGFza2luZywKKysgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZl biB0aG91Z2ggd2l0aCBwYXRpZW5jZQorKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2Vl ZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCisrICAgICMgSW5zdGVhZCwgbGV0 J3MganVzdCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQorKyAg ICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgor KyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIGFtaWdhb3Mq KQorKyAgICAjIE9uIEFtaWdhT1Mgd2l0aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBs aXRlcmFsbHkuCisrICAgICMgU28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUg bGVuZ3RoIG9mIDgxOTIuCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworKyAgICA7 OworKworKyAgbmV0YnNkKiB8IGZyZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29u Zmx5KikKKysgICAgIyBUaGlzIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0 LiAgTGlrZWx5IGZ1cnRoZXIuCisrICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCisr ICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhg CisrICAgIGVsaWYgdGVzdCAteCAvdXNyL3NiaW4vc3lzY3RsOyB0aGVuCisrICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWAvdXNyL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAorKyAgICBl bHNlCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQg Zm9yIGFsbCBCU0RzCisrICAgIGZpCisrICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCisrICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRg CisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVu IFwqIDNgCisrICAgIDs7CisrCisrICBpbnRlcml4KikKKysgICAgIyBXZSBrbm93IHRoZSB2YWx1 ZSAyNjIxNDQgYW5kIGhhcmRjb2RlIGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCisr ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xOTY2MDgKKysgICAgOzsKKysKKysgIG9zZiopCisr ICAgICMgRHIuIEhhbnMgRWtrZWhhcmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBw YW5pYyBydW5uaW5nIGNvbmZpZ3VyZQorKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVj X2Rpc2FibGVfYXJnX2xpbWl0IGlzIDEgb24gVHJ1NjQuIEl0IGlzIG5vdAorKyAgICAjIG5pY2Ug dG8gY2F1c2Uga2VybmVsIHBhbmljcyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgorKyAg ICAjIEZpcnN0IHNldCBhIHJlYXNvbmFibGUgZGVmYXVsdC4KKysgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPTE2Mzg0CisrICAgICMKKysgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRo ZW4KKysgICAgICBjYXNlIGAvc2Jpbi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJn X2xpbWl0YCBpbgorKyAgICAgICAgKjEqKSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKKysg ICAgICBlc2FjCisrICAgIGZpCisrICAgIDs7CisrICBzY28zLjJ2NSopCisrICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj0xMDI0MDAKKysgICAgOzsKKysgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2 NC4ydXcyKikKKysgICAga2FyZ21heD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5l IDI+L2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KKysgICAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbWyAJXV0vLydg CisrICAgIGVsc2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKKysgICAgZmkK KysgICAgOzsKKysgICopCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJH X01BWCkgMj4gL2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRf bGVuIjsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lz X21heF9jbWRfbGVuIFwvIDRgCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRs dF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKKysgICAgZWxzZQorKyAgICAgIFNIRUxMPSR7U0hF TEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19CisrICAgICAgd2hpbGUgKHRlc3QgIlgiYCRTSEVM TCBbJF0wIC0tZmFsbGJhY2stZWNobyAiWCR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorKwkg ICAgICAgPSAiWFgkdGVzdHN0cmluZyIpID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICBuZXdf cmVzdWx0PWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYCAmJgorKwkgICAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49JG5ld19yZXN1bHQgJiYKKysJICAgICAgdGVzdCAkaSAhPSAxNyAj IDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCisrICAgICAgZG8KKysgICAgICAgIGk9YGV4cHIgJGkg KyAxYAorKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAg ZG9uZQorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZl dHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbiBtYXNzaXZlCisrICAg ICAgIyBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0g dG8gdGhlIGxpbmtlci4KKysgICAgICAjIEl0IGFwcGVhcnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVz YWJsZSB2YWx1ZS4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5 c19tYXhfY21kX2xlbiBcLyAyYAorKyAgICBmaQorKyAgICA7OworKyAgZXNhYworK10pCisraWYg dGVzdCAtbiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIDsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVCgk bHRfY3Zfc3lzX21heF9jbWRfbGVuKQorK2Vsc2UKKysgIEFDX01TR19SRVNVTFQobm9uZSkKKytm aQorK10pIyBBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTgorKworKworKyMgX0xUX0FDX0NIRUNL X0RMRkNOCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbX0xUX0FDX0NIRUNLX0RM RkNOXSwKKytbQUNfQ0hFQ0tfSEVBREVSUyhkbGZjbi5oKWRubAorK10pIyBfTFRfQUNfQ0hFQ0tf RExGQ04KKysKKysKKysjIF9MVF9BQ19UUllfRExPUEVOX1NFTEYgKEFDVElPTi1JRi1UUlVFLCBB Q1RJT04tSUYtVFJVRS1XLVVTQ09SRSwKKysjICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNU SU9OLUlGLUZBTFNFLCBBQ1RJT04tSUYtQ1JPU1MtQ09NUElMSU5HKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrQUNfREVGVU4oW19MVF9BQ19UUllfRExPUEVOX1NFTEZdLAorK1tBQ19SRVFVSVJFKFtfTFRf QUNfQ0hFQ0tfRExGQ05dKWRubAorK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0 aGVuIDoKKysgIFskNF0KKytlbHNlCisrICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9 MTsgbHRfZGxuZWVkX3VzY29yZT0yCisrICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgorKyAgY2F0 ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgorK1sjbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSIK KysjaW5jbHVkZSAiY29uZmRlZnMuaCIKKysKKysjaWYgSEFWRV9ETEZDTl9ICisrI2luY2x1ZGUg PGRsZmNuLmg+CisrI2VuZGlmCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrI2lmZGVmIFJU TERfR0xPQkFMCisrIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAorKyNlbHNlCisr IyAgaWZkZWYgRExfR0xPQkFMCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAor KyMgIGVsc2UKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAorKyMgIGVuZGlmCisrI2VuZGlm CisrCisrLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNv bW1hbmQgbGluZSBpZiB3ZQorKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBw bGF0Zm9ybS4gKi8KKysjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKKysjICBpZmRlZiBSVExEX0xB WlkKKysjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKKysjICBlbHNlCisr IyAgICBpZmRlZiBETF9MQVpZCisrIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9M QVpZCisrIyAgICBlbHNlCisrIyAgICAgIGlmZGVmIFJUTERfTk9XCisrIyAgICAgICAgZGVmaW5l IExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKKysjICAgICAgZWxzZQorKyMgICAgICAgIGlmZGVm IERMX05PVworKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCisrIyAg ICAgICAgZWxzZQorKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAorKyMgICAg ICAgIGVuZGlmCisrIyAgICAgIGVuZGlmCisrIyAgICBlbmRpZgorKyMgIGVuZGlmCisrI2VuZGlm CisrCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCk7Cisr I2VuZGlmCisrCisrdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQorK2ludCBtYWluICgpCisrewor KyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7 CisrICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsKKysKKysgIGlmIChzZWxmKQorKyAgICB7 CisrICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxu b191c2NvcmU7CisrICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMg PSAkbHRfZGxuZWVkX3VzY29yZTsKKysgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KKysgICAg fQorKyAgZWxzZQorKyAgICBwdXRzIChkbGVycm9yICgpKTsKKysKKysgICAgZXhpdCAoc3RhdHVz KTsKKyt9XQorK0VPRgorKyAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25m dGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICAoLi9jb25mdGVzdDsgZXhp dDsgKSA+JkFTX01FU1NBR0VfTE9HX0ZEIDI+L2Rldi9udWxsCisrICAgIGx0X3N0YXR1cz0kPwor KyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCisrICAgICAgeCRsdF9kbG5vX3VzY29yZSkgJDEgOzsK KysgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpICQyIDs7CisrICAgICAgeCRsdF9kbHVua25vd258 eCopICQzIDs7CisrICAgIGVzYWMKKysgIGVsc2UgOgorKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxl ZAorKyAgICAkMworKyAgZmkKKytmaQorK3JtIC1mciBjb25mdGVzdCoKKytdKSMgX0xUX0FDX1RS WV9ETE9QRU5fU0VMRgorKworKworKyMgQUNfTElCVE9PTF9ETE9QRU5fU0VMRgorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwKKytb QUNfUkVRVUlSRShbX0xUX0FDX0NIRUNLX0RMRkNOXSlkbmwKKytpZiB0ZXN0ICJ4JGVuYWJsZV9k bG9wZW4iICE9IHh5ZXM7IHRoZW4KKysgIGVuYWJsZV9kbG9wZW49dW5rbm93bgorKyAgZW5hYmxl X2Rsb3Blbl9zZWxmPXVua25vd24KKysgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93 bgorK2Vsc2UKKysgIGx0X2N2X2Rsb3Blbj1ubworKyAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrCisr ICBjYXNlICRob3N0X29zIGluCisrICBiZW9zKikKKysgICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2Fk ZF9vbiIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXll cworKyAgICA7OworKworKyAgbWluZ3cqIHwgcHczMiopCisrICAgIGx0X2N2X2Rsb3Blbj0iTG9h ZExpYnJhcnkiCisrICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorKyAgIDs7CisrCisrICBjeWd3aW4q KQorKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Cisr ICAgOzsKKysKKysgIGRhcndpbiopCisrICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVk IHRvIGxpbmsgYWdhaW5zdCBpdAorKyAgICBBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCisr CQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sWworKyAg ICBsdF9jdl9kbG9wZW49ImR5bGQiCisrICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorKyAgICBsdF9j dl9kbG9wZW5fc2VsZj15ZXMKKysgICAgXSkKKysgICA7OworKworKyAgKikKKysgICAgQUNfQ0hF Q0tfRlVOQyhbc2hsX2xvYWRdLAorKwkgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIl0sCisrICAg ICAgW0FDX0NIRUNLX0xJQihbZGxkXSwgW3NobF9sb2FkXSwKKysJICAgIFtsdF9jdl9kbG9wZW49 InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiXSwKKysJW0FDX0NIRUNLX0ZVTkMo W2Rsb3Blbl0sCisrCSAgICAgIFtsdF9jdl9kbG9wZW49ImRsb3BlbiJdLAorKwkgIFtBQ19DSEVD S19MSUIoW2RsXSwgW2Rsb3Blbl0sCisrCQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rs b3Blbl9saWJzPSItbGRsIl0sCisrCSAgICBbQUNfQ0hFQ0tfTElCKFtzdmxkXSwgW2Rsb3Blbl0s CisrCQkgIFtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCJd LAorKwkgICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBbZGxkX2xpbmtdLAorKwkJICAgIFtsdF9j dl9kbG9wZW49ImRsZF9saW5rIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiXSkKKysJICAgICAg XSkKKysJICAgIF0pCisrCSAgXSkKKysJXSkKKysgICAgICBdKQorKyAgICA7OworKyAgZXNhYwor KworKyAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgorKyAgICBlbmFibGVf ZGxvcGVuPXllcworKyAgZWxzZQorKyAgICBlbmFibGVfZGxvcGVuPW5vCisrICBmaQorKworKyAg Y2FzZSAkbHRfY3ZfZGxvcGVuIGluCisrICBkbG9wZW4pCisrICAgIHNhdmVfQ1BQRkxBR1M9IiRD UFBGTEFHUyIKKysgICAgdGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIgPSB4eWVzICYmIENQ UEZMQUdTPSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNOX0giCisrCisrICAgIHNhdmVfTERGTEFHUz0i JExERkxBR1MiCisrICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwk TERGTEFHUyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIKKysKKysgICAgc2F2ZV9MSUJTPSIk TElCUyIKKysgICAgTElCUz0iJGx0X2N2X2Rsb3Blbl9saWJzICRMSUJTIgorKworKyAgICBBQ19D QUNIRV9DSEVDSyhbd2hldGhlciBhIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZdLAorKwkgIGx0 X2N2X2Rsb3Blbl9zZWxmLCBbZG5sCisrCSAgX0xUX0FDX1RSWV9ETE9QRU5fU0VMRigKKysJICAg IGx0X2N2X2Rsb3Blbl9zZWxmPXllcywgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzLAorKwkgICAgbHRf Y3ZfZGxvcGVuX3NlbGY9bm8sIGx0X2N2X2Rsb3Blbl9zZWxmPWNyb3NzKQorKyAgICBdKQorKwor KyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KKysgICAgICB3 bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0X3Byb2df Y29tcGlsZXJfc3RhdGljXCIKKysgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBhIHN0YXRp Y2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZdLAorKyAgICAJICBsdF9jdl9k bG9wZW5fc2VsZl9zdGF0aWMsIFtkbmwKKysJICBfTFRfQUNfVFJZX0RMT1BFTl9TRUxGKAorKwkg ICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGlj PXllcywKKysJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubywgIGx0X2N2X2Rsb3Blbl9z ZWxmX3N0YXRpYz1jcm9zcykKKysgICAgICBdKQorKyAgICBmaQorKworKyAgICBDUFBGTEFHUz0i JHNhdmVfQ1BQRkxBR1MiCisrICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrICAgIExJQlM9 IiRzYXZlX0xJQlMiCisrICAgIDs7CisrICBlc2FjCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW5f c2VsZiBpbgorKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxm IDs7CisrICAqKSBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93biA7OworKyAgZXNhYworKworKyAg Y2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIGluCisrICB5ZXN8bm8pIGVuYWJsZV9kbG9w ZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyA7OworKyAgKikgZW5hYmxl X2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duIDs7CisrICBlc2FjCisrZmkKKytdKSMgQUNfTElC VE9PTF9ETE9QRU5fU0VMRgorKworKworKyMgQUNfTElCVE9PTF9QUk9HX0NDX0NfTyhbVEFHTkFN RV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNl ZSBpZiBvcHRpb25zIC1jIGFuZCAtbyBhcmUgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydGVkIGJ5IGNv bXBpbGVyCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DQ19DX09dLAorK1tBQ19SRVFVSVJF KFtMVF9BQ19QUk9HX1NFRF0pZG5sCisrQUNfUkVRVUlSRShbX0xUX0FDX1NZU19DT01QSUxFUl0p ZG5sCisrQUNfQ0FDSEVfQ0hFQ0soW2lmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRh Y19vYmpleHRdLAorKyAgW19MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQx KV0sCisrICBbX0xUX0FDX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPW5vCisr ICAgJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29uZnRlc3QKKysgICBj ZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1v IG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhl ciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9y ZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAg IyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNo ZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBz byB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgbHRfY29tcGlsZT1gZWNobyAi JGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2Nv bXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2Nv bXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisr ICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19N RVNTQUdFX0xPR19GRCkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVy cikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NB R0VfTE9HX0ZECisrICAgZWNobyAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIg PiZBU19NRVNTQUdFX0xPR19GRAorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMg b3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIg Y2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysg ICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJGVjaG8gIlgkX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3Qu ZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2Nv bmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBv dXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAg ICBfTFRfQUNfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCisrICAgICBm aQorKyAgIGZpCisrICAgY2htb2QgdSt3IC4gMj4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAkcm0g Y29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBv dXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3Qg LWQgb3V0L2lpX2ZpbGVzICYmICRybSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmls ZXMKKysgICAkcm0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICBybWRpciBjb25m dGVzdAorKyAgICRybSBjb25mdGVzdCoKKytdKQorK10pIyBBQ19MSUJUT09MX1BST0dfQ0NfQ19P CisrCisrCisrIyBBQ19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1MoW1RBR05BTUVdKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNl ZSBpZiB3ZSBjYW4gZG8gaGFyZCBsaW5rcyB0byBsb2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVkCisr QUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10sCisrW0FDX1JFUVVJUkUo W19MVF9BQ19MT0NLXSlkbmwKKysKKytoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCisraWYgdGVzdCAi JF9MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSIgPSBubyAmJiB0ZXN0 ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KKysgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFs dWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgorKyAgQUNfTVNHX0NIRUNLSU5H KFtpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3NdKQorKyAgaGFyZF9saW5rcz15ZXMKKysg ICRybSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAm JiBoYXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5hCisrICBsbiBjb25mdGVzdC5hIGNv bmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0 LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgQUNfTVNHX1JFU1VMVChbJGhhcmRf bGlua3NdKQorKyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KKysgICAgQUNfTVNH X1dBUk4oW2AkQ0MnIGRvZXMgbm90IHN1cHBvcnQgYC1jIC1vJywgc28gYG1ha2UgLWonIG1heSBi ZSB1bnNhZmVdKQorKyAgICBuZWVkX2xvY2tzPXdhcm4KKysgIGZpCisrZWxzZQorKyAgbmVlZF9s b2Nrcz1ubworK2ZpCisrXSkjIEFDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLUworKworKwor KyMgQUNfTElCVE9PTF9PQkpESVIKKysjIC0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0FD X0xJQlRPT0xfT0JKRElSXSwKKytbQUNfQ0FDSEVfQ0hFQ0soW2ZvciBvYmpkaXJdLCBbbHRfY3Zf b2JqZGlyXSwKKytbcm0gLWYgLmxpYnMgMj4vZGV2L251bGwKKytta2RpciAubGlicyAyPi9kZXYv bnVsbAorK2lmIHRlc3QgLWQgLmxpYnM7IHRoZW4KKysgIGx0X2N2X29iamRpcj0ubGlicworK2Vs c2UKKysgICMgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0IGJlZ2luIHdpdGgg YSBkb3QuCisrICBsdF9jdl9vYmpkaXI9X2xpYnMKKytmaQorK3JtZGlyIC5saWJzIDI+L2Rldi9u dWxsXSkKKytvYmpkaXI9JGx0X2N2X29iamRpcgorK10pIyBBQ19MSUJUT09MX09CSkRJUgorKwor KworKyMgQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEgoW1RBR05BTUVdKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sg aGFyZGNvZGluZyBhdHRyaWJ1dGVzLgorK0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfTERfSEFS RENPREVfTElCUEFUSF0sCisrW0FDX01TR19DSEVDS0lORyhbaG93IHRvIGhhcmRjb2RlIGxpYnJh cnkgcGF0aHMgaW50byBwcm9ncmFtc10pCisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24s ICQxKT0KKytpZiB0ZXN0IC1uICIkX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSkiIHx8IFwKKysgICB0ZXN0IC1uICIkX0xUX0FDX1RBR1ZBUihydW5wYXRoX3Zhciwg JDEpIiB8fCBcCisrICAgdGVzdCAiWCRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywg JDEpIiA9ICJYeWVzIiA7IHRoZW4KKysKKysgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1leGlzdGFu dCBkaXJlY3Rvcmllcy4KKysgIGlmIHRlc3QgIiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpIiAhPSBubyAmJgorKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQg aGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQorKyAgICAgIyBoYXZlIHRvIHJlbGluaywg b3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQorKyAgICAg IyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9u ZQorKyAgICAgIyMgdGVzdCAiJF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zhciwg JDEpIiAhPSBubyAmJgorKyAgICAgdGVzdCAiJF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNf TCwgJDEpIiAhPSBubzsgdGhlbgorKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUg dGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgorKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2Rl X2FjdGlvbiwgJDEpPXJlbGluaworKyAgZWxzZQorKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQg aGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgorKyAgICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPWltbWVkaWF0ZQorKyAgZmkKKytlbHNl CisrICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBo YXJkY29kZSBleGlzdGluZworKyAgIyBkaXJlY3Rvcmllcy4KKysgIF9MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfYWN0aW9uLCAkMSk9dW5zdXBwb3J0ZWQKKytmaQorK0FDX01TR19SRVNVTFQoWyRfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpXSkKKysKKytpZiB0ZXN0ICIkX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKSIgPSByZWxpbms7IHRoZW4KKysgICMgRmFzdCBpbnN0 YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworK2Vs aWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKKysgICAgIHRl c3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlz IG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKKytmaQorK10p IyBBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSAorKworKworKyMgQUNfTElCVE9P TF9TWVNfTElCX1NUUklQCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihb QUNfTElCVE9PTF9TWVNfTElCX1NUUklQXSwKKytbc3RyaXBsaWI9Cisrb2xkX3N0cmlwbGliPQor K0FDX01TR19DSEVDS0lORyhbd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxl XSkKKytpZiB0ZXN0IC1uICIkU1RSSVAiICYmICRTVFJJUCAtViAyPiYxIHwgZ3JlcCAiR05VIHN0 cmlwIiA+L2Rldi9udWxsOyB0aGVuCisrICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRf c3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgorKyAgdGVzdCAteiAiJHN0cmlwbGliIiAm JiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCisrICBBQ19NU0dfUkVTVUxUKFt5 ZXNdKQorK2Vsc2UKKysjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBp c24ndCByZWFsbHkgZ29vZCBlbm91Z2gKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICBkYXJ3aW4q KQorKyAgICAgICBpZiB0ZXN0IC1uICIkU1RSSVAiIDsgdGhlbgorKyAgICAgICAgIHN0cmlwbGli PSIkU1RSSVAgLXgiCisrICAgICAgICAgb2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCisrICAgICAg ICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAgICAgZWxzZQorKyAgQUNfTVNHX1JFU1VMVChb bm9dKQorK2ZpCisrICAgICAgIDs7CisrICAgKikKKysgIEFDX01TR19SRVNVTFQoW25vXSkKKysg ICAgOzsKKysgIGVzYWMKKytmaQorK10pIyBBQ19MSUJUT09MX1NZU19MSUJfU1RSSVAKKysKKysK KysjIEFDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgUE9SVE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MK KytBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdLAorK1tBQ19SRVFVSVJF KFtMVF9BQ19QUk9HX1NFRF0pZG5sCisrQUNfTVNHX0NIRUNLSU5HKFtkeW5hbWljIGxpbmtlciBj aGFyYWN0ZXJpc3RpY3NdKQorK2xpYnJhcnlfbmFtZXNfc3BlYz0KKytsaWJuYW1lX3NwZWM9J2xp YiRuYW1lJworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28iCisrcG9zdGluc3RhbGxf Y21kcz0KKytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9CisrZmluaXNoX2V2YWw9 Cisrc2hsaWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgor K3ZlcnNpb25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorK3N5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgorK200X2lmKCQxLFtdLFsK KytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBk YXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7CisrICAgICopIGx0X2F3 a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7CisrICBlc2FjCisrICBsdF9zZWFyY2hfcGF0aF9zcGVj PWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9e bGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAorKyAgaWYgZWNobyAiJGx0X3NlYXJjaF9wYXRo X3NwZWMiIHwgZ3JlcCAnOycgPi9kZXYvbnVsbCA7IHRoZW4KKysgICAgIyBpZiB0aGUgcGF0aCBj b250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgorKyAgICAj IG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAi OiIpIC0gaXQgaXMKKysgICAgIyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRo bmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hvdWxkCisrICAgICMgb2theSBpbiB0aGUgcmVh bCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgorKyAg ICBsdF9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VE IC1lICdzLzsvIC9nJ2AKKysgIGVsc2UKKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAi JGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJg CisrICBmaQorKyAgIyBPaywgbm93IHdlIGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFj ZXMsIHdlIGNhbiBzdGVwIHRocm91Z2ggaXQKKysgICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYg bmVjZXNzYXJ5LgorKyAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9CisrICBsdF9tdWx0aV9v c19kaXI9YCRDQyAkQ1BQRkxBR1MgJENGTEFHUyAkTERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGly ZWN0b3J5IDI+L2Rldi9udWxsYAorKyAgZm9yIGx0X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0 aF9zcGVjOyBkbworKyAgICBpZiB0ZXN0IC1kICIkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2Rp ciI7IHRoZW4KKysgICAgICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9z ZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIgorKyAgICBlbHNl CisrICAgICAgdGVzdCAtZCAiJGx0X3N5c19wYXRoIiAmJiBcCisrCWx0X3RtcF9sdF9zZWFyY2hf cGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgorKyAg ICBmaQorKyAgZG9uZQorKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAkbHRfdG1wX2x0X3Nl YXJjaF9wYXRoX3NwZWMgfCBhd2sgJworK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKKysg IGx0X2Zvbz0iIjsKKysgIGx0X2NvdW50PTA7CisrICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7 IGx0X2ktLSkgeworKyAgICBpZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7CisrICAg ICAgaWYgKCRsdF9pID09ICIuLiIpIHsKKysgICAgICAgIGx0X2NvdW50Kys7CisrICAgICAgfSBl bHNlIHsKKysgICAgICAgIGlmIChsdF9jb3VudCA9PSAwKSB7CisrICAgICAgICAgIGx0X2Zvbz0i LyIgJGx0X2kgbHRfZm9vOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgbHRfY291bnQt LTsKKysgICAgICAgIH0KKysgICAgICB9CisrICAgIH0KKysgIH0KKysgIGlmIChsdF9mb28gIT0g IiIpIHsgbHRfZnJlcVtbbHRfZm9vXV0rKzsgfQorKyAgaWYgKGx0X2ZyZXFbW2x0X2Zvb11dID09 IDEpIHsgcHJpbnQgbHRfZm9vOyB9CisrfSdgCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 YGVjaG8gJGx0X3NlYXJjaF9wYXRoX3NwZWNgCisrZWxzZQorKyAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorK2ZpXSkKKytuZWVkX2xpYl9w cmVmaXg9dW5rbm93bgorK2hhcmRjb2RlX2ludG9fbGlicz1ubworKworKyMgd2hlbiB5b3Ugc2V0 IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVy c2lvbgorKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cworK25lZWRfdmVyc2lv bj11bmtub3duCisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgdmVyc2lvbl90eXBl PWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKKysgIHNobGlicGF0aF92YXI9TElCUEFUSAor KworKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBt YWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgorKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIDs7CisrCisrYWl4W1s0LTldXSopCisrICB2 ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9u PW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0g aWE2NDsgdGhlbgorKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0n CisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisrICAgICMgV2l0 aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUK KysgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQg c3RhcnQgd2l0aAorKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhl IGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGlu dmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25h cHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAg ICBhaXg0IHwgYWl4NC5bWzAxXV0gfCBhaXg0LltbMDFdXS4qKQorKyAgICAgIGlmIHsgZWNobyAn I2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5 NyknCisrCSAgIGVjaG8gJyB5ZXMgJworKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUg LSB8IGdyZXAgeWVzID4gL2Rldi9udWxsOyB0aGVuCisrCToKKysgICAgICBlbHNlCisrCWNhbl9i dWlsZF9zaGFyZWQ9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgIyBB SVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdl IGNhbiBub3QgaGFyZGNvZGUgY29ycmVjdAorKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUu IFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCisrICAgICMgY29sbGVj dDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCisrICAgIGlm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAgICMgSWYg dXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1l Pi5zbworKyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cg dGhhdCB0aGVzZSBhcmUgbm90CisrICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVz LgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBlbHNlCisrICAgICAgIyBXZSBwcmVzZXJ2ZSAu YSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKKysgICAg ICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KKysg ICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUu YScKKysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgICBmaQorKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIGZpCisrICA7 OworKworK2FtaWdhb3MqKQorKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJh cnkgJGxpYm5hbWUuYScKKysgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmll cyBpbiAvc3lzL2xpYnMuCisrICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8q Lml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNl ZCAtZSAnXCcncyVeLiovXChbW14vXV0qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJt IC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYm ICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5f UyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAgOzsKKysK KytiZW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0n CisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJ QlJBUllfUEFUSAorKyAgOzsKKysKKytic2RpW1s0NV1dKikKKysgIHZlcnNpb25fdHlwZT1saW51 eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0n UEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3Iv bGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisr ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwv bGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250 cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAv dXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0 aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikK KysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRf dmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rf b3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKikKKysgICAgbGli cmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKKysgICAgIyBETEwgaXMgaW5zdGFsbGVk IHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcworKyAgICBwb3N0aW5zdGFs bF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KKysgICAgICBkbHBhdGg9YCRT SEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTtlY2hvIFwkZGxu YW1lJ1wnJ2B+CisrICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgorKyAg ICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgorKyAgICAgICRpbnN0YWxs X3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBjaG1vZCBhK3ggXCRk bGRpci8kZGxuYW1lJworKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4m MSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGly L1wkZGxkbGx+CisrICAgICAgICRybSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiopCisr ICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisr ICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcv J2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7 c2hhcmVkX2V4dH0nCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAv bGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgorKyAgICAgIDs7CisrICAgIG1pbmd3KikK KysgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAorKyAgICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1su XV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8 ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKKysgICAgICBpZiBlY2hv ICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IFtncmVwICc7W2MtekMtWl06LycgPi9kZXYv bnVsbF07IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9y bWF0IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVu bmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdp dGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRo ZQorKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRz IHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0 IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3 aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAorKyAgICAgIGVsc2UKKysgICAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VE ICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgICAgICBmaQorKyAgICAgIDs7CisrICAg IHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAn bGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAt ZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ak e3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsK KysKKysgICopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVs ZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAk bGlibmFtZS5saWInCisrICAgIDs7CisrICBlc2FjCisrICBkeW5hbWljX2xpbmtlcj0nV2luMzIg bGQuZXhlJworKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGly ZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCisrICBzaGxpYnBhdGhfdmFyPVBBVEgKKysgIDs7 CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBk eWxkIgorKyAgdmVyc2lvbl90eXBlPWRhcndpbgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBu ZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3ZlcnN1ZmZpeH0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNo YXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4 dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJg JworKyAgbTRfaWYoWyQxXSwgW10sWworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbG9jYWwvbGliIl0pIAorKyAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKwor K2RndXgqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisr ICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90 IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmlu ZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3Jt YXQ7IHRoZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisr ICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91 dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMKKysgIGZpCisrICB2ZXJz aW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysg ICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgIG5lZWRfdmVyc2lvbj1ubwor KyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIGZyZWVic2QtKikKKysg ICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgICBuZWVk X3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisrICBmcmVlYnNkMiopCisrICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLltbMDFdXSog fCBmcmVlYnNkZWxmMy5bWzAxXV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLltb Mi05XV0qIHwgZnJlZWJzZGVsZjMuW1syLTldXSogfCBcCisrICBmcmVlYnNkNC5bWzAtNV1dIHwg ZnJlZWJzZGVsZjQuW1swLTVdXSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkKKysg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkKKysgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSop CisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBz byB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9u cy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVk X3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysgICAgc2hyZXh0 X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZh ciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0ZXN0ICJYJEhQ VVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIK KysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1 eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgIGhwcGEq NjQqKQorKyAgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgK KysgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFy IGlzIHNwZWNpZmllZC4KKysgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKKysg ICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMK KysgICAgIDs7CisrICAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19s aW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisr ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVu YWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYwor KyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBh cmUgbW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgIDs7 CisrCisraW50ZXJpeFtbMy05XV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xp Yl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBk eW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKKysgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraXJpeDUqIHwgaXJp eDYqIHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgbm9uc3RvcHV4Kikg dmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OworKyAgICAqKQorKwlpZiB0ZXN0ICIkbHRfY3ZfcHJv Z19nbnVfbGQiID0geWVzOyB0aGVuCisrCQl2ZXJzaW9uX3R5cGU9bGludXgKKysJZWxzZQorKwkJ dmVyc2lvbl90eXBlPWlyaXgKKysJZmkgOzsKKysgIGVzYWMKKysgIG5lZWRfbGliX3ByZWZpeD1u bworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgaXJpeDUqIHwgbm9uc3Rv cHV4KikKKysgICAgbGlic3VmZj0gc2hsaWJzdWZmPQorKyAgICA7OworKyAgKikKKysgICAgY2Fz ZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBM RAorKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQorKyAg ICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKKysgICAgKi1uMzJ8KiIt bjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKKysgICAgICBsaWJzdWZm PTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKKysgICAgKi02NHwqIi02NCAifCotbWVs ZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCisrICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQg bGlibWFnaWM9NjQtYml0OzsKKysgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1u ZXZlci1tYXRjaDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9 IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCisrICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0 IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KKytsaW51eCpvbGRsZCogfCBsaW51eCph b3V0KiB8IGxpbnV4KmNvZmYqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrIyBU aGlzIG11c3QgYmUgTGludXggRUxGLgorK2xpbnV4KiB8IGsqYnNkKi1nbnUpCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNv bmZpZyAtbiAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9p bnN0YWxsLCB3aGljaCBpcyB1bmFjY2VwdGFibGUuCisrICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUg bmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2luc3RhbGwKKysgICMgYmVmb3JlIHRoaXMgY2FuIGJl IGVuYWJsZWQuCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xp YiR7bGlic3VmZn0iCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xp YnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgorKworKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50 cyB0byB0aGUgc2VhcmNoIHBhdGgKKysgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVu CisrICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNk IC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFz a2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAt ZSAncy8jLiovLzsvXlsgCV0qaHdjYXBbIAldL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89 W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgorKyAg ZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUg c2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBz dXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1pYyBsaW5r ZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisrICAjIG1v c3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlz IGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3 YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlu a2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCisrICA7 OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZp eD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8 IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Ni aW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEu b3V0KSBsZC5zbycKKysgIGVsc2UKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1p Y19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1s aW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKytudG8tcW54KikK KysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3Zl cnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICA7OworKworK29wZW5i c2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBvbGRlciB2ZXJz aW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4K KysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikgbmVl ZF92ZXJzaW9uPXllcyA7OworKyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkX3Zl cnNpb249bm8gIDs7CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcg LW0gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0 IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIk aG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLltbODldXSB8IG9wZW5ic2QyLltbODldXS4q KQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysJOzsKKysgICAgICAqKQorKwlz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrCTs7CisrICAgICAgZXNhYworKyAgZWxz ZQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysK KytvczIqKQorKyAgbGlibmFtZV9zcGVjPSckbmFtZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgor KyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtz aGFyZWRfZXh0fSAkbGlibmFtZS5hJworKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJwor KyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1 KikKKysgIHZlcnNpb25fdHlwZT1vc2YKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xp YiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIK KysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IgorKyAgOzsKKysKKytyZG9zKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK3Nv bGFyaXMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFy ZSBleGVjdXRhYmxlCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsK KysKKytzdW5vczQqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDov dXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysg IG5lZWRfdmVyc2lvbj15ZXMKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNp b25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICAgIHNuaSkKKysgICAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg ICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKKysgICAg ICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAg ICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAg bmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PScvbGliIC91c3IvbGliIC91c3IvY2NzL2xpYicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsK KysKKytzeXN2NCpNUCopCisrICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNp b25fdHlwZT1saW51eAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRf ZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpv cicKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKwor K3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBz eXN2NCp1dzIqKQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiR3 aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScv dXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCisr ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgZWxzZQorKyAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKKysgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc2Nv My4ydjUqKQorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjIC9saWIiCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lv bl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgOzsKKysKKysqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNh YworK0FDX01TR19SRVNVTFQoWyRkeW5hbWljX2xpbmtlcl0pCisrdGVzdCAiJGR5bmFtaWNfbGlu a2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKytBQ19DQUNIRV9WQUwoW2x0X2N2 X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlY10sCisrW2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyJdKQorK3N5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytBQ19DQUNIRV9WQUwoW2x0 X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXSwKKytbbHRfY3Zfc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyJdKQorK3N5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisrCisr dmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhf dmFyIgorK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICB2YXJpYWJsZXNfc2F2ZWRfZm9y X3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01Q SUxFUl9QQVRIIExJQlJBUllfUEFUSCIKKytmaQorK10pIyBBQ19MSUJUT09MX1NZU19EWU5BTUlD X0xJTktFUgorKworKworKyMgX0xUX0FDX1RBR0NPTkZJRworKyMgLS0tLS0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtfTFRfQUNfVEFHQ09ORklHXSwKKytbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19T RURdKWRubAorK0FDX0FSR19XSVRIKFt0YWdzXSwKKysgICAgW0FDX0hFTFBfU1RSSU5HKFstLXdp dGgtdGFnc0A8OkA9VEFHU0A6PkBdLAorKyAgICAgICAgW2luY2x1ZGUgYWRkaXRpb25hbCBjb25m aWd1cmF0aW9ucyBAPDpAYXV0b21hdGljQDo+QF0pXSwKKysgICAgW3RhZ25hbWVzPSIkd2l0aHZh bCJdKQorKworK2lmIHRlc3QgLWYgIiRsdG1haW4iICYmIHRlc3QgLW4gIiR0YWduYW1lcyI7IHRo ZW4KKysgIGlmIHRlc3QgISAtZiAiJHtvZmlsZX0iOyB0aGVuCisrICAgIEFDX01TR19XQVJOKFtv dXRwdXQgZmlsZSBgJG9maWxlJyBkb2VzIG5vdCBleGlzdF0pCisrICBmaQorKworKyAgaWYgdGVz dCAteiAiJExUQ0MiOyB0aGVuCisrICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25maWcg fCBncmVwICdeTFRDQz0nYCIKKysgICAgaWYgdGVzdCAteiAiJExUQ0MiOyB0aGVuCisrICAgICAg QUNfTVNHX1dBUk4oW291dHB1dCBmaWxlIGAkb2ZpbGUnIGRvZXMgbm90IGxvb2sgbGlrZSBhIGxp YnRvb2wgc2NyaXB0XSkKKysgICAgZWxzZQorKyAgICAgIEFDX01TR19XQVJOKFt1c2luZyBgTFRD Qz0kTFRDQycsIGV4dHJhY3RlZCBmcm9tIGAkb2ZpbGUnXSkKKysgICAgZmkKKysgIGZpCisrICBp ZiB0ZXN0IC16ICIkTFRDRkxBR1MiOyB0aGVuCisrICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0g LS1jb25maWcgfCBncmVwICdeTFRDRkxBR1M9J2AiCisrICBmaQorKworKyAgIyBFeHRyYWN0IGxp c3Qgb2YgYXZhaWxhYmxlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBpbiAkb2ZpbGUuCisrICAjIE5v dGUgdGhhdCB0aGlzIGFzc3VtZXMgdGhlIGVudGlyZSBsaXN0IGlzIG9uIG9uZSBsaW5lLgorKyAg YXZhaWxhYmxlX3RhZ3M9YGdyZXAgIl5hdmFpbGFibGVfdGFncz0iICIke29maWxlfSIgfCAkU0VE IC1lICdzL2F2YWlsYWJsZV90YWdzPVwoLiokXCkvXDEvJyAtZSAncy9cIi8vZydgCisrCisrICBs dF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgIGZvciB0 YWduYW1lIGluICR0YWduYW1lczsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICMg Q2hlY2sgd2hldGhlciB0YWduYW1lIGNvbnRhaW5zIG9ubHkgdmFsaWQgY2hhcmFjdGVycworKyAg ICBjYXNlIGAkZWNobyAiWCR0YWduYW1lIiB8ICRYc2VkIC1lICdzOltbLV9BQkNERUZHSElKS0xN Tk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MTIzNDU2Nzg5MCwvXV06Omcn YCBpbgorKyAgICAiIikgOzsKKysgICAgKikgIEFDX01TR19FUlJPUihbaW52YWxpZCB0YWcgbmFt ZTogJHRhZ25hbWVdKQorKwk7OworKyAgICBlc2FjCisrCisrICAgIGlmIGdyZXAgIl4jICMjIyBC RUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lJCIgPCAiJHtvZmlsZX0iID4gL2Rldi9u dWxsCisrICAgIHRoZW4KKysgICAgICBBQ19NU0dfRVJST1IoW3RhZyBuYW1lIFwiJHRhZ25hbWVc IiBhbHJlYWR5IGV4aXN0c10pCisrICAgIGZpCisrCisrICAgICMgVXBkYXRlIHRoZSBsaXN0IG9m IGF2YWlsYWJsZSB0YWdzLgorKyAgICBpZiB0ZXN0IC1uICIkdGFnbmFtZSI7IHRoZW4KKysgICAg ICBlY2hvIGFwcGVuZGluZyBjb25maWd1cmF0aW9uIHRhZyBcIiR0YWduYW1lXCIgdG8gJG9maWxl CisrCisrICAgICAgY2FzZSAkdGFnbmFtZSBpbgorKyAgICAgIENYWCkKKysJaWYgdGVzdCAtbiAi JENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKKysJICAgICggKHRlc3QgIlgkQ1hY IiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251bGwgMj4mMWAgKSB8fAorKwkgICAgKHRlc3Qg IlgkQ1hYIiAhPSAiWGcrKyIpKSkgOyB0aGVuCisrCSAgQUNfTElCVE9PTF9MQU5HX0NYWF9DT05G SUcKKysJZWxzZQorKwkgIHRhZ25hbWU9IiIKKysJZmkKKysJOzsKKysKKysgICAgICBGNzcpCisr CWlmIHRlc3QgLW4gIiRGNzciICYmIHRlc3QgIlgkRjc3IiAhPSAiWG5vIjsgdGhlbgorKwkgIEFD X0xJQlRPT0xfTEFOR19GNzdfQ09ORklHCisrCWVsc2UKKysJICB0YWduYW1lPSIiCisrCWZpCisr CTs7CisrCisrICAgICAgR0NKKQorKwlpZiB0ZXN0IC1uICIkR0NKIiAmJiB0ZXN0ICJYJEdDSiIg IT0gIlhubyI7IHRoZW4KKysJICBBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJRworKwllbHNlCisr CSAgdGFnbmFtZT0iIgorKwlmaQorKwk7OworKworKyAgICAgIFJDKQorKwlBQ19MSUJUT09MX0xB TkdfUkNfQ09ORklHCisrCTs7CisrCisrICAgICAgKikKKysJQUNfTVNHX0VSUk9SKFtVbnN1cHBv cnRlZCB0YWcgbmFtZTogJHRhZ25hbWVdKQorKwk7OworKyAgICAgIGVzYWMKKysKKysgICAgICAj IEFwcGVuZCB0aGUgbmV3IHRhZyBuYW1lIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdzLgor KyAgICAgIGlmIHRlc3QgLW4gIiR0YWduYW1lIiA7IHRoZW4KKysgICAgICBhdmFpbGFibGVfdGFn cz0iJGF2YWlsYWJsZV90YWdzICR0YWduYW1lIgorKyAgICBmaQorKyAgICBmaQorKyAgZG9uZQor KyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrCisrICAjIE5vdyBzdWJzdGl0dXRlIHRoZSB1cGRhdGVk IGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ3MuCisrICBpZiBldmFsICJzZWQgLWUgJ3MvXmF2YWlsYWJs ZV90YWdzPS4qXCQvYXZhaWxhYmxlX3RhZ3M9XCIkYXZhaWxhYmxlX3RhZ3NcIi8nIFwiJG9maWxl XCIgPiBcIiR7b2ZpbGV9VFwiIjsgdGhlbgorKyAgICBtdiAiJHtvZmlsZX1UIiAiJG9maWxlIgor KyAgICBjaG1vZCAreCAiJG9maWxlIgorKyAgZWxzZQorKyAgICBybSAtZiAiJHtvZmlsZX1UIgor KyAgICBBQ19NU0dfRVJST1IoW3VuYWJsZSB0byB1cGRhdGUgbGlzdCBvZiBhdmFpbGFibGUgdGFn Z2VkIGNvbmZpZ3VyYXRpb25zLl0pCisrICBmaQorK2ZpCisrXSkjIF9MVF9BQ19UQUdDT05GSUcK KysKKysKKysjIEFDX0xJQlRPT0xfRExPUEVOCisrIyAtLS0tLS0tLS0tLS0tLS0tLQorKyMgZW5h YmxlIGNoZWNrcyBmb3IgZGxvcGVuIHN1cHBvcnQKKytBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9Q RU5dLAorKyBbQUNfQkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKQorK10pIyBBQ19MSUJU T09MX0RMT1BFTgorKworKworKyMgQUNfTElCVE9PTF9XSU4zMl9ETEwKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBkZWNsYXJlIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVpbGRpbmcgd2luMzIg RExMcworK0FDX0RFRlVOKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sCisrW0FDX0JFRk9SRShbJDBd LCBbQUNfTElCVE9PTF9TRVRVUF0pCisrXSkjIEFDX0xJQlRPT0xfV0lOMzJfRExMCisrCisrCisr IyBBQ19FTkFCTEVfU0hBUkVEKFtERUZBVUxUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgaW1wbGVtZW50IHRoZSAtLWVuYWJsZS1zaGFyZWQgZmxhZworKyMgREVGQVVMVCBp cyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMn LgorK0FDX0RFRlVOKFtBQ19FTkFCTEVfU0hBUkVEXSwKKytbZGVmaW5lKFtBQ19FTkFCTEVfU0hB UkVEX0RFRkFVTFRdLCBpZmVsc2UoJDEsIG5vLCBubywgeWVzKSlkbmwKKytBQ19BUkdfRU5BQkxF KFtzaGFyZWRdLAorKyAgICBbQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtH U0A6PkBdLAorKwlbYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dQUNfRU5BQkxF X1NIQVJFRF9ERUZBVUxUW0A6PkBdKV0sCisrICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAg ICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OworKyAg ICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9zaGFyZWQ9 bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhl IGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBk bworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4K KysJICBlbmFibGVfc2hhcmVkPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRs dF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjXSwKKysgICAgW2VuYWJsZV9zaGFyZWQ9 XUFDX0VOQUJMRV9TSEFSRURfREVGQVVMVCkKKytdKSMgQUNfRU5BQkxFX1NIQVJFRAorKworKwor KyMgQUNfRElTQUJMRV9TSEFSRUQKKysjIC0tLS0tLS0tLS0tLS0tLS0tCisrIyBzZXQgdGhlIGRl ZmF1bHQgc2hhcmVkIGZsYWcgdG8gLS1kaXNhYmxlLXNoYXJlZAorK0FDX0RFRlVOKFtBQ19ESVNB QkxFX1NIQVJFRF0sCisrW0FDX0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKKytB Q19FTkFCTEVfU0hBUkVEKG5vKQorK10pIyBBQ19ESVNBQkxFX1NIQVJFRAorKworKworKyMgQUNf RU5BQkxFX1NUQVRJQyhbREVGQVVMVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtc3RhdGljIGZsYWcKKysjIERFRkFVTFQgaXMgZWl0 aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKytB Q19ERUZVTihbQUNfRU5BQkxFX1NUQVRJQ10sCisrW2RlZmluZShbQUNfRU5BQkxFX1NUQVRJQ19E RUZBVUxUXSwgaWZlbHNlKCQxLCBubywgbm8sIHllcykpZG5sCisrQUNfQVJHX0VOQUJMRShbc3Rh dGljXSwKKysgICAgW0FDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zdGF0aWNAPDpAPVBLR1NAOj5A XSwKKysJW2J1aWxkIHN0YXRpYyBsaWJyYXJpZXMgQDw6QGRlZmF1bHQ9XUFDX0VOQUJMRV9TVEFU SUNfREVGQVVMVFtAOj5AXSldLAorKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2Fz ZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKKysgICAgbm8p IGVuYWJsZV9zdGF0aWM9bm8gOzsKKysgICAgKikKKysgICAgIGVuYWJsZV9zdGF0aWM9bm8KKysg ICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1v biBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZT fSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJ RlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBl bmFibGVfc3RhdGljPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZl X2lmcyIKKysgICAgICA7OworKyAgICBlc2FjXSwKKysgICAgW2VuYWJsZV9zdGF0aWM9XUFDX0VO QUJMRV9TVEFUSUNfREVGQVVMVCkKKytdKSMgQUNfRU5BQkxFX1NUQVRJQworKworKworKyMgQUNf RElTQUJMRV9TVEFUSUMKKysjIC0tLS0tLS0tLS0tLS0tLS0tCisrIyBzZXQgdGhlIGRlZmF1bHQg c3RhdGljIGZsYWcgdG8gLS1kaXNhYmxlLXN0YXRpYworK0FDX0RFRlVOKFtBQ19ESVNBQkxFX1NU QVRJQ10sCisrW0FDX0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKKytBQ19FTkFC TEVfU1RBVElDKG5vKQorK10pIyBBQ19ESVNBQkxFX1NUQVRJQworKworKworKyMgQUNfRU5BQkxF X0ZBU1RfSU5TVEFMTChbREVGQVVMVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIGltcGxlbWVudCB0aGUgLS1lbmFibGUtZmFzdC1pbnN0YWxsIGZsYWcKKysjIERF RkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0 byBgeWVzJy4KKytBQ19ERUZVTihbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sCisrW2RlZmluZShb QUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUXSwgaWZlbHNlKCQxLCBubywgbm8sIHllcykp ZG5sCisrQUNfQVJHX0VOQUJMRShbZmFzdC1pbnN0YWxsXSwKKysgICAgW0FDX0hFTFBfU1RSSU5H KFstLWVuYWJsZS1mYXN0LWluc3RhbGxAPDpAPVBLR1NAOj5AXSwKKysgICAgW29wdGltaXplIGZv ciBmYXN0IGluc3RhbGxhdGlvbiBAPDpAZGVmYXVsdD1dQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF9E RUZBVUxUW0A6PkBdKV0sCisrICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRl bmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OworKyAgICBu bykgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9mYXN0 X2luc3RhbGw9bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVz ZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5h YmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgk cCI7IHRoZW4KKysJICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcworKwlmaQorKyAgICAgIGRvbmUK KysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjXSwKKysgICAg W2VuYWJsZV9mYXN0X2luc3RhbGw9XUFDX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVCkKKytd KSMgQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTAorKworKworKyMgQUNfRElTQUJMRV9GQVNUX0lOU1RB TEwKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBzZXQgdGhlIGRlZmF1bHQgdG8gLS1k aXNhYmxlLWZhc3QtaW5zdGFsbAorK0FDX0RFRlVOKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0s CisrW0FDX0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKKytBQ19FTkFCTEVfRkFT VF9JTlNUQUxMKG5vKQorK10pIyBBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTAorKworKworKyMgQUNf TElCVE9PTF9QSUNNT0RFKFtNT0RFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBpbXBsZW1lbnQgdGhlIC0td2l0aC1waWMgZmxhZworKyMgTU9ERSBpcyBlaXRoZXIgYHllcycg b3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGBib3RoJy4KKytBQ19ERUZVTihb QUNfTElCVE9PTF9QSUNNT0RFXSwKKytbQUNfQkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfU0VUVVBd KWRubAorK3BpY19tb2RlPWlmZWxzZSgkIywxLCQxLGRlZmF1bHQpCisrXSkjIEFDX0xJQlRPT0xf UElDTU9ERQorKworKworKyMgQUNfUFJPR19FR1JFUAorKyMgLS0tLS0tLS0tLS0tLQorKyMgVGhp cyBpcyBwcmVkZWZpbmVkIHN0YXJ0aW5nIHdpdGggQXV0b2NvbmYgMi41NCwgc28gdGhpcyBjb25k aXRpb25hbAorKyMgZGVmaW5pdGlvbiBjYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIHJlcXVpcmUgQXV0 b2NvbmYgMi41NCBvciBsYXRlci4KKyttNF9pZm5kZWYoW0FDX1BST0dfRUdSRVBdLCBbQUNfREVG VU4oW0FDX1BST0dfRUdSRVBdLAorK1tBQ19DQUNIRV9DSEVDSyhbZm9yIGVncmVwXSwgW2FjX2N2 X3Byb2dfZWdyZXBdLAorKyAgIFtpZiBlY2hvIGEgfCAoZ3JlcCAtRSAnKGF8YiknKSA+L2Rldi9u dWxsIDI+JjEKKysgICAgdGhlbiBhY19jdl9wcm9nX2VncmVwPSdncmVwIC1FJworKyAgICBlbHNl IGFjX2N2X3Byb2dfZWdyZXA9J2VncmVwJworKyAgICBmaV0pCisrIEVHUkVQPSRhY19jdl9wcm9n X2VncmVwCisrIEFDX1NVQlNUKFtFR1JFUF0pCisrXSldKQorKworKworKyMgQUNfUEFUSF9UT09M X1BSRUZJWAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgZmluZCBhIGZpbGUgcHJvZ3JhbSB3 aGljaCBjYW4gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJ5CisrQUNfREVGVU4oW0FDX1BBVEhfVE9P TF9QUkVGSVhdLAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0VHUkVQXSlkbmwKKytBQ19NU0dfQ0hF Q0tJTkcoW2ZvciAkMV0pCisrQUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfTUFHSUNfQ01ELAorK1tj YXNlICRNQUdJQ19DTUQgaW4KKytbW1xcLypdIHwgID86W1xcL10qXSkKKysgIGx0X2N2X3BhdGhf TUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3 aXRoIGEgcGF0aC4KKysgIDs7CisrKikKKysgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01E IgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZG5sICRhY19k dW1teSBmb3JjZXMgc3BsaXR0aW5nIG9uIGNvbnN0YW50IHVzZXItc3VwcGxpZWQgcGF0aHMuCisr ZG5sIFBPU0lYLjIgd29yZCBzcGxpdHRpbmcgaXMgZG9uZSBvbmx5IG9uIHRoZSBvdXRwdXQgb2Yg d29yZCBleHBhbnNpb25zLAorK2RubCBub3QgZXZlcnkgd29yZC4gIFRoaXMgY2xvc2VzIGEgbG9u Z3N0YW5kaW5nIHNoIHNlY3VyaXR5IGhvbGUuCisrICBhY19kdW1teT0iaWZlbHNlKFskMl0sICwg JFBBVEgsIFskMl0pIgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0i JGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBp ZiB0ZXN0IC1mICRhY19kaXIvJDE7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0i JGFjX2Rpci8kMSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0 aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJmaWxlX21hZ2ljICIqKQor KwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmls ZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgor KwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rl di9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0 aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8RU9GIDE+JjIKKysKKysqKiogV2Fy bmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVz LAorKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fu bm90IHJlY29nbml6ZS4KKysqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwg dG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMKKysqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBh ZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKKysqKiogZGVwZW5k IG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRv b2wKKysqKiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4g IE5ldmVydGhlbGVzcywgeW91CisrKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0 byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bworKyoqKiBidWctbGlidG9vbEBnbnUub3Jn CisrCisrRU9GCisrCSAgZmkgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgYnJlYWsKKysg ICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgTUFHSUNfQ01EPSIkbHRf c2F2ZV9NQUdJQ19DTUQiCisrICA7OworK2VzYWNdKQorK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhf TUFHSUNfQ01EIgorK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCisrICBBQ19NU0dfUkVT VUxUKCRNQUdJQ19DTUQpCisrZWxzZQorKyAgQUNfTVNHX1JFU1VMVChubykKKytmaQorK10pIyBB Q19QQVRIX1RPT0xfUFJFRklYCisrCisrCisrIyBBQ19QQVRIX01BR0lDCisrIyAtLS0tLS0tLS0t LS0tCisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgYSBzaGFyZWQg bGlicmFyeQorK0FDX0RFRlVOKFtBQ19QQVRIX01BR0lDXSwKKytbQUNfUEFUSF9UT09MX1BSRUZJ WCgke2FjX3Rvb2xfcHJlZml4fWZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCisr aWYgdGVzdCAteiAiJGx0X2N2X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgorKyAgaWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgICBBQ19QQVRIX1RPT0xfUFJFRklYKGZpbGUsIC91 c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCisrICBlbHNlCisrICAgIE1BR0lDX0NNRD06Cisr ICBmaQorK2ZpCisrXSkjIEFDX1BBVEhfTUFHSUMKKysKKysKKysjIEFDX1BST0dfTEQKKysjIC0t LS0tLS0tLS0KKysjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIHRoZSBHTlUgb3Igbm9uLUdOVSBsaW5r ZXIKKytBQ19ERUZVTihbQUNfUFJPR19MRF0sCisrW0FDX0FSR19XSVRIKFtnbnUtbGRdLAorKyAg ICBbQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1nbnUtbGRdLAorKwlbYXNzdW1lIHRoZSBDIGNvbXBp bGVyIHVzZXMgR05VIGxkIEA8OkBkZWZhdWx0PW5vQDo+QF0pXSwKKysgICAgW3Rlc3QgIiR3aXRo dmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllc10sCisrICAgIFt3aXRoX2dudV9sZD1ub10pCisr QUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfQ0Nd KWRubAorK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKytBQ19SRVFVSVJFKFtB Q19DQU5PTklDQUxfQlVJTERdKWRubAorK2FjX3Byb2c9bGQKKytpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBh dGguCisrICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBsZCB1c2VkIGJ5ICRDQ10pCisrICBjYXNlICRo b3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJy aWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50 LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAgIGFjX3By b2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysgIGNhc2Ug JGFjX3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtbXFwvXV0q IHwgPzpbW1xcL11dKikKKysgICAgICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0qL1wuXC4vJwor KyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAorKyAgICAgIGFjX3Byb2c9 YGVjaG8gJGFjX3Byb2d8ICRTRUQgJ3MlXFxcXCUvJWcnYAorKyAgICAgIHdoaWxlIGVjaG8gJGFj X3Byb2cgfCBncmVwICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbworKwlhY19wcm9n PWBlY2hvICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAorKyAgICAgIGRvbmUKKysg ICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKKysgICAgICA7OworKyAgIiIpCisr ICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgorKyAg ICBhY19wcm9nPWxkCisrICAgIDs7CisrICAqKQorKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0 aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisrICAgIHdpdGhfZ251X2xkPXVu a25vd24KKysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7 IHRoZW4KKysgIEFDX01TR19DSEVDS0lORyhbZm9yIEdOVSBsZF0pCisrZWxzZQorKyAgQUNfTVNH X0NIRUNLSU5HKFtmb3Igbm9uLUdOVSBsZF0pCisrZmkKKytBQ19DQUNIRV9WQUwobHRfY3ZfcGF0 aF9MRCwKKytbaWYgdGVzdCAteiAiJExEIjsgdGhlbgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworKyAgICBJRlM9 IiRsdF9zYXZlX2lmcyIKKysgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAg aWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJv ZyRhY19leGVleHQiOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJv ZyIKKysgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2Qg cmF0aGVyIHVzZSAtLXZlcnNpb24sCisrICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlh bnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KKysgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQg d2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KKysgICAgICBjYXNlIGAiJGx0 X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysgICAgICAqR05VKiB8ICond2l0 aCBCRkQnKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworKwk7OworKyAg ICAgICopCisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisrCTs7CisrICAg ICAgZXNhYworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrZWxzZQor KyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3 aXRoIGEgcGF0aC4KKytmaV0pCisrTEQ9IiRsdF9jdl9wYXRoX0xEIgorK2lmIHRlc3QgLW4gIiRM RCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJExEKQorK2Vsc2UKKysgIEFDX01TR19SRVNVTFQo bm8pCisrZmkKKyt0ZXN0IC16ICIkTEQiICYmIEFDX01TR19FUlJPUihbbm8gYWNjZXB0YWJsZSBs ZCBmb3VuZCBpbiBcJFBBVEhdKQorK0FDX1BST0dfTERfR05VCisrXSkjIEFDX1BST0dfTEQKKysK KysKKysjIEFDX1BST0dfTERfR05VCisrIyAtLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBQ19Q Uk9HX0xEX0dOVV0sCisrW0FDX1JFUVVJUkUoW0FDX1BST0dfRUdSRVBdKWRubAorK0FDX0NBQ0hF X0NIRUNLKFtpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZF0sIGx0X2N2X3Byb2dfZ251X2xk LAorK1sjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21l IEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCisrY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAg aW4KKysqR05VKiB8ICond2l0aCBCRkQnKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPXllcworKyAg OzsKKysqKQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KKysgIDs7CisrZXNhY10pCisrd2l0aF9n bnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCisrXSkjIEFDX1BST0dfTERfR05VCisrCisrCisrIyBB Q19QUk9HX0xEX1JFTE9BRF9GTEFHCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBmaW5k IHJlbG9hZCBmbGFnIGZvciBsaW5rZXIKKysjICAgLS0gUE9SVE1FIFNvbWUgbGlua2VycyBtYXkg bmVlZCBhIGRpZmZlcmVudCByZWxvYWQgZmxhZy4KKytBQ19ERUZVTihbQUNfUFJPR19MRF9SRUxP QURfRkxBR10sCisrW0FDX0NBQ0hFX0NIRUNLKFtmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2Jq ZWN0IGZpbGVzXSwKKysgIGx0X2N2X2xkX3JlbG9hZF9mbGFnLAorKyAgW2x0X2N2X2xkX3JlbG9h ZF9mbGFnPSctciddKQorK3JlbG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxvYWRfZmxhZworK2Nhc2Ug JHJlbG9hZF9mbGFnIGluCisrIiIgfCAiICIqKSA7OworKyopIHJlbG9hZF9mbGFnPSIgJHJlbG9h ZF9mbGFnIiA7OworK2VzYWMKKytyZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRw dXQkcmVsb2FkX29ianMnCisrY2FzZSAkaG9zdF9vcyBpbgorKyAgZGFyd2luKikKKysgICAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgICByZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZM QUdTIC1ub3N0ZGxpYiAke3dsfS1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrICAgIGVsc2UK KysgICAgICByZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29i anMnCisrICAgIGZpCisrICAgIDs7CisrZXNhYworK10pIyBBQ19QUk9HX0xEX1JFTE9BRF9GTEFH CisrCisrCisrIyBBQ19ERVBMSUJTX0NIRUNLX01FVEhPRAorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIGhvdyB0byBjaGVjayBmb3IgbGlicmFyeSBkZXBlbmRlbmNpZXMKKysjICAtLSBQ T1JUTUUgZmlsbCBpbiB3aXRoIHRoZSBkeW5hbWljIGxpYnJhcnkgY2hhcmFjdGVyaXN0aWNzCisr QUNfREVGVU4oW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9EXSwKKytbQUNfQ0FDSEVfQ0hFQ0soW2hv dyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllc10sCisrbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2QsCisrW2x0X2N2X2ZpbGVfbWFnaWNfY21kPSckTUFHSUNfQ01EJworK2x0X2N2X2Zp bGVfbWFnaWNfdGVzdF9maWxlPQorK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3du JworKyMgTmVlZCB0byBzZXQgdGhlIHByZWNlZGluZyB2YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1z IHRoYXQgc3VwcG9ydAorKyMgaW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2llcy4KKysjICdub25lJyAt LSBkZXBlbmRlbmNpZXMgbm90IHN1cHBvcnRlZC4KKysjIGB1bmtub3duJyAtLSBzYW1lIGFzIG5v bmUsIGJ1dCBkb2N1bWVudHMgdGhhdCB3ZSByZWFsbHkgZG9uJ3Qga25vdy4KKysjICdwYXNzX2Fs bCcgLS0gYWxsIGRlcGVuZGVuY2llcyBwYXNzZWQgd2l0aCBubyBjaGVja3MuCisrIyAndGVzdF9j b21waWxlJyAtLSBjaGVjayBieSBtYWtpbmcgdGVzdCBwcm9ncmFtLgorKyMgJ2ZpbGVfbWFnaWMg W1tyZWdleF1dJyAtLSBjaGVjayBieSBsb29raW5nIGZvciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgK KysjIHdoaWNoIHJlc3BvbmRzIHRvIHRoZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4 dGVuZGVkIHJlZ2V4LgorKyMgSWYgeW91IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91 ciBzeXN0ZW0gYW5kIHlvdSdyZSBub3Qgc3VyZQorKyMgd2hldGhlciBgcGFzc19hbGwnIHdpbGwg KmFsd2F5cyogd29yaywgeW91IHByb2JhYmx5IHdhbnQgdGhpcyBvbmUuCisrCisrY2FzZSAkaG9z dF9vcyBpbgorK2FpeFtbNC05XV0qKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFz c19hbGwKKysgIDs7CisrCisrYmVvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAorKyAgOzsKKysKKytic2RpW1s0NV1dKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChzaGFy ZWQgb2JqZWN0fGR5bmFtaWMgbGliKScKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jp bi9maWxlIC1MJworKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28K KysgIDs7CisrCisrY3lnd2luKikKKysgICMgZnVuY193aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1 bmN0aW9uIGRlZmluZWQgaW4gbHRtYWluLnNoCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJworKyAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCisrICA7OworKworK21pbmd3KiB8IHB3MzIq KQorKyAgIyBCYXNlIE1TWVMvTWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5k IG5lZWRlZCBieQorKyAgIyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2Ug YSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCisrICAjIHVubGVzcyB3ZSBmaW5kICdm aWxlJywgZm9yIGV4YW1wbGUgYmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nLgorKyAgaWYg KCBmaWxlIC8gKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKKysgICAg bHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCisrICBlbHNlCisrICAgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4 NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JworKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9C SkRVTVAgLWYnCisrICBmaQorKyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrZnJlZWJzZCogfCBk cmFnb25mbHkqKQorKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18g PiAvZGV2L251bGw7IHRoZW4KKysgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgaSo4NiApCisr ICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2Fz IGEgbWlzdGFrZS4KKysgICAgICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhp cyBpcyBjbGVhcmVkIHVwLgorKyAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxl X21hZ2ljIChGcmVlQlNEfE9wZW5CU0R8RHJhZ29uRmx5KS9pW1szLTldXTg2IChjb21wYWN0ICk/ ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JworKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PS91c3IvYmluL2ZpbGUKKysgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAv dXNyL2xpYi9saWJjLnNvLipgCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgZmkKKysgIDs7CisrCisrZ251 KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2hw dXgxMC4yMCogfCBocHV4MTEqKQorKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmls ZQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIGlhNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxFTEYtW1swLTld XVtbMC05XV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElBNjQnCisrICAgIGx0X2N2X2ZpbGVfbWFn aWNfdGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJjLnNvCisrICAgIDs7CisrICBocHBhKjY0 KikKKysgICAgW2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1b MC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBQQS1SSVNDIFsw LTldLlswLTldJ10KKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEy MF82NC9saWJjLnNsCisrICAgIDs7CisrICAqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxQQS1SSVNDW1swLTldXS5b WzAtOV1dKSBzaGFyZWQgbGlicmFyeScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9 L3Vzci9saWIvbGliYy5zbAorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytpbnRlcml4W1sz LTldXSopCisrICAjIFBJQyBjb2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhhdCdzIHdo eSB8XC5hIG5vdCB8X3BpY1wuYSBoZXJlCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0n bWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvfFwuYSkkJworKyAgOzsKKysKKytpcml4NSog fCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgY2FzZSAkTEQgaW4KKysgICotMzJ8KiItMzIgIikg bGlibWFnaWM9MzItYml0OzsKKysgICotbjMyfCoiLW4zMiAiKSBsaWJtYWdpYz1OMzI7OworKyAg Ki02NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7OworKyAgKikgbGlibWFnaWM9bmV2ZXItbWF0 Y2g7OworKyAgZXNhYworKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysg IDs7CisrCisrIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgorK2xpbnV4KiB8IGsqYnNkKi1nbnUp CisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytuZXRi c2QqKQorKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPiAvZGV2 L251bGw7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRl cm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKKysgIGVs c2UKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltb Xi9dXSsoXC5zb3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1i aXQgW1tNTF1dU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9s aWIvbGlibmxzLnNvCisrICA7OworKworK250by1xbngqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9dW5rbm93bgorKyAgOzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3QgLXogImBl Y2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29z LSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1d K1wuW1swLTldXSt8XC5zb3xfcGljXC5hKSQnCisrICBlbHNlCisrICAgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5b WzAtOV1dK3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsKKysKKytvc2YzKiB8IG9zZjQqIHwgb3Nm NSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKyty ZG9zKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKwor K3NvbGFyaXMqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7 CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICBtb3Rv cm9sYSkKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtb MC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1b WzAtOV1dW1swLTldXSogVmVyc2lvbiBbWzAtOV1dJworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rl c3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKKysgICAgOzsKKysgIG5jcikKKysgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHNlcXVlbnQp CisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1d XVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisrICAgIDs7CisrICBzbmkpCisrICAg IGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIGR5 bmFtaWMgbGliIgorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28K KysgICAgOzsKKysgIHNpZW1lbnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBh c3NfYWxsCisrICAgIDs7CisrICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 cGFzc19hbGwKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUq IHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKytlc2FjCisrXSkKKytmaWxl X21hZ2ljX2NtZD0kbHRfY3ZfZmlsZV9tYWdpY19jbWQKKytkZXBsaWJzX2NoZWNrX21ldGhvZD0k bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QKKyt0ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRo b2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0aG9kPXVua25vd24KKytdKSMgQUNfREVQTElCU19DSEVD S19NRVRIT0QKKysKKysKKysjIEFDX1BST0dfTk0KKysjIC0tLS0tLS0tLS0KKysjIGZpbmQgdGhl IHBhdGhuYW1lIHRvIGEgQlNELWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIKKytBQ19ERUZVTihbQUNf UFJPR19OTV0sCisrW0FDX0NBQ0hFX0NIRUNLKFtmb3IgQlNELWNvbXBhdGlibGUgbm1dLCBsdF9j dl9wYXRoX05NLAorK1tpZiB0ZXN0IC1uICIkTk0iOyB0aGVuCisrICAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KKysgIGx0X2N2X3BhdGhfTk09IiROTSIKKytlbHNlCisrICBsdF9u bV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKKysgIGlmIHRlc3QgLW4gIiRhY190b29s X3ByZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KKysgICAgbHRfbm1fdG9f Y2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKKysgIGZpCisrICBmb3IgbHRfdG1wX25tIGluICRs dF9ubV90b19jaGVjazsgZG8KKysgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCisrICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNyL2Nj cy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAg ICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICAgIHRtcF9ubT0iJGFjX2Rpci8k bHRfdG1wX25tIgorKyAgICAgIGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8IHRlc3QgLWYgIiR0bXBf bm0kYWNfZXhlZXh0IiA7IHRoZW4KKysJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2VwdHMg YSBCU0QtY29tcGF0IGZsYWcuCisrCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBmYWxz ZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6CisrCSMgICBubTogdW5rbm93biBvcHRp b24gIkIiIGlnbm9yZWQKKysJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVsbCBp cyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCisrCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251bGwg Mj4mMSB8IHNlZCAnMXEnYCBpbgorKwkqL2Rldi9udWxsKiB8IConSW52YWxpZCBmaWxlIG9yIG9i amVjdCB0eXBlJyopCisrCSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKKysJICBicmVhawor KwkgIDs7CisrCSopCisrCSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwgc2Vk ICcxcSdgIGluCisrCSAgKi9kZXYvbnVsbCopCisrCSAgICBsdF9jdl9wYXRoX05NPSIkdG1wX25t IC1wIgorKwkgICAgYnJlYWsKKysJICAgIDs7CisrCSAgKikKKysJICAgIGx0X2N2X3BhdGhfTk09 JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0Cisr CSAgICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRyeSB0byBmaW5kIG9uZSB0aGF0IHN1cHBv cnRzIEJTRCBmbGFncworKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAgICAg IGZpCisrICAgIGRvbmUKKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBkb25lCisrICB0ZXN0 IC16ICIkbHRfY3ZfcGF0aF9OTSIgJiYgbHRfY3ZfcGF0aF9OTT1ubQorK2ZpXSkKKytOTT0iJGx0 X2N2X3BhdGhfTk0iCisrXSkjIEFDX1BST0dfTk0KKysKKysKKysjIEFDX0NIRUNLX0xJQk0KKysj IC0tLS0tLS0tLS0tLS0KKysjIGNoZWNrIGZvciBtYXRoIGxpYnJhcnkKKytBQ19ERUZVTihbQUNf Q0hFQ0tfTElCTV0sCisrW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKytMSUJN PQorK2Nhc2UgJGhvc3QgaW4KKysqLSotYmVvcyogfCAqLSotY3lnd2luKiB8ICotKi1wdzMyKiB8 ICotKi1kYXJ3aW4qKQorKyAgIyBUaGVzZSBzeXN0ZW0gZG9uJ3QgaGF2ZSBsaWJtLCBvciBkb24n dCBuZWVkIGl0CisrICA7OworKyotbmNyLXN5c3Y0LjMqKQorKyAgQUNfQ0hFQ0tfTElCKG13LCBf bXd2YWxpZGNoZWNrbCwgTElCTT0iLWxtdyIpCisrICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJN PSIkTElCTSAtbG0iKQorKyAgOzsKKysqKQorKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0i LWxtIikKKysgIDs7CisrZXNhYworK10pIyBBQ19DSEVDS19MSUJNCisrCisrCisrIyBBQ19MSUJM VERMX0NPTlZFTklFTkNFKFtESVJFQ1RPUlldKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIHNldHMgTElCTFRETCB0byB0aGUgbGluayBmbGFncyBmb3IgdGhlIGxp Ymx0ZGwgY29udmVuaWVuY2UgbGlicmFyeSBhbmQKKysjIExURExJTkNMIHRvIHRoZSBpbmNsdWRl IGZsYWdzIGZvciB0aGUgbGlibHRkbCBoZWFkZXIgYW5kIGFkZHMKKysjIC0tZW5hYmxlLWx0ZGwt Y29udmVuaWVuY2UgdG8gdGhlIGNvbmZpZ3VyZSBhcmd1bWVudHMuICBOb3RlIHRoYXQKKysjIEFD X0NPTkZJR19TVUJESVJTIGlzIG5vdCBjYWxsZWQgaGVyZS4gIElmIERJUkVDVE9SWSBpcyBub3Qg cHJvdmlkZWQsCisrIyBpdCBpcyBhc3N1bWVkIHRvIGJlIGBsaWJsdGRsJy4gIExJQkxUREwgd2ls bCBiZSBwcmVmaXhlZCB3aXRoCisrIyAnJHt0b3BfYnVpbGRkaXJ9LycgYW5kIExURExJTkNMIHdp bGwgYmUgcHJlZml4ZWQgd2l0aCAnJHt0b3Bfc3JjZGlyfS8nCisrIyAobm90ZSB0aGUgc2luZ2xl IHF1b3RlcyEpLiAgSWYgeW91ciBwYWNrYWdlIGlzIG5vdCBmbGF0IGFuZCB5b3UncmUgbm90Cisr IyB1c2luZyBhdXRvbWFrZSwgZGVmaW5lIHRvcF9idWlsZGRpciBhbmQgdG9wX3NyY2RpciBhcHBy b3ByaWF0ZWx5IGluCisrIyB0aGUgTWFrZWZpbGVzLgorK0FDX0RFRlVOKFtBQ19MSUJMVERMX0NP TlZFTklFTkNFXSwKKytbQUNfQkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKWRubAorKyAg Y2FzZSAkZW5hYmxlX2x0ZGxfY29udmVuaWVuY2UgaW4KKysgIG5vKSBBQ19NU0dfRVJST1IoW3Ro aXMgcGFja2FnZSBuZWVkcyBhIGNvbnZlbmllbmNlIGxpYmx0ZGxdKSA7OworKyAgIiIpIGVuYWJs ZV9sdGRsX2NvbnZlbmllbmNlPXllcworKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29u ZmlndXJlX2FyZ3MgLS1lbmFibGUtbHRkbC1jb252ZW5pZW5jZSIgOzsKKysgIGVzYWMKKysgIExJ QkxUREw9JyR7dG9wX2J1aWxkZGlyfS8naWZlbHNlKCQjLDEsWyQxXSxbJ2xpYmx0ZGwnXSkvbGli bHRkbGMubGEKKysgIExURExJTkNMPSctSSR7dG9wX3NyY2Rpcn0vJ2lmZWxzZSgkIywxLFskMV0s WydsaWJsdGRsJ10pCisrICAjIEZvciBiYWNrd2FyZHMgbm9uLWdldHRleHQgY29uc2lzdGVudCBj b21wYXRpYmlsaXR5Li4uCisrICBJTkNMVERMPSIkTFRETElOQ0wiCisrXSkjIEFDX0xJQkxURExf Q09OVkVOSUVOQ0UKKysKKysKKysjIEFDX0xJQkxURExfSU5TVEFMTEFCTEUoW0RJUkVDVE9SWV0p CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgc2V0cyBMSUJMVERM IHRvIHRoZSBsaW5rIGZsYWdzIGZvciB0aGUgbGlibHRkbCBpbnN0YWxsYWJsZSBsaWJyYXJ5IGFu ZAorKyMgTFRETElOQ0wgdG8gdGhlIGluY2x1ZGUgZmxhZ3MgZm9yIHRoZSBsaWJsdGRsIGhlYWRl ciBhbmQgYWRkcworKyMgLS1lbmFibGUtbHRkbC1pbnN0YWxsIHRvIHRoZSBjb25maWd1cmUgYXJn dW1lbnRzLiAgTm90ZSB0aGF0CisrIyBBQ19DT05GSUdfU1VCRElSUyBpcyBub3QgY2FsbGVkIGhl cmUuICBJZiBESVJFQ1RPUlkgaXMgbm90IHByb3ZpZGVkLAorKyMgYW5kIGFuIGluc3RhbGxlZCBs aWJsdGRsIGlzIG5vdCBmb3VuZCwgaXQgaXMgYXNzdW1lZCB0byBiZSBgbGlibHRkbCcuCisrIyBM SUJMVERMIHdpbGwgYmUgcHJlZml4ZWQgd2l0aCAnJHt0b3BfYnVpbGRkaXJ9LycjIGFuZCBMVERM SU5DTCB3aXRoCisrIyAnJHt0b3Bfc3JjZGlyfS8nIChub3RlIHRoZSBzaW5nbGUgcXVvdGVzISku ICBJZiB5b3VyIHBhY2thZ2UgaXMgbm90CisrIyBmbGF0IGFuZCB5b3UncmUgbm90IHVzaW5nIGF1 dG9tYWtlLCBkZWZpbmUgdG9wX2J1aWxkZGlyIGFuZCB0b3Bfc3JjZGlyCisrIyBhcHByb3ByaWF0 ZWx5IGluIHRoZSBNYWtlZmlsZXMuCisrIyBJbiB0aGUgZnV0dXJlLCB0aGlzIG1hY3JvIG1heSBo YXZlIHRvIGJlIGNhbGxlZCBhZnRlciBBQ19QUk9HX0xJQlRPT0wuCisrQUNfREVGVU4oW0FDX0xJ QkxURExfSU5TVEFMTEFCTEVdLAorK1tBQ19CRUZPUkUoWyQwXSxbQUNfTElCVE9PTF9TRVRVUF0p ZG5sCisrICBBQ19DSEVDS19MSUIobHRkbCwgbHRfZGxpbml0LAorKyAgW3Rlc3QgeCIkZW5hYmxl X2x0ZGxfaW5zdGFsbCIgIT0geHllcyAmJiBlbmFibGVfbHRkbF9pbnN0YWxsPW5vXSwKKysgIFtp ZiB0ZXN0IHgiJGVuYWJsZV9sdGRsX2luc3RhbGwiID0geG5vOyB0aGVuCisrICAgICBBQ19NU0df V0FSTihbbGlibHRkbCBub3QgaW5zdGFsbGVkLCBidXQgaW5zdGFsbGF0aW9uIGRpc2FibGVkXSkK KysgICBlbHNlCisrICAgICBlbmFibGVfbHRkbF9pbnN0YWxsPXllcworKyAgIGZpCisrICBdKQor KyAgaWYgdGVzdCB4IiRlbmFibGVfbHRkbF9pbnN0YWxsIiA9IHgieWVzIjsgdGhlbgorKyAgICBh Y19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzIC0tZW5hYmxlLWx0ZGwtaW5zdGFs bCIKKysgICAgTElCTFRETD0nJHt0b3BfYnVpbGRkaXJ9LydpZmVsc2UoJCMsMSxbJDFdLFsnbGli bHRkbCddKS9saWJsdGRsLmxhCisrICAgIExURExJTkNMPSctSSR7dG9wX3NyY2Rpcn0vJ2lmZWxz ZSgkIywxLFskMV0sWydsaWJsdGRsJ10pCisrICBlbHNlCisrICAgIGFjX2NvbmZpZ3VyZV9hcmdz PSIkYWNfY29uZmlndXJlX2FyZ3MgLS1lbmFibGUtbHRkbC1pbnN0YWxsPW5vIgorKyAgICBMSUJM VERMPSItbGx0ZGwiCisrICAgIExURExJTkNMPQorKyAgZmkKKysgICMgRm9yIGJhY2t3YXJkcyBu b24tZ2V0dGV4dCBjb25zaXN0ZW50IGNvbXBhdGliaWxpdHkuLi4KKysgIElOQ0xUREw9IiRMVERM SU5DTCIKKytdKSMgQUNfTElCTFRETF9JTlNUQUxMQUJMRQorKworKworKyMgQUNfTElCVE9PTF9D WFgKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBlbmFibGUgc3VwcG9ydCBmb3IgQysrIGxpYnJhcmll cworK0FDX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sCisrW0FDX1JFUVVJUkUoW19MVF9BQ19MQU5H X0NYWF0pCisrXSkjIEFDX0xJQlRPT0xfQ1hYCisrCisrCisrIyBfTFRfQUNfTEFOR19DWFgKKysj IC0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhdLAorK1tBQ19SRVFV SVJFKFtBQ19QUk9HX0NYWF0pCisrQUNfUkVRVUlSRShbX0xUX0FDX1BST0dfQ1hYQ1BQXSkKKytf TFRfQUNfU0hFTExfSU5JVChbdGFnbmFtZXM9JHt0YWduYW1lcyske3RhZ25hbWVzfSx9Q1hYXSkK KytdKSMgX0xUX0FDX0xBTkdfQ1hYCisrCisrIyBfTFRfQUNfUFJPR19DWFhDUFAKKysjIC0tLS0t LS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtfTFRfQUNfUFJPR19DWFhDUFBdLAorK1sKKytBQ19S RVFVSVJFKFtBQ19QUk9HX0NYWF0pCisraWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENY WCIgIT0gIlhubyIgJiYKKysgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYg Pi9kZXYvbnVsbCAyPiYxYCApIHx8CisrICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsg dGhlbgorKyAgQUNfUFJPR19DWFhDUFAKKytmaQorK10pIyBfTFRfQUNfUFJPR19DWFhDUFAKKysK KysjIEFDX0xJQlRPT0xfRjc3CisrIyAtLS0tLS0tLS0tLS0tLQorKyMgZW5hYmxlIHN1cHBvcnQg Zm9yIEZvcnRyYW4gNzcgbGlicmFyaWVzCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwKKytb QUNfUkVRVUlSRShbX0xUX0FDX0xBTkdfRjc3XSkKKytdKSMgQUNfTElCVE9PTF9GNzcKKysKKysK KysjIF9MVF9BQ19MQU5HX0Y3NworKyMgLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19MVF9B Q19MQU5HX0Y3N10sCisrW0FDX1JFUVVJUkUoW0FDX1BST0dfRjc3XSkKKytfTFRfQUNfU0hFTExf SU5JVChbdGFnbmFtZXM9JHt0YWduYW1lcyske3RhZ25hbWVzfSx9Rjc3XSkKKytdKSMgX0xUX0FD X0xBTkdfRjc3CisrCisrCisrIyBBQ19MSUJUT09MX0dDSgorKyMgLS0tLS0tLS0tLS0tLS0KKysj IGVuYWJsZSBzdXBwb3J0IGZvciBHQ0ogbGlicmFyaWVzCisrQUNfREVGVU4oW0FDX0xJQlRPT0xf R0NKXSwKKytbQUNfUkVRVUlSRShbX0xUX0FDX0xBTkdfR0NKXSkKKytdKSMgQUNfTElCVE9PTF9H Q0oKKysKKysKKysjIF9MVF9BQ19MQU5HX0dDSgorKyMgLS0tLS0tLS0tLS0tLS0tCisrQUNfREVG VU4oW19MVF9BQ19MQU5HX0dDSl0sCisrW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0dDSl0s W10sCisrICBbQUNfUFJPVklERV9JRkVMU0UoW0FdW01fUFJPR19HQ0pdLFtdLAorKyAgICBbQUNf UFJPVklERV9JRkVMU0UoW0xUX0FDX1BST0dfR0NKXSxbXSwKKysgICAgICBbaWZkZWYoW0FDX1BS T0dfR0NKXSxbQUNfUkVRVUlSRShbQUNfUFJPR19HQ0pdKV0sCisrCSBbaWZkZWYoW0FdW01fUFJP R19HQ0pdLFtBQ19SRVFVSVJFKFtBXVtNX1BST0dfR0NKXSldLAorKwkgICBbQUNfUkVRVUlSRShb QV1bQ19QUk9HX0dDSl9PUl9BXVtNX1BST0dfR0NKXSldKV0pXSldKV0pCisrX0xUX0FDX1NIRUxM X0lOSVQoW3RhZ25hbWVzPSR7dGFnbmFtZXMrJHt0YWduYW1lc30sfUdDSl0pCisrXSkjIF9MVF9B Q19MQU5HX0dDSgorKworKworKyMgQUNfTElCVE9PTF9SQworKyMgLS0tLS0tLS0tLS0tLQorKyMg ZW5hYmxlIHN1cHBvcnQgZm9yIFdpbmRvd3MgcmVzb3VyY2UgZmlsZXMKKytBQ19ERUZVTihbQUNf TElCVE9PTF9SQ10sCisrW0FDX1JFUVVJUkUoW0xUX0FDX1BST0dfUkNdKQorK19MVF9BQ19TSEVM TF9JTklUKFt0YWduYW1lcz0ke3RhZ25hbWVzKyR7dGFnbmFtZXN9LH1SQ10pCisrXSkjIEFDX0xJ QlRPT0xfUkMKKysKKysKKysjIEFDX0xJQlRPT0xfTEFOR19DX0NPTkZJRworKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJzIGZv ciB0aGUgQyBjb21waWxlciBhcmUKKysjIHN1aXRhYmx5IGRlZmluZWQuICBUaG9zZSB2YXJpYWJs ZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5CisrIyBBQ19MSUJUT09MX0NPTkZJRyB0byB3cml0 ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrQUNfREVGVU4oW0FD X0xJQlRPT0xfTEFOR19DX0NPTkZJR10sIFtfTFRfQUNfTEFOR19DX0NPTkZJR10pCisrQUNfREVG VU4oW19MVF9BQ19MQU5HX0NfQ09ORklHXSwKKytbbHRfc2F2ZV9DQz0iJENDIgorK0FDX0xBTkdf UFVTSChDKQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4K KythY19leHQ9YworKworKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRl c3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9BQ19UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4 dAorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2lt cGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKworKyMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9j b2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9JworKworK19MVF9BQ19TWVNfQ09NUElMRVIKKysK KysjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorK19MVF9D T01QSUxFUl9CT0lMRVJQTEFURQorK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysKKytBQ19MSUJU T09MX1BST0dfQ09NUElMRVJfTk9fUlRUSSgkMSkKKytBQ19MSUJUT09MX1BST0dfQ09NUElMRVJf UElDKCQxKQorK0FDX0xJQlRPT0xfUFJPR19DQ19DX08oJDEpCisrQUNfTElCVE9PTF9TWVNfSEFS RF9MSU5LX0xPQ0tTKCQxKQorK0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlMoJDEpCisrQUNfTElC VE9PTF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RF X0xJQlBBVEgoJDEpCisrQUNfTElCVE9PTF9TWVNfTElCX1NUUklQCisrQUNfTElCVE9PTF9ETE9Q RU5fU0VMRgorKworKyMgUmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBi ZSBidWlsdAorK0FDX01TR19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzXSkKKytBQ19NU0dfUkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCisrCisrQUNfTVNH X0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQorK3Rlc3QgIiRj YW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworKworKyMgT24gQUlY LCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1l c3BhY2UsIGFuZAorKyMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KKytjYXNlICRob3N0X29zIGlu CisrYWl4MyopCisrICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRp Yz1ubworKyAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgICAgYXJjaGl2ZV9jbWRzPSIk YXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorKyAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFO TElCICRsaWInCisrICBmaQorKyAgOzsKKysKKythaXhbWzQtOV1dKikKKysgIGlmIHRlc3QgIiRo b3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7 IHRoZW4KKysgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9 bm8KKysgIGZpCisrICAgIDs7CisrZXNhYworK0FDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVk XSkKKysKKytBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmll c10pCisrIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBp cyB5ZXMuCisrdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVz CisrQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQorKworK0FDX0xJQlRPT0xfQ09ORklH KCQxKQorKworK0FDX0xBTkdfUE9QCisrQ0M9IiRsdF9zYXZlX0NDIgorK10pIyBBQ19MSUJUT09M X0xBTkdfQ19DT05GSUcKKysKKysKKysjIEFDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRp b24gdmFycyBmb3IgdGhlIEMgY29tcGlsZXIgYXJlCisrIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhv c2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieQorKyMgQUNfTElCVE9PTF9DT05G SUcgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorK0FD X0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJR10sIFtfTFRfQUNfTEFOR19DWFhfQ09O RklHKENYWCldKQorK0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSwKKytbQUNfTEFO R19QVVNIKEMrKykKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0NYWF0pCisrQUNfUkVRVUlSRShbX0xU X0FDX1BST0dfQ1hYQ1BQXSkKKysKKytfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xj LCAkMSk9bm8KKytfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xU X0FDX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworK19MVF9BQ19UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorK19MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwor K19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorK19MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQorK19MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bWludXNfTCwgJDEpPW5vCisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9dW5zdXBwb3J0ZWQKKytfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5v CisrX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQorK19MVF9BQ19UQUdWQVIobW9kdWxl X2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9 dW5rbm93bgorK19MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2 ZV9jbWRzCisrX0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9BQ19U QUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKytfTFRfQUNfVEFHVkFSKGVuYWJs ZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubworKworKyMgRGVwZW5kZW5jaWVz IHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6CisrX0xU X0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPQorK19MVF9BQ19UQUdWQVIocG9zdGRlcF9v YmplY3RzLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihwcmVkZXBzLCAkMSk9CisrX0xUX0FDX1RBR1ZB Uihwb3N0ZGVwcywgJDEpPQorK19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRo LCAkMSk9CisrX0xUX0FDX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT0KKysK KysjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4KKythY19leHQ9 Y3BwCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMrKyB0ZXN0IHNv dXJjZXMuCisrb2JqZXh0PW8KKytfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKysK KysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9j b21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysjIENvZGUgdG8g YmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0n aW50IG1haW4oaW50LCBjaGFyICpbW11dKSB7IHJldHVybigwKTsgfScKKysKKysjIGx0bWFpbiBv bmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBp cyBzZXQuCisrX0xUX0FDX1NZU19DT01QSUxFUgorKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJw bGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrX0xU X0xJTktFUl9CT0lMRVJQTEFURQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmd1bWVudHMuCisrbHRfc2F2ZV9DQz0kQ0MKKytsdF9zYXZlX0xEPSRMRAorK2x0X3Nh dmVfR0NDPSRHQ0MKKytHQ0M9JEdYWAorK2x0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xk CisrbHRfc2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECisraWYgdGVzdCAtbiAiJHtsdF9jdl9w cm9nX2dudV9sZGN4eCtzZXR9IjsgdGhlbgorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3By b2dfZ251X2xkY3h4CisrZWxzZQorKyAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCisrZmkK KytpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KKysgIGx0X2N2X3Bh dGhfTEQ9JGx0X2N2X3BhdGhfTERDWFgKKytlbHNlCisrICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9M RAorK2ZpCisrdGVzdCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKKytDQz0ke0NYWC0i YysrIn0KKytjb21waWxlcj0kQ0MKKytfTFRfQUNfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisr X0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorKworKyMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4 Y2VwdGlvbiB3ZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCisrIyBub19idWlsdGlu X2ZsYWcgc2VwYXJhdGVseQorK2lmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0 aW4nCisrZWxzZQorKyAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZywgJDEpPQorK2ZpCisrCisraWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICMgU2V0 IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9uCisrCisrICBBQ19QUk9HX0xECisrCisr ICAjIENoZWNrIGlmIEdOVSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2Vy LCBzaW5jZSB0aGUKKysgICMgYXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0IEdO VSBsZCBpcyBiZWluZyB1c2VkLgorKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhl bgorKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCisrICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGly JworKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3ds fS0tZXhwb3J0LWR5bmFtaWMnCisrCisrICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5v dCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5CisrICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2Fu IGJlIGVsaW1pbmF0ZWQgaW4gbHRjZi1jeHgsIGJ1dCBJIG5lZWQgdG8KKysgICAgIyAgICAgaW52 ZXN0aWdhdGUgaXQgYSBsaXR0bGUgYml0IG1vcmUuIChNTSkKKysgICAgd2xhcmM9JyR7d2x9Jwor KworKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBl dC4gYWwuCisrICAgIGlmIGV2YWwgImAkQ0MgLXByaW50LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+ JjEiIHwgXAorKwlncmVwICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAg ICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIict LXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScK KysgICAgZWxzZQorKyAgICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0KKysgICAgZmkKKysgIGVsc2UKKysgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgd2xhcmM9 CisrCisrICAgICMgQSBnZW5lcmljIGFuZCB2ZXJ5IHNpbXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJy YXJ5IGNyZWF0aW9uCisrICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hl cmUgaXQgdXNlcyB0aGUgbmF0aXZlCisrICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4g IElmIHBvc3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxkCisrICAgICMgb3ZlcnJpZGRlbiB0byB0 YWtlIGFkdmFudGFnZSBvZiB0aGUgbmF0aXZlIGxpbmtlciBmZWF0dXJlcyBvbgorKyAgICAjIHRo ZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgorKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisr ICBmaQorKworKyAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBv dXRwdXQgdGhhdCBsaXN0cworKyAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFy eS4KKysgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNv bmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgIlwtTCInCisrCisrZWxzZQorKyAgR1hYPW5vCisr ICB3aXRoX2dudV9sZD1ubworKyAgd2xhcmM9CisrZmkKKysKKysjIFBPUlRNRTogZmlsbCBpbiBh IGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgQysrIGxpbmsgY2hhcmFjdGVyaXN0aWNzCisr QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorK19MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVz CisrY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4MyopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrICAgIDs7CisrICBhaXhbWzQtOV1dKikKKysgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KKysgICAgICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBs aW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisrICAgICAgIyBoYXZlIHRvIGRvIGFueXRo aW5nIHNwZWNpYWwuCisrICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKyAgICAgIGV4 cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrICAgICAgbm9fZW50cnlfZmxhZz0iIgorKyAgICBlbHNl CisrICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKworKyAgICAgICMgVGVzdCBpZiB3 ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAorKyAgICAgICMg QUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQor KyAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCisrICAgICAgY2FzZSAkaG9zdF9v cyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQorKwlmb3IgbGRfZmxh ZyBpbiAkTERGTEFHUzsgZG8KKysJICBjYXNlICRsZF9mbGFnIGluCisrCSAgKi1icnRsKikKKysJ ICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisrCSAgICBicmVhaworKwkgICAgOzsKKysJ ICBlc2FjCisrCWRvbmUKKysJOzsKKysgICAgICBlc2FjCisrCisrICAgICAgZXhwX3N5bV9mbGFn PSctYmV4cG9ydCcKKysgICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnknCisrICAgIGZpCisr CisrICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVp bHQsIEFJWCBsZCBjYW4KKysgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBv ZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5CisrICAgICMgb3IgcHJvZ3JhbSByZXN1 bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICMg Q1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMg bm90CisrICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0 byBMREZMQUdTLgorKworKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCisr ICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JworKyAgICBfTFRfQUNfVEFH VkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysKKysgICAgaWYgdGVzdCAiJEdYWCIgPSB5 ZXM7IHRoZW4KKysgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuW1swMTJdXXxhaXg0LltbMDEy XV0uKikKKysgICAgICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxv d2VyLCB0aGUgY2hlY2sKKysgICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24n dCB3b3JrIHVuZGVyIDQuMysKKysJY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1l PWNvbGxlY3QyYAorKwlpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJiBcCisrCSAgIHN0cmlu Z3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJ dGhlbgorKwkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorKwkgIDoKKysJZWxzZQorKwkg ICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPXVuc3VwcG9ydGVkCisrCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxp YnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAorKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGlu IHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCisrCSAgIyB0byB1bnN1cHBv cnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19M LCAkMSk9eWVzCisrCSAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9Jy1MJGxpYmRpcicKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IsICQxKT0KKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgc2hhcmVkX2ZsYWc9Jy1z aGFyZWQnCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0 aGVuCisrCXNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKyAgICAgIGZpCisr ICAgIGVsc2UKKysgICAgICAjIG5vdCB1c2luZyBnY2MKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgorKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVgg NUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQorKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBm b2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwlzaGFyZWRfZmxhZz0nLUcnCisrICAgICAgZWxz ZQorKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICBz aGFyZWRfZmxhZz0nJHt3bH0tRycKKysJZWxzZQorKwkgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpT UkUnCisrCWZpCisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgIyBJdCBzZWVtcyB0aGF0IC1i ZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICMgdW5k ZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9s cyB0byBleHBvcnQuCisrICAgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAk MSk9eWVzCisrICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhl bgorKyAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9h ZGluZyBmbGFncyAoLWJydGwpLAorKyAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVy cm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysgICAgICBfTFRfQUNfVEFH VkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKKysgICAgICAjIERldGVybWlu ZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkg ZXhlY3V0YWJsZS4KKysgICAgICBfTFRfQUNfU1lTX0xJQlBBVEhfQUlYCisrICAgICAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRs aWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9IlwkQ0MiJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRl c3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGVjaG8gIiR7d2x9JHth bGxvd191bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6 XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCisrICAgICBlbHNlCisrICAgICAgaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwlfTFRf QUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKKysJX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRy eV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJc JHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCisrICAgICAgZWxzZQorKwkjIERl dGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4g ZW1wdHkgZXhlY3V0YWJsZS4KKysJX0xUX0FDX1NZU19MSUJQQVRIX0FJWAorKwlfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRp cjonIiRhaXhfbGlicGF0aCIKKysJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIg cnVuIHRpbWUgbG9hZGluZyBmbGFncywKKysJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJy b3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwlfTFRfQUNfVEFHVkFSKG5v X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycKKysJX0xUX0FDX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVyb2snCisrCSMgRXhwb3J0ZWQgc3lt Ym9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwlf TFRfQUNfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScK KysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwkjIFRoaXMg aXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGli cmFyaWVzLgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAk c2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJz ICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMk e2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJworKyAgICAgIGZpCisrICAgIGZp CisrICAgIDs7CisrCisrICBiZW9zKikKKysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAn OiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgX0xU X0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAg IyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9m IGdjYworKyAgICAgICMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBp bnZlc3RpZ2F0aW9uLiAgRklYTUUKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgIGVsc2UKKysgICAgICBfTFRfQUNfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgIGZpCisrICAgIDs7CisrCisrICBjaG9ydXMqKQor KyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICopCisrCSMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBw dzMyKikKKysgICAgIyBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKysgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2gg cGF0aCBmb3IgRExMcy4KKysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9z eW1ib2xzLCAkMSk9bm8KKysgICAgX0xUX0FDX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3Rh dGljX3J1bnRpbWVzLCAkMSk9eWVzCisrCisrICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAg J2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAt LW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9s cyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCisrICAgICAgIyBpcyBFWFBP UlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKysgICAgICBfTFRfQUNf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBv cnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKysJY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgIGVsc2UKKysJZWNobyBFWFBPUlRTID4gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrICAgICAgZml+CisrICAgICAgJENDIC1zaGFyZWQgLW5v c3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0 LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICBlbHNlCisrICAgICAgX0xUX0FDX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubworKyAgICBmaQorKyAgOzsKKysgICAgICBkYXJ3aW4qIHwgcmhhcHNv ZHkqKQorKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwor KyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgICAgICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPXllcworKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgX0xUX0FD X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScnCisrICAgICAgX0xUX0FDX1RB R1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCisrICAgICAg aWYgdGVzdCAiJEdYWCIgPSB5ZXMgOyB0aGVuCisrICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9J2VjaG8nCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAt ZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRl cGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2 ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKysgICAgICBfTFRf QUNfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAt byBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0 X2RzeW11dGlsfSIKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHts aWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVk X2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0 YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21v ZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIF9MVF9BQ19U QUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0 X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRD QyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVw bGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGls fSIKKysgICAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7 IHRoZW4KKysgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLXIg LWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGli b2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7 bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwk cnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCisrICAgICAgICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBv cnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5c JENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIu byBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxf bmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7 X2x0X2RzeW11dGlsfSIKKysgICAgICBmaQorKyAgICAgIGVsc2UKKysgICAgICBjYXNlICRjY19i YXNlbmFtZSBpbgorKyAgICAgICAgeGxjKikKKysgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0nZWNobycKKysgICAgICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1xbWtzaHJvYmogJHt3bH0tc2luZ2xlX21vZHVsZSAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9u YW1lICR7d2x9YGVjaG8gJHJwYXRoLyRzb25hbWVgICR4bGN2ZXJzdHJpbmcnCisrICAgICAgICAg IF9MVF9BQ19UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0nJENDICRhbGxvd191bmRlZmluZWRfZmxh ZyAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3MnCisrICAg ICAgICAgICMgRG9uJ3QgZml4IHRoaXMgYnkgdXNpbmcgdGhlIGxkIC1leHBvcnRlZF9zeW1ib2xz X2xpc3QgZmxhZywgaXQgZG9lc24ndCBleGlzdCBpbiBvbGRlciBkYXJ3aW4gbGRzCisrICAgICAg ICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgLWUgInMsIy4q LCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJv bHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hy b2JqICR7d2x9LXNpbmdsZV9tb2R1bGUgJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWluc3RhbGxfbmFtZSAke3dsfSRy cGF0aC8kc29uYW1lICR4bGN2ZXJzdHJpbmd+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGli bmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JworKyAgICAgICAgICBfTFRfQUNfVEFHVkFSKG1v ZHVsZV9leHBzeW1fY21kcywgJDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwi IC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8k e2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgIC1vICRs aWIgLWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFnc35ubWVkaXQgLXMgJG91 dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCisrICAgICAgICAg IDs7CisrICAgICAgICopCisrICAgICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKyAgICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICBmaQorKyAgICAgICAgOzsKKysK KysgIGRndXgqKQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIGVjKysqKQorKwkj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKyAgICAgIGdoY3gqKQorKwkjIEdyZWVuIEhpbGxz IEMrKyBDb21waWxlcgorKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKyAgICAgICopCisr CSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlfTFRfQUNfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGZyZWVi c2RbWzEyXV0qKQorKyAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZh aXJseSBicm9rZW4gYmVmb3JlIHN3aXRjaCB0byBFTEYKKysgICAgX0xUX0FDX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubworKyAgICA7OworKyAgZnJlZWJzZC1lbGYqKQorKyAgICBfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgICAgOzsKKysgIGZyZWVic2QqIHwg ZHJhZ29uZmx5KikKKysgICAgIyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBH TlUgbGQgd2l0aCBzdGFuZGFyZCBFTEYKKysgICAgIyBjb252ZW50aW9ucworKyAgICBfTFRfQUNf VEFHVkFSKGxkX3NobGlicywgJDEpPXllcworKyAgICA7OworKyAgZ251KikKKysgICAgOzsKKysg IGhwdXg5KikKKysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IsICQxKT06CisrICAgIF9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXll cyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCSMgYnV0IGFzIHRoZSBkZWZhdWx0Cisr CQkJCSMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCisrICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCisrICAgIENDKikKKysgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKKysgICAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAg OzsKKysgICAgYUNDKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck cm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysg ICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCisrICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVz IGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJh cnkuCisrICAgICAgIworKyAgICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkg dG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysgICAgICAjIGV4cGxpY2l0bHkgbGlua2lu ZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKyAgICAgICMg ZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxp YnJhcnkKKysgICAgICAjIGRlcGVuZGVuY2llcy4KKysgICAgICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEp IHwgZ3JlcCAiW1stXV1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAk eiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikg bGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JworKyAgICAgIDs7CisrICAg ICopCisrICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAgIF9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRybSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGVsc2UK KysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAg ICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisrICAgICAg OzsKKysgICAgZXNhYworKyAgICA7OworKyAgaHB1eDEwKnxocHV4MTEqKQorKyAgICBpZiB0ZXN0 ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysgICAgICBjYXNl ICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQqfGlhNjQqKSA7OworKyAgICAgICopCisrCV9M VF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrICAg ICAgICA7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysg ICAgaHBwYSo2NCp8aWE2NCopCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3Qs ICQxKT1ubworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEp PW5vCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdCwgJDEpPXllcworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEp PXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCQkgICAgICAjIGJ1dCBhcyB0aGUg ZGVmYXVsdAorKwkJCQkJICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysgICAgICA7 OworKyAgICBlc2FjCisrCisrICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgQ0MqKQor KwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKyAgICAgIGFDQyopCisrCWNhc2UgJGhvc3Rf Y3B1IGluCisrCWhwcGEqNjQqKQorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICA7Owor KwlpYTY0KikKKysJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3 bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mn CisrCSAgOzsKKysJKikKKysJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisrCSMgQ29tbWFuZHMgdG8gbWFrZSBjb21w aWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJIyB3aGF0ICJoaWRkZW4i IGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSMgbGlu a2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkjCisrCSMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8g YmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysJIyBleHBsaWNpdGx5IGxp bmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJIyBm cm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGli cmFyeQorKwkjIGRlcGVuZGVuY2llcy4KKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBs aXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8IGdyZXAgIlwt TCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3Qu JG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6 Ijs7ZXNhYzsgZG9uZTsgZWNobyAkbGlzdCcKKysJOzsKKysgICAgICAqKQorKwlpZiB0ZXN0ICIk R1hYIiA9IHllczsgdGhlbgorKwkgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KKysJ ICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KikKKysJICAgICAgX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9 K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICA7OworKwkgICAgaWE2 NCopCisrCSAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk IC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0 aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgOzsKKysJICAgICopCisrCSAgICAgIF9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAk e3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzJworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZpCisrCWVsc2UKKysJICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICBfTFRfQUNfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCisrCWZpCisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysg IGludGVyaXhbWzMtOV1dKikKKysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT1ubworKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwor KyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t cnBhdGgsJGxpYmRpcicKKysgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tRScKKysgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90 IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKyAgICAjIEluc3RlYWQsIHNo YXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5 CisrICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBp cyBhIHNsb3cgdmVyeSBtZW1vcnkKKysgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHBy b2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKyAgICAjIDI1NiBLaUIt YWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBs aW5rCisrICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3Mg bW9yZSBzYnJrKDIpIHNwYWNlLgorKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0 MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICBfTFRfQUNfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9s cyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJl dGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWlt YWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3 NzI4MGAgLW8gJGxpYicKKysgICAgOzsKKysgIGlyaXg1KiB8IGlyaXg2KikKKysgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICBDQyopCisrCSMgU0dJIEMrKworKwlfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lv biAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCisrCisrCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVz IG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJ UklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGlu c3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCisrCSMgaW4gdGhlIGFyY2hpdmUuCisr CV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLWFyIC1XUiwtdSAtbyAk b2xkbGliICRvbGRvYmpzJworKwk7OworKyAgICAgICopCisrCWlmIHRlc3QgIiRHWFgiID0geWVz OyB0aGVuCisrCSAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVj aG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0 cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgIGVsc2UK KysJICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0 cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgIC1vICRsaWIn CisrCSAgZmkKKysJZmkKKysJX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVz CisrCTs7CisrICAgIGVzYWMKKysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICA7OworKyAgbGludXgqIHwg aypic2QqLWdudSkKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBLQ0MqKQorKwkj IEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisrCSMgS0ND IHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKKysJ IyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGli cmFyeQorKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5n LgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFy ZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wn J2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8i YDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1w bGliICRsaWInCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1w ZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31d XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVt cGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVt cGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1w bGliICRsaWInCisrCSMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ug b3V0cHV0IHRoYXQgbGlzdHMKKysJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5 LgorKwkjCisrCSMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0 aGlzIGNvbXBpbGVyIGZyb20KKysJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBm aWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhh dCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkjIGRlcGVuZGVuY2ll cy4KKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBj b25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8IGdyZXAgImxk ImA7IHJtIC1mIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1w bGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAq LiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0Jwor KworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t LXJwYXRoLCRsaWJkaXInCisrCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysKKysJIyBBcmNoaXZlcyBjb250YWluaW5n IEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSMgIkNDIC1Cc3RhdGlj Iiwgd2hlcmUgIkNDIiBpcyB0aGUgS0FJIEMrKyBjb21waWxlci4KKysJX0xUX0FDX1RBR1ZBUihv bGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJwor Kwk7OworKyAgICAgIGljcGMqKQorKwkjIEludGVsIEMrKworKwl3aXRoX2dudV9sZD15ZXMKKysJ IyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVk IHN5bWJvbHMKKysJIyBpZiB3ZSBhZGQgJHByZWRlcF9vYmplY3RzIGFuZCAkcG9zdGRlcF9vYmpl Y3RzLCBob3dldmVyIDcuMSBhbmQKKysJIyBlYXJsaWVyIGRvIG5vdCBhZGQgdGhlIG9iamVjdHMg dGhlbXNlbHZlcy4KKysJY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSoiVmVyc2lvbiA3LiIqKQor KyAgCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAJICBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1i b2xzIC1vICRsaWInCisrCSAgOzsKKysJKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKKysJICB0 bXBfaWR5bj0KKysJICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgaWE2NCopIHRtcF9pZHluPScg LWlfZHluYW1pYyc7OworKwkgIGVzYWMKKysgIAkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICBfTFRfQUNfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAk e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkg IDs7CisrCWVzYWMKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5v CisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1y cGF0aCwkbGliZGlyJworKwlfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0t LW5vLXdob2xlLWFyY2hpdmUnCisrCTs7CisrICAgICAgcGdDQyogfCBwZ2NwcCopCisrICAgICAg ICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlcgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk e3dsfSRzb25hbWUgLW8gJGxpYicKKysgIAlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3 bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKKysKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCisrCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysJX0xUX0FDX1RB R1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBm b3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3 X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRu ZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrICAgICAgICA7Owor KyAgICAgIGN4eCopCisrCSMgQ29tcGFxIEMrKworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRh aW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKKysKKysJcnVucGF0aF92YXI9TERf UlVOX1BBVEgKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 Jy1ycGF0aCAkbGliZGlyJworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IsICQxKT06CisrCisrCSMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJv c2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSMgbGlua2luZyBhIHNoYXJlZCBsaWJy YXJ5LgorKwkjCisrCSMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVu dCB0aGlzIGNvbXBpbGVyIGZyb20KKysJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVj dCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJIyBmcm9tIHRoZSBvdXRwdXQgc28g dGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkjIGRlcGVuZGVu Y2llcy4KKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgImxkImA7IHRlbXBsaXN0PWBl Y2hvICR0ZW1wbGlzdCB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBs aXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4 dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNh YzsgZG9uZTsgZWNobyAkbGlzdCcKKysJOzsKKysgICAgICAqKQorKwljYXNlIGAkQ0MgLVYgMj4m MSB8IHNlZCA1cWAgaW4KKysJKlN1blwgQyopCisrCSAgIyBTdW4gQysrIDUuOQorKwkgIF9MVF9B Q19UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKKysJICBfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRz b25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1i b2xzJworKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSct UiRsaWJkaXInCisrCSAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29u dmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIk bmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwi YCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysKKysJICAjIE5vdCBzdXJlIHdoZXRoZXIgc29t ZXRoaW5nIGJhc2VkIG9uCisrCSAgIyAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1v IGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMQorKwkgICMgd291bGQgYmUgYmV0dGVyLgorKwkg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKworKwkgICMgQXJjaGl2ZXMgY29udGFp bmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICMgIkNDIC14 YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkgICMg bmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRl ZAorKwkgICMgaW4gdGhlIGFyY2hpdmUuCisrCSAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgOzsKKysJZXNhYwor Kwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICBseW54b3MqKQorKyAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxp YnMsICQxKT1ubworKyAgICA7OworKyAgbTg4ayopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrICAgIDs7CisrICBtdnMqKQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAg IGN4eCopCisrCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlf TFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCTs7CisrICAgICAgKikKKysJIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCV9MVF9BQ19UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KKysJOzsKKysgICAgZXNhYworKyAgICA7OworKyAgbmV0YnNkKikKKysg ICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsg dGhlbgorKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJl YWJsZSAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkbGlua2VyX2ZsYWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICBmaQorKyAgICAjIFdvcmthcm91 bmQgc29tZSBicm9rZW4gcHJlLTEuNSB0b29sY2hhaW5zCisrICAgIG91dHB1dF92ZXJib3NlX2xp bmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdy ZXAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJworKyAg ICA7OworKyAgb3BlbmJzZDIqKQorKyAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIGFyZSBmYWly bHkgYnJva2VuCisrICAgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgOzsK KysgIG9wZW5ic2QqKQorKyAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgor KyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz IC1vICRsaWInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrICAgICAgaWYgdGVzdCAteiAiYGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3Rf Y3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCV9MVF9BQ19U QUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCV9MVF9BQ19U QUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hp dmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICBmaQor KyAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKyAgICBlbHNlCisrICAgICAg X0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICBmaQorKyAgICA7OworKyAgb3Nm MyopCisrICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgS0NDKikKKysJIyBLdWNrIGFu ZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21waWxlcgorKworKwkjIEtDQyB3aWxsIG9u bHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSMgZW5kcyB3 aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKKysJ IyB0byBpdHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKysJX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8 ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1w bGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGli JworKworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tcnBhdGgsJGxpYmRpcicKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yLCAkMSk9OgorKworKwkjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBt dXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJIyAiQ0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRo ZSBLQUkgQysrIGNvbXBpbGVyLgorKwlfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQx KT0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCisrCTs7CisrICAgICAgUkND KikKKysJIyBSYXRpb25hbCBDKysgMi40LjEKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsK KysgICAgICBjeHgqKQorKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwlfTFRfQUNfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3ds fS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRp cn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCV9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJIyBDb21tYW5kcyB0 byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KKysJIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSMKKysJIyBUaGVyZSBkb2Vzbid0 IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkjIGV4 cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAg dGhlbQorKwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVk IGluIHRoZSBsaWJyYXJ5CisrCSMgZGVwZW5kZW5jaWVzLgorKwlvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAy PiYxIHwgZ3JlcCAibGQiIHwgZ3JlcCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlz dCB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6 IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlz dCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hv ICRsaXN0JworKwk7OworKyAgICAgICopCisrCWlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZp bmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCSAgX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0 cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2Nh dGlvbnMgLW8gJGxpYicKKysKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJICAjIENvbW1hbmRzIHRvIG1h a2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgIyB3aGF0 ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVu CisrCSAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3Jl cCAiXC1MIicKKysKKysJZWxzZQorKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKwkgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJZmkKKysJ OzsKKysgICAgZXNhYworKyAgICA7OworKyAgb3NmNCogfCBvc2Y1KikKKysgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysgICAgICBLQ0MqKQorKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4g KEtBSSkgQysrIENvbXBpbGVyCisrCisrCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQg bGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKKysJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wi IGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQorKwkjIHRvIGl0cyBwcm9wZXIgbmFt ZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtb XigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRT RUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAk c29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCisrCV9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwor KwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCSMg QXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2lu ZworKwkjIHRoZSBLQUkgQysrIGNvbXBpbGVyLgorKwlfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZl X2NtZHMsICQxKT0nJENDIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCTs7CisrICAgICAgUkNDKikK KysJIyBSYXRpb25hbCBDKysgMi40LjEKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0CisrCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsKKysg ICAgICBjeHgqKQorKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAt ZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25h bWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZl cnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkg aW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRf c3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgorKwkgIGVjaG8gIi1oaWRkZW4iPj4gJGxp Yi5leHB+CisrCSAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1t c3ltIC1zb25hbWUgJHNvbmFtZSAtV2wsLWlucHV0IC1XbCwkbGliLmV4cCAgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uCSR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0 cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KKysJICAkcm0gJGxpYi5l eHAnCisrCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSct cnBhdGggJGxpYmRpcicKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y LCAkMSk9OgorKworKwkjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3Nl IG91dHB1dCB0aGF0IGxpc3RzCisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBm aWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFy eS4KKysJIworKwkjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQg dGhpcyBjb21waWxlciBmcm9tCisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3Qg ZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRo YXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRlbmNp ZXMuCisrCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENG TEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwICJsZCIgfCBncmVwIC12ICJsZDoi YDsgdGVtcGxpc3Q9YGVjaG8gJHRlbXBsaXN0IHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQu KiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNv bmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIk bGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCisrCTs7CisrICAgICAgKikKKysJaWYg dGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAg X0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3Vu cmVzb2x2ZWQgJHt3bH1cKicKKysJIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm JiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJ ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBh dGggJHt3bH0kbGliZGlyJworKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciwgJDEpPToKKysKKysJICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2 ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywg b2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgIyBsaW5raW5nIGEgc2hh cmVkIGxpYnJhcnkuCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRD RkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1MIicKKysKKysJZWxzZQor KwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgIF9MVF9B Q19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJZmkKKysJOzsKKysgICAgZXNhYworKyAgICA7 OworKyAgcHNvcyopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgIDs7CisrICBz dW5vczQqKQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIENDKikKKysJIyBTdW4g QysrIDQueAorKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJ X0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKyAgICAgIGxjYyopCisrCSMg THVjaWQKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCV9M VF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsKKysgICAgICAqKQorKwkjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubworKwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICBzb2xhcmlzKikKKysg ICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBDQyopCisrCSMgU3VuIEMrKyA0LjIsIDUu eCBhbmQgQ2VudGVybGluZSBDKysKKysgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz X25lZWRfbGMsJDEpPXllcworKwlfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyAtemRlZnMnCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckZWNobyAieyBnbG9iYWw6IiA+ICRs aWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAk bGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJJENDIC1HJHthbGxv d191bmRlZmluZWRfZmxhZ30gICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25hbWUgLW8gJGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJworKworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubworKwljYXNlICRob3N0X29zIGluCisrCSAgc29sYXJpczIu W1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKysJICAqKQorKwkgICAgIyBUaGUgY29t cGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKKysJ ICAgICMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuCisrCSAgICAjIFN1cHBvcnRl ZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQorKwkgICAgX0xUX0FDX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16 IGRlZmF1bHRleHRyYWN0JworKwkgICAgOzsKKysJZXNhYworKwlfTFRfQUNfVEFHVkFSKGxpbmtf YWxsX2RlcGxpYnMsICQxKT15ZXMKKysKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8n CisrCisrCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3Jl YXRlZCB1c2luZworKwkjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21w aWxlci4gIFRoaXMgaXMKKysJIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0 ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCisrCSMgaW4gdGhlIGFyY2hpdmUuCisrCV9MVF9BQ19UQUdW QVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJwor Kwk7OworKyAgICAgIGdjeCopCisrCSMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCV9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1o ICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysJIyBUaGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNl ZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCisrCV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21k cywgJDEpPSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJOzsK KysgICAgICAqKQorKwkjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgorKwlp ZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJ ICBfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS16ICR7d2x9ZGVm cycKKysJICBpZiAkQ0MgLS12ZXJzaW9uIHwgZ3JlcCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0 aGVuCisrCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt bm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwor KwkgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGds b2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwp L1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkJ JENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3N+JHJtICRsaWIuZXhwJworKworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHBy b2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxp YnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAjIGxp bmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSIk Q0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgXCJcLUxc IiIKKysJICBlbHNlCisrCSAgICAjIGcrKyAyLjcgYXBwZWFycyB0byByZXF1aXJlIGAtRycgTk9U IGAtc2hhcmVkJyBvbiB0aGlzCisrCSAgICAjIHBsYXRmb3JtLgorKwkgICAgX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9y dF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxv Y2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHds JGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJworKworKwkgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgIG91 dHB1dF92ZXJib3NlX2xpbmtfY21kPSIkQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0 IDI+JjEgfCBncmVwIFwiXC1MXCIiCisrCSAgZmkKKysKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkd2wkbGliZGlyJworKwkgIGNhc2Ug JGhvc3Rfb3MgaW4KKysJICBzb2xhcmlzMi5bWzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4qKSA7 OworKwkgICopCisrCSAgICBfTFRfQUNfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZh dWx0ZXh0cmFjdCcKKysJICAgIDs7CisrCSAgZXNhYworKwlmaQorKwk7OworKyAgICBlc2FjCisr ICAgIDs7CisrICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5b WzAxXV0uW1sxMF1dKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLltbMDI0XV0qKQorKyAgICBf TFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysgICAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgIHJ1bnBhdGhfdmFyPSdM RF9SVU5fUEFUSCcKKysKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBDQyopCisr CV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0 X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKwk7OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgs JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJOzsK KysgICAgZXNhYworKyAgICA7OworKyAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKKysg ICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVj YXVzZSB3ZSBkbyBub3QKKysgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVz ZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bworKyAgICAjIGFsd2F5cyBiZSB1bnJlc29s dmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKKysgICAgIyBldmVy IGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4 dAorKyAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBp c24ndCBhcyBoZWF2eS1oYW5kZWQKKysgICAgIyBhcyAteiBkZWZzLgorKyAgICAjIEZvciBzZWN1 cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3YXlzCisr ICAgICMgdXNlIGFic29sdXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywgYW5k IGV4Y2x1ZGUgdGhlCisrICAgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQg bGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCisrICAgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29tcGls ZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBhaW4uCisrICAgICMgU28gdGhhdCBiZWhh dmlvdXIgaXMgb25seSBlbmFibGVkIGlmIFNDT0FCU1BBVEggaXMgc2V0IHRvIGEKKysgICAgIyBu b24tZW1wdHkgdmFsdWUgaW4gdGhlIGVudmlyb25tZW50LiAgTW9zdCBsaWtlbHkgb25seSB1c2Vm dWwgZm9yCisrICAgICMgY3JlYXRpbmcgb2ZmaWNpYWwgZGlzdHJpYnV0aW9ucyBvZiBwYWNrYWdl cy4KKysgICAgIyBUaGlzIGlzIGEgaGFjayB1bnRpbCBsaWJ0b29sIG9mZmljaWFsbHkgc3VwcG9y dHMgYWJzb2x1dGUgcGF0aAorKyAgICAjIG5hbWVzIGZvciBzaGFyZWQgbGlicmFyaWVzLgorKyAg ICBfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysg ICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVm cycKKysgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSdgdGVzdCAteiAiJFNDT0FC U1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGlyYCcKKysgICAgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisrICAgIF9MVF9BQ19UQUdWQVIobGlua19h bGxfZGVwbGlicywgJDEpPXllcworKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JworKyAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BB VEgnCisrCisrICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgQ0MqKQorKwlfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCxcJHtTQ09BQlNQQVRIOisk e2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRD QyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6 KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJworKwk7OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xp YmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk e3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5z dGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICB0YW5kZW0qKQorKyAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgorKyAgICAgIE5DQyopCisrCSMgTm9uU3RvcC1VWCBOQ0MgMy4yMAor KwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKyAgICAgICopCisrCSMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIHZ4d29ya3MqKQorKyAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgX0xUX0FDX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKyAgICA7OworKyAgKikKKysgICAgIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KKysgICAgOzsKKytlc2FjCisrQUNfTVNHX1JFU1VMVChbJF9MVF9BQ19UQUdWQVIo bGRfc2hsaWJzLCAkMSldKQorK3Rlc3QgIiRfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9 IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKytfTFRfQUNfVEFHVkFSKEdDQywgJDEpPSIk R1hYIgorK19MVF9BQ19UQUdWQVIoTEQsICQxKT0iJExEIgorKworK0FDX0xJQlRPT0xfUE9TVERF UF9QUkVERVAoJDEpCisrQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQygkMSkKKytBQ19MSUJU T09MX1BST0dfQ0NfQ19PKCQxKQorK0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLUygkMSkK KytBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTKCQxKQorK0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNf TElOS0VSKCQxKQorK0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKwor K0FDX0xJQlRPT0xfQ09ORklHKCQxKQorKworK0FDX0xBTkdfUE9QCisrQ0M9JGx0X3NhdmVfQ0MK KytMRENYWD0kTEQKKytMRD0kbHRfc2F2ZV9MRAorK0dDQz0kbHRfc2F2ZV9HQ0MKKyt3aXRoX2du dV9sZGN4eD0kd2l0aF9nbnVfbGQKKyt3aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAor K2x0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKKytsdF9jdl9wYXRoX0xEPSRsdF9zYXZl X3BhdGhfTEQKKytsdF9jdl9wcm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQKKytsdF9j dl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAorK10pIyBBQ19MSUJUT09MX0xBTkdf Q1hYX0NPTkZJRworKworKyMgQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUChbVEFHTkFNRV0pCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEZpZ3VyZSBvdXQgImhp ZGRlbiIgbGlicmFyeSBkZXBlbmRlbmNpZXMgZnJvbSB2ZXJib3NlCisrIyBjb21waWxlciBvdXRw dXQgd2hlbiBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrIyBQYXJzZSB0aGUgY29tcGlsZXIg b3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKKysjIG9iamVjdHMsIGxpYnJhcmllcyBh bmQgbGlicmFyeSBmbGFncy4KKytBQ19ERUZVTihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0s CisrW0FDX1JFUVVJUkUoW0xUX0FDX1BST0dfU0VEXSlkbmwKKytkbmwgd2UgY2FuJ3QgdXNlIHRo ZSBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUgaGVyZSwKKytkbmwgYmVjYXVzZSBpdCBjb250 YWlucyBjb2RlIGludGVuZGVkIGZvciBhbiBleGVjdXRhYmxlLAorK2RubCBub3QgYSBsaWJyYXJ5 LiAgSXQncyBwb3NzaWJsZSB3ZSBzaG91bGQgbGV0IGVhY2gKKytkbmwgdGFnIGRlZmluZSBhIG5l dyBsdF8/Pz8/X2xpbmtfdGVzdF9jb2RlIHZhcmlhYmxlLAorK2RubCBidXQgaXQncyBvbmx5IHVz ZWQgaGVyZS4uLgorK2lmZWxzZShbJDFdLFtdLFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G CisraW50IGE7Cisrdm9pZCBmb28gKHZvaWQpIHsgYSA9IDA7IH0KKytFT0YKKytdLFskMV0sW0NY WF0sW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKKytjbGFzcyBGb28KKyt7CisrcHVibGlj OgorKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9CisrcHJpdmF0ZToKKysgIGludCBhOworK307Cisr RU9GCisrXSxbJDFdLFtGNzddLFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCisrICAgICAg c3Vicm91dGluZSBmb28KKysgICAgICBpbXBsaWNpdCBub25lCisrICAgICAgaW50ZWdlcio0IGEK KysgICAgICBhPTAKKysgICAgICByZXR1cm4KKysgICAgICBlbmQKKytFT0YKKytdLFskMV0sW0dD Sl0sW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKKytwdWJsaWMgY2xhc3MgZm9vIHsKKysg IHByaXZhdGUgaW50IGE7CisrICBwdWJsaWMgdm9pZCBiYXIgKHZvaWQpIHsKKysgICAgYSA9IDA7 CisrICB9CisrfTsKKytFT0YKKytdKQorK2RubCBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFu ZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKKytkbmwgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJy YXJ5IGZsYWdzLgorK2lmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisrICAjIFBhcnNl IHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorKyAgIyBvYmpl Y3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCisrCisrICAjIFNlbnRpbmVsIHVzZWQg dG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3JlCisrICAjIHRoZSBj b25mdGVzdCBvYmplY3QgZmlsZS4KKysgIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KKysK KysgICMgVGhlIGAqJyBpbiB0aGUgY2FzZSBtYXRjaGVzIGZvciBhcmNoaXRlY3R1cmVzIHRoYXQg dXNlIGBjYXNlJyBpbgorKyAgIyAkb3V0cHV0X3ZlcmJvc2VfY21kIGNhbiB0cmlnZ2VyIGdsb2Ig ZXhwYW5zaW9uIGR1cmluZyB0aGUgbG9vcAorKyAgIyBldmFsIHdpdGhvdXQgdGhpcyBzdWJzdGl0 dXRpb24uCisrICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1gJGVjaG8gIlgkb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQiIHwgJFhzZWQgLWUgIiRub19nbG9iX3N1YnN0ImAKKysKKysgIGZvciBwIGlu IGBldmFsICRvdXRwdXRfdmVyYm9zZV9saW5rX2NtZGA7IGRvCisrICAgIGNhc2UgJHAgaW4KKysK KysgICAgLUwqIHwgLVIqIHwgLWwqKQorKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNw YWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgorKyAgICAgICAjIFJlbW92ZSB0aGUg c3BhY2UuCisrICAgICAgIGlmIHRlc3QgJHAgPSAiLUwiIFwKKysJICB8fCB0ZXN0ICRwID0gIi1S IjsgdGhlbgorKwkgcHJldj0kcAorKwkgY29udGludWUKKysgICAgICAgZWxzZQorKwkgcHJldj0K KysgICAgICAgZmkKKysKKysgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2Rv bmUiID0gbm87IHRoZW4KKysJIGNhc2UgJHAgaW4KKysJIC1MKiB8IC1SKikKKysJICAgIyBJbnRl cm5hbCBjb21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCisrCSAg ICMgcHJvdmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRo ZQorKwkgICAjIHVzZXIgc3VwcGxpZWQgbGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nl c3MgdGhlbS4KKysJICAgaWYgdGVzdCAteiAiJF9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoLCAkMSkiOyB0aGVuCisrCSAgICAgX0xUX0FDX1RBR1ZBUihjb21waWxlcl9saWJf c2VhcmNoX3BhdGgsICQxKT0iJHtwcmV2fSR7cH0iCisrCSAgIGVsc2UKKysJICAgICBfTFRfQUNf VEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPSIke19MVF9BQ19UQUdWQVIoY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9ICR7cHJldn0ke3B9IgorKwkgICBmaQorKwkgICA7 OworKwkgIyBUaGUgIi1sIiBjYXNlIHdvdWxkIG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3Qg YmVpbmcKKysJICMgbGlua2VkLCBzbyBkb24ndCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgor KwkgZXNhYworKyAgICAgICBlbHNlCisrCSBpZiB0ZXN0IC16ICIkX0xUX0FDX1RBR1ZBUihwb3N0 ZGVwcywgJDEpIjsgdGhlbgorKwkgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7cHJl dn0ke3B9IgorKwkgZWxzZQorKwkgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7X0xU X0FDX1RBR1ZBUihwb3N0ZGVwcywgJDEpfSAke3ByZXZ9JHtwfSIKKysJIGZpCisrICAgICAgIGZp CisrICAgICAgIDs7CisrCisrICAgICouJG9iamV4dCkKKysgICAgICAgIyBUaGlzIGFzc3VtZXMg dGhhdCB0aGUgdGVzdCBvYmplY3QgZmlsZSBvbmx5IHNob3dzIHVwCisrICAgICAgICMgb25jZSBp biB0aGUgY29tcGlsZXIgb3V0cHV0LgorKyAgICAgICBpZiB0ZXN0ICIkcCIgPSAiY29uZnRlc3Qu JG9iamV4dCI7IHRoZW4KKysJIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9eWVzCisrCSBjb250 aW51ZQorKyAgICAgICBmaQorKworKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2Rl cHNfZG9uZSIgPSBubzsgdGhlbgorKwkgaWYgdGVzdCAteiAiJF9MVF9BQ19UQUdWQVIocHJlZGVw X29iamVjdHMsICQxKSI7IHRoZW4KKysJICAgX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywg JDEpPSIkcCIKKysJIGVsc2UKKysJICAgX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEp PSIkX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpICRwIgorKwkgZmkKKysgICAgICAg ZWxzZQorKwkgaWYgdGVzdCAteiAiJF9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSki OyB0aGVuCisrCSAgIF9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRwIgorKwkg ZWxzZQorKwkgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIkX0xUX0FDX1RB R1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKSAkcCIKKysJIGZpCisrICAgICAgIGZpCisrICAgICAg IDs7CisrCisrICAgICopIDs7ICMgSWdub3JlIHRoZSByZXN0LgorKworKyAgICBlc2FjCisrICBk b25lCisrCisrICAjIENsZWFuIHVwLgorKyAgcm0gLWYgYS5vdXQgYS5leGUKKytlbHNlCisrICBl Y2hvICJsaWJ0b29sLm00OiBlcnJvcjogcHJvYmxlbSBjb21waWxpbmcgJDEgdGVzdCBwcm9ncmFt IgorK2ZpCisrCisrJHJtIC1mIGNvbmZlc3QuJG9iamV4dAorKworK19MVF9BQ19UQUdWQVIoY29t cGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9CisraWYgdGVzdCAtbiAiJF9MVF9BQ19UQUdWQVIo Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkiOyB0aGVuCisrICBfTFRfQUNfVEFHVkFSKGNv bXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEpPWBlY2hvICIgJHtfTFRfQUNfVEFHVkFSKGNvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSIgfCAke1NFRH0gLWUgJ3MhIC1MISAhZycgLWUgJ3Mh XiAhISdgCisrZmkKKysKKysjIFBPUlRNRTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1z IHdoZXJlIGl0IGlzIGJyb2tlbgorK2lmZWxzZShbJDFdLFtDWFhdLAorK1tjYXNlICRob3N0X29z IGluCisraW50ZXJpeFtbMy05XV0qKQorKyAgIyBJbnRlcml4IDMuNSBpbnN0YWxscyBjb21wbGV0 ZWx5IGhvc2VkIC5sYSBmaWxlcyBmb3IgQysrLCBzbyByYXRoZXIgdGhhbgorKyAgIyBoYWNrIGFs bCBhcm91bmQgaXQsIGxldCdzIGp1c3QgdHJ1c3QgImcrKyIgdG8gRFRSVC4KKysgIF9MVF9BQ19U QUdWQVIocHJlZGVwX29iamVjdHMsJDEpPQorKyAgX0xUX0FDX1RBR1ZBUihwb3N0ZGVwX29iamVj dHMsJDEpPQorKyAgX0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywkMSk9CisrICA7OworKworK2xpbnV4 KikKKysgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKyAgKlN1blwgQyopCisrICAg ICMgU3VuIEMrKyA1LjkKKysgICAgIworKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3Jt aW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKKysgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0 ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCisrICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFH Uy4gSWdub3JlIGxpYkNydW4gYXMKKysgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9u IGl0LgorKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgorKyAgICAqIiAtbGlicmFyeT1z dGxwb3J0NCAiKikKKysgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKysgICAgICA7Owor KyAgICBlc2FjCisrICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0 aGVuCisrICAgICAgX0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxp YnJhcnk9Q3J1bicKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc29sYXJp cyopCisrICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgQ0MqKQorKyAgICAjIFRoZSBtb3JlIHN0 YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKKysgICAgIyBpbmNvbXBhdGli bGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCisrICAgICMgaXQgaWYg aXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKKysgICAgIyAtbGlicmFyeT1zdGxw b3J0NCBkZXBlbmRzIG9uIGl0LgorKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgorKyAg ICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKKysgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15 ZXMKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMg YSBrbm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCisrICAgICMgU3VuIGNv bXBpbGVyIHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBhbiBvbGQK KysgICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0 byBzdWJ0bGUgYnVncy4KKysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5 ZXM7IHRoZW4KKysgICAgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0 ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgOzsKKytlc2Fj CisrXSkKKytjYXNlICIgJF9MVF9BQ19UQUdWQVIocG9zdGRlcHMsICQxKSAiIGluCisrKiIgLWxj ICIqKSBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8gOzsKKytlc2Fj CisrXSkjIEFDX0xJQlRPT0xfUE9TVERFUF9QUkVERVAKKysKKysjIEFDX0xJQlRPT0xfTEFOR19G NzdfQ09ORklHCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRW5zdXJlIHRoYXQg dGhlIGNvbmZpZ3VyYXRpb24gdmFycyBmb3IgdGhlIEMgY29tcGlsZXIgYXJlCisrIyBzdWl0YWJs eSBkZWZpbmVkLiAgVGhvc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieQorKyMg QUNfTElCVE9PTF9DT05GSUcgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8g YGxpYnRvb2wnLgorK0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10sIFtfTFRf QUNfTEFOR19GNzdfQ09ORklHKEY3NyldKQorK0FDX0RFRlVOKFtfTFRfQUNfTEFOR19GNzdfQ09O RklHXSwKKytbQUNfUkVRVUlSRShbQUNfUFJPR19GNzddKQorK0FDX0xBTkdfUFVTSChGb3J0cmFu IDc3KQorKworK19MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworK19M VF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKytfTFRfQUNfVEFHVkFSKGFs d2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisrX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQx KT0KKytfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisrX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9 bm8KKytfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX0FDX1RB R1ZBUihtb2R1bGVfY21kcywgJDEpPQorK19MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRz LCAkMSk9CisrX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19M VF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xU X0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9BQ19UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKytfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0 aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZv ciBmNzcgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1mCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNp b24gZm9yIGNvbXBpbGVkIGY3NyB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytfTFRfQUNfVEFH VkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUg Y29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAorKyAgICAgIHN1 YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysjIENvZGUgdG8g YmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0i XAorKyAgICAgIHByb2dyYW0gdAorKyAgICAgIGVuZAorKyIKKysKKysjIGx0bWFpbiBvbmx5IHVz ZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQu CisrX0xUX0FDX1NZU19DT01QSUxFUgorKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBv ZiBzaW1wbGUgdGVzdCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrX0xUX0xJTktF Ul9CT0lMRVJQTEFURQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmd1bWVudHMuCisrbHRfc2F2ZV9DQz0iJENDIgorK0NDPSR7Rjc3LSJmNzcifQorK2NvbXBpbGVy PSRDQworK19MVF9BQ19UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKytfTFRfQ0NfQkFTRU5BTUUo WyRjb21waWxlcl0pCisrCisrQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNo YXJlZCBsaWJyYXJpZXNdKQorK0FDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKKysK KytBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisr dGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisr IyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBz YW1lIG5hbWVzcGFjZSwgYW5kCisrIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorK2Nhc2UgJGhv c3Rfb3MgaW4KKythaXgzKikKKysgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFi bGVfc3RhdGljPW5vCisrICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICBhcmNoaXZl X2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisrICAgIHBvc3RpbnN0YWxsX2Nt ZHM9JyRSQU5MSUIgJGxpYicKKysgIGZpCisrICA7OworK2FpeFtbNC05XV0qKQorKyAgaWYgdGVz dCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9 IG5vIDsgdGhlbgorKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0 YXRpYz1ubworKyAgZmkKKysgIDs7CisrZXNhYworK0FDX01TR19SRVNVTFQoWyRlbmFibGVfc2hh cmVkXSkKKysKKytBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJh cmllc10pCisrIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRp YyBpcyB5ZXMuCisrdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9 eWVzCisrQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQorKworK19MVF9BQ19UQUdWQVIo R0NDLCAkMSk9IiRHNzciCisrX0xUX0FDX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrCisrQUNfTElC VE9PTF9QUk9HX0NPTVBJTEVSX1BJQygkMSkKKytBQ19MSUJUT09MX1BST0dfQ0NfQ19PKCQxKQor K0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLUygkMSkKKytBQ19MSUJUT09MX1BST0dfTERf U0hMSUJTKCQxKQorK0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQorK0FDX0xJQlRP T0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworK0FDX0xJQlRPT0xfQ09ORklHKCQx KQorKworK0FDX0xBTkdfUE9QCisrQ0M9IiRsdF9zYXZlX0NDIgorK10pIyBBQ19MSUJUT09MX0xB TkdfRjc3X0NPTkZJRworKworKworKyMgQUNfTElCVE9PTF9MQU5HX0dDSl9DT05GSUcKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlv biB2YXJzIGZvciB0aGUgQyBjb21waWxlciBhcmUKKysjIHN1aXRhYmx5IGRlZmluZWQuICBUaG9z ZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5CisrIyBBQ19MSUJUT09MX0NPTkZJ RyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrQUNf REVGVU4oW0FDX0xJQlRPT0xfTEFOR19HQ0pfQ09ORklHXSwgW19MVF9BQ19MQU5HX0dDSl9DT05G SUcoR0NKKV0pCisrQUNfREVGVU4oW19MVF9BQ19MQU5HX0dDSl9DT05GSUddLAorK1tBQ19MQU5H X1NBVkUKKysKKysjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMu CisrYWNfZXh0PWphdmEKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQg SmF2YSB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEp PSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwor K2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9IgorKworKyMgQ29kZSB0 byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2Rl PSdwdWJsaWMgY2xhc3MgY29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdb W11dIGFyZ3YpIHt9OyB9JworKworKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBj b25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKytfTFRfQUNfU1lTX0NPTVBJ TEVSCisrCisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUK KytfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisr IyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZl X0NDPSIkQ0MiCisrQ0M9JHtHQ0otImdjaiJ9CisrY29tcGlsZXI9JENDCisrX0xUX0FDX1RBR1ZB Uihjb21waWxlciwgJDEpPSRDQworK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysj IEdDSiBkaWQgbm90IGV4aXN0IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3QgaW1wbGljaXRseSBsaW5r IGxpYmMgaW4uCisrX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisr CisrX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMK KysKKytBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9fUlRUSSgkMSkKKytBQ19MSUJUT09MX1BS T0dfQ09NUElMRVJfUElDKCQxKQorK0FDX0xJQlRPT0xfUFJPR19DQ19DX08oJDEpCisrQUNfTElC VE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTKCQxKQorK0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlMo JDEpCisrQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrQUNfTElCVE9PTF9QUk9H X0xEX0hBUkRDT0RFX0xJQlBBVEgoJDEpCisrCisrQUNfTElCVE9PTF9DT05GSUcoJDEpCisrCisr QUNfTEFOR19SRVNUT1JFCisrQ0M9IiRsdF9zYXZlX0NDIgorK10pIyBBQ19MSUJUT09MX0xBTkdf R0NKX0NPTkZJRworKworKworKyMgQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJRworKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFy cyBmb3IgdGhlIFdpbmRvd3MgcmVzb3VyY2UgY29tcGlsZXIgYXJlCisrIyBzdWl0YWJseSBkZWZp bmVkLiAgVGhvc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieQorKyMgQUNfTElC VE9PTF9DT05GSUcgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRv b2wnLgorK0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSwgW19MVF9BQ19MQU5H X1JDX0NPTkZJRyhSQyldKQorK0FDX0RFRlVOKFtfTFRfQUNfTEFOR19SQ19DT05GSUddLAorK1tB Q19MQU5HX1NBVkUKKysKKysjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgUkMgdGVzdCBzb3Vy Y2VzLgorK2FjX2V4dD1yYworKworKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxl ZCBSQyB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEp PSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwor K2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0nc2FtcGxlIE1FTlUgeyBNRU5VSVRFTSAiJlNv dXAiLCAxMDAsIENIRUNLRUQgfScKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGlu ayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iJGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZSIKKysKKysjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJh dGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrX0xUX0FDX1NZU19DT01QSUxFUgorKwor KyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrX0xUX0NP TVBJTEVSX0JPSUxFUlBMQVRFCisrX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKworKyMgQWxsb3cg Q0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrbHRfc2F2ZV9DQz0iJEND IgorK0NDPSR7UkMtIndpbmRyZXMifQorK2NvbXBpbGVyPSRDQworK19MVF9BQ19UQUdWQVIoY29t cGlsZXIsICQxKT0kQ0MKKytfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrX0xUX0FDX1RB R1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPXllcworKworK0FDX0xJQlRPT0xfQ09O RklHKCQxKQorKworK0FDX0xBTkdfUkVTVE9SRQorK0NDPSIkbHRfc2F2ZV9DQyIKKytdKSMgQUNf TElCVE9PTF9MQU5HX1JDX0NPTkZJRworKworKworKyMgQUNfTElCVE9PTF9DT05GSUcoW1RBR05B TUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgSWYgVEFHTkFNRSBpcyBu b3QgcGFzc2VkLCB0aGVuIGNyZWF0ZSBhbiBpbml0aWFsIGxpYnRvb2wgc2NyaXB0CisrIyB3aXRo IGEgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZyb20gdGhlIHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAg T3RoZXJ3aXNlCisrIyBhZGQgY29kZSB0byBjb25maWcuc3RhdHVzIGZvciBhcHBlbmRpbmcgdGhl IGNvbmZpZ3VyYXRpb24gbmFtZWQgYnkKKysjIFRBR05BTUUgZnJvbSB0aGUgbWF0Y2hpbmcgdGFn Z2VkIGNvbmZpZyB2YXJzLgorK0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10sCisrWyMgVGhl IGVsc2UgY2xhdXNlIHNob3VsZCBvbmx5IGZpcmUgd2hlbiBib290c3RyYXBwaW5nIHRoZQorKyMg bGlidG9vbCBkaXN0cmlidXRpb24sIG90aGVyd2lzZSB5b3UgZm9yZ290IHRvIHNoaXAgbHRtYWlu LnNoCisrIyB3aXRoIHlvdXIgcGFja2FnZSwgYW5kIHlvdSB3aWxsIGdldCBjb21wbGFpbnRzIHRo YXQgdGhlcmUgYXJlCisrIyBubyBydWxlcyB0byBnZW5lcmF0ZSBsdG1haW4uc2guCisraWYgdGVz dCAtZiAiJGx0bWFpbiI7IHRoZW4KKysgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwg YW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIgY29tbWFuZHMgdGhyb3VnaAorKyAg IyB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzLgorKyAgaWYgdGVzdCAtbiAiJHtaU0hfVkVS U0lPTitzZXR9IiA7IHRoZW4KKysgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKysgIGZpCisrICAj IE5vdyBxdW90ZSBhbGwgdGhlIHRoaW5ncyB0aGF0IG1heSBjb250YWluIG1ldGFjaGFyYWN0ZXJz IHdoaWxlIGJlaW5nCisrICAjIGNhcmVmdWwgbm90IHRvIG92ZXJxdW90ZSB0aGUgQUNfU1VCU1Rl ZCB2YWx1ZXMuICBXZSB0YWtlIGNvcGllcyBvZiB0aGUKKysgICMgdmFyaWFibGVzIGFuZCBxdW90 ZSB0aGUgY29waWVzIGZvciBnZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdC4KKysgIGZv ciB2YXIgaW4gZWNobyBvbGRfQ0Mgb2xkX0NGTEFHUyBBUiBBUl9GTEFHUyBFR1JFUCBSQU5MSUIg TE5fUyBMVENDIExUQ0ZMQUdTIE5NIFwKKysgICAgU0VEIFNIRUxMIFNUUklQIFwKKysgICAgbGli bmFtZV9zcGVjIGxpYnJhcnlfbmFtZXNfc3BlYyBzb25hbWVfc3BlYyBleHRyYWN0X2V4cHN5bXNf Y21kcyBcCisrICAgIG9sZF9zdHJpcGxpYiBzdHJpcGxpYiBmaWxlX21hZ2ljX2NtZCBmaW5pc2hf Y21kcyBmaW5pc2hfZXZhbCBcCisrICAgIGRlcGxpYnNfY2hlY2tfbWV0aG9kIHJlbG9hZF9mbGFn IHJlbG9hZF9jbWRzIG5lZWRfbG9ja3MgXAorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9w aXBlIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKKysgICAgbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MgXAorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgXAorKyAgICBvbGRfcG9zdGluc3RhbGxf Y21kcyBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIFwKKysgICAgX0xUX0FDX1RBR1ZBUihjb21waWxl ciwgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihDQywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZB UihMRCwgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkg XAorKyAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkgXAorKyAgICBf TFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSkgXAorKyAgICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgXAorKyAgICBfTFRf QUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpIFwKKysgICAgX0xUX0FDX1RB R1ZBUih0aHJlYWRfc2FmZV9mbGFnX3NwZWMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIod2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIoZW5hYmxlX3No YXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihvbGRf YXJjaGl2ZV9jbWRzLCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSBc CisrICAgIF9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkgXAorKyAgICBfTFRfQUNf VEFHVkFSKHByZWRlcHMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIocG9zdGRlcHMsICQxKSBc CisrICAgIF9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkgXAorKyAg ICBfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEpIFwKKysgICAgX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihwb3N0aW5zdGFsbF9jbWRz LCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKHBvc3R1bmluc3RhbGxfY21kcywgJDEpIFwKKysg ICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcywgJDEpIFwKKysg ICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpIFwKKysgICAgX0xUX0FD X1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihleHBv cnRfc3ltYm9sc19jbWRzLCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19sZCwgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEp IFwKKysgICAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpIFwKKysgICAgX0xUX0FDX1RB R1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIobHRfY3Zf cHJvZ19jb21waWxlcl9jX28sICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIoZml4X3NyY2ZpbGVf cGF0aCwgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKSBcCisr ICAgIF9MVF9BQ19UQUdWQVIoaW5jbHVkZV9leHBzeW1zLCAkMSk7IGRvCisrCisrICAgIGNhc2Ug JHZhciBpbgorKyAgICBfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKSB8IFwKKysg ICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSkgfCBcCisrICAg IF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgfCBcCisrICAgIF9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpIHwgXAorKyAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9j bWRzLCAkMSkgfCBcCisrICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSkg fCBcCisrICAgIF9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMsICQx KSB8IFwKKysgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSkgfCBcCisr ICAgIGV4dHJhY3RfZXhwc3ltc19jbWRzIHwgcmVsb2FkX2NtZHMgfCBmaW5pc2hfY21kcyB8IFwK KysgICAgcG9zdGluc3RhbGxfY21kcyB8IHBvc3R1bmluc3RhbGxfY21kcyB8IFwKKysgICAgb2xk X3Bvc3RpbnN0YWxsX2NtZHMgfCBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAorKyAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMgfCBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYykKKysgICAg ICAjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCisrICAgICAgZXZhbCAibHRf JHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJGRvdWJsZV9xdW90 ZV9zdWJzdFwiIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIiAtZSBcIlwkZGVsYXlfdmFyaWFibGVf c3Vic3RcIlxgXFxcIiIKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIGV2YWwgImx0XyR2YXI9 XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3Rc IlxgXFxcIiIKKysgICAgICA7OworKyAgICBlc2FjCisrICBkb25lCisrCisrICBjYXNlICRsdF9l Y2hvIGluCisrICAqJ1xbJF0wIC0tZmFsbGJhY2stZWNobyInKQorKyAgICBsdF9lY2hvPWAkZWNo byAiWCRsdF9lY2hvIiB8ICRYc2VkIC1lICdzL1xcXFxcXFxbJF0wIC0tZmFsbGJhY2stZWNobyJb JF0vWyRdMCAtLWZhbGxiYWNrLWVjaG8iLydgCisrICAgIDs7CisrICBlc2FjCisrCisraWZlbHNl KFskMV0sIFtdLAorKyAgW2NmZ2ZpbGU9IiR7b2ZpbGV9VCIKKysgIHRyYXAgIiRybSBcIiRjZmdm aWxlXCI7IGV4aXQgMSIgMSAyIDE1CisrICAkcm0gLWYgIiRjZmdmaWxlIgorKyAgQUNfTVNHX05P VElDRShbY3JlYXRpbmcgJG9maWxlXSldLAorKyAgW2NmZ2ZpbGU9IiRvZmlsZSJdKQorKworKyAg Y2F0IDw8X19FT0ZfXyA+PiAiJGNmZ2ZpbGUiCisraWZlbHNlKFskMV0sIFtdLAorK1sjISAkU0hF TEwKKysKKysjIGAkZWNobyAiJGNmZ2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBn ZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBHZW5lcmF0 ZWQgYXV0b21hdGljYWxseSBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFICRWRVJTSU9OJFRJTUVT VEFNUCkKKysjIE5PVEU6IENoYW5nZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBs b29rIGF0IGx0bWFpbi5zaC4KKysjCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdOVSBMaWJ0b29sOgorKyMgT3JpZ2luYWxseSBieSBHb3Jkb24gTWF0emlna2Vp dCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKysjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrIyBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisr IyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0 b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKysjCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRv IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRo aXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3Vy YXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVu ZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUg cmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisrIyBBIHNlZCBwcm9ncmFtIHRoYXQgZG9lcyBub3Qg dHJ1bmNhdGUgb3V0cHV0LgorK1NFRD0kbHRfU0VECisrCisrIyBTZWQgdGhhdCBoZWxwcyB1cyBh dm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlrZSAtbi4KKytY c2VkPSIkU0VEIC1lIDFzL15YLy8iCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVs bCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBz ZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKwor KyMgVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRo aXMgc2NyaXB0LgorK2F2YWlsYWJsZV90YWdzPQorKworKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09O RklHXSwKKytbIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZV0pCisrCisr IyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikg Mj4vZGV2L251bGwgfCBzZWQgMXFgOgorKworKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcg c2hlbGwgc2NyaXB0cy4KKytTSEVMTD0kbHRfU0hFTEwKKysKKysjIFdoZXRoZXIgb3Igbm90IHRv IGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hh cmVkCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1 aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQg LWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xfbmVlZF9s Yz0kX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpCisrCisrIyBXaGV0aGVy IG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3Rh dGljCisrYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRfTFRfQUNfVEFH VkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKQorKworKyMgV2hldGhl ciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uLgorK2Zhc3RfaW5zdGFs bD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAorKworKyMgVGhlIGhvc3Qgc3lzdGVtLgorK2hvc3RfYWxp YXM9JGhvc3RfYWxpYXMKKytob3N0PSRob3N0CisraG9zdF9vcz0kaG9zdF9vcworKworKyMgVGhl IGJ1aWxkIHN5c3RlbS4KKytidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKKytidWlsZD0kYnVpbGQK KytidWlsZF9vcz0kYnVpbGRfb3MKKysKKysjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90 IGludGVycHJldCBiYWNrc2xhc2hlcy4KKytlY2hvPSRsdF9lY2hvCisrCisrIyBUaGUgYXJjaGl2 ZXIuCisrQVI9JGx0X0FSCisrQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCisrCisrIyBBIEMgY29tcGls ZXIuCisrTFRDQz0kbHRfTFRDQworKworKyMgTFRDQyBjb21waWxlciBmbGFncy4KKytMVENGTEFH Uz0kbHRfTFRDRkxBR1MKKysKKysjIEEgbGFuZ3VhZ2Utc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9 JGx0X1tdX0xUX0FDX1RBR1ZBUihjb21waWxlciwgJDEpCisrCisrIyBJcyB0aGUgY29tcGlsZXIg dGhlIEdOVSBDIGNvbXBpbGVyPworK3dpdGhfZ2NjPSRfTFRfQUNfVEFHVkFSKEdDQywgJDEpCisr CisrIyBBbiBFUkUgbWF0Y2hlci4KKytFR1JFUD0kbHRfRUdSRVAKKysKKysjIFRoZSBsaW5rZXIg dXNlZCB0byBidWlsZCBsaWJyYXJpZXMuCisrTEQ9JGx0X1tdX0xUX0FDX1RBR1ZBUihMRCwgJDEp CisrCisrIyBXaGV0aGVyIHdlIG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgorK0xOX1M9JGx0X0xO X1MKKysKKysjIEEgQlNELWNvbXBhdGlibGUgbm0gcHJvZ3JhbS4KKytOTT0kbHRfTk0KKysKKysj IEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtCisrU1RSSVA9JGx0X1NUUklQCisrCisrIyBVc2Vk IHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgor K01BR0lDX0NNRD0kTUFHSUNfQ01ECisrCisrIyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9u IHByb2dyYW0uCisrRExMVE9PTD0iJERMTFRPT0wiCisrCisrIyBVc2VkIG9uIGN5Z3dpbjogb2Jq ZWN0IGR1bXBlci4KKytPQkpEVU1QPSIkT0JKRFVNUCIKKysKKysjIFVzZWQgb24gY3lnd2luOiBh c3NlbWJsZXIuCisrQVM9IiRBUyIKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhh dCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9JG9iamRpcgorKwor KyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KKytyZWxvYWRfZmxhZz0k bHRfcmVsb2FkX2ZsYWcKKytyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKKysKKysjIEhvdyB0 byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCisrd2w9JGx0X1tdX0xU X0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkKKysKKysjIE9iamVjdCBmaWxlIHN1 ZmZpeCAobm9ybWFsbHkgIm8iKS4KKytvYmpleHQ9IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJj aGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIikuCisrbGliZXh0PSIkbGliZXh0IgorKworKyMgU2hh cmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJl eHRfY21kcycKKysKKysjIEV4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytl eGVleHQ9IiRleGVleHQiCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWls ZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X1tdX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpCisrcGljX21vZGU9JHBpY19tb2RlCisrCisrIyBXaGF0IGlz IHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/CisrbWF4X2NtZF9sZW49JGx0X2N2X3N5 c19tYXhfY21kX2xlbgorKworKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0 IC1jIGFuZCAtbyBvcHRpb25zPworK2NvbXBpbGVyX2Nfbz0kbHRfW11fTFRfQUNfVEFHVkFSKGx0 X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSkKKysKKysjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVu IGRvaW5nIGNvbXBpbGF0aW9uPworK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKKysKKysjIERv IHdlIG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/CisrbmVlZF9saWJfcHJlZml4PSRu ZWVkX2xpYl9wcmVmaXgKKysKKysjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/ CisrbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KKysKKysjIFdoZXRoZXIgZGxvcGVuIGlzIHN1 cHBvcnRlZC4KKytkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgorKworKyMgV2hldGhlciBk bG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxv cGVuX3NlbGYKKysKKysjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dy YW1zIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2Vs Zl9zdGF0aWMKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcu CisrbGlua19zdGF0aWNfZmxhZz0kbHRfW11fTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSkKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5j dGlvbnMuCisrbm9fYnVpbHRpbl9mbGFnPSRsdF9bXV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9ub19idWlsdGluX2ZsYWcsICQxKQorKworKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyBy ZWZsZXhpdmUgZGxvcGVucy4KKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X1tdX0xUX0FD X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKQorKworKyMgQ29tcGlsZXIgZmxh ZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3do b2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF9bXV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWMsICQxKQorKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2Fm ZSBvYmplY3RzLgorK3RocmVhZF9zYWZlX2ZsYWdfc3BlYz0kbHRfW11fTFRfQUNfVEFHVkFSKHRo cmVhZF9zYWZlX2ZsYWdfc3BlYywgJDEpCisrCisrIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4K Kyt2ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQorKworKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFt ZSBwcmVmaXguCisrbGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKKysKKysjIExpc3Qgb2Yg YXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUg bGlua3MuCisrIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRz IHdpdGggLWxOQU1FLgorK2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVj CisrCisrIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20g dGhlIHJlYWwgbmFtZS4KKytzb25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKKysKKysjIENvbW1h bmRzIHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrUkFO TElCPSRsdF9SQU5MSUIKKytvbGRfYXJjaGl2ZV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIob2xk X2FyY2hpdmVfY21kcywgJDEpCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5z dGFsbF9jbWRzCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxf Y21kcworKworKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJj aGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIob2xk X2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpCisrCisrIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xk LXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisrb2xk X2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JGx0X1tdX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2 ZV9mcm9tX2V4cHN5bXNfY21kcywgJDEpCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFu ZCBpbnN0YWxsIGEgc2hhcmVkIGFyY2hpdmUuCisrYXJjaGl2ZV9jbWRzPSRsdF9bXV9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkKKythcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9bXV9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpCisrcG9zdGluc3RhbGxfY21kcz0kbHRf cG9zdGluc3RhbGxfY21kcworK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVuaW5zdGFsbF9j bWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIChhc3N1 bWVkIHNhbWUgYXMgYWJvdmUgaWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0X1tdX0xUX0FDX1RB R1ZBUihtb2R1bGVfY21kcywgJDEpCisrbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9bXV9MVF9BQ19U QUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSkKKysKKysjIENvbW1hbmRzIHRvIHN0cmlwIGxp YnJhcmllcy4KKytvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgorK3N0cmlwbGliPSRsdF9z dHJpcGxpYgorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBi ZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmpl Y3RzPSRsdF9bXV9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKQorKworKyMgRGVwZW5k ZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUg YQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3RzPSRsdF9bXV9MVF9BQ19UQUdW QVIocG9zdGRlcF9vYmplY3RzLCAkMSkKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZv cmUgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFy eS4KKytwcmVkZXBzPSRsdF9bXV9MVF9BQ19UQUdWQVIocHJlZGVwcywgJDEpCisrCisrIyBEZXBl bmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0 ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4KKytwb3N0ZGVwcz0kbHRfW11fTFRfQUNfVEFHVkFSKHBv c3RkZXBzLCAkMSkKKysKKysjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBp bGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxpYnJhcnkKKytjb21waWxlcl9saWJfc2Vh cmNoX2RpcnM9JGx0X1tdX0xUX0FDX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQx KQorKworKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBj b21waWxlciB3aGVuIGxpbmtpbmcKKysjIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoPSRsdF9bXV9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRo LCAkMSkKKysKKysjIE1ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMg YXJlIHNoYXJlZCBvYmplY3RzLgorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2No ZWNrX21ldGhvZAorKworKyMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhv ZCA9PSBmaWxlX21hZ2ljLgorK2ZpbGVfbWFnaWNfY21kPSRsdF9maWxlX21hZ2ljX2NtZAorKwor KyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJv bHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X1tdX0xUX0FDX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpCisrCisrIyBGbGFnIHRoYXQgZm9yY2VzIG5vIHVu ZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9bXV9MVF9BQ19UQUdWQVIo bm9fdW5kZWZpbmVkX2ZsYWcsICQxKQorKworKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBs aWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgorK2ZpbmlzaF9jbWRz PSRsdF9maW5pc2hfY21kcworKworKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGEgc2luZ2xlIHNjcmlw dCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0IG5vdCBzaG93bi4KKytmaW5pc2hfZXZhbD0kbHRf ZmluaXNoX2V2YWwKKysKKysjIFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxp c3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMuCisrZ2xvYmFsX3N5bWJvbF9waXBlPSRs dF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1 dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9uCisrZ2xvYmFsX3N5bWJvbF90b19jZGVj bD0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKKysKKysjIFRyYW5zZm9ybSB0 aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpcgorK2dsb2JhbF9zeW1ib2xf dG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h ZGRyZXNzCisrCisrIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFy aWFibGUuCisrcnVucGF0aF92YXI9JHJ1bnBhdGhfdmFyCisrCisrIyBUaGlzIGlzIHRoZSBzaGFy ZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgorK3NobGlicGF0aF92YXI9JHNobGlicGF0aF92YXIK KysKKysjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFy eSBzZWFyY2ggcGF0aD8KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aAorKworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkg cGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2FjdGlvbiwgJDEpCisrCisrIyBXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBs aWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgorK2hhcmRjb2RlX2ludG9fbGlicz0kaGFyZGNv ZGVfaW50b19saWJzCisrCisrIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5h cnkgZHVyaW5nIGxpbmtpbmcuCisrIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRv ZXMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X1tdX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkKKysKKysjIElmIGxkIGlzIHVzZWQg d2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8KKysjIGEgYmluYXJ5 IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMKKysj IG5vdCBleGlzdC4KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9bXV9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpCisrCisrIyBXaGV0aGVyIHdl IG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KKyto YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9bXV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpCisrCisrIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9saWJOQU1F JHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCisrIyBy ZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX2RpcmVjdD0kX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3QsICQxKQorKworKyMgU2V0IHRvIHllcyBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCisrIyByZXN1bHRpbmcgYmluYXJ5 LgorK2hhcmRjb2RlX21pbnVzX0w9JF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEp CisrCisrIyBTZXQgdG8geWVzIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5r aW5nIGhhcmRjb2RlcyBESVIgaW50bworKyMgdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcj0kX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSkKKysKKysjIFNldCB0byB5ZXMgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0 aWNhbGx5IGhhcmRjb2RlcyBESVIgaW50byB0aGUgbGlicmFyeQorKyMgYW5kIGFsbCBzdWJzZXF1 ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkIGFnYWluc3QgaXQuCisraGFyZGNv ZGVfYXV0b21hdGljPSRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpCisrCisr IyBWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBw ZXIgc2NyaXB0cyBhbmQKKysjIHJlc3RvcmVkIGF0IHJlbGluayB0aW1lLgorK3ZhcmlhYmxlc19z YXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsiCisrCisrIyBXaGV0 aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5j eSBsaWJyYXJpZXMuCisrbGlua19hbGxfZGVwbGlicz0kX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9k ZXBsaWJzLCAkMSkKKysKKysjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxp YnJhcmllcworK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjCisrCisrIyBSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcwor K3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl YworKworKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxl ci4KKytmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCisrCisrIyBTZXQgdG8g eWVzIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgorK2Fsd2F5c19leHBvcnRfc3lt Ym9scz0kX0xUX0FDX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKQorKworKyMgVGhl IGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KKytleHBvcnRfc3ltYm9sc19jbWRz PSRsdF9bXV9MVF9BQ19UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpCisrCisrIyBUaGUg Y29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJl ZCBhcmNoaXZlLgorK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21k cworKworKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2Fk ZWQgc3ltYm9scy4KKytleGNsdWRlX2V4cHN5bXM9JGx0X1tdX0xUX0FDX1RBR1ZBUihleGNsdWRl X2V4cHN5bXMsICQxKQorKworKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVk LgorK2luY2x1ZGVfZXhwc3ltcz0kbHRfW11fTFRfQUNfVEFHVkFSKGluY2x1ZGVfZXhwc3ltcywg JDEpCisrCisraWZlbHNlKFskMV0sW10sCisrWyMgIyMjIEVORCBMSUJUT09MIENPTkZJR10sCisr WyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXSkKKysKKytfX0VPRl9fCisr CisraWZlbHNlKFskMV0sW10sIFsKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGFpeDMqKQorKyAg ICBjYXQgPDxcRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIEFJWCBzb21ldGltZXMgaGFzIHByb2Js ZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysjIHJlYXNvbiwg aWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJv YmxlbXMKKysjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCisraWYgdGVzdCAiWCR7Q09MTEVD VF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICBDT0xMRUNUX05BTUVTPQorKyAgZXhwb3J0 IENPTExFQ1RfTkFNRVMKKytmaQorK0VPRgorKyAgICA7OworKyAgZXNhYworKworKyAgIyBXZSB1 c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2Vk IGlmCisrICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ug c2VkIG9wZXJhdGVzIGluCisrICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGlu ZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQorKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVk LCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KKysgIHNlZCAnJHEnICIkbHRt YWluIiA+PiAiJGNmZ2ZpbGUiIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCisrCisrICBt diAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8IFwKKysgICAgKHJtIC1mICIkb2ZpbGUiICYmIGNw ICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKKysgIGNobW9kICt4ICIk b2ZpbGUiCisrXSkKKytlbHNlCisrICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxlIHlldCwgd2Ug cmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCisrICAjIGBjb25maWcuc3RhdHVzIC0tcmVj aGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKKysgICMgbGlidG9vbCBz Y3JpcHQgdGhlbi4KKysgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1lICdzL1wuc2gk Ly5pbi8nYAorKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KKysgICAgdGVzdCAtZiBN YWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgorKyAgZmkKKytmaQorK10pIyBBQ19MSUJUT09MX0NP TkZJRworKworKworKyMgQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEkoW1RBR05BTUVd KQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RF RlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9fUlRUSV0sCisrW0FDX1JFUVVJUkUoW19M VF9BQ19TWVNfQ09NUElMRVJdKWRubAorKworK19MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxl cl9ub19idWlsdGluX2ZsYWcsICQxKT0KKysKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KyAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScg LWZuby1idWlsdGluJworKworKyAgQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21w aWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwKKysgICAgbHRfY3ZfcHJv Z19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMsCisrICAgIFstZm5vLXJ0dGkgLWZuby1leGNlcHRp b25zXSwgW10sCisrICAgIFtfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnLCAkMSk9IiRfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnLCAkMSkgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyJdKQorK2ZpCisrXSkjIEFDX0xJQlRP T0xfUFJPR19DT01QSUxFUl9OT19SVFRJCisrCisrCisrIyBBQ19MSUJUT09MX1NZU19HTE9CQUxf U1lNQk9MX1BJUEUKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RF RlVOKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEVdLAorK1tBQ19SRVFVSVJFKFtB Q19DQU5PTklDQUxfSE9TVF0pCisrQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKQorK0FDX1JF UVVJUkUoW0FDX1BST0dfTk1dKQorK0FDX1JFUVVJUkUoW0FDX09CSkVYVF0pCisrIyBDaGVjayBm b3IgY29tbWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1i b2wgZnJvbSBubS4KKytBQ19NU0dfQ0hFQ0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1 dCBmcm9tICRjb21waWxlciBvYmplY3RdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZV0sCisrWworKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3Jr IG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJp eC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0 ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tb QkNERUdSU1RdXScKKysKKysjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFj Y2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KKytzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXow LTldXSpcKScKKysKKysjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBh IHByb3BlciBDIGRlY2xhcmF0aW9uCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9 InNlZCAtbiAtZSAncy9eLiAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDE7L3AnIgorKworKyMgVHJh bnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1i b2wgYWRkcmVzcworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJz ZWQgLW4gLWUgJ3MvXjogXChbW14gXV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwv cCcgLWUgJ3MvXiRzeW1jb2RlIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcIlwyXCIsIChs dF9wdHIpIFwmXDJ9LC9wJyIKKysKKysjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVz LgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgqKQorKyAgc3ltY29kZT0nW1tCQ0RUXV0nCisrICA7 OworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKysgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0n CisrICA7OworK2hwdXgqKSAjIEl0cyBsaW5rZXIgZGlzdGluZ3Vpc2hlcyBkYXRhIGZyb20gY29k ZSBzeW1ib2xzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICBzeW1j b2RlPSdbW0FCQ0RFR1JTVF1dJworKyAgZmkKKysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1l ICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCisrICBsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW1te IF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKGx0X3B0cikgMH0sL3AnIC1lICdzL14kc3ltY29kZSog XChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wiXDJcIiwgKGx0X3B0cikgXCZcMn0sL3AnIgor KyAgOzsKKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlh NjQ7IHRoZW4KKysgICAgc3ltY29kZT0nW1tBQkNER0lSU1RXXV0nCisrICAgIGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4g aW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsv cCciCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQg LW4gLWUgJ3MvXjogXChbW14gXV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcg LWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJcMlwiLCAobHRf cHRyKSBcJlwyfSwvcCciCisrICBmaQorKyAgOzsKKytpcml4KiB8IG5vbnN0b3B1eCopCisrICBz eW1jb2RlPSdbW0JDREVHUlNUXV0nCisrICA7OworK29zZiopCisrICBzeW1jb2RlPSdbW0JDREVH UVJTVF1dJworKyAgOzsKKytzb2xhcmlzKikKKysgIHN5bWNvZGU9J1tbQkRSVF1dJworKyAgOzsK KytzY28zLjJ2NSopCisrICBzeW1jb2RlPSdbW0RUXV0nCisrICA7OworK3N5c3Y0LjJ1dzIqKQor KyAgc3ltY29kZT0nW1tEVF1dJworKyAgOzsKKytzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUq IHwgT3BlblVOSVgqKQorKyAgc3ltY29kZT0nW1tBQkRUXV0nCisrICA7OworK3N5c3Y0KQorKyAg c3ltY29kZT0nW1tERk5TVFVdXScKKysgIDs7CisrZXNhYworKworKyMgSGFuZGxlIENSTEYgaW4g bWluZ3cgdG9vbCBjaGFpbgorK29wdF9jcj0KKytjYXNlICRidWlsZF9vcyBpbgorK21pbmd3KikK KysgIG9wdF9jcj1gZWNobyAneFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGlu IHJlZ2V4cAorKyAgOzsKKytlc2FjCisrCisrIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4g dXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCisrY2FzZSBgJE5NIC1WIDI+JjFgIGluCisr KkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBzeW1jb2RlPSdbW0FCQ0RHSVJTVFddXScgOzsKKytl c2FjCisrCisrIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcmNvcmUsIHRoZW4gd2l0aCBpdC4K Kytmb3IgYWNfc3ltcHJmeCBpbiAiIiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9ybSBzeW1jb2Rl LCBzeW1wYXQsIGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgor KyAgc3lteGZybT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3JpdGUgdGhlIHJh dyBhbmQgQyBpZGVudGlmaWVycy4KKysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNl ZCAtbiAtZSAncy9eLipbWyAJXV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWyAJXV1bWyAJXV0qJGFj X3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisrCisrICAjIENoZWNrIHRvIHNl ZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KKysgIHBpcGVfd29ya3M9bm8KKysKKysg IHJtIC1mIGNvbmZ0ZXN0KgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgorKyNpZmRl ZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorK2NoYXIgbm1fdGVzdF92YXI7 Cisrdm9pZCBubV90ZXN0X2Z1bmMoKXt9CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRp ZgorK2ludCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9 CisrRU9GCisrCisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICAjIE5v dyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KKysgICAgbmxpc3Q9Y29uZnRlc3Qubm0KKysgICAg aWYgQUNfVFJZX0VWQUwoTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZSBcPiAkbmxpc3QpICYmIHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KKysgICAg ICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgorKyAgICAgIGlmIHNv cnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlzdCJUOyB0aGVuCisrCW12IC1mICIkbmxpc3QiVCAi JG5saXN0IgorKyAgICAgIGVsc2UKKysJcm0gLWYgIiRubGlzdCJUCisrICAgICAgZmkKKysKKysg ICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQu CisrICAgICAgaWYgZ3JlcCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhl bgorKwlpZiBncmVwICcgbm1fdGVzdF9mdW5jJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgor KwkgIGNhdCA8PEVPRiA+IGNvbmZ0ZXN0LiRhY19leHQKKysjaWZkZWYgX19jcGx1c3BsdXMKKytl eHRlcm4gIkMiIHsKKysjZW5kaWYKKysKKytFT0YKKysJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3lt Ym9sIGZpbGUuCisrCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicg PCAiJG5saXN0IiB8IGdyZXAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0JworKworKwkgIGNh dCA8PEVPRiA+PiBjb25mdGVzdC4kYWNfZXh0CisrI2lmIGRlZmluZWQgKF9fU1REQ19fKSAmJiBf X1NURENfXworKyMgZGVmaW5lIGx0X3B0cl90IHZvaWQgKgorKyNlbHNlCisrIyBkZWZpbmUgbHRf cHRyX3QgY2hhciAqCisrIyBkZWZpbmUgY29uc3QKKysjZW5kaWYKKysKKysvKiBUaGUgbWFwcGlu ZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gKi8KKytjb25zdCBzdHJ1Y3Qgewor KyAgY29uc3QgY2hhciAqbmFtZTsKKysgIGx0X3B0cl90IGFkZHJlc3M7CisrfQorK2x0X3ByZWxv YWRlZF9zeW1ib2xzW1tdXSA9CisreworK0VPRgorKwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNv ZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwgKGx0X3B0cl90KSBcJlwyfSwvIiA8ICIkbmxp c3QiIHwgZ3JlcCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQKKysJICBjYXQgPDxcRU9GID4+ IGNvbmZ0ZXN0LiRhY19leHQKKysgIHswLCAobHRfcHRyX3QpIDB9CisrfTsKKysKKysjaWZkZWYg X19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisrRU9GCisrCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhl IHR3byBmaWxlcy4KKysJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpl eHQKKysJICBsdF9zYXZlX0xJQlM9IiRMSUJTIgorKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdT IgorKwkgIExJQlM9ImNvbmZ0c3RtLiRhY19vYmpleHQiCisrCSAgQ0ZMQUdTPSIkQ0ZMQUdTJF9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSIKKysJICBp ZiBBQ19UUllfRVZBTChhY19saW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0 aGVuCisrCSAgICBwaXBlX3dvcmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3NhdmVfTElC UyIKKysJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8gImNhbm5v dCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysJZmkK KysgICAgICBlbHNlCisrCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIg PiZBU19NRVNTQUdFX0xPR19GRAorKyAgICAgIGZpCisrICAgIGVsc2UKKysgICAgICBlY2hvICJj YW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JkFTX01FU1NBR0VfTE9H X0ZECisrICAgIGZpCisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCisrCisrICAjIERvIG5vdCB1 c2UgdGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCisrICBpZiB0ZXN0ICIk cGlwZV93b3JrcyIgPSB5ZXM7IHRoZW4KKysgICAgYnJlYWsKKysgIGVsc2UKKysgICAgbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0KKysgIGZpCisrZG9uZQorK10pCisraWYgdGVzdCAteiAi JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrICBsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF90b19jZGVjbD0KKytmaQorK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgorKyAgQUNf TVNHX1JFU1VMVChmYWlsZWQpCisrZWxzZQorKyAgQUNfTVNHX1JFU1VMVChvaykKKytmaQorK10p ICMgQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBFCisrCisrCisrIyBBQ19MSUJUT09M X1BST0dfQ09NUElMRVJfUElDKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElD XSwKKytbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9CisrX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorK19MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9zdGF0aWMsICQxKT0KKysKKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkY29tcGlsZXIg b3B0aW9uIHRvIHByb2R1Y2UgUElDXSkKKysgaWZlbHNlKFskMV0sW0NYWF0sWworKyAgIyBDKysg c3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgorKyAgaWYgdGVzdCAiJEdY WCIgPSB5ZXM7IHRoZW4KKysgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAg ICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2 NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIGZp CisrICAgICAgOzsKKysgICAgYW1pZ2FvcyopCisrICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBs ZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICMg YWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhp bmcgYmV0dGVyLAorKyAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlz LXJlc3RvcmUtYTQnCisrICAgICAgOzsKKysgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBu b25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBk ZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGN5Z3dpbiog fCBvczIqIHwgcHczMiopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNl IGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGlu Y2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSku CisrICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBu ZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkg bGlicmFyaWVzCisrICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7Owor KyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9u IHRoaXMgcGxhdGZvcm0KKysgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1I X0RZTElCIGZpbGVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctZm5vLWNvbW1vbicKKysgICAgICA7OworKyAgICAqZGpncHAqKQorKyAgICAgICMgREpH UFAgZG9lcyBub3Qgc3VwcG9ydCBzaGFyZWQgbGlicmFyaWVzIGF0IGFsbAorKyAgICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KKysgICAgICA7OworKyAgICBpbnRl cml4W1szLTldXSopCisrICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9u cyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KKysgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNo YXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KKysgICAgICA7OworKyAgICBzeXN2NCpNUCopCisr ICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysg ICAgaHB1eCopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5k IDY0LWJpdCBIUC1VWCwgYnV0CisrICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgorKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCisrICAgICAgaHBwYSo2NCp8aWE2NCopCisrCTs7CisrICAgICAgKikK KysJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysJOzsK KysgICAgICBlc2FjCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKyAgICAgIDs7CisrICAgIGVzYWMKKysg IGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeFtbNC05XV0qKQorKwkjIEFs bCBBSVggY29kZSBpcyBQSUMuCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisr CSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJICBfTFRfQUNfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwllbHNlCisrCSAgX0xU X0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9z eXNjYWxscy5leHAnCisrCWZpCisrCTs7CisrICAgICAgY2hvcnVzKikKKysJY2FzZSAkY2NfYmFz ZW5hbWUgaW4KKysJY3hjaDY4KikKKysJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkg ICMgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSItLW5vX2F1dG9f aW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9E SVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xh c3NpeC9saWJjeC5zLmEiCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgICBkYXJ3aW4qKQor KyAgICAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAg ICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAgICAg ICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgIHhsYyopCisrICAgICAgICAgICBf TFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xbm9jb21tb24nCisrICAg ICAgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysg ICAgICAgICAgIDs7CisrICAgICAgICAgZXNhYworKyAgICAgICA7OworKyAgICAgIGRndXgqKQor KwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIGVjKysqKQorKwkgICAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJICAgIDs7CisrCSAgZ2hjeCopCisr CSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsK KysJZXNhYworKwk7OworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysJIyBGcmVlQlNE IHVzZXMgR05VIEMrKworKwk7OworKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQor KwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIF9MVF9BQ19UQUdWQVIobHRf cHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwkgICAgICBfTFRfQUNfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9JytaJworKwkgICAgZmkKKysJICAgIDs7CisrCSAgYUNDKikK KysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7 d2x9YXJjaGl2ZScKKysJICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KnxpYTY0 KikKKysJICAgICAgIyArWiB0aGUgZGVmYXVsdAorKwkgICAgICA7OworKwkgICAgKikKKysJICAg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicKKysJICAgICAg OzsKKysJICAgIGVzYWMKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsK KysgICAgICBpbnRlcml4KikKKysJIyBUaGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMr KyAobm8gc2hhcmVkIGxpYnMpCisrCSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKysJOzsK KysgICAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKwljYXNlICRjY19iYXNlbmFt ZSBpbgorKwkgIENDKikKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctV2wsJworKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctbm9uX3NoYXJlZCcKKysJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1 bHQuCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgbGlu dXgqIHwgaypic2QqLWdudSkKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBLQ0MqKQorKwkg ICAgIyBLQUkgQysrIENvbXBpbGVyCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKwkgICAgOzsKKysJICBpY3BjKiB8IGVjcGMqKQor KwkgICAgIyBJbnRlbCBDKysKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJworKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctS1BJQycKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMs ICQxKT0nLXN0YXRpYycKKysJICAgIDs7CisrCSAgcGdDQyogfCBwZ2NwcCopCisrCSAgICAjIFBv cnRsYW5kIEdyb3VwIEMrKyBjb21waWxlci4KKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctZnBpYycKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxl cl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAjIENv bXBhcSBDKysKKysJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFw cGVhcnMgdGhhdCBhbGwgQWxwaGEKKysJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4 IG9iamVjdHMgYXJlIFBJQy4KKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0KKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nLW5vbl9zaGFyZWQnCisrCSAgICA7OworKwkgICopCisrCSAgICBjYXNlIGAkQ0MgLVYgMj4m MSB8IHNlZCA1cWAgaW4KKysJICAgICpTdW5cIEMqKQorKwkgICAgICAjIFN1biBDKysgNS45Cisr CSAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisr CSAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0 aWMnCisrCSAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9w dGlvbiBsZCAnCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKwllc2FjCisrCTs7 CisrICAgICAgbHlueG9zKikKKysJOzsKKysgICAgICBtODhrKikKKysJOzsKKysgICAgICBtdnMq KQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIGN4eCopCisrCSAgICBfTFRfQUNfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1XIGMsZXhwb3J0YWxsJworKwkgICAgOzsKKysJ ICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIG5ldGJzZCopCisrCTs7CisrICAg ICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIEtD QyopCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNr ZW5kIC1XbCwnCisrCSAgICA7OworKwkgIFJDQyopCisrCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQu MQorKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwor KwkgICAgOzsKKysJICBjeHgqKQorKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysKKysJICAgIF9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgIyBNYWtl IHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQor KwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgorKwkg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKwkgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysJICAg IDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBwc29zKikKKysJOzsK KysgICAgICBzb2xhcmlzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAg ICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCisrCSAgICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCisrCSAgICA7Owor KwkgIGdjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctUElDJworKwkgICAgOzsKKysJICAq KQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHN1bm9zNCopCisrCWNhc2UgJGNjX2Jh c2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQueAorKwkgICAgX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIDs7CisrCSAg bGNjKikKKysJICAgICMgTHVjaWQKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLXBpYycKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJ OzsKKysgICAgICB0YW5kZW0qKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5DQyopCisr CSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwll c2FjCisrCTs7CisrICAgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2 KiB8IE9wZW5VTklYKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICBf TFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgOzsK KysJZXNhYworKwk7OworKyAgICAgIHZ4d29ya3MqKQorKwk7OworKyAgICAgICopCisrCV9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KKysJOzsK KysgICAgZXNhYworKyAgZmkKKytdLAorK1sKKysgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu CisrICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAg ICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisr CisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBj b2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkj IEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlfTFRfQUNfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsK KysKKysgICAgYW1pZ2FvcyopCisrICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAy MCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICMgYWRkaW5nIHRo ZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVy LAorKyAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUt YTQnCisrICAgICAgOzsKKysKKysgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9w dXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0 IGZvciB0aGVzZSBPU2VzLgorKyAgICAgIDs7CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBw dzMyKiB8IG9zMiopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZp bGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1 c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisr ICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVk IHRoaXMgZm9yIG9sZC1zdHlsZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGli cmFyaWVzCisrICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKwor KyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9u IHRoaXMgcGxhdGZvcm0KKysgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1I X0RZTElCIGZpbGVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctZm5vLWNvbW1vbicKKysgICAgICA7OworKworKyAgICBpbnRlcml4W1szLTldXSopCisr ICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9r ZW4gY29kZS4KKysgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMg YXQgcnVudGltZS4KKysgICAgICA7OworKworKyAgICBtc2Rvc2RqZ3BwKikKKysgICAgICAjIEp1 c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVk IGxpYnJhcmllcworKyAgICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4K KysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwg JDEpPW5vCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0 Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZvcm1fcGljCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBocHV4KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2 NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVgu CisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyAr WiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7Cisr CisrICAgICopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctZlBJQycKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgICMgUE9SVE1FIENo ZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21w aWxlci4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgIGlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vz c29yCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0 aWMnCisrICAgICAgZWxzZQorKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysgICAgICBmaQorKyAgICAgIDs7 CisrICAgICAgZGFyd2luKikKKysgICAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMg cGxhdGZvcm0KKysgICAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlM SUIgZmlsZXMKKysgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICB4bGMqKQor KyAgICAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFub2Nv bW1vbicKKysgICAgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKKysgICAgICAgICA7OworKyAgICAgICBlc2FjCisrICAgICAgIDs7CisrCisrICAgIG1p bmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28g dGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAg ICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9s cyBmb3IgZXhhbXBsZSkuCisrICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAg ICA7OworKworKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysgICAgICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAj IG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBh KjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCisrCTs7CisrICAgICAgZXNh YworKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhh dCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPworKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrICAgICAgOzsK KysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgICAgICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAt S1BJQykgaXMgdGhlIGRlZmF1bHQuCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBuZXdzb3M2 KQorKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMn CisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKKysgICAgICA7OworKworKyAgICBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgaWNjKiB8IGVjYyopCisrCV9MVF9BQ19UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisrICAgICAgICA7OworKyAgICAgIHBnY2MqIHwgcGdm NzcqIHwgcGdmOTAqIHwgcGdmOTUqKQorKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxl cnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKKysJIyB3aGljaCBsb29rcyB0byBi ZSBhIGRlYWQgcHJvamVjdCkKKysJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZw aWMnCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0 aWMnCisrICAgICAgICA7OworKyAgICAgIGNjYyopCisrICAgICAgICBfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAgICMgQWxsIEFscGhhIGNvZGUg aXMgUElDLgorKyAgICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctbm9uX3NoYXJlZCcKKysgICAgICAgIDs7CisrICAgICAgKikKKysgICAgICAgIGNhc2Ug YCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQor KwkgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAg X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJ ICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICA7Owor KwkqU3VuXCBGKikKKysJICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXpl ZCBmbGFncyB0byB0aGUgbGlua2VyCisrCSAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctS1BJQycKKysJICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJworKwkgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPScnCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7Owor KworKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQ SUMuCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct bm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICByZG9zKikKKysgICAgICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7 CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLUtQSUMnCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAg ICAgIGY3NyogfCBmOTAqIHwgZjk1KikKKysJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIobHRf cHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7Cisr CisrICAgIHN1bm9zNCopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1Rb3B0aW9uIGxkICcKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1QSUMnCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0 LjJ1dzIqIHwgc3lzdjQuMyopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctS1BJQycKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAg ICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLUtjb25mb3JtX3BpYycKKysJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisr ICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCop CisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisr ICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysg ICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JworKyAgICAgIDs7CisrCisrICAgIHVuaWNvcyopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgIHV0 czQqKQorKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBp YycKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1C c3RhdGljJworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKyAgICAgIDs7CisrICAgIGVz YWMKKysgIGZpCisrXSkKKytBQ19NU0dfUkVTVUxUKFskX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpXSkKKysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBm bGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKytpZiB0ZXN0IC1uICIkX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpIjsgdGhlbgorKyAgQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJ T04oW2lmICRjb21waWxlciBQSUMgZmxhZyAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpIHdvcmtzXSwKKysgICAgX0xUX0FDX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVy X3BpY193b3JrcywgJDEpLAorKyAgICBbJF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKWlmZWxzZShbJDFdLFtdLFsgLURQSUNdLFtpZmVsc2UoWyQxXSxbQ1hYXSxbIC1EUElD XSxbXSldKV0sIFtdLAorKyAgICBbY2FzZSAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpIGluCisrICAgICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBfTFRfQUNfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9IiAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpIiA7OworKyAgICAgZXNhY10sCisrICAgIFtfTFRfQUNfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9CisrICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vXSkKKytmaQorK2Nhc2UgJGhvc3Rfb3MgaW4KKysg ICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5p bmdsZXNzOgorKyAgKmRqZ3BwKikKKysgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPQorKyAgICA7OworKyAgKikKKysgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSIkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp aWZlbHNlKFskMV0sW10sWyAtRFBJQ10sW2lmZWxzZShbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0p IgorKyAgICA7OworK2VzYWMKKysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRp YyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSkgZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpXCIKKytBQ19MSUJUT09MX0xJTktFUl9PUFRJT04o W2lmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzXSwKKysg IF9MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MsICQxKSwKKysg ICRsdF90bXBfc3RhdGljX2ZsYWcsCisrICBbXSwKKysgIFtfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9XSkKKytdKQorKworKworKyMgQUNfTElCVE9PTF9QUk9HX0xE X1NITElCUyhbVEFHTkFNRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIFNlZSBpZiB0aGUgbGlua2VyIHN1cHBvcnRzIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJp ZXMuCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdLAorK1tBQ19SRVFVSVJF KFtMVF9BQ19QUk9HX1NFRF0pZG5sCisrQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29t cGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorK2lmZWxzZShb JDFdLFtDWFhdLFsKKysgIF9MVF9BQ19UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSck Tk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wn J3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICBjYXNlICRo b3N0X29zIGluCisrICBhaXhbWzQtOV1dKikKKysgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0s IHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisrICAgICMgLUMgbWVhbnMgZGVt YW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysg ICAgaWYgJE5NIC1WIDI+JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAg X0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpz ICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcWyRdMiA9PSAiVCIpIHx8IChcWyRdMiA9 PSAiRCIpIHx8IChcWyRdMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXFskXTMsMSwxKSAhPSAiLiIp KSB7IHByaW50IFxbJF0zIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKyAg ICBlbHNlCisrICAgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyRO TSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXFskXTIgPT0g IlQiKSB8fCAoXFskXTIgPT0gIkQiKSB8fCAoXFskXTIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFxb JF0zLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcWyRdMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBv cnRfc3ltYm9scycKKysgICAgZmkKKysgICAgOzsKKysgIHB3MzIqKQorKyAgICBfTFRfQUNfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0iJGx0ZGxsX2NtZHMiCisrICA7OworKyAgY3ln d2luKiB8IG1pbmd3KikKKysgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAk MSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNF RCAtZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFUQS87 L14uKltbIF1dX19ubV9fL3MvXi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9c MSBEQVRBLzsvXklbWyBdXS9kOy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0 IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIDs7CisrICAqKQorKyAgICBfTFRfQUNfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlx ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsKKysgIGVzYWMKKysgIF9MVF9BQ19UQUdWQVIoZXhj bHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1f LionXQorK10sWworKyAgcnVucGF0aF92YXI9CisrICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSk9CisrICBfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0 aWNfcnVudGltZXMsICQxKT1ubworKyAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0K KysgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorKyAgX0xUX0FDX1RB R1ZBUihvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzLCAkMSk9CisrICBfTFRfQUNfVEFHVkFSKG9s ZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzLCAkMSk9CisrICBfTFRfQUNfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorKyAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYywgJDEpPQorKyAgX0xUX0FDX1RBR1ZBUih0aHJlYWRfc2FmZV9mbGFnX3NwZWMs ICQxKT0KKysgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQor KyAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKysgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bWludXNfTCwgJDEpPW5vCisrICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKT11bnN1cHBvcnRlZAorKyAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9 dW5rbm93bgorKyAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworKyAg X0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQorKyAgX0xUX0FDX1RBR1ZBUihtb2R1bGVf ZXhwc3ltX2NtZHMsICQxKT0KKysgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xz LCAkMSk9bm8KKysgIF9MVF9BQ19UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0g JGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3Mv LiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAjIGluY2x1ZGVf ZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJl ICphbHdheXMqCisrICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAorKyAgX0xUX0FDX1RB R1ZBUihpbmNsdWRlX2V4cHN5bXMsICQxKT0KKysgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBh biBleHRlbmRlZCByZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCisrICAjIGl0IHdpbGwgYmUg d3JhcHBlZCBieSBgICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5n IG9yCisrICAjIGVuZCBvZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVk ZSB0aGUgc3ltYm9scyBgYScgYW5kIGBiYycsCisrICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0 aGF0IGNvbnRhaW5zIGBkJy4KKysgIF9MVF9BQ19UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9 WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQorKyAgIyBBbHRob3Vn aCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEu b3V0CisrICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlu a2VycyBnZXQgY29uZnVzZWQgaWYKKysgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVy ZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAorKyAgIyByZWx5IG9uIHRoaXMgc3lt Ym9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCisrICAj IHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgorKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGlu aXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xzLgorK2RubCBOb3RlIGFsc28gYWRqdXN0 IGV4Y2x1ZGVfZXhwc3ltcyBmb3IgQysrIGFib3ZlLgorKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9 CisrICAjIEp1c3QgYmVpbmcgcGFyYW5vaWQgYWJvdXQgZW5zdXJpbmcgdGhhdCBjY19iYXNlbmFt ZSBpcyBzZXQuCisrICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrICBjYXNlICRob3N0 X29zIGluCisrICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICAgICMgRklYTUU6IHRoZSBN U1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKKysgICAgIyBX aGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcK KysgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVz OyB0aGVuCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgZmkKKysgICAgOzsKKysgIGludGVy aXgqKQorKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkg KD0gTVNWQysrKQorKyAgICB3aXRoX2dudV9sZD15ZXMKKysgICAgOzsKKysgIG9wZW5ic2QqKQor KyAgICB3aXRoX2dudV9sZD1ubworKyAgICA7OworKyAgZXNhYworKworKyAgX0xUX0FDX1RBR1ZB UihsZF9zaGxpYnMsICQxKT15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRo ZW4KKysgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQg YmUgZW1wdHkKKysgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAjIFNldCBzb21lIGRlZmF1bHRz IGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorKyAgICAjIGFy ZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0 aW5nIHRoZW0KKysgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVj ZXNzYXJ5LgorKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRp cicKKysgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3 bH0tLWV4cG9ydC1keW5hbWljJworKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0 IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisrICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAg J25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIod2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVu aWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICBlbHNlCisrICAJX0xU X0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorKyAgICBmaQorKyAgICBz dXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KKysgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxs YCBpbgorKyAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjEwLiopIDs7 ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCisrICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBv cnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KKysgICAgICAqXCAyLjExLjky LjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIg Li4uCisrICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKKysgICAgICAq KSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBT ZWUgaWYgR05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgYWl4W1szLTldXSopCisrICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxp bmtlciBpcyB2ZXJ5IGJyb2tlbgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsg dGhlbgorKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCWNhdCA8PEVPRiAxPiYy CisrCisrKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNl IDIuOS4xLCBpcyByZXBvcnRlZAorKyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRl IHNoYXJlZCBsaWJyYXJpZXMgb24gQUlYLgorKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlz YWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQorKyoqKiByZWFsbHkgY2Fy ZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgK KysqKiogc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0 LgorKworK0VPRgorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAg ICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJHJtICRvdXRwdXRfb2JqZGlyL2Ey aXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29i amRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91 dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBWRVJTSU9OICRtYWpv ciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBSRVZJ U0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRB Ul9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYg YTJpeGxpYnJhcnkgLTMyKScKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bWludXNfTCwgJDEpPXllcworKworKyAgICAgICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFA ZG9scGhpbi5vcGVucHJvamVjdHMubmV0PiByZXBvcnRzCisrICAgICAgIyB0aGF0IHRoZSBzZW1h bnRpY3Mgb2YgZHluYW1pYyBsaWJyYXJpZXMgb24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKKysgICAg ICAjIHRvIHZlcnNpb24gNCwgaXMgdG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFt cyBsaW5rZWQKKysgICAgICAjIHdpdGggdGhlIHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2Ug dGhpcyBkb2Vzbid0IG1hdGNoIHRoZQorKyAgICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJh cmllcyBvbiBvdGhlciBwbGF0Zm9ybXMsIHdlIGNhbid0IHVzZQorKyAgICAgICMgdGhlbS4KKysg ICAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAg YmVvcyopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFy Z2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIz QGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisrCSMgc3VwcG9ydCAtLXVuZGVm aW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgICAg IGVsc2UKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQorKyAgICAgICMgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmlu Z2xlc3MsCisrICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysg ICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGli ZGlyJworKyAgICAgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1 cHBvcnRlZAorKyAgICAgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9 bm8KKysgICAgICBfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXMsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQx KT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VE IC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLydc JycgLWUgJ1wnJy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ ICRleHBvcnRfc3ltYm9scycKKysKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICdh dXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1i YXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKwkjIElmIHRoZSBleHBv cnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCisrCSMgaXMg RVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisrCV9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9y dF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0 cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJZWxzZQorKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWZpfgorKwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRp ci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAt LW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysgICAgICBlbHNlCisrCV9MVF9BQ19UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGludGVyaXhb WzMtOV1dKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisr ICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAg ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBh dGgsJGxpYmRpcicKKysgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YywgJDEpPScke3dsfS1FJworKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5v dCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KKysgICAgICAjIEluc3RlYWQs IHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAw IGJ5CisrICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdo aWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorKyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFnbWVu dGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKKysgICAgICAj IDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZD MDAwMCBhdCBsaW5rCisrICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBh bHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtS QU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysg ICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywi ICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFy ZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRz b25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5l eHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCog MjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysgICAgICA7OworKworKyAgICBnbnUqIHwg bGludXgqIHwgaypic2QqLWdudSkKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6 IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJdG1wX2FkZGZs YWc9CisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKwlwZ2NjKikJCQkJIyBQb3J0 bGFuZCBHcm91cCBDIGNvbXBpbGVyCisrCSAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVu Y2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19j b252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3 bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCisrCSAg OzsKKysJcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQg ZjkwIGNvbXBpbGVycworKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsg ZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVu Y2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13 aG9sZS1hcmNoaXZlJworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7Owor KwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0Cisr CSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlh NjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRmbGFnPScg LWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZv cnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OworKwllc2Fj CisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikJCQkjIFN1biBD IDUuOQorKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmll bmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19j b252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3 bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkqU3Vu XCBGKikJCQkjIFN1biBGb3J0cmFuIDguMworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKysJ KikKKysJICB0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcgOzsKKysJZXNhYworKwlfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxh ZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAtbyAkbGliJworKworKwlpZiB0ZXN0ICRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5 ZXM7IHRoZW4KKysJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJGVj aG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrICBjYXQgJGV4 cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS52ZXJ+CisrICAkZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS52ZXJ+CisrCSAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg JHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8g JGxpYicKKysJZmkKKysgICAgICBlbHNlCisrCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNo byBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlf TFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJworKwl3bGFyYz0KKysgICAgICBlbHNlCisr CV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwor KwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7 d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAg ICAgZmkKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysgICAgICBpZiAkTEQgLXYgMj4m MSB8IGdyZXAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrCWNhdCA8PEVPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IFRoZSBy ZWxlYXNlcyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKKysqKiogY3Jl YXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0 b29sCisrKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdl IHlvdSB0byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5l d2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21w aWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNl ZCwgYW5kIHRoZW4gcmVzdGFydC4KKysKKytFT0YKKysgICAgICBlbGlmICRMRCAtLWhlbHAgMj4m MSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgor KwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicK KysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAk e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAg ICAgIGVsc2UKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisr ICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJl KiB8IE9wZW5VTklYKikKKysgICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAgICAgICpc IFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjFbWzAtNV1dLiopCisrCV9MVF9BQ19U QUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdh cm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNh biBub3QKKysqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3Rl bXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJp ZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRv IHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2Rp ZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUg bmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9F T0YKKysJOzsKKysJKikKKysJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRl ZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYm IGVjaG8gJHt3bH0tcnBhdGgsJGxpYmRpcmAnCisrCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1v ICRsaWInCisrCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxc JHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSwtcmV0YWluLXN5bWJvbHMt ZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBfTFRfQUNfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAg OzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGlm ICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9k ZXYvbnVsbDsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgLW8gJGxpYicKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBpZiB0ZXN0ICIkX0xU X0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubzsgdGhlbgorKyAgICAgIHJ1bnBhdGhfdmFy PQorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQor KyAgICAgIF9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrICAg ICAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorKyAgICBmaQor KyAgZWxzZQorKyAgICAjIFBPUlRNRSBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0 ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQpCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4 MyopCisrICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3Vw cG9ydGVkCisrICAgICAgX0xUX0FDX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15 ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJExEIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAt YkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGli ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJk Y29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUKKysgICAgICAjIGFyZSBu byBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVz dCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhlbgorKwkjIE5laXRoZXIgZGlyZWN0 IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKKysJIyBi cm9rZW4gY29sbGVjdDIuCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5z dXBwb3J0ZWQKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFpeFtbNC05XV0qKQorKyAg ICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgT24gSUE2NCwgdGhlIGxp bmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKKysJIyBo YXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8K KysJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysJbm9fZW50cnlfZmxhZz0iIgorKyAgICAgIGVs c2UKKysJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1D IiBvcHRpb24uCisrCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9u J3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysJaWYgJE5NIC1WIDI+JjEgfCBncmVwICdHTlUnID4g L2Rldi9udWxsOyB0aGVuCisrCSAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAk MSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcWyRd MiA9PSAiVCIpIHx8IChcWyRdMiA9PSAiRCIpIHx8IChcWyRdMiA9PSAiQiIpKSAmJiAoW3N1YnN0 cl0oXFskXTMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFxbJF0zIH0gfSdcJycgfCBzb3J0IC11ID4g JGV4cG9ydF9zeW1ib2xzJworKwllbHNlCisrCSAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9s c19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sg aWYgKCgoXFskXTIgPT0gIlQiKSB8fCAoXFskXTIgPT0gIkQiKSB8fCAoXFskXTIgPT0gIkIiKSkg JiYgKFtzdWJzdHJdKFxbJF0zLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcWyRdMyB9IH0nXCcnIHwg c29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysJZmkKKysJYWl4X3VzZV9ydW50aW1lbGlua2lu Zz1ubworKworKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2lu ZyBvciBub3JtYWwKKysJIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJl IGluIExERkxBR1MsIHdlCisrCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCisrCWNhc2Ug JGhvc3Rfb3MgaW4gYWl4NC5bWzIzXV18YWl4NC5bWzIzXV0uKnxhaXhbWzUtOV1dKikKKysJICBm b3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KKysgIAkgIGlmICh0ZXN0ICRsZF9mbGFnID0gIi1i cnRsIiB8fCB0ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCisrICAJICAgIGFpeF91 c2VfcnVudGltZWxpbmtpbmc9eWVzCisrICAJICAgIGJyZWFrCisrICAJICBmaQorKwkgIGRvbmUK KysJICA7OworKwllc2FjCisrCisrCWV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCisrCW5vX2VudHJ5 X2ZsYWc9Jy1ibm9lbnRyeScKKysgICAgICBmaQorKworKyAgICAgICMgV2hlbiBsYXJnZSBleGVj dXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysgICAgICAj IGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2lu ZyBhIGxpYnJhcnkKKysgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92 ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZv ciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisrICAgICAgIyBlbm91 Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCisrCisr ICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJworKyAgICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisrICAgICAgX0xUX0FDX1RBR1ZBUihsaW5r X2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCisrCSMg V2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawor KwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJ ICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisrCSAgaWYg dGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYgXAorKyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5h bWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVuCisrICAJICAj IFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKKysgIAkgIDoKKysJICBlbHNlCisrICAJICAjIFdl IGhhdmUgb2xkIGNvbGxlY3QyCisrICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwg JDEpPXVuc3VwcG9ydGVkCisrICAJICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGli cmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisrICAJICAjIHBhdGggaXMgbm90IGxpc3RlZCBp biB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKyAgCSAgIyB0byB1bnN1 cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21p bnVzX0wsICQxKT15ZXMKKysgIAkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctTCRsaWJkaXInCisrICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT0KKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJc2hhcmVkX2ZsYWc9 Jy1zaGFyZWQnCisrCWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhl bgorKwkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKwlmaQorKyAgICAg IGVsc2UKKysJIyBub3QgdXNpbmcgZ2NjCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCisrICAJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02 NCwgQmV0YSAzIFJlbGVhc2UKKysgIAkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcg bGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRl c3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2Zs YWc9JyR7d2x9LUcnCisrCSAgZWxzZQorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScK KysJICBmaQorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhw YWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgIyB1bmRl cnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xz IHRvIGV4cG9ydC4KKysgICAgICBfTFRfQUNfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywg JDEpPXllcworKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsg dGhlbgorKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRp bmcgZmxhZ3MgKC1icnRsKSwKKysJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1 dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwlfTFRfQUNfVEFHVkFSKGFsbG93X3Vu ZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKKysgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1 bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUu CisrICAgICAgIF9MVF9BQ19TWVNfTElCUEFUSF9BSVgKKysgICAgICAgX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIk YWl4X2xpYnBhdGgiCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJc JENDIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3ds fSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRl ZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBlY2hvICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMg JHNoYXJlZF9mbGFnIgorKyAgICAgICBlbHNlCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCisrCSAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZzIgorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21w aWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1f ZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVs dCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4K KysJIF9MVF9BQ19TWVNfTElCUEFUSF9BSVgKKysJIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRo IgorKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRp bmcgZmxhZ3MsCisrCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkg cHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwkgIF9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVk X2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJworKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJworKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBj YW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgIF9MVF9B Q19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJworKwkg IF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKKysJICAjIFRoaXMg aXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGli cmFyaWVzLgorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJEND ICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxp YnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9s cyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrCWZpCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckcm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAi I2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+ JGVjaG8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRlY2hvICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9h Mml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91 dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+ JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAg ICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAg ICAgIyBzZWUgY29tbWVudCBhYm91dCBkaWZmZXJlbnQgc2VtYW50aWNzIG9uIHRoZSBHTlUgbGQg c2VjdGlvbgorKyAgICAgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICA7 OworKworKyAgICBic2RpW1s0NV1dKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYywgJDEpPS1yZHluYW1pYworKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiog fCBtaW5ndyogfCBwdzMyKikKKysgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVu dGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBD KysuCisrICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5p bmdsZXNzLCBhcyB0aGVyZSBpcworKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisr ICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyAnCisr ICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVk CisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4K KysgICAgICBsaWJleHQ9bGliCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmls ZXMsIG5vdCAuc28gZmlsZXMuCisrICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAgICAgIyBG SVhNRTogU2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAgIF9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxl cl9mbGFncyBgZWNobyAiJGRlcGxpYnMiIHwgJFNFRCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxp bmsgLWRsbH5saW5rbmFtZXM9JworKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2Fs bHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCisrICAgICAgX0xUX0FDX1RB R1ZBUihvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCisrICAgICAgIyBGSVhN RTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKysgICAgICBf TFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRv YmpzJG9sZF9kZXBsaWJzJworKyAgICAgIF9MVF9BQ19UQUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwg JDEpPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKKysgICAgICBfTFRfQUNfVEFHVkFSKGVuYWJs ZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKysgICAgICA7OworKworKyAg ICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAg IHJoYXBzb2R5KiB8IGRhcndpbjEuW1swMTJdXSkKKysgICAgICAgICBfTFRfQUNfVEFHVkFSKGFs bG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJwor KyAgICAgICAgIDs7CisrICAgICAgICopICMgRGFyd2luIDEuMyBvbgorKyAgICAgICAgIGlmIHRl c3QgLXogJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9IDsgdGhlbgorKyAgICAgICAgICAgX0xU X0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS1mbGF0X25hbWVzcGFj ZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycKKysgICAgICAgICBlbHNlCisrICAgICAg ICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfSBpbgorKyAgICAgICAgICAgICAx MC5bWzAxMl1dKQorKyAgICAgICAgICAgICAgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVk X2ZsYWcsICQxKT0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3Vw cHJlc3MnCisrICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgMTAuKikKKysgICAgICAg ICAgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXVu ZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJworKyAgICAgICAgICAgICAgIDs7CisrICAgICAg ICAgICBlc2FjCisrICAgICAgICAgZmkKKysgICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAg ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgICAgICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisrICAgICAgX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9hdXRvbWF0aWMsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAorKyAgICAgIF9MVF9BQ19UQUdWQVIod2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJworKyAgICAgIF9MVF9BQ19UQUdWQVIobGlua19h bGxfZGVwbGlicywgJDEpPXllcworKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyA7IHRoZW4KKysg ICAgCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKyAgICAgICAgX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9m bGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFs bF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7 X2x0X2RzeW11dGlsfSIKKysgICAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0i XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwk ZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgICAgX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0 X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRD QyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBc JGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUg XCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7 X2x0X2RzeW11dGlsfSIKKysgICAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRz LCAkMSk9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpk aXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFn IC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtf bHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgZWxzZQorKyAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICB4bGMqKQorKyAgICAgICAgIG91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSdlY2hvJworKyAgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUgJHt3bH1gZWNo byAkcnBhdGgvJHNvbmFtZWAgJHhsY3ZlcnN0cmluZycKKysgICAgICAgICBfTFRfQUNfVEFHVkFS KG1vZHVsZV9jbWRzLCAkMSk9JyRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAtYnVu ZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgICAgICAjIERvbid0 IGZpeCB0aGlzIGJ5IHVzaW5nIHRoZSBsZCAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGZsYWcsIGl0 IGRvZXNuJ3QgZXhpc3QgaW4gb2xkZXIgZGFyd2luIGxkcworKyAgICAgICAgIF9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAg IF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29i amRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRl ZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1pbnN0YWxsX25hbWUgJHt3bH0kcnBhdGgvJHNvbmFtZSAkeGxjdmVyc3RyaW5nfm5tZWRpdCAt cyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKysgICAg ICAgICAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0nc2VkIC1lICJzLCMu KiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9ydF9zeW1i b2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0MgJGFsbG93 X3VuZGVmaW5lZF9mbGFnICAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGls ZXJfZmxhZ3N+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBz eW0gJHtsaWJ9JworKyAgICAgICAgICA7OworKyAgICAgICAqKQorKyAgICAgICAgIF9MVF9BQ19U QUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAg IGZpCisrICAgICAgOzsKKysKKysgICAgZGd1eCopCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9z aGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICBmcmVlYnNkMSopCisrICAg ICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgICMg RnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMr KyBjb25zdHJ1Y3RvcgorKyAgICAjIHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBh dXRvbWF0aWNhbGx5LCBidXQgYW4gZXhwbGljaXQgYysrcnQwLm8KKysgICAgIyBkb2VzIG5vdCBi cmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEg bGl0dGxlCisrICAgICMgZXh0cmEgc3BhY2UpLgorKyAgICBmcmVlYnNkMi4yKikKKysgICAgICBf TFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJworKyAgICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXIn CisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIDs7Cisr CisrICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5v dCBoYXZlIHRoaXMgZmVhdHVyZS4KKysgICAgZnJlZWJzZDIqKQorKyAgICAgIF9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJl Y3QsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15 ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwor KyAgICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFy ZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KKysgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQor KyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgIGhwdXg5 KikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAt ZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIv JHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAg IGVsc2UKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJHJtICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRp ci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisrICAg ICAgZmkKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCisrCisrICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGlu IHRoZSBzZWFyY2ggUEFUSCwKKysgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBv ZiB0aGUgbGlicmFyeS4KKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQx KT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEp PScke3dsfS1FJworKyAgICAgIDs7CisrCisrICAgIGhwdXgxMCopCisrICAgICAgaWYgdGVzdCAi JEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwlfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFt ZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJExEIC1iICtoICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCV9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT15ZXMKKysJX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFn X3NwZWMsICQxKT0nJHt3bH0tRScKKysKKysJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5 IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwor KyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgaHB1eDExKikKKysgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWNhc2UgJGhvc3RfY3B1 IGluCisrCWhwcGEqNjQqKQorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQqKQorKwkgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25v ZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KwkgIDs7CisrCSopCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7Owor Kwllc2FjCisrICAgICAgZWxzZQorKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0KikKKysJ ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsK KysJaWE2NCopCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2Ig JHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBh KjY0KnxpYTY0KikKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGQsICQxKT0nK2IgJGxpYmRpcicKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwg JDEpPW5vCisrCSAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8K KysJICA7OworKwkqKQorKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVz CisrCSAgX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0t RScKKysKKysJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQ QVRILAorKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5Lgor KwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKwkgIDs7CisrCWVz YWMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0 b3B1eCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVf cmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAg ICAgIGVsc2UKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVn aXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwor KyAgICAgIGZpCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrICAgICAgX0xUX0FDX1RBR1ZBUihsaW5r X2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAg ICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0 aGVuCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0CisrICAgICAg ZWxzZQorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAgICAgIyBFTEYKKysgICAgICBm aQorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSct UiRsaWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMK KysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAg ICAgIDs7CisrCisrICAgIG5ld3NvczYpCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVz CisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IsICQxKT06CisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICBvcGVuYnNkKikKKysgICAgICBp ZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPXllcworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT1ubworKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVw IF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93 ZXJwYyI7IHRoZW4KKysJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scycKKysJICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJ ICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwor KwllbHNlCisrCSAgY2FzZSAkaG9zdF9vcyBpbgorKwkgICBvcGVuYnNkW1swMV1dLiogfCBvcGVu YnNkMi5bWzAtN11dIHwgb3BlbmJzZDIuW1swLTddXS4qKQorKwkgICAgIF9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICAgICA7OworKwkgICAqKQorKwkgICAgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgICBfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicK KysJICAgICA7OworKwkgIGVzYWMKKysgICAgICAgIGZpCisrICAgICAgZWxzZQorKwlfTFRfQUNf VEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBv czIqKQorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PSctTCRsaWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9 eWVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3Vw cG9ydGVkCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJGVjaG8gIkxJ QlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRl Zn4kZWNobyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGli bmFtZS5kZWZ+JGVjaG8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8g IiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8g RVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu ZGVmJworKyAgICAgIF9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kcywgJDEp PSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGli bmFtZS5kZWYnCisrICAgICAgOzsKKysKKysgICAgb3NmMyopCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJp bmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5l ZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCV9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkg JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0 aCAke3dsfSRsaWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSk9OgorKyAgICAgIDs7CisrCisrICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3Nm Myogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZworKyAgICAgIGlmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0n ICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3ds fSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgZWxzZQorKwlf TFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2 ZWQgXConCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkJHth bGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbXN5 bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJz aW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2Nh dGlvbnMgLW8gJGxpYicKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4 cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgZWNobyAiLWhpZGRlbiI+PiAk bGliLmV4cH4KKysJJExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaW5wdXQgJGxp Yi5leHAgJGxpbmtlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kcm0gJGxp Yi5leHAnCisrCisrCSMgQm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGly ZWN0bHkKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1y cGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAg ICAgIF9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16IHRleHQnCisrICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJd2xhcmM9JyR7d2x9JworKwlfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oICR7d2x9JHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5l eHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIu ZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkgICRDQyAtc2hhcmVkICR7 d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kcm0gJGxpYi5leHAnCisrICAgICAgZWxzZQorKwl3 bGFyYz0nJworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRl Y2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUg InMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIu ZXhwfgorKyAgCSRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRybSAkbGliLmV4 cCcKKysgICAgICBmaQorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc29sYXJp czIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKysgICAgICAqKQorKwkjIFRoZSBj b21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAor KwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdp dGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgor KyAJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKysJaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJICBfTFRfQUNfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXog JHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJZWxzZQorKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0 ZXh0cmFjdCcKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgX0xUX0FDX1RBR1ZBUihs aW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysg ICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCisrCSMgVXNlICRD QyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEg Lm8KKysJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCisr CV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oICRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQor KwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQg LUJzdGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAg IGZpCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 Jy1MJGxpYmRpcicKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXll cworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKyAgICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsK KysKKysgICAgc3lzdjQpCisrICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysJc25pKQorKwkg IF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdCwgJDEpPXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KKysJOzsKKysJ c2llbWVucykKKysJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKKysJICAjIyBDQyBq dXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJ ICBfTFRfQUNfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9h ZF9vYmpzJworKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgICAg ICAgIDs7CisrCW1vdG9yb2xhKQorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vICNNb3Rvcm9sYSBt YW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKKysJOzsKKysgICAgICBl c2FjCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgc3lz djQuMyopCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1o ICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgX0xU X0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nLUJleHBvcnQnCisrICAg ICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRo ZW4KKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwlfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFU SAorKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT15ZXMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2 NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8 IHNjbzMuMnY1LjAuW1swMjRdXSopCisrICAgICAgX0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRf ZmxhZywgJDEpPScke3dsfS16LHRleHQnCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHNfbmVlZF9sYywgJDEpPW5vCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBh dGhfdmFyLCAkMSk9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0t aCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAg ICAgIGVsc2UKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9 LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJ X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhw b3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2 NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2Ug LXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisrICAgICAgIyBs aW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20g bGliYyB0bworKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3Qg YWJvdXQgbm8gbGlicmFyeSB3b3VsZAorKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElm IHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKKysgICAgICAjIHRob3VnaCwg d2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5k ZWQKKysgICAgICAjIGFzIC16IGRlZnMuCisrICAgICAgX0xUX0FDX1RBR1ZBUihub191bmRlZmlu ZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCisrICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKKysgICAgICBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3 bH0tUiwkbGliZGlyYCcKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT0nOicKKysgICAgICBfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQx KT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEp PScke3dsfS1CZXhwb3J0JworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9s aWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg JHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2lu c3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKKysgICAgICBlbHNlCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtRyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfQUNfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9y dF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICB1dHM0KikKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGli cGF0aF92YXIsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgX0xUX0FDX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrXSkK KytBQ19NU0dfUkVTVUxUKFskX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCisrdGVzdCAi JF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1u bworKworKyMKKysjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisrIworK2Nh c2UgIngkX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpIiBpbgorK3h8eHll cykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKysgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpIGluCisrICAgIConficqKQorKyAgICAgICMgRklYTUU6IHdl IG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysgICAgICA7 OworKyAgICAnJENDICcqKQorKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBs aWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3RlbXMsIC1s Z2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKKysg ICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICBBQ19NU0df Q0hFQ0tJTkcoW3doZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbl0pCisr ICAgICAgJHJtIGNvbmZ0ZXN0KgorKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0 X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAgICAgIGlmIEFDX1RSWV9FVkFMKGFjX2Nv bXBpbGUpIDI+Y29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICBzb25hbWU9Y29uZnRlc3QKKysg ICAgICAgIGxpYj1jb25mdGVzdAorKyAgICAgICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0 CisrICAgICAgICBkZXBsaWJzPQorKyAgICAgICAgd2w9JF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpCisrCXBpY19mbGFnPSRfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSkKKysgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12CisrICAgICAgICBsaW5rZXJf ZmxhZ3M9LXYKKysgICAgICAgIHZlcnN0cmluZz0KKysgICAgICAgIG91dHB1dF9vYmpkaXI9Lgor KyAgICAgICAgbGlibmFtZT1jb25mdGVzdAorKyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmlu ZWRfZmxhZz0kX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpCisrICAgICAg ICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrICAgICAgICBpZiBB Q19UUllfRVZBTChfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIDJcPlwmMSBcfCBncmVw IFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpCisrICAgICAgICB0aGVuCisrCSAgX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgICAgICBlbHNlCisrCSAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKyAgICAgICAgZmkK KysgICAgICAgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2 ZV9hbGxvd191bmRlZmluZWRfZmxhZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVz dC5lcnIgMT4mNQorKyAgICAgIGZpCisrICAgICAgJHJtIGNvbmZ0ZXN0KgorKyAgICAgIEFDX01T R19SRVNVTFQoWyRfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSldKQorKyAg ICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrICA7OworK2VzYWMKKytdKSMgQUNfTElCVE9PTF9Q Uk9HX0xEX1NITElCUworKworKworKyMgX0xUX0FDX0ZJTEVfTFRETExfQworKyMgLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgQmUgY2FyZWZ1bCB0aGF0IHRoZSBzdGFydCBtYXJrZXIgYWx3YXlzIGZv bGxvd3MgYSBuZXdsaW5lLgorK0FDX0RFRlVOKFtfTFRfQUNfRklMRV9MVERMTF9DXSwgWworKyMg LyogbHRkbGwuYyBzdGFydHMgaGVyZSAqLworKyMgI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFO CisrIyAjaW5jbHVkZSA8d2luZG93cy5oPgorKyMgI3VuZGVmIFdJTjMyX0xFQU5fQU5EX01FQU4K KysjICNpbmNsdWRlIDxzdGRpby5oPgorKyMKKysjICNpZm5kZWYgX19DWUdXSU5fXworKyMgIyAg aWZkZWYgX19DWUdXSU4zMl9fCisrIyAjICAgIGRlZmluZSBfX0NZR1dJTl9fIF9fQ1lHV0lOMzJf XworKyMgIyAgZW5kaWYKKysjICNlbmRpZgorKyMKKysjICNpZmRlZiBfX2NwbHVzcGx1cworKyMg ZXh0ZXJuICJDIiB7CisrIyAjZW5kaWYKKysjIEJPT0wgQVBJRU5UUlkgRGxsTWFpbiAoSElOU1RB TkNFIGhJbnN0LCBEV09SRCByZWFzb24sIExQVk9JRCByZXNlcnZlZCk7CisrIyAjaWZkZWYgX19j cGx1c3BsdXMKKysjIH0KKysjICNlbmRpZgorKyMKKysjICNpZmRlZiBfX0NZR1dJTl9fCisrIyAj aW5jbHVkZSA8Y3lnd2luL2N5Z3dpbl9kbGwuaD4KKysjIERFQ0xBUkVfQ1lHV0lOX0RMTCggRGxs TWFpbiApOworKyMgI2VuZGlmCisrIyBISU5TVEFOQ0UgX19oRGxsSW5zdGFuY2VfYmFzZTsKKysj CisrIyBCT09MIEFQSUVOVFJZCisrIyBEbGxNYWluIChISU5TVEFOQ0UgaEluc3QsIERXT1JEIHJl YXNvbiwgTFBWT0lEIHJlc2VydmVkKQorKyMgeworKyMgICBfX2hEbGxJbnN0YW5jZV9iYXNlID0g aEluc3Q7CisrIyAgIHJldHVybiBUUlVFOworKyMgfQorKyMgLyogbHRkbGwuYyBlbmRzIGhlcmUg Ki8KKytdKSMgX0xUX0FDX0ZJTEVfTFRETExfQworKworKworKyMgX0xUX0FDX1RBR1ZBUihWQVJO QU1FLCBbVEFHTkFNRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytB Q19ERUZVTihbX0xUX0FDX1RBR1ZBUl0sIFtpZmVsc2UoWyQyXSwgW10sIFskMV0sIFskMV8kMl0p XSkKKysKKysKKysjIG9sZCBuYW1lcworK0FDX0RFRlVOKFtBTV9QUk9HX0xJQlRPT0xdLCAgIFtB Q19QUk9HX0xJQlRPT0xdKQorK0FDX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwgIFtBQ19FTkFC TEVfU0hBUkVEKCRAKV0pCisrQUNfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCAgW0FDX0VOQUJM RV9TVEFUSUMoJEApXSkKKytBQ19ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbQUNfRElTQUJM RV9TSEFSRUQoJEApXSkKKytBQ19ERUZVTihbQU1fRElTQUJMRV9TVEFUSUNdLCBbQUNfRElTQUJM RV9TVEFUSUMoJEApXSkKKytBQ19ERUZVTihbQU1fUFJPR19MRF0sICAgICAgICBbQUNfUFJPR19M RF0pCisrQUNfREVGVU4oW0FNX1BST0dfTk1dLCAgICAgICAgW0FDX1BST0dfTk1dKQorKworKyMg VGhpcyBpcyBqdXN0IHRvIHNpbGVuY2UgYWNsb2NhbCBhYm91dCB0aGUgbWFjcm8gbm90IGJlaW5n IHVzZWQKKytpZmVsc2UoW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSkKKysKKytBQ19ERUZVTihb TFRfQUNfUFJPR19HQ0pdLAorK1tBQ19DSEVDS19UT09MKEdDSiwgZ2NqLCBubykKKysgIHRlc3Qg Ingke0dDSkZMQUdTK3NldH0iID0geHNldCB8fCBHQ0pGTEFHUz0iLWcgLU8yIgorKyAgQUNfU1VC U1QoR0NKRkxBR1MpCisrXSkKKysKKytBQ19ERUZVTihbTFRfQUNfUFJPR19SQ10sCisrW0FDX0NI RUNLX1RPT0woUkMsIHdpbmRyZXMsIG5vKQorK10pCisrCisrCisrIyBDaGVhcCBiYWNrcG9ydCBv ZiBBU19FWEVDVVRBQkxFX1AgYW5kIHJlcXVpcmVkIG1hY3JvcworKyMgZnJvbSBBdXRvY29uZiAy LjU5OyB3ZSBzaG91bGQgbm90IHVzZSAkYXNfZXhlY3V0YWJsZV9wIGRpcmVjdGx5LgorKworKyMg X0FTX1RFU1RfUFJFUEFSRQorKyMgLS0tLS0tLS0tLS0tLS0tLQorK200X2lmbmRlZihbX0FTX1RF U1RfUFJFUEFSRV0sCisrW200X2RlZnVuKFtfQVNfVEVTVF9QUkVQQVJFXSwKKytbaWYgdGVzdCAt eCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfZXhlY3V0YWJsZV9wPSd0ZXN0IC14Jwor K2Vsc2UKKysgIGFzX2V4ZWN1dGFibGVfcD0ndGVzdCAtZicKKytmaQorK10pXSkjIF9BU19URVNU X1BSRVBBUkUKKysKKysjIEFTX0VYRUNVVEFCTEVfUAorKyMgLS0tLS0tLS0tLS0tLS0tCisrIyBD aGVjayB3aGV0aGVyIGEgZmlsZSBpcyBleGVjdXRhYmxlLgorK200X2lmbmRlZihbQVNfRVhFQ1VU QUJMRV9QXSwKKytbbTRfZGVmdW4oW0FTX0VYRUNVVEFCTEVfUF0sCisrW0FTX1JFUVVJUkUoW19B U19URVNUX1BSRVBBUkVdKWRubAorKyRhc19leGVjdXRhYmxlX3AgJDFbXWRubAorK10pXSkjIEFT X0VYRUNVVEFCTEVfUAorKworKyMgTk9URTogVGhpcyBtYWNybyBoYXMgYmVlbiBzdWJtaXR0ZWQg Zm9yIGluY2x1c2lvbiBpbnRvICAgIworKyMgIEdOVSBBdXRvY29uZiBhcyBBQ19QUk9HX1NFRC4g IFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgIworKyMgIGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBB dXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAgIworKyMgIG1hY3JvIGFuZCB1c2UgaXQg aW5zdGVhZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworKyMgTFRfQUNfUFJPR19T RUQKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayBmb3IgYSBmdWxseS1mdW5jdGlvbmFsIHNl ZCBwcm9ncmFtLCB0aGF0IHRydW5jYXRlcworKyMgYXMgZmV3IGNoYXJhY3RlcnMgYXMgcG9zc2li bGUuICBQcmVmZXIgR05VIHNlZCBpZiBmb3VuZC4KKytBQ19ERUZVTihbTFRfQUNfUFJPR19TRURd LAorK1tBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91 dHB1dF0pCisrQUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfU0VELAorK1sjIExvb3AgdGhyb3VnaCB0 aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIHNlZCBhbmQgZ3NlZC4KKysjIFRoZW4gdXNlIHRo YXQgbGlzdCBvZiBzZWQncyBhcyBvbmVzIHRvIHRlc3QgZm9yIHRydW5jYXRpb24uCisrYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgIGZvciBsdF9hY19wcm9nIGluIHNlZCBnc2VkOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBpZiBBU19FWEVDVVRB QkxFX1AoWyIkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0Il0pOyB0aGVuCisrICAgICAg ICBsdF9hY19zZWRfbGlzdD0iJGx0X2FjX3NlZF9saXN0ICRhc19kaXIvJGx0X2FjX3Byb2ckYWNf ZXhlY19leHQiCisrICAgICAgZmkKKysgICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9JGFz X3NhdmVfSUZTCisrbHRfYWNfbWF4PTAKKytsdF9hY19jb3VudD0wCisrIyBBZGQgL3Vzci94cGc0 L2Jpbi9zZWQgYXMgaXQgaXMgdHlwaWNhbGx5IGZvdW5kIG9uIFNvbGFyaXMKKysjIGFsb25nIHdp dGggL2Jpbi9zZWQgdGhhdCB0cnVuY2F0ZXMgb3V0cHV0LgorK2ZvciBsdF9hY19zZWQgaW4gJGx0 X2FjX3NlZF9saXN0IC91c3IveHBnNC9iaW4vc2VkOyBkbworKyAgdGVzdCAhIC1mICRsdF9hY19z ZWQgJiYgY29udGludWUKKysgIGNhdCAvZGV2L251bGwgPiBjb25mdGVzdC5pbgorKyAgbHRfYWNf Y291bnQ9MAorKyAgZWNobyAkRUNIT19OICIwMTIzNDU2Nzg5JEVDSE9fQyIgPmNvbmZ0ZXN0Lmlu CisrICAjIENoZWNrIGZvciBHTlUgc2VkIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisr ICBpZiAiJGx0X2FjX3NlZCIgLS12ZXJzaW9uIDI+JjEgPCAvZGV2L251bGwgfCBncmVwICdHTlUn ID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQKKysgICAg YnJlYWsKKysgIGZpCisrICB3aGlsZSB0cnVlOyBkbworKyAgICBjYXQgY29uZnRlc3QuaW4gY29u ZnRlc3QuaW4gPmNvbmZ0ZXN0LnRtcAorKyAgICBtdiBjb25mdGVzdC50bXAgY29uZnRlc3QuaW4K KysgICAgY3AgY29uZnRlc3QuaW4gY29uZnRlc3QubmwKKysgICAgZWNobyA+PmNvbmZ0ZXN0Lm5s CisrICAgICRsdF9hY19zZWQgLWUgJ3MvYSQvLycgPCBjb25mdGVzdC5ubCA+Y29uZnRlc3Qub3V0 IHx8IGJyZWFrCisrICAgIGNtcCAtcyBjb25mdGVzdC5vdXQgY29uZnRlc3QubmwgfHwgYnJlYWsK KysgICAgIyAxMDAwMCBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAg IHRlc3QgJGx0X2FjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgICBsdF9hY19jb3VudD1gZXhw ciAkbHRfYWNfY291bnQgKyAxYAorKyAgICBpZiB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgJGx0X2Fj X21heDsgdGhlbgorKyAgICAgIGx0X2FjX21heD0kbHRfYWNfY291bnQKKysgICAgICBsdF9jdl9w YXRoX1NFRD0kbHRfYWNfc2VkCisrICAgIGZpCisrICBkb25lCisrZG9uZQorK10pCisrU0VEPSRs dF9jdl9wYXRoX1NFRAorK0FDX1NVQlNUKFtTRURdKQorK0FDX01TR19SRVNVTFQoWyRTRURdKQor K10pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgQU1fQVVUT01BS0VfVkVSU0lPTihWRVJTSU9OKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgQXV0b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBh Y2xvY2FsLm00IGhhcyBiZWVuCisrIyBnZW5lcmF0ZWQgZnJvbSB0aGUgbTQgZmlsZXMgYWNjb21w YW55aW5nIEF1dG9tYWtlIFguWS4KKysjIChUaGlzIHByaXZhdGUgbWFjcm8gc2hvdWxkIG5vdCBi ZSBjYWxsZWQgb3V0c2lkZSB0aGlzIGZpbGUuKQorK0FDX0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJT SU9OXSwKKytbYW1fX2FwaV92ZXJzaW9uPScxLjEwJworK2RubCBTb21lIHVzZXJzIGZpbmQgQU1f QVVUT01BS0VfVkVSU0lPTiBhbmQgbWlzdGFrZSBpdCBmb3IgYSB3YXkgdG8KKytkbmwgcmVxdWly ZSBzb21lIG1pbmltdW0gdmVyc2lvbi4gIFBvaW50IHRoZW0gdG8gdGhlIHJpZ2h0IG1hY3JvLgor K200X2lmKFskMV0sIFsxLjEwLjFdLCBbXSwKKysgICAgICBbQUNfRkFUQUwoW0RvIG5vdCBjYWxs ICQwLCB1c2UgQU1fSU5JVF9BVVRPTUFLRShbJDFdKS5dKV0pZG5sCisrXSkKKysKKysjIF9BTV9B VVRPQ09ORl9WRVJTSU9OKFZFUlNJT04pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgYWNsb2NhbCB0cmFjZXMgdGhpcyBtYWNybyB0byBmaW5kIHRoZSBBdXRvY29uZiB2ZXJz aW9uLgorKyMgVGhpcyBpcyBhIHByaXZhdGUgbWFjcm8gdG9vLiAgVXNpbmcgbTRfZGVmaW5lIHNp bXBsaWZpZXMKKysjIHRoZSBsb2dpYyBpbiBhY2xvY2FsLCB3aGljaCBjYW4gc2ltcGx5IGlnbm9y ZSB0aGlzIGRlZmluaXRpb24uCisrbTRfZGVmaW5lKFtfQU1fQVVUT0NPTkZfVkVSU0lPTl0sIFtd KQorKworKyMgQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTgorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2FsbCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBBTV9B VVRPTUFLRV9WRVJTSU9OIHNvIHRoZXkgY2FuIGJlIHRyYWNlZC4KKysjIFRoaXMgZnVuY3Rpb24g aXMgQUNfUkVRVUlSRWQgYnkgQUNfSU5JVF9BVVRPTUFLRS4KKytBQ19ERUZVTihbQU1fU0VUX0NV UlJFTlRfQVVUT01BS0VfVkVSU0lPTl0sCisrW0FNX0FVVE9NQUtFX1ZFUlNJT04oWzEuMTAuMV0p ZG5sCisrbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKKysgIFttNF9jb3B5KFttNF9Q QUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKKytfQU1fQVVUT0NP TkZfVkVSU0lPTihBQ19BVVRPQ09ORl9WRVJTSU9OKV0pCisrCisrIyBBTV9BVVhfRElSX0VYUEFO RCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0q LQorKworKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIEZvciBwcm9q ZWN0cyB1c2luZyBBQ19DT05GSUdfQVVYX0RJUihbZm9vXSksIEF1dG9jb25mIHNldHMKKysjICRh Y19hdXhfZGlyIHRvIGAkc3JjZGlyL2ZvbycuICBJbiBvdGhlciBwcm9qZWN0cywgaXQgaXMgc2V0 IHRvCisrIyBgJHNyY2RpcicsIGAkc3JjZGlyLy4uJywgb3IgYCRzcmNkaXIvLi4vLi4nLgorKyMK KysjIE9mIGNvdXJzZSwgQXV0b21ha2UgbXVzdCBob25vciB0aGlzIHZhcmlhYmxlIHdoZW5ldmVy IGl0IGNhbGxzIGEKKysjIHRvb2wgZnJvbSB0aGUgYXV4aWxpYXJ5IGRpcmVjdG9yeS4gIFRoZSBw cm9ibGVtIGlzIHRoYXQgJHNyY2RpciAoYW5kCisrIyB0aGVyZWZvcmUgJGFjX2F1eF9kaXIgYXMg d2VsbCkgY2FuIGJlIGVpdGhlciBhYnNvbHV0ZSBvciByZWxhdGl2ZSwKKysjIGRlcGVuZGluZyBv biBob3cgY29uZmlndXJlIGlzIHJ1bi4gIFRoaXMgaXMgcHJldHR5IGFubm95aW5nLCBzaW5jZQor KyMgaXQgbWFrZXMgJGFjX2F1eF9kaXIgcXVpdGUgdW51c2FibGUgaW4gc3ViZGlyZWN0b3JpZXM6 IGluIHRoZSB0b3AKKysjIHNvdXJjZSBkaXJlY3RvcnksIGFueSBmb3JtIHdpbGwgd29yayBmaW5l LCBidXQgaW4gc3ViZGlyZWN0b3JpZXMgYQorKyMgcmVsYXRpdmUgcGF0aCBuZWVkcyB0byBiZSBh ZGp1c3RlZCBmaXJzdC4KKysjCisrIyAkYWNfYXV4X2Rpci9taXNzaW5nCisrIyAgICBmYWlscyB3 aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGlmICRhY19hdXhfZGlyIGlzIHJlbGF0aXZl CisrIyAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNzaW5nCisrIyAgICBmYWlscyBpZiAkYWNf YXV4X2RpciBpcyBhYnNvbHV0ZSwKKysjICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJk aXJlY3RvcnkgaW4gYSBWUEFUSCBidWlsZCB3aXRoCisrIyAgICAgICAgICBhIHJlbGF0aXZlICRh Y19hdXhfZGlyCisrIworKyMgVGhlIHJlYXNvbiBvZiB0aGUgbGF0dGVyIGZhaWx1cmUgaXMgdGhh dCAkdG9wX3NyY2RpciBhbmQgJGFjX2F1eF9kaXIKKysjIGFyZSBib3RoIHByZWZpeGVkIGJ5ICRz cmNkaXIuICBJbiBhbiBpbi1zb3VyY2UgYnVpbGQgdGhpcyBpcyB1c3VhbGx5CisrIyBoYXJtbGVz cyBiZWNhdXNlICRzcmNkaXIgaXMgYC4nLCBidXQgdGhpbmdzIHdpbGwgYnJva2Ugd2hlbiB5b3UK KysjIHN0YXJ0IGEgVlBBVEggYnVpbGQgb3IgdXNlIGFuIGFic29sdXRlICRzcmNkaXIuCisrIwor KyMgU28gd2UgY291bGQgdXNlIHNvbWV0aGluZyBzaW1pbGFyIHRvICR0b3Bfc3JjZGlyLyRhY19h dXhfZGlyL21pc3NpbmcsCisrIyBpZmYgd2Ugc3RyaXAgdGhlIGxlYWRpbmcgJHNyY2RpciBmcm9t ICRhY19hdXhfZGlyLiAgVGhhdCB3b3VsZCBiZToKKysjICAgYW1fYXV4X2Rpcj0nXCQodG9wX3Ny Y2RpcikvJ2BleHByICIkYWNfYXV4X2RpciIgOiAiJHNyY2Rpci8vKlwoLipcKSJgCisrIyBhbmQg dGhlbiB3ZSB3b3VsZCBkZWZpbmUgJE1JU1NJTkcgYXMKKysjICAgTUlTU0lORz0iXCR7U0hFTEx9 ICRhbV9hdXhfZGlyL21pc3NpbmciCisrIyBUaGlzIHdpbGwgd29yayBhcyBsb25nIGFzIE1JU1NJ TkcgaXMgbm90IGNhbGxlZCBmcm9tIGNvbmZpZ3VyZSwgYmVjYXVzZQorKyMgdW5mb3J0dW5hdGVs eSAkKHRvcF9zcmNkaXIpIGhhcyBubyBtZWFuaW5nIGluIGNvbmZpZ3VyZS4KKysjIEhvd2V2ZXIg dGhlcmUgYXJlIG90aGVyIHZhcmlhYmxlcywgbGlrZSBDQywgd2hpY2ggYXJlIG9mdGVuIHVzZWQg aW4KKysjIGNvbmZpZ3VyZSwgYW5kIGNvdWxkIHRoZXJlZm9yZSBub3QgdXNlIHRoaXMgImZpeGVk IiAkYWNfYXV4X2Rpci4KKysjCisrIyBBbm90aGVyIHNvbHV0aW9uLCB1c2VkIGhlcmUsIGlzIHRv IGFsd2F5cyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4KKysjIGFic29sdXRlIFBBVEguICBUaGUg ZHJhd2JhY2sgaXMgdGhhdCB1c2luZyBhYnNvbHV0ZSBwYXRocyBwcmV2ZW50IGEKKysjIGNvbmZp Z3VyZWQgdHJlZSB0byBiZSBtb3ZlZCB3aXRob3V0IHJlY29uZmlndXJhdGlvbi4KKysKKytBQ19E RUZVTihbQU1fQVVYX0RJUl9FWFBBTkRdLAorK1tkbmwgUmVseSBvbiBhdXRvY29uZiB0byBzZXQg dXAgQ0RQQVRIIHByb3Blcmx5LgorK0FDX1BSRVJFUShbMi41MF0pZG5sCisrIyBleHBhbmQgJGFj X2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAorK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGly ICYmIHB3ZGAKKytdKQorKworKyMgQU1fQ09ORElUSU9OQUwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAo QykgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgorKyMgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBz ZXJpYWwgOAorKworKyMgQU1fQ09ORElUSU9OQUwoTkFNRSwgU0hFTEwtQ09ORElUSU9OKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRGVmaW5lIGEgY29uZGl0 aW9uYWwuCisrQUNfREVGVU4oW0FNX0NPTkRJVElPTkFMXSwKKytbQUNfUFJFUkVRKDIuNTIpZG5s CisrIGlmZWxzZShbJDFdLCBbVFJVRV0sICBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlv bjogJDFdKV0sCisrCVskMV0sIFtGQUxTRV0sIFtBQ19GQVRBTChbJDA6IGludmFsaWQgY29uZGl0 aW9uOiAkMV0pXSlkbmwKKytBQ19TVUJTVChbJDFfVFJVRV0pZG5sCisrQUNfU1VCU1QoWyQxX0ZB TFNFXSlkbmwKKytfQU1fU1VCU1RfTk9UTUFLRShbJDFfVFJVRV0pZG5sCisrX0FNX1NVQlNUX05P VE1BS0UoWyQxX0ZBTFNFXSlkbmwKKytpZiAkMjsgdGhlbgorKyAgJDFfVFJVRT0KKysgICQxX0ZB TFNFPScjJworK2Vsc2UKKysgICQxX1RSVUU9JyMnCisrICAkMV9GQUxTRT0KKytmaQorK0FDX0NP TkZJR19DT01NQU5EU19QUkUoCisrW2lmIHRlc3QgLXogIiR7JDFfVFJVRX0iICYmIHRlc3QgLXog IiR7JDFfRkFMU0V9IjsgdGhlbgorKyAgQUNfTVNHX0VSUk9SKFtbY29uZGl0aW9uYWwgIiQxIiB3 YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5 IGludm9rZWQgY29uZGl0aW9uYWxseS5dXSkKKytmaV0pXSkKKysKKysjIENvcHlyaWdodCAoQykg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgorKyMgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBzZXJpYWwgOQorKworKyMgVGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2 b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCisrIyB3cml0dGVuIGluIGNsZWFyLCBpbiB3aGlj aCBjYXNlIGF1dG9tYWtlLCB3aGVuIHJlYWRpbmcgYWNsb2NhbC5tNCwKKysjIHdpbGwgdGhpbmsg aXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQncworKyMg QyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3Nj YW4sIHNlZWluZworKyMgQ0MgZXRjLiBpbiB0aGUgTWFrZWZpbGUsIHdpbGwgYXNrIGZvciBhbiBB Q19QUk9HX0NDIHVzZS4uLgorKworKworKyMgX0FNX0RFUEVOREVOQ0lFUyhOQU1FKQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBk ZXBlbmRlbmN5IGNoZWNraW5nLgorKyMgTkFNRSBpcyAiQ0MiLCAiQ1hYIiwgIkdDSiIsIG9yICJP QkpDIi4KKysjIFdlIHRyeSBhIGZldyB0ZWNobmlxdWVzIGFuZCB1c2UgdGhhdCB0byBzZXQgYSBz aW5nbGUgY2FjaGUgdmFyaWFibGUuCisrIworKyMgV2UgZG9uJ3QgQUNfUkVRVUlSRSB0aGUgY29y cmVzcG9uZGluZyBBQ19QUk9HX0NDIHNpbmNlIHRoZSBsYXR0ZXIgd2FzCisrIyBtb2RpZmllZCB0 byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJjdWxhcgor KyMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVjdGVkIHRv IHJ1biB0aGlzIG1hY3JvLAorKyMganVzdCByZWx5IG9uIEFDX1BST0dfQ0MuCisrQUNfREVGVU4o W19BTV9ERVBFTkRFTkNJRVNdLAorK1tBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlkbmwKKytB Q19SRVFVSVJFKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10pZG5sCisrQUNfUkVRVUlS RShbQU1fTUFLRV9JTkNMVURFXSlkbmwKKytBQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0tdKWRubAor KworK2lmZWxzZShbJDFdLCBDQywgICBbZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PV0s CisrICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwK KysgICAgICAgWyQxXSwgT0JKQywgW2RlcGNjPSIkT0JKQyIgYW1fY29tcGlsZXJfbGlzdD0nZ2Nj MyBnY2MnXSwKKysgICAgICAgWyQxXSwgVVBDLCAgW2RlcGNjPSIkVVBDIiAgYW1fY29tcGlsZXJf bGlzdD1dLAorKyAgICAgICBbJDFdLCBHQ0osICBbZGVwY2M9IiRHQ0oiICBhbV9jb21waWxlcl9s aXN0PSdnY2MzIGdjYyddLAorKyAgICAgICAgICAgICAgICAgICBbZGVwY2M9IiQkMSIgICBhbV9j b21waWxlcl9saXN0PV0pCisrCisrQUNfQ0FDSEVfQ0hFQ0soW2RlcGVuZGVuY3kgc3R5bGUgb2Yg JGRlcGNjXSwKKysgICAgICAgICAgICAgICBbYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVy X3R5cGVdLAorK1tpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNv bXAiOyB0aGVuCisrICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4g IE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisrICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdl IGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgorKyAgIyBpbnN0YW5jZSBp dCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKKysg ICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBg cHV0IHRoZSBvdXRwdXQKKysgICMgaW4gRCcuCisrICBta2RpciBjb25mdGVzdC5kaXIKKysgICMg Q29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0 IGlmIHdlJ3JlCisrICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgorKyAgY3AgIiRhbV9k ZXBjb21wIiBjb25mdGVzdC5kaXIKKysgIGNkIGNvbmZ0ZXN0LmRpcgorKyAgIyBXZSB3aWxsIGJ1 aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCisr ICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZv ciBpbnN0YW5jZQorKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBv dXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKysgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24s IGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgorKyAgIyB0aGUgY3VycmVudCBk aXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0CisrICAjIGRp cmVjdG9yeS4KKysgIG1rZGlyIHN1YgorKworKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBp bGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4K KysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05XSpcKSkk L1wxL3AnXSA8IC4vZGVwY29tcGAKKysgIGZpCisrICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGls ZXJfbGlzdDsgZG8KKysgICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVz LCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCisrICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVu ZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKKysgICAgIyB3ZSBzaG91bGQg bm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgorKyAg ICAjCisrICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0 LCBhcyB0aGUgY29tcGlsZXIgbWF5CisrICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVu IHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCisrICAgICMgVGhpcyBoYXBwZW5z IGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVyLgorKyAgICA6ID4gc3ViL2NvbmZ0ZXN0 LmMKKysgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCisrICAgICAgZWNobyAnI2luY2x1ZGUg ImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3QuYworKyAgICAgICMgVXNpbmcgYDogPiBz dWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCisrICAgICAg IyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KKysgICAgICB0b3VjaCBzdWIvY29uZnRzdCRp LmgKKysgICAgZG9uZQorKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIv Y29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1mCisrCisrICAgIGNhc2UgJGRlcG1vZGUg aW4KKysgICAgbm9zaWRlZWZmZWN0KQorKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlz bXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAorKyAgICAgICMgb25seSBiZSB1 c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKKysgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9k ZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KKysJY29udGludWUKKysgICAgICBlbHNl CisrCWJyZWFrCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBub25lKSBicmVhayA7OworKyAg ICBlc2FjCisrICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBv ZiB0aGUgImRhc2htc3Rkb3V0IgorKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUg U3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQorKyAgICAjIGhhbmRsZSBgLU0g LW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4KKysgICAgaWYgZGVwbW9kZT0kZGVwbW9k ZSBcCisrICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7 T0JKRVhULW99IFwKKysgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1z dWIvY29uZnRlc3QuVFBvIFwKKysgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgLW8g c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+L2Rl di9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3Vi L2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRz dDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwIHN1 Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAm JgorKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRo ZW4KKysgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2ls bCBqdXN0IGlzc3VlIHdhcm5pbmdzCisrICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdl cnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKKysgICAgICAjIHRoYXQg c2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KKysgICAgICAjIFdo ZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorKyAgICAgICMg ICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJn dW1lbnQgcmVxdWlyZWQKKysgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4w OgorKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qg c3VwcG9ydGVkCisrICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJy IHx8CisrICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYv bnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKKysgICAgICAgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlPSRkZXBtb2RlCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGZp CisrICBkb25lCisrCisrICBjZCAuLgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysg IGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKytmaQorK10pCisrQUNf U1VCU1QoWyQxREVQTU9ERV0sIFtkZXBtb2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZV0pCisrQU1fQ09ORElUSU9OQUwoW2FtX19mYXN0ZGVwJDFdLCBbCisrICB0ZXN0ICJ4 JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAorKyAgJiYgdGVzdCAiJGFtX2N2 XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzNdKQorK10pCisrCisrCisrIyBB TV9TRVRfREVQRElSCisrIyAtLS0tLS0tLS0tLS0tCisrIyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFt ZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4KKysjIFRoaXMgbWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4g X0FNX0RFUEVOREVOQ0lFUworK0FDX0RFRlVOKFtBTV9TRVRfREVQRElSXSwKKytbQUNfUkVRVUlS RShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKKytBQ19TVUJTVChbREVQRElSXSwgWyIke2FtX19s ZWFkaW5nX2RvdH1kZXBzIl0pZG5sCisrXSkKKysKKysKKysjIEFNX0RFUF9UUkFDSworKyMgLS0t LS0tLS0tLS0tCisrQUNfREVGVU4oW0FNX0RFUF9UUkFDS10sCisrW0FDX0FSR19FTkFCTEUoZGVw ZW5kZW5jeS10cmFja2luZywKKytbICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3Bl ZWRzIHVwIG9uZS10aW1lIGJ1aWxkCisrICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAg ZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9yc10pCisraWYgdGVzdCAieCRl bmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0aGVuCisrICBhbV9kZXBjb21wPSIk YWNfYXV4X2Rpci9kZXBjb21wIgorKyAgQU1ERVBCQUNLU0xBU0g9J1wnCisrZmkKKytBTV9DT05E SVRJT05BTChbQU1ERVBdLCBbdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0g eG5vXSkKKytBQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hdKWRubAorK19BTV9TVUJTVF9OT1RNQUtF KFtBTURFUEJBQ0tTTEFTSF0pZG5sCisrXSkKKysKKysjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVw IGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisr IyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUK KysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgorKworKyNzZXJpYWwgMworKworKyMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRT CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbX0FNX09VVFBV VF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKKytbZm9yIG1mIGluICRDT05GSUdfRklMRVM7IGRvCisr ICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgorKyAg bWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKKysgICMgQ2hlY2sgd2hldGhlciB0 aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCisrICAjIFdlIHVz ZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0CisrICAj IHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUg Y29udGVudC4KKysgICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29t ZSBwZW9wbGUgcG9zdC1wcm9jZXNzCisrICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5l dyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgorKyAgIyBHcmVwJ2luZyB0aGUg d2hvbGUgZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJWCBncmVwIGhhcyBhIGxpbmUKKysgICMg bGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBs ZWFzdCA0MDAwLgorKyAgaWYgc2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixY LHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICBkaXJwYXJ0PWBB U19ESVJOQU1FKCIkbWYiKWAKKysgIGVsc2UKKysgICAgY29udGludWUKKysgIGZpCisrICAjIEV4 dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90 ZQorKyAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgorKyAgREVQ RElSPWBzZWQgLW4gJ3MvXkRFUERJUiA9IC8vcCcgPCAiJG1mImAKKysgIHRlc3QgLXogIiRERVBE SVIiICYmIGNvbnRpbnVlCisrICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9 IC8vcCcgPCAiJG1mImAKKysgIHRlc3QgLXogImFtX19pbmNsdWRlIiAmJiBjb250aW51ZQorKyAg YW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKKysgICMgV2hl biB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5k IGl0CisrICBVPWBzZWQgLW4gJ3MvXlUgPSAvL3AnIDwgIiRtZiJgCisrICAjIEZpbmQgYWxsIGRl cGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCisrICAj ICQoREVQRElSKSBpbiB0aGVpciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBp dCBpcyB0aGUKKysgICMgc2ltcGxlc3QgYXBwcm9hY2ggdG8gY2hhbmdpbmcgJChERVBESVIpIHRv IGl0cyBhY3R1YWwgdmFsdWUgaW4gdGhlCisrICAjIGV4cGFuc2lvbi4KKysgIGZvciBmaWxlIGlu IGBzZWQgLW4gIgorKyAgICBzL14kYW1fX2luY2x1ZGUgJGFtX19xdW90ZVwoLiooREVQRElSKS4q XCkkYW1fX3F1b3RlIickL1wxL3AnIDwiJG1mIiB8IFwKKysgICAgICAgc2VkIC1lICdzL1wkKERF UERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCisrICAgICMgTWFr ZSBzdXJlIHRoZSBkaXJlY3RvcnkgZXhpc3RzLgorKyAgICB0ZXN0IC1mICIkZGlycGFydC8kZmls ZSIgJiYgY29udGludWUKKysgICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAorKyAgICBB U19NS0RJUl9QKFskZGlycGFydC8kZmRpcl0pCisrICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBh cnQvJGZpbGUiCisrICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorKyAgZG9u ZQorK2RvbmUKKytdKSMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCisrCisrCisrIyBB TV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIFRoaXMgbWFjcm8gc2hvdWxkIG9ubHkgYmUgaW52b2tlZCBvbmNlIC0tIHVzZSB2 aWEgQUNfUkVRVUlSRS4KKysjCisrIyBUaGlzIGNvZGUgaXMgb25seSByZXF1aXJlZCB3aGVuIGF1 dG9tYXRpYyBkZXBlbmRlbmN5IHRyYWNraW5nCisrIyBpcyBlbmFibGVkLiAgRklYTUUuICBUaGlz IGNyZWF0ZXMgZWFjaCBgLlAnIGZpbGUgdGhhdCB3ZSB3aWxsCisrIyBuZWVkIGluIG9yZGVyIHRv IGJvb3RzdHJhcCB0aGUgZGVwZW5kZW5jeSBoYW5kbGluZyBjb2RlLgorK0FDX0RFRlVOKFtBTV9P VVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10sCisrW0FDX0NPTkZJR19DT01NQU5EUyhbZGVwZmls ZXNdLAorKyAgICAgW3Rlc3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IF9BTV9PVVRQVVRfREVQ RU5ERU5DWV9DT01NQU5EU10sCisrICAgICBbQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1 eF9kaXI9IiRhY19hdXhfZGlyIl0pCisrXSkKKysKKysjIERvIGFsbCB0aGUgd29yayBmb3IgQXV0 b21ha2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisr IyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDMsIDIwMDQsCisrIyAyMDA1LCAyMDA2LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDEzCisrCisr IyBUaGlzIG1hY3JvIGFjdHVhbGx5IGRvZXMgdG9vIG11Y2guICBTb21lIGNoZWNrcyBhcmUgb25s eSBuZWVkZWQgaWYKKysjIHlvdXIgcGFja2FnZSBkb2VzIGNlcnRhaW4gdGhpbmdzLiAgQnV0IHRo aXMgaXNuJ3QgcmVhbGx5IGEgYmlnIGRlYWwuCisrCisrIyBBTV9JTklUX0FVVE9NQUtFKFBBQ0tB R0UsIFZFUlNJT04sIFtOTy1ERUZJTkVdKQorKyMgQU1fSU5JVF9BVVRPTUFLRShbT1BUSU9OU10p CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg VGhlIGNhbGwgd2l0aCBQQUNLQUdFIGFuZCBWRVJTSU9OIGFyZ3VtZW50cyBpcyB0aGUgb2xkIHN0 eWxlCisrIyBjYWxsIChwcmUgYXV0b2NvbmYtMi41MCksIHdoaWNoIGlzIGJlaW5nIHBoYXNlZCBv dXQuICBQQUNLQUdFCisrIyBhbmQgVkVSU0lPTiBzaG91bGQgbm93IGJlIHBhc3NlZCB0byBBQ19J TklUIGFuZCByZW1vdmVkIGZyb20KKysjIHRoZSBjYWxsIHRvIEFNX0lOSVRfQVVUT01BS0UuCisr IyBXZSBzdXBwb3J0IGJvdGggY2FsbCBzdHlsZXMgZm9yIHRoZSB0cmFuc2l0aW9uLiAgQWZ0ZXIK KysjIHRoZSBuZXh0IEF1dG9tYWtlIHJlbGVhc2UsIEF1dG9jb25mIGNhbiBtYWtlIHRoZSBBQ19J TklUCisrIyBhcmd1bWVudHMgbWFuZGF0b3J5LCBhbmQgdGhlbiB3ZSBjYW4gZGVwZW5kIG9uIGEg bmV3IEF1dG9jb25mCisrIyByZWxlYXNlIGFuZCBkcm9wIHRoZSBvbGQgY2FsbCBzdXBwb3J0Lgor K0FDX0RFRlVOKFtBTV9JTklUX0FVVE9NQUtFXSwKKytbQUNfUFJFUkVRKFsyLjYwXSlkbmwKKytk bmwgQXV0b2NvbmYgd2FudHMgdG8gZGlzYWxsb3cgQU1fIG5hbWVzLiAgV2UgZXhwbGljaXRseSBh bGxvdworK2RubCB0aGUgb25lcyB3ZSBjYXJlIGFib3V0LgorK200X3BhdHRlcm5fYWxsb3coW15B TV9bQS1aXStGTEFHUyRdKWRubAorK0FDX1JFUVVJUkUoW0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtF X1ZFUlNJT05dKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfSU5TVEFMTF0pZG5sCisraWYgdGVz dCAiYGNkICRzcmNkaXIgJiYgcHdkYCIgIT0gImBwd2RgIjsgdGhlbgorKyAgIyBVc2UgLUkkKHNy Y2Rpcikgb25seSB3aGVuICQoc3JjZGlyKSAhPSAuLCBzbyB0aGF0IG1ha2UncyBvdXRwdXQKKysg ICMgaXMgbm90IHBvbGx1dGVkIHdpdGggcmVwZWF0ZWQgIi1JLiIKKysgIEFDX1NVQlNUKFthbV9f aXNyY10sIFsnIC1JJChzcmNkaXIpJ10pX0FNX1NVQlNUX05PVE1BS0UoW2FtX19pc3JjXSlkbmwK KysgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAorKyAgaWYgdGVz dCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4KKysgICAgQUNfTVNHX0VSUk9SKFtzb3Vy Y2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuICJtYWtlIGRpc3RjbGVhbiIgdGhl cmUgZmlyc3RdKQorKyAgZmkKKytmaQorKworKyMgdGVzdCB3aGV0aGVyIHdlIGhhdmUgY3lncGF0 aAorK2lmIHRlc3QgLXogIiRDWUdQQVRIX1ciOyB0aGVuCisrICBpZiAoY3lncGF0aCAtLXZlcnNp b24pID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4KKysgICAgQ1lHUEFUSF9XPSdjeWdwYXRo IC13JworKyAgZWxzZQorKyAgICBDWUdQQVRIX1c9ZWNobworKyAgZmkKKytmaQorK0FDX1NVQlNU KFtDWUdQQVRIX1ddKQorKworKyMgRGVmaW5lIHRoZSBpZGVudGl0eSBvZiB0aGUgcGFja2FnZS4K KytkbmwgRGlzdGluZ3Vpc2ggYmV0d2VlbiBvbGQtc3R5bGUgYW5kIG5ldy1zdHlsZSBjYWxscy4K KyttNF9pZnZhbChbJDJdLAorK1ttNF9pZnZhbChbJDNdLCBbX0FNX1NFVF9PUFRJT04oW25vLWRl ZmluZV0pXSlkbmwKKysgQUNfU1VCU1QoW1BBQ0tBR0VdLCBbJDFdKWRubAorKyBBQ19TVUJTVChb VkVSU0lPTl0sIFskMl0pXSwKKytbX0FNX1NFVF9PUFRJT05TKFskMV0pZG5sCisrZG5sIERpYWdu b3NlIG9sZC1zdHlsZSBBQ19JTklUIHdpdGggbmV3LXN0eWxlIEFNX0FVVE9NQUtFX0lOSVQuCisr bTRfaWYobTRfaWZkZWYoW0FDX1BBQ0tBR0VfTkFNRV0sIDEpbTRfaWZkZWYoW0FDX1BBQ0tBR0Vf VkVSU0lPTl0sIDEpLCAxMSwsCisrICBbbTRfZmF0YWwoW0FDX0lOSVQgc2hvdWxkIGJlIGNhbGxl ZCB3aXRoIHBhY2thZ2UgYW5kIHZlcnNpb24gYXJndW1lbnRzXSldKWRubAorKyBBQ19TVUJTVChb UEFDS0FHRV0sIFsnQUNfUEFDS0FHRV9UQVJOQU1FJ10pZG5sCisrIEFDX1NVQlNUKFtWRVJTSU9O XSwgWydBQ19QQUNLQUdFX1ZFUlNJT04nXSldKWRubAorKworK19BTV9JRl9PUFRJT04oW25vLWRl ZmluZV0sLAorK1tBQ19ERUZJTkVfVU5RVU9URUQoUEFDS0FHRSwgIiRQQUNLQUdFIiwgW05hbWUg b2YgcGFja2FnZV0pCisrIEFDX0RFRklORV9VTlFVT1RFRChWRVJTSU9OLCAiJFZFUlNJT04iLCBb VmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZV0pXSlkbmwKKysKKysjIFNvbWUgdG9vbHMgQXV0b21h a2UgbmVlZHMuCisrQUNfUkVRVUlSRShbQU1fU0FOSVRZX0NIRUNLXSlkbmwKKytBQ19SRVFVSVJF KFtBQ19BUkdfUFJPR1JBTV0pZG5sCisrQU1fTUlTU0lOR19QUk9HKEFDTE9DQUwsIGFjbG9jYWwt JHthbV9fYXBpX3ZlcnNpb259KQorK0FNX01JU1NJTkdfUFJPRyhBVVRPQ09ORiwgYXV0b2NvbmYp CisrQU1fTUlTU0lOR19QUk9HKEFVVE9NQUtFLCBhdXRvbWFrZS0ke2FtX19hcGlfdmVyc2lvbn0p CisrQU1fTUlTU0lOR19QUk9HKEFVVE9IRUFERVIsIGF1dG9oZWFkZXIpCisrQU1fTUlTU0lOR19Q Uk9HKE1BS0VJTkZPLCBtYWtlaW5mbykKKytBTV9QUk9HX0lOU1RBTExfU0gKKytBTV9QUk9HX0lO U1RBTExfU1RSSVAKKytBQ19SRVFVSVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAorKyMgV2UgbmVl ZCBhd2sgZm9yIHRoZSAiY2hlY2siIHRhcmdldC4gIFRoZSBzeXN0ZW0gImF3ayIgaXMgYmFkIG9u CisrIyBzb21lIHBsYXRmb3Jtcy4KKytBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCisrQUNf UkVRVUlSRShbQUNfUFJPR19NQUtFX1NFVF0pZG5sCisrQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJ TkdfRE9UXSlkbmwKKytfQU1fSUZfT1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1 c3Rhcl0pXSwKKysgICAgICAgICAgICAgIFtfQU1fSUZfT1BUSU9OKFt0YXItcGF4XSwgW19BTV9Q Uk9HX1RBUihbcGF4XSldLAorKwkgICAgICAJCSAgICAgW19BTV9QUk9HX1RBUihbdjddKV0pXSkK KytfQU1fSUZfT1BUSU9OKFtuby1kZXBlbmRlbmNpZXNdLCwKKytbQUNfUFJPVklERV9JRkVMU0Uo W0FDX1BST0dfQ0NdLAorKyAgICAgICAgICAgICAgICAgIFtfQU1fREVQRU5ERU5DSUVTKENDKV0s CisrICAgICAgICAgICAgICAgICAgW2RlZmluZShbQUNfUFJPR19DQ10sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICBkZWZuKFtBQ19QUk9HX0NDXSlbX0FNX0RFUEVOREVOQ0lFUyhDQyldKV0p ZG5sCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ1hYXSwKKysgICAgICAgICAgICAgICAg ICBbX0FNX0RFUEVOREVOQ0lFUyhDWFgpXSwKKysgICAgICAgICAgICAgICAgICBbZGVmaW5lKFtB Q19QUk9HX0NYWF0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZuKFtBQ19QUk9HX0NY WF0pW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0pXSlkbmwKKytBQ19QUk9WSURFX0lGRUxTRShbQUNf UFJPR19PQkpDXSwKKysgICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0s CisrICAgICAgICAgICAgICAgICAgW2RlZmluZShbQUNfUFJPR19PQkpDXSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIGRlZm4oW0FDX1BST0dfT0JKQ10pW19BTV9ERVBFTkRFTkNJRVMoT0JK QyldKV0pZG5sCisrXSkKKytdKQorKworKworKyMgV2hlbiBjb25maWcuc3RhdHVzIGdlbmVyYXRl cyBhIGhlYWRlciwgd2UgbXVzdCB1cGRhdGUgdGhlIHN0YW1wLWggZmlsZS4KKysjIFRoaXMgZmls ZSByZXNpZGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGhlYWRlcgorKyMg dGhhdCBpcyBnZW5lcmF0ZWQuICBUaGUgc3RhbXAgZmlsZXMgYXJlIG51bWJlcmVkIHRvIGhhdmUg ZGlmZmVyZW50IG5hbWVzLgorKworKyMgQXV0b2NvbmYgY2FsbHMgX0FDX0FNX0NPTkZJR19IRUFE RVJfSE9PSyAod2hlbiBkZWZpbmVkKSBpbiB0aGUKKysjIGxvb3Agd2hlcmUgY29uZmlnLnN0YXR1 cyBjcmVhdGVzIHRoZSBoZWFkZXJzLCBzbyB3ZSBjYW4gZ2VuZXJhdGUKKysjIG91ciBzdGFtcCBm aWxlcyB0aGVyZS4KKytBQ19ERUZVTihbX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PS10sCisrWyMg Q29tcHV0ZSAkMSdzIGluZGV4IGluICRjb25maWdfaGVhZGVycy4KKytfYW1fYXJnPSQxCisrX2Ft X3N0YW1wX2NvdW50PTEKKytmb3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8K KysgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKysgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKKysg ICAgICBicmVhayA7OworKyAgICAqICkKKysgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9h bV9zdGFtcF9jb3VudCArIDFgIDs7CisrICBlc2FjCisrZG9uZQorK2VjaG8gInRpbWVzdGFtcCBm b3IgJF9hbV9hcmciID5gQVNfRElSTkFNRShbIiRfYW1fYXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0 YW1wX2NvdW50XSkKKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBBTV9QUk9HX0lOU1RBTExfU0gKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRGVmaW5lICRp bnN0YWxsX3NoLgorK0FDX0RFRlVOKFtBTV9QUk9HX0lOU1RBTExfU0hdLAorK1tBQ19SRVFVSVJF KFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCisraW5zdGFsbF9zaD0ke2luc3RhbGxfc2gtIlwkKFNI RUxMKSAkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIn0KKytBQ19TVUJTVChpbnN0YWxsX3NoKV0pCisr CisrIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDIKKysKKysjIENo ZWNrIHdoZXRoZXIgdGhlIHVuZGVybHlpbmcgZmlsZS1zeXN0ZW0gc3VwcG9ydHMgZmlsZW5hbWVz CisrIyB3aXRoIGEgbGVhZGluZyBkb3QuICBGb3IgaW5zdGFuY2UgTVMtRE9TIGRvZXNuJ3QuCisr QUNfREVGVU4oW0FNX1NFVF9MRUFESU5HX0RPVF0sCisrW3JtIC1yZiAudHN0IDI+L2Rldi9udWxs CisrbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgorKyAgYW1f X2xlYWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9fbGVhZGluZ19kb3Q9XworK2ZpCisrcm1kaXIg LnRzdCAyPi9kZXYvbnVsbAorK0FDX1NVQlNUKFthbV9fbGVhZGluZ19kb3RdKV0pCisrCisrIyBD aGVjayB0byBzZWUgaG93ICdtYWtlJyB0cmVhdHMgaW5jbHVkZXMuCSAgICAgICAgICAgIC0qLSBB dXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu CisrCisrIyBzZXJpYWwgMworKworKyMgQU1fTUFLRV9JTkNMVURFKCkKKysjIC0tLS0tLS0tLS0t LS0tLS0tCisrIyBDaGVjayB0byBzZWUgaG93IG1ha2UgdHJlYXRzIGluY2x1ZGVzLgorK0FDX0RF RlVOKFtBTV9NQUtFX0lOQ0xVREVdLAorK1thbV9tYWtlPSR7TUFLRS1tYWtlfQorK2NhdCA+IGNv bmZpbmMgPDwgJ0VORCcKKythbV9fZG9pdDoKKysJQGVjaG8gZG9uZQorKy5QSE9OWTogYW1fX2Rv aXQKKytFTkQKKysjIElmIHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3Qg Y29tbWVudCBvdXQgdGhlIGNvZGUuCisrQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5j bHVkZSB1c2VkIGJ5ICRhbV9tYWtlXSkKKythbV9faW5jbHVkZT0iIyIKKythbV9fcXVvdGU9Cisr X2FtX3Jlc3VsdD1ub25lCisrIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytl Y2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCisrIyBXZSBncmVwIG91dCBgRW50ZXJpbmcg ZGlyZWN0b3J5JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5JworKyMgbWVzc2FnZXMgd2hpY2ggY2Fu IG9jY3VyIGlmIGB3JyBlbmRzIHVwIGluIE1BS0VGTEFHUy4KKysjIEluIHBhcnRpY3VsYXIgd2Ug ZG9uJ3QgbG9vayBhdCBgXm1ha2U6JyBiZWNhdXNlIEdOVSBtYWtlIG1pZ2h0CisrIyBiZSBpbnZv a2VkIHVuZGVyIHNvbWUgb3RoZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4gd2hpY2gKKysj IGNhc2UgaXQgcHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4KKytpZiB0ZXN0 ICJgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbCB8IGdyZXAgLXYgJ2luZyBkaXJl Y3RvcnknYCIgPSAiZG9uZSI7IHRoZW4KKysgICBhbV9faW5jbHVkZT1pbmNsdWRlCisrICAgYW1f X3F1b3RlPQorKyAgIF9hbV9yZXN1bHQ9R05VCisrZmkKKysjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5 bGUgaW5jbHVkZS4KKytpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCisrICAgZWNo byAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorKyAgIGlmIHRlc3QgImAkYW1fbWFrZSAt cyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCIgPSAiZG9uZSI7IHRoZW4KKysgICAgICBhbV9faW5j bHVkZT0uaW5jbHVkZQorKyAgICAgIGFtX19xdW90ZT0iXCIiCisrICAgICAgX2FtX3Jlc3VsdD1C U0QKKysgICBmaQorK2ZpCisrQUNfU1VCU1QoW2FtX19pbmNsdWRlXSkKKytBQ19TVUJTVChbYW1f X3F1b3RlXSkKKytBQ19NU0dfUkVTVUxUKFskX2FtX3Jlc3VsdF0pCisrcm0gLWYgY29uZmluYyBj b25mbWYKKytdKQorKworKyMgRmFrZSB0aGUgZXhpc3RlbmNlIG9mIHByb2dyYW1zIHRoYXQgR05V IG1haW50YWluZXJzIHVzZS4gIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykg MTk5NywgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNQorKyMgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJp YWwgNQorKworKyMgQU1fTUlTU0lOR19QUk9HKE5BTUUsIFBST0dSQU0pCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbQU1fTUlTU0lOR19QUk9HXSwKKytbQUNf UkVRVUlSRShbQU1fTUlTU0lOR19IQVNfUlVOXSkKKyskMT0keyQxLSIke2FtX21pc3NpbmdfcnVu fSQyIn0KKytBQ19TVUJTVCgkMSldKQorKworKworKyMgQU1fTUlTU0lOR19IQVNfUlVOCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0KKysjIERlZmluZSBNSVNTSU5HIGlmIG5vdCBkZWZpbmVkIHNvIGZh ciBhbmQgdGVzdCBpZiBpdCBzdXBwb3J0cyAtLXJ1bi4KKysjIElmIGl0IGRvZXMsIHNldCBhbV9t aXNzaW5nX3J1biB0byB1c2UgaXQsIG90aGVyd2lzZSwgdG8gbm90aGluZy4KKytBQ19ERUZVTihb QU1fTUlTU0lOR19IQVNfUlVOXSwKKytbQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRu bAorK0FDX1JFUVVJUkVfQVVYX0ZJTEUoW21pc3NpbmddKWRubAorK3Rlc3QgeCIke01JU1NJTkcr c2V0fSIgPSB4c2V0IHx8IE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgor KyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAorK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRy dWUiOyB0aGVuCisrICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgorK2Vsc2UKKysg IGFtX21pc3NpbmdfcnVuPQorKyAgQUNfTVNHX1dBUk4oW2BtaXNzaW5nJyBzY3JpcHQgaXMgdG9v IG9sZCBvciBtaXNzaW5nXSkKKytmaQorK10pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisr IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgorKworKyMgQU1fUFJPR19NS0RJUl9QCisrIyAtLS0tLS0tLS0tLS0t LS0KKysjIENoZWNrIGZvciBgbWtkaXIgLXAnLgorK0FDX0RFRlVOKFtBTV9QUk9HX01LRElSX1Bd LAorK1tBQ19QUkVSRVEoWzIuNjBdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfTUtESVJfUF0p ZG5sCisrZG5sIEF1dG9tYWtlIDEuOCB0byAxLjkuNiB1c2VkIHRvIGRlZmluZSBta2Rpcl9wLiAg V2Ugbm93IHVzZSBNS0RJUl9QLAorK2RubCB3aGlsZSBrZWVwaW5nIGEgZGVmaW5pdGlvbiBvZiBt a2Rpcl9wIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorK2RubCBATUtESVJfUEAgaXMgbWFn aWM6IEFDX09VVFBVVCBhZGp1c3RzIGl0cyB2YWx1ZSBmb3IgZWFjaCBNYWtlZmlsZS4KKytkbmwg SG93ZXZlciB3ZSBjYW5ub3QgZGVmaW5lIG1rZGlyX3AgYXMgJChNS0RJUl9QKSBmb3IgdGhlIHNh a2Ugb2YKKytkbmwgTWFrZWZpbGUuaW5zIHRoYXQgZG8gbm90IGRlZmluZSBNS0RJUl9QLCBzbyB3 ZSBkbyBvdXIgb3duCisrZG5sIGFkanVzdG1lbnQgdXNpbmcgdG9wX2J1aWxkZGlyICh3aGljaCBp cyBkZWZpbmVkIG1vcmUgb2Z0ZW4gdGhhbgorK2RubCBNS0RJUl9QKS4KKytBQ19TVUJTVChbbWtk aXJfcF0sIFsiJE1LRElSX1AiXSlkbmwKKytjYXNlICRta2Rpcl9wIGluCisrICBbW1xcLyRdXSog fCA/OltbXFwvXV0qKSA7OworKyAgKi8qKSBta2Rpcl9wPSJcJCh0b3BfYnVpbGRkaXIpLyRta2Rp cl9wIiA7OworK2VzYWMKKytdKQorKworKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhh bmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHly aWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMworKworKyMg X0FNX01BTkdMRV9PUFRJT04oTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNf REVGVU4oW19BTV9NQU5HTEVfT1BUSU9OXSwKKytbW19BTV9PUFRJT05fXW00X2JwYXRzdWJzdCgk MSwgW1teYS16QS1aMC05X11dLCBbX10pXSkKKysKKysjIF9BTV9TRVRfT1BUSU9OKE5BTUUpCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNldCBvcHRpb24gTkFNRS4gIFBy ZXNlbnRseSB0aGF0IG9ubHkgbWVhbnMgZGVmaW5pbmcgYSBmbGFnIGZvciB0aGlzIG9wdGlvbi4K KytBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAorK1ttNF9kZWZpbmUoX0FNX01BTkdMRV9PUFRJ T04oWyQxXSksIDEpXSkKKysKKysjIF9BTV9TRVRfT1BUSU9OUyhPUFRJT05TKQorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgT1BUSU9OUyBpcyBhIHNwYWNlLXNlcGFy YXRlZCBsaXN0IG9mIEF1dG9tYWtlIG9wdGlvbnMuCisrQUNfREVGVU4oW19BTV9TRVRfT1BUSU9O U10sCisrW0FDX0ZPUkVBQ0goW19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FN X09wdGlvbildKV0pCisrCisrIyBfQU1fSUZfT1BUSU9OKE9QVElPTiwgSUYtU0VULCBbSUYtTk9U LVNFVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4K KytBQ19ERUZVTihbX0FNX0lGX09QVElPTl0sCisrW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9O KFskMV0pLCBbJDJdLCBbJDNdKV0pCisrCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUg YnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4gICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29w eXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1CisrIyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2Fy ZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysj IHNlcmlhbCA0CisrCisrIyBBTV9TQU5JVFlfQ0hFQ0sKKysjIC0tLS0tLS0tLS0tLS0tLQorK0FD X0RFRlVOKFtBTV9TQU5JVFlfQ0hFQ0tdLAorK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgYnVp bGQgZW52aXJvbm1lbnQgaXMgc2FuZV0pCisrIyBKdXN0IGluIGNhc2UKKytzbGVlcCAxCisrZWNo byB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCisrIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNv IHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncworKyMgYXJndW1lbnRzLiAgTXVz dCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQorKyMgc3ltbGlu azsgc29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3lt bGlua3MKKysjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5r J3MgY29udGFpbmluZworKyMgZGlyZWN0b3J5KS4KKytpZiAoCisrICAgc2V0IFggYGxzIC1MdCAk c3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKysgICBpZiB0ZXN0 ICIkWypdIiA9ICJYIjsgdGhlbgorKyAgICAgICMgLUwgZGlkbid0IHdvcmsuCisrICAgICAgc2V0 IFggYGxzIC10ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGVgCisrICAgZmkKKysgICBy bSAtZiBjb25mdGVzdC5maWxlCisrICAgaWYgdGVzdCAiJFsqXSIgIT0gIlggJHNyY2Rpci9jb25m aWd1cmUgY29uZnRlc3QuZmlsZSIgXAorKyAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0 ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJZiBuZWl0aGVy IG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgorKyAg ICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVy aXRzIGEKKysgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRo aXMgaGFzIGFjdHVhbGx5CisrICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQg bm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgorKyAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBw ZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgorK2FsaWFzIGlu IHlvdXIgZW52aXJvbm1lbnRdKQorKyAgIGZpCisrCisrICAgdGVzdCAiJFsyXSIgPSBjb25mdGVz dC5maWxlCisrICAgKQorK3RoZW4KKysgICAjIE9rLgorKyAgIDoKKytlbHNlCisrICAgQUNfTVNH X0VSUk9SKFtuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxl cyEKKytDaGVjayB5b3VyIHN5c3RlbSBjbG9ja10pCisrZmkKKytBQ19NU0dfUkVTVUxUKHllcyld KQorKworKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIEFNX1BST0df SU5TVEFMTF9TVFJJUAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBPbmUgaXNzdWUgd2l0 aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMgdGhhdCB5b3UgY2FuJ3QKKysjIHNwZWNp ZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5hcmllcy4gIFRoaXMgaXMgZXNwZWNpYWxs eQorKyMgYW5ub3lpbmcgaW4gY3Jvc3MtY29tcGlsaW5nIGVudmlyb25tZW50cywgd2hlcmUgdGhl IGJ1aWxkJ3Mgc3RyaXAKKysjIGlzIHVubGlrZWx5IHRvIGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFy aWVzLgorKyMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZh cmlhYmxlLCBzbyB3ZQorKyMgYWx3YXlzIHVzZSBpbnN0YWxsLXNoIGluIGBtYWtlIGluc3RhbGwt c3RyaXAnLCBhbmQgaW5pdGlhbGl6ZQorKyMgU1RSSVBQUk9HIHdpdGggdGhlIHZhbHVlIG9mIHRo ZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2VyKS4KKytBQ19ERUZVTihbQU1fUFJPR19J TlNUQUxMX1NUUklQXSwKKytbQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKKysj IEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdo ZW4gdGhlIHVzZXIKKysjIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlw JyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0CisrIyB0b29sIHRvIHVzZSBpbiBjcm9zcy1jb21waWxh dGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRvbWFrZQorKyMgd2lsbCBob25vciB0aGUg YFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCisr ZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxpbmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWln aHQgYmUgYG1heWJlJy4KKytpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgor KyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBdLCA6KQorK2ZpCisrSU5TVEFMTF9TVFJJ UF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKKytBQ19TVUJTVChbSU5TVEFMTF9TVFJJ UF9QUk9HUkFNXSldKQorKworKyMgQ29weXJpZ2h0IChDKSAyMDA2ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIF9BTV9TVUJT VF9OT1RNQUtFKFZBUklBQkxFKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBQ cmV2ZW50IEF1dG9tYWtlIGZyb20gb3V0cHV0dGluZyBWQVJJQUJMRSA9IEBWQVJJQUJMRUAgaW4g TWFrZWZpbGUuaW4uCisrIyBUaGlzIG1hY3JvIGlzIHRyYWNlZCBieSBBdXRvbWFrZS4KKytBQ19E RUZVTihbX0FNX1NVQlNUX05PVE1BS0VdKQorKworKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRh cmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysj IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMgorKworKyMgX0FNX1BS T0dfVEFSKEZPUk1BVCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayBob3cgdG8g Y3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFULgorKyMgRk9STUFUIHNob3VsZCBiZSBv bmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBheCcuCisrIworKyMgU3Vic3RpdHV0ZSBhIHZhcmlh YmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQKKysjIHdyaXRpbmcgdG8gc3Rkb3V0IGEg Rk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5CisrIyAkdGFyZGlyLgorKyMg ICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50YXIKKysjCisrIyBT dWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdW50YXIpIHRoYXQgZXh0cmFjdCBzdWNoCisrIyBh IHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgorKyMgICAgICQoYW1fX3VudGFyKSA8IHJlc3VsdC50 YXIKKytBQ19ERUZVTihbX0FNX1BST0dfVEFSXSwKKytbIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZv ciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorK0FNX01JU1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFy XSkKKyttNF9pZihbJDFdLCBbdjddLAorKyAgICAgW2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAi JCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJ10sCisrICAgICBbbTRfY2FzZShb JDFdLCBbdXN0YXJdLCwgW3BheF0sLAorKyAgICAgICAgICAgICAgW200X2ZhdGFsKFtVbmtub3du IHRhciBmb3JtYXRdKV0pCisrQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFy IGFyY2hpdmVdKQorKyMgTG9vcCBvdmVyIGFsbCBrbm93biBtZXRob2RzIHRvIGNyZWF0ZSBhIHRh ciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4KKytfYW1fdG9vbHM9J2dudXRhciBtNF9pZihbJDFd LCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXggY3BpbyBub25lJworK19hbV90b29scz0ke2FtX2N2 X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9CisrIyBEbyBub3QgZm9sZCB0aGUgYWJvdmUgdHdvIGxp bmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQgc2ggYW5kCisrIyBTb2xhcmlzIHNoIHdpbGwgbm90 IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2YgYC0nLgorK2ZvciBfYW1fdG9vbCBpbiAkX2FtX3Rv b2xzCisrZG8KKysgIGNhc2UgJF9hbV90b29sIGluCisrICBnbnV0YXIpCisrICAgIGZvciBfYW1f dGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKKysgICAgZG8KKysgICAgICBBTV9SVU5fTE9HKFskX2Ft X3RhciAtLXZlcnNpb25dKSAmJiBicmVhaworKyAgICBkb25lCisrICAgIGFtX190YXI9IiRfYW1f dGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIici JCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwg W3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKKysgICAgYW1fX3VudGFy PSIkX2FtX3RhciAteGYgLSIKKysgICAgOzsKKysgIHBsYWludGFyKQorKyAgICAjIE11c3Qgc2tp cCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0IC0tZm9ybWF0PSBpdCBkb2Vzbid0IGNy ZWF0ZQorKyAgICAjIHVzdGFyIHRhcmJhbGwgZWl0aGVyLgorKyAgICAodGFyIC0tdmVyc2lvbikg Pi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCisrICAgIGFtX190YXI9J3RhciBjaGYgLSAiJCR0 YXJkaXIiJworKyAgICBhbV9fdGFyXz0ndGFyIGNoZiAtICIkdGFyZGlyIicKKysgICAgYW1fX3Vu dGFyPSd0YXIgeGYgLScKKysgICAgOzsKKysgIHBheCkKKysgICAgYW1fX3Rhcj0ncGF4IC1MIC14 ICQxIC13ICIkJHRhcmRpciInCisrICAgIGFtX190YXJfPSdwYXggLUwgLXggJDEgLXcgIiR0YXJk aXIiJworKyAgICBhbV9fdW50YXI9J3BheCAtcicKKysgICAgOzsKKysgIGNwaW8pCisrICAgIGFt X190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJpbnQgfCBjcGlvIC1vIC1IICQxIC1MJworKyAgICBh bV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKKysgICAg YW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1kJworKyAgICA7OworKyAgbm9uZSkKKysgICAgYW1f X3Rhcj1mYWxzZQorKyAgICBhbV9fdGFyXz1mYWxzZQorKyAgICBhbV9fdW50YXI9ZmFsc2UKKysg ICAgOzsKKysgIGVzYWMKKysKKysgICMgSWYgdGhlIHZhbHVlIHdhcyBjYWNoZWQsIHN0b3Agbm93 LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBhbV9fdGFyCisrICAjIGFuZCBhbV9fdW50YXIgc2V0 LgorKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFrCisrCisrICAjIHRh ci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwgYW5kIHN0b3AgaWYgdGhlIGNvbW1hbmQgd29ya3MK KysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKyAgZWNobyBH cmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQorKyAgQU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0 LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3QudGFyXSkKKysgIHJtIC1yZiBjb25mdGVz dC5kaXIKKysgIGlmIHRlc3QgLXMgY29uZnRlc3QudGFyOyB0aGVuCisrICAgIEFNX1JVTl9MT0co WyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCisrICAgIGdyZXAgR3JlcE1lIGNvbmZ0ZXN0LmRp ci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBicmVhaworKyAgZmkKKytkb25lCisrcm0gLXJmIGNv bmZ0ZXN0LmRpcgorKworK0FDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3Zf cHJvZ190YXJfJDE9JF9hbV90b29sXSkKKytBQ19NU0dfUkVTVUxUKFskYW1fY3ZfcHJvZ190YXJf JDFdKV0pCisrQUNfU1VCU1QoW2FtX190YXJdKQorK0FDX1NVQlNUKFthbV9fdW50YXJdKQorK10p ICMgX0FNX1BST0dfVEFSCisrCisrbTRfaW5jbHVkZShbY29uZmlnL2F4X2Jvb3N0Lm00XSkKKytt NF9pbmNsdWRlKFtjb25maWcvYXhfbXlzcWwubTRdKQorK200X2luY2x1ZGUoW2NvbmZpZy9heF9v cmFjbGVfb2NpLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhfcG9zdGdyZXNxbC5tNF0pCisr bTRfaW5jbHVkZShbY29uZmlnL2NwcHVuaXQubTRdKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL0FVVEhPUlMgc29jaS0zLjAuMF90cmVwMzAwL0FVVEhPUlMKKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9BVVRIT1JTCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL0FVVEhPUlMJMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsOSBAQAorKworK0RhdmlkIENvdXJ0bmV5LCBEZXZlbG9wZXIsIGRhY291 cnRuZXkgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0CisrTWF0ZXVzeiBMb3Nrb3QsIERldmVsb3Bl ciwgbWxvc2tvdCBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytNYWNpZWogU29iY3phaywgQWRt aW4gUHJvamVjdCBNYW5hZ2VyLCBtc29iY3phayBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytQ YXdlbCBBbGVrc2FuZGVyIEZlZG9yeW5za2ksIERldmVsb3BlciwgcGZlZG9yIGF0IHVzZXJzLnNv dXJjZWZvcmdlLm5ldAorK1JhZmFsIEJvYnJvd3NraSwgRGV2ZWxvcGVyLCByYm9icm8gYXQgdXNl cnMuc291cmNlZm9yZ2UubmV0CisrSmVhbi1NYXJjLCBEZXZlbG9wZXIsIHNpZGp0YWwgYXQgdXNl cnMuc291cmNlZm9yZ2UubmV0CisrU3RlcGhlbiBIdXR0b24sIERldmVsb3Blciwgc3RlcGhlbmh1 dHRvbiBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9idWlsZC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUu YW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtl ZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3 IEBACisrIyMgYnVpbGQgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisr U1VCRElSUyA9IHVuaXggbXN2YzgwCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVp bGQvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmluCistLS0g c29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuaW4J MjAwOS0wNS0wMyAwMDoyMDo0MC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTM1IEBACisr IyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUu YW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1 LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAw NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRI ID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikv QFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBB UkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0 CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NS SVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEp CisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxM ID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNU QUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRf dHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9 IFJFQURNRSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJ JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWlsZAorK0FDTE9DQUxf TTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25m aWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5D SUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAt ZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJ R19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVf VEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAor KwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwK KysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0 YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBk Zi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlp bnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZl IFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlz dGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRh Z3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxF UyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJ U1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAor K0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRP TUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9D RkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JP T1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RS RUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJ QlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNf TElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19M SUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJF QURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09T VF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0g QENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAg PSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVO SVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRf TElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lP TkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhE RVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dA CisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVU SUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9f TkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVF WFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFSWV9W RVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNU QUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxM X1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExf U0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1A CisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJ QlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBA TFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAK KytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9D T05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlT UUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElUID0g QE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJT QAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lf TERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9S QUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBP UlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAK KytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBA UEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisr UEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NP TkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxB R1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xE RkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NU R1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1f UkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0g QFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisr U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09N TUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRp ckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNf dG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0 X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3ID0g QGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19k b3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3Rh ciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRp ckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWls ZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRv ciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBk YXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9v a0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlk aXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4 ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFz ID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0 X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAK KytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3Rh bGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBA bGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxl ZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGly QAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJA CisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNm b3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytz YmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9 IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lz Y29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVm aXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAor K3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRk aXIpIC1JJCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K KytTVUJESVJTID0gdW5peCBtc3ZjODAKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklY RVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRl cCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkg ICAgKiQkZGVwKikgXAorKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAorKwkJJiYgZXhpdCAwOyBcCisrCSAgICAgIGV4aXQg MTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2Rpcikg JiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNk aXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvTWFrZWZpbGUKKysuUFJFQ0lP VVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1 cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2Fj OworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAg JChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwkt cm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysK KysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVu dDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcg dGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2Un IHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUg dmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycK KysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVk IHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJl ZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VU Uyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRv IFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICpr KikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rf c2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisr CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8g Ik1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7 IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAi JCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhp dCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4g XAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVz Jzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAi JEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChE SVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2Fj OyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2 IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9 YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7 IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAor KwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0 IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChT T1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVl CisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisr CXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVk ZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249 LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5j bHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGly L1RBR1MgfHwgXAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUv JCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0 IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRl c3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAk KEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRh Z3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJz aXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChU QUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdT X0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQo QU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisr CisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisr CSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAk JGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdT IEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0 cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAor Kwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVz PWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAt ZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0 cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAor KwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQg Jy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAt dWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkg IGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQo c3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAg ZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlm IHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4g XAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQk ZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQk ZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIg XAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwg ZXhpdCAxOyBcCisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBc CisrCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwK KysJICAgIChjZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRp c3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAor KwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAg ICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytj aGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOiBp bnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBpbnN0YWxs LXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3Rh bGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFH UykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5z dGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAg aW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RS SVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJ TlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3Rs eWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJp YzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFu OiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1y ZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZv OiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKwor K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06 CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFs bC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMt cmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1h aW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2 ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5p bnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTog JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RB R1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFu LWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2 aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFu LWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5p bnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMu NTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3Ro ZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVk LgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAv ZGxsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2Vm aWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5h bQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExIEBACisrIyMgYnVpbGQvbXN2YzgwL2RsbCBzdWIt ZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorKworK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUID0gYnVpbGQu YmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9q IFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJh dCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMu dmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2og ZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52 Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3Fs LnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMw MC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVp bGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmlu CTIwMDktMDUtMDMgMDA6MjA6NDAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM4MyBAQAor KyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxl LmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5 NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91 dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFU SCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGli ZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIp L0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQ QVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0 NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1ND UklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRB KQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFM TCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5T VEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxk X3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04g PSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWlsZC9tc3ZjODAvZGxsCisrQUNM T0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMg PSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1f X2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBF TkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxf c2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisr Q09ORklHX0NMRUFOX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK0RJU1RG SUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJB X0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFS QAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytB VVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAor K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFM U19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9U SFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytC T09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0ND ID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytD UFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQ UFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVO SVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVS U0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBD WFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRI X1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZ TVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVD SE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBF WEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFS WV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJ TlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNU QUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RB TExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dS QU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0g QExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMg PSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJf UEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNR TF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBA TVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElU ID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9E SVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9P Q0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0g QE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05A CisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BH X0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9D RkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FM X0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQ T1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBS UE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxM ID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK KytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA CisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2Fj X2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3 ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGlu Z19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1f X3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJp bmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKyti dWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3Zl bmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9 IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlm Zl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytk dmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0g QGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2Fs aWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBo b3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRp ckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2lu c3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIg PSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9j YWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFu ZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVk aXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJh bnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAK KytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRp ciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBA c3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9w cmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGly QAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVp bGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKytFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2Ri Y190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxp dGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNf dGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3Fs aXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21z c3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJZW1wdHlfdGVz dC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxsLnZz cHJvcHMKKysKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZp bGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2Fz ZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCBcCisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJ ZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAg YnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisr CSAgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKKysuUFJFQ0lP VVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1 cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2Fj OworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAg JChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwkt cm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKyt0 YWdzOiBUQUdTCisrVEFHUzoKKysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0 ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0 b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQo RElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVj aG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBc CisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7 IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAi JCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3Ms L1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBm aWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3Qg LWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0 IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAt ZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAm JiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIp LyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAg Y3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2Ug XAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQv JCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBc CisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBN YWtlZmlsZQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4 ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5p bnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0 YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc CisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAor K21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4t Z2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNo byAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBl Y2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byBy ZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAk KE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBj bGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46 IGRpc3RjbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFt IGRpc3RjbGVhbi1nZW5lcmljCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRt bDogaHRtbC1hbQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwt ZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4 ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWlu Zm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBp bnN0YWxsLXBkZi1hbQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxs Y2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwkt cm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisr bW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAor KworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgor KworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisr CisrLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4t bGlidG9vbCBkaXN0ZGlyIGR2aSBcCisrCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFt IGluc3RhbGwgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5z dGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAorKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1p bmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFs bC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFs bGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNs ZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisr CisrQFNFVF9NQUtFQAorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0 byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQg KGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0gc29jaS0z LjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIv TWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAg KzEsMTEgQEAKKysjIyBidWlsZC9tc3ZjODAvbGliIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgorKworK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0 ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsX3Rlc3Qu dmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKKysJZmlyZWJpcmRfdGVzdC52 Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAorKwlwb3N0Z3Jlc3Fs LnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAorKwlv ZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAor KwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2og c29jaV9saWIudnNwcm9wcworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4 MC9saWIvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFr ZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxl LmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MC4w MDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMzgzIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0 ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lu cHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg MjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmlu IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8g dGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNV TEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRh ZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tB R0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0g Q0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3Rh bGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFN ID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAt YworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9n cmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0g OgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RB TEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKyto b3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgorK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9saWIKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGly KS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmln L2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQu bTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFt X19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9D QUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVS ID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQor K1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikg JChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFD TE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NP TkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAor K0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRF X1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIg PSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9J T1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFN X09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhf TElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxT X0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisr Qk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0g QENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1Mg PSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5J VF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElC U0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisr Q1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1Mg PSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisr REVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytFQ0hPID0gQEVDSE9A CisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hP X1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGNzcgPSBARjc3QAor K0ZGTEFHUyA9IEBGRkxBR1NACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19M SUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJ TlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxM X1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9T VFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMREZMQUdTID0gQExERkxB R1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJ QlRPT0xACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlO Rk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBN WVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJT ID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FM X1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkVYVCA9 IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAor K1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JF UE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0g QFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisr UEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQ QVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AK KytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJ UlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FM X0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytS QU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBT RURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0g QFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBA VkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBA YWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJz X3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisr YWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9GNzcgPSBAYWNfY3RfRjc3QAorK2FtX19p bmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19k b3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1f X3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxk QAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVA CisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAK KytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3Rk aXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2Nk aXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZp cHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sg PSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKyto b3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3Ig PSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5j bHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3No QAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2Rp ciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRp ciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rp cl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGly QAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAK KytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAor K3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIp CisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK0VYVFJBX0RJU1QgPSBidWls ZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3By b2ogXAorKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4u YmF0IFwKKysJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2Ri Yy52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJv aiBmaXJlYmlyZC52Y3Byb2ogXAorKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0 LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAorKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlz cWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcworKworK2FsbDogYWxsLWFt CisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVw cykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVw cyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAor KwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAk KHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC9tc3ZjODAvbGliL01ha2Vm aWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAg YnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmls ZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisr CUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkg ICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19E RVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4t bGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK3RhZ3M6IFRBR1MKKytUQUdTOgorKwor K2N0YWdzOiBDVEFHUworK0NUQUdTOgorKworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlA c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRp c3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisr CSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9w c3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxl cyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJ CSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkg ICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBk byBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBl bHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBc CisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAor KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRp ciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRp c3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlz dGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZp bGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBh bGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6 CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisr aW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQor KworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFs bC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNr LWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dS QU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJ ICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9F TlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoK KysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAi JChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysK KyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50 ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMg dGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAi JChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMp CisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGli dG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAt ZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKysK Kytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraW5mbzog aW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0 bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisr CisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5z dGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFp bmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysK Kyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0KKysKKytw ZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKwor Ky5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IGFsbCBhbGwtYW0g Y2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJZGlz dGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwK KysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwK KysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1h bSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwt aHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5z dGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5z dGFsbC1zdHJpcCBcCisrCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMg bWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVh biBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFt IHBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAv TWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDggQEAKKysjIyBidWlsZC9tc3ZjODAgc3ViLWRpcmVjdG9y eQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29j aS52c3Byb3BzCisrCisrU1VCRElSUyA9IGRsbCBsaWIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21z dmM4MC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MC4w MDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTM2IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0 ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lu cHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg MjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmlu IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8g dGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNV TEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRh ZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tB R0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0g Q0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3Rh bGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFN ID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAt YworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9n cmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0g OgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RB TEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKyto b3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgorK3N1YmRpciA9IGJ1aWxkL21zdmM4MAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2Fj bG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf Ym9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9N NCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09V UkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNp dmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZv LXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJz aXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGlu c3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1w cy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZl IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVu aW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFu LXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWlu dGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisr RElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQo RElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xP Q0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05G QAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytB V0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9U SU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0g QEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9T VFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJ QiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19M SUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JP T1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIg PSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBD Q0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0g QENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRf Q09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNA CisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NY WENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0g QENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RF UERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAor K0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19U QAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytG RkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElC UkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5T VEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9Q Uk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RS SVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdT QAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJU T09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZP ID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlT UUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9 IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9W RVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBA T0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdT ID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJ X0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQ QUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBP UlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQ QUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BB Q0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFU SF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisr UE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJT ID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9M REZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFO TElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VE QAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVS U19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBT VFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZF UlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFi c19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190 b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2Fj X2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5j bHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90 QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191 bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAK KytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAor K2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisr YnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGly ID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGly QAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBz X29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0g QGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9z dF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0g QGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1 ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAK KytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIg PSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIg PSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJf cEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAK KytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisr c2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytz cmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxp YXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZp eEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3Ny Y2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQor K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytFWFRSQV9ESVNUID0gUkVBRE1F LnR4dCBzb2NpLnZzcHJvcHMKKytTVUJESVJTID0gZGxsIGxpYgorK2FsbDogYWxsLXJlY3Vyc2l2 ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFr ZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2Rl cHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2Rl cHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCisrCQkmJiBleGl0IDA7IFwK KysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2Qg JCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2VmaWxl JzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVp bGQvbXN2YzgwL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNy Y2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2Ug JyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAor KwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVO Q0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVf ZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr CisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29s OgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVj dG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBh bmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRv IGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGlu ZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0 YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhl IE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgy KSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFu ZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAor Kwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAg Kj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJ ICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRA IHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIi OyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVu PXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwK KysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8 fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0g Im5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8 fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VG TEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAor KwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBc CisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBt YWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxp c3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2Ug XAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisr CXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8v YDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFy Z2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwg JCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZl OgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0 ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAu IHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJ ZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMp CisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc CisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25l IHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKKysJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdz LXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwK KysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisr CWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5 X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkg IGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0 YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwK KysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5p cXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQk ZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1Mp ICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6 IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQo VEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsg XAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7 IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQk aSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRv bmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAor KwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9 OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAg fHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykg XAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkg JCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkg ICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6Cisr CS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRp cjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9w X3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJ U1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hv ICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAor KwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBc CisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQk ZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9b Xi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmls ZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1k ICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAt ZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUg J3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYg dGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8k JGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNw IC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwK KysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQk ZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRl c3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlz dGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChh bV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2Nk KSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkg ICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQk dG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwK KysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwK KysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisr CWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1h bTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFs bGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNp dmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwt YW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRh dGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxs LXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICck KFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9 JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdl bmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXIt Y2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFp bnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1 aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJD TEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xl YW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBt b3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0g LWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRp c3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0 bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFt OgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVj dXJzaXZlCisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1o dG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQor KworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUK KysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxjaGVjay1h bToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwkt cm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2 ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxp YnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJl Y3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisr CWluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQo UkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVj ay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1y ZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRv b2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGlu Zm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1k YXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisr CWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBc CisrCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBc CisrCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVy LWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNs ZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0g dGFncyB0YWdzLXJlY3Vyc2l2ZSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VU X01BS0VACisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvdW5peC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgv TWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4 LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMSBAQAorKyMjIGJ1aWxkL3VuaXggc3ViLWRp cmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlO VEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVp bGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFs bC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAorKworK0VYVFJBX0RJU1QgPSBidWlsZC1jb3Jl LnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBh cmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBv c3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmls ZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgorLS0tIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmls ZS5pbgkyMDA5LTA1LTAzIDAwOjIwOjQwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzODMg QEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtl ZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBh bmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBh cyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdp dGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisr VlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3Br Z2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRl ZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRI X1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAt bSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9z aF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExf REFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lO U1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9V TklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKyti dWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09N TU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gYnVpbGQvdW5peAorK0FDTE9D QUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0g JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NP TkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAK KytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVU T01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1Rf Q0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytC T09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NU UkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9M SUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNf TElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhS RUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9P U1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9 IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQ ID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBV TklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklU X0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJ T05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hY REVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9X QAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1V VElMQAorK0VDSE8gPSBARUNIT0AKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hP X05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhF RVhUQAorK0Y3NyA9IEBGNzdACisrRkZMQUdTID0gQEZGTEFHU0AKKytHRU5FUklDX0xJQlJBUllf VkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5T VEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFM TF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxM X1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFN QAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBM SUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0g QExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BA CisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxf Q09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1Z U1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NRURJVCA9 IEBOTUVESVRACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElS U0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJ X0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBP UkFDTEVfT0NJX1ZFUlNJT05ACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQ T1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVA CisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0g QFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAor K1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19D T05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZM QUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9M REZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9T VEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBN X1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9 IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisr U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAor K1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NP TU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRk aXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJz X3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19j dF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0Y3NyA9 IEBhY19jdF9GNzdACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdf ZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190 YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5k aXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVp bGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5k b3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBA ZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZf b2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZp ZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBl eGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlh cyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9z dF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJA CisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0 YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0g QGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2Fs ZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRp ckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGly QAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisr c2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIg PSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5 c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJl Zml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAK Kyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxk ZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu CisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3Qu dGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRj bCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAor K0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBp bnN0YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxk LW15c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKKysJJChF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrCisrYWxsOiBhbGwtYW0KKysKKysu U1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFt ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlA Zm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4g XAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAorKwkJJiYgZXhpdCAwOyBcCisrCSAgICAg IGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3Ny Y2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL3VuaXgvTWFrZWZpbGUnOyBcCisrCWNk ICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC91bml4L01h a2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZp bGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisr CSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAn IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr CisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr JChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9zdGx5Y2xl YW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJm IC5saWJzIF9saWJzCisrdGFnczogVEFHUworK1RBR1M6CisrCisrY3RhZ3M6IENUQUdTCisrQ1RB R1M6CisrCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJ ZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQo c3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAg Y3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkg ICAgZmk7IFwKKysJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0 IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkg ICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0 IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVj ay1hbQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczoKKytpbnN0YWxsOiBpbnN0YWxs LWFtCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KKytpbnN0YWxsLWRhdGE6IGluc3Rh bGwtZGF0YS1hbQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisrCisraW5zdGFsbC1hbTogYWxs LWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1k YXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KKytpbnN0YWxsLXN0cmlw OgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQ KScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RS SVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6 CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0K KysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFt CisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNs ZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYworKworK2R2aTogZHZpLWFtCisrCisr ZHZpLWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1h bToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFt CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFt CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLW1hbjoKKysK KytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBz LWFtCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWlu ZXItY2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMt YW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0g aW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVh biBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdl bmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1s LWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5z dGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVj IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFs bC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3Rh bGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKysJaW5z dGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwK KysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVy aWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxs IHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42 Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNl IGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5O T0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfYm9vc3QubTQg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9ib29zdC5tNAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9heF9ib29zdC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfYm9vc3QubTQJMjAwOS0wNC0xNiAx OTozNzoyMy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTM0IEBACisrZG5sIEBzeW5vcHNp cyBBWF9CT09TVChbTUlOSU1VTS1WRVJTSU9OXSwgW0FDVElPTi1JRi1GT1VORF0sIFtBQ1RJT04t SUYtTk9ULUZPVU5EXSkKKytkbmwKKytkbmwgVGVzdCBmb3IgdGhlIEJvb3N0IEMrKyBsaWJyYXJp ZXMgb2YgYSBwYXJ0aWN1bGFyIHZlcnNpb24gKG9yIG5ld2VyKQorK2RubAorK2RubCBJZiBubyBw YXRoIHRvIHRoZSBpbnN0YWxsZWQgYm9vc3QgbGlicmFyeSBpcyBnaXZlbiB0aGUgbWFjcm8KKytk bmwgc2VhcmNocyB1bmRlciAvdXNyLCAvdXNyL2xvY2FsLCBhbmQgL29wdCwgYW5kIGV2YWx1YXRl cyB0aGUKKytkbmwgJEJPT1NUX1JPT1QgZW52aXJvbm1lbnQgdmFyaWFibGUuCisrZG5sCisrZG5s IFRoaXMgbWFjcm8gY2FsbHM6CisrZG5sCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKSAv IEFDX1NVQlNUKEJPT1NUX0xJQlMpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9M SUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikKKytkbmwgICBB Q19TVUJTVChCT09TVF9USFJFQURfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFN U19MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpCisrZG5sICAg QUNfU1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NU X1NJR05BTFNfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCisrZG5s ICAgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCKQorK2RubAorK2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBI QVZFX0JPT1NUCisrZG5sICAgSEFWRV9CT09TVF9GSUxFU1lTVEVNCisrZG5sICAgSEFWRV9CT09T VF9QUk9HUkFNX09QVElPTlMKKytkbmwgICBIQVZFX0JPT1NUX1RIUkVBRAorK2RubCAgIEhBVkVf Qk9PU1RfSU9TVFJFQU1TCisrZG5sICAgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OCisrZG5sICAg SEFWRV9CT09TVF9TSUdOQUxTCisrZG5sICAgSEFWRV9CT09TVF9EQVRFX1RJTUUKKytkbmwgICBI QVZFX0JPT1NUX1JFR0VYCisrZG5sICAgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLCisr ZG5sCisrZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcworK2RubCBAYXV0aG9yIFRob21h cyBQb3JzY2hiZXJnIDx0aG9tYXNAcmFuZHNwcmluZ2VyLmRlPgorK2RubCBAdmVyc2lvbiAyMDA2 LTAxLTAyCisrZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKKysKKytBQ19ERUZVTihbQVhfQk9P U1RdLAorK1sKKysgICAgQUNfQVJHX1dJVEgoW2Jvb3N0XSwKKysgICAgICAgICAgICAgICAgQUNf SEVMUF9TVFJJTkcoWy0td2l0aC1ib29zdD1ESVJdLAorKyAgICAgICAgICAgICAgICBbdXNlIGJv b3N0IChkZWZhdWx0IGlzIE5PKSAsIHNwZWNpZnkgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciBib29z dCBsaWJyYXJ5IChvcHRpb25hbCldKSwKKysgICAgICAgICAgICAgICAgWworKyAgICAgICAgICAg ICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCisrCQkgICAgICAgICAgICB3YW50 X2Jvb3N0PSJubyIKKysgICAgICAgICAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVz IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgd2FudF9ib29zdD0ieWVzIgorKyAgICAgICAg ICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0iIgorKyAgICAgICAgICAgICAgICBlbHNlCisrCQkJ ICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCisrICAgICAgICAgICAgCQlhY19ib29zdF9wYXRoPSIk d2l0aHZhbCIKKysJCSAgICAgICAgZmkKKysgICAgICAgICAgICAJXSwKKysgICAgICAgICAgICAg ICAgW3dhbnRfYm9vc3Q9InllcyJdKQorKworKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECisrQk9P U1RfTURXX1ZFUlNJT049IjEtMzMtMSIKKytCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18xIgor KworKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCisrCQlib29zdF9saWJf dmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sICwxLjIwLjAsJDEpCisrCQlib29zdF9saWJfdmVyc2lv bl9yZXFfc2hvcnRlbj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpc LltbMC05XV0qXCknYAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29z dF9saWJfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9u X3JlcV9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtb MC05XV0qXCknYAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9v c3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AK KysJCWlmIHRlc3QgIngkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0 aGVuCisrCQkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisr CQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBc KiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29z dF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yYAorKwkJQUNfTVNHX0NIRUNLSU5HKGZvciBib29z dGxpYiA+PSAkYm9vc3RfbGliX3ZlcnNpb25fcmVxKQorKwkJc3VjY2VlZGVkPW5vCisrCisrCQlk bmwgZmlyc3Qgd2UgY2hlY2sgdGhlIHN5c3RlbSBsb2NhdGlvbiBmb3IgYm9vc3QgbGlicmFyaWVz CisrCQlkbmwgdGhpcyBsb2NhdGlvbiBpcyBjaG9zZW4gaWYgYm9vc3QgbGlicmFyaWVzIGFyZSBp bnN0YWxsZWQgCisrCQlkbmwgd2l0aCB0aGUgLS1sYXlvdXQ9c3lzdGVtIG9wdGlvbgorKwkJZG5s IG9yIGlmIHlvdSBpbnN0YWxsIGJvb3N0IHdpdGggUlBNCisrCQlpZiB0ZXN0IC1kIC9saWI2NDsg dGhlbgorKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0IgorKwkJZWxzZQorKwkJCUJPT1NUX0xJ QkRJUlRZUEU9ImxpYiIKKysJCWZpCisrCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7 IHRoZW4KKysJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IjsgdGhlbgor KwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVz dCAtciAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiOyB0aGVuCisrCSAgICAgICAg ICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgor KwkJCQllbHNlCisrICAgICAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9w YXRoL2xpYiIKKysJCQkJZmkKKysJCQllbHNlCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0 X3BhdGgvbGliIgorKwkJCWZpCisrCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2lu Y2x1ZGUiCisrCQllbHNlCisrCQkJZm9yIGFjX2Jvb3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9s b2NhbCAvb3B0IC9uYXN0b29scy9ib29zdCA7IGRvCisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29z dF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAv aW5jbHVkZS9ib29zdCI7IHRoZW4KKysJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhf dG1wLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9w YXRoX3RtcC9pbmNsdWRlIgorKwkJCQkJYnJlYWs7CisrCQkJCWZpCisrCQkJCWlmIHRlc3QgLWQg IiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29z dCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01E V19WRVJTSU9OL2Jvb3N0IjsgdGhlbgorKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0 aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0 X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OIgorKwkJCQorKwkJCQkJ ZG5sIEhhY2sgZm9yIHdyb25nbHkgaW5zdGFsbGVkIEJvb3N0IGxpYnJhcmllcyAoQU1ENjQgbGli cmFyaWVzIGluc3RhbGxlZCBpbiBib29zdC9saWIgZGlyZWN0b3J5KQorKwkJCQkJaWYgdGVzdCAt ZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1w L2xpYiIgJiYgdGVzdCAhIC1kICIkYWNfYm9vc3RfcGF0aF90bXAvbGliNjQiOyB0aGVuCisrCQkJ CQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvbGliIgorKwkJCQkJCWVjaG8gIkhh Y2s6ICRCT09TVF9MSUJTIgorKwkJCQkJZmkKKysJCQkJCWJyZWFrOworKwkJCQlmaQorKwkJCWRv bmUKKysJCWZpCisrCisrCQlDUFBGTEFHU19TQVZFRD0iJENQUEZMQUdTIgorKwkJQ1BQRkxBR1M9 IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgorKwkJZXhwb3J0IENQUEZMQUdTCisrCisrCQlMREZM QUdTX1NBVkVEPSIkTERGTEFHUyIKKysJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgor KwkJZXhwb3J0IExERkxBR1MKKysKKysgICAgIAlBQ19UUllfQ09NUElMRSgKKysgICAgICAgCVsK KytAJTpAaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+CisrXSwKKysgICAgICAgWworKyNpZiBC T09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJT04KKysvLyBFdmVyeXRoaW5nIGlzIG9r YXkKKysjZWxzZQorKyMgIGVycm9yIEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAorKyNlbmRpZgor KworKwkJXSwKKysgICAgCVsKKysgICAgICAgICBBQ19NU0dfUkVTVUxUKHllcykKKysJCSBzdWNj ZWVkZWQ9eWVzCisrCQkgZm91bmRfc3lzdGVtPXllcworKyAgICAgICAgIGlmZWxzZShbJDJdLCAs IDosIFskMl0pCisrICAgICAgIF0sCisrICAgICAgIFsKKysgICAgICAgXSkKKysKKysJCWRubCBp ZiB3ZSBmb3VuZCBubyBib29zdCB3aXRoIHN5c3RlbSBsYXlvdXQgd2Ugc2VhcmNoIGZvciBib29z dCBsaWJyYXJpZXMKKysJCWRubCBidWlsdCBhbmQgaW5zdGFsbGVkIHdpdGhvdXQgdGhlIC0tbGF5 b3V0PXN5c3RlbSBvcHRpb24gb3IgZm9yIGEgc3RhZ2VkKG5vdCBpbnN0YWxsZWQpIHZlcnNpb24K KysJCWlmIHRlc3QgIngkc3VjY2VlZGVkIiAhPSAieHllcyI7IHRoZW4KKysJCQlfdmVyc2lvbj0w CisrCQkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCisrICAgICAgICAgICAg ICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJ CWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7 IHRoZW4KKysJCQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0 LSogMj4vZGV2L251bGxgOyBkbworKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAi cyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAn cy9fLy4vJ2AKKysJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9u YAorKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJX3ZlcnNp b249JF92ZXJzaW9uX3RtcAorKwkJCQkJCWZpCisrCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBl Y2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCisrCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRh Y19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJCWRv bmUKKysJCQkJZmkKKysJCQllbHNlCisrCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vz ci9sb2NhbCAvb3B0IDsgZG8KKysJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0 ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KKysJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFj X2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQkJX3Zl cnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wv aW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18vLi8nYAorKwkJCQkJCQlWX0NIRUNLPWBleHBy ICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAorKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIg PSAiMSIgOyB0aGVuCisrCQkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJCQli ZXN0X3BhdGg9JGFjX2Jvb3N0X3BhdGgKKysJCQkJCQkJZmkKKysJCQkJCQlkb25lCisrCQkJCQlm aQorKwkJCQlkb25lCisrCisrCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24g fCBzZWQgJ3MvXC4vXy8nYAorKwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRl L2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0 aC8kQk9PU1RfTElCRElSVFlQRSIKKysKKysJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAh PSAieCI7IHRoZW4KKysJCQkJCWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIk Qk9PU1RfUk9PVCI7IHRoZW4KKysJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09U IDogJy4qL1woLipcKSdgCisrCQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIg fCBzZWQgJ3MvYm9vc3RfLy8nIHwgc2VkICdzL18vLi9nJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9u X3Nob3J0ZW49YGV4cHIgJHN0YWdlX3ZlcnNpb24gOiAnXChbWzAtOV1dKlwuW1swLTldXSpcKSdg CisrCQkJCQkJVl9DSEVDSz1gZXhwciAkc3RhZ2VfdmVyc2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJz aW9uYAorKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJQUNf TVNHX05PVElDRShXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NU X1JPT1QpCisrCQkJCQkJCUJPT1NUX0NGTEFHUz0iLUkkQk9PU1RfUk9PVCIKKysJCQkJCQkJQk9P U1RfTElCUz0iLUwkQk9PU1RfUk9PVC9zdGFnZS8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCQlm aQorKwkJCQkJZmkKKysJICAgIAkJZmkKKysJCQlmaQorKworKwkJCUNQUEZMQUdTPSIkQ1BQRkxB R1MgJEJPT1NUX0NGTEFHUyIKKysJCQlleHBvcnQgQ1BQRkxBR1MKKysJCQlMREZMQUdTPSIkTERG TEFHUyAkQk9PU1RfTElCUyIKKysJCQlleHBvcnQgTERGTEFHUworKworKyAgICAgCQlBQ19UUllf Q09NUElMRSgKKysgICAgICAgCQlbCisrQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgor K10sCisrICAgICAgIFsKKysjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9O CisrLy8gRXZlcnl0aGluZyBpcyBva2F5CisrI2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9u IGlzIHRvbyBvbGQKKysjZW5kaWYKKysKKysJCV0sCisrICAgIAlbCisrICAgICAgICAgQUNfTVNH X1JFU1VMVCh5ZXMgKCRfdmVyc2lvbikpCisrCQkgc3VjY2VlZGVkPXllcworKyAgICAgICAgIGlm ZWxzZShbJDJdLCAsIDosIFskMl0pCisrICAgICAgIF0sCisrICAgICAgIFsKKysgICAgICAgICBB Q19NU0dfUkVTVUxUKG5vICgkX3ZlcnNpb24pKQorKyAgICAgICAgIGlmZWxzZShbJDNdLCAsIDos IFskM10pCisrICAgICAgIF0pCisrCQlmaQorKworKwkJaWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0g InllcyIgOyB0aGVuCisrCQkJaWYgdGVzdCAiJF92ZXJzaW9uIiA9ICIwIiA7IHRoZW4KKysJCQkJ QUNfTVNHX0VSUk9SKFtbV2UgY291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2 ZXJzaW9uICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3Ug aGF2ZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ug c3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUg YSBQQVRIIHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUg Ym9vc3QgaW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBp biA8Ym9vc3QvdmVyc2lvbi5ocHA+Ll1dKQorKwkJCWVsc2UKKysJCQkJQUNfTVNHX0VSUk9SKCdZ b3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdl IG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nKQorKwkJCWZpCisrCQll bHNlCisrCQkJQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKQorKwkJCUFDX1NVQlNUKEJPT1NUX0xJQlMp CisrCQkJQUNfREVGSU5FKEhBVkVfQk9PU1QsLFtkZWZpbmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkg aXMgYXZhaWxhYmxlXSkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6 OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGVdLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0 X2ZpbGVzeXN0ZW0sCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExV UworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8 Ym9vc3QvZmlsZXN5c3RlbS9wYXRoLmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpmaWxlc3lzdGVtOworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBteV9wYXRoKCAiZm9vL2Jhci9kYXRhLnR4 dCIgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwK KysgICAgICAgICAgICAJCQkJICAgICAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzLCBheF9j dl9ib29zdF9maWxlc3lzdGVtPW5vKQorKwkJIAkJICAgICAgICAJCQlBQ19MQU5HX1JFU1RPUkUK KysJCQldKQorKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0 aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0ZJTEVTWVNURU0sLFtkZWZpbmUgaWYgdGhl IEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49Ym9vc3Rf ZmlsZXN5c3RlbQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJO LSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli JEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJO LW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJO LSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElC KCRheF9saWIsIG1haW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NU X0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1fTElC KSBsaW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtsaW5rX2ZpbGVzeXN0ZW09Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0 ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElD RShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKwor KwkJCUFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxp YnJhcnkgaXMgYXZhaWxhYmxlXSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlv bnMsCisrCQkJCQkJICAgW0FDX0xBTkdfU0FWRQorKyAgICAgICAgICAgICAgICAgICAgICAgICAg IEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJICAgICAgICAgICAgICAgQUNfQ09NUElMRV9JRkVMU0Uo QUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+ XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojpwcm9ncmFt X29wdGlvbnM6Om9wdGlvbnNfZGVzY3JpcHRpb24gZ2VuZXJpYygiR2VuZXJpYyBvcHRpb25zIik7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSksCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPXllcywg YXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPW5vKQorKwkJCSAgICAgICAgICAgICAgIEFDX0xB TkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0 aW9ucyIgPSB5ZXM7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJ T05TLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZh aWxhYmxlXSkKKysJCQkJQk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCisrCQkJCWZvciBheF9saWIg aW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10 IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO LSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT047IGRvCisrCQkJCSAgICBBQ19DSEVD S19MSUIoJGF4X2xpYiwgbWFpbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9QUk9H UkFNX09QVElPTlNfTElCKSBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVha10sCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyJd KQorKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8i IiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWlu c3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisrCisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hl dGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBh eF9jdl9ib29zdF90aHJlYWQsCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQ TFVTUExVUworKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhGTEFHUworKworKwkJCSBpZiB0ZXN0ICJ4 JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCisrICAJCQkJIENYWEZMQUdTPSItcHRocmVh ZHMgJENYWEZMQUdTIgorKwkJCSBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsg dGhlbgorKwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAkQ1hYRkxBR1MiCisrCQkJIGVsc2UKKysJ CQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIKKysJCQkgZmkKKysJCQkgQUNfQ09NUElM RV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3RocmVhZC90aHJl YWQuaHBwPl1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6 dGhyZWFkX2dyb3VwIHRocmRzOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF90aHJlYWQ9eWVz LCBheF9jdl9ib29zdF90aHJlYWQ9bm8pCisrCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCisr CQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90 aHJlYWQiID0gInh5ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9v cyIgPSAieHNvbGFyaXMiIDsgdGhlbgorKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAk Qk9PU1RfQ0ZMQUdTIgorKwkJCSAgIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIg OyB0aGVuCisrIAkJCQkgIEJPT1NUX0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCisr CQkJICAgZWxzZQorKwkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIK KysJCQkgICBmaQorKworKwkJCQlBQ19TVUJTVChCT09TVF9DRkxBR1MpCisrCQkJCUFDX0RFRklO RShIQVZFX0JPT1NUX1RIUkVBRCwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X3RocmVhZAorKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0k Q0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVD S19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1RIUkVBRF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VC U1QoQk9PU1RfVEhSRUFEX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlkb25l CisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01T R19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJ ZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxp YnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcywKKysJ CQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJ TEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMv ZmlsdGVyaW5nX3N0cmVhbS5ocHA+CisrCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9y YW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbW3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3Js ZCEiOworKwkJCQkJCQkJCSBuYW1lc3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOworKwkJCQkJ CQkJCSBpbzo6ZmlsdGVyaW5nX2lzdHJlYW0gIGluKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3Jhbmdl KGlucHV0KSk7CisrCQkJCQkJCQkJIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9pb3N0cmVh bXM9eWVzLCBheF9jdl9ib29zdF9pb3N0cmVhbXM9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQor KwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0 aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0lPU1RSRUFNUywsW2RlZmluZSBpZiB0aGUg Qm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X2lv c3RyZWFtcworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRD Qy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVS U0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0lP U1RSRUFNU19MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfSU9TVFJFQU1TX0xJQikgbGlu a190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190 aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNIRV9DSEVD Syh3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwK KysJCQkJCQkgICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uLAorKwkJCQkJCVtBQ19MQU5HX1NB VkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFO R19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGZzdHJlYW0+CisrCQkJCQkJCQkJCQkJIEAlOkBpbmNs dWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAJTpAaW5jbHVkZSA8Ym9vc3QvYXJjaGl2 ZS90ZXh0X2lhcmNoaXZlLmhwcD4KKysJCQkJCQkJCQkJCQldXSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtbc3RkOjpvZnN0cmVhbSBvZnMoImZpbGVuYW1lIik7CisrCQkJ CQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKKysJCQkJCQkJCQkg cmV0dXJuIDA7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXSksCisrICAg ICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249eWVzLCBheF9jdl9ib29z dF9zZXJpYWxpemF0aW9uPW5vKQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlm IHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPSAieHllcyI7IHRoZW4KKysJCQkJ QUNfREVGSU5FKEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6 OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9zZXJp YWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4t JENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIk Qk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19W RVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQj0iLWwk YXhfbGliIiBBQ19TVUJTVChCT09TVF9TRVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9Inll cyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVh ZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCUJOPWJvb3N0X3dzZXJpYWxpemF0aW9uCisrCQkJ CWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRD Qy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBs aWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJ CQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtCT09TVF9XU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VC U1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQorKyAg CQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJ CQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJ ZmkKKysJCQlmaQorKworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpTaWdu YWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3NpZ25hbHMs CisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19D T01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc2lnbmFs LmhwcD4KKysJCQkJCQkJCQkJCQldXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtbYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zaWduYWxzPXllcywg YXhfY3ZfYm9vc3Rfc2lnbmFscz1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJ CQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NpZ25hbHMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFD X0RFRklORShIQVZFX0JPT1NUX1NJR05BTFMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxz IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49Ym9vc3Rfc2lnbmFscworKwkJCQlmb3Ig YXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJO LSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAg ICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9s aWIiIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQor KyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgor KwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJ CQkJZmkKKysJCQlmaQorKworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpE YXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfZGF0 ZV90aW1lLAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJ CQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0 L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KKysJCQkJCQkJCQkJCQld XSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNl IGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgyMDAyLEphbiwxMCk7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9kYXRlX3Rp bWU9eWVzLCBheF9jdl9ib29zdF9kYXRlX3RpbWU9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQor KwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0 aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0RBVEVfVElNRSwsW2RlZmluZSBpZiB0aGUg Qm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X2Rh dGVfdGltZQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRD Qy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVS U0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0RB VEVfVElNRV9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikgbGlu a190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190 aHJlYWQiPSJubyIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKwkJCUFDX0NBQ0hF X0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJ CQkJCQkgICBheF9jdl9ib29zdF9yZWdleCwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFD X0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShb W0AlOkBpbmNsdWRlIDxib29zdC9yZWdleC5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAw O11dKSwKKysgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzLCBheF9jdl9i b29zdF9yZWdleD1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0 ICJ4JGF4X2N2X2Jvb3N0X3JlZ2V4IiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFW RV9CT09TVF9SRUdFWCwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZh aWxhYmxlXSkKKysJCQkJQk49Ym9vc3RfcmVnZXgKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJO LSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJO LW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3 LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRh eF9saWIsIG1haW4sIFtCT09TVF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1Rf UkVHRVhfTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYg dGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKwkJ CUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJy YXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3 b3JrLAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkg QUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rl c3QvdW5pdF90ZXN0LmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbW3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7CisrCQkJCQkgICAgICAgICAg ICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhh bXBsZSAxIiApOyByZXR1cm4gMDtdXSksCisrICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0 X3VuaXRfdGVzdF9mcmFtZXdvcms9eWVzLCBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3Jr PW5vKQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3Zf Ym9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPSAieHllcyI7IHRoZW4KKysgICAgCQlBQ19ERUZJ TkUoSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6 VW5pdF90ZXN0X2ZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJQk49Ym9vc3Rf dW5pdF90ZXN0X2ZyYW1ld29yaworKyAgICAJCXNhdmVkX2xkZmxhZ3M9IiR7TERGTEFHU30iCisr CQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJT SU9OIDsgZG8KKysgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtbCRheF9saWIi CisrICAgIAkJCUFDX0NBQ0hFX0NIRUNLKHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RG cmFtZXdvcmsgbGlicmFyeSwKKysJICAgICAgCQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3Rf ZnJhbWV3b3JrLAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMK KysgICAgICAgICAgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbQCU6QGlu Y2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgW1t1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NV SVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pXSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJ5ZXMiXSxbbGlua190aHJlYWQ9Im5v Il0pCisrCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKyAgICAgICAgICAgICAgIF0pCisrICAgICAg ICAgICAgICAgIExERkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCisrCQkJICAgIGlmIHRlc3QgIngk bGlua190aHJlYWQiID0gInh5ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICBCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhfbGliIgorKyAgICAgICAgICAgICAgICAgICAg QUNfU1VCU1QoQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIpCisrCQkJCQlicmVhaworKwkJ CQlmaQorKyAgICAgICAgICAgICAgZG9uZQorKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFk IiA9ICJ4bm8iOyB0aGVuCisrCQkJCSAgIEFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdh aW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysJCWZpCisrICAgICAgICBDUFBGTEFH Uz0iJENQUEZMQUdTX1NBVkVEIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCisr CWZpCisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfbXlzcWwubTQg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9teXNxbC5tNAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9heF9teXNxbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfbXlzcWwubTQJMjAwOS0wNC0xOCAx ODoxNDoxNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTcyIEBACisrZG5sICRJZDogYXhf bXlzcWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToyMiBtbG9za290IEV4cCAkCisrZG5sCisr ZG5sIEBzeW5vcHNpcyBBWF9MSUJfTVlTUUwoW01JTklNVU0tVkVSU0lPTl0pCisrZG5sCisrZG5s IFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE15U1FMIGNsaWVu dCBsaWJyYXJ5CisrZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBvciBuZXdlci4KKytkbmwgCisr ZG5sIEFYX0xJQl9NWVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBv cHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCisrZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0 aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCisrZG5sCisrZG5sIFRoZSAtLXdp dGgtbXlzcWwgb3B0aW9uIHRha2VzIG9uZSBvZiB0aHJlZSBwb3NzaWJsZSB2YWx1ZXM6CisrZG5s IG5vICAgLSBkbyBub3QgY2hlY2sgZm9yIE15U1FMIGNsaWVudCBsaWJyYXJ5CisrZG5sIHllcyAg LSBkbyBjaGVjayBmb3IgTXlTUUwgbGlicmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKKytkbmwg ICAgICAgIChteXNxbF9jb25maWcgc2hvdWxkIGJlIGluIHRoZSBQQVRIKQorK2RubCBwYXRoIC0g Y29tcGxldGUgcGF0aCB0byBteXNxbF9jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9uCisr ZG5sICAgICAgICBpZiBteXNxbF9jb25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBBVEgKKytk bmwKKytkbmwgVGhpcyBtYWNybyBjYWxsczoKKytkbmwKKytkbmwgICBBQ19TVUJTVChNWVNRTF9D RkxBR1MpCisrZG5sICAgQUNfU1VCU1QoTVlTUUxfTERGTEFHUykKKytkbmwgICBBQ19TVUJTVChN WVNRTF9WRVJTSU9OKQorK2RubAorK2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX01Z U1FMCisrZG5sCisrZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcworK2RubCBAY2F0ZWdv cnkgQ3h4CisrZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9za290Lm5ldD4K KytkbmwgQHZlcnNpb24gJERhdGU6IDIwMDcvMDYvMjMgMDE6NTE6MjIgJAorK2RubCBAbGljZW5z ZSBBbGxQZXJtaXNzaXZlCisrZG5sCisrZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMgMjAwNy8w Ni8yMyAwMTo1MToyMiBtbG9za290IEV4cCAkCisrZG5sCisrQUNfREVGVU4oW0FYX0xJQl9NWVNR TF0sCisrWworKyAgICBBQ19BUkdfV0lUSChbbXlzcWxdLAorKyAgICAgICAgQUNfSEVMUF9TVFJJ TkcoWy0td2l0aC1teXNxbD1APDpAQVJHQDo+QF0sCisrICAgICAgICAgICAgW3VzZSBNeVNRTCBj bGllbnQgbGlicmFyeSBAPDpAZGVmYXVsdD15ZXNAOj5ALCBvcHRpb25hbGx5IHNwZWNpZnkgcGF0 aCB0byBteXNxbF9jb25maWddCisrICAgICAgICApLAorKyAgICAgICAgWworKwlNWVNRTF9pbmNf Y2hlY2s9IiR3aXRoX215c3FsL2luY2x1ZGUiCisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIg PSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9teXNxbD0ibm8iCisrICAgICAgICBlbGlm IHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9teXNxbD0i eWVzIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHdhbnRfbXlzcWw9InllcyIKKysgICAg ICAgICAgICBNWVNRTF9DT05GSUc9IiR3aXRodmFsIgorKyAgICAgICAgZmkKKysgICAgICAgIF0s CisrICAgICAgICBbd2FudF9teXNxbD0ieWVzIgorKwlNWVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5j bHVkZSAvdXNyL2xvY2FsIC9vcHQiXQorKyAgICApCisrCisrICAgIE1ZU1FMX0NGTEFHUz0iIgor KyAgICBNWVNRTF9MREZMQUdTPSIiCisrICAgIE1ZU1FMX1ZFUlNJT049IiIKKysKKysgICAgZG5s CisrICAgIGRubCBDaGVjayBNeVNRTCBsaWJyYXJpZXMgKGxpYm15c3FsY2xpZW50KQorKyAgICBk bmwKKysgICAgCisrICAgIGlmIHRlc3QgIiR3YW50X215c3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisr ICAgICAgICBpZiB0ZXN0IC16ICIkTVlTUUxfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCisrICAgICAg ICAgICAgQUNfUEFUSF9QUk9HKFtNWVNRTF9DT05GSUddLCBbbXlzcWxfY29uZmlnXSwgW10pCisr ICAgICAgICBmaQorKworKyAgICAgICAgZG5sIE1ZU1FMX0NPTkZJRyBpcyBwcm92aWRlZCBidXQg aXQgZG9lcyBub3QgcG9pbnQgdG8gZXhlY3V0YWJsZSBmaWxlCisrICAgICAgICBpZiB0ZXN0ICEg LXggIiRNWVNRTF9DT05GSUciOyB0aGVuCisrICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskTVlT UUxfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVd KQorKyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0ibm8iCisrICAgICAgICAgICAgZm91bmRfbXlz cWw9Im5vIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRNWVNRTF9DT05GSUci ICE9ICJubyI7IHRoZW4KKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBMb29rIGZvciBN eVNRTCBDIEFQSSBoZWFkZXJzCisrICAgICAgICAgICAgIworKyAgICAgICAgICAgIEFDX01TR19D SEVDS0lORyhbZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5XSkKKysgICAgICAgICAgICBNWVNR TF9pbmNkaXI9CisrICAgICAgICAgICAgZm9yIG15c3FsX2luY19kaXIgaW4gJE1ZU1FMX2luY19j aGVjaworKyAgICAgICAgICAgIGRvCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRteXNx bF9pbmNfZGlyIiBcCisrICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRteXNxbF9pbmNfZGly L215c3FsL215c3FsLmgiCisrICAgICAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAg ICAgIE1ZU1FMX2luY2Rpcj0kbXlzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJl YWsKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAg ICAgaWYgdGVzdCAteiAiJE1ZU1FMX2luY2RpciIKKysgICAgICAgICAgICB0aGVuCisrICAgICAg ICAgICAgICAgIEFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGly IGluICckTVlTUUxfaW5jX2NoZWNrJ10pCisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAg ICBjYXNlICIkTVlTUUxfaW5jZGlyIiBpbgorKyAgICAgICAgICAgICAgICAvKiApIDs7CisrICAg ICAgICAgICAgICAgICogKSAgQUNfTVNHX0VSUk9SKFtUaGUgTXlTUUwgaW5jbHVkZSBkaXJlY3Rv cnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKyAgICAg ICAgICAgIGVzYWMKKysKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFskTVlTUUxfaW5jZGly XSkKKysKKysgICAgICAgICAgICBpZiB0ZXN0ICIkTVlTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1 ZGUiOyB0aGVuCisrICAgICAgICAgICAgICBNWVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAgICBl bHNlCisrICAgICAgICAgICAgICBNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgorKyAg ICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAgTVlTUUxfTERGTEFHUz0iYCRNWVNRTF9DT05G SUcgLS1saWJzYCIKKysKKysgICAgICAgICAgICBNWVNRTF9WRVJTSU9OPWAkTVlTUUxfQ09ORklH IC0tdmVyc2lvbmAKKysKKysgICAgICAgICAgICBBQ19ERUZJTkUoW0hBVkVfTVlTUUxdLCBbMV0s IFtEZWZpbmUgdG8gMSBpZiBNeVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCisrICAgICAg ICAgICAgCisrICAgICAgICAgICAgZm91bmRfbXlzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgICBmb3VuZF9teXNxbD0ibm8iCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAg ICBkbmwKKysgICAgZG5sIENoZWNrIGlmIHJlcXVpcmVkIHZlcnNpb24gb2YgTXlTUUwgaXMgYXZh aWxhYmxlCisrICAgIGRubAorKyAgICAKKysKKysgICAgbXlzcWxfdmVyc2lvbl9yZXE9aWZlbHNl KFskMV0sIFtdLCBbXSwgWyQxXSkKKysKKysgICAgaWYgdGVzdCAiJGZvdW5kX215c3FsIiA9ICJ5 ZXMiIC1hIC1uICIkbXlzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICBBQ19NU0df Q0hFQ0tJTkcoW2lmIE15U1FMIHZlcnNpb24gaXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxXSkKKysK KysgICAgICAgIGRubCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgTXlTUUwK KysgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysg ICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6 ICdcKFtbMC05XV0qXCknYAorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIg JG15c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKyAgICAgICAg bXlzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05 XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIGlmIHRlc3QgIngkbXlzcWxf dmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgbXlzcWxfdmVyc2lv bl9yZXFfbWljcm89IjAiCisrICAgICAgICBmaQorKworKyAgICAgICAgbXlzcWxfdmVyc2lvbl9y ZXFfbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9t aW5vciBcKiAxMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRt eXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKKysKKysgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lv biBzdHJpbmcgb2YgaW5zdGFsbGVkIE15U1FMCisrICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBp dHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCisrICAgICAgICBteXNxbF92ZXJzaW9uX21ham9yPWBl eHByICRNWVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICBteXNxbF92ZXJz aW9uX21pbm9yPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCkn YAorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdb WzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JG15 c3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgbXlzcWxfdmVyc2lv bl9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAgICBteXNxbF92ZXJzaW9uX251bWJl cj1gZXhwciAkbXlzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fbWlj cm9gCisrCisrICAgICAgICBteXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRteXNxbF92ZXJzaW9u X251bWJlciBcPlw9ICRteXNxbF92ZXJzaW9uX3JlcV9udW1iZXJgCisrICAgICAgICBpZiB0ZXN0 ICIkbXlzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICBBQ19NU0df UkVTVUxUKFt5ZXNdKQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQo W25vXSkKKysgICAgICAgIGZpCisrICAgIGZpCisrCisrICAgIEFDX1NVQlNUKFtNWVNRTF9WRVJT SU9OXSkKKysgICAgQUNfU1VCU1QoW01ZU1FMX0NGTEFHU10pCisrICAgIEFDX1NVQlNUKFtNWVNR TF9MREZMQUdTXSkKKytdKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9h eF9vcmFjbGVfb2NpLm00CTIwMDktMDQtMTYgMTk6Mzc6MjMuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDI4NiBAQAorK2RubCAkSWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQv MjggMTk6NTg6NTQgbWxvc2tvdCBFeHAgJAorK2RubAorK2RubCBAc3lub3BzaXMgQVhfTElCX09S QUNMRV9PQ0koW01JTklNVU0tVkVSU0lPTl0pCisrZG5sCisrZG5sIFRoaXMgbWFjcm8gcHJvdmlk ZXMgdGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE9yYWNsZSBPQ0kgQVBJCisrZG5sIG9mIHBhcnRp Y3VsYXIgdmVyc2lvbiBvciBuZXdlci4KKytkbmwgVGhpcyBtYWNyb3MgY2hlY2tzIGZvciBPcmFj bGUgT0NJIGhlYWRlcnMgYW5kIGxpYnJhcmllcyAKKytkbmwgYW5kIGRlZmluZXMgY29tcGlsYXRp b24gZmxhZ3MKKytkbmwgCisrZG5sIE1hY3JvIHN1cHBvcnRzIGZvbGxvd2luZyBvcHRpb25zIGFu ZCB0aGVpciB2YWx1ZXM6CisrZG5sIDEpIFNpbmdsZS1vcHRpb24gdXNhZ2U6CisrZG5sIC0td2l0 aC1vcmFjbGUgLSBwYXRoIHRvIE9SQUNMRV9IT01FIGRpcmVjdG9yeQorK2RubCAyKSBUd28tb3B0 aW9ucyB1c2FnZSAoYm90aCBvcHRpb25zIGFyZSByZXF1aXJlZCk6CisrZG5sIC0td2l0aC1vcmFj bGUtaW5jbHVkZSAtIHBhdGggdG8gZGlyZWN0b3J5IHdpdGggT0NJIGhlYWRlcnMKKytkbmwgLS13 aXRoLW9yYWNsZS1saWIgLSBwYXRoIHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBsaWJyYXJpZXMgCisr ZG5sCisrZG5sIE5PVEU6IFRoZXNlIG9wdGlvbnMgZGVzY3JpYmVkIGFib3ZlIGRvZXMgbm90IHRh a2UgeWVzfG5vIHZhbHVlcy4KKytkbmwgSWYgJ3llcycgdmFsdWUgaXMgcGFzc2VkLCB0aGVuIFdB Uk5JTkcgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCwKKytkbmwgJ25vJyB2YWx1ZSwgYXMgd2Vs bCBhcyB0aGUgLS13aXRob3V0LW9yYWNsZSogdmFyaWF0aW9ucyB3aWxsIGNhdXNlCisrZG5sIHRo ZSBtYWNybyB3b24ndCBjaGVjayBlbnl0aGluZy4KKytkbmwKKytkbmwgVGhpcyBtYWNybyBjYWxs czoKKytkbmwKKytkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0NGTEFHUykKKytkbmwgICBBQ19T VUJTVChPUkFDTEVfT0NJX0xERkxBR1MpCisrZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9WRVJT SU9OKQorK2RubAorK2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX09SQUNMRQorK2Ru bAorK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMKKytkbmwgQGNhdGVnb3J5IEN4eAor K2RubCBAYXV0aG9yIE1hdGV1c3ogTG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+CisrZG5sIEB2 ZXJzaW9uICREYXRlOiAyMDA4LzA0LzI4IDE5OjU4OjU0ICQKKytkbmwgQGxpY2Vuc2UgQWxsUGVy bWlzc2l2ZQorK2RubAorK2RubCAkSWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQv MjggMTk6NTg6NTQgbWxvc2tvdCBFeHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9MSUJfT1JBQ0xF X09DSV0sCisrWworKyAgICBBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCisrICAgIEFD X0FSR19XSVRIKFtvcmFjbGVdLAorKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFj bGU9QDw6QERJUkA6PkBdLAorKyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBn aXZlbiBwYXRoIHRvIE9yYWNsZSBob21lIGRpcmVjdG9yeV0KKysgICAgICAgICksCisrICAgICAg ICBbCisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAg ICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICAgICAgb3Jh Y2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAg ICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgICAgICBmaSAKKysgICAgICAgIGZp CisrICAgICAgICBdLAorKyAgICAgICAgWworKyAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9I T01FIjsgdGhlbgorKyAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgor KyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgorKyAgICAgICAg ZmkgCisrICAgICAgICBdCisrICAgICkKKysKKysgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1pbmNs dWRlXSwKKysgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xlLWluY2x1ZGU9QDw6 QERJUkA6PkBdLAorKyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9t IGdpdmVuIHBhdGhdCisrICAgICAgICApLAorKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVf ZGlyPSIkd2l0aHZhbCJdLAorKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIiXQor KyAgICApCisrICAgIEFDX0FSR19XSVRIKFtvcmFjbGUtbGliXSwKKysgICAgICAgIEFDX0hFTFBf U1RSSU5HKFstLXdpdGgtb3JhY2xlLWxpYj1APDpARElSQDo+QF0sCisrICAgICAgICAgICAgW3Vz ZSBPcmFjbGUgT0NJIEFQSSBsaWJyYXJpZXMgZnJvbSBnaXZlbiBwYXRoXQorKyAgICAgICAgKSwK KysgICAgICAgIFtvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCJdLAorKyAgICAgICAgW29y YWNsZV9ob21lX2xpYl9kaXI9IiJdCisrICAgICkKKysKKysgICAgT1JBQ0xFX09DSV9DRkxBR1M9 IiIKKysgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0i IgorKworKyAgICBkbmwKKysgICAgZG5sIENvbGxlY3QgaW5jbHVkZS9saWIgcGF0aHMKKysgICAg ZG5sIAorKyAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ibm8iCisrCisrICAgIGlmIHRlc3Qg LW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xl X2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVzIjsgdGhlbgor KyAgICAgICAgICAgIGRubCBPUkFDTEVfSE9NRSBwYXRoIHByb3ZpZGVkCisrICAgICAgICAgICAg CisrICAgICAgICAgICAgZG5sIFByaW1hcnkgcGF0aCB0byBPQ0kgaGVhZGVycywgYXZhaWxhYmxl IGluIE9yYWNsZT49MTAKKysgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVf aG9tZV9kaXIvcmRibXMvcHVibGljIgorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGRubCBT ZWNvbmRhcnkgcGF0aCB0byBPQ0kgaGVhZGVycyB1c2VkIGJ5IG9sZGVyIHZlcnNpb25zCisrICAg ICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1v IgorKworKyAgICAgICAgICAgIGRubCBMaWJyYXJ5IHBhdGgKKysgICAgICAgICAgICBvcmFjbGVf bGliX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9saWIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFj bGVfaG9tZV9kaXIiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRf bm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysKKysgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xl X2hvbWVfaW5jbHVkZV9kaXIiIC1vIC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7IHRoZW4KKysK KysgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAi JG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIG9y YWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIgorKyAgICAgICAgZWxp ZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4KKysgICAgICAg ICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysKKysgICAg ICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hv bWVfbGliX2RpciIgIT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0i JG9yYWNsZV9ob21lX2xpYl9kaXIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9s aWJfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3Bh dGg9InllcyIKKysgICAgICAgIGZpCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgIiR3YW50X29y YWNsZV9idXRfbm9fcGF0aCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgQUNfTVNHX1dBUk4oW09y YWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBw cm92aWRlZC4gXAorK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdp dGgtb3JhY2xlIG9yIFwKKystLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUt bGliIG9wdGlvbnMuXSkKKysgICAgZmkKKysKKysgICAgZG5sCisrICAgIGRubCBDaGVjayBPQ0kg ZmlsZXMKKysgICAgZG5sCisrICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIiIC1h IC1uICIkb3JhY2xlX2xpYl9kaXIiOyB0aGVuCisrCisrICAgICAgICBzYXZlZF9DUFBGTEFHUz0i JENQUEZMQUdTIgorKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVk ZV9kaXIiCisrCisrICAgICAgICBkbmwgQWRkaXRpb25hbCBwYXRoIGZvciBvbGRlciBPcmFjbGUg aW5zdGFsbGF0aW9ucyAKKysgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIy IjsgdGhlbgorKyAgICAgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1 ZGVfZGlyMiIKKysgICAgICAgIGZpCisrCisrICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgd2UgYXJl IGJ1aWxkaW5nIG9uIHdpbjMyLgorKyAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgICAg ICAgICptaW5ndzMyKiApIFdJTjMyPXllcyA7OworKyAgICAgICAgICAgICpjeWd3aW4qICkgIFdJ TjMyPXllcyA7OworKyAgICAgICAgICAgICopIFdJTjMyPW5vIDs7CisrICAgICAgICBlc2FjCisr CisrICAgICAgICBpZiB0ZXN0ICIkV0lOMzIiID0gIm5vIgorKyAgICAgICAgdGhlbgorKyAgICAg ICAgICAgIG9jaV9saWJzPSItbGNsbnRzaCAtbG5uejExIgorKyAgICAgICAgZWxzZQorKyAgICAg ICAgICAgIG9jaV9saWJzPSItbG9jaSIKKysgICAgICAgIGZpCisrCisrICAgICAgICBzYXZlZF9M REZMQUdTPSIkTERGTEFHUyIKKysgICAgICAgIHNhdmVkX0xJQlM9IiRMSUJTIgorKyAgICAgICAg b2NpX2xkZmxhZ3M9Ii1MJG9yYWNsZV9saWJfZGlyIgorKyAgICAgICAgTERGTEFHUz0iJExERkxB R1MgJG9jaV9sZGZsYWdzIgorKyAgICAgICAgTElCUz0iJExJQlMgJG9jaV9saWJzIgorKworKyAg ICAgICAgZG5sCisrICAgICAgICBkbmwgQ2hlY2sgT0NJIGhlYWRlcnMKKysgICAgICAgIGRubAor KyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFj bGVfaW5jbHVkZV9kaXJdKQorKworKyAgICAgICAgQUNfTEFOR19QVVNIKEMrKykKKysgICAgICAg IEFDX0NPTVBJTEVfSUZFTFNFKFsKKysgICAgICAgICAgICBBQ19MQU5HX1BST0dSQU0oW1tAJTpA aW5jbHVkZSA8b2NpLmg+XV0sCisrICAgICAgICAgICAgICAgIFtbCisrI2lmIGRlZmluZWQoT0NJ X01BSk9SX1ZFUlNJT04pCisrI2lmIE9DSV9NQUpPUl9WRVJTSU9OID09IDEwICYmIE9DSV9NSU5P Ul9WRVJTSU9OID09IDIKKysvLyBPcmFjbGUgMTAuMiBkZXRlY3RlZAorKyNlbmRpZgorKyNlbGlm IGRlZmluZWQoT0NJX1Y3X1NZTlRBWCkKKysvLyBPSywgb2xkZXIgT3JhY2xlIGRldGVjdGVkCisr Ly8gVE9ETyAtIG1sb3Nrb3Q6IGZpbmQgYmV0dGVyIG1hY3JvIHRvIGNoZWNrIGZvciBvbGRlciB2 ZXJzaW9uczsgCisrI2Vsc2UKKysjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3Vu ZAorKyNlbmRpZgorKyAgICAgICAgICAgICAgICBdXQorKyAgICAgICAgICAgICldLAorKyAgICAg ICAgICAgIFsKKysgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1 ZGVfZGlyIgorKworKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIy IjsgdGhlbgorKyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lf Q0ZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAgICAgICAgZmkKKysKKysgICAg ICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VM VChbeWVzXSkKKysgICAgICAgICAgICBdLAorKyAgICAgICAgICAgIFsKKysgICAgICAgICAgICBv Y2lfaGVhZGVyX2ZvdW5kPSJubyIKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZm91 bmRdKQorKyAgICAgICAgICAgIF0KKysgICAgICAgICkKKysgICAgICAgIEFDX0xBTkdfUE9QKFtD KytdKQorKyAgICAgICAgCisrICAgICAgICBkbmwKKysgICAgICAgIGRubCBDaGVjayBPQ0kgbGli cmFyaWVzCisrICAgICAgICBkbmwKKysgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5k IiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3Jh Y2xlIE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyXSkKKysKKysgICAgICAgICAgICBB Q19MQU5HX1BVU0goQysrKQorKyAgICAgICAgICAgIEFDX0xJTktfSUZFTFNFKFsKKysgICAgICAg ICAgICAgICAgQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAorKyAgICAg ICAgICAgICAgICAgICAgW1sKKytPQ0lFbnYqIGVudmggPSAwOworK09DSUVudkNyZWF0ZSgmZW52 aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDApOworK2lmIChlbnZoKSBPQ0lIYW5kbGVG cmVlKGVudmgsIE9DSV9IVFlQRV9FTlYpOworKyAgICAgICAgICAgICAgICAgICAgXV0KKysgICAg ICAgICAgICAgICAgKV0sCisrICAgICAgICAgICAgICAgIFsKKysgICAgICAgICAgICAgICAgT1JB Q0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgorKyAgICAgICAgICAgICAg ICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3ll c10pCisrICAgICAgICAgICAgICAgIF0sCisrICAgICAgICAgICAgICAgIFsKKysgICAgICAgICAg ICAgICAgb2NpX2xpYl9mb3VuZD0ibm8iCisrICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQo W25vdCBmb3VuZF0pCisrICAgICAgICAgICAgICAgIF0KKysgICAgICAgICAgICApCisrICAgICAg ICAgICAgQUNfTEFOR19QT1AoW0MrK10pCisrICAgICAgICBmaQorKworKyAgICAgICAgQ1BQRkxB R1M9IiRzYXZlZF9DUFBGTEFHUyIKKysgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgor KyAgICAgICAgTElCUz0iJHNhdmVkX0xJQlMiCisrICAgIGZpCisrCisrICAgIGRubAorKyAgICBk bmwgQ2hlY2sgcmVxdWlyZWQgdmVyc2lvbiBvZiBPcmFjbGUgaXMgYXZhaWxhYmxlCisrICAgIGRu bAorKyAgICBvcmFjbGVfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKKysK KysgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2Zv dW5kIiA9ICJ5ZXMiIC1hIFwKKysgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhl bgorKworKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVf ZGlyL29jaS5oIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmlu ZS4qT0NJX01BSk9SX1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAg ICAgICAgb3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5o IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01J Tk9SX1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUg J3MvI2RlZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgQUNf TVNHX0NIRUNLSU5HKFtpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9u X3JlcV0pCisrCisrICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1h IC1uICQib3JhY2xlX3ZlcnNpb25fbWlub3IiOyB0aGVuCisrCisrICAgICAgICAgICAgT1JBQ0xF X09DSV9WRVJTSU9OPSIkb3JhY2xlX3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9y IgorKworKyAgICAgICAgICAgIGRubCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcg b2YgT3JhY2xlCisrICAgICAgICAgICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXBy ZXNlbnRhdGlvbgorKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAk b3JhY2xlX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICAgICAgb3JhY2xl X3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpc LlwoW1swLTldXSpcKSdgCisrCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJl cj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlu b3IgXCogMTAwMGAKKysKKysgICAgICAgICAgICBkbmwgQ2FsY3VsYXRlIGl0cyBudW1iZXIgcmVw cmVzZW50YXRpb24gCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRv cmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAg ICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBc Plw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAgICAgICAgICAgIGlmIHRlc3QgIiRv cmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICAgICAgQUNfTVNH X1JFU1VMVChbeWVzXSkKKysgICAgICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBb MV0sIFtEZWZpbmUgdG8gMSBpZiB0aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0p CisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10p CisrICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJ T04gZm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXFdKQor KyAgICAgICAgICAgIGZpCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9W RVJTSU9OPSJVTktOT1dOIgorKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKKysgICAg ICAgICAgICBBQ19NU0dfV0FSTihbT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJ IG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGVdKQorKyAgICAgICAgZmkKKysgICAgZmkKKysK KysgICAgQUNfU1VCU1QoW09SQUNMRV9PQ0lfVkVSU0lPTl0pCisrICAgIEFDX1NVQlNUKFtPUkFD TEVfT0NJX0NGTEFHU10pCisrICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0xERkxBR1NdKQorK10p CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgc29j aS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00CistLS0gc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJ MjAwOS0wNC0xOCAxODoyMjozNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTcxIEBACisr ZG5sICRJZDogYXhfcG9zdGdyZXNxbC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nr b3QgRXhwICQKKytkbmwKKytkbmwgQHN5bm9wc2lzIEFYX0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVN LVZFUlNJT05dKQorK2RubAorK2RubCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWls YWJpbGl0eSBvZiBQb3N0Z3JlU1FMICdsaWJwcScgbGlicmFyeQorK2RubCBvZiBwYXJ0aWN1bGFy IHZlcnNpb24gb3IgbmV3ZXIuCisrZG5sIAorK2RubCBBWF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0 YWtlcyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8g CisrZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2 ZXJzaW9uIHRlc3QuCisrZG5sCisrZG5sIFRoZSAtLXdpdGgtcG9zdGdyZXNxbCBvcHRpb24gdGFr ZXMgb25lIG9mIHRocmVlIHBvc3NpYmxlIHZhbHVlczoKKytkbmwgbm8gICAtIGRvIG5vdCBjaGVj ayBmb3IgUG9zdGdyZVNRTCBjbGllbnQgbGlicmFyeQorK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9y IFBvc3RncmVTUUwgbGlicmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKKytkbmwgICAgICAgIChw Z19jb25maWcgc2hvdWxkIGJlIGluIHRoZSBQQVRIKQorK2RubCBwYXRoIC0gY29tcGxldGUgcGF0 aCB0byBwZ19jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9uCisrZG5sICAgICAgICBpZiBw Z19jb25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBBVEgKKytkbmwKKytkbmwgVGhpcyBtYWNy byBjYWxsczoKKytkbmwKKytkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FMX0NGTEFHUykKKytkbmwg ICBBQ19TVUJTVChQT1NUR1JFU1FMX0xERkxBR1MpCisrZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNR TF9WRVJTSU9OKQorK2RubAorK2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX1BPU1RH UkVTUUwKKytkbmwKKytkbmwgQGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisrZG5sIEBjYXRl Z29yeSBDeHgKKytkbmwgQGF1dGhvciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0 PgorK2RubCBAdmVyc2lvbiAkRGF0ZTogMjAwNy8wNi8yMyAwMTo1MToyMiAkCisrZG5sIEBsaWNl bnNlIEFsbFBlcm1pc3NpdmUKKytkbmwKKytkbmwgJElkOiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4z IDIwMDcvMDYvMjMgMDE6NTE6MjIgbWxvc2tvdCBFeHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9M SUJfUE9TVEdSRVNRTF0sCisrWworKyAgICBBQ19BUkdfV0lUSChbcG9zdGdyZXNxbF0sCisrICAg ICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLXBvc3RncmVzcWw9QDw6QEFSR0A6PkBdLAorKyAg ICAgICAgICAgIFt1c2UgUG9zdGdyZVNRTCBsaWJyYXJ5IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9w dGlvbmFsbHkgc3BlY2lmeSBwYXRoIHRvIHBnX2NvbmZpZ10KKysgICAgICAgICksCisrICAgICAg ICBbCisrCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCisr ICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2Fu dF9wb3N0Z3Jlc3FsPSJubyIKKysgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7 IHRoZW4KKysgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UK KysgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgICAgICBQR19DT05G SUc9IiR3aXRodmFsIgorKyAgICAgICAgZmkKKysgICAgICAgIF0sCisrICAgICAgICBbd2FudF9w b3N0Z3Jlc3FsPSJ5ZXMiCisrCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vz ci9sb2NhbCAvb3B0Il0KKysgICAgKQorKworKyAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgorKyAg ICBQT1NUR1JFU1FMX0xERkxBR1M9IiIKKysgICAgUE9TVEdSRVNRTF9QT1NUR1JFU1FMPSIiCisr CisrICAgIGRubAorKyAgICBkbmwgQ2hlY2sgUG9zdGdyZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQor KyAgICBkbmwKKysgICAgCisrICAgIGlmIHRlc3QgIiR3YW50X3Bvc3RncmVzcWwiID0gInllcyI7 IHRoZW4KKysKKysgICAgICAgIGlmIHRlc3QgLXogIiRQR19DT05GSUciIC1vIHRlc3Q7IHRoZW4K KysgICAgICAgICAgICBBQ19QQVRIX1BST0coW1BHX0NPTkZJR10sIFtwZ19jb25maWddLCBbXSkK KysgICAgICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUciOyB0aGVu CisrICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9y IGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQorKyAgICAgICAgICAgIFBHX0NPTkZJRz0i bm8iCisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBmaQorKwor KyAgICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgorKyAgICAgICAgICAg ICMKKysgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycworKyAg ICAgICAgICAgICMKKysgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3Fs IGluY2x1ZGUgZGlyZWN0b3J5XSkKKysgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KKysg ICAgICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVj aworKyAgICAgICAgICAgIGRvCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jl c3FsX2luY19kaXIiIFwKKysgICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxf aW5jX2Rpci9wb3N0Z3Jlc19leHQuaCIKKysgICAgICAgICAgICAgICAgdGhlbgorKyAgICAgICAg ICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgorKyAgICAg ICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBk b25lCisrCisrICAgICAgICAgICAgaWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgorKyAg ICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmlu ZCB0aGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10p CisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNk aXIiIGluCisrICAgICAgICAgICAgICAgIC8qICkgOzsKKysgICAgICAgICAgICAgICAgKiApICBB Q19NU0dfRVJST1IoW1RoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNR TF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKyAgICAgICAgICAgIGVz YWMKKysKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFskUE9TVEdSRVNRTF9pbmNkaXJdKQor KworKyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNs dWRlIjsgdGhlbgorKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgICAg ICAgICBlbHNlCisrICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVT UUxfaW5jZGlyfSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIFBPU1RHUkVTUUxf TERGTEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKKysKKysgICAgICAgICAgICBQ T1NUR1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3Rn cmVTUUwgIyMnYAorKworKyAgICAgICAgICAgIEFDX0RFRklORShbSEFWRV9QT1NUR1JFU1FMXSwg WzFdLCBbRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0p CisrICAgICAgICAgICAgCisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgorKyAg ICAgICAgZWxzZQorKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAg ZmkKKysgICAgZmkKKysKKysgICAgZG5sCisrICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJz aW9uIG9mIFBvc3RncmVTUUwgaXMgYXZhaWxhYmxlCisrICAgIGRubAorKyAgICAKKysKKysgICAg cG9zdGdyZXNxbF92ZXJzaW9uX3JlcT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQorKworKyAg ICBpZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxf dmVyc2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3Rn cmVTUUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV0pCisrCisrICAgICAg ICBkbmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNpb24gc3RyaW5nIG9mIFBvc3RncmVTUUwKKysg ICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lv bl9yZXEgOiAnXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFf bWlub3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTld XSpcKSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0 Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AK KysgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7 IHRoZW4KKysgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgorKyAg ICAgICAgZmkKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHBy ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3Ig XCogMTAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKKysKKysgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lv biBzdHJpbmcgb2YgaW5zdGFsbGVkIFBvc3RncmVTUUwKKysgICAgICAgIGRubCBhbmQgY2FsY3Vs YXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lv bl9tYWpvcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCisrICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6 ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9t aWNybz1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChb WzAtOV1dKlwpJ2AKKysgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3Jv IiA9ICJ4IjsgdGhlbgorKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIK KysgICAgICAgIGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHBy ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVy c2lvbl9taWNyb2AKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAk cG9zdGdyZXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251 bWJlcmAKKysgICAgICAgIGlmIHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEi OyB0aGVuCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAgICAgIGVsc2UK KysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisrICAgICAgICBmaQorKyAgICBmaQor KworKyAgICBBQ19TVUJTVChbUE9TVEdSRVNRTF9WRVJTSU9OXSkKKysgICAgQUNfU1VCU1QoW1BP U1RHUkVTUUxfQ0ZMQUdTXSkKKysgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfTERGTEFHU10pCisr XSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLmd1ZXNzIHNvY2kt My4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCistLS0gc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2NvbmZpZy5ndWVzcwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCTIwMDktMDUtMDMgMDA6 MjA6NDQuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE1MjYgQEAKKysjISAvYmluL3NoCisr IyBBdHRlbXB0IHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lLgorKyMgICBDb3B5cmln aHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisr IyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgK KysjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrdGltZXN0YW1wPScyMDA4 LTAxLTA4JworKworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKysjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cisr IyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh bmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKysjIDAyMTEwLTEzMDEsIFVT QS4KKysjCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEg cHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRl ZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0 cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0u CisrCisrCisrIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIgPHBlckBib3RobmVy LmNvbT4uCisrIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3Jn Pi4gIFN1Ym1pdCBhIGNvbnRleHQKKysjIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIENo YW5nZUxvZyBlbnRyeS4KKysjCisrIyBUaGlzIHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBhIGNh bm9uaWNhbCBzeXN0ZW0gbmFtZSBzaW1pbGFyIHRvCisrIyBjb25maWcuc3ViLiAgSWYgaXQgc3Vj Y2VlZHMsIGl0IHByaW50cyB0aGUgc3lzdGVtIG5hbWUgb24gc3Rkb3V0LCBhbmQKKysjIGV4aXRz IHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgorKyMKKysjIFRoZSBwbGFuIGlz IHRoYXQgdGhpcyBjYW4gYmUgY2FsbGVkIGJ5IGNvbmZpZ3VyZSBzY3JpcHRzIGlmIHlvdQorKyMg ZG9uJ3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBidWlsZCBzeXN0ZW0gdHlwZS4KKysKKyttZT1gZWNo byAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKKysKKyt1c2FnZT0iXAorK1VzYWdlOiAkMCBbT1BU SU9OXQorKworK091dHB1dCB0aGUgY29uZmlndXJhdGlvbiBuYW1lIG9mIHRoZSBzeXN0ZW0gXGAk bWUnIGlzIHJ1biBvbi4KKysKKytPcGVyYXRpb24gbW9kZXM6CisrICAtaCwgLS1oZWxwICAgICAg ICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKKysgIC10LCAtLXRpbWUtc3RhbXAgICBwcmlu dCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKKysgIC12LCAtLXZlcnNpb24g ICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CisrCisrUmVwb3J0IGJ1Z3MgYW5k IHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKKysKKyt2ZXJzaW9uPSJcCisr R05VIGNvbmZpZy5ndWVzcyAoJHRpbWVzdGFtcCkKKysKKytPcmlnaW5hbGx5IHdyaXR0ZW4gYnkg UGVyIEJvdGhuZXIuCisrQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAorKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrVGhp cyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25z LiAgVGhlcmUgaXMgTk8KKyt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCisrCisraGVscD0iCisrVHJ5IFxg JG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgorKworKyMgUGFyc2UgY29tbWFuZCBs aW5lCisrd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCisrICBjYXNlICQxIGluCisrICAgIC0tdGlt ZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCisrICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhp dCA7OworKyAgICAtLXZlcnNpb24gfCAtdiApCisrICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4 aXQgOzsKKysgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKKysgICAgICAgZWNobyAiJHVzYWdlIjsg ZXhpdCA7OworKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKKysgICAgICAg c2hpZnQ7IGJyZWFrIDs7CisrICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KKysgICAgICAg YnJlYWsgOzsKKysgICAgLSogKQorKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQx JGhlbHAiID4mMgorKyAgICAgICBleGl0IDEgOzsKKysgICAgKiApCisrICAgICAgIGJyZWFrIDs7 CisrICBlc2FjCisrZG9uZQorKworK2lmIHRlc3QgJCMgIT0gMDsgdGhlbgorKyAgZWNobyAiJG1l OiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCisrICBleGl0IDEKKytmaQorKworK3RyYXAg J2V4aXQgMScgMSAyIDE1CisrCisrIyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIgdXNlZCBieSB0 aGlzIHNjcmlwdC4gTm90ZSB0aGF0IHRoZSB1c2Ugb2YgYQorKyMgY29tcGlsZXIgdG8gYWlkIGlu IHN5c3RlbSBkZXRlY3Rpb24gaXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKKysjIHRlbXBv cmFyeSBmaWxlcyB0byBiZSBjcmVhdGVkIGFuZCwgYXMgeW91IGNhbiBzZWUgYmVsb3csIGl0IGlz IGEKKysjIGhlYWRhY2hlIHRvIGRlYWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hpb24uCisrCisr IyBIaXN0b3JpY2FsbHksIGBDQ19GT1JfQlVJTEQnIHVzZWQgdG8gYmUgbmFtZWQgYEhPU1RfQ0Mn LiBXZSBzdGlsbAorKyMgdXNlIGBIT1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVj YXRlZC4KKysKKysjIFBvcnRhYmxlIHRtcCBkaXJlY3RvcnkgY3JlYXRpb24gaW5zcGlyZWQgYnkg dGhlIEF1dG9jb25mIHRlYW0uCisrCisrc2V0X2NjX2Zvcl9idWlsZD0nCisrdHJhcCAiZXhpdGNv ZGU9XCQ/OyAocm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2 L251bGwpICYmIGV4aXQgXCRleGl0Y29kZSIgMCA7CisrdHJhcCAicm0gLWYgXCR0bXBmaWxlcyAy Pi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsK Kys6ICR7VE1QRElSPS90bXB9IDsKKysgeyB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIk VE1QRElSL2NnWFhYWFhYIikgMj4vZGV2L251bGxgICYmIHRlc3QgLW4gIiR0bXAiICYmIHRlc3Qg LWQgIiR0bXAiIDsgfSB8fAorKyB7IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0kVE1QRElSL2Nn JCQtJFJBTkRPTSAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAorKyB7IHRtcD0k VE1QRElSL2NnLSQkICYmICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNobyAiV2Fybmlu ZzogY3JlYXRpbmcgaW5zZWN1cmUgdGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwKKysgeyBlY2hv ICIkbWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluICRUTVBESVIiID4m MiA7IGV4aXQgMSA7IH0gOworK2R1bW15PSR0bXAvZHVtbXkgOworK3RtcGZpbGVzPSIkZHVtbXku YyAkZHVtbXkubyAkZHVtbXkucmVsICRkdW1teSIgOworK2Nhc2UgJENDX0ZPUl9CVUlMRCwkSE9T VF9DQywkQ0MgaW4KKysgLCwpICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7CisrCWZvciBj IGluIGNjIGdjYyBjODkgYzk5IDsgZG8KKysJICBpZiAoJGMgLWMgLW8gJGR1bW15Lm8gJGR1bW15 LmMpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKysJICAgICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJl YWsgOworKwkgIGZpIDsKKysJZG9uZSA7CisrCWlmIHRlc3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHgg OyB0aGVuCisrCSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKKysJZmkKKysJOzsK KysgLCwqKSAgIENDX0ZPUl9CVUlMRD0kQ0MgOzsKKysgLCosKikgIENDX0ZPUl9CVUlMRD0kSE9T VF9DQyA7OworK2VzYWMgOyBzZXRfY2NfZm9yX2J1aWxkPSA7JworKworKyMgVGhpcyBpcyBuZWVk ZWQgdG8gZmluZCB1bmFtZSBvbiBhIFB5cmFtaWQgT1N4IHdoZW4gcnVuIGluIHRoZSBCU0QgdW5p dmVyc2UuCisrIyAoZ2hhemlAbm9jLnJ1dGdlcnMuZWR1IDE5OTQtMDgtMjQpCisraWYgKHRlc3Qg LWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKysJUEFUSD0kUEFUSDov LmF0dGJpbiA7IGV4cG9ydCBQQVRICisrZmkKKysKKytVTkFNRV9NQUNISU5FPWAodW5hbWUgLW0p IDI+L2Rldi9udWxsYCB8fCBVTkFNRV9NQUNISU5FPXVua25vd24KKytVTkFNRV9SRUxFQVNFPWAo dW5hbWUgLXIpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9SRUxFQVNFPXVua25vd24KKytVTkFNRV9T WVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgor K1VOQU1FX1ZFUlNJT049YCh1bmFtZSAtdikgMj4vZGV2L251bGxgIHx8IFVOQU1FX1ZFUlNJT049 dW5rbm93bgorKworKyMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFu Y2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KKysKKytjYXNlICIke1VOQU1FX01BQ0hJTkV9OiR7VU5B TUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIGluCisrICAgICo6 TmV0QlNEOio6KikKKysJIyBOZXRCU0QgKG5ic2QpIHRhcmdldHMgc2hvdWxkICh3aGVyZSBhcHBs aWNhYmxlKSBtYXRjaCBvbmUgb3IKKysJIyBtb3JlIG9mIHRoZSB0dXBwbGVzOiAqLSotbmV0YnNk ZWxmKiwgKi0qLW5ldGJzZGFvdXQqLAorKwkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRi c2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQorKwkjIHN3aXRjaGVkIHRvIEVMRiwgKi0q LW5ldGJzZCogd291bGQgc2VsZWN0IHRoZSBvbGQKKysJIyBvYmplY3QgZmlsZSBmb3JtYXQuICBU aGlzIHByb3ZpZGVzIGJvdGggZm9yd2FyZAorKwkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lz dGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUKKysJIyBvYmplY3QgZmlsZSBmb3JtYXQu CisrCSMKKysJIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0 aGUgdmVuZG9yCisrCSMgcG9ydGlvbiBvZiB0aGUgbmFtZS4gIFdlIGFsd2F5cyBzZXQgaXQgdG8g InVua25vd24iLgorKwlzeXNjdGw9InN5c2N0bCAtbiBody5tYWNoaW5lX2FyY2giCisrCVVOQU1F X01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAorKwkgICAgL3Vz ci9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duKWAKKysJY2FzZSAiJHtV TkFNRV9NQUNISU5FX0FSQ0h9IiBpbgorKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93 biA7OworKwkgICAgYXJtKikgbWFjaGluZT1hcm0tdW5rbm93biA7OworKwkgICAgc2gzZWwpIG1h Y2hpbmU9c2hsLXVua25vd24gOzsKKysJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsK KysJICAgIHNoNWVsKSBtYWNoaW5lPXNoNWxlLXVua25vd24gOzsKKysJICAgICopIG1hY2hpbmU9 JHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24gOzsKKysJZXNhYworKwkjIFRoZSBPcGVyYXRp bmcgU3lzdGVtIGluY2x1ZGluZyBvYmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dpdGNoZWQKKysJ IyB0byBFTEYgcmVjZW50bHksIG9yIHdpbGwgaW4gdGhlIGZ1dHVyZS4KKysJY2FzZSAiJHtVTkFN RV9NQUNISU5FX0FSQ0h9IiBpbgorKwkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8c2gzKnxzcGFy Y3x2YXgpCisrCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCQlpZiBlY2hvIF9fRUxGX18gfCAk Q0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorKwkJCXwgZ3JlcCBfX0VMRl9fID4vZGV2 L251bGwKKysJCXRoZW4KKysJCSAgICAjIE9uY2UgYWxsIHV0aWxpdGllcyBjYW4gYmUgRUNPRkYg KG5ldGJzZGVjb2ZmKSBvciBhLm91dCAobmV0YnNkYW91dCkuCisrCQkgICAgIyBSZXR1cm4gbmV0 YnNkIGZvciBlaXRoZXIuICBGSVg/CisrCQkgICAgb3M9bmV0YnNkCisrCQllbHNlCisrCQkgICAg b3M9bmV0YnNkZWxmCisrCQlmaQorKwkJOzsKKysJICAgICopCisrCSAgICAgICAgb3M9bmV0YnNk CisrCQk7OworKwllc2FjCisrCSMgVGhlIE9TIHJlbGVhc2UKKysJIyBEZWJpYW4gR05VL05ldEJT RCBtYWNoaW5lcyBoYXZlIGEgZGlmZmVyZW50IHVzZXJsYW5kLCBhbmQKKysJIyB0aHVzLCBuZWVk IGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAorKwkjIGtlcm5l bCB2ZXJzaW9uIGluZm9ybWF0aW9uLCBzbyBpdCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhCisrCSMg c3VpdGFibGUgdGFnLCBpbiB0aGUgc3R5bGUgb2YgbGludXgtZ251LgorKwljYXNlICIke1VOQU1F X1ZFUlNJT059IiBpbgorKwkgICAgRGViaWFuKikKKysJCXJlbGVhc2U9Jy1nbnUnCisrCQk7Owor KwkgICAgKikKKysJCXJlbGVhc2U9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy1f XS4qL1wuLydgCisrCQk7OworKwllc2FjCisrCSMgU2luY2UgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVS LUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNOgorKwkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1h dGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKKysJIyBDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFU SU5HX1NZU1RFTSBpcyB1c2VkLgorKwllY2hvICIke21hY2hpbmV9LSR7b3N9JHtyZWxlYXNlfSIK KysJZXhpdCA7OworKyAgICAqOk9wZW5CU0Q6KjoqKQorKwlVTkFNRV9NQUNISU5FX0FSQ0g9YGFy Y2ggfCBzZWQgJ3MvT3BlbkJTRC4vLydgCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVu a25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOmVra29CU0Q6 KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1la2tvYnNkJHtVTkFNRV9SRUxF QVNFfQorKwlleGl0IDs7CisrICAgICo6U29saWRCU0Q6KjoqKQorKwllY2hvICR7VU5BTUVfTUFD SElORX0tdW5rbm93bi1zb2xpZGJzZCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBt YWNwcGM6TWlyQlNEOio6KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbWlyYnNkJHtVTkFNRV9S RUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6TWlyQlNEOio6KikKKysJZWNobyAke1VOQU1FX01B Q0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIGFs cGhhOk9TRjE6KjoqKQorKwljYXNlICRVTkFNRV9SRUxFQVNFIGluCisrCSo0LjApCisrCQlVTkFN RV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAorKwkJOzsK KysJKjUuKikKKysJICAgICAgICBVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBh d2sgJ3twcmludCAkNH0nYAorKwkJOzsKKysJZXNhYworKwkjIEFjY29yZGluZyB0byBDb21wYXEs IC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBiZWVuIGF2YWlsYWJsZSBvbgorKwkjIE9TRi8xIGFuZCBU cnU2NCBzeXN0ZW1zIHByb2R1Y2VkIHNpbmNlIDE5OTUuICBJIGhvcGUgdGhhdAorKwkjIGNvdmVy cyBtb3N0IHN5c3RlbXMgcnVubmluZyB0b2RheS4gIFRoaXMgY29kZSBwaXBlcyB0aGUgQ1BVCisr CSMgdHlwZXMgdGhyb3VnaCBoZWFkIC1uIDEsIHNvIHdlIG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9m IENQVSAwLgorKwlBTFBIQV9DUFVfVFlQRT1gL3Vzci9zYmluL3BzcmluZm8gLXYgfCBzZWQgLW4g LWUgJ3MvXiAgVGhlIGFscGhhIFwoLipcKSBwcm9jZXNzb3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFg CisrCWNhc2UgIiRBTFBIQV9DUFVfVFlQRSIgaW4KKysJICAgICJFVjQgKDIxMDY0KSIpCisrCQlV TkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKysJICAgICJFVjQuNSAoMjEwNjQpIikKKysJCVVOQU1F X01BQ0hJTkU9ImFscGhhIiA7OworKwkgICAgIkxDQTQgKDIxMDY2LzIxMDY4KSIpCisrCQlVTkFN RV9NQUNISU5FPSJhbHBoYSIgOzsKKysJICAgICJFVjUgKDIxMTY0KSIpCisrCQlVTkFNRV9NQUNI SU5FPSJhbHBoYWV2NSIgOzsKKysJICAgICJFVjUuNiAoMjExNjRBKSIpCisrCQlVTkFNRV9NQUNI SU5FPSJhbHBoYWV2NTYiIDs7CisrCSAgICAiRVY1LjYgKDIxMTY0UEMpIikKKysJCVVOQU1FX01B Q0hJTkU9ImFscGhhcGNhNTYiIDs7CisrCSAgICAiRVY1LjcgKDIxMTY0UEMpIikKKysJCVVOQU1F X01BQ0hJTkU9ImFscGhhcGNhNTciIDs7CisrCSAgICAiRVY2ICgyMTI2NCkiKQorKwkJVU5BTUVf TUFDSElORT0iYWxwaGFldjYiIDs7CisrCSAgICAiRVY2LjcgKDIxMjY0QSkiKQorKwkJVU5BTUVf TUFDSElORT0iYWxwaGFldjY3IiA7OworKwkgICAgIkVWNi44Q0IgKDIxMjY0QykiKQorKwkJVU5B TUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworKwkgICAgIkVWNi44QUwgKDIxMjY0QikiKQorKwkJ VU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworKwkgICAgIkVWNi44Q1ggKDIxMjY0RCkiKQor KwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworKwkgICAgIkVWNi45QSAoMjEyNjQvRVY2 OUEpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OSIgOzsKKysJICAgICJFVjcgKDIxMzY0 KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NyIgOzsKKysJICAgICJFVjcuOSAoMjEzNjRB KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NzkiIDs7CisrCWVzYWMKKysJIyBBIFBuLm4g dmVyc2lvbiBpcyBhIHBhdGNoZWQgdmVyc2lvbi4KKysJIyBBIFZuLm4gdmVyc2lvbiBpcyBhIHJl bGVhc2VkIHZlcnNpb24uCisrCSMgQSBUbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCBmaWVsZCB0 ZXN0IHZlcnNpb24uCisrCSMgQSBYbi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmlt ZW50YWwgYmFzZWxldmVsLgorKwkjIDEuMiB1c2VzICIxLjIiIGZvciB1bmFtZSAtci4KKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LWRlYy1vc2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1l ICdzL15bUFZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZn aGlqa2xtbm9wcXJzdHV2d3h5eidgCisrCWV4aXQgOzsKKysgICAgQWxwaGFcICo6V2luZG93c19O VCo6KikKKysJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdl bmVyaWMgUE9TSVggc3Vic3lzdGVtPworKwkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElO RSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQKKysJIyBvZiB0aGUgc3BlY2lm aWMgQWxwaGEgbW9kZWw/CisrCWVjaG8gYWxwaGEtcGMtaW50ZXJpeAorKwlleGl0IDs7CisrICAg IDIxMDY0OldpbmRvd3NfTlQ6NTA6MykKKysJZWNobyBhbHBoYS1kZWMtd2lubnQzLjUKKysJZXhp dCA7OworKyAgICBBbWlnYSo6VU5JWF9TeXN0ZW1fVjo0LjA6KikKKysJZWNobyBtNjhrLXVua25v d24tc3lzdjQKKysJZXhpdCA7OworKyAgICAqOltBYV1taWdhW09vXVtTc106KjoqKQorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hbWlnYW9zCisrCWV4aXQgOzsKKysgICAgKjpbTW1d b3JwaFtPb11bU3NdOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbW9ycGhv cworKwlleGl0IDs7CisrICAgICo6T1MvMzkwOio6KikKKysJZWNobyBpMzcwLWlibS1vcGVuZWRp dGlvbgorKwlleGl0IDs7CisrICAgICo6ei9WTToqOiopCisrCWVjaG8gczM5MC1pYm0tenZtb2UK KysJZXhpdCA7OworKyAgICAqOk9TNDAwOio6KikKKysgICAgICAgIGVjaG8gcG93ZXJwYy1pYm0t b3M0MDAKKysJZXhpdCA7OworKyAgICBhcm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEu WzAxMl0qOiopCisrCWVjaG8gYXJtLWFjb3JuLXJpc2NpeCR7VU5BTUVfUkVMRUFTRX0KKysJZXhp dCA7OworKyAgICBhcm06cmlzY29zOio6Knxhcm06UklTQ09TOio6KikKKysJZWNobyBhcm0tdW5r bm93bi1yaXNjb3MKKysJZXhpdCA7OworKyAgICBTUjI/MDE6SEktVVgvTVBQOio6KiB8IFNSODAw MDpISS1VWC9NUFA6KjoqKQorKwllY2hvIGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCisrCWV4aXQg OzsKKysgICAgUHlyYW1pZCo6T1N4KjoqOiogfCBNSVMqOk9TeCo6KjoqIHwgTUlTKjpTTVBfREMt T1N4KjoqOiopCisrCSMgYWtlZUB3cGRpczAzLndwYWZiLmFmLm1pbCAoRWFybGUgRi4gQWtlKSBj b250cmlidXRlZCBNSVMgYW5kIE5JTEUuCisrCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4v ZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KKysJCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN5c3YzCisr CWVsc2UKKysJCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAorKwlmaQorKwlleGl0IDs7CisrICAg IE5JTEUqOio6KjpkY29zeCkKKysJZWNobyBweXJhbWlkLXB5cmFtaWQtc3ZyNAorKwlleGl0IDs7 CisrICAgIERSUz82MDAwOnVuaXg6NC4wOjYqKQorKwllY2hvIHNwYXJjLWljbC1ueDYKKysJZXhp dCA7OworKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6 NyopCisrCWNhc2UgYC91c3IvYmluL3VuYW1lIC1wYCBpbgorKwkgICAgc3BhcmMpIGVjaG8gc3Bh cmMtaWNsLW54NzsgZXhpdCA7OworKwllc2FjIDs7CisrICAgIHN1bjRIOlN1bk9TOjUuKjoqKQor KwllY2hvIHNwYXJjLWhhbC1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdz L1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIHN1bjQqOlN1bk9TOjUuKjoqIHwgdGFkcG9sZSo6 U3VuT1M6NS4qOiopCisrCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxF QVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysgICAgaTg2cGM6U3VuT1M6NS4q OiogfCBpODZ4ZW46U3VuT1M6NS4qOiopCisrCWVjaG8gaTM4Ni1wYy1zb2xhcmlzMmBlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIHN1bjQq OlN1bk9TOjYqOiopCisrCSMgQWNjb3JkaW5nIHRvIGNvbmZpZy5zdWIsIHRoaXMgaXMgdGhlIHBy b3BlciB3YXkgdG8gY2Fub25pY2FsaXplCisrCSMgU3VuT1M2LiAgSGFyZCB0byBndWVzcyBleGFj dGx5IHdoYXQgU3VuT1M2IHdpbGwgYmUgbGlrZSwgYnV0CisrCSMgaXQncyBsaWtlbHkgdG8gYmUg bW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCisrCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMz YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysg ICAgc3VuNCo6U3VuT1M6KjoqKQorKwljYXNlICJgL3Vzci9iaW4vYXJjaCAta2AiIGluCisrCSAg ICBTZXJpZXMqfFM0KikKKysJCVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12YAorKwkJOzsKKysJZXNh YworKwkjIEphcGFuZXNlIExhbmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9uIG51bWJlciBs aWtlIGA0LjEuMy1KTCcuCisrCWVjaG8gc3BhcmMtc3VuLXN1bm9zYGVjaG8gJHtVTkFNRV9SRUxF QVNFfXxzZWQgLWUgJ3MvLS9fLydgCisrCWV4aXQgOzsKKysgICAgc3VuMyo6U3VuT1M6KjoqKQor KwllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIHN1 bio6Kjo0LjJCU0Q6KikKKysJVU5BTUVfUkVMRUFTRT1gKHNlZCAxcSAvZXRjL21vdGQgfCBhd2sg J3twcmludCBzdWJzdHIoJDUsMSwzKX0nKSAyPi9kZXYvbnVsbGAKKysJdGVzdCAieCR7VU5BTUVf UkVMRUFTRX0iID0gIngiICYmIFVOQU1FX1JFTEVBU0U9MworKwljYXNlICJgL2Jpbi9hcmNoYCIg aW4KKysJICAgIHN1bjMpCisrCQllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQor KwkJOzsKKysJICAgIHN1bjQpCisrCQllY2hvIHNwYXJjLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFT RX0KKysJCTs7CisrCWVzYWMKKysJZXhpdCA7OworKyAgICBhdXNocDpTdW5PUzoqOiopCisrCWVj aG8gc3BhcmMtYXVzcGV4LXN1bm9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICMg VGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRsZSBjb25mdXNpbmcuICBUaGUgbWFjaGlu ZSBuYW1lCisrICAgICMgY2FuIGJlIHZpcnR1YWxseSBldmVyeXRoaW5nIChldmVyeXRoaW5nIHdo aWNoIGlzIG5vdAorKyAgICAjICJhdGFyaXN0IiBvciAiYXRhcmlzdGUiIGF0IGxlYXN0IHNob3Vs ZCBoYXZlIGEgcHJvY2Vzc29yCisrICAgICMgPiBtNjgwMDApLiAgVGhlIHN5c3RlbSBuYW1lIHJh bmdlcyBmcm9tICJNaU5UIiBvdmVyICJGcmVlTWlOVCIKKysgICAgIyB0byB0aGUgbG93ZXJjYXNl IHZlcnNpb24gIm1pbnQiIChvciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkKKysgICAgIyB0aGUgc3lz dGVtIG5hbWUgIlRPUyIgZGVub3RlcyBhIHN5c3RlbSB3aGljaCBpcyBhY3R1YWxseSBub3QKKysg ICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRo aXMgc2hvdWxkCisrICAgICMgYmUgbm8gcHJvYmxlbS4KKysgICAgYXRhcmlzdFtlXToqTWlOVDoq OiogfCBhdGFyaXN0W2VdOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCisrICAgICAg ICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBh dGFyaSo6Kk1pTlQ6KjoqIHwgYXRhcmkqOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiop CisrCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorKyAgICAgICAgZXhpdCA7 OworKyAgICAqZmFsY29uKjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29u KjoqVE9TOio6KikKKysgICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNF fQorKwlleGl0IDs7CisrICAgIG1pbGFuKjoqTWlOVDoqOiogfCBtaWxhbio6Km1pbnQ6KjoqIHwg Km1pbGFuKjoqVE9TOio6KikKKysgICAgICAgIGVjaG8gbTY4ay1taWxhbi1taW50JHtVTkFNRV9S RUxFQVNFfQorKyAgICAgICAgZXhpdCA7OworKyAgICBoYWRlcyo6Kk1pTlQ6KjoqIHwgaGFkZXMq OiptaW50Oio6KiB8ICpoYWRlcyo6KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGstaGFkZXMt bWludCR7VU5BTUVfUkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsKKysgICAgKjoqTWlOVDoqOiog fCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGstdW5rbm93bi1t aW50JHtVTkFNRV9SRUxFQVNFfQorKyAgICAgICAgZXhpdCA7OworKyAgICBtNjhrOm1hY2h0ZW46 KjoqKQorKwllY2hvIG02OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7 OworKyAgICBwb3dlcnBjOm1hY2h0ZW46KjoqKQorKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRl biR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBSSVNDKjpNYWNoOio6KikKKysJZWNo byBtaXBzLWRlYy1tYWNoX2JzZDQuMworKwlleGl0IDs7CisrICAgIFJJU0MqOlVMVFJJWDoqOiop CisrCWVjaG8gbWlwcy1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAg IFZBWCo6VUxUUklYKjoqOiopCisrCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9 CisrCWV4aXQgOzsKKysgICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiopCisrCWVjaG8g Y2xpcHBlci1pbnRlcmdyYXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg bWlwczoqOio6VU1JUFMgfCBtaXBzOio6KjpSSVNDb3MpCisrCWV2YWwgJHNldF9jY19mb3JfYnVp bGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKysjaWZkZWYgX19jcGx1c3BsdXMK KysjaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBwcmludGYoKSBwcm90b3R5cGUgKi8KKysJaW50 IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKKysjZWxzZQorKwlpbnQgbWFpbiAoYXJn YywgYXJndikgaW50IGFyZ2M7IGNoYXIgKmFyZ3ZbXTsgeworKyNlbmRpZgorKwkjaWYgZGVmaW5l ZCAoaG9zdF9taXBzKSAmJiBkZWZpbmVkIChNSVBTRUIpCisrCSNpZiBkZWZpbmVkIChTWVNUWVBF X1NZU1YpCisrCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7 IGV4aXQgKDApOworKwkjZW5kaWYKKysJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZSNCkKKysJICBw cmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7Cisr CSNlbmRpZgorKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5lZChTWVNUWVBF X0JTRCkKKysJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBl eGl0ICgwKTsKKysJI2VuZGlmCisrCSNlbmRpZgorKwkgIGV4aXQgKC0xKTsKKysJfQorK0VPRgor KwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJgorKwkgIGR1bW15YXJnPWBlY2hv ICIke1VOQU1FX1JFTEVBU0V9IiB8IHNlZCAtbiAncy9cKFswLTldKlwpLiovXDEvcCdgICYmCisr CSAgU1lTVEVNX05BTUU9YCRkdW1teSAkZHVtbXlhcmdgICYmCisrCSAgICB7IGVjaG8gIiRTWVNU RU1fTkFNRSI7IGV4aXQ7IH0KKysJZWNobyBtaXBzLW1pcHMtcmlzY29zJHtVTkFNRV9SRUxFQVNF fQorKwlleGl0IDs7CisrICAgIE1vdG9yb2xhOlBvd2VyTUFYX09TOio6KikKKysJZWNobyBwb3dl cnBjLW1vdG9yb2xhLXBvd2VybWF4CisrCWV4aXQgOzsKKysgICAgTW90b3JvbGE6Kjo0LjM6UEw4 LSopCisrCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJtYXgKKysJZXhpdCA7OworKyAgICBOaWdo dF9IYXdrOio6KjpQb3dlck1BWF9PUyB8IFN5bmVyZ3k6UG93ZXJNQVhfT1M6KjoqKQorKwllY2hv IHBvd2VycGMtaGFycmlzLXBvd2VybWF4CisrCWV4aXQgOzsKKysgICAgTmlnaHRfSGF3azpQb3dl cl9VTklYOio6KikKKysJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcnVuaXgKKysJZXhpdCA7Owor KyAgICBtODhrOkNYL1VYOjcqOiopCisrCWVjaG8gbTg4ay1oYXJyaXMtY3h1eDcKKysJZXhpdCA7 OworKyAgICBtODhrOio6NCo6UjQqKQorKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjQKKysJZXhp dCA7OworKyAgICBtODhrOio6Myo6UjMqKQorKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKKysJ ZXhpdCA7OworKyAgICBBVmlpT046ZGd1eDoqOiopCisrICAgICAgICAjIERHL1VYIHJldHVybnMg QVZpaU9OIGZvciBhbGwgYXJjaGl0ZWN0dXJlcworKyAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAv dXNyL2Jpbi91bmFtZSAtcGAKKysJaWYgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODEwMCBdIHx8 IFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMTAgXQorKwl0aGVuCisrCSAgICBpZiBbICR7VEFS R0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKKysJICAgICAgIFsg JHtUQVJHRVRfQklOQVJZX0lOVEVSRkFDRX14ID0geCBdCisrCSAgICB0aGVuCisrCQllY2hvIG04 OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KKysJICAgIGVsc2UKKysJCWVjaG8gbTg4ay1kZy1k Z3V4YmNzJHtVTkFNRV9SRUxFQVNFfQorKwkgICAgZmkKKysJZWxzZQorKwkgICAgZWNobyBpNTg2 LWRnLWRndXgke1VOQU1FX1JFTEVBU0V9CisrCWZpCisrIAlleGl0IDs7CisrICAgIE04OCo6RG9s cGhpbk9TOio6KikJIyBEb2xwaGluT1MgKFNWUjMpCisrCWVjaG8gbTg4ay1kb2xwaGluLXN5c3Yz CisrCWV4aXQgOzsKKysgICAgTTg4KjoqOlIzKjoqKQorKwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVu bmluZyBTVlIzCisrCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MworKwlleGl0IDs7CisrICAgIFhE ODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQor KwllY2hvIG04OGstdGVrdHJvbml4LXN5c3YzCisrCWV4aXQgOzsKKysgICAgVGVrNDNbMC05XVsw LTldOlVUZWs6KjoqKSAjIFRla3Ryb25peCA0MzAwIHN5c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkK KysJZWNobyBtNjhrLXRla3Ryb25peC1ic2QKKysJZXhpdCA7OworKyAgICAqOklSSVgqOio6KikK KysJZWNobyBtaXBzLXNnaS1pcml4YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9f L2cnYAorKwlleGl0IDs7CisrICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4y LjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KKysJZWNobyByb21wLWlibS1haXggICAgICMg dW5hbWUgLW0gZ2l2ZXMgYW4gOCBoZXgtY29kZSBDUFUgaWQKKysJZXhpdCA7OyAgICAgICAgICAg ICAgICMgTm90ZSB0aGF0OiBlY2hvICInYHVuYW1lIC1zYCciIGdpdmVzICdBSVggJworKyAgICBp Kjg2OkFJWDoqOiopCisrCWVjaG8gaTM4Ni1pYm0tYWl4CisrCWV4aXQgOzsKKysgICAgaWE2NDpB SVg6KjoqKQorKwlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KKysJCUlCTV9SRVY9 YC91c3IvYmluL29zbGV2ZWxgCisrCWVsc2UKKysJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4k e1VOQU1FX1JFTEVBU0V9CisrCWZpCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJ Qk1fUkVWfQorKwlleGl0IDs7CisrICAgICo6QUlYOjI6MykKKysJaWYgZ3JlcCBib3MzMjUgL3Vz ci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQlldmFsICRzZXRfY2Nf Zm9yX2J1aWxkCisrCQlzZWQgJ3MvXgkJLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJCSNpbmNsdWRl IDxzeXMvc3lzdGVtY2ZnLmg+CisrCisrCQltYWluKCkKKysJCQl7CisrCQkJaWYgKCFfX3Bvd2Vy X3BjKCkpCisrCQkJCWV4aXQoMSk7CisrCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsK KysJCQlleGl0KDApOworKwkJCX0KKytFT0YKKysJCWlmICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15 ICRkdW1teS5jICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgCisrCQl0aGVuCisrCQkJZWNobyAiJFNZ U1RFTV9OQU1FIgorKwkJZWxzZQorKwkJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNQorKwkJZmkK KysJZWxpZiBncmVwIGJvczMyNCAvdXNyL2luY2x1ZGUvc3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNAorKwllbHNlCisrCQllY2hvIHJzNjAw MC1pYm0tYWl4My4yCisrCWZpCisrCWV4aXQgOzsKKysgICAgKjpBSVg6KjpbNDU2XSkKKysJSUJN X0NQVV9JRD1gL3Vzci9zYmluL2xzZGV2IC1DIC1jIHByb2Nlc3NvciAtUyBhdmFpbGFibGUgfCBz ZWQgMXEgfCBhd2sgJ3sgcHJpbnQgJDEgfSdgCisrCWlmIC91c3Ivc2Jpbi9sc2F0dHIgLUVsICR7 SUJNX0NQVV9JRH0gfCBncmVwICcgUE9XRVInID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkJSUJN X0FSQ0g9cnM2MDAwCisrCWVsc2UKKysJCUlCTV9BUkNIPXBvd2VycGMKKysJZmkKKysJaWYgWyAt eCAvdXNyL2Jpbi9vc2xldmVsIF0gOyB0aGVuCisrCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVs YAorKwllbHNlCisrCQlJQk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQor KwlmaQorKwllY2hvICR7SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9CisrCWV4aXQgOzsKKysg ICAgKjpBSVg6KjoqKQorKwllY2hvIHJzNjAwMC1pYm0tYWl4CisrCWV4aXQgOzsKKysgICAgaWJt cnQ6NC40QlNEOip8cm9tcC1pYm06QlNEOiopCisrCWVjaG8gcm9tcC1pYm0tYnNkNC40CisrCWV4 aXQgOzsKKysgICAgaWJtcnQ6KkJTRDoqfHJvbXAtaWJtOkJTRDoqKSAgICAgICAgICAgICMgY292 ZXJzIFJUL1BDIEJTRCBhbmQKKysJZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAg IyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bworKwlleGl0IDs7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIHJlcG9ydDogcm9tcC1pYm0gQlNEIDQuMworKyAgICAqOkJPU1g6KjoqKQorKwll Y2hvIHJzNjAwMC1idWxsLWJvc3gKKysJZXhpdCA7OworKyAgICBEUFgvMj8wMDpCLk8uUy46Kjoq KQorKwllY2hvIG02OGstYnVsbC1zeXN2MworKwlleGl0IDs7CisrICAgIDkwMDAvWzM0XT8/OjQu M2JzZDoxLio6KikKKysJZWNobyBtNjhrLWhwLWJzZAorKwlleGl0IDs7CisrICAgIGhwMzAwOjQu NEJTRDoqOiogfCA5MDAwL1szNF0/Pzo0LjNic2Q6Mi4qOiopCisrCWVjaG8gbTY4ay1ocC1ic2Q0 LjQKKysJZXhpdCA7OworKyAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCisrCUhQVVhfUkVW PWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAorKwljYXNl ICIke1VOQU1FX01BQ0hJTkV9IiBpbgorKwkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FS Q0g9bTY4MDAwIDs7CisrCSAgICA5MDAwL1szNF0/PyApICAgICAgICAgSFBfQVJDSD1tNjhrIDs7 CisrCSAgICA5MDAwL1s2NzhdWzAtOV1bMC05XSkKKysJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29u ZiBdOyB0aGVuCisrCQkgICAgc2NfY3B1X3ZlcnNpb249YC91c3IvYmluL2dldGNvbmYgU0NfQ1BV X1ZFUlNJT04gMj4vZGV2L251bGxgCisrICAgICAgICAgICAgICAgICAgICBzY19rZXJuZWxfYml0 cz1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19LRVJORUxfQklUUyAyPi9kZXYvbnVsbGAKKysgICAgICAg ICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgorKyAgICAgICAgICAgICAg ICAgICAgICA1MjMpIEhQX0FSQ0g9ImhwcGExLjAiIDs7ICMgQ1BVX1BBX1JJU0MxXzAKKysgICAg ICAgICAgICAgICAgICAgICAgNTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7OyAjIENQVV9QQV9SSVND MV8xCisrICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBD UFVfUEFfUklTQzJfMAorKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2Nfa2VybmVs X2JpdHN9IiBpbgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpIEhQX0FSQ0g9ImhwcGEy LjBuIiA7OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3 IiA7OworKwkJCSAgJycpIEhQX0FSQ0g9ImhwcGEyLjAiIDs7ICAgIyBIUC1VWCAxMC4yMAorKyAg ICAgICAgICAgICAgICAgICAgICAgIGVzYWMgOzsKKysgICAgICAgICAgICAgICAgICAgIGVzYWMK KysJCWZpCisrCQlpZiBbICIke0hQX0FSQ0h9IiA9ICIiIF07IHRoZW4KKysJCSAgICBldmFsICRz ZXRfY2NfZm9yX2J1aWxkCisrCQkgICAgc2VkICdzL14gICAgICAgICAgICAgIC8vJyA8PCBFT0Yg PiRkdW1teS5jCisrCisrICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQorKyAgICAg ICAgICAgICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHVu aXN0ZC5oPgorKworKyAgICAgICAgICAgICAgaW50IG1haW4gKCkKKysgICAgICAgICAgICAgIHsK KysgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKKysgICAgICAgICAg ICAgICAgICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7CisrICAgICAgICAg ICAgICAjZW5kaWYKKysgICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0Nf Q1BVX1ZFUlNJT04pOworKworKyAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3B1KQorKyAgICAg ICAgICAgICAgCXsKKysgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgi aHBwYTEuMCIpOyBicmVhazsKKysgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8xOiBw dXRzICgiaHBwYTEuMSIpOyBicmVhazsKKysgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVND Ml8wOgorKyAgICAgICAgICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQorKyAgICAg ICAgICAgICAgCSAgICBzd2l0Y2ggKGJpdHMpCisrICAgICAgICAgICAgICAJCXsKKysgICAgICAg ICAgICAgIAkJY2FzZSA2NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOworKyAgICAgICAgICAg ICAgCQljYXNlIDMyOiBwdXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJ CWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOworKyAgICAgICAgICAgICAgCQl9IGJy ZWFrOworKyAgICAgICAgICAgICAgI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19LRVJORUxfQklUUykg Ki8KKysgICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7CisrICAgICAg ICAgICAgICAjZW5kaWYKKysgICAgICAgICAgICAgIAlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIp OyBicmVhazsKKysgICAgICAgICAgICAgIAl9CisrICAgICAgICAgICAgICAgICAgZXhpdCAoMCk7 CisrICAgICAgICAgICAgICB9CisrRU9GCisrCQkgICAgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAt byAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwpICYmIEhQX0FSQ0g9YCRkdW1teWAKKysJCSAg ICB0ZXN0IC16ICIkSFBfQVJDSCIgJiYgSFBfQVJDSD1ocHBhCisrCQlmaSA7OworKwllc2FjCisr CWlmIFsgJHtIUF9BUkNIfSA9ICJocHBhMi4wdyIgXQorKwl0aGVuCisrCSAgICBldmFsICRzZXRf Y2NfZm9yX2J1aWxkCisrCisrCSAgICAjIGhwcGEyLjB3LWhwLWhwdXgqIGhhcyBhIDY0LWJpdCBr ZXJuZWwgYW5kIGEgY29tcGlsZXIgZ2VuZXJhdGluZworKwkgICAgIyAzMi1iaXQgY29kZS4gIGhw cGE2NC1ocC1ocHV4KiBoYXMgdGhlIHNhbWUga2VybmVsIGFuZCBhIGNvbXBpbGVyCisrCSAgICAj IGdlbmVyYXRpbmcgNjQtYml0IGNvZGUuICBHTlUgYW5kIEhQIHVzZSBkaWZmZXJlbnQgbm9tZW5j bGF0dXJlOgorKwkgICAgIworKwkgICAgIyAkIENDX0ZPUl9CVUlMRD1jYyAuL2NvbmZpZy5ndWVz cworKwkgICAgIyA9PiBocHBhMi4wdy1ocC1ocHV4MTEuMjMKKysJICAgICMgJCBDQ19GT1JfQlVJ TEQ9ImNjICtEQTIuMHciIC4vY29uZmlnLmd1ZXNzCisrCSAgICAjID0+IGhwcGE2NC1ocC1ocHV4 MTEuMjMKKysKKysJICAgIGlmIGVjaG8gX19MUDY0X18gfCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxE IC1FIC0gMj4vZGV2L251bGwpIHwKKysJCWdyZXAgX19MUDY0X18gPi9kZXYvbnVsbAorKwkgICAg dGhlbgorKwkJSFBfQVJDSD0iaHBwYTIuMHciCisrCSAgICBlbHNlCisrCQlIUF9BUkNIPSJocHBh NjQiCisrCSAgICBmaQorKwlmaQorKwllY2hvICR7SFBfQVJDSH0taHAtaHB1eCR7SFBVWF9SRVZ9 CisrCWV4aXQgOzsKKysgICAgaWE2NDpIUC1VWDoqOiopCisrCUhQVVhfUkVWPWBlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAorKwllY2hvIGlhNjQtaHAtaHB1 eCR7SFBVWF9SRVZ9CisrCWV4aXQgOzsKKysgICAgMzA1MCo6SEktVVg6KjoqKQorKwlldmFsICRz ZXRfY2NfZm9yX2J1aWxkCisrCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrCSNpbmNs dWRlIDx1bmlzdGQuaD4KKysJaW50CisrCW1haW4gKCkKKysJeworKwkgIGxvbmcgY3B1ID0gc3lz Y29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKKysJICAvKiBUaGUgb3JkZXIgbWF0dGVycywgYmVjYXVz ZSBDUFVfSVNfSFBfTUM2OEsgZXJyb25lb3VzbHkgcmV0dXJucworKwkgICAgIHRydWUgZm9yIENQ VV9QQV9SSVNDMV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0CisrCSAgICAgcmVz dWx0cywgaG93ZXZlci4gICovCisrCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUpKQorKwkgICAg eworKwkgICAgICBzd2l0Y2ggKGNwdSkKKysJCXsKKysJCSAgY2FzZSBDUFVfUEFfUklTQzFfMDog cHV0cyAoImhwcGExLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJICBjYXNlIENQVV9Q QV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisrCQkg IGNhc2UgQ1BVX1BBX1JJU0MyXzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1eHdlMiIpOyBi cmVhazsKKysJCSAgZGVmYXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFr OworKwkJfQorKwkgICAgfQorKwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKKysJ ICAgIHB1dHMgKCJtNjhrLWhpdGFjaGktaGl1eHdlMiIpOworKwkgIGVsc2UgcHV0cyAoInVua25v d24taGl0YWNoaS1oaXV4d2UyIik7CisrCSAgZXhpdCAoMCk7CisrCX0KKytFT0YKKysJJENDX0ZP Ul9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKKysJ CXsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQorKwllY2hvIHVua25vd24taGl0YWNoaS1o aXV4d2UyCisrCWV4aXQgOzsKKysgICAgOTAwMC83Pz86NC4zYnNkOio6KiB8IDkwMDAvOD9bNzld OjQuM2JzZDoqOiogKQorKwllY2hvIGhwcGExLjEtaHAtYnNkCisrCWV4aXQgOzsKKysgICAgOTAw MC84Pz86NC4zYnNkOio6KikKKysJZWNobyBocHBhMS4wLWhwLWJzZAorKwlleGl0IDs7CisrICAg ICo5Pz8qOk1QRS9pWDoqOiogfCAqMzAwMCo6TVBFL2lYOio6KikKKysJZWNobyBocHBhMS4wLWhw LW1wZWl4CisrCWV4aXQgOzsKKysgICAgaHA3Pz86T1NGMToqOiogfCBocDg/Wzc5XTpPU0YxOio6 KiApCisrCWVjaG8gaHBwYTEuMS1ocC1vc2YKKysJZXhpdCA7OworKyAgICBocDg/PzpPU0YxOio6 KikKKysJZWNobyBocHBhMS4wLWhwLW9zZgorKwlleGl0IDs7CisrICAgIGkqODY6T1NGMToqOiop CisrCWlmIFsgLXggL3Vzci9zYmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KKysJICAgIGVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLW9zZjFtaworKwllbHNlCisrCSAgICBlY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1vc2YxCisrCWZpCisrCWV4aXQgOzsKKysgICAgcGFyaXNjKjpMaXRl cyo6KjoqKQorKwllY2hvIGhwcGExLjEtaHAtbGl0ZXMKKysJZXhpdCA7OworKyAgICBDMSo6Q29u dmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQorKwllY2hvIGMxLWNvbnZleC1ic2QK KysgICAgICAgIGV4aXQgOzsKKysgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhP UzpDMio6KikKKysJaWYgZ2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCisrCXRoZW4gZWNobyBjMzIt Y29udmV4LWJzZAorKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAorKwlmaQorKyAgICAgICAgZXhp dCA7OworKyAgICBDMzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCisr CWVjaG8gYzM0LWNvbnZleC1ic2QKKysgICAgICAgIGV4aXQgOzsKKysgICAgQzM4KjpDb252ZXhP UzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQorKwllY2hvIGMzOC1jb252ZXgtYnNkCisr ICAgICAgICBleGl0IDs7CisrICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6 QzQqOiopCisrCWVjaG8gYzQtY29udmV4LWJzZAorKyAgICAgICAgZXhpdCA7OworKyAgICBDUkFZ KlktTVA6KjoqOiopCisrCWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNl ZCAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQgOzsKKysgICAgQ1JBWSpbQS1aXTkwOio6Kjoq KQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IFwK KysJfCBzZWQgLWUgJ3MvQ1JBWS4qXChbQS1aXTkwXCkvXDEvJyBcCisrCSAgICAgIC1lIHkvQUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKKysJ ICAgICAgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgIENSQVkqVFM6KjoqOiop CisrCWVjaG8gdDkwLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlte Ll0qJC8uWC8nCisrCWV4aXQgOzsKKysgICAgQ1JBWSpUM0U6KjoqOiopCisrCWVjaG8gYWxwaGFl djUtY3JheS11bmljb3NtayR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgv JworKwlleGl0IDs7CisrICAgIENSQVkqU1YxOio6KjoqKQorKwllY2hvIHN2MS1jcmF5LXVuaWNv cyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7Cisr ICAgICo6VU5JQ09TL21wOio6KikKKysJZWNobyBjcmF5bnYtY3JheS11bmljb3NtcCR7VU5BTUVf UkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgIEYzMFsw MV06VU5JWF9TeXN0ZW1fVjoqOiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQorKwlGVUpJVFNV X1BST0M9YHVuYW1lIC1tIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVm Z2hpamtsbW5vcHFyc3R1dnd4eXonYAorKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwg dHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 eXonIHwgc2VkIC1lICdzL1wvLy8nYAorKyAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFN RV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKKysgICAgICAgIGVjaG8gIiR7RlVKSVRTVV9Q Uk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisrICAgICAgICBleGl0 IDs7CisrICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKKysgICAgICAgIEZVSklUU1VfU1lT PWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWpr bG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKKysgICAgICAgIEZVSklUU1VfUkVM PWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVon ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCisrICAgICAg ICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisrCWV4 aXQgOzsKKysgICAgaSo4NjpCU0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5k XCBFbWJlZGRlZC9PUzoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFN RV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIHNwYXJjKjpCU0QvT1M6KjoqKQorKwllY2hvIHNw YXJjLXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkJTRC9P UzoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVB U0V9CisrCWV4aXQgOzsKKysgICAgKjpGcmVlQlNEOio6KikKKysJY2FzZSAke1VOQU1FX01BQ0hJ TkV9IGluCisrCSAgICBwYzk4KQorKwkJZWNobyBpMzg2LXVua25vd24tZnJlZWJzZGBlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKKysJICAgIGFtZDY0KQorKwkJ ZWNobyB4ODZfNjQtdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUg J3MvWy0oXS4qLy8nYCA7OworKwkgICAgKikKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtu b3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7 CisrCWVzYWMKKysJZXhpdCA7OworKyAgICBpKjpDWUdXSU4qOiopCisrCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1wYy1jeWd3aW4KKysJZXhpdCA7OworKyAgICAqOk1JTkdXKjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0tcGMtbWluZ3czMgorKwlleGl0IDs7CisrICAgIGkqOndpbmRvd3MzMio6 KikKKysgICAgCSMgdW5hbWUgLW0gaW5jbHVkZXMgIi1wYyIgb24gdGhpcyBzeXN0ZW0uCisrICAg IAllY2hvICR7VU5BTUVfTUFDSElORX0tbWluZ3czMgorKwlleGl0IDs7CisrICAgIGkqOlBXKjoq KQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcHczMgorKwlleGl0IDs7CisrICAgICo6SW50 ZXJpeCo6WzM0NTZdKikKKysgICAgCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgorKwkgICAgeDg2 KQorKwkJZWNobyBpNTg2LXBjLWludGVyaXgke1VOQU1FX1JFTEVBU0V9CisrCQlleGl0IDs7Cisr CSAgICBFTTY0VCB8IGF1dGhlbnRpY2FtZCkKKysJCWVjaG8geDg2XzY0LXVua25vd24taW50ZXJp eCR7VU5BTUVfUkVMRUFTRX0KKysJCWV4aXQgOzsKKysJICAgIElBNjQpCisrCQllY2hvIGlhNjQt dW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQorKwkJZXhpdCA7OworKwllc2FjIDs7Cisr ICAgIFszNDVdODY6V2luZG93c185NToqIHwgWzM0NV04NjpXaW5kb3dzXzk4OiogfCBbMzQ1XTg2 OldpbmRvd3NfTlQ6KikKKysJZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MKKysJZXhpdCA7 OworKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKKysJIyBI b3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVgg c3Vic3lzdGVtPworKwkjIEl0IGFsc28gY29uZmxpY3RzIHdpdGggcHJlLTIuMCB2ZXJzaW9ucyBv ZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQorKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91 dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/CisrCWVjaG8gaTU4Ni1wYy1pbnRlcml4Cisr CWV4aXQgOzsKKysgICAgaSo6VVdJTio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXV3 aW4KKysJZXhpdCA7OworKyAgICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6 KikKKysJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3aW4KKysJZXhpdCA7OworKyAgICBwKjpDWUdX SU4qOiopCisrCWVjaG8gcG93ZXJwY2xlLXVua25vd24tY3lnd2luCisrCWV4aXQgOzsKKysgICAg cHJlcCo6U3VuT1M6NS4qOiopCisrCWVjaG8gcG93ZXJwY2xlLXVua25vd24tc29sYXJpczJgZWNo byAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICAq OkdOVToqOiopCisrCSMgdGhlIEdOVSBzeXN0ZW0KKysJZWNobyBgZWNobyAke1VOQU1FX01BQ0hJ TkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5BTUVfUkVMRUFT RX18c2VkIC1lICdzLC8uKiQsLCdgCisrCWV4aXQgOzsKKysgICAgKjpHTlUvKjoqOiopCisrCSMg b3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFuZCB1c2VybGFuZAorKwllY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3MsXlteL10qLyws JyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9b LShdLiovLydgLWdudQorKwlleGl0IDs7CisrICAgIGkqODY6TWluaXg6KjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0tcGMtbWluaXgKKysJZXhpdCA7OworKyAgICBhcm0qOkxpbnV4Oio6KikK KysJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwlpZiBlY2hvIF9fQVJNX0VBQklfXyB8ICRDQ19G T1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBcCisrCSAgICB8IGdyZXAgLXEgX19BUk1fRUFCSV9f CisrCXRoZW4KKysJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQor KwllbHNlCisrCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnVlYWJp CisrCWZpCisrCWV4aXQgOzsKKysgICAgYXZyMzIqOkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1F X01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgY3JpczpMaW51eDoq OiopCisrCWVjaG8gY3Jpcy1heGlzLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGNyaXN2MzI6 TGludXg6KjoqKQorKwllY2hvIGNyaXN2MzItYXhpcy1saW51eC1nbnUKKysJZXhpdCA7OworKyAg ICBmcnY6TGludXg6KjoqKQorKyAgICAJZWNobyBmcnYtdW5rbm93bi1saW51eC1nbnUKKysJZXhp dCA7OworKyAgICBpYTY0OkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgbTMycio6TGludXg6KjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBtNjgqOkxp bnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4 aXQgOzsKKysgICAgbWlwczpMaW51eDoqOiopCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJ c2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJI3VuZGVmIENQVQorKwkjdW5kZWYgbWlw cworKwkjdW5kZWYgbWlwc2VsCisrCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRlZmluZWQo X19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCisrCUNQVT1t aXBzZWwKKysJI2Vsc2UKKysJI2lmIGRlZmluZWQoX19NSVBTRUJfXykgfHwgZGVmaW5lZChfX01J UFNFQikgfHwgZGVmaW5lZChfTUlQU0VCKSB8fCBkZWZpbmVkKE1JUFNFQikKKysJQ1BVPW1pcHMK KysJI2Vsc2UKKysJQ1BVPQorKwkjZW5kaWYKKysJI2VuZGlmCisrRU9GCisrCWV2YWwgImAkQ0Nf Rk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKKysJICAgIC9eQ1BV L3sKKysJCXM6IDo6ZworKwkJcAorKwkgICAgfSdgIgorKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYm IHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQorKwk7OworKyAgICBt aXBzNjQ6TGludXg6KjoqKQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCXNlZCAncy9eCS8v JyA8PCBFT0YgPiRkdW1teS5jCisrCSN1bmRlZiBDUFUKKysJI3VuZGVmIG1pcHM2NAorKwkjdW5k ZWYgbWlwczY0ZWwKKysJI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNF TCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKKysJQ1BVPW1pcHM2NGVs CisrCSNlbHNlCisrCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIp IHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCisrCUNQVT1taXBzNjQKKysJ I2Vsc2UKKysJQ1BVPQorKwkjZW5kaWYKKysJI2VuZGlmCisrRU9GCisrCWV2YWwgImAkQ0NfRk9S X0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKKysJICAgIC9eQ1BVL3sK KysJCXM6IDo6ZworKwkJcAorKwkgICAgfSdgIgorKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsg ZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQorKwk7OworKyAgICBvcjMy OkxpbnV4Oio6KikKKysJZWNobyBvcjMyLXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysg ICAgcHBjOkxpbnV4Oio6KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgtZ251CisrCWV4 aXQgOzsKKysgICAgcHBjNjQ6TGludXg6KjoqKQorKwllY2hvIHBvd2VycGM2NC11bmtub3duLWxp bnV4LWdudQorKwlleGl0IDs7CisrICAgIGFscGhhOkxpbnV4Oio6KikKKysJY2FzZSBgc2VkIC1u ICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KKysJ ICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7OworKwkgIEVWNTYpICBVTkFNRV9NQUNI SU5FPWFscGhhZXY1NiA7OworKwkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsK KysJICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7CisrCSAgRVY2KSAgIFVOQU1F X01BQ0hJTkU9YWxwaGFldjYgOzsKKysJICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2Njcg OzsKKysJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKKysgICAgICAgIGVzYWMK KysJb2JqZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmluL3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2 L251bGwKKysJaWYgdGVzdCAiJD8iID0gMCA7IHRoZW4gTElCQz0ibGliYzEiIDsgZWxzZSBMSUJD PSIiIDsgZmkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251JHtMSUJD fQorKwlleGl0IDs7CisrICAgIHBhcmlzYzpMaW51eDoqOiogfCBocHBhOkxpbnV4Oio6KikKKysJ IyBMb29rIGZvciBDUFUgbGV2ZWwKKysJY2FzZSBgZ3JlcCAnXmNwdVteYS16XSo6JyAvcHJvYy9j cHVpbmZvIDI+L2Rldi9udWxsIHwgY3V0IC1kJyAnIC1mMmAgaW4KKysJICBQQTcqKSBlY2hvIGhw cGExLjEtdW5rbm93bi1saW51eC1nbnUgOzsKKysJICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93 bi1saW51eC1nbnUgOzsKKysJICAqKSAgICBlY2hvIGhwcGEtdW5rbm93bi1saW51eC1nbnUgOzsK KysJZXNhYworKwlleGl0IDs7CisrICAgIHBhcmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51 eDoqOiopCisrCWVjaG8gaHBwYTY0LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAg czM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5F fS1pYm0tbGludXgKKysJZXhpdCA7OworKyAgICBzaDY0KjpMaW51eDoqOiopCisrICAgIAllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBzaCo6 TGludXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJ ZXhpdCA7OworKyAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgdmF4 OkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKKysJZXhp dCA7OworKyAgICB4ODZfNjQ6TGludXg6KjoqKQorKwllY2hvIHg4Nl82NC11bmtub3duLWxpbnV4 LWdudQorKwlleGl0IDs7CisrICAgIHh0ZW5zYSo6TGludXg6KjoqKQorKyAgICAJZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgaSo4NjpMaW51 eDoqOiopCisrCSMgVGhlIEJGRCBsaW5rZXIga25vd3Mgd2hhdCB0aGUgZGVmYXVsdCBvYmplY3Qg ZmlsZSBmb3JtYXQgaXMsIHNvCisrCSMgZmlyc3Qgc2VlIGlmIGl0IHdpbGwgdGVsbCB1cy4gY2Qg dG8gdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXZlbnQKKysJIyBwcm9ibGVtcyB3aXRoIG90aGVy IHByb2dyYW1zIG9yIGRpcmVjdG9yaWVzIGNhbGxlZCBgbGQnIGluIHRoZSBwYXRoLgorKwkjIFNl dCBMQ19BTEw9QyB0byBlbnN1cmUgbGQgb3V0cHV0cyBtZXNzYWdlcyBpbiBFbmdsaXNoLgorKwls ZF9zdXBwb3J0ZWRfdGFyZ2V0cz1gY2QgLzsgTENfQUxMPUMgbGQgLS1oZWxwIDI+JjEgXAorKwkJ CSB8IHNlZCAtbmUgJy9zdXBwb3J0ZWQgdGFyZ2V0czovIWQKKysJCQkJICAgIHMvWyAJXVsgCV0q LyAvZworKwkJCQkgICAgcy8uKnN1cHBvcnRlZCB0YXJnZXRzOiAqLy8KKysJCQkJICAgIHMvIC4q Ly8KKysJCQkJICAgIHAnYAorKyAgICAgICAgY2FzZSAiJGxkX3N1cHBvcnRlZF90YXJnZXRzIiBp bgorKwkgIGVsZjMyLWkzODYpCisrCQlURU5UQVRJVkU9IiR7VU5BTUVfTUFDSElORX0tcGMtbGlu dXgtZ251IgorKwkJOzsKKysJICBhLm91dC1pMzg2LWxpbnV4KQorKwkJZWNobyAiJHtVTkFNRV9N QUNISU5FfS1wYy1saW51eC1nbnVhb3V0IgorKwkJZXhpdCA7OworKwkgIGNvZmYtaTM4NikKKysJ CWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251Y29mZiIKKysJCWV4aXQgOzsKKysJ ICAiIikKKysJCSMgRWl0aGVyIGEgcHJlLUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxk KSBvcgorKwkJIyBvbmUgdGhhdCBkb2VzIG5vdCBnaXZlIHVzIHVzZWZ1bCAtLWhlbHAuCisrCQll Y2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudW9sZGxkIgorKwkJZXhpdCA7OworKwll c2FjCisrCSMgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQg b3IgZWxmCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+ JGR1bW15LmMKKysJI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCSNpZmRlZiBfX0VMRl9fCisrCSMg aWZkZWYgX19HTElCQ19fCisrCSMgIGlmIF9fR0xJQkNfXyA+PSAyCisrCUxJQkM9Z251CisrCSMg IGVsc2UKKysJTElCQz1nbnVsaWJjMQorKwkjICBlbmRpZgorKwkjIGVsc2UKKysJTElCQz1nbnVs aWJjMQorKwkjIGVuZGlmCisrCSNlbHNlCisrCSNpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIp IHx8IGRlZmluZWQoX19QR0kpIHx8IGRlZmluZWQoX19TVU5QUk9fQykgfHwgZGVmaW5lZChfX1NV TlBST19DQykKKysJTElCQz1nbnUKKysJI2Vsc2UKKysJTElCQz1nbnVhb3V0CisrCSNlbmRpZgor KwkjZW5kaWYKKysJI2lmZGVmIF9fZGlldGxpYmNfXworKwlMSUJDPWRpZXRsaWJjCisrCSNlbmRp ZgorK0VPRgorKwlldmFsICJgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8 IHNlZCAtbiAnCisrCSAgICAvXkxJQkMveworKwkJczogOjpnCisrCQlwCisrCSAgICB9J2AiCisr CXRlc3QgeCIke0xJQkN9IiAhPSB4ICYmIHsKKysJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMt bGludXgtJHtMSUJDfSIKKysJCWV4aXQKKysJfQorKwl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4 ICYmIHsgZWNobyAiJHtURU5UQVRJVkV9IjsgZXhpdDsgfQorKwk7OworKyAgICBpKjg2OkRZTklY L3B0eDo0KjoqKQorKwkjIHB0eCA0LjAgZG9lcyB1bmFtZSAtcyBjb3JyZWN0bHksIHdpdGggRFlO SVgvcHR4IGluIHRoZXJlLgorKwkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQg cHV0IHRoZSBub2RlbmFtZSBpbiBib3RoCisrCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCisrCWVj aG8gaTM4Ni1zZXF1ZW50LXN5c3Y0CisrCWV4aXQgOzsKKysgICAgaSo4NjpVTklYX1NWOjQuMk1Q OjIuKikKKysgICAgICAgICMgVW5peHdhcmUgaXMgYW4gb2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0 IGhhcyBpdHMgb3duIHZlcnNpb24KKysgICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3 aXRoIDIuLi4KKysgICAgICAgICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5 c3RlbXMgd29uJ3QgbWF0Y2ggdGhpcywKKysJIyBJIGp1c3QgaGF2ZSB0byBob3BlLiAgLS0gcm1z LgorKyAgICAgICAgIyBVc2Ugc3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQu CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059Cisr CWV4aXQgOzsKKysgICAgaSo4NjpPUy8yOio6KikKKysJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmlu ZCBgdW5hbWUnLCB0aGVuIEVNWCBVbml4IGNvbXBhdGliaWxpdHkKKysJIyBpcyBwcm9iYWJseSBp bnN0YWxsZWQuCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1vczItZW14CisrCWV4aXQgOzsK KysgICAgaSo4NjpYVFMtMzAwOio6U1RPUCkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tc3RvcAorKwlleGl0IDs7CisrICAgIGkqODY6YXRoZW9zOio6KikKKysJZWNobyAke1VOQU1F X01BQ0hJTkV9LXVua25vd24tYXRoZW9zCisrCWV4aXQgOzsKKysgICAgaSo4NjpzeWxsYWJsZToq OiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeWxsYWJsZQorKwlleGl0IDs7CisrICAg IGkqODY6THlueE9TOjIuKjoqIHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6 NC4wKjoqKQorKwllY2hvIGkzODYtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4 aXQgOzsKKysgICAgaSo4NjoqRE9TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1z ZG9zZGpncHAKKysJZXhpdCA7OworKyAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQu KjoqKQorKwlVTkFNRV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAncy9cL01QJC8v J2AKKysJaWYgZ3JlcCBOb3ZlbGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rl di9udWxsOyB0aGVuCisrCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1F X1JFTH0KKysJZWxzZQorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JF TH0KKysJZmkKKysJZXhpdCA7OworKyAgICBpKjg2Oio6NTpbNjc4XSopCisrICAgIAkjIFVuaXhX YXJlIDcueCwgT3BlblVOSVggYW5kIE9wZW5TZXJ2ZXIgNi4KKysJY2FzZSBgL2Jpbi91bmFtZSAt WCB8IGdyZXAgIl5NYWNoaW5lImAgaW4KKysJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9 aTQ4NiA7OworKwkgICAgKlBlbnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7CisrCSAg ICAqUGVudCp8KkNlbGVyb24pIFVOQU1FX01BQ0hJTkU9aTY4NiA7OworKwllc2FjCisrCWVjaG8g JHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNU RU19JHtVTkFNRV9WRVJTSU9OfQorKwlleGl0IDs7CisrICAgIGkqODY6KjozLjI6KikKKysJaWYg dGVzdCAtZiAvdXNyL29wdGlvbnMvY2IubmFtZTsgdGhlbgorKwkJVU5BTUVfUkVMPWBzZWQgLW4g J3MvLipWZXJzaW9uIC8vcCcgPC91c3Ivb3B0aW9ucy9jYi5uYW1lYAorKwkJZWNobyAke1VOQU1F X01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKKysJZWxpZiAvYmluL3VuYW1lIC1YIDI+L2Rldi9u dWxsID4vZGV2L251bGwgOyB0aGVuCisrCQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGdyZXAg UmVsZWFzZXxzZWQgLWUgJ3MvLio9IC8vJylgCisrCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4 NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKKysJCSgvYmluL3VuYW1lIC1YfGdy ZXAgJ15NYWNoaW5lLipQZW50aXVtJyA+L2Rldi9udWxsKSBcCisrCQkJJiYgVU5BTUVfTUFDSElO RT1pNTg2CisrCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2 L251bGwpIFwKKysJCQkmJiBVTkFNRV9NQUNISU5FPWk2ODYKKysJCSgvYmluL3VuYW1lIC1YfGdy ZXAgJ15NYWNoaW5lLipQZW50aXVtIFBybycgPi9kZXYvbnVsbCkgXAorKwkJCSYmIFVOQU1FX01B Q0hJTkU9aTY4NgorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNjbyRVTkFNRV9SRUwKKysJ ZWxzZQorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgorKwlmaQorKwlleGl0IDs7 CisrICAgIHBjOio6KjoqKQorKwkjIExlZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKKysgICAg ICAgICMgdW5hbWUgLW0gcHJpbnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50 cyBub3RoaW5nIGFib3V0CisrICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2Fm ZSBieSBhc3N1bWluZyBpMzg2LgorKwllY2hvIGkzODYtcGMtbXNkb3NkamdwcAorKyAgICAgICAg ZXhpdCA7OworKyAgICBJbnRlbDpNYWNoOjMqOiopCisrCWVjaG8gaTM4Ni1wYy1tYWNoMworKwll eGl0IDs7CisrICAgIHBhcmFnb246KjoqOiopCisrCWVjaG8gaTg2MC1pbnRlbC1vc2YxCisrCWV4 aXQgOzsKKysgICAgaTg2MDoqOjQuKjoqKSAjIGk4NjAtU1ZSNAorKwlpZiBncmVwIFN0YXJkZW50 IC91c3IvaW5jbHVkZS9zeXMvdWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorKwkgIGVj aG8gaTg2MC1zdGFyZGVudC1zeXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZpc3RyYSBp ODYwLVNWUjQKKysJZWxzZSAjIEFkZCBvdGhlciBpODYwLVNWUjQgdmVuZG9ycyBiZWxvdyBhcyB0 aGV5IGFyZSBkaXNjb3ZlcmVkLgorKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VOQU1FX1JF TEVBU0V9ICAjIFVua25vd24gaTg2MC1TVlI0CisrCWZpCisrCWV4aXQgOzsKKysgICAgbWluaSo6 Q1RJWDpTWVMqNToqKQorKwkjICJtaW5pZnJhbWUiCisrCWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQt c3lzdgorKwlleGl0IDs7CisrICAgIG1jNjhrOlVOSVg6U1lTVEVNNTozLjUxbSkKKysJZWNobyBt NjhrLWNvbnZlcmdlbnQtc3lzdgorKwlleGl0IDs7CisrICAgIE02ODA/MDpELU5JWDo1LjM6KikK KysJZWNobyBtNjhrLWRpYWItZG5peAorKwlleGl0IDs7CisrICAgIE02OCo6KjpSM1ZbNTY3OF0q OiopCisrCXRlc3QgLXIgL3N5c1Y2OCAmJiB7IGVjaG8gJ202OGstbW90b3JvbGEtc3lzdic7IGV4 aXQ7IH0gOzsKKysgICAgM1szNDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwg M1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMu MCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjAgfCBT SEcyOio6NC4wOjMuMCB8IFM3NTAxKjoqOjQuMDozLjApCisrCU9TX1JFTD0nJworKwl0ZXN0IC1y IC9ldGMvLnJlbGlkIFwKKysJJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAt OV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYv bnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCisrCSAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0 LjMke09TX1JFTH07IGV4aXQ7IH0KKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4v Z3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisrCSAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMk e09TX1JFTH07IGV4aXQ7IH0gOzsKKysgICAgM1szNF0/PzoqOjQuMDoqIHwgM1szNF0/PywqOio6 NC4wOiopCisrICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rl di9udWxsIFwKKysgICAgICAgICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7 CisrICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorKwllY2hvIG02 OGstdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbWM2ODAz MDpVTklYX1N5c3RlbV9WOjQuKjoqKQorKwllY2hvIG02OGstYXRhcmktc3lzdjQKKysJZXhpdCA7 OworKyAgICBUU1VOQU1JOkx5bnhPUzoyLio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWx5bnhv cyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICByczYwMDA6THlueE9TOjIuKjoqKQor KwllY2hvIHJzNjAwMC11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7Owor KyAgICBQb3dlclBDOkx5bnhPUzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBv d2VyUEM6THlueE9TOjQuMCo6KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFN RV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCisrCWVjaG8g bWlwcy1kZGUtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBSTSo6UmVsaWFu dFVOSVgtKjoqOiopCisrCWVjaG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICBSTSo6 U0lOSVgtKjoqOiopCisrCWVjaG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICAqOlNJ TklYLSo6KjoqKQorKwlpZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgor KwkJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1zbmktc3lzdjQKKysJZWxzZQorKwkJZWNobyBuczMyay1zbmktc3lzdgorKwlm aQorKwlleGl0IDs7CisrICAgIFBFTlRJVU06Kjo0LjAqOiopICMgVW5pc3lzIGBDbGVhclBhdGgg SE1QIElYIDQwMDAnIFNWUjQvTVAgZWZmb3J0CisrICAgICAgICAgICAgICAgICAgICAgICMgc2F5 cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKysgICAgICAgIGVjaG8gaTU4 Ni11bmlzeXMtc3lzdjQKKysgICAgICAgIGV4aXQgOzsKKysgICAgKjpVTklYX1N5c3RlbV9WOjQq OkZUWCopCisrCSMgRnJvbSBHZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4KKysJ IyBIb3cgYWJvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVz PyAtZGptCisrCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgKjoq Oio6RlRYKikKKysJIyBGcm9tIHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCisrCWVjaG8gaTg2MC1z dHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgaSo4NjpWT1M6KjoqKQorKwkjIEZyb20gUGF1 bC5HcmVlbkBzdHJhdHVzLmNvbS4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXN0cmF0dXMtdm9z CisrCWV4aXQgOzsKKysgICAgKjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVz LmNvbS4KKysJZWNobyBocHBhMS4xLXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysgICAgbWM2OCo6 QS9VWDoqOiopCisrCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQg OzsKKysgICAgbmV3cyo6TkVXUy1PUzo2KjoqKQorKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2Cisr CWV4aXQgOzsKKysgICAgUlszNF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6 KjoqIHwgUiowMDA6VU5JWF9TVjoqOiopCisrCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgorKwkg ICAgICAgIGVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZWxzZQorKwkgICAg ICAgIGVjaG8gbWlwcy11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisrCWZpCisrICAgICAg ICBleGl0IDs7CisrICAgIEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2Fy ZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KKysJZWNobyBwb3dlcnBjLWJlLWJlb3MKKysJZXhpdCA7 OworKyAgICBCZU1hYzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9u ZSwgUFBDIG9ubHkuCisrCWVjaG8gcG93ZXJwYy1hcHBsZS1iZW9zCisrCWV4aXQgOzsKKysgICAg QmVQQzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKysJ ZWNobyBpNTg2LXBjLWJlb3MKKysJZXhpdCA7OworKyAgICBTWC00OlNVUEVSLVVYOio6KikKKysJ ZWNobyBzeDQtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gt NTpTVVBFUi1VWDoqOiopCisrCWVjaG8gc3g1LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQor KwlleGl0IDs7CisrICAgIFNYLTY6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4Ni1uZWMtc3VwZXJ1 eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBTWC03OlNVUEVSLVVYOio6KikKKysJ ZWNobyBzeDctbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gt ODpTVVBFUi1VWDoqOiopCisrCWVjaG8gc3g4LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQor KwlleGl0IDs7CisrICAgIFNYLThSOlNVUEVSLVVYOio6KikKKysJZWNobyBzeDhyLW5lYy1zdXBl cnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFBvd2VyKjpSaGFwc29keToqOiop CisrCWVjaG8gcG93ZXJwYy1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7 OworKyAgICAqOlJoYXBzb2R5Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWFwcGxlLXJo YXBzb2R5JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6RGFyd2luOio6KikKKysJ VU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAgfHwgVU5BTUVfUFJPQ0VTU09SPXVua25vd24KKysJ Y2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCisrCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9 cG93ZXJwYyA7OworKwllc2FjCisrCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LWFwcGxlLWRhcndp biR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOnByb2NudG8qOio6KiB8ICo6UU5Y OlswMTIzNDU2Nzg5XSo6KikKKysJVU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAKKysJaWYgdGVz dCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2IjsgdGhlbgorKwkJVU5BTUVfUFJPQ0VTU09SPWkz ODYKKysJCVVOQU1FX01BQ0hJTkU9cGMKKysJZmkKKysJZWNobyAke1VOQU1FX1BST0NFU1NPUn0t JHtVTkFNRV9NQUNISU5FfS1udG8tcW54JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAg ICo6UU5YOio6NCopCisrCWVjaG8gaTM4Ni1wYy1xbngKKysJZXhpdCA7OworKyAgICBOU0UtPzpO T05TVE9QX0tFUk5FTDoqOiopCisrCWVjaG8gbnNlLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9 CisrCWV4aXQgOzsKKysgICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorKwllY2hvIG5zci10 YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6Tm9uU3RvcC1VWDoq OiopCisrCWVjaG8gbWlwcy1jb21wYXEtbm9uc3RvcHV4CisrCWV4aXQgOzsKKysgICAgQlMyMDAw OlBPU0lYKjoqOiopCisrCWVjaG8gYnMyMDAwLXNpZW1lbnMtc3lzdgorKwlleGl0IDs7CisrICAg IERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS0ke1VOQU1F X1NZU1RFTX0tJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UGxhbjk6KjoqKQor KwkjICJ1bmFtZSAtbSIgaXMgbm90IGNvbnNpc3RlbnQsIHNvIHVzZSAkY3B1dHlwZSBpbnN0ZWFk LiAzODYKKysJIyBpcyBjb252ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhl ciB4ODYKKysJIyBvcGVyYXRpbmcgc3lzdGVtcy4KKysJaWYgdGVzdCAiJGNwdXR5cGUiID0gIjM4 NiI7IHRoZW4KKysJICAgIFVOQU1FX01BQ0hJTkU9aTM4NgorKwllbHNlCisrCSAgICBVTkFNRV9N QUNISU5FPSIkY3B1dHlwZSIKKysJZmkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t cGxhbjkKKysJZXhpdCA7OworKyAgICAqOlRPUFMtMTA6KjoqKQorKwllY2hvIHBkcDEwLXVua25v d24tdG9wczEwCisrCWV4aXQgOzsKKysgICAgKjpURU5FWDoqOiopCisrCWVjaG8gcGRwMTAtdW5r bm93bi10ZW5leAorKwlleGl0IDs7CisrICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMt MjA6KjoqIHwgVFlQRTQ6VE9QUy0yMDoqOiopCisrCWVjaG8gcGRwMTAtZGVjLXRvcHMyMAorKwll eGl0IDs7CisrICAgIFhLTC0xOlRPUFMtMjA6KjoqIHwgVFlQRTU6VE9QUy0yMDoqOiopCisrCWVj aG8gcGRwMTAteGtsLXRvcHMyMAorKwlleGl0IDs7CisrICAgICo6VE9QUy0yMDoqOiopCisrCWVj aG8gcGRwMTAtdW5rbm93bi10b3BzMjAKKysJZXhpdCA7OworKyAgICAqOklUUzoqOiopCisrCWVj aG8gcGRwMTAtdW5rbm93bi1pdHMKKysJZXhpdCA7OworKyAgICBTRUk6KjoqOlNFSVVYKQorKyAg ICAgICAgZWNobyBtaXBzLXNlaS1zZWl1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAg ICAqOkRyYWdvbkZseToqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdv bmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKKysJZXhpdCA7 OworKyAgICAqOipWTVM6KjoqKQorKyAgICAJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9k ZXYvbnVsbGAKKysJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KKysJICAgIEEqKSBlY2hvIGFs cGhhLWRlYy12bXMgOyBleGl0IDs7CisrCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0 IDs7CisrCSAgICBWKikgZWNobyB2YXgtZGVjLXZtcyA7IGV4aXQgOzsKKysJZXNhYyA7OworKyAg ICAqOlhFTklYOio6U3lzVikKKysJZWNobyBpMzg2LXBjLXhlbml4CisrCWV4aXQgOzsKKysgICAg aSo4Njpza3lvczoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1za3lvc2BlY2hvICR7 VU5BTUVfUkVMRUFTRX1gIHwgc2VkIC1lICdzLyAuKiQvLycKKysJZXhpdCA7OworKyAgICBpKjg2 OnJkb3M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcmRvcworKwlleGl0IDs7Cisr ZXNhYworKworKyNlY2hvICcoTm8gdW5hbWUgY29tbWFuZCBvciB1bmFtZSBvdXRwdXQgbm90IHJl Y29nbml6ZWQuKScgMT4mMgorKyNlY2hvICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVN fToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIDE+JjIKKysKKytldmFsICRzZXRf Y2NfZm9yX2J1aWxkCisrY2F0ID4kZHVtbXkuYyA8PEVPRgorKyNpZmRlZiBfU0VRVUVOVF8KKysj IGluY2x1ZGUgPHN5cy90eXBlcy5oPgorKyMgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKysjZW5k aWYKKyttYWluICgpCisreworKyNpZiBkZWZpbmVkIChzb255KQorKyNpZiBkZWZpbmVkIChNSVBT RUIpCisrICAvKiBCRkQgd2FudHMgImJzZCIgaW5zdGVhZCBvZiAibmV3c29zIi4gIFBlcmhhcHMg QkZEIHNob3VsZCBiZSBjaGFuZ2VkLAorKyAgICAgSSBkb24ndCBrbm93Li4uLiAgKi8KKysgIHBy aW50ZiAoIm1pcHMtc29ueS1ic2RcbiIpOyBleGl0ICgwKTsKKysjZWxzZQorKyNpbmNsdWRlIDxz eXMvcGFyYW0uaD4KKysgIHByaW50ZiAoIm02OGstc29ueS1uZXdzb3Mlc1xuIiwKKysjaWZkZWYg TkVXU09TNAorKyAgICAgICAgICAiNCIKKysjZWxzZQorKwkgICIiCisrI2VuZGlmCisrICAgICAg ICAgKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9fYXJt KSAmJiBkZWZpbmVkIChfX2Fjb3JuKSAmJiBkZWZpbmVkIChfX3VuaXgpCisrICBwcmludGYgKCJh cm0tYWNvcm4tcmlzY2l4XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQg KGhwMzAwKSAmJiAhZGVmaW5lZCAoaHB1eCkKKysgIHByaW50ZiAoIm02OGstaHAtYnNkXG4iKTsg ZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKE5lWFQpCisrI2lmICFkZWZpbmVk IChfX0FSQ0hJVEVDVFVSRV9fKQorKyNkZWZpbmUgX19BUkNISVRFQ1RVUkVfXyAibTY4ayIKKysj ZW5kaWYKKysgIGludCB2ZXJzaW9uOworKyAgdmVyc2lvbj1gKGhvc3RpbmZvIHwgc2VkIC1uICdz Ly4qTmVYVCBNYWNoIFwoWzAtOV0qXCkuKi9cMS9wJykgMj4vZGV2L251bGxgOworKyAgaWYgKHZl cnNpb24gPCA0KQorKyAgICBwcmludGYgKCIlcy1uZXh0LW5leHRzdGVwJWRcbiIsIF9fQVJDSElU RUNUVVJFX18sIHZlcnNpb24pOworKyAgZWxzZQorKyAgICBwcmludGYgKCIlcy1uZXh0LW9wZW5z dGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNpb24pOworKyAgZXhpdCAoMCk7CisrI2Vu ZGlmCisrCisrI2lmIGRlZmluZWQgKE1VTFRJTUFYKSB8fCBkZWZpbmVkIChuMTYpCisrI2lmIGRl ZmluZWQgKFVNQVhWKQorKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLXN5c3ZcbiIpOyBleGl0ICgw KTsKKysjZWxzZQorKyNpZiBkZWZpbmVkIChDTVUpCisrICBwcmludGYgKCJuczMyay1lbmNvcmUt bWFjaFxuIik7IGV4aXQgKDApOworKyNlbHNlCisrICBwcmludGYgKCJuczMyay1lbmNvcmUtYnNk XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrI2VuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmlu ZWQgKF9fMzg2QlNEX18pCisrICBwcmludGYgKCJpMzg2LXBjLWJzZFxuIik7IGV4aXQgKDApOwor KyNlbmRpZgorKworKyNpZiBkZWZpbmVkIChzZXF1ZW50KQorKyNpZiBkZWZpbmVkIChpMzg2KQor KyAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisr I2lmIGRlZmluZWQgKG5zMzIwMDApCisrICBwcmludGYgKCJuczMyay1zZXF1ZW50LWR5bml4XG4i KTsgZXhpdCAoMCk7CisrI2VuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9TRVFVRU5U XykKKysgICAgc3RydWN0IHV0c25hbWUgdW47CisrCisrICAgIHVuYW1lKCZ1bik7CisrCisrICAg IGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMiIsIDIpID09IDApIHsKKysJcHJpbnRmICgiaTM4 Ni1zZXF1ZW50LXB0eDJcbiIpOyBleGl0ICgwKTsKKysgICAgfQorKyAgICBpZiAoc3RybmNtcCh1 bi52ZXJzaW9uLCAiVjEiLCAyKSA9PSAwKSB7IC8qIFhYWCBpcyBWMSBjb3JyZWN0PyAqLworKwlw cmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MVxuIik7IGV4aXQgKDApOworKyAgICB9CisrICAgIHBy aW50ZiAoImkzODYtc2VxdWVudC1wdHhcbiIpOyBleGl0ICgwKTsKKysKKysjZW5kaWYKKysKKysj aWYgZGVmaW5lZCAodmF4KQorKyMgaWYgIWRlZmluZWQgKHVsdHJpeCkKKysjICBpbmNsdWRlIDxz eXMvcGFyYW0uaD4KKysjICBpZiBkZWZpbmVkIChCU0QpCisrIyAgIGlmIEJTRCA9PSA0MworKyAg ICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zXG4iKTsgZXhpdCAoMCk7CisrIyAgIGVsc2UKKysj ICAgIGlmIEJTRCA9PSAxOTkwMDYKKysgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM3Jlbm9c biIpOyBleGl0ICgwKTsKKysjICAgIGVsc2UKKysgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxu Iik7IGV4aXQgKDApOworKyMgICAgZW5kaWYKKysjICAgZW5kaWYKKysjICBlbHNlCisrICAgIHBy aW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7CisrIyAgZW5kaWYKKysjIGVsc2UKKysg ICAgcHJpbnRmICgidmF4LWRlYy11bHRyaXhcbiIpOyBleGl0ICgwKTsKKysjIGVuZGlmCisrI2Vu ZGlmCisrCisrI2lmIGRlZmluZWQgKGFsbGlhbnQpICYmIGRlZmluZWQgKGk4NjApCisrICBwcmlu dGYgKCJpODYwLWFsbGlhbnQtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrICBleGl0 ICgxKTsKKyt9CisrRU9GCisrCisrJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4v ZGV2L251bGwgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKKysJeyBlY2hvICIkU1lTVEVNX05B TUUiOyBleGl0OyB9CisrCisrIyBBcG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVu dmlyb25tZW50LgorKworK3Rlc3QgLWQgL3Vzci9hcG9sbG8gJiYgeyBlY2hvICR7SVNQfS1hcG9s bG8tJHtTWVNUWVBFfTsgZXhpdDsgfQorKworKyMgQ29udmV4IHZlcnNpb25zIHRoYXQgcHJlZGF0 ZSB1bmFtZSBjYW4gdXNlIGdldHN5c2luZm8oMSkKKysKKytpZiBbIC14IC91c3IvY29udmV4L2dl dHN5c2luZm8gXQorK3RoZW4KKysgICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4K KysgICAgYzEqKQorKwllY2hvIGMxLWNvbnZleC1ic2QKKysJZXhpdCA7OworKyAgICBjMiopCisr CWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYworKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QK KysJZWxzZSBlY2hvIGMyLWNvbnZleC1ic2QKKysJZmkKKysJZXhpdCA7OworKyAgICBjMzQqKQor KwllY2hvIGMzNC1jb252ZXgtYnNkCisrCWV4aXQgOzsKKysgICAgYzM4KikKKysJZWNobyBjMzgt Y29udmV4LWJzZAorKwlleGl0IDs7CisrICAgIGM0KikKKysJZWNobyBjNC1jb252ZXgtYnNkCisr CWV4aXQgOzsKKysgICAgZXNhYworK2ZpCisrCisrY2F0ID4mMiA8PEVPRgorKyQwOiB1bmFibGUg dG8gZ3Vlc3Mgc3lzdGVtIHR5cGUKKysKKytUaGlzIHNjcmlwdCwgbGFzdCBtb2RpZmllZCAkdGlt ZXN0YW1wLCBoYXMgZmFpbGVkIHRvIHJlY29nbml6ZQorK3RoZSBvcGVyYXRpbmcgc3lzdGVtIHlv dSBhcmUgdXNpbmcuIEl0IGlzIGFkdmlzZWQgdGhhdCB5b3UKKytkb3dubG9hZCB0aGUgbW9zdCB1 cCB0byBkYXRlIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBzY3JpcHRzIGZyb20KKysKKysgIGh0dHA6 Ly9zYXZhbm5haC5nbnUub3JnL2NnaS1iaW4vdmlld2N2cy8qY2hlY2tvdXQqL2NvbmZpZy9jb25m aWcvY29uZmlnLmd1ZXNzCisrYW5kCisrICBodHRwOi8vc2F2YW5uYWguZ251Lm9yZy9jZ2ktYmlu L3ZpZXdjdnMvKmNoZWNrb3V0Ki9jb25maWcvY29uZmlnL2NvbmZpZy5zdWIKKysKKytJZiB0aGUg dmVyc2lvbiB5b3UgcnVuICgkMCkgaXMgYWxyZWFkeSB1cCB0byBkYXRlLCBwbGVhc2UKKytzZW5k IHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBi ZQorK3BlcnRpbmVudCB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gaW4gb3JkZXIgdG8gcHJv dmlkZSB0aGUgbmVlZGVkCisraW5mb3JtYXRpb24gdG8gaGFuZGxlIHlvdXIgc3lzdGVtLgorKwor K2NvbmZpZy5ndWVzcyB0aW1lc3RhbXAgPSAkdGltZXN0YW1wCisrCisrdW5hbWUgLW0gPSBgKHVu YW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXIgPSBgKHVuYW1l IC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXMgPSBgKHVuYW1lIC1z KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAy Pi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisrCisrL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91 c3IvYmluL3VuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jp bi91bmFtZSAtWCkgMj4vZGV2L251bGxgCisrCisraG9zdGluZm8gICAgICAgICAgICAgICA9IGAo aG9zdGluZm8pIDI+L2Rldi9udWxsYAorKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4v dW5pdmVyc2UpIDI+L2Rldi9udWxsYAorKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3Iv YmluL2FyY2ggLWspIDI+L2Rldi9udWxsYAorKy9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9i aW4vYXJjaCkgMj4vZGV2L251bGxgCisrL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9i aW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCisrL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vz ci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGxgCisrCisrVU5BTUVfTUFDSElORSA9ICR7 VU5BTUVfTUFDSElORX0KKytVTkFNRV9SRUxFQVNFID0gJHtVTkFNRV9SRUxFQVNFfQorK1VOQU1F X1NZU1RFTSAgPSAke1VOQU1FX1NZU1RFTX0KKytVTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJT SU9OfQorK0VPRgorKworK2V4aXQgMQorKworKyMgTG9jYWwgdmFyaWFibGVzOgorKyMgZXZhbDog KGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQorKyMgdGltZS1zdGFtcC1z dGFydDogInRpbWVzdGFtcD0nIgorKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJk IgorKyMgdGltZS1zdGFtcC1lbmQ6ICInIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9jb25maWcuc3ViIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmln LnN1YgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3ViCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9j b25maWcuc3ViCTIwMDktMDUtMDMgMDA6MjA6NDQuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDE2NTggQEAKKysjISAvYmluL3NoCisrIyBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91 dGluZSBzY3JpcHQuCisrIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwg MTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKKysjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAw NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOAorKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysKKyt0aW1lc3RhbXA9JzIwMDgtMDEtMTYnCisrCisrIyBUaGlzIGZpbGUgaXMgKGlu IHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCisrIyBUaGUgcHJlc2VuY2Ug b2YgYSBtYWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJl CisrIyBjYW4gaGFuZGxlIHRoYXQgbWFjaGluZS4gIEl0IGRvZXMgbm90IGltcGx5IEFMTCBHTlUg c29mdHdhcmUgY2FuLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07 IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKysjIEZvdW5kYXRpb24sIEluYy4s IDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0x MzAxLCBVU0EuCisrIworKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQorKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFy dCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisrIyBjb25maWd1cmF0aW9uIHNjcmlwdCBn ZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorKyMgdGhlIHNh bWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBw cm9ncmFtLgorKworKworKyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNA Z251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0CisrIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1h dHRlZCBDaGFuZ2VMb2cgZW50cnkuCisrIworKyMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRv IHZhbGlkYXRlIGFuZCBjYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCisrIyBTdXBw bHkgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIHR5cGUgYXMgYW4gYXJndW1lbnQuCisrIyBJ ZiBpdCBpcyBpbnZhbGlkLCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQg ZXhpdCB3aXRoIGNvZGUgMS4KKysjIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBj b25maWcgdHlwZSBvbiBzdGRvdXQgYW5kIHN1Y2NlZWQuCisrCisrIyBUaGlzIGZpbGUgaXMgc3Vw cG9zZWQgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKKysjIGFuZCByZWNvZ25p emUgYWxsIHRoZSBDUFUgdHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcworKyMgdGhhdCBh cmUgbWVhbmluZ2Z1bCB3aXRoICphbnkqIEdOVSBzb2Z0d2FyZS4KKysjIEVhY2ggcGFja2FnZSBp cyByZXNwb25zaWJsZSBmb3IgcmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZpZ3VyYXRpb25zCisr IyBpdCBkb2VzIG5vdCBzdXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlzdGlu Z3Vpc2gKKysjIGEgZmFpbHVyZSB0byBzdXBwb3J0IGEgdmFsaWQgY29uZmlndXJhdGlvbiBmcm9t IGEgbWVhbmluZ2xlc3MKKysjIGNvbmZpZ3VyYXRpb24uCisrCisrIyBUaGUgZ29hbCBvZiB0aGlz IGZpbGUgaXMgdG8gbWFwIGFsbCB0aGUgdmFyaW91cyB2YXJpYXRpb25zIG9mIGEgZ2l2ZW4KKysj IG1hY2hpbmUgc3BlY2lmaWNhdGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmljYXRpb24gaW4gdGhl IGZvcm06CisrIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQorKyMgb3Ig aW4gc29tZSBjYXNlcywgdGhlIG5ld2VyIGZvdXItcGFydCBmb3JtOgorKyMJQ1BVX1RZUEUtTUFO VUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNCisrIyBJdCBpcyB3cm9uZyB0byBlY2hv IGFueSBvdGhlciB0eXBlIG9mIHNwZWNpZmljYXRpb24uCisrCisrbWU9YGVjaG8gIiQwIiB8IHNl ZCAtZSAncywuKi8sLCdgCisrCisrdXNhZ2U9IlwKKytVc2FnZTogJDAgW09QVElPTl0gQ1BVLU1G Ui1PUFNZUworKyAgICAgICAkMCBbT1BUSU9OXSBBTElBUworKworK0Nhbm9uaWNhbGl6ZSBhIGNv bmZpZ3VyYXRpb24gbmFtZS4KKysKKytPcGVyYXRpb24gbW9kZXM6CisrICAtaCwgLS1oZWxwICAg ICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKKysgIC10LCAtLXRpbWUtc3RhbXAgICBw cmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKKysgIC12LCAtLXZlcnNp b24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CisrCisrUmVwb3J0IGJ1Z3Mg YW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKKysKKyt2ZXJzaW9uPSJc CisrR05VIGNvbmZpZy5zdWIgKCR0aW1lc3RhbXApCisrCisrQ29weXJpZ2h0IChDKSAxOTkyLCAx OTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAorKzIw MDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrCisrVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBm b3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KKyt3YXJyYW50eTsgbm90IGV2ZW4g Zm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4i CisrCisraGVscD0iCisrVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgor KworKyMgUGFyc2UgY29tbWFuZCBsaW5lCisrd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCisrICBj YXNlICQxIGluCisrICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCisrICAgICAgIGVj aG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OworKyAgICAtLXZlcnNpb24gfCAtdiApCisrICAgICAg IGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKKysgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKKysg ICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OworKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9u IHByb2Nlc3NpbmcKKysgICAgICAgc2hpZnQ7IGJyZWFrIDs7CisrICAgIC0gKQkjIFVzZSBzdGRp biBhcyBpbnB1dC4KKysgICAgICAgYnJlYWsgOzsKKysgICAgLSogKQorKyAgICAgICBlY2hvICIk bWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiCisrICAgICAgIGV4aXQgMSA7OworKworKyAgICAq bG9jYWwqKQorKyAgICAgICAjIEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9jYWwgbWFjaGluZSB0 eXBlcy4KKysgICAgICAgZWNobyAkMQorKyAgICAgICBleGl0IDs7CisrCisrICAgICogKQorKyAg ICAgICBicmVhayA7OworKyAgZXNhYworK2RvbmUKKysKKytjYXNlICQjIGluCisrIDApIGVjaG8g IiRtZTogbWlzc2luZyBhcmd1bWVudCRoZWxwIiA+JjIKKysgICAgZXhpdCAxOzsKKysgMSkgOzsK KysgKikgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCisrICAgIGV4aXQg MTs7CisrZXNhYworKworKyMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNP TVBBTlkgYW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55KS4KKysjIEhlcmUgd2UgbXVzdCByZWNv Z25pemUgYWxsIHRoZSB2YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgorK21heWJlX29zPWBl Y2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMi8nYAorK2Nhc2UgJG1h eWJlX29zIGluCisrICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxp bnV4LW5ld2xpYiogfCBsaW51eC11Y2xpYmMqIHwgXAorKyAgdWNsaW51eC11Y2xpYmMqIHwgdWNs aW51eC1nbnUqIHwga2ZyZWVic2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUq IHwgXAorKyAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQorKyAgICBvcz0t JG1heWJlX29zCisrICAgIGJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1c KFteLV0qLVteLV0qXCkkL1wxLydgCisrICAgIDs7CisrICAqKQorKyAgICBiYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkICdzLy1bXi1dKiQvLydgCisrICAgIGlmIFsgJGJhc2ljX21hY2hpbmUg IT0gJDEgXQorKyAgICB0aGVuIG9zPWBlY2hvICQxIHwgc2VkICdzLy4qLS8tLydgCisrICAgIGVs c2Ugb3M9OyBmaQorKyAgICA7OworK2VzYWMKKysKKysjIyMgTGV0J3MgcmVjb2duaXplIGNvbW1v biBtYWNoaW5lcyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28KKysjIyMgdGhhdCB0 aGluZ3MgbGlrZSBjb25maWcuc3ViIGRlY3N0YXRpb24tMzEwMCB3b3JrLiAgV2UgYWxzbworKyMj IyByZWNvZ25pemUgc29tZSBtYW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lz dGVtcywgc28gd2UKKysjIyMgY2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBi ZWxvdy4KKytjYXNlICRvcyBpbgorKwktc3VuKm9zKikKKysJCSMgUHJldmVudCBmb2xsb3dpbmcg Y2xhdXNlIGZyb20gaGFuZGxpbmcgdGhpcyBpbnZhbGlkIGlucHV0LgorKwkJOzsKKysJLWRlYyog fCAtbWlwcyogfCAtc2VxdWVudCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAtc2dpKiB8IC1zb255 KiB8IFwKKysJLWF0dCogfCAtNzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8 IC1zdW5bMjM0XSogfCBcCisrCS11bmljb20qIHwgLWlibSogfCAtbmV4dCB8IC1ocCB8IC1pc2kq IHwgLWFwb2xsbyB8IC1hbHRvcyogfCBcCisrCS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3Mg fCAtMzIqIHwgLTM2MDAqIHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCisrCS1jWzEyM10qIHwgLWNv bnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBc CisrCS1oYXJyaXMgfCAtZG9scGhpbiB8IC1oaWdobGV2ZWwgfCAtZ291bGQgfCAtY2JtIHwgLW5z IHwgLW1hc3Njb21wIHwgXAorKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5KQorKwkJ b3M9CisrCQliYXNpY19tYWNoaW5lPSQxCisrCQk7OworKwktc2ltIHwgLWNpc2NvIHwgLW9raSB8 IC13ZWMgfCAtd2luYm9uZCkKKysJCW9zPQorKwkJYmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysJ LXNjb3V0KQorKwkJOzsKKysJLXdycykKKysJCW9zPS12eHdvcmtzCisrCQliYXNpY19tYWNoaW5l PSQxCisrCQk7OworKwktY2hvcnVzb3MqKQorKwkJb3M9LWNob3J1c29zCisrCQliYXNpY19tYWNo aW5lPSQxCisrCQk7OworKyAJLWNob3J1c3JkYikKKysgCQlvcz0tY2hvcnVzcmRiCisrCQliYXNp Y19tYWNoaW5lPSQxCisrIAkJOzsKKysJLWhpdXgqKQorKwkJb3M9LWhpdXh3ZTIKKysJCTs7Cisr CS1zY282KQorKwkJb3M9LXNjbzV2NgorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAt ZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLXNjbzUpCisrCQlvcz0tc2NvMy4ydjUKKysJ CWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7 CisrCS1zY280KQorKwkJb3M9LXNjbzMuMnY0CisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwg c2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2NvMy4yLls0LTldKikKKysJCW9z PWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKKysJCWJhc2ljX21hY2hp bmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY28zLjJ2 WzQtOV0qKQorKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdl ci4KKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AK KysJCTs7CisrCS1zY281djYqKQorKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAz LjJ2NCBvciBuZXdlci4KKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYt LiovODYtcGMvJ2AKKysJCTs7CisrCS1zY28qKQorKwkJb3M9LXNjbzMuMnYyCisrCQliYXNpY19t YWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktdWRr KikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AK KysJCTs7CisrCS1pc2MpCisrCQlvcz0taXNjMi4yCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQx IHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktY2xpeCopCisrCQliYXNpY19t YWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAorKwkJOzsKKysJLWlzYyopCisrCQliYXNpY19tYWNo aW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktbHlueCop CisrCQlvcz0tbHlueG9zCisrCQk7OworKwktcHR4KikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8g JDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVudC8nYAorKwkJOzsKKysJLXdpbmRvd3NudCop CisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50LydgCisrCQk7Owor KwktcHNvcyopCisrCQlvcz0tcHNvcworKwkJOzsKKysJLW1pbnQgfCAtbWludFswLTldKikKKysJ CWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQorKwkJb3M9LW1pbnQKKysJCTs7CisrZXNhYworKwor KyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgor K2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKysJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBl cyB3aXRob3V0IGNvbXBhbnkgbmFtZS4KKysJIyBTb21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVz ZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KKysJMTc1MGEgfCA1ODAgXAorKwl8 IGEyOWsgXAorKwl8IGFscGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZb NzhdIHwgYWxwaGFwY2E1WzY3XSBcCisrCXwgYWxwaGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxw aGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCisrCXwgYW0zM18y LjAgXAorKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwg YXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKKysJfCBiZmluIFwKKysJfCBjNHggfCBjbGlw cGVyIFwKKysJfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAorKwl8IGZpZG8gfCBmcjMw IHwgZnJ2IFwKKysJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4w IHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAorKwl8IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQg XAorKwl8IGlwMmsgfCBpcTIwMDAgXAorKwl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAw IHwgbTY4ayB8IG04OGsgXAorKwl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1l cCBcCisrCXwgbWlwcyB8IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCisrCXwg bWlwczE2IFwKKysJfCBtaXBzNjQgfCBtaXBzNjRlbCBcCisrCXwgbWlwczY0dnIgfCBtaXBzNjR2 cmVsIFwKKysJfCBtaXBzNjRvcmlvbiB8IG1pcHM2NG9yaW9uZWwgXAorKwl8IG1pcHM2NHZyNDEw MCB8IG1pcHM2NHZyNDEwMGVsIFwKKysJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBc CisrCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwgXAorKwl8IG1pcHM2NHZyNTkwMCB8 IG1pcHM2NHZyNTkwMGVsIFwKKysJfCBtaXBzaXNhMzIgfCBtaXBzaXNhMzJlbCBcCisrCXwgbWlw c2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKKysJfCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBc CisrCXwgbWlwc2lzYTY0cjIgfCBtaXBzaXNhNjRyMmVsIFwKKysJfCBtaXBzaXNhNjRzYjEgfCBt aXBzaXNhNjRzYjFlbCBcCisrCXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwK KysJfCBtaXBzdHgzOSB8IG1pcHN0eDM5ZWwgXAorKwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKKysJ fCBtdCBcCisrCXwgbXNwNDMwIFwKKysJfCBuaW9zIHwgbmlvczIgXAorKwl8IG5zMTZrIHwgbnMz MmsgXAorKwl8IG9yMzIgXAorKwl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCisrCXwgcG93 ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJwY2xlIHwgcHBjYmUgXAorKwl8 IHB5cmFtaWQgXAorKwl8IHNjb3JlIFwKKysJfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNo WzIzXWUgfCBzaFszNF1lYiB8IHNoZWIgfCBzaGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNl bGUgXAorKwl8IHNoNjQgfCBzaDY0bGUgXAorKwl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjNjRi IHwgc3BhcmM2NHYgfCBzcGFyYzg2eCB8IHNwYXJjbGV0IHwgc3BhcmNsaXRlIFwKKysJfCBzcGFy Y3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYgXAorKwl8IHNwdSB8IHN0cm9uZ2Fy bSBcCisrCXwgdGFob2UgfCB0aHVtYiB8IHRpYzR4IHwgdGljODAgfCB0cm9uIFwKKysJfCB2ODUw IHwgdjg1MGUgXAorKwl8IHdlMzJrIFwKKysJfCB4ODYgfCB4YzE2eCB8IHhzY2FsZSB8IHhzY2Fs ZWVbYmxdIHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKKysJfCB6OGspCisrCQliYXNpY19tYWNoaW5l PSRiYXNpY19tYWNoaW5lLXVua25vd24KKysJCTs7CisrCW02ODExIHwgbTY4aGMxMSB8IG02ODEy IHwgbTY4aGMxMikKKysJCSMgTW90b3JvbGEgNjhIQzExLzEyLgorKwkJYmFzaWNfbWFjaGluZT0k YmFzaWNfbWFjaGluZS11bmtub3duCisrCQlvcz0tbm9uZQorKwkJOzsKKysJbTg4MTEwIHwgbTY4 MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUyMDAgfCB2NzAgfCB3NjUgfCB6OGspCisr CQk7OworKwltczEpCisrCQliYXNpY19tYWNoaW5lPW10LXVua25vd24KKysJCTs7CisrCisrCSMg V2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24nCisrCSMgYmVjYXVzZSAoMSkgdGhhdCdz IHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAorKwkjICgyKSB0aGUgd29yZCAidW5rbm93biIg dGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMuCisrCWkqODYgfCB4ODZfNjQpCisrCSAg YmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYworKwkgIDs7CisrCSMgT2JqZWN0IGlmIG1v cmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCisrCSotKi0qKQorKwkJZWNobyBJbnZhbGlk IGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVj b2duaXplZCAxPiYyCisrCQlleGl0IDEKKysJCTs7CisrCSMgUmVjb2duaXplIHRoZSBiYXNpYyBD UFUgdHlwZXMgd2l0aCBjb21wYW55IG5hbWUuCisrCTU4MC0qIFwKKysJfCBhMjlrLSogXAorKwl8 IGFscGhhLSogfCBhbHBoYWV2WzQtOF0tKiB8IGFscGhhZXY1Ni0qIHwgYWxwaGFldjZbNzhdLSog XAorKwl8IGFscGhhNjQtKiB8IGFscGhhNjRldls0LThdLSogfCBhbHBoYTY0ZXY1Ni0qIHwgYWxw aGE2NGV2Nls3OF0tKiBcCisrCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVbNjddLSog fCBhcmMtKiBcCisrCXwgYXJtLSogIHwgYXJtYmUtKiB8IGFybWxlLSogfCBhcm1lYi0qIHwgYXJt diotKiBcCisrCXwgYXZyLSogfCBhdnIzMi0qIFwKKysJfCBiZmluLSogfCBiczIwMDAtKiBcCisr CXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBjNTV4LSog fCBjNngtKiBcCisrCXwgY2xpcHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKKysJfCBkMTB2 LSogfCBkMzB2LSogfCBkbHgtKiBcCisrCXwgZWx4c2ktKiBcCisrCXwgZjMwWzAxXS0qIHwgZjcw MC0qIHwgZmlkby0qIHwgZnIzMC0qIHwgZnJ2LSogfCBmeDgwLSogXAorKwl8IGg4MzAwLSogfCBo ODUwMC0qIFwKKysJfCBocHBhLSogfCBocHBhMS5bMDFdLSogfCBocHBhMi4wLSogfCBocHBhMi4w W253XS0qIHwgaHBwYTY0LSogXAorKwl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQt KiBcCisrCXwgaXAyay0qIHwgaXEyMDAwLSogXAorKwl8IG0zMmMtKiB8IG0zMnItKiB8IG0zMnJs ZS0qIFwKKysJfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8y LSogfCBtNjhrLSogXAorKwl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiBc CisrCXwgbWlwcy0qIHwgbWlwc2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSog XAorKwl8IG1pcHMxNi0qIFwKKysJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAorKwl8IG1pcHM2 NHZyLSogfCBtaXBzNjR2cmVsLSogXAorKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVs LSogXAorKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCisrCXwgbWlwczY0 dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKKysJfCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2 NHZyNTAwMGVsLSogXAorKwl8IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBcCisr CXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwKKysJfCBtaXBzaXNhMzJyMi0qIHwgbWlw c2lzYTMycjJlbC0qIFwKKysJfCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAorKwl8IG1p cHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAorKwl8IG1pcHNpc2E2NHNiMS0qIHwgbWlw c2lzYTY0c2IxZWwtKiBcCisrCXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwt KiBcCisrCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBcCisrCXwgbW1peC0qIFwKKysJfCBt dC0qIFwKKysJfCBtc3A0MzAtKiBcCisrCXwgbmlvcy0qIHwgbmlvczItKiBcCisrCXwgbm9uZS0q IHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCisrCXwgb3Jpb24tKiBcCisrCXwgcGRwMTAt KiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCisrCXwgcG93ZXJw Yy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNiZS0q IFwKKysJfCBweXJhbWlkLSogXAorKwl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKKysJfCBzaC0qIHwg c2hbMTIzNF0tKiB8IHNoWzI0XWEtKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSog fCBzaGJlLSogXAorKwl8IHNobGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0q IHwgc2g2NGxlLSogXAorKwl8IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3Bh cmM2NHYtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0qIFwKKysJfCBzcGFyY2xpdGUtKiBcCisr CXwgc3BhcmN2OC0qIHwgc3BhcmN2OS0qIHwgc3BhcmN2OWItKiB8IHNwYXJjdjl2LSogfCBzdHJv bmdhcm0tKiB8IHN2MS0qIHwgc3g/LSogXAorKwl8IHRhaG9lLSogfCB0aHVtYi0qIFwKKysJfCB0 aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAt KiBcCisrCXwgdHJvbi0qIFwKKysJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAorKwl8IHdl MzJrLSogXAorKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2Nh bGUtKiB8IHhzY2FsZWVbYmxdLSogXAorKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNhKi0qIFwKKysJ fCB5bXAtKiBcCisrCXwgejhrLSopCisrCQk7OworKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BV IHR5cGVzIHdpdGhvdXQgY29tcGFueSBuYW1lLCB3aXRoIGdsb2IgbWF0Y2guCisrCXh0ZW5zYSop CisrCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKysJCTs7CisrCSMgUmVj b2duaXplIHRoZSB2YXJpb3VzIG1hY2hpbmUgbmFtZXMgYW5kIGFsaWFzZXMgd2hpY2ggc3RhbmQK KysJIyBmb3IgYSBDUFUgdHlwZSBhbmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBhbiBP Uy4KKysJMzg2YnNkKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKysJCW9zPS1ic2QK KysJCTs7CisrCTNiMSB8IDczMDAgfCA3MzAwLWF0dCB8IGF0dC03MzAwIHwgcGM3MzAwIHwgc2Fm YXJpIHwgdW5peHBjKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtYXR0CisrCQk7OworKwkzYiop CisrCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAorKwkJOzsKKysJYTI5a2hpZikKKysJCWJhc2lj X21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJCTs7CisrICAgIAlhYmFjdXMpCisrCQli YXNpY19tYWNoaW5lPWFiYWN1cy11bmtub3duCisrCQk7OworKwlhZG9iZTY4aykKKysJCWJhc2lj X21hY2hpbmU9bTY4MDEwLWFkb2JlCisrCQlvcz0tc2NvdXQKKysJCTs7CisrCWFsbGlhbnQgfCBm eDgwKQorKwkJYmFzaWNfbWFjaGluZT1meDgwLWFsbGlhbnQKKysJCTs7CisrCWFsdG9zIHwgYWx0 b3MzMDY4KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFsdG9zCisrCQk7OworKwlhbTI5aykKKysJ CWJhc2ljX21hY2hpbmU9YTI5ay1ub25lCisrCQlvcz0tYnNkCisrCQk7OworKwlhbWQ2NCkKKysJ CWJhc2ljX21hY2hpbmU9eDg2XzY0LXBjCisrCQk7OworKwlhbWQ2NC0qKQorKwkJYmFzaWNfbWFj aGluZT14ODZfNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJ CTs7CisrCWFtZGFobCkKKysJCWJhc2ljX21hY2hpbmU9NTgwLWFtZGFobAorKwkJb3M9LXN5c3YK KysJCTs7CisrCWFtaWdhIHwgYW1pZ2EtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3du CisrCQk7OworKwlhbWlnYW9zIHwgYW1pZ2Fkb3MpCisrCQliYXNpY19tYWNoaW5lPW02OGstdW5r bm93bgorKwkJb3M9LWFtaWdhb3MKKysJCTs7CisrCWFtaWdhdW5peCB8IGFtaXgpCisrCQliYXNp Y19tYWNoaW5lPW02OGstdW5rbm93bgorKwkJb3M9LXN5c3Y0CisrCQk7OworKwlhcG9sbG82OCkK KysJCWJhc2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KKysJCW9zPS1zeXN2CisrCQk7OworKwlhcG9s bG82OGJzZCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KKysJCW9zPS1ic2QKKysJCTs7 CisrCWF1eCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQorKwkJb3M9LWF1eAorKwkJOzsK KysJYmFsYW5jZSkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstc2VxdWVudAorKwkJb3M9LWR5bml4 CisrCQk7OworKwlibGFja2ZpbikKKysJCWJhc2ljX21hY2hpbmU9YmZpbi11bmtub3duCisrCQlv cz0tbGludXgKKysJCTs7CisrCWJsYWNrZmluLSopCisrCQliYXNpY19tYWNoaW5lPWJmaW4tYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCW9zPS1saW51eAorKwkJ OzsKKysJYzkwKQorKwkJYmFzaWNfbWFjaGluZT1jOTAtY3JheQorKwkJb3M9LXVuaWNvcworKwkJ OzsKKysJY29udmV4LWMxKQorKwkJYmFzaWNfbWFjaGluZT1jMS1jb252ZXgKKysJCW9zPS1ic2QK KysJCTs7CisrCWNvbnZleC1jMikKKysJCWJhc2ljX21hY2hpbmU9YzItY29udmV4CisrCQlvcz0t YnNkCisrCQk7OworKwljb252ZXgtYzMyKQorKwkJYmFzaWNfbWFjaGluZT1jMzItY29udmV4Cisr CQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzM0KQorKwkJYmFzaWNfbWFjaGluZT1jMzQtY29u dmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzM4KQorKwkJYmFzaWNfbWFjaGluZT1j MzgtY29udmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljcmF5IHwgajkwKQorKwkJYmFzaWNfbWFj aGluZT1qOTAtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJY3JheW52KQorKwkJYmFzaWNf bWFjaGluZT1jcmF5bnYtY3JheQorKwkJb3M9LXVuaWNvc21wCisrCQk7OworKwljcjE2KQorKwkJ YmFzaWNfbWFjaGluZT1jcjE2LXVua25vd24KKysJCW9zPS1lbGYKKysJCTs7CisrCWNyZHMgfCB1 bm9zKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWNyZHMKKysJCTs7CisrCWNyaXN2MzIgfCBjcmlz djMyLSogfCBldHJheGZzKikKKysJCWJhc2ljX21hY2hpbmU9Y3Jpc3YzMi1heGlzCisrCQk7Owor KwljcmlzIHwgY3Jpcy0qIHwgZXRyYXgqKQorKwkJYmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKKysJ CTs7CisrCWNyeCkKKysJCWJhc2ljX21hY2hpbmU9Y3J4LXVua25vd24KKysJCW9zPS1lbGYKKysJ CTs7CisrCWRhMzAgfCBkYTMwLSopCisrCQliYXNpY19tYWNoaW5lPW02OGstZGEzMAorKwkJOzsK KysJZGVjc3RhdGlvbiB8IGRlY3N0YXRpb24tMzEwMCB8IHBtYXggfCBwbWF4LSogfCBwbWluIHwg ZGVjMzEwMCB8IGRlY3N0YXRuKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLWRlYworKwkJOzsKKysJ ZGVjc3lzdGVtMTAqIHwgZGVjMTAqKQorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKKysJCW9z PS10b3BzMTAKKysJCTs7CisrCWRlY3N5c3RlbTIwKiB8IGRlYzIwKikKKysJCWJhc2ljX21hY2hp bmU9cGRwMTAtZGVjCisrCQlvcz0tdG9wczIwCisrCQk7OworKwlkZWx0YSB8IDMzMDAgfCBtb3Rv cm9sYS0zMzAwIHwgbW90b3JvbGEtZGVsdGEgXAorKwkgICAgICB8IDMzMDAtbW90b3JvbGEgfCBk ZWx0YS1tb3Rvcm9sYSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1tb3Rvcm9sYQorKwkJOzsKKysJ ZGVsdGE4OCkKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1tb3Rvcm9sYQorKwkJb3M9LXN5c3YzCisr CQk7OworKwlkamdwcCkKKysJCWJhc2ljX21hY2hpbmU9aTU4Ni1wYworKwkJb3M9LW1zZG9zZGpn cHAKKysJCTs7CisrCWRweDIwIHwgZHB4MjAtKikKKysJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1 bGwKKysJCW9zPS1ib3N4CisrCQk7OworKwlkcHgyKiB8IGRweDIqLWJ1bGwpCisrCQliYXNpY19t YWNoaW5lPW02OGstYnVsbAorKwkJb3M9LXN5c3YzCisrCQk7OworKwllYm1vbjI5aykKKysJCWJh c2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS1lYm1vbgorKwkJOzsKKysJZWx4c2kpCisrCQli YXNpY19tYWNoaW5lPWVseHNpLWVseHNpCisrCQlvcz0tYnNkCisrCQk7OworKwllbmNvcmUgfCB1 bWF4IHwgbW1heCkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstZW5jb3JlCisrCQk7OworKwllczE4 MDAgfCBPU0U2OGsgfCBvc2U2OGsgfCBvc2UgfCBPU0UpCisrCQliYXNpY19tYWNoaW5lPW02OGst ZXJpY3Nzb24KKysJCW9zPS1vc2UKKysJCTs7CisrCWZ4MjgwMCkKKysJCWJhc2ljX21hY2hpbmU9 aTg2MC1hbGxpYW50CisrCQk7OworKwlnZW5peCkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstbnMK KysJCTs7CisrCWdtaWNybykKKysJCWJhc2ljX21hY2hpbmU9dHJvbi1nbWljcm8KKysJCW9zPS1z eXN2CisrCQk7OworKwlnbzMyKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisrCQlvcz0tZ28z MgorKwkJOzsKKysJaDMwNTByKiB8IGhpdXgqKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhp dGFjaGkKKysJCW9zPS1oaXV4d2UyCisrCQk7OworKwloODMwMGhtcykKKysJCWJhc2ljX21hY2hp bmU9aDgzMDAtaGl0YWNoaQorKwkJb3M9LWhtcworKwkJOzsKKysJaDgzMDB4cmF5KQorKwkJYmFz aWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCisrCQlvcz0teHJheQorKwkJOzsKKysJaDg1MDBobXMp CisrCQliYXNpY19tYWNoaW5lPWg4NTAwLWhpdGFjaGkKKysJCW9zPS1obXMKKysJCTs7CisrCWhh cnJpcykKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1oYXJyaXMKKysJCW9zPS1zeXN2MworKwkJOzsK KysJaHAzMDAtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorKwkJOzsKKysJaHAzMDBic2Qp CisrCQliYXNpY19tYWNoaW5lPW02OGstaHAKKysJCW9zPS1ic2QKKysJCTs7CisrCWhwMzAwaHB1 eCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorKwkJb3M9LWhwdXgKKysJCTs7CisrCWhwM2s5 WzAtOV1bMC05XSB8IGhwOVswLTldWzAtOV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAK KysJCTs7CisrCWhwOWsyWzAtOV1bMC05XSB8IGhwOWszMVswLTldKQorKwkJYmFzaWNfbWFjaGlu ZT1tNjgwMDAtaHAKKysJCTs7CisrCWhwOWszWzItOV1bMC05XSkKKysJCWJhc2ljX21hY2hpbmU9 bTY4ay1ocAorKwkJOzsKKysJaHA5azZbMC05XVswLTldIHwgaHA2WzAtOV1bMC05XSkKKysJCWJh c2ljX21hY2hpbmU9aHBwYTEuMC1ocAorKwkJOzsKKysJaHA5azdbMC03OV1bMC05XSB8IGhwN1sw LTc5XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlocDlrNzhb MC05XSB8IGhwNzhbMC05XSkKKysJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCisrCQliYXNp Y19tYWNoaW5lPWhwcGExLjEtaHAKKysJCTs7CisrCWhwOWs4WzY3XTEgfCBocDhbNjddMSB8IGhw OWs4MFsyNF0gfCBocDgwWzI0XSB8IGhwOWs4Wzc4XTkgfCBocDhbNzhdOSB8IGhwOWs4OTMgfCBo cDg5MykKKysJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCisrCQliYXNpY19tYWNoaW5lPWhw cGExLjEtaHAKKysJCTs7CisrCWhwOWs4WzAtOV1bMTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQor KwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlocDlrOFswLTldWzAtOV0gfCBo cDhbMC05XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisrCQk7OworKwlocHBh LW5leHQpCisrCQlvcz0tbmV4dHN0ZXAzCisrCQk7OworKwlocHBhb3NmKQorKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLWhwCisrCQlvcz0tb3NmCisrCQk7OworKwlocHBybykKKysJCWJhc2ljX21h Y2hpbmU9aHBwYTEuMS1ocAorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJaTM3MC1pYm0qIHwgaWJt KikKKysJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KKysJCTs7CisrIyBJJ20gbm90IHN1cmUgd2hh dCAiU3lzdjMyIiBtZWFucy4gIFNob3VsZCB0aGlzIGJlIHN5c3YzLjI/CisrCWkqODZ2MzIpCisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9z PS1zeXN2MzIKKysJCTs7CisrCWkqODZ2NCopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwg c2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJaSo4NnYpCisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9z PS1zeXN2CisrCQk7OworKwlpKjg2c29sMikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBz ZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorKwkJb3M9LXNvbGFyaXMyCisrCQk7OworKwlpMzg2bWFj aCkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1tYWNoCisrCQlvcz0tbWFjaAorKwkJOzsKKysJaTM4 Ni12c3RhIHwgdnN0YSkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCisrCQlvcz0tdnN0 YQorKwkJOzsKKysJaXJpcyB8IGlyaXM0ZCkKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1zZ2kKKysJ CWNhc2UgJG9zIGluCisrCQkgICAgLWlyaXgqKQorKwkJCTs7CisrCQkgICAgKikKKysJCQlvcz0t aXJpeDQKKysJCQk7OworKwkJZXNhYworKwkJOzsKKysJaXNpNjggfCBpc2kpCisrCQliYXNpY19t YWNoaW5lPW02OGstaXNpCisrCQlvcz0tc3lzdgorKwkJOzsKKysJbTY4a25vbW11KQorKwkJYmFz aWNfbWFjaGluZT1tNjhrLXVua25vd24KKysJCW9zPS1saW51eAorKwkJOzsKKysJbTY4a25vbW11 LSopCisrCQliYXNpY19tYWNoaW5lPW02OGstYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3Mv XlteLV0qLS8vJ2AKKysJCW9zPS1saW51eAorKwkJOzsKKysJbTg4ay1vbXJvbiopCisrCQliYXNp Y19tYWNoaW5lPW04OGstb21yb24KKysJCTs7CisrCW1hZ251bSB8IG0zMjMwKQorKwkJYmFzaWNf bWFjaGluZT1taXBzLW1pcHMKKysJCW9zPS1zeXN2CisrCQk7OworKwltZXJsaW4pCisrCQliYXNp Y19tYWNoaW5lPW5zMzJrLXV0ZWsKKysJCW9zPS1zeXN2CisrCQk7OworKwltaW5ndzMyKQorKwkJ YmFzaWNfbWFjaGluZT1pMzg2LXBjCisrCQlvcz0tbWluZ3czMgorKwkJOzsKKysJbWluZ3czMmNl KQorKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgorKwkJb3M9LW1pbmd3MzJjZQorKwkJOzsK KysJbWluaWZyYW1lKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAorKwkJOzsK KysJKm1pbnQgfCAtbWludFswLTldKiB8ICpNaU5UIHwgKk1pTlRbMC05XSopCisrCQliYXNpY19t YWNoaW5lPW02OGstYXRhcmkKKysJCW9zPS1taW50CisrCQk7OworKwltaXBzMyotKikKKysJCWJh c2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0 LydgCisrCQk7OworKwltaXBzMyopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNo aW5lIHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYC11bmtub3duCisrCQk7OworKwltb25pdG9y KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXJvbTY4aworKwkJb3M9LWNvZmYKKysJCTs7CisrCW1v cnBob3MpCisrCQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgorKwkJb3M9LW1vcnBob3MK KysJCTs7CisrCW1zZG9zKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisrCQlvcz0tbXNkb3MK KysJCTs7CisrCW1zMS0qKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8 IHNlZCAtZSAncy9tczEtL210LS8nYAorKwkJOzsKKysJbXZzKQorKwkJYmFzaWNfbWFjaGluZT1p MzcwLWlibQorKwkJb3M9LW12cworKwkJOzsKKysJbmNyMzAwMCkKKysJCWJhc2ljX21hY2hpbmU9 aTQ4Ni1uY3IKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJbmV0YnNkMzg2KQorKwkJYmFzaWNfbWFj aGluZT1pMzg2LXVua25vd24KKysJCW9zPS1uZXRic2QKKysJCTs7CisrCW5ldHdpbmRlcikKKysJ CWJhc2ljX21hY2hpbmU9YXJtdjRsLXJlYmVsCisrCQlvcz0tbGludXgKKysJCTs7CisrCW5ld3Mg fCBuZXdzNzAwIHwgbmV3czgwMCB8IG5ld3M5MDApCisrCQliYXNpY19tYWNoaW5lPW02OGstc29u eQorKwkJb3M9LW5ld3NvcworKwkJOzsKKysJbmV3czEwMDApCisrCQliYXNpY19tYWNoaW5lPW02 ODAzMC1zb255CisrCQlvcz0tbmV3c29zCisrCQk7OworKwluZXdzLTM2MDAgfCByaXNjLW5ld3Mp CisrCQliYXNpY19tYWNoaW5lPW1pcHMtc29ueQorKwkJb3M9LW5ld3NvcworKwkJOzsKKysJbmVj djcwKQorKwkJYmFzaWNfbWFjaGluZT12NzAtbmVjCisrCQlvcz0tc3lzdgorKwkJOzsKKysJbmV4 dCB8IG0qLW5leHQgKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5leHQKKysJCWNhc2UgJG9zIGlu CisrCQkgICAgLW5leHRzdGVwKiApCisrCQkJOzsKKysJCSAgICAtbnMyKikKKysJCSAgICAgIG9z PS1uZXh0c3RlcDIKKysJCQk7OworKwkJICAgICopCisrCQkgICAgICBvcz0tbmV4dHN0ZXAzCisr CQkJOzsKKysJCWVzYWMKKysJCTs7CisrCW5oMzAwMCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1o YXJyaXMKKysJCW9zPS1jeHV4CisrCQk7OworKwluaFs0NV0wMDApCisrCQliYXNpY19tYWNoaW5l PW04OGstaGFycmlzCisrCQlvcz0tY3h1eAorKwkJOzsKKysJbmluZHk5NjApCisrCQliYXNpY19t YWNoaW5lPWk5NjAtaW50ZWwKKysJCW9zPS1uaW5keQorKwkJOzsKKysJbW9uOTYwKQorKwkJYmFz aWNfbWFjaGluZT1pOTYwLWludGVsCisrCQlvcz0tbW9uOTYwCisrCQk7OworKwlub25zdG9wdXgp CisrCQliYXNpY19tYWNoaW5lPW1pcHMtY29tcGFxCisrCQlvcz0tbm9uc3RvcHV4CisrCQk7Owor KwlucDEpCisrCQliYXNpY19tYWNoaW5lPW5wMS1nb3VsZAorKwkJOzsKKysJbnNyLXRhbmRlbSkK KysJCWJhc2ljX21hY2hpbmU9bnNyLXRhbmRlbQorKwkJOzsKKysJb3A1MG4tKiB8IG9wNjBjLSop CisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisrCQlvcz0tcHJvZWxmCisrCQk7OworKwlv cGVucmlzYyB8IG9wZW5yaXNjLSopCisrCQliYXNpY19tYWNoaW5lPW9yMzItdW5rbm93bgorKwkJ OzsKKysJb3M0MDApCisrCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCisrCQlvcz0tb3M0MDAK KysJCTs7CisrCU9TRTY4MDAwIHwgb3NlNjgwMDApCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1l cmljc3NvbgorKwkJb3M9LW9zZQorKwkJOzsKKysJb3M2OGspCisrCQliYXNpY19tYWNoaW5lPW02 OGstbm9uZQorKwkJb3M9LW9zNjhrCisrCQk7OworKwlwYS1oaXRhY2hpKQorKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLWhpdGFjaGkKKysJCW9zPS1oaXV4d2UyCisrCQk7OworKwlwYXJhZ29uKQor KwkJYmFzaWNfbWFjaGluZT1pODYwLWludGVsCisrCQlvcz0tb3NmCisrCQk7OworKwlwYXJpc2Mp CisrCQliYXNpY19tYWNoaW5lPWhwcGEtdW5rbm93bgorKwkJb3M9LWxpbnV4CisrCQk7OworKwlw YXJpc2MtKikKKysJCWJhc2ljX21hY2hpbmU9aHBwYS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNl ZCAncy9eW14tXSotLy8nYAorKwkJb3M9LWxpbnV4CisrCQk7OworKwlwYmQpCisrCQliYXNpY19t YWNoaW5lPXNwYXJjLXR0aQorKwkJOzsKKysJcGJiKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0 aQorKwkJOzsKKysJcGM1MzIgfCBwYzUzMi0qKQorKwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUz MgorKwkJOzsKKysJcGM5OCkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJOzsKKysJcGM5 OC0qKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdz L15bXi1dKi0vLydgCisrCQk7OworKwlwZW50aXVtIHwgcDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwg dmlhYzMpCisrCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKKysJCTs7CisrCXBlbnRpdW1wcm8gfCBw NiB8IDZ4ODYgfCBhdGhsb24gfCBhdGhsb25fKikKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwor KwkJOzsKKysJcGVudGl1bWlpIHwgcGVudGl1bTIgfCBwZW50aXVtaWlpIHwgcGVudGl1bTMpCisr CQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKysJCTs7CisrCXBlbnRpdW00KQorKwkJYmFzaWNfbWFj aGluZT1pNzg2LXBjCisrCQk7OworKwlwZW50aXVtLSogfCBwNS0qIHwgazUtKiB8IGs2LSogfCBu ZXhnZW4tKiB8IHZpYWMzLSopCisrCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21h Y2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW1wcm8tKiB8IHA2LSog fCA2eDg2LSogfCBhdGhsb24tKikKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNf bWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcGVudGl1bWlpLSogfCBwZW50 aXVtMi0qIHwgcGVudGl1bWlpaS0qIHwgcGVudGl1bTMtKikKKysJCWJhc2ljX21hY2hpbmU9aTY4 Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcGVu dGl1bTQtKikKKysJCWJhc2ljX21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNl ZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcG4pCisrCQliYXNpY19tYWNoaW5lPXBuLWdvdWxk CisrCQk7OworKwlwb3dlcikJYmFzaWNfbWFjaGluZT1wb3dlci1pYm0KKysJCTs7CisrCXBwYykJ YmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KKysJCTs7CisrCXBwYy0qKQliYXNpY19tYWNo aW5lPXBvd2VycGMtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJ CTs7CisrCXBwY2xlIHwgcG93ZXJwY2xpdHRsZSB8IHBwYy1sZSB8IHBvd2VycGMtbGl0dGxlKQor KwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtdW5rbm93bgorKwkJOzsKKysJcHBjbGUtKiB8IHBv d2VycGNsaXR0bGUtKikKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19t YWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwcGM2NCkJYmFzaWNfbWFjaGlu ZT1wb3dlcnBjNjQtdW5rbm93bgorKwkJOzsKKysJcHBjNjQtKikgYmFzaWNfbWFjaGluZT1wb3dl cnBjNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7Cisr CXBwYzY0bGUgfCBwb3dlcnBjNjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUp CisrCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLXVua25vd24KKysJCTs7CisrCXBwYzY0bGUt KiB8IHBvd2VycGM2NGxpdHRsZS0qKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS1gZWNo byAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcHMyKQorKwkJ YmFzaWNfbWFjaGluZT1pMzg2LWlibQorKwkJOzsKKysJcHczMikKKysJCWJhc2ljX21hY2hpbmU9 aTU4Ni11bmtub3duCisrCQlvcz0tcHczMgorKwkJOzsKKysJcmRvcykKKysJCWJhc2ljX21hY2hp bmU9aTM4Ni1wYworKwkJb3M9LXJkb3MKKysJCTs7CisrCXJvbTY4aykKKysJCWJhc2ljX21hY2hp bmU9bTY4ay1yb202OGsKKysJCW9zPS1jb2ZmCisrCQk7OworKwlybVs0Nl0wMCkKKysJCWJhc2lj X21hY2hpbmU9bWlwcy1zaWVtZW5zCisrCQk7OworKwlydHBjIHwgcnRwYy0qKQorKwkJYmFzaWNf bWFjaGluZT1yb21wLWlibQorKwkJOzsKKysJczM5MCB8IHMzOTAtKikKKysJCWJhc2ljX21hY2hp bmU9czM5MC1pYm0KKysJCTs7CisrCXMzOTB4IHwgczM5MHgtKikKKysJCWJhc2ljX21hY2hpbmU9 czM5MHgtaWJtCisrCQk7OworKwlzYTI5MjAwKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAor KwkJb3M9LXVkaQorKwkJOzsKKysJc2IxKQorKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEt dW5rbm93bgorKwkJOzsKKysJc2IxZWwpCisrCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVs LXVua25vd24KKysJCTs7CisrCXNkZSkKKysJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTMyLXNkZQor KwkJb3M9LWVsZgorKwkJOzsKKysJc2VpKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQorKwkJ b3M9LXNlaXV4CisrCQk7OworKwlzZXF1ZW50KQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVl bnQKKysJCTs7CisrCXNoKQorKwkJYmFzaWNfbWFjaGluZT1zaC1oaXRhY2hpCisrCQlvcz0taG1z CisrCQk7OworKwlzaDVlbCkKKysJCWJhc2ljX21hY2hpbmU9c2g1bGUtdW5rbm93bgorKwkJOzsK KysJc2g2NCkKKysJCWJhc2ljX21hY2hpbmU9c2g2NC11bmtub3duCisrCQk7OworKwlzcGFyY2xp dGUtd3JzIHwgc2ltc28td3JzKQorKwkJYmFzaWNfbWFjaGluZT1zcGFyY2xpdGUtd3JzCisrCQlv cz0tdnh3b3JrcworKwkJOzsKKysJc3BzNykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCisr CQlvcz0tc3lzdjIKKysJCTs7CisrCXNwdXIpCisrCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93 bgorKwkJOzsKKysJc3QyMDAwKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQorKwkJOzsK KysJc3RyYXR1cykKKysJCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCisrCQlvcz0tc3lzdjQK KysJCTs7CisrCXN1bjIpCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KKysJCTs7CisrCXN1 bjJvczMpCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KKysJCW9zPS1zdW5vczMKKysJCTs7 CisrCXN1bjJvczQpCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KKysJCW9zPS1zdW5vczQK KysJCTs7CisrCXN1bjNvczMpCisrCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisrCQlvcz0tc3Vu b3MzCisrCQk7OworKwlzdW4zb3M0KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgorKwkJb3M9 LXN1bm9zNAorKwkJOzsKKysJc3VuNG9zMykKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisr CQlvcz0tc3Vub3MzCisrCQk7OworKwlzdW40b3M0KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1z dW4KKysJCW9zPS1zdW5vczQKKysJCTs7CisrCXN1bjRzb2wyKQorKwkJYmFzaWNfbWFjaGluZT1z cGFyYy1zdW4KKysJCW9zPS1zb2xhcmlzMgorKwkJOzsKKysJc3VuMyB8IHN1bjMtKikKKysJCWJh c2ljX21hY2hpbmU9bTY4ay1zdW4KKysJCTs7CisrCXN1bjQpCisrCQliYXNpY19tYWNoaW5lPXNw YXJjLXN1bgorKwkJOzsKKysJc3VuMzg2IHwgc3VuMzg2aSB8IHJvYWRydW5uZXIpCisrCQliYXNp Y19tYWNoaW5lPWkzODYtc3VuCisrCQk7OworKwlzdjEpCisrCQliYXNpY19tYWNoaW5lPXN2MS1j cmF5CisrCQlvcz0tdW5pY29zCisrCQk7OworKwlzeW1tZXRyeSkKKysJCWJhc2ljX21hY2hpbmU9 aTM4Ni1zZXF1ZW50CisrCQlvcz0tZHluaXgKKysJCTs7CisrCXQzZSkKKysJCWJhc2ljX21hY2hp bmU9YWxwaGFldjUtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJdDkwKQorKwkJYmFzaWNf bWFjaGluZT10OTAtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJdGljNTR4IHwgYzU0eCop CisrCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3duCisrCQlvcz0tY29mZgorKwkJOzsKKysJ dGljNTV4IHwgYzU1eCopCisrCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCisrCQlvcz0t Y29mZgorKwkJOzsKKysJdGljNnggfCBjNngqKQorKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtu b3duCisrCQlvcz0tY29mZgorKwkJOzsKKysJdGlsZSopCisrCQliYXNpY19tYWNoaW5lPXRpbGUt dW5rbm93bgorKwkJb3M9LWxpbnV4LWdudQorKwkJOzsKKysJdHgzOSkKKysJCWJhc2ljX21hY2hp bmU9bWlwc3R4MzktdW5rbm93bgorKwkJOzsKKysJdHgzOWVsKQorKwkJYmFzaWNfbWFjaGluZT1t aXBzdHgzOWVsLXVua25vd24KKysJCTs7CisrCXRvYWQxKQorKwkJYmFzaWNfbWFjaGluZT1wZHAx MC14a2wKKysJCW9zPS10b3BzMjAKKysJCTs7CisrCXRvd2VyIHwgdG93ZXItMzIpCisrCQliYXNp Y19tYWNoaW5lPW02OGstbmNyCisrCQk7OworKwl0cGYpCisrCQliYXNpY19tYWNoaW5lPXMzOTB4 LWlibQorKwkJb3M9LXRwZgorKwkJOzsKKysJdWRpMjlrKQorKwkJYmFzaWNfbWFjaGluZT1hMjlr LWFtZAorKwkJb3M9LXVkaQorKwkJOzsKKysJdWx0cmEzKQorKwkJYmFzaWNfbWFjaGluZT1hMjlr LW55dQorKwkJb3M9LXN5bTEKKysJCTs7CisrCXY4MTAgfCBuZWN2ODEwKQorKwkJYmFzaWNfbWFj aGluZT12ODEwLW5lYworKwkJb3M9LW5vbmUKKysJCTs7CisrCXZheHYpCisrCQliYXNpY19tYWNo aW5lPXZheC1kZWMKKysJCW9zPS1zeXN2CisrCQk7OworKwl2bXMpCisrCQliYXNpY19tYWNoaW5l PXZheC1kZWMKKysJCW9zPS12bXMKKysJCTs7CisrCXZwcCp8dnh8dngtKikKKysJCWJhc2ljX21h Y2hpbmU9ZjMwMS1mdWppdHN1CisrCQk7OworKwl2eHdvcmtzOTYwKQorKwkJYmFzaWNfbWFjaGlu ZT1pOTYwLXdycworKwkJb3M9LXZ4d29ya3MKKysJCTs7CisrCXZ4d29ya3M2OCkKKysJCWJhc2lj X21hY2hpbmU9bTY4ay13cnMKKysJCW9zPS12eHdvcmtzCisrCQk7OworKwl2eHdvcmtzMjlrKQor KwkJYmFzaWNfbWFjaGluZT1hMjlrLXdycworKwkJb3M9LXZ4d29ya3MKKysJCTs7CisrCXc2NSop CisrCQliYXNpY19tYWNoaW5lPXc2NS13ZGMKKysJCW9zPS1ub25lCisrCQk7OworKwl3ODlrLSop CisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAorKwkJb3M9LXByb2VsZgorKwkJOzsK KysJeGJveCkKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworKwkJb3M9LW1pbmd3MzIKKysJCTs7 CisrCXhwcyB8IHhwczEwMCkKKysJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAorKwkJ OzsKKysJeW1wKQorKwkJYmFzaWNfbWFjaGluZT15bXAtY3JheQorKwkJb3M9LXVuaWNvcworKwkJ OzsKKysJejhrLSotY29mZikKKysJCWJhc2ljX21hY2hpbmU9ejhrLXVua25vd24KKysJCW9zPS1z aW0KKysJCTs7CisrCW5vbmUpCisrCQliYXNpY19tYWNoaW5lPW5vbmUtbm9uZQorKwkJb3M9LW5v bmUKKysJCTs7CisrCisrIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBtYW51ZmFjdHVyZXIg b2YgY2VydGFpbiBDUFUgdHlwZXMuICBJdCBpcyBpbgorKyMgc29tZSBjYXNlcyB0aGUgb25seSBt YW51ZmFjdHVyZXIsIGluIG90aGVycywgaXQgaXMgdGhlIG1vc3QgcG9wdWxhci4KKysJdzg5aykK KysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS13aW5ib25kCisrCQk7OworKwlvcDUwbikKKysJCWJh c2ljX21hY2hpbmU9aHBwYTEuMS1va2kKKysJCTs7CisrCW9wNjBjKQorKwkJYmFzaWNfbWFjaGlu ZT1ocHBhMS4xLW9raQorKwkJOzsKKysJcm9tcCkKKysJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0K KysJCTs7CisrCW1taXgpCisrCQliYXNpY19tYWNoaW5lPW1taXgta251dGgKKysJCTs7CisrCXJz NjAwMCkKKysJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWlibQorKwkJOzsKKysJdmF4KQorKwkJYmFz aWNfbWFjaGluZT12YXgtZGVjCisrCQk7OworKwlwZHAxMCkKKysJCSMgdGhlcmUgYXJlIG1hbnkg Y2xvbmVzLCBzbyBERUMgaXMgbm90IGEgc2FmZSBiZXQKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAt dW5rbm93bgorKwkJOzsKKysJcGRwMTEpCisrCQliYXNpY19tYWNoaW5lPXBkcDExLWRlYworKwkJ OzsKKysJd2UzMmspCisrCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAorKwkJOzsKKysJc2hbMTIz NF0gfCBzaFsyNF1hIHwgc2hbMzRdZWIgfCBzaFsxMjM0XWxlIHwgc2hbMjNdZWxlKQorKwkJYmFz aWNfbWFjaGluZT1zaC11bmtub3duCisrCQk7OworKwlzcGFyYyB8IHNwYXJjdjggfCBzcGFyY3Y5 IHwgc3BhcmN2OWIgfCBzcGFyY3Y5dikKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQk7 OworKwljeWRyYSkKKysJCWJhc2ljX21hY2hpbmU9Y3lkcmEtY3lkcm9tZQorKwkJOzsKKysJb3Jp b24pCisrCQliYXNpY19tYWNoaW5lPW9yaW9uLWhpZ2hsZXZlbAorKwkJOzsKKysJb3Jpb24xMDUp CisrCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaGlnaGxldmVsCisrCQk7OworKwltYWMgfCBtcHcg fCBtYWMtbXB3KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCisrCQk7OworKwlwbWFjIHwg cG1hYy1tcHcpCisrCQliYXNpY19tYWNoaW5lPXBvd2VycGMtYXBwbGUKKysJCTs7CisrCSotdW5r bm93bikKKysJCSMgTWFrZSBzdXJlIHRvIG1hdGNoIGFuIGFscmVhZHktY2Fub25pY2FsaXplZCBt YWNoaW5lIG5hbWUuCisrCQk7OworKwkqKQorKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24g XGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisr CQlleGl0IDEKKysJCTs7CisrZXNhYworKworKyMgSGVyZSB3ZSBjYW5vbmljYWxpemUgY2VydGFp biBhbGlhc2VzIGZvciBtYW51ZmFjdHVyZXJzLgorK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKysJ Ki1kaWdpdGFsKikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQg J3MvZGlnaXRhbC4qL2RlYy8nYAorKwkJOzsKKysJKi1jb21tb2RvcmUqKQorKwkJYmFzaWNfbWFj aGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9jb21tb2RvcmUuKi9jYm0vJ2AKKysJ CTs7CisrCSopCisrCQk7OworK2VzYWMKKysKKysjIERlY29kZSBtYW51ZmFjdHVyZXItc3BlY2lm aWMgYWxpYXNlcyBmb3IgY2VydGFpbiBvcGVyYXRpbmcgc3lzdGVtcy4KKysKKytpZiBbIHgiJG9z IiAhPSB4IiIgXQorK3RoZW4KKytjYXNlICRvcyBpbgorKyAgICAgICAgIyBGaXJzdCBtYXRjaCBz b21lIHN5c3RlbSB0eXBlIGFsaWFzZXMKKysgICAgICAgICMgdGhhdCBtaWdodCBnZXQgY29uZnVz ZWQgd2l0aCB2YWxpZCBzeXN0ZW0gdHlwZXMuCisrCSMgLXNvbGFyaXMqIGlzIGEgYmFzaWMgc3lz dGVtIHR5cGUsIHdpdGggdGhpcyBvbmUgZXhjZXB0aW9uLgorKwktc29sYXJpczEgfCAtc29sYXJp czEuKikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKKysJ CTs7CisrCS1zb2xhcmlzKQorKwkJb3M9LXNvbGFyaXMyCisrCQk7OworKwktc3ZyNCopCisrCQlv cz0tc3lzdjQKKysJCTs7CisrCS11bml4d2FyZSopCisrCQlvcz0tc3lzdjQuMnV3CisrCQk7Owor KwktZ251L2xpbnV4KikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xnbnUvbGludXh8bGlu dXgtZ251fCdgCisrCQk7OworKwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVz LgorKwkjIFRoZSBwb3J0YWJsZSBzeXN0ZW1zIGNvbWVzIGZpcnN0LgorKwkjIEVhY2ggYWx0ZXJu YXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgorKwkjIC1z eXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCisr CS1nbnUqIHwgLWJzZCogfCAtbWFjaCogfCAtbWluaXgqIHwgLWdlbml4KiB8IC11bHRyaXgqIHwg LWlyaXgqIFwKKysJICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFp eCogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwKKysJICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAt b3NmKiB8IC1sdW5hKiB8IC1kZ3V4KiB8IC1zb2xhcmlzKiB8IC1zeW0qIFwKKysJICAgICAgfCAt YW1pZ2FvcyogfCAtYW1pZ2Fkb3MqIHwgLW1zZG9zKiB8IC1uZXdzb3MqIHwgLXVuaWNvcyogfCAt YW9mKiBcCisrCSAgICAgIHwgLWFvcyogXAorKwkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwg LXZ4d29ya3MqIHwgLWVibW9uKiB8IC1obXMqIHwgLW12cyogXAorKwkgICAgICB8IC1jbGl4KiB8 IC1yaXNjb3MqIHwgLXVuaXBsdXMqIHwgLWlyaXMqIHwgLXJ0dSogfCAteGVuaXgqIFwKKysJICAg ICAgfCAtaGl1eCogfCAtMzg2YnNkKiB8IC1rbmV0YnNkKiB8IC1taXJic2QqIHwgLW5ldGJzZCog XAorKwkgICAgICB8IC1vcGVuYnNkKiB8IC1zb2xpZGJzZCogXAorKwkgICAgICB8IC1la2tvYnNk KiB8IC1rZnJlZWJzZCogfCAtZnJlZWJzZCogfCAtcmlzY2l4KiB8IC1seW54b3MqIFwKKysJICAg ICAgfCAtYm9zeCogfCAtbmV4dHN0ZXAqIHwgLWN4dXgqIHwgLWFvdXQqIHwgLWVsZiogfCAtb2Fi aSogXAorKwkgICAgICB8IC1wdHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9t YWluKiB8IC12c3RhKiBcCisrCSAgICAgIHwgLXVkaSogfCAtZWFiaSogfCAtbGl0ZXMqIHwgLWll ZWUqIHwgLWdvMzIqIHwgLWF1eCogXAorKwkgICAgICB8IC1jaG9ydXNvcyogfCAtY2hvcnVzcmRi KiBcCisrCSAgICAgIHwgLWN5Z3dpbiogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2Vs ZiogfCAtcnRlbXMqIFwKKysJICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51 eC1uZXdsaWIqIHwgLWxpbnV4LXVjbGliYyogXAorKwkgICAgICB8IC11eHB2KiB8IC1iZW9zKiB8 IC1tcGVpeCogfCAtdWRrKiBcCisrCSAgICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyog fCAtcmhhcHNvZHkqIHwgLWRhcndpbiogfCAtb3BlbmVkKiBcCisrCSAgICAgIHwgLW9wZW5zdGVw KiB8IC1vc2tpdCogfCAtY29uaXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXAorKwkgICAgICB8 IC1zdG9ybS1jaGFvcyogfCAtdG9wczEwKiB8IC10ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwK KysJICAgICAgfCAtb3MyKiB8IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1 cyogXAorKwkgICAgICB8IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5v dmEqIHwgLXdpbmRpc3MqIFwKKysJICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8 IC1ueDcgfCAtc2VpKiB8IC1kcmFnb25mbHkqIFwKKysJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1 KiB8IC1yZG9zKiB8IC10b3BwZXJzKiB8IC1kcm9wcyopCisrCSMgUmVtZW1iZXIsIGVhY2ggYWx0 ZXJuYXRpdmUgTVVTVCBFTkQgSU4gKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KKysJCTs7 CisrCS1xbngqKQorKwkJY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKwkJICAgIHg4Ni0qIHwgaSo4 Ni0qKQorKwkJCTs7CisrCQkgICAgKikKKysJCQlvcz0tbnRvJG9zCisrCQkJOzsKKysJCWVzYWMK KysJCTs7CisrCS1udG8tcW54KikKKysJCTs7CisrCS1udG8qKQorKwkJb3M9YGVjaG8gJG9zIHwg c2VkIC1lICdzfG50b3xudG8tcW54fCdgCisrCQk7OworKwktc2ltIHwgLWVzMTgwMCogfCAtaG1z KiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8IC12ODhyKiBcCisrCSAgICAgIHwgLXdpbmRv d3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogfCAtaGFpa3Uq IFwKKysJICAgICAgfCAtbWFjb3MqIHwgLW1wdyogfCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1t b245NjAqIHwgLWxuZXdzKikKKysJCTs7CisrCS1tYWMqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2Vk IC1lICdzfG1hY3xtYWNvc3wnYAorKwkJOzsKKysJLWxpbnV4LWRpZXRsaWJjKQorKwkJb3M9LWxp bnV4LWRpZXRsaWJjCisrCQk7OworKwktbGludXgqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1l ICdzfGxpbnV4fGxpbnV4LWdudXwnYAorKwkJOzsKKysJLXN1bm9zNSopCisrCQlvcz1gZWNobyAk b3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMyfCdgCisrCQk7OworKwktc3Vub3M2KikKKysJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJpczN8J2AKKysJCTs7CisrCS1v cGVuZWQqKQorKwkJb3M9LW9wZW5lZGl0aW9uCisrCQk7OworKyAgICAgICAgLW9zNDAwKikKKysJ CW9zPS1vczQwMAorKwkJOzsKKysJLXdpbmNlKikKKysJCW9zPS13aW5jZQorKwkJOzsKKysJLW9z ZnJvc2UqKQorKwkJb3M9LW9zZnJvc2UKKysJCTs7CisrCS1vc2YqKQorKwkJb3M9LW9zZgorKwkJ OzsKKysJLXV0ZWsqKQorKwkJb3M9LWJzZAorKwkJOzsKKysJLWR5bml4KikKKysJCW9zPS1ic2QK KysJCTs7CisrCS1hY2lzKikKKysJCW9zPS1hb3MKKysJCTs7CisrCS1hdGhlb3MqKQorKwkJb3M9 LWF0aGVvcworKwkJOzsKKysJLXN5bGxhYmxlKikKKysJCW9zPS1zeWxsYWJsZQorKwkJOzsKKysJ LTM4NmJzZCkKKysJCW9zPS1ic2QKKysJCTs7CisrCS1jdGl4KiB8IC11dHMqKQorKwkJb3M9LXN5 c3YKKysJCTs7CisrCS1ub3ZhKikKKysJCW9zPS1ydG1rLW5vdmEKKysJCTs7CisrCS1uczIgKQor KwkJb3M9LW5leHRzdGVwMgorKwkJOzsKKysJLW5zayopCisrCQlvcz0tbnNrCisrCQk7OworKwkj IFByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBzaW5peDUuCisrCS1zaW5peDUuKikKKysJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCisrCQk7OworKwktc2luaXgq KQorKwkJb3M9LXN5c3Y0CisrCQk7OworKyAgICAgICAgLXRwZiopCisrCQlvcz0tdHBmCisrCQk7 OworKwktdHJpdG9uKikKKysJCW9zPS1zeXN2MworKwkJOzsKKysJLW9zcyopCisrCQlvcz0tc3lz djMKKysJCTs7CisrCS1zdnI0KQorKwkJb3M9LXN5c3Y0CisrCQk7OworKwktc3ZyMykKKysJCW9z PS1zeXN2MworKwkJOzsKKysJLXN5c3ZyNCkKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJIyBUaGlz IG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgorKwktc3lzdiopCisrCQk7OworKwktb3NlKikKKysJ CW9zPS1vc2UKKysJCTs7CisrCS1lczE4MDAqKQorKwkJb3M9LW9zZQorKwkJOzsKKysJLXhlbml4 KQorKwkJb3M9LXhlbml4CisrCQk7OworKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8 IC1NaU5UWzAtOV0qKQorKwkJb3M9LW1pbnQKKysJCTs7CisrCS1hcm9zKikKKysJCW9zPS1hcm9z CisrCQk7OworKwkta2FvcyopCisrCQlvcz0ta2FvcworKwkJOzsKKysJLXp2bW9lKQorKwkJb3M9 LXp2bW9lCisrCQk7OworKwktbm9uZSkKKysJCTs7CisrCSopCisrCQkjIEdldCByaWQgb2YgdGhl IGAtJyBhdCB0aGUgYmVnaW5uaW5nIG9mICRvcy4KKysJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9b Xi1dKi0vLydgCisrCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IHN5c3RlbSBc YCRvc1wnIG5vdCByZWNvZ25pemVkIDE+JjIKKysJCWV4aXQgMQorKwkJOzsKKytlc2FjCisrZWxz ZQorKworKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgdGhh dCBjb21lIHdpdGggdmFyaW91cyBtYWNoaW5lcy4KKysjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hh dCB0aGUgdmVuZG9yIGN1cnJlbnRseSBzaGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgorKyMg bWFjaGluZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQg d2l0aCB0aGUgbWFjaGluZS4KKysKKysjIE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5 IHRvIG1hdGNoICItTUFOVUZBQ1RVUkVSIiBoZXJlIChzYXksCisrIyAiLXN1biIpLCB0aGVuIHlv dSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAorKyMg dGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3BlcmF0aW5nIHN5c3RlbS4gIE90aGVyd2lzZSwg Y29kZSBhYm92ZQorKyMgd2lsbCBzaWduYWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RV UkVSIGlzbid0IGFuIG9wZXJhdGluZworKyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRv IHRoaXMgcG9pbnQuCisrCisrY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKyAgICAgICAgc2NvcmUt KikKKysJCW9zPS1lbGYKKysJCTs7CisrICAgICAgICBzcHUtKikKKysJCW9zPS1lbGYKKysJCTs7 CisrCSotYWNvcm4pCisrCQlvcz0tcmlzY2l4MS4yCisrCQk7OworKwlhcm0qLXJlYmVsKQorKwkJ b3M9LWxpbnV4CisrCQk7OworKwlhcm0qLXNlbWkpCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAg ICAgIGM0eC0qIHwgdGljNHgtKikKKysgICAgICAgIAlvcz0tY29mZgorKwkJOzsKKysJIyBUaGlz IG11c3QgY29tZSBiZWZvcmUgdGhlICotZGVjIGVudHJ5LgorKwlwZHAxMC0qKQorKwkJb3M9LXRv cHMyMAorKwkJOzsKKysJcGRwMTEtKikKKysJCW9zPS1ub25lCisrCQk7OworKwkqLWRlYyB8IHZh eC0qKQorKwkJb3M9LXVsdHJpeDQuMgorKwkJOzsKKysJbTY4Ki1hcG9sbG8pCisrCQlvcz0tZG9t YWluCisrCQk7OworKwlpMzg2LXN1bikKKysJCW9zPS1zdW5vczQuMC4yCisrCQk7OworKwltNjgw MDAtc3VuKQorKwkJb3M9LXN1bm9zMworKwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25m aWd1cmUgcHJvZ3JhbSwgYnV0IHdhcyBub3QgdGhlCisrCQkjIGRlZmF1bHQuCisrCQkjIG9zPS1z dW5vczQKKysJCTs7CisrCW02OCotY2lzY28pCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAgICAg IG1lcC0qKQorKwkJb3M9LWVsZgorKwkJOzsKKysJbWlwcyotY2lzY28pCisrCQlvcz0tZWxmCisr CQk7OworKwltaXBzKi0qKQorKwkJb3M9LWVsZgorKwkJOzsKKysJb3IzMi0qKQorKwkJb3M9LWNv ZmYKKysJCTs7CisrCSotdHRpKQkjIG11c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdl dCB0aGUgd3Jvbmcgb3MuCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCXNwYXJjLSogfCAqLXN1bikK KysJCW9zPS1zdW5vczQuMS4xCisrCQk7OworKwkqLWJlKQorKwkJb3M9LWJlb3MKKysJCTs7Cisr CSotaGFpa3UpCisrCQlvcz0taGFpa3UKKysJCTs7CisrCSotaWJtKQorKwkJb3M9LWFpeAorKwkJ OzsKKysgICAgCSota251dGgpCisrCQlvcz0tbW1peHdhcmUKKysJCTs7CisrCSotd2VjKQorKwkJ b3M9LXByb2VsZgorKwkJOzsKKysJKi13aW5ib25kKQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJ Ki1va2kpCisrCQlvcz0tcHJvZWxmCisrCQk7OworKwkqLWhwKQorKwkJb3M9LWhwdXgKKysJCTs7 CisrCSotaGl0YWNoaSkKKysJCW9zPS1oaXV4CisrCQk7OworKwlpODYwLSogfCAqLWF0dCB8ICot bmNyIHwgKi1hbHRvcyB8ICotbW90b3JvbGEgfCAqLWNvbnZlcmdlbnQpCisrCQlvcz0tc3lzdgor KwkJOzsKKysJKi1jYm0pCisrCQlvcz0tYW1pZ2FvcworKwkJOzsKKysJKi1kZykKKysJCW9zPS1k Z3V4CisrCQk7OworKwkqLWRvbHBoaW4pCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCW02OGstY2N1 cikKKysJCW9zPS1ydHUKKysJCTs7CisrCW04OGstb21yb24qKQorKwkJb3M9LWx1bmEKKysJCTs7 CisrCSotbmV4dCApCisrCQlvcz0tbmV4dHN0ZXAKKysJCTs7CisrCSotc2VxdWVudCkKKysJCW9z PS1wdHgKKysJCTs7CisrCSotY3JkcykKKysJCW9zPS11bm9zCisrCQk7OworKwkqLW5zKQorKwkJ b3M9LWdlbml4CisrCQk7OworKwlpMzcwLSopCisrCQlvcz0tbXZzCisrCQk7OworKwkqLW5leHQp CisrCQlvcz0tbmV4dHN0ZXAzCisrCQk7OworKwkqLWdvdWxkKQorKwkJb3M9LXN5c3YKKysJCTs7 CisrCSotaGlnaGxldmVsKQorKwkJb3M9LWJzZAorKwkJOzsKKysJKi1lbmNvcmUpCisrCQlvcz0t YnNkCisrCQk7OworKwkqLXNnaSkKKysJCW9zPS1pcml4CisrCQk7OworKwkqLXNpZW1lbnMpCisr CQlvcz0tc3lzdjQKKysJCTs7CisrCSotbWFzc2NvbXApCisrCQlvcz0tcnR1CisrCQk7OworKwlm MzBbMDFdLWZ1aml0c3UgfCBmNzAwLWZ1aml0c3UpCisrCQlvcz0tdXhwdgorKwkJOzsKKysJKi1y b202OGspCisrCQlvcz0tY29mZgorKwkJOzsKKysJKi0qYnVnKQorKwkJb3M9LWNvZmYKKysJCTs7 CisrCSotYXBwbGUpCisrCQlvcz0tbWFjb3MKKysJCTs7CisrCSotYXRhcmkqKQorKwkJb3M9LW1p bnQKKysJCTs7CisrCSopCisrCQlvcz0tbm9uZQorKwkJOzsKKytlc2FjCisrZmkKKysKKysjIEhl cmUgd2UgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0 eXBlLCBidXQgbm90IHRoZQorKyMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBt YW51ZmFjdHVyZXIuCisrdmVuZG9yPXVua25vd24KKytjYXNlICRiYXNpY19tYWNoaW5lIGluCisr CSotdW5rbm93bikKKysJCWNhc2UgJG9zIGluCisrCQkJLXJpc2NpeCopCisrCQkJCXZlbmRvcj1h Y29ybgorKwkJCQk7OworKwkJCS1zdW5vcyopCisrCQkJCXZlbmRvcj1zdW4KKysJCQkJOzsKKysJ CQktYWl4KikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1iZW9zKikKKysJCQkJdmVu ZG9yPWJlCisrCQkJCTs7CisrCQkJLWhwdXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsKKysJ CQktbXBlaXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsKKysJCQktaGl1eCopCisrCQkJCXZl bmRvcj1oaXRhY2hpCisrCQkJCTs7CisrCQkJLXVub3MqKQorKwkJCQl2ZW5kb3I9Y3JkcworKwkJ CQk7OworKwkJCS1kZ3V4KikKKysJCQkJdmVuZG9yPWRnCisrCQkJCTs7CisrCQkJLWx1bmEqKQor KwkJCQl2ZW5kb3I9b21yb24KKysJCQkJOzsKKysJCQktZ2VuaXgqKQorKwkJCQl2ZW5kb3I9bnMK KysJCQkJOzsKKysJCQktbXZzKiB8IC1vcGVuZWQqKQorKwkJCQl2ZW5kb3I9aWJtCisrCQkJCTs7 CisrCQkJLW9zNDAwKikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1wdHgqKQorKwkJ CQl2ZW5kb3I9c2VxdWVudAorKwkJCQk7OworKwkJCS10cGYqKQorKwkJCQl2ZW5kb3I9aWJtCisr CQkJCTs7CisrCQkJLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKKysJCQkJdmVuZG9y PXdycworKwkJCQk7OworKwkJCS1hdXgqKQorKwkJCQl2ZW5kb3I9YXBwbGUKKysJCQkJOzsKKysJ CQktaG1zKikKKysJCQkJdmVuZG9yPWhpdGFjaGkKKysJCQkJOzsKKysJCQktbXB3KiB8IC1tYWNv cyopCisrCQkJCXZlbmRvcj1hcHBsZQorKwkJCQk7OworKwkJCS0qbWludCB8IC1taW50WzAtOV0q IHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCisrCQkJCXZlbmRvcj1hdGFyaQorKwkJCQk7OworKwkJ CS12b3MqKQorKwkJCQl2ZW5kb3I9c3RyYXR1cworKwkJCQk7OworKwkJZXNhYworKwkJYmFzaWNf bWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAK KysJCTs7CisrZXNhYworKworK2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKKytleGl0CisrCisrIyBM b2NhbCB2YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3Rp bWUtc3RhbXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisrIyB0aW1lLXN0 YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisrIyB0aW1lLXN0YW1wLWVuZDogIiciCisrIyBF bmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9jcHB1bml0Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2NwcHVuaXQubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NwcHVuaXQubTQJMjAwOS0wNC0xNiAxOTozNzoyMy4w MDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOTMgQEAKKytkbmwKKytkbmwgQU1fUEFUSF9DUFBV 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 X3RyZXAzMDAvY29uZmlnL2RlcGNvbXAJMjAwOS0wNS0wMyAwMDoyMDo0Mi4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsNTg5IEBACisrIyEgL2Jpbi9zaAorKyMgZGVwY29tcCAtIGNvbXBpbGUg YSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cworKworK3Nj cmlwdHZlcnNpb249MjAwNy0wMy0yOS4wMQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAw LCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEZyZWUgU29mdHdhcmUKKysjIEZvdW5kYXRp b24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9u KQorKyMgYW55IGxhdGVyIHZlcnNpb24uCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0xMzAxLCBVU0EuCisrCisrIyBBcyBh IHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYg eW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNv bnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwg eW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMg dGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisrIyBPcmlnaW5h bGx5IHdyaXR0ZW4gYnkgQWxleGFuZHJlIE9saXZhIDxvbGl2YUBkY2MudW5pY2FtcC5icj4uCisr CisrY2FzZSAkMSBpbgorKyAgJycpCisrICAgICBlY2hvICIkMDogTm8gY29tbWFuZC4gIFRyeSBc YCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCisrICAgICBleGl0IDE7Cisr ICAgICA7OworKyAgLWggfCAtLWgqKQorKyAgICBjYXQgPDxcRU9GCisrVXNhZ2U6IGRlcGNvbXAg Wy0taGVscF0gWy0tdmVyc2lvbl0gUFJPR1JBTSBbQVJHU10KKysKKytSdW4gUFJPR1JBTVMgQVJH UyB0byBjb21waWxlIGEgZmlsZSwgZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMKKythcyBzaWRlLWVm ZmVjdHMuCisrCisrRW52aXJvbm1lbnQgdmFyaWFibGVzOgorKyAgZGVwbW9kZSAgICAgRGVwZW5k ZW5jeSB0cmFja2luZyBtb2RlLgorKyAgc291cmNlICAgICAgU291cmNlIGZpbGUgcmVhZCBieSBg UFJPR1JBTVMgQVJHUycuCisrICBvYmplY3QgICAgICBPYmplY3QgZmlsZSBvdXRwdXQgYnkgYFBS T0dSQU1TIEFSR1MnLgorKyAgREVQRElSICAgICAgZGlyZWN0b3J5IHdoZXJlIHRvIHN0b3JlIGRl cGVuZGVuY2llcy4KKysgIGRlcGZpbGUgICAgIERlcGVuZGVuY3kgZmlsZSB0byBvdXRwdXQuCisr ICB0bXBkZXBmaWxlICBUZW1wb3JhcnkgZmlsZSB0byB1c2Ugd2hlbiBvdXRwdXRpbmcgZGVwZW5k ZW5jaWVzLgorKyAgbGlidG9vbCAgICAgV2hldGhlciBsaWJ0b29sIGlzIHVzZWQgKHllcy9ubyku CisrCisrUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4KKytFT0YKKysgICAg ZXhpdCAkPworKyAgICA7OworKyAgLXYgfCAtLXYqKQorKyAgICBlY2hvICJkZXBjb21wICRzY3Jp cHR2ZXJzaW9uIgorKyAgICBleGl0ICQ/CisrICAgIDs7CisrZXNhYworKworK2lmIHRlc3QgLXog IiRkZXBtb2RlIiB8fCB0ZXN0IC16ICIkc291cmNlIiB8fCB0ZXN0IC16ICIkb2JqZWN0IjsgdGhl bgorKyAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBtb2Rl IG11c3QgYmUgc2V0IiAxPiYyCisrICBleGl0IDEKKytmaQorKworKyMgRGVwZW5kZW5jaWVzIGZv ciBzdWIvYmFyLm8gb3Igc3ViL2Jhci5vYmogZ28gaW50byBzdWIvLmRlcHMvYmFyLlBvLgorK2Rl cGZpbGU9JHtkZXBmaWxlLWBlY2hvICIkb2JqZWN0IiB8CisrICBzZWQgJ3N8W15cXC9dKiR8JyR7 REVQRElSLS5kZXBzfScvJnw7c3xcLlwoW14uXSpcKSR8LlBcMXw7c3xQb2JqJHxQb3wnYH0KKyt0 bXBkZXBmaWxlPSR7dG1wZGVwZmlsZS1gZWNobyAiJGRlcGZpbGUiIHwgc2VkICdzL1wuXChbXi5d KlwpJC8uVFwxLydgfQorKworK3JtIC1mICIkdG1wZGVwZmlsZSIKKysKKysjIFNvbWUgbW9kZXMg d29yayBqdXN0IGxpa2Ugb3RoZXIgbW9kZXMsIGJ1dCB1c2UgZGlmZmVyZW50IGZsYWdzLiAgV2UK KysjIHBhcmFtZXRlcml6ZSBoZXJlLCBidXQgc3RpbGwgbGlzdCB0aGUgbW9kZXMgaW4gdGhlIGJp ZyBjYXNlIGJlbG93LAorKyMgdG8gbWFrZSBkZXBlbmQubTQgZWFzaWVyIHRvIHdyaXRlLiAgTm90 ZSB0aGF0IHdlICpjYW5ub3QqIHVzZSBhIGNhc2UKKysjIGhlcmUsIGJlY2F1c2UgdGhpcyBmaWxl IGNhbiBvbmx5IGNvbnRhaW4gb25lIGNhc2Ugc3RhdGVtZW50LgorK2lmIHRlc3QgIiRkZXBtb2Rl IiA9IGhwOyB0aGVuCisrICAjIEhQIGNvbXBpbGVyIHVzZXMgLU0gYW5kIG5vIGV4dHJhIGFyZy4K KysgIGdjY2ZsYWc9LU0KKysgIGRlcG1vZGU9Z2NjCisrZmkKKysKKytpZiB0ZXN0ICIkZGVwbW9k ZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4KKysgICAjIFRoaXMgaXMganVzdCBsaWtlIGRhc2htc3Rk b3V0IHdpdGggYSBkaWZmZXJlbnQgYXJndW1lbnQuCisrICAgZGFzaG1mbGFnPS14TQorKyAgIGRl cG1vZGU9ZGFzaG1zdGRvdXQKKytmaQorKworK2Nhc2UgIiRkZXBtb2RlIiBpbgorK2djYzMpCisr IyMgZ2NjIDMgaW1wbGVtZW50cyBkZXBlbmRlbmN5IHRyYWNraW5nIHRoYXQgZG9lcyBleGFjdGx5 IHdoYXQKKysjIyB3ZSB3YW50LiAgWWF5ISAgTm90ZTogZm9yIHNvbWUgcmVhc29uIGxpYnRvb2wg MS40IGRvZXNuJ3QgbGlrZQorKyMjIGl0IGlmIC1NRCAtTVAgY29tZXMgYWZ0ZXIgdGhlIC1NRiBz dHVmZi4gIEhtbS4KKysjIyBVbmZvcnR1bmF0ZWx5LCBGcmVlQlNEIGM4OSBhY2NlcHRhbmNlIG9m IGZsYWdzIGRlcGVuZHMgdXBvbgorKyMjIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgb3JkZXI7 IHNvIGFkZCB0aGUgZmxhZ3Mgd2hlcmUgdGhleQorKyMjIGFwcGVhciBpbiBkZXBlbmQyLmFtLiAg Tm90ZSB0aGF0IHRoZSBzbG93ZG93biBpbmN1cnJlZCBoZXJlCisrIyMgYWZmZWN0cyBvbmx5IGNv bmZpZ3VyZTogaW4gbWFrZWZpbGVzLCAlRkFTVERFUCUgc2hvcnRjdXRzIHRoaXMuCisrICBmb3Ig YXJnCisrICBkbworKyAgICBjYXNlICRhcmcgaW4KKysgICAgLWMpIHNldCBmbm9yZCAiJEAiIC1N VCAiJG9iamVjdCIgLU1EIC1NUCAtTUYgIiR0bXBkZXBmaWxlIiAiJGFyZyIgOzsKKysgICAgKikg IHNldCBmbm9yZCAiJEAiICIkYXJnIiA7OworKyAgICBlc2FjCisrICAgIHNoaWZ0ICMgZm5vcmQK KysgICAgc2hpZnQgIyAkYXJnCisrICBkb25lCisrICAiJEAiCisrICBzdGF0PSQ/CisrICBpZiB0 ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBmaWxl IgorKyAgICBleGl0ICRzdGF0CisrICBmaQorKyAgbXYgIiR0bXBkZXBmaWxlIiAiJGRlcGZpbGUi CisrICA7OworKworK2djYykKKysjIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRvIGdldCBkZXBl bmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncworKyMjIHdoeSB3ZSBwaWNrIHRoaXMgcmF0 aGVyIG9ic2N1cmUgbWV0aG9kOgorKyMjIC0gRG9uJ3Qgd2FudCB0byB1c2UgLU1EIGJlY2F1c2Ug d2UnZCBsaWtlIHRoZSBkZXBlbmRlbmNpZXMgdG8gZW5kCisrIyMgICB1cCBpbiBhIHN1YmRpci4g IEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5LgorKyMjICAgKFdlIG1pZ2h0IGVuZCB1 cCBkb2luZyB0aGlzIGFueXdheSB0byBzdXBwb3J0IG90aGVyIGNvbXBpbGVycy4pCisrIyMgLSBU aGUgREVQRU5ERU5DSUVTX09VVFBVVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYWtlcyBnY2MgYWN0 IGxpa2UKKysjIyAgIC1NTSwgbm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4KKysj IyAtIFVzaW5nIC1NIGRpcmVjdGx5IG1lYW5zIHJ1bm5pbmcgdGhlIGNvbXBpbGVyIHR3aWNlIChl dmVuIHdvcnNlCisrIyMgICB0aGFuIHJlbmFtaW5nKS4KKysgIGlmIHRlc3QgLXogIiRnY2NmbGFn IjsgdGhlbgorKyAgICBnY2NmbGFnPS1NRCwKKysgIGZpCisrICAiJEAiIC1XcCwiJGdjY2ZsYWck dG1wZGVwZmlsZSIKKysgIHN0YXQ9JD8KKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgor KyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICAgIGV4aXQgJHN0YXQKKysgIGZp CisrICBybSAtZiAiJGRlcGZpbGUiCisrICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxl IgorKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJz dHV2d3h5egorKyMjIFRoZSBzZWNvbmQgLWUgZXhwcmVzc2lvbiBoYW5kbGVzIERPUy1zdHlsZSBm aWxlIG5hbWVzIHdpdGggZHJpdmUgbGV0dGVycy4KKysgIHNlZCAtZSAncy9eW146XSo6IC8gLycg XAorKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUi ID4+ICIkZGVwZmlsZSIKKysjIyBUaGlzIG5leHQgcGllY2Ugb2YgbWFnaWMgYXZvaWRzIHRoZSBg ZGVsZXRlZCBoZWFkZXIgZmlsZScgcHJvYmxlbS4KKysjIyBUaGUgcHJvYmxlbSBpcyB0aGF0IHdo ZW4gYSBoZWFkZXIgZmlsZSB3aGljaCBhcHBlYXJzIGluIGEgLlAgZmlsZQorKyMjIGlzIGRlbGV0 ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBpcwor KyMjIHR5cGljYWxseSBubyB3YXkgdG8gcmVidWlsZCB0aGUgaGVhZGVyKS4gIFdlIGF2b2lkIHRo aXMgYnkgYWRkaW5nCisrIyMgZHVtbXkgZGVwZW5kZW5jaWVzIGZvciBlYWNoIGhlYWRlciBmaWxl LiAgVG9vIGJhZCBnY2MgZG9lc24ndCBkbworKyMjIHRoaXMgZm9yIHVzIGRpcmVjdGx5LgorKyAg dHIgJyAnICcKKysnIDwgIiR0bXBkZXBmaWxlIiB8CisrIyMgU29tZSB2ZXJzaW9ucyBvZiBnY2Mg cHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0aGUgdGhlb3J5CisrIyMgdGhhdCB0aGUg c3BhY2UgbWVhbnMgc29tZXRoaW5nLCB3ZSBhZGQgYSBzcGFjZSB0byB0aGUgb3V0cHV0IGFzCisr IyMgd2VsbC4KKysjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBw cm9jZXNzIHRoaXMgaW52b2NhdGlvbgorKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8g dHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisrICAgIHNlZCAtZSAncy9eXFwk Ly8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxl IgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKytocCkKKysgICMgVGhpcyBjYXNl IGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQgZG8gaXRzIHdvcmsuICBJdCB3b3JrcyBieQor KyAgIyBsb29raW5nIGF0IHRoZSB0ZXh0IG9mIHRoaXMgc2NyaXB0LiAgVGhpcyBjYXNlIHdpbGwg bmV2ZXIgYmUgcnVuLAorKyAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KKysgIGV4 aXQgMQorKyAgOzsKKysKKytzZ2kpCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4K KysgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVwZmlsZSIKKysgIGVsc2UKKysgICAgIiRA IiAtTUR1cGRhdGUgIiR0bXBkZXBmaWxlIgorKyAgZmkKKysgIHN0YXQ9JD8KKysgIGlmIHRlc3Qg JHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisr ICAgIGV4aXQgJHN0YXQKKysgIGZpCisrICBybSAtZiAiJGRlcGZpbGUiCisrCisrICBpZiB0ZXN0 IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBkZXBlbmQgb24g b3RoZXIgZmlsZXMKKysgICAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKysKKysg ICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50KS4gIERvbid0 IHRyeSB0byBiZQorKyAgICAjIGNsZXZlciBhbmQgcmVwbGFjZSB0aGlzIHdpdGggc2VkIGNvZGUs IGFzIElSSVggc2VkIHdvbid0IGhhbmRsZQorKyAgICAjIGxpbmVzIHdpdGggbW9yZSB0aGFuIGEg Zml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgKDQwOTYgaW4KKysgICAgIyBJUklYIDYuMiBzZWQs IDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5lczsKKysgICAg IyB0aGUgSVJJWCBjYyBhZGRzIGNvbW1lbnRzIGxpa2UgYCM6ZmVjJyB0byB0aGUgZW5kIG9mIHRo ZQorKyAgICAjIGRlcGVuZGVuY3kgbGluZS4KKysgICAgdHIgJyAnICcKKysnIDwgIiR0bXBkZXBm aWxlIiBcCisrICAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14k LyBkJyB8IFwKKysgICAgdHIgJworKycgJyAnID4+ICRkZXBmaWxlCisrICAgIGVjaG8gPj4gJGRl cGZpbGUKKysKKysgICAgIyBUaGUgc2Vjb25kIHBhc3MgZ2VuZXJhdGVzIGEgZHVtbXkgZW50cnkg Zm9yIGVhY2ggaGVhZGVyIGZpbGUuCisrICAgIHRyICcgJyAnCisrJyA8ICIkdG1wZGVwZmlsZSIg XAorKyAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyAt ZSAncy8kLzovJyBcCisrICAgPj4gJGRlcGZpbGUKKysgIGVsc2UKKysgICAgIyBUaGUgc291cmNl ZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKKysgICAgIyBz dG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1ha2Vm aWxlCisrICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCisrICAgIGVjaG8gIiNk dW1teSIgPiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsK KysKKythaXgpCisrICAjIFRoZSBDIGZvciBBSVggQ29tcGlsZXIgdXNlcyAtTSBhbmQgb3V0cHV0 cyB0aGUgZGVwZW5kZW5jaWVzCisrICAjIGluIGEgLnUgZmlsZS4gIEluIG9sZGVyIHZlcnNpb25z LCB0aGlzIGZpbGUgYWx3YXlzIGxpdmVzIGluIHRoZQorKyAgIyBjdXJyZW50IGRpcmVjdG9yeS4g IEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQorKyAgIyBzdGFy dCBvZiBlYWNoIGxpbmU7ICRvYmplY3QgZG9lc24ndCBoYXZlIGRpcmVjdG9yeSBpbmZvcm1hdGlv bi4KKysgICMgVmVyc2lvbiA2IHVzZXMgdGhlIGRpcmVjdG9yeSBpbiBib3RoIGNhc2VzLgorKyAg ZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKysgIHRlc3QgIngk ZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQorKyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQg LWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAorKyAgaWYgdGVzdCAi JGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS51CisrICAg IHRtcGRlcGZpbGUyPSRiYXNlLnUKKysgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLnUK KysgICAgIiRAIiAtV2MsLU0KKysgIGVsc2UKKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUK KysgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLnUKKysgICAgdG1wZGVwZmlsZTM9JGRpciRiYXNl LnUKKysgICAgIiRAIiAtTQorKyAgZmkKKysgIHN0YXQ9JD8KKysKKysgIGlmIHRlc3QgJHN0YXQg LWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRl cGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorKyAgICBleGl0ICRzdGF0CisrICBmaQorKworKyAgZm9y IHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxl MyIKKysgIGRvCisrICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgZG9uZQor KyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCisrICAgICMgRWFjaCBsaW5lIGlzIG9m IHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgorKyAgICAjIERvIHR3byBwYXNzZXMsIG9u ZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bworKyAgICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcg YW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCisrICAgIHNlZCAtZSAicyxeLipcLlth LXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisrICAgICMgVGhh dCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4KKysgICAgc2VkIC1lICdzLF4uKlwuW2Et el0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisr ICBlbHNlCisrICAgICMgVGhlIHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5k ZW5jaWVzLCBzbyBqdXN0CisrICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2 b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQorKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBs byIgc2NoZW1lLgorKyAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgorKyAgZmkKKysgIHJt IC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisraWNjKQorKyAgIyBJbnRlbCdzIEMgY29tcGls ZXIgdW5kZXJzdGFuZHMgYC1NRCAtTUYgZmlsZScuICBIb3dldmVyIG9uCisrICAjICAgIGljYyAt TUQgLU1GIGZvby5kIC1jIC1vIHN1Yi9mb28ubyBzdWIvZm9vLmMKKysgICMgSUNDIDcuMCB3aWxs IGZpbGwgZm9vLmQgd2l0aCBzb21ldGhpbmcgbGlrZQorKyAgIyAgICBmb28ubzogc3ViL2Zvby5j CisrICAjICAgIGZvby5vOiBzdWIvZm9vLmgKKysgICMgd2hpY2ggaXMgd3JvbmcuICBXZSB3YW50 OgorKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uYworKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9m b28uaAorKyAgIyAgICBzdWIvZm9vLmM6CisrICAjICAgIHN1Yi9mb28uaDoKKysgICMgSUNDIDcu MSB3aWxsIG91dHB1dAorKyAgIyAgICBmb28ubzogc3ViL2Zvby5jIHN1Yi9mb28uaAorKyAgIyBh bmQgd2lsbCB3cmFwIGxvbmcgbGluZXMgdXNpbmcgXCA6CisrICAjICAgIGZvby5vOiBzdWIvZm9v LmMgLi4uIFwKKysgICMgICAgIHN1Yi9mb28uaCAuLi4gXAorKyAgIyAgICAgLi4uCisrCisrICAi JEAiIC1NRCAtTUYgIiR0bXBkZXBmaWxlIgorKyAgc3RhdD0kPworKyAgaWYgdGVzdCAkc3RhdCAt ZXEgMDsgdGhlbiA6CisrICBlbHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgICAgZXhp dCAkc3RhdAorKyAgZmkKKysgIHJtIC1mICIkZGVwZmlsZSIKKysgICMgRWFjaCBsaW5lIGlzIG9m IHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLAorKyAgIyBvciBgZm9vLm86IGRlcDEuaCBk ZXAyLmggXCcsIG9yIGAgZGVwMy5oIGRlcDQuaCBcJy4KKysgICMgRG8gdHdvIHBhc3Nlcywgb25l IHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCisrICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5k IG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCisrICBzZWQgInMsXlteOl0qOiwkb2JqZWN0 IDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisrICAjIFNvbWUgdmVyc2lvbnMgb2Yg dGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisrICAjIGNv cnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmth cm91bmQuCisrICBzZWQgJ3MsXlteOl0qOiBcKC4qXCkkLFwxLDtzL15cXCQvLzsvXiQvZDsvOiQv ZCcgPCAiJHRtcGRlcGZpbGUiIHwKKysgICAgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUi CisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK2hwMikKKysgICMgVGhlICJocCIg c3RhbnphIGFib3ZlIGRvZXMgbm90IHdvcmsgd2l0aCBhQ0MgKEMrKykgYW5kIEhQJ3MgaWE2NAor KyAgIyBjb21waWxlcnMsIHdoaWNoIGhhdmUgaW50ZWdyYXRlZCBwcmVwcm9jZXNzb3JzLiAgVGhl IGNvcnJlY3Qgb3B0aW9uCisrICAjIHRvIHVzZSB3aXRoIHRoZXNlIGlzICtNYWtlZDsgaXQgd3Jp dGVzIGRlcGVuZGVuY2llcyB0byBhIGZpbGUgbmFtZWQKKysgICMgJ2Zvby5kJywgd2hpY2ggbGFu ZHMgbmV4dCB0byB0aGUgb2JqZWN0IGZpbGUsIHdoZXJldmVyIHRoYXQKKysgICMgaGFwcGVucyB0 byBiZS4KKysgICMgTXVjaCBvZiB0aGlzIGlzIHNpbWlsYXIgdG8gdGhlIHRydTY0IGNhc2U7IHNl ZSBjb21tZW50cyB0aGVyZS4KKysgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1te L10qJHwvfCdgCisrICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgIGJhc2U9 YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9c LmxvJC8vJ2AKKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB0bXBkZXBm aWxlMT0kZGlyJGJhc2UuZAorKyAgICB0bXBkZXBmaWxlMj0kZGlyLmxpYnMvJGJhc2UuZAorKyAg ICAiJEAiIC1XYywrTWFrZWQKKysgIGVsc2UKKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLmQK KysgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLmQKKysgICAgIiRAIiArTWFrZWQKKysgIGZpCisr ICBzdGF0PSQ/CisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAg IHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCisrICAgICBleGl0ICRzdGF0Cisr ICBmaQorKworKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxl MiIKKysgIGRvCisrICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgZG9uZQor KyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCisrICAgIHNlZCAtZSAicyxeLipcLlth LXpdKjosJG9iamVjdDosIiAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgICAjIEFkZCBg ZGVwZW5kZW50Lmg6JyBsaW5lcy4KKysgICAgc2VkIC1uZSAnMiwkezsgcy9eICovLzsgcy8gXFwq JC8vOyBzLyQvOi87IHA7fScgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrICBlbHNlCisr ICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0gLWYgIiR0bXBkZXBm aWxlIiAiJHRtcGRlcGZpbGUyIgorKyAgOzsKKysKKyt0cnU2NCkKKysgICAjIFRoZSBUcnU2NCBj b21waWxlciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMgYSBzaWRlCisrICAg IyBlZmZlY3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVwZW5kZW5jaWVzIGlu dG8gYGZvby5vLmQnLgorKyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0IDYuMSwgQ29tcGFx IENDQyBWNi4yLTUwNCBzZWVtcyB0byBwdXQKKysgICAjIGRlcGVuZGVuY2llcyBpbiBgZm9vLmQn IGluc3RlYWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRvby4KKysgICAjIFN1YmRpcmVjdG9yaWVz IGFyZSByZXNwZWN0ZWQuCisrICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14v XSokfC98J2AKKysgICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgICBiYXNl PWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3Mv XC5sbyQvLydgCisrCisrICAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgICAg IyBXaXRoIFRydTY0IGNjLCBzaGFyZWQgb2JqZWN0cyBjYW4gYWxzbyBiZSB1c2VkIHRvIG1ha2Ug YQorKyAgICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGluIGxp YnRvb2wgMS40IHNlcmllcyB0bworKyAgICAgICMgaGFuZGxlIGJvdGggc2hhcmVkIGFuZCBzdGF0 aWMgbGlicmFyaWVzIGluIGEgc2luZ2xlIGNvbXBpbGF0aW9uLgorKyAgICAgICMgV2l0aCBsaWJ0 b29sIDEuNCwgZGVwZW5kZW5jaWVzIHdlcmUgb3V0cHV0IGluICRkaXIubGlicy8kYmFzZS5sby5k LgorKyAgICAgICMKKysgICAgICAjIFdpdGggbGlidG9vbCAxLjUgdGhpcyBleGNlcHRpb24gd2Fz IHJlbW92ZWQsIGFuZCBsaWJ0b29sIG5vdworKyAgICAgICMgZ2VuZXJhdGVzIDIgc2VwYXJhdGUg b2JqZWN0cyBmb3IgdGhlIDIgbGlicmFyaWVzLiAgVGhlc2UgdHdvCisrICAgICAgIyBjb21waWxh dGlvbnMgb3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uuby5kIGFuZAorKyAg ICAgICMgaW4gJGRpciRiYXNlLm8uZC4gIFdlIGhhdmUgdG8gY2hlY2sgZm9yIGJvdGggZmlsZXMs IGJlY2F1c2UKKysgICAgICAjIG9uZSBvZiB0aGUgdHdvIGNvbXBpbGF0aW9ucyBjYW4gYmUgZGlz YWJsZWQuICBXZSBzaG91bGQgcHJlZmVyCisrICAgICAgIyAkZGlyJGJhc2Uuby5kIG92ZXIgJGRp ci5saWJzLyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKKysgICAgICAjIGF1dG9tYXRp Y2FsbHkgY2xlYW5lZCB3aGVuIC5saWJzLyBpcyBkZWxldGVkLCB3aGlsZSBpZ25vcmluZworKyAg ICAgICMgdGhlIGZvcm1lciB3b3VsZCBjYXVzZSBhIGRpc3RjbGVhbmNoZWNrIHBhbmljLgorKyAg ICAgIHRtcGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0b29sIDEuNAorKyAg ICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5vLmQgICAgICAgICAgIyBsaWJ0b29sIDEuNQorKyAg ICAgIHRtcGRlcGZpbGUzPSRkaXIubGlicy8kYmFzZS5vLmQgICAgIyBsaWJ0b29sIDEuNQorKyAg ICAgIHRtcGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21wYXEgQ0NDIFY2LjIt NTA0CisrICAgICAgIiRAIiAtV2MsLU1ECisrICAgZWxzZQorKyAgICAgIHRtcGRlcGZpbGUxPSRk aXIkYmFzZS5vLmQKKysgICAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAorKyAgICAgIHRtcGRl cGZpbGUzPSRkaXIkYmFzZS5kCisrICAgICAgdG1wZGVwZmlsZTQ9JGRpciRiYXNlLmQKKysgICAg ICAiJEAiIC1NRAorKyAgIGZpCisrCisrICAgc3RhdD0kPworKyAgIGlmIHRlc3QgJHN0YXQgLWVx IDA7IHRoZW4gOgorKyAgIGVsc2UKKysgICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRl cGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgorKyAgICAgIGV4aXQgJHN0YXQK KysgICBmaQorKworKyAgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1wZGVw ZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCisrICAgZG8KKysgICAgIHRlc3Qg LWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgIGRvbmUKKysgICBpZiB0ZXN0IC1mICIkdG1w ZGVwZmlsZSI7IHRoZW4KKysgICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIg PCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgICAgICMgVGhhdCdzIGEgdGFiIGFuZCBh IHNwYWNlIGluIHRoZSBbXS4KKysgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcg LWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysgICBlbHNlCisrICAg ICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKysgICBmaQorKyAgIHJtIC1mICIkdG1wZGVw ZmlsZSIKKysgICA7OworKworKyNub3NpZGVlZmZlY3QpCisrICAjIFRoaXMgY29tbWVudCBhYm92 ZSBpcyB1c2VkIGJ5IGF1dG9tYWtlIHRvIHRlbGwgc2lkZS1lZmZlY3QKKysgICMgZGVwZW5kZW5j eSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCisrCisrZGFzaG1zdGRvdXQp CisrICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBj b21waWxlciAqbXVzdCoKKysgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0 byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCisrICAiJEAiIHx8IGV4aXQgJD8KKysKKysgICMg UmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7 IHRoZW4KKysgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbworKyAgICAg IHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysgIGZpCisrCisrICAjIFJlbW92ZSBgLW8g JG9iamVjdCcuCisrICBJRlM9IiAiCisrICBmb3IgYXJnCisrICBkbworKyAgICBjYXNlICRhcmcg aW4KKysgICAgLW8pCisrICAgICAgc2hpZnQKKysgICAgICA7OworKyAgICAkb2JqZWN0KQorKyAg ICAgIHNoaWZ0CisrICAgICAgOzsKKysgICAgKikKKysgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFy ZyIKKysgICAgICBzaGlmdCAjIGZub3JkCisrICAgICAgc2hpZnQgIyAkYXJnCisrICAgICAgOzsK KysgICAgZXNhYworKyAgZG9uZQorKworKyAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYgZGFzaG1m bGFnPS1NCisrICAjIFJlcXVpcmUgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIHNlYXJj aGluZyBmb3IgYDonCisrICAjIGluIHRoZSB0YXJnZXQgbmFtZS4gIFRoaXMgaXMgdG8gY29wZSB3 aXRoIERPUy1zdHlsZSBmaWxlbmFtZXM6CisrICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9m b28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgorKyAgIiRAIiAk ZGFzaG1mbGFnIHwKKysgICAgc2VkICdzOl5bICBdKlteOiBdW146XVteOl0qXDpbICAgIF0qOici JG9iamVjdCInXDogOicgPiAiJHRtcGRlcGZpbGUiCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBj YXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgdHIgJyAnICcKKysnIDwgIiR0bXBk ZXBmaWxlIiB8IFwKKysjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4n dCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGlu dG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisrICAgIHNlZCAtZSAncy9e XFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBm aWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKytkYXNoWG1zdGRvdXQpCisr ICAjIFRoaXMgY2FzZSBvbmx5IGV4aXN0cyB0byBzYXRpc2Z5IGRlcGVuZC5tNC4gIEl0IGlzIG5l dmVyIGFjdHVhbGx5CisrICAjIHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSByZWNvZ25p emVkIGluIHRoZSBwcmVhbWJsZS4KKysgIGV4aXQgMQorKyAgOzsKKysKKyttYWtlZGVwZW5kKQor KyAgIiRAIiB8fCBleGl0ICQ/CisrICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCisrICBpZiB0 ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2Rl PWNvbXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysgIGZp CisrICAjIFggbWFrZWRlcGVuZAorKyAgc2hpZnQKKysgIGNsZWFyZWQ9bm8KKysgIGZvciBhcmcg aW4gIiRAIjsgZG8KKysgICAgY2FzZSAkY2xlYXJlZCBpbgorKyAgICBubykKKysgICAgICBzZXQg IiI7IHNoaWZ0CisrICAgICAgY2xlYXJlZD15ZXMgOzsKKysgICAgZXNhYworKyAgICBjYXNlICIk YXJnIiBpbgorKyAgICAtRCp8LUkqKQorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hp ZnQgOzsKKysgICAgIyBTdHJpcCBhbnkgb3B0aW9uIHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90IHVu ZGVyc3RhbmQuICBSZW1vdmUKKysgICAgIyB0aGUgb2JqZWN0IHRvbywgb3RoZXJ3aXNlIG1ha2Vk ZXBlbmQgd2lsbCBwYXJzZSBpdCBhcyBhIHNvdXJjZSBmaWxlLgorKyAgICAtKnwkb2JqZWN0KQor KyAgICAgIDs7CisrICAgICopCisrICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7 OworKyAgICBlc2FjCisrICBkb25lCisrICBvYmpfc3VmZml4PSJgZWNobyAkb2JqZWN0IHwgc2Vk ICdzL14uKlwuLy4vJ2AiCisrICB0b3VjaCAiJHRtcGRlcGZpbGUiCisrICAke01BS0VERVBFTkQt bWFrZWRlcGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAiJEAiCisrICBybSAt ZiAiJGRlcGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgc2Vk ICcxLDJkJyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcKKysnIHwgXAorKyMjIFNvbWUgdmVyc2lv bnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisr IyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEg d29ya2Fyb3VuZC4KKysgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2Qn IHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUi ICIkdG1wZGVwZmlsZSIuYmFrCisrICA7OworKworK2NwcCkKKysgICMgSW1wb3J0YW50IG5vdGU6 IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgorKyAgIyBh bHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KKysgICIkQCIgfHwg ZXhpdCAkPworKworKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKysgIGlmIHRlc3Qg IiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29t cGlsZSc7IGRvCisrICAgICAgc2hpZnQKKysgICAgZG9uZQorKyAgICBzaGlmdAorKyAgZmkKKysK KysgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KKysgIElGUz0iICIKKysgIGZvciBhcmcKKysgIGRv CisrICAgIGNhc2UgJGFyZyBpbgorKyAgICAtbykKKysgICAgICBzaGlmdAorKyAgICAgIDs7Cisr ICAgICRvYmplY3QpCisrICAgICAgc2hpZnQKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIHNl dCBmbm9yZCAiJEAiICIkYXJnIgorKyAgICAgIHNoaWZ0ICMgZm5vcmQKKysgICAgICBzaGlmdCAj ICRhcmcKKysgICAgICA7OworKyAgICBlc2FjCisrICBkb25lCisrCisrICAiJEAiIC1FIHwKKysg ICAgc2VkIC1uIC1lICcvXiMgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAn IFwKKysgICAgICAgLWUgJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwx IFxcOnAnIHwKKysgICAgc2VkICckIHM6IFxcJDo6JyA+ICIkdG1wZGVwZmlsZSIKKysgIHJtIC1m ICIkZGVwZmlsZSIKKysgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisrICBjYXQg PCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysgIHNlZCA8ICIkdG1wZGVwZmlsZSIgJy9e JC9kO3MvXiAvLztzLyBcXCQvLztzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRt cGRlcGZpbGUiCisrICA7OworKworK21zdmlzdWFsY3BwKQorKyAgIyBJbXBvcnRhbnQgbm90ZTog aW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCisrICAjIGFs d2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LCByZWdhcmRsZXNzIG9m IC1vLAorKyAgIyBiZWNhdXNlIHdlIG11c3QgdXNlIC1vIHdoZW4gcnVubmluZyBsaWJ0b29sLgor KyAgIiRAIiB8fCBleGl0ICQ/CisrICBJRlM9IiAiCisrICBmb3IgYXJnCisrICBkbworKyAgICBj YXNlICIkYXJnIiBpbgorKyAgICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJIikK KysJc2V0IGZub3JkICIkQCIKKysJc2hpZnQKKysJc2hpZnQKKysJOzsKKysgICAgKikKKysJc2V0 IGZub3JkICIkQCIgIiRhcmciCisrCXNoaWZ0CisrCXNoaWZ0CisrCTs7CisrICAgIGVzYWMKKysg IGRvbmUKKysgICIkQCIgLUUgfAorKyAgc2VkIC1uICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFte Il0qXCkiLyBzOjplY2hvICJgY3lncGF0aCAtdSBcXCJcMVxcImAiOnAnIHwgc29ydCB8IHVuaXEg PiAiJHRtcGRlcGZpbGUiCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBlY2hvICIkb2JqZWN0IDog XFwiID4gIiRkZXBmaWxlIgorKyAgLiAiJHRtcGRlcGZpbGUiIHwgc2VkICdzJSAlXFwgJWcnIHwg c2VkIC1uICcvXlwoLipcKSQvIHM6OglcMSBcXDpwJyA+PiAiJGRlcGZpbGUiCisrICBlY2hvICIJ IiA+PiAiJGRlcGZpbGUiCisrICAuICIkdG1wZGVwZmlsZSIgfCBzZWQgJ3MlICVcXCAlZycgfCBz ZWQgLW4gJy9eXCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRt cGRlcGZpbGUiCisrICA7OworKworK25vbmUpCisrICBleGVjICIkQCIKKysgIDs7CisrCisrKikK KysgIGVjaG8gIlVua25vd24gZGVwbW9kZSAkZGVwbW9kZSIgMT4mMgorKyAgZXhpdCAxCisrICA7 OworK2VzYWMKKysKKytleGl0IDAKKysKKysjIExvY2FsIFZhcmlhYmxlczoKKysjIG1vZGU6IHNo ZWxsLXNjcmlwdAorKyMgc2gtaW5kZW50YXRpb246IDIKKysjIGV2YWw6IChhZGQtaG9vayAnd3Jp dGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2 ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorKyMg dGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L2NvbmZpZy9pbnN0YWxsLXNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvaW5zdGFsbC1zaAor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNoCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9pbnN0YWxs LXNoCTIwMDktMDUtMDMgMDA6MjA6MzkuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUxOSBA QAorKyMhL2Jpbi9zaAorKyMgaW5zdGFsbCAtIGluc3RhbGwgYSBwcm9ncmFtLCBzY3JpcHQsIG9y IGRhdGFmaWxlCisrCisrc2NyaXB0dmVyc2lvbj0yMDA2LTEyLTI1LjAwCisrCisrIyBUaGlzIG9y aWdpbmF0ZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKSwgd2hpY2gg d2FzCisrIyBsYXRlciByZWxlYXNlZCBpbiBYMTFSNiAoeGMvY29uZmlnL3V0aWwvaW5zdGFsbC5z aCkgd2l0aCB0aGUKKysjIGZvbGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UuCisrIworKyMg Q29weXJpZ2h0IChDKSAxOTk0IFggQ29uc29ydGl1bQorKyMKKysjIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNv cHkKKysjIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLCB0bworKyMgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKysjIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsIGFuZC9vcgorKyMgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKysjIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisrIworKyMgVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk ZWQgaW4KKysjIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3 YXJlLgorKyMKKysjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisrIyBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKysjIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBO TyBFVkVOVCBTSEFMTCBUSEUKKysjIFggQ09OU09SVElVTSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ TSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKysjIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQy0KKysjIFRJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisrIworKyMgRXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0 aGlzIG5vdGljZSwgdGhlIG5hbWUgb2YgdGhlIFggQ29uc29ydGl1bSBzaGFsbCBub3QKKysjIGJl IHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVz ZSBvciBvdGhlciBkZWFsLQorKyMgaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdpdGhvdXQgcHJpb3Ig d3JpdHRlbiBhdXRob3JpemF0aW9uIGZyb20gdGhlIFggQ29uc29yLQorKyMgdGl1bS4KKysjCisr IworKyMgRlNGIGNoYW5nZXMgdG8gdGhpcyBmaWxlIGFyZSBpbiB0aGUgcHVibGljIGRvbWFpbi4K KysjCisrIyBDYWxsaW5nIHRoaXMgc2NyaXB0IGluc3RhbGwtc2ggaXMgcHJlZmVycmVkIG92ZXIg aW5zdGFsbC5zaCwgdG8gcHJldmVudAorKyMgYG1ha2UnIGltcGxpY2l0IHJ1bGVzIGZyb20gY3Jl YXRpbmcgYSBmaWxlIGNhbGxlZCBpbnN0YWxsIGZyb20gaXQKKysjIHdoZW4gdGhlcmUgaXMgbm8g TWFrZWZpbGUuCisrIworKyMgVGhpcyBzY3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBCU0Qg aW5zdGFsbCBzY3JpcHQsIGJ1dCB3YXMgd3JpdHRlbgorKyMgZnJvbSBzY3JhdGNoLgorKworK25s PScKKysnCisrSUZTPSIgIiIJJG5sIgorKworKyMgc2V0IERPSVRQUk9HIHRvIGVjaG8gdG8gdGVz dCB0aGlzIHNjcmlwdAorKworKyMgRG9uJ3QgdXNlIDotIHNpbmNlIDQuM0JTRCBhbmQgZWFybGll ciBzaGVsbHMgZG9uJ3QgbGlrZSBpdC4KKytkb2l0PSR7RE9JVFBST0ctfQorK2lmIHRlc3QgLXog IiRkb2l0IjsgdGhlbgorKyAgZG9pdF9leGVjPWV4ZWMKKytlbHNlCisrICBkb2l0X2V4ZWM9JGRv aXQKKytmaQorKworKyMgUHV0IGluIGFic29sdXRlIGZpbGUgbmFtZXMgaWYgeW91IGRvbid0IGhh dmUgdGhlbSBpbiB5b3VyIHBhdGg7CisrIyBvciB1c2UgZW52aXJvbm1lbnQgdmFycy4KKysKKytj aGdycHByb2c9JHtDSEdSUFBST0ctY2hncnB9CisrY2htb2Rwcm9nPSR7Q0hNT0RQUk9HLWNobW9k fQorK2Nob3ducHJvZz0ke0NIT1dOUFJPRy1jaG93bn0KKytjbXBwcm9nPSR7Q01QUFJPRy1jbXB9 CisrY3Bwcm9nPSR7Q1BQUk9HLWNwfQorK21rZGlycHJvZz0ke01LRElSUFJPRy1ta2Rpcn0KKytt dnByb2c9JHtNVlBST0ctbXZ9Cisrcm1wcm9nPSR7Uk1QUk9HLXJtfQorK3N0cmlwcHJvZz0ke1NU UklQUFJPRy1zdHJpcH0KKysKKytwb3NpeF9nbG9iPSc/JworK2luaXRpYWxpemVfcG9zaXhfZ2xv Yj0nCisrICB0ZXN0ICIkcG9zaXhfZ2xvYiIgIT0gIj8iIHx8IHsKKysgICAgaWYgKHNldCAtZikg Mj4vZGV2L251bGw7IHRoZW4KKysgICAgICBwb3NpeF9nbG9iPQorKyAgICBlbHNlCisrICAgICAg cG9zaXhfZ2xvYj06CisrICAgIGZpCisrICB9CisrJworKworK3Bvc2l4X21rZGlyPQorKworKyMg RGVzaXJlZCBtb2RlIG9mIGluc3RhbGxlZCBmaWxlLgorK21vZGU9MDc1NQorKworK2NoZ3JwY21k PQorK2NobW9kY21kPSRjaG1vZHByb2cKKytjaG93bmNtZD0KKyttdmNtZD0kbXZwcm9nCisrcm1j bWQ9IiRybXByb2cgLWYiCisrc3RyaXBjbWQ9CisrCisrc3JjPQorK2RzdD0KKytkaXJfYXJnPQor K2RzdF9hcmc9CisrCisrY29weV9vbl9jaGFuZ2U9ZmFsc2UKKytub190YXJnZXRfZGlyZWN0b3J5 PQorKworK3VzYWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFstVF0gU1JDRklMRSBEU1RG SUxFCisrICAgb3I6ICQwIFtPUFRJT05dLi4uIFNSQ0ZJTEVTLi4uIERJUkVDVE9SWQorKyAgIG9y OiAkMCBbT1BUSU9OXS4uLiAtdCBESVJFQ1RPUlkgU1JDRklMRVMuLi4KKysgICBvcjogJDAgW09Q VElPTl0uLi4gLWQgRElSRUNUT1JJRVMuLi4KKysKKytJbiB0aGUgMXN0IGZvcm0sIGNvcHkgU1JD RklMRSB0byBEU1RGSUxFLgorK0luIHRoZSAybmQgYW5kIDNyZCwgY29weSBhbGwgU1JDRklMRVMg dG8gRElSRUNUT1JZLgorK0luIHRoZSA0dGgsIGNyZWF0ZSBESVJFQ1RPUklFUy4KKysKKytPcHRp b25zOgorKyAgICAgLS1oZWxwICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdC4KKysgICAg IC0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCisrCisrICAtYyAgICAg ICAgICAgIChpZ25vcmVkKQorKyAgLUMgICAgICAgICAgICBpbnN0YWxsIG9ubHkgaWYgZGlmZmVy ZW50IChwcmVzZXJ2ZSB0aGUgbGFzdCBkYXRhIG1vZGlmaWNhdGlvbiB0aW1lKQorKyAgLWQgICAg ICAgICAgICBjcmVhdGUgZGlyZWN0b3JpZXMgaW5zdGVhZCBvZiBpbnN0YWxsaW5nIGZpbGVzLgor KyAgLWcgR1JPVVAgICAgICAkY2hncnBwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBHUk9VUC4KKysg IC1tIE1PREUgICAgICAgJGNobW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KKysgIC1v IFVTRVIgICAgICAgJGNob3ducHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gVVNFUi4KKysgIC1zICAg ICAgICAgICAgJHN0cmlwcHJvZyBpbnN0YWxsZWQgZmlsZXMuCisrICAtdCBESVJFQ1RPUlkgIGlu c3RhbGwgaW50byBESVJFQ1RPUlkuCisrICAtVCAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvciBp ZiBEU1RGSUxFIGlzIGEgZGlyZWN0b3J5LgorKworK0Vudmlyb25tZW50IHZhcmlhYmxlcyBvdmVy cmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kczoKKysgIENIR1JQUFJPRyBDSE1PRFBST0cgQ0hPV05Q Uk9HIENNUFBST0cgQ1BQUk9HIE1LRElSUFJPRyBNVlBST0cKKysgIFJNUFJPRyBTVFJJUFBST0cK KysiCisrCisrd2hpbGUgdGVzdCAkIyAtbmUgMDsgZG8KKysgIGNhc2UgJDEgaW4KKysgICAgLWMp IDs7CisrCisrICAgIC1DKSBjb3B5X29uX2NoYW5nZT10cnVlOzsKKysKKysgICAgLWQpIGRpcl9h cmc9dHJ1ZTs7CisrCisrICAgIC1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKKysJc2hpZnQ7 OworKworKyAgICAtLWhlbHApIGVjaG8gIiR1c2FnZSI7IGV4aXQgJD87OworKworKyAgICAtbSkg bW9kZT0kMgorKwljYXNlICRtb2RlIGluCisrCSAgKicgJyogfCAqJwknKiB8IConCisrJyoJICB8 IConKicqIHwgKic/JyogfCAqJ1snKikKKysJICAgIGVjaG8gIiQwOiBpbnZhbGlkIG1vZGU6ICRt b2RlIiA+JjIKKysJICAgIGV4aXQgMTs7CisrCWVzYWMKKysJc2hpZnQ7OworKworKyAgICAtbykg Y2hvd25jbWQ9IiRjaG93bnByb2cgJDIiCisrCXNoaWZ0OzsKKysKKysgICAgLXMpIHN0cmlwY21k PSRzdHJpcHByb2c7OworKworKyAgICAtdCkgZHN0X2FyZz0kMgorKwlzaGlmdDs7CisrCisrICAg IC1UKSBub190YXJnZXRfZGlyZWN0b3J5PXRydWU7OworKworKyAgICAtLXZlcnNpb24pIGVjaG8g IiQwICRzY3JpcHR2ZXJzaW9uIjsgZXhpdCAkPzs7CisrCisrICAgIC0tKQlzaGlmdAorKwlicmVh azs7CisrCisrICAgIC0qKQllY2hvICIkMDogaW52YWxpZCBvcHRpb246ICQxIiA+JjIKKysJZXhp dCAxOzsKKysKKysgICAgKikgIGJyZWFrOzsKKysgIGVzYWMKKysgIHNoaWZ0CisrZG9uZQorKwor K2lmIHRlc3QgJCMgLW5lIDAgJiYgdGVzdCAteiAiJGRpcl9hcmckZHN0X2FyZyI7IHRoZW4KKysg ICMgV2hlbiAtZCBpcyB1c2VkLCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgZGlyZWN0b3Jp ZXMgdG8gY3JlYXRlLgorKyAgIyBXaGVuIC10IGlzIHVzZWQsIHRoZSBkZXN0aW5hdGlvbiBpcyBh bHJlYWR5IHNwZWNpZmllZC4KKysgICMgT3RoZXJ3aXNlLCB0aGUgbGFzdCBhcmd1bWVudCBpcyB0 aGUgZGVzdGluYXRpb24uICBSZW1vdmUgaXQgZnJvbSAkQC4KKysgIGZvciBhcmcKKysgIGRvCisr ICAgIGlmIHRlc3QgLW4gIiRkc3RfYXJnIjsgdGhlbgorKyAgICAgICMgJEAgaXMgbm90IGVtcHR5 OiBpdCBjb250YWlucyBhdCBsZWFzdCAkYXJnLgorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkZHN0 X2FyZyIKKysgICAgICBzaGlmdCAjIGZub3JkCisrICAgIGZpCisrICAgIHNoaWZ0ICMgYXJnCisr ICAgIGRzdF9hcmc9JGFyZworKyAgZG9uZQorK2ZpCisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhl bgorKyAgaWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVuCisrICAgIGVjaG8gIiQwOiBubyBpbnB1 dCBmaWxlIHNwZWNpZmllZC4iID4mMgorKyAgICBleGl0IDEKKysgIGZpCisrICAjIEl0J3MgT0sg dG8gY2FsbCBgaW5zdGFsbC1zaCAtZCcgd2l0aG91dCBhcmd1bWVudC4KKysgICMgVGhpcyBjYW4g aGFwcGVuIHdoZW4gY3JlYXRpbmcgY29uZGl0aW9uYWwgZGlyZWN0b3JpZXMuCisrICBleGl0IDAK KytmaQorKworK2lmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhlbgorKyAgdHJhcCAnKGV4aXQgJD8p OyBleGl0JyAxIDIgMTMgMTUKKysKKysgICMgU2V0IHVtYXNrIHNvIGFzIG5vdCB0byBjcmVhdGUg dGVtcHMgd2l0aCB0b28tZ2VuZXJvdXMgbW9kZXMuCisrICAjIEhvd2V2ZXIsICdzdHJpcCcgcmVx dWlyZXMgYm90aCByZWFkIGFuZCB3cml0ZSBhY2Nlc3MgdG8gdGVtcHMuCisrICBjYXNlICRtb2Rl IGluCisrICAgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgorKyAgICAqNjQ0KSBjcF91bWFzaz0x MzM7OworKyAgICAqNzU1KSBjcF91bWFzaz0yMjs7CisrCisrICAgICpbMC03XSkKKysgICAgICBp ZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCisrCXVfcGx1c19ydz0KKysgICAgICBlbHNlCisr CXVfcGx1c19ydz0nJSAyMDAnCisrICAgICAgZmkKKysgICAgICBjcF91bWFzaz1gZXhwciAnKCcg Nzc3IC0gJG1vZGUgJSAxMDAwICcpJyAkdV9wbHVzX3J3YDs7CisrICAgICopCisrICAgICAgaWYg dGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgorKwl1X3BsdXNfcnc9CisrICAgICAgZWxzZQorKwl1 X3BsdXNfcnc9LHUrcncKKysgICAgICBmaQorKyAgICAgIGNwX3VtYXNrPSRtb2RlJHVfcGx1c19y dzs7CisrICBlc2FjCisrZmkKKysKKytmb3Igc3JjCisrZG8KKysgICMgUHJvdGVjdCBuYW1lcyBz dGFydGluZyB3aXRoIGAtJy4KKysgIGNhc2UgJHNyYyBpbgorKyAgICAtKikgc3JjPS4vJHNyYzs7 CisrICBlc2FjCisrCisrICBpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KKysgICAgZHN0PSRz cmMKKysgICAgZHN0ZGlyPSRkc3QKKysgICAgdGVzdCAtZCAiJGRzdGRpciIKKysgICAgZHN0ZGly X3N0YXR1cz0kPworKyAgZWxzZQorKworKyAgICAjIFdhaXRpbmcgZm9yIHRoaXMgdG8gYmUgZGV0 ZWN0ZWQgYnkgdGhlICIkY3Bwcm9nICRzcmMgJGRzdHRtcCIgY29tbWFuZAorKyAgICAjIG1pZ2h0 IGNhdXNlIGRpcmVjdG9yaWVzIHRvIGJlIGNyZWF0ZWQsIHdoaWNoIHdvdWxkIGJlIGVzcGVjaWFs bHkgYmFkCisrICAgICMgaWYgJHNyYyAoYW5kIHRodXMgJGRzdHRtcCkgY29udGFpbnMgJyonLgor KyAgICBpZiB0ZXN0ICEgLWYgIiRzcmMiICYmIHRlc3QgISAtZCAiJHNyYyI7IHRoZW4KKysgICAg ICBlY2hvICIkMDogJHNyYyBkb2VzIG5vdCBleGlzdC4iID4mMgorKyAgICAgIGV4aXQgMQorKyAg ICBmaQorKworKyAgICBpZiB0ZXN0IC16ICIkZHN0X2FyZyI7IHRoZW4KKysgICAgICBlY2hvICIk MDogbm8gZGVzdGluYXRpb24gc3BlY2lmaWVkLiIgPiYyCisrICAgICAgZXhpdCAxCisrICAgIGZp CisrCisrICAgIGRzdD0kZHN0X2FyZworKyAgICAjIFByb3RlY3QgbmFtZXMgc3RhcnRpbmcgd2l0 aCBgLScuCisrICAgIGNhc2UgJGRzdCBpbgorKyAgICAgIC0qKSBkc3Q9Li8kZHN0OzsKKysgICAg ZXNhYworKworKyAgICAjIElmIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LCBhcHBlbmQgdGhl IGlucHV0IGZpbGVuYW1lOyB3b24ndCB3b3JrCisrICAgICMgaWYgZG91YmxlIHNsYXNoZXMgYXJl bid0IGlnbm9yZWQuCisrICAgIGlmIHRlc3QgLWQgIiRkc3QiOyB0aGVuCisrICAgICAgaWYgdGVz dCAtbiAiJG5vX3RhcmdldF9kaXJlY3RvcnkiOyB0aGVuCisrCWVjaG8gIiQwOiAkZHN0X2FyZzog SXMgYSBkaXJlY3RvcnkiID4mMgorKwlleGl0IDEKKysgICAgICBmaQorKyAgICAgIGRzdGRpcj0k ZHN0CisrICAgICAgZHN0PSRkc3RkaXIvYGJhc2VuYW1lICIkc3JjImAKKysgICAgICBkc3RkaXJf c3RhdHVzPTAKKysgICAgZWxzZQorKyAgICAgICMgUHJlZmVyIGRpcm5hbWUsIGJ1dCBmYWxsIGJh Y2sgb24gYSBzdWJzdGl0dXRlIGlmIGRpcm5hbWUgZmFpbHMuCisrICAgICAgZHN0ZGlyPWAKKysJ KGRpcm5hbWUgIiRkc3QiKSAyPi9kZXYvbnVsbCB8fAorKwlleHByIFgiJGRzdCIgOiAnWFwoLipb Xi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJICAgICBYIiRkc3QiIDogJ1hcKC8vXClbXi9d JyBcfCBcCisrCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgICAgIFgiJGRzdCIg OiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrCWVjaG8gWCIkZHN0IiB8CisrCSAgICBz ZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkJICAgcy8vXDEvCisrCQkg ICBxCisrCQkgfQorKwkJIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJCSAgIHMvL1wxLworKwkJICAg cQorKwkJIH0KKysJCSAvXlhcKFwvXC9cKSQveworKwkJICAgcy8vXDEvCisrCQkgICBxCisrCQkg fQorKwkJIC9eWFwoXC9cKS4qL3sKKysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSBz Ly4qLy4vOyBxJworKyAgICAgIGAKKysKKysgICAgICB0ZXN0IC1kICIkZHN0ZGlyIgorKyAgICAg IGRzdGRpcl9zdGF0dXM9JD8KKysgICAgZmkKKysgIGZpCisrCisrICBvYnNvbGV0ZV9ta2Rpcl91 c2VkPWZhbHNlCisrCisrICBpZiB0ZXN0ICRkc3RkaXJfc3RhdHVzICE9IDA7IHRoZW4KKysgICAg Y2FzZSAkcG9zaXhfbWtkaXIgaW4KKysgICAgICAnJykKKysJIyBDcmVhdGUgaW50ZXJtZWRpYXRl IGRpcnMgdXNpbmcgbW9kZSA3NTUgYXMgbW9kaWZpZWQgYnkgdGhlIHVtYXNrLgorKwkjIFRoaXMg aXMgbGlrZSBGcmVlQlNEICdpbnN0YWxsJyBhcyBvZiAxOTk3LTEwLTI4LgorKwl1bWFzaz1gdW1h c2tgCisrCWNhc2UgJHN0cmlwY21kLiR1bWFzayBpbgorKwkgICMgT3B0aW1pemUgY29tbW9uIGNh c2VzLgorKwkgICpbMjM2N11bMjM2N10pIG1rZGlyX3VtYXNrPSR1bWFzazs7CisrCSAgLiowWzAy XVswMl0gfCAuWzAyXVswMl0gfCAuWzAyXSkgbWtkaXJfdW1hc2s9MjI7OworKworKwkgICpbMC03 XSkKKysJICAgIG1rZGlyX3VtYXNrPWBleHByICR1bWFzayArIDIyIFwKKysJICAgICAgLSAkdW1h c2sgJSAxMDAgJSA0MCArICR1bWFzayAlIDIwIFwKKysJICAgICAgLSAkdW1hc2sgJSAxMCAlIDQg KyAkdW1hc2sgJSAyCisrCSAgICBgOzsKKysJICAqKSBta2Rpcl91bWFzaz0kdW1hc2ssZ28tdzs7 CisrCWVzYWMKKysKKysJIyBXaXRoIC1kLCBjcmVhdGUgdGhlIG5ldyBkaXJlY3Rvcnkgd2l0aCB0 aGUgdXNlci1zcGVjaWZpZWQgbW9kZS4KKysJIyBPdGhlcndpc2UsIHJlbHkgb24gJG1rZGlyX3Vt YXNrLgorKwlpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KKysJICBta2Rpcl9tb2RlPS1tJG1v ZGUKKysJZWxzZQorKwkgIG1rZGlyX21vZGU9CisrCWZpCisrCisrCXBvc2l4X21rZGlyPWZhbHNl CisrCWNhc2UgJHVtYXNrIGluCisrCSAgKlsxMjM1NjddWzAtN11bMC03XSkKKysJICAgICMgUE9T SVggbWtkaXIgLXAgc2V0cyB1K3d4IGJpdHMgcmVnYXJkbGVzcyBvZiB1bWFzaywgd2hpY2gKKysJ ICAgICMgaXMgaW5jb21wYXRpYmxlIHdpdGggRnJlZUJTRCAnaW5zdGFsbCcgd2hlbiAodW1hc2sg JiAzMDApICE9IDAuCisrCSAgICA7OworKwkgICopCisrCSAgICB0bXBkaXI9JHtUTVBESVItL3Rt cH0vaW5zJFJBTkRPTS0kJAorKwkgICAgdHJhcCAncmV0PSQ/OyBybWRpciAiJHRtcGRpci9kIiAi JHRtcGRpciIgMj4vZGV2L251bGw7IGV4aXQgJHJldCcgMAorKworKwkgICAgaWYgKHVtYXNrICRt a2Rpcl91bWFzayAmJgorKwkJZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkdG1w ZGlyL2QiKSA+L2Rldi9udWxsIDI+JjEKKysJICAgIHRoZW4KKysJICAgICAgaWYgdGVzdCAteiAi JGRpcl9hcmciIHx8IHsKKysJCSAgICMgQ2hlY2sgZm9yIFBPU0lYIGluY29tcGF0aWJpbGl0aWVz IHdpdGggLW0uCisrCQkgICAjIEhQLVVYIDExLjIzIGFuZCBJUklYIDYuNSBta2RpciAtbSAtcCBz ZXRzIGdyb3VwLSBvcgorKwkJICAgIyBvdGhlci13cml0ZWFibGUgYml0IG9mIHBhcmVudCBkaXJl Y3Rvcnkgd2hlbiBpdCBzaG91bGRuJ3QuCisrCQkgICAjIEZyZWVCU0QgNi4xIG1rZGlyIC1tIC1w IHNldHMgbW9kZSBvZiBleGlzdGluZyBkaXJlY3RvcnkuCisrCQkgICBsc19sZF90bXBkaXI9YGxz IC1sZCAiJHRtcGRpciJgCisrCQkgICBjYXNlICRsc19sZF90bXBkaXIgaW4KKysJCSAgICAgZD8/ Pz8tP3ItKikgZGlmZmVyZW50X21vZGU9NzAwOzsKKysJCSAgICAgZD8/Pz8tPy0tKikgZGlmZmVy ZW50X21vZGU9NzU1OzsKKysJCSAgICAgKikgZmFsc2U7OworKwkJICAgZXNhYyAmJgorKwkJICAg JG1rZGlycHJvZyAtbSRkaWZmZXJlbnRfbW9kZSAtcCAtLSAiJHRtcGRpciIgJiYgeworKwkJICAg ICBsc19sZF90bXBkaXJfMT1gbHMgLWxkICIkdG1wZGlyImAKKysJCSAgICAgdGVzdCAiJGxzX2xk X3RtcGRpciIgPSAiJGxzX2xkX3RtcGRpcl8xIgorKwkJICAgfQorKwkJIH0KKysJICAgICAgdGhl biBwb3NpeF9ta2Rpcj06CisrCSAgICAgIGZpCisrCSAgICAgIHJtZGlyICIkdG1wZGlyL2QiICIk dG1wZGlyIgorKwkgICAgZWxzZQorKwkgICAgICAjIFJlbW92ZSBhbnkgZGlycyBsZWZ0IGJlaGlu ZCBieSBhbmNpZW50IG1rZGlyIGltcGxlbWVudGF0aW9ucy4KKysJICAgICAgcm1kaXIgLi8kbWtk aXJfbW9kZSAuLy1wIC4vLS0gMj4vZGV2L251bGwKKysJICAgIGZpCisrCSAgICB0cmFwICcnIDA7 OworKwllc2FjOzsKKysgICAgZXNhYworKworKyAgICBpZgorKyAgICAgICRwb3NpeF9ta2RpciAm JiAoCisrCXVtYXNrICRta2Rpcl91bWFzayAmJgorKwkkZG9pdF9leGVjICRta2RpcnByb2cgJG1r ZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiCisrICAgICAgKQorKyAgICB0aGVuIDoKKysgICAgZWxz ZQorKworKyAgICAgICMgVGhlIHVtYXNrIGlzIHJpZGljdWxvdXMsIG9yIG1rZGlyIGRvZXMgbm90 IGNvbmZvcm0gdG8gUE9TSVgsCisrICAgICAgIyBvciBpdCBmYWlsZWQgcG9zc2libHkgZHVlIHRv IGEgcmFjZSBjb25kaXRpb24uICBDcmVhdGUgdGhlCisrICAgICAgIyBkaXJlY3RvcnkgdGhlIHNs b3cgd2F5LCBzdGVwIGJ5IHN0ZXAsIGNoZWNraW5nIGZvciByYWNlcyBhcyB3ZSBnby4KKysKKysg ICAgICBjYXNlICRkc3RkaXIgaW4KKysJLyopIHByZWZpeD0nLyc7OworKwktKikgcHJlZml4PScu Lyc7OworKwkqKSAgcHJlZml4PScnOzsKKysgICAgICBlc2FjCisrCisrICAgICAgZXZhbCAiJGlu aXRpYWxpemVfcG9zaXhfZ2xvYiIKKysKKysgICAgICBvSUZTPSRJRlMKKysgICAgICBJRlM9Lwor KyAgICAgICRwb3NpeF9nbG9iIHNldCAtZgorKyAgICAgIHNldCBmbm9yZCAkZHN0ZGlyCisrICAg ICAgc2hpZnQKKysgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YKKysgICAgICBJRlM9JG9JRlMKKysK KysgICAgICBwcmVmaXhlcz0KKysKKysgICAgICBmb3IgZAorKyAgICAgIGRvCisrCXRlc3QgLXog IiRkIiAmJiBjb250aW51ZQorKworKwlwcmVmaXg9JHByZWZpeCRkCisrCWlmIHRlc3QgLWQgIiRw cmVmaXgiOyB0aGVuCisrCSAgcHJlZml4ZXM9CisrCWVsc2UKKysJICBpZiAkcG9zaXhfbWtkaXI7 IHRoZW4KKysJICAgICh1bWFzaz0kbWtkaXJfdW1hc2sgJiYKKysJICAgICAkZG9pdF9leGVjICRt a2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiKSAmJiBicmVhaworKwkgICAgIyBE b24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5LgorKwkg ICAgdGVzdCAtZCAiJHByZWZpeCIgfHwgZXhpdCAxCisrCSAgZWxzZQorKwkgICAgY2FzZSAkcHJl Zml4IGluCisrCSAgICAgICpcJyopIHFwcmVmaXg9YGVjaG8gIiRwcmVmaXgiIHwgc2VkICJzLycv J1xcXFxcXFxcJycvZyJgOzsKKysJICAgICAgKikgcXByZWZpeD0kcHJlZml4OzsKKysJICAgIGVz YWMKKysJICAgIHByZWZpeGVzPSIkcHJlZml4ZXMgJyRxcHJlZml4JyIKKysJICBmaQorKwlmaQor KwlwcmVmaXg9JHByZWZpeC8KKysgICAgICBkb25lCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHBy ZWZpeGVzIjsgdGhlbgorKwkjIERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmlu ZyBjb25jdXJyZW50bHkuCisrCSh1bWFzayAkbWtkaXJfdW1hc2sgJiYKKysJIGV2YWwgIlwkZG9p dF9leGVjIFwkbWtkaXJwcm9nICRwcmVmaXhlcyIpIHx8CisrCSAgdGVzdCAtZCAiJGRzdGRpciIg fHwgZXhpdCAxCisrCW9ic29sZXRlX21rZGlyX3VzZWQ9dHJ1ZQorKyAgICAgIGZpCisrICAgIGZp CisrICBmaQorKworKyAgaWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCisrICAgIHsgdGVzdCAt eiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRkc3QiOyB9ICYmCisrICAgIHsgdGVz dCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBjbWQgIiRkc3QiOyB9ICYmCisrICAgIHsg dGVzdCAiJG9ic29sZXRlX21rZGlyX3VzZWQkY2hvd25jbWQkY2hncnBjbWQiID0gZmFsc2UgfHwK KysgICAgICB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRz dCI7IH0gfHwgZXhpdCAxCisrICBlbHNlCisrCisrICAgICMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1w IGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3RvcnkuCisrICAgIGRzdHRtcD0kZHN0ZGly L19pbnN0LiQkXworKyAgICBybXRtcD0kZHN0ZGlyL19ybS4kJF8KKysKKysgICAgIyBUcmFwIHRv IGNsZWFuIHVwIHRob3NlIHRlbXAgZmlsZXMgYXQgZXhpdC4KKysgICAgdHJhcCAncmV0PSQ/OyBy bSAtZiAiJGRzdHRtcCIgIiRybXRtcCIgJiYgZXhpdCAkcmV0JyAwCisrCisrICAgICMgQ29weSB0 aGUgZmlsZSBuYW1lIHRvIHRoZSB0ZW1wIG5hbWUuCisrICAgICh1bWFzayAkY3BfdW1hc2sgJiYg JGRvaXRfZXhlYyAkY3Bwcm9nICIkc3JjIiAiJGRzdHRtcCIpICYmCisrCisrICAgICMgYW5kIHNl dCBhbnkgb3B0aW9uczsgZG8gY2htb2QgbGFzdCB0byBwcmVzZXJ2ZSBzZXR1aWQgYml0cy4KKysg ICAgIworKyAgICAjIElmIGFueSBvZiB0aGVzZSBmYWlsLCB3ZSBhYm9ydCB0aGUgd2hvbGUgdGhp bmcuICBJZiB3ZSB3YW50IHRvCisrICAgICMgaWdub3JlIGVycm9ycyBmcm9tIGFueSBvZiB0aGVz ZSwganVzdCBtYWtlIHN1cmUgbm90IHRvIGlnbm9yZQorKyAgICAjIGVycm9ycyBmcm9tIHRoZSBh Ym92ZSAiJGRvaXQgJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCisrICAgICMKKysgICAg eyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdHRtcCI7IH0gJiYK KysgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdHRtcCI7 IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkc3RyaXBjbWQiIHx8ICRkb2l0ICRzdHJpcGNtZCAiJGRz dHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNt ZCAkbW9kZSAiJGRzdHRtcCI7IH0gJiYKKysKKysgICAgIyBJZiAtQywgZG9uJ3QgYm90aGVyIHRv IGNvcHkgaWYgaXQgd291bGRuJ3QgY2hhbmdlIHRoZSBmaWxlLgorKyAgICBpZiAkY29weV9vbl9j aGFuZ2UgJiYKKysgICAgICAgb2xkPWBMQ19BTEw9QyBscyAtZGxMICIkZHN0IgkyPi9kZXYvbnVs bGAgJiYKKysgICAgICAgbmV3PWBMQ19BTEw9QyBscyAtZGxMICIkZHN0dG1wIgkyPi9kZXYvbnVs bGAgJiYKKysKKysgICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIgJiYKKysgICAg ICAgJHBvc2l4X2dsb2Igc2V0IC1mICYmCisrICAgICAgIHNldCBYICRvbGQgJiYgb2xkPTokMjok NDokNTokNiAmJgorKyAgICAgICBzZXQgWCAkbmV3ICYmIG5ldz06JDI6JDQ6JDU6JDYgJiYKKysg ICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmICYmCisrCisrICAgICAgIHRlc3QgIiRvbGQiID0gIiRu ZXciICYmCisrICAgICAgICRjbXBwcm9nICIkZHN0IiAiJGRzdHRtcCIgPi9kZXYvbnVsbCAyPiYx CisrICAgIHRoZW4KKysgICAgICBybSAtZiAiJGRzdHRtcCIKKysgICAgZWxzZQorKyAgICAgICMg UmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0aW9uLgorKyAgICAgICRkb2l0ICRt dmNtZCAtZiAiJGRzdHRtcCIgIiRkc3QiIDI+L2Rldi9udWxsIHx8CisrCisrICAgICAgIyBUaGUg cmVuYW1lIGZhaWxlZCwgcGVyaGFwcyBiZWNhdXNlIG12IGNhbid0IHJlbmFtZSBzb21ldGhpbmcg ZWxzZQorKyAgICAgICMgdG8gaXRzZWxmLCBvciBwZXJoYXBzIGJlY2F1c2UgbXYgaXMgc28gYW5j aWVudCB0aGF0IGl0IGRvZXMgbm90CisrICAgICAgIyBzdXBwb3J0IC1mLgorKyAgICAgIHsKKysJ IyBOb3cgcmVtb3ZlIG9yIG1vdmUgYXNpZGUgYW55IG9sZCBmaWxlIGF0IGRlc3RpbmF0aW9uIGxv Y2F0aW9uLgorKwkjIFdlIHRyeSB0aGlzIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGluayBp dHNlbGYgb24gc29tZQorKwkjIHN5c3RlbXMgYW5kIHRoZSBkZXN0aW5hdGlvbiBmaWxlIG1pZ2h0 IGJlIGJ1c3kgZm9yIG90aGVyCisrCSMgcmVhc29ucy4gIEluIHRoaXMgY2FzZSwgdGhlIGZpbmFs IGNsZWFudXAgbWlnaHQgZmFpbCBidXQgdGhlIG5ldworKwkjIGZpbGUgc2hvdWxkIHN0aWxsIGlu c3RhbGwgc3VjY2Vzc2Z1bGx5LgorKwl7CisrCSAgdGVzdCAhIC1mICIkZHN0IiB8fAorKwkgICRk b2l0ICRybWNtZCAtZiAiJGRzdCIgMj4vZGV2L251bGwgfHwKKysJICB7ICRkb2l0ICRtdmNtZCAt ZiAiJGRzdCIgIiRybXRtcCIgMj4vZGV2L251bGwgJiYKKysJICAgIHsgJGRvaXQgJHJtY21kIC1m ICIkcm10bXAiIDI+L2Rldi9udWxsOyA6OyB9CisrCSAgfSB8fAorKwkgIHsgZWNobyAiJDA6IGNh bm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3QiID4mMgorKwkgICAgKGV4aXQgMSk7IGV4aXQgMQor KwkgIH0KKysJfSAmJgorKworKwkjIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVz dGluYXRpb24uCisrCSRkb2l0ICRtdmNtZCAiJGRzdHRtcCIgIiRkc3QiCisrICAgICAgfQorKyAg ICBmaSB8fCBleGl0IDEKKysKKysgICAgdHJhcCAnJyAwCisrICBmaQorK2RvbmUKKysKKysjIExv Y2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGlt ZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUt c3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC1lbmQ6ICIk IgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG1haW4uc2gg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG1haW4uc2gKKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9jb25maWcvbHRtYWluLnNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG1haW4uc2gJMjAwOC0wOC0zMCAwMDoyNzox MC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNjk1NiBAQAorKyMgbHRtYWluLnNoIC0gUHJv dmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBO T1RFOiBDaGFuZ2luZyB0aGlzIGZpbGUgd2lsbCBub3QgYWZmZWN0IGFueXRoaW5nIHVudGlsIHlv dSByZXJ1biBjb25maWd1cmUuCisrIworKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4 LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LAorKyMgMjAwNywgMjAw OCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBPcmlnaW5hbGx5IGJ5IEdvcmRv biBNYXR6aWdrZWl0IDxnb3JkQGdudS5haS5taXQuZWR1PiwgMTk5NgorKyMKKysjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorKyMgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysj IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKKysjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKyMKKysjIEFzIGEgc3BlY2lhbCBl eGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysjIGRp c3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQor KyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGlu Y2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1 c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysKKytiYXNlbmFtZT0icyxeLiovLCxn IgorKworKyMgV29yayBhcm91bmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZSBvbiBJUklY IDYuNS4gT24gSVJJWCA2LjQrLCBzaAorKyMgaXMga3NoIGJ1dCB3aGVuIHRoZSBzaGVsbCBpcyBp bnZva2VkIGFzICJzaCIgYW5kIHRoZSBjdXJyZW50IHZhbHVlIG9mCisrIyB0aGUgX1hQRyBlbnZp cm9ubWVudCB2YXJpYWJsZSBpcyBub3QgZXF1YWwgdG8gMSAob25lKSwgdGhlIHNwZWNpYWwKKysj IHBvc2l0aW9uYWwgcGFyYW1ldGVyICQwLCB3aXRoaW4gYSBmdW5jdGlvbiBjYWxsLCBpcyB0aGUg bmFtZSBvZiB0aGUKKysjIGZ1bmN0aW9uLgorK3Byb2dwYXRoPSIkMCIKKysKKysjIFRoZSBuYW1l IG9mIHRoaXMgcHJvZ3JhbToKKytwcm9nbmFtZT1gZWNobyAiJHByb2dwYXRoIiB8ICRTRUQgJGJh c2VuYW1lYAorK21vZGVuYW1lPSIkcHJvZ25hbWUiCisrCisrIyBHbG9iYWwgdmFyaWFibGVzOgor K0VYSVRfU1VDQ0VTUz0wCisrRVhJVF9GQUlMVVJFPTEKKysKKytQUk9HUkFNPWx0bWFpbi5zaAor K1BBQ0tBR0U9bGlidG9vbAorK1ZFUlNJT049MS41LjI2CisrVElNRVNUQU1QPSIgKDEuMTIyMC4y LjQ5MyAyMDA4LzAyLzAxIDE2OjU4OjE4KSIKKysKKysjIEJlIEJvdXJuZSBjb21wYXRpYmxlICh0 YWtlbiBmcm9tIEF1dG9jb25mOl9BU19CT1VSTkVfQ09NUEFUSUJMRSkuCisraWYgdGVzdCAtbiAi JHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVu CisrICBlbXVsYXRlIHNoCisrICBOVUxMQ01EPToKKysgICMgWnNoIDMueCBhbmQgNC54IHBlcmZv cm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkg dG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIk QCJ9Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNl dCAtbykgMj4vZGV2L251bGxgIGluICpwb3NpeCopIHNldCAtbyBwb3NpeDs7IGVzYWMKKytmaQor K0JJTl9TSD14cGc0OyBleHBvcnQgQklOX1NIICMgZm9yIFRydTY0CisrRFVBTENBU0U9MTsgZXhw b3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAorKworKyMgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29y a2luZyAkZWNoby4KKytpZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAjIERp c2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKysgIHNoaWZ0CisrZWxp ZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUg ZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGAo JGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCisrICAjIFlpcHBlZSwgJGVj aG8gd29ya3MhCisrICA6CisrZWxzZQorKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNo ZWxsLCBhbmQgdGhlbiBtYXliZSAkZWNobyB3aWxsIHdvcmsuCisrICBleGVjICRTSEVMTCAiJHBy b2dwYXRoIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KKytmaQorKworK2lmIHRlc3QgIlgkMSIgPSBY LS1mYWxsYmFjay1lY2hvOyB0aGVuCisrICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobworKyAgc2hp ZnQKKysgIGNhdCA8PEVPRgorKyQqCisrRU9GCisrICBleGl0ICRFWElUX1NVQ0NFU1MKKytmaQor KworK2RlZmF1bHRfbW9kZT0KKytoZWxwPSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4iCisrbWFnaWM9IiUlJU1BR0lDIHZhcmlhYmxlJSUlIgorK21rZGlyPSJt a2RpciIKKyttdj0ibXYgLWYiCisrcm09InJtIC1mIgorKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0 aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKKysjIG1l dGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBz dHJpbmdzLgorK1hzZWQ9IiR7U0VEfSInIC1lIDFzL15YLy8nCisrc2VkX3F1b3RlX3N1YnN0PSdz L1woW1xcYFxcIiRcXFxcXVwpL1xcXDEvZycKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2Fz ZSBgZWNobyBYfHRyIFggJ1wxMDEnYCBpbgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAg ICAjIFxuIGlzIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNi L3RyCisrICBTUDJOTD0ndHIgXDA0MCBcMDEyJworKyAgTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBc MDQwJworKyAgOzsKKysgKikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBTUDJOTD0ndHIgXDEw MCBcbicKKysgIE5MMlNQPSd0ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrCisrIyBO TFMgbnVpc2FuY2VzLgorKyMgT25seSBzZXQgTEFORyBhbmQgTENfQUxMIHRvIEMgaWYgYWxyZWFk eSBzZXQuCisrIyBUaGVzZSBtdXN0IG5vdCBiZSBzZXQgdW5jb25kaXRpb25hbGx5IGJlY2F1c2Ug bm90IGFsbCBzeXN0ZW1zIHVuZGVyc3RhbmQKKysjIGUuZy4gTEFORz1DIChub3RhYmx5IFNDTyku CisrIyBXZSBzYXZlIHRoZSBvbGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9k ZS4KKytsdF9lbnY9CisrZm9yIGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQ RSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCisrZG8KKysgIGV2YWwgImlmIHRlc3QgXCJcJHskbHRf dmFyK3NldH1cIiA9IHNldDsgdGhlbgorKwkgIHNhdmVfJGx0X3Zhcj1cJCRsdF92YXIKKysJICBs dF9lbnY9XCIkbHRfdmFyPVwkJGx0X3ZhciBcJGx0X2VudlwiCisrCSAgJGx0X3Zhcj1DCisrCSAg ZXhwb3J0ICRsdF92YXIKKysJZmkiCisrZG9uZQorKworK2lmIHRlc3QgLW4gIiRsdF9lbnYiOyB0 aGVuCisrICBsdF9lbnY9ImVudiAkbHRfZW52IgorK2ZpCisrCisrIyBNYWtlIHN1cmUgSUZTIGhh cyBhIHNlbnNpYmxlIGRlZmF1bHQKKytsdF9ubD0nCisrJworK0lGUz0iIAkkbHRfbmwiCisrCisr aWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIHRlc3QgIiRidWlsZF9vbGRf bGlicyIgIT0geWVzOyB0aGVuCisrICAkZWNobyAiJG1vZGVuYW1lOiBub3QgY29uZmlndXJlZCB0 byBidWlsZCBhbnkga2luZCBvZiBsaWJyYXJ5IiAxPiYyCisrICAkZWNobyAiRmF0YWwgY29uZmln dXJhdGlvbiBlcnJvci4gIFNlZSB0aGUgJFBBQ0tBR0UgZG9jcyBmb3IgbW9yZSBpbmZvcm1hdGlv bi4iIDE+JjIKKysgIGV4aXQgJEVYSVRfRkFJTFVSRQorK2ZpCisrCisrIyBHbG9iYWwgdmFyaWFi bGVzLgorK21vZGU9JGRlZmF1bHRfbW9kZQorK25vbm9wdD0KKytwcmV2PQorK3ByZXZvcHQ9Cisr cnVuPQorK3Nob3c9IiRlY2hvIgorK3Nob3dfaGVscD0KKytleGVjdXRlX2RsZmlsZXM9CisrZHVw bGljYXRlX2RlcHM9bm8KKytwcmVzZXJ2ZV9hcmdzPQorK2xvMm89InMvXFwubG9cJC8uJHtvYmpl eHR9LyIKKytvMmxvPSJzL1xcLiR7b2JqZXh0fVwkLy5sby8iCisrZXh0cmFjdGVkX2FyY2hpdmVz PQorK2V4dHJhY3RlZF9zZXJpYWw9MAorKworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKysjIFNoZWxsIGZ1bmN0aW9uIGRlZmluaXRpb25zOgorKyMgVGhpcyBzZWVtcyB0 byBiZSB0aGUgYmVzdCBwbGFjZSBmb3IgdGhlbQorKworKyMgZnVuY19ta3RlbXBkaXIgW3N0cmlu Z10KKysjIE1ha2UgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRoYXQgd29uJ3QgY2xhc2ggd2l0aCBv dGhlciBydW5uaW5nCisrIyBsaWJ0b29sIHByb2Nlc3NlcywgYW5kIGF2b2lkcyByYWNlIGNvbmRp dGlvbnMgaWYgcG9zc2libGUuICBJZgorKyMgZ2l2ZW4sIFNUUklORyBpcyB0aGUgYmFzZW5hbWUg Zm9yIHRoYXQgZGlyZWN0b3J5LgorK2Z1bmNfbWt0ZW1wZGlyICgpCisreworKyAgICBteV90ZW1w bGF0ZT0iJHtUTVBESVItL3RtcH0vJHsxLSRwcm9nbmFtZX0iCisrCisrICAgIGlmIHRlc3QgIiRy dW4iID0gIjoiOyB0aGVuCisrICAgICAgIyBSZXR1cm4gYSBkaXJlY3RvcnkgbmFtZSwgYnV0IGRv bid0IGNyZWF0ZSBpdCBpbiBkcnktcnVuIG1vZGUKKysgICAgICBteV90bXBkaXI9IiR7bXlfdGVt cGxhdGV9LSQkIgorKyAgICBlbHNlCisrCisrICAgICAgIyBJZiBta3RlbXAgd29ya3MsIHVzZSB0 aGF0IGZpcnN0IGFuZCBmb3JlbW9zdAorKyAgICAgIG15X3RtcGRpcj1gbWt0ZW1wIC1kICIke215 X3RlbXBsYXRlfS1YWFhYWFhYWCIgMj4vZGV2L251bGxgCisrCisrICAgICAgaWYgdGVzdCAhIC1k ICIkbXlfdG1wZGlyIjsgdGhlbgorKwkjIEZhaWxpbmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1 c2UgJFJBTkRPTSB0byBhdm9pZCBhIHJhY2UKKysJbXlfdG1wZGlyPSIke215X3RlbXBsYXRlfS0k e1JBTkRPTS0wfSQkIgorKworKwlzYXZlX21rdGVtcGRpcl91bWFzaz1gdW1hc2tgCisrCXVtYXNr IDAwNzcKKysJJG1rZGlyICIkbXlfdG1wZGlyIgorKwl1bWFzayAkc2F2ZV9ta3RlbXBkaXJfdW1h c2sKKysgICAgICBmaQorKworKyAgICAgICMgSWYgd2UncmUgbm90IGluIGRyeS1ydW4gbW9kZSwg Ym9tYiBvdXQgb24gZmFpbHVyZQorKyAgICAgIHRlc3QgLWQgIiRteV90bXBkaXIiIHx8IHsKKysg ICAgICAgICRlY2hvICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1w ZGlyJyIgMT4mMgorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgICB9CisrICAgIGZpCisrCisr ICAgICRlY2hvICJYJG15X3RtcGRpciIgfCAkWHNlZAorK30KKysKKysKKysjIGZ1bmNfd2luMzJf bGliaWQgYXJnCisrIyByZXR1cm4gdGhlIGxpYnJhcnkgdHlwZSBvZiBmaWxlICdhcmcnCisrIwor KyMgTmVlZCBhIGxvdCBvZiBnb28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGli cworKyMgSGFzIHRvIGJlIGEgc2hlbGwgZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFy Z3VtZW50CisrIyB0aGF0IGlzIHN1cHBsaWVkIHdoZW4gJGZpbGVfbWFnaWNfY29tbWFuZCBpcyBj YWxsZWQuCisrZnVuY193aW4zMl9saWJpZCAoKQorK3sKKysgIHdpbjMyX2xpYmlkX3R5cGU9InVu a25vd24iCisrICB3aW4zMl9maWxlcmVzPWBmaWxlIC1MICQxIDI+L2Rldi9udWxsYAorKyAgY2Fz ZSAkd2luMzJfZmlsZXJlcyBpbgorKyAgKmFyXCBhcmNoaXZlXCBpbXBvcnRcIGxpYnJhcnkqKSAj IGRlZmluaXRlbHkgaW1wb3J0CisrICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGlt cG9ydCIKKysgICAgOzsKKysgICphclwgYXJjaGl2ZSopICMgY291bGQgYmUgYW4gaW1wb3J0LCBv ciBzdGF0aWMKKysgICAgaWYgZXZhbCAkT0JKRFVNUCAtZiAkMSB8ICRTRUQgLWUgJzEwcScgMj4v ZGV2L251bGwgfCBcCisrICAgICAgJEVHUkVQIC1lICdmaWxlIGZvcm1hdCBwZS1pMzg2KC4qYXJj aGl0ZWN0dXJlOiBpMzg2KT8nID4vZGV2L251bGwgOyB0aGVuCisrICAgICAgd2luMzJfbm1yZXM9 YGV2YWwgJE5NIC1mIHBvc2l4IC1BICQxIHwgXAorKwkkU0VEIC1uIC1lICcxLDEwMHsKKysJCS8g SSAveworKwkJCXMsLiosaW1wb3J0LAorKwkJCXAKKysJCQlxCisrCQkJfQorKwkJfSdgCisrICAg ICAgY2FzZSAkd2luMzJfbm1yZXMgaW4KKysgICAgICBpbXBvcnQqKSAgd2luMzJfbGliaWRfdHlw ZT0ieDg2IGFyY2hpdmUgaW1wb3J0Ijs7CisrICAgICAgKikgICAgICAgIHdpbjMyX2xpYmlkX3R5 cGU9Ing4NiBhcmNoaXZlIHN0YXRpYyI7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgOzsK KysgICpETEwqKQorKyAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgorKyAgICA7OworKyAg KmV4ZWN1dGFibGUqKSAjIGJ1dCBzaGVsbCBzY3JpcHRzIGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4u CisrICAgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KKysgICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50 ZWwqKQorKyAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCisrICAgICAgOzsKKysgICAg ZXNhYworKyAgICA7OworKyAgZXNhYworKyAgJGVjaG8gJHdpbjMyX2xpYmlkX3R5cGUKKyt9Cisr CisrCisrIyBmdW5jX2luZmVyX3RhZyBhcmcKKysjIEluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9u IHRvIHVzZSBpZiBhbnkgYXJlIGF2YWlsYWJsZSBhbmQKKysjIGlmIG9uZSB3YXNuJ3QgY2hvc2Vu IHZpYSB0aGUgIi0tdGFnIiBjb21tYW5kIGxpbmUgb3B0aW9uLgorKyMgT25seSBhdHRlbXB0IHRo aXMgaWYgdGhlIGNvbXBpbGVyIGluIHRoZSBiYXNlIGNvbXBpbGUKKysjIGNvbW1hbmQgZG9lc24n dCBtYXRjaCB0aGUgZGVmYXVsdCBjb21waWxlci4KKysjIGFyZyBpcyB1c3VhbGx5IG9mIHRoZSBm b3JtICdnY2MgLi4uJworK2Z1bmNfaW5mZXJfdGFnICgpCisreworKyAgICBpZiB0ZXN0IC1uICIk YXZhaWxhYmxlX3RhZ3MiICYmIHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgorKyAgICAgIENDX3F1 b3RlZD0KKysgICAgICBmb3IgYXJnIGluICRDQzsgZG8KKysJY2FzZSAkYXJnIGluCisrCSAgKltc W1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrCSAgYXJnPSJc IiRhcmdcIiIKKysJICA7OworKwllc2FjCisrCUNDX3F1b3RlZD0iJENDX3F1b3RlZCAkYXJnIgor KyAgICAgIGRvbmUKKysgICAgICBjYXNlICRAIGluCisrICAgICAgIyBCbGFua3MgaW4gdGhlIGNv bW1hbmQgbWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVsbCwKKysgICAg ICAjIGJ1dCBub3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBjb25maWd1 cmUgd2FzIHJ1bi4KKysgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkZWNobyAkQ0NgICIq IHwgImAkZWNobyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIg YCRlY2hvICRDQ19xdW90ZWRgICIqIHwgImAkZWNobyAkQ0NfcXVvdGVkYCAiKikgOzsKKysgICAg ICAjIEJsYW5rcyBhdCB0aGUgc3RhcnQgb2YgJGJhc2VfY29tcGlsZSB3aWxsIGNhdXNlIHRoaXMg dG8gZmFpbAorKyAgICAgICMgaWYgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZW0gYXMgd2VsbC4KKysg ICAgICAqKQorKwlmb3IgeiBpbiAkYXZhaWxhYmxlX3RhZ3M7IGRvCisrCSAgaWYgZ3JlcCAiXiMg IyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9u dWxsOyB0aGVuCisrCSAgICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgorKwkgICAgZXZh bCAiYCR7U0VEfSAtbiAtZSAnL14jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICckeick LywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIK KysJICAgIENDX3F1b3RlZD0KKysJICAgIGZvciBhcmcgaW4gJENDOyBkbworKwkgICAgIyBEb3Vi bGUtcXVvdGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgorKwkg ICAgY2FzZSAkYXJnIGluCisrCSAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/ XCdcIFwJXSp8Kl0qfCIiKQorKwkgICAgICBhcmc9IlwiJGFyZ1wiIgorKwkgICAgICA7OworKwkg ICAgZXNhYworKwkgICAgQ0NfcXVvdGVkPSIkQ0NfcXVvdGVkICRhcmciCisrCSAgZG9uZQorKwkg ICAgY2FzZSAiJEAgIiBpbgorKwkgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkZWNobyAk Q0NgICIqIHwgImAkZWNobyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAi KiB8ICIgYCRlY2hvICRDQ19xdW90ZWRgICIqIHwgImAkZWNobyAkQ0NfcXVvdGVkYCAiKikKKysJ ICAgICAgIyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1hdGNoZXMK KysJICAgICAgIyB0aGUgb25lIGluIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbi4KKysJICAgICAg IyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4KKysJICAg ICAgdGFnbmFtZT0kegorKwkgICAgICBicmVhaworKwkgICAgICA7OworKwkgICAgZXNhYworKwkg IGZpCisrCWRvbmUKKysJIyBJZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQsIHRoZW4gbm8gdGFn Z2VkIGNvbmZpZ3VyYXRpb24KKysJIyB3YXMgZm91bmQgYW5kIGxldCB0aGUgdXNlciBrbm93IHRo YXQgdGhlICItLXRhZyIgY29tbWFuZAorKwkjIGxpbmUgb3B0aW9uIG11c3QgYmUgdXNlZC4KKysJ aWYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogdW5hYmxl IHRvIGluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIgorKwkgICRlY2hvICIkbW9kZW5hbWU6IHNw ZWNpZnkgYSB0YWcgd2l0aCBcYC0tdGFnJyIgMT4mMgorKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQor KyMgICAgICAgIGVsc2UKKysjICAgICAgICAgICRlY2hvICIkbW9kZW5hbWU6IHVzaW5nICR0YWdu YW1lIHRhZ2dlZCBjb25maWd1cmF0aW9uIgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAg ZmkKKyt9CisrCisrCisrIyBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSBkaXIgb2xkbGliCisrZnVu Y19leHRyYWN0X2FuX2FyY2hpdmUgKCkKKyt7CisrICAgIGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNo aWZ0CisrICAgIGZfZXhfYW5fYXJfb2xkbGliPSIkMSIKKysKKysgICAgJHNob3cgIihjZCAkZl9l eF9hbl9hcl9kaXIgJiYgJEFSIHggJGZfZXhfYW5fYXJfb2xkbGliKSIKKysgICAgJHJ1biBldmFs ICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcJGZfZXhfYW5fYXJfb2xkbGliKSIgfHwg ZXhpdCAkPworKyAgICBpZiAoJEFSIHQgIiRmX2V4X2FuX2FyX29sZGxpYiIgfCBzb3J0IHwgc29y dCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgorKyAgICAgOgorKyAgICBlbHNlCisrICAgICAg JGVjaG8gIiRtb2RlbmFtZTogRVJST1I6IG9iamVjdCBuYW1lIGNvbmZsaWN0czogJGZfZXhfYW5f YXJfZGlyLyRmX2V4X2FuX2FyX29sZGxpYiIgMT4mMgorKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVS RQorKyAgICBmaQorK30KKysKKysjIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50b3Agb2xkbGli IC4uLgorK2Z1bmNfZXh0cmFjdF9hcmNoaXZlcyAoKQorK3sKKysgICAgbXlfZ2VudG9wPSIkMSI7 IHNoaWZ0CisrICAgIG15X29sZGxpYnM9JHsxKyIkQCJ9CisrICAgIG15X29sZG9ianM9IiIKKysg ICAgbXlfeGxpYj0iIgorKyAgICBteV94YWJzPSIiCisrICAgIG15X3hkaXI9IiIKKysgICAgbXlf c3RhdHVzPSIiCisrCisrICAgICRzaG93ICIke3JtfXIgJG15X2dlbnRvcCIKKysgICAgJHJ1biAk e3JtfXIgIiRteV9nZW50b3AiCisrICAgICRzaG93ICIkbWtkaXIgJG15X2dlbnRvcCIKKysgICAg JHJ1biAkbWtkaXIgIiRteV9nZW50b3AiCisrICAgIG15X3N0YXR1cz0kPworKyAgICBpZiB0ZXN0 ICIkbXlfc3RhdHVzIiAtbmUgMCAmJiB0ZXN0ICEgLWQgIiRteV9nZW50b3AiOyB0aGVuCisrICAg ICAgZXhpdCAkbXlfc3RhdHVzCisrICAgIGZpCisrCisrICAgIGZvciBteV94bGliIGluICRteV9v bGRsaWJzOyBkbworKyAgICAgICMgRXh0cmFjdCB0aGUgb2JqZWN0cy4KKysgICAgICBjYXNlICRt eV94bGliIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgbXlfeGFicz0iJG15X3hsaWIi IDs7CisrCSopIG15X3hhYnM9YHB3ZGAiLyRteV94bGliIiA7OworKyAgICAgIGVzYWMKKysgICAg ICBteV94bGliPWAkZWNobyAiWCRteV94bGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCisrICAg ICAgbXlfeGxpYl91PSRteV94bGliCisrICAgICAgd2hpbGUgOjsgZG8KKysgICAgICAgIGNhc2Ug IiAkZXh0cmFjdGVkX2FyY2hpdmVzICIgaW4KKysJKiIgJG15X3hsaWJfdSAiKikKKysJICBleHRy YWN0ZWRfc2VyaWFsPWBleHByICRleHRyYWN0ZWRfc2VyaWFsICsgMWAKKysJICBteV94bGliX3U9 bHQkZXh0cmFjdGVkX3NlcmlhbC0kbXlfeGxpYiA7OworKwkqKSBicmVhayA7OworKwllc2FjCisr ICAgICAgZG9uZQorKyAgICAgIGV4dHJhY3RlZF9hcmNoaXZlcz0iJGV4dHJhY3RlZF9hcmNoaXZl cyAkbXlfeGxpYl91IgorKyAgICAgIG15X3hkaXI9IiRteV9nZW50b3AvJG15X3hsaWJfdSIKKysK KysgICAgICAkc2hvdyAiJHtybX1yICRteV94ZGlyIgorKyAgICAgICRydW4gJHtybX1yICIkbXlf eGRpciIKKysgICAgICAkc2hvdyAiJG1rZGlyICRteV94ZGlyIgorKyAgICAgICRydW4gJG1rZGly ICIkbXlfeGRpciIKKysgICAgICBleGl0X3N0YXR1cz0kPworKyAgICAgIGlmIHRlc3QgIiRleGl0 X3N0YXR1cyIgLW5lIDAgJiYgdGVzdCAhIC1kICIkbXlfeGRpciI7IHRoZW4KKysJZXhpdCAkZXhp dF9zdGF0dXMKKysgICAgICBmaQorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqLWRhcndp biopCisrCSRzaG93ICJFeHRyYWN0aW5nICRteV94YWJzIgorKwkjIERvIG5vdCBib3RoZXIgZG9p bmcgYW55dGhpbmcgaWYganVzdCBhIGRyeSBydW4KKysJaWYgdGVzdCAteiAiJHJ1biI7IHRoZW4K KysJICBkYXJ3aW5fb3JpZ19kaXI9YHB3ZGAKKysJICBjZCAkbXlfeGRpciB8fCBleGl0ICQ/Cisr CSAgZGFyd2luX2FyY2hpdmU9JG15X3hhYnMKKysJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCisrCSAg ZGFyd2luX2Jhc2VfYXJjaGl2ZT1gJGVjaG8gIlgkZGFyd2luX2FyY2hpdmUiIHwgJFhzZWQgLWUg J3MlXi4qLyUlJ2AKKysJICBkYXJ3aW5fYXJjaGVzPWBsaXBvIC1pbmZvICIkZGFyd2luX2FyY2hp dmUiIDI+L2Rldi9udWxsIHwgJEVHUkVQIEFyY2hpdGVjdHVyZXMgMj4vZGV2L251bGxgCisrCSAg aWYgdGVzdCAtbiAiJGRhcndpbl9hcmNoZXMiOyB0aGVuIAorKwkgICAgZGFyd2luX2FyY2hlcz1g ZWNobyAiJGRhcndpbl9hcmNoZXMiIHwgJFNFRCAtZSAncy8uKmFyZTovLydgCisrCSAgICBkYXJ3 aW5fYXJjaD0KKysJICAgICRzaG93ICIkZGFyd2luX2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUg YXJjaGl0ZWN0dXJlcyAkZGFyd2luX2FyY2hlcyIKKysJICAgIGZvciBkYXJ3aW5fYXJjaCBpbiAg JGRhcndpbl9hcmNoZXMgOyBkbworKwkgICAgICBta2RpciAtcCAidW5mYXQtJCQvJHtkYXJ3aW5f YmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKKysJICAgICAgbGlwbyAtdGhpbiAkZGFyd2lu X2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9h cmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCisrCSAgICAg IGNkICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgorKwkg ICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2FyY2hp dmV9IgorKwkgICAgICBjZCAiJGRhcndpbl9jdXJkaXIiCisrCSAgICAgICRybSAidW5mYXQtJCQv JHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hp dmV9IgorKwkgICAgZG9uZSAjICRkYXJ3aW5fYXJjaGVzCisrICAgICAgIyMgT2theSBub3cgd2Ug aGF2ZSBhIGJ1bmNoIG9mIHRoaW4gb2JqZWN0cywgZ290dGEgZmF0dGVuIHRoZW0gdXAgOikKKysJ ICAgIGRhcndpbl9maWxlbGlzdD1gZmluZCB1bmZhdC0kJCAtdHlwZSBmIC1uYW1lIFwqLm8gLXBy aW50IC1vIC1uYW1lIFwqLmxvIC1wcmludHwgeGFyZ3MgYmFzZW5hbWUgfCBzb3J0IC11IHwgJE5M MlNQYAorKwkgICAgZGFyd2luX2ZpbGU9CisrCSAgICBkYXJ3aW5fZmlsZXM9CisrCSAgICBmb3Ig ZGFyd2luX2ZpbGUgaW4gJGRhcndpbl9maWxlbGlzdDsgZG8KKysJICAgICAgZGFyd2luX2ZpbGVz PWBmaW5kIHVuZmF0LSQkIC1uYW1lICRkYXJ3aW5fZmlsZSAtcHJpbnQgfCAkTkwyU1BgCisrCSAg ICAgIGxpcG8gLWNyZWF0ZSAtb3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKKysJ ICAgIGRvbmUgIyAkZGFyd2luX2ZpbGVsaXN0CisrCSAgICAke3JtfXIgdW5mYXQtJCQKKysJICAg IGNkICIkZGFyd2luX29yaWdfZGlyIgorKwkgIGVsc2UKKysJICAgIGNkICIkZGFyd2luX29yaWdf ZGlyIgorKyAJICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJz IgorKwkgIGZpICMgJGRhcndpbl9hcmNoZXMKKysJZmkgIyAkcnVuCisrCTs7CisrICAgICAgKikK KysgICAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgor KyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMg ImBmaW5kICRteV94ZGlyIC1uYW1lIFwqLiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxvIC1w cmludCB8ICROTDJTUGAKKysgICAgZG9uZQorKyAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVz dWx0PSIkbXlfb2xkb2JqcyIKKyt9CisrIyBFbmQgb2YgU2hlbGwgZnVuY3Rpb24gZGVmaW5pdGlv bnMKKysjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisrCisrIyBEYXJ3aW4g c3Vja3MKKytldmFsIHN0ZF9zaHJleHQ9XCIkc2hyZXh0X2NtZHNcIgorKworK2Rpc2FibGVfbGli cz1ubworKworKyMgUGFyc2Ugb3VyIGNvbW1hbmQgbGluZSBvcHRpb25zIG9uY2UsIHRob3JvdWdo bHkuCisrd2hpbGUgdGVzdCAiJCMiIC1ndCAwCisrZG8KKysgIGFyZz0iJDEiCisrICBzaGlmdAor KworKyAgY2FzZSAkYXJnIGluCisrICAtKj0qKSBvcHRhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNl ZCAtZSAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7CisrICAqKSBvcHRhcmc9IDs7CisrICBlc2Fj CisrCisrICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2ln biBpdC4KKysgIGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorKyAgICBjYXNlICRwcmV2IGluCisr ICAgIGV4ZWN1dGVfZGxmaWxlcykKKysgICAgICBleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRlX2Rs ZmlsZXMgJGFyZyIKKysgICAgICA7OworKyAgICB0YWcpCisrICAgICAgdGFnbmFtZT0iJGFyZyIK KysgICAgICBwcmVzZXJ2ZV9hcmdzPSIke3ByZXNlcnZlX2FyZ3N9PSRhcmciCisrCisrICAgICAg IyBDaGVjayB3aGV0aGVyIHRhZ25hbWUgY29udGFpbnMgb25seSB2YWxpZCBjaGFyYWN0ZXJzCisr ICAgICAgY2FzZSAkdGFnbmFtZSBpbgorKyAgICAgICpbIS1fQS1aYS16MC05LC9dKikKKysJJGVj aG8gIiRwcm9nbmFtZTogaW52YWxpZCB0YWcgbmFtZTogJHRhZ25hbWUiIDE+JjIKKysJZXhpdCAk RVhJVF9GQUlMVVJFCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgIGNhc2UgJHRhZ25hbWUg aW4KKysgICAgICBDQykKKysJIyBEb24ndCB0ZXN0IGZvciB0aGUgImRlZmF1bHQiIEMgdGFnLCBh cyB3ZSBrbm93LCBpdCdzIHRoZXJlLCBidXQKKysJIyBub3Qgc3BlY2lhbGx5IG1hcmtlZC4KKysJ OzsKKysgICAgICAqKQorKwlpZiBncmVwICJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklH OiAkdGFnbmFtZSQiIDwgIiRwcm9ncGF0aCIgPiAvZGV2L251bGw7IHRoZW4KKysJICB0YWdsaXN0 PSIkdGFnbGlzdCAkdGFnbmFtZSIKKysJICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgor KwkgIGV2YWwgImAke1NFRH0gLW4gLWUgJy9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklH OiAnJHRhZ25hbWUnJC8sL14jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAnJHRhZ25hbWUn JC9wJyA8ICRwcm9ncGF0aGAiCisrCWVsc2UKKysJICAkZWNobyAiJHByb2duYW1lOiBpZ25vcmlu ZyB1bmtub3duIHRhZyAkdGFnbmFtZSIgMT4mMgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysg ICAgICA7OworKyAgICAqKQorKyAgICAgIGV2YWwgIiRwcmV2PVwkYXJnIgorKyAgICAgIDs7Cisr ICAgIGVzYWMKKysKKysgICAgcHJldj0KKysgICAgcHJldm9wdD0KKysgICAgY29udGludWUKKysg IGZpCisrCisrICAjIEhhdmUgd2Ugc2VlbiBhIG5vbi1vcHRpb25hbCBhcmd1bWVudCB5ZXQ/Cisr ICBjYXNlICRhcmcgaW4KKysgIC0taGVscCkKKysgICAgc2hvd19oZWxwPXllcworKyAgICA7Owor KworKyAgLS12ZXJzaW9uKQorKyAgICBlY2hvICJcCisrJFBST0dSQU0gKEdOVSAkUEFDS0FHRSkg JFZFUlNJT04kVElNRVNUQU1QCisrCisrQ29weXJpZ2h0IChDKSAyMDA4ICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKytUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNl IGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTworK3dhcnJhbnR5OyBub3QgZXZl biBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiIKKysgICAgZXhpdCAkPworKyAgICA7OworKworKyAgLS1jb25maWcpCisrICAgICR7U0VEfSAt ZSAnMSwvXiMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHL2QnIC1lICcvXiMgIyMjIEVORCBMSUJU T09MIENPTkZJRy8sJGQnICRwcm9ncGF0aAorKyAgICAjIE5vdyBwcmludCB0aGUgY29uZmlndXJh dGlvbnMgZm9yIHRoZSB0YWdzLgorKyAgICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlzdDsgZG8KKysg ICAgICAke1NFRH0gLW4gLWUgIi9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFn bmFtZSQvLC9eIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWUkL3AiIDwgIiRw cm9ncGF0aCIKKysgICAgZG9uZQorKyAgICBleGl0ICQ/CisrICAgIDs7CisrCisrICAtLWRlYnVn KQorKyAgICAkZWNobyAiJHByb2duYW1lOiBlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgorKyAg ICBzZXQgLXgKKysgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJGFyZyIKKysgICAg OzsKKysKKysgIC0tZHJ5LXJ1biB8IC1uKQorKyAgICBydW49OgorKyAgICA7OworKworKyAgLS1m ZWF0dXJlcykKKysgICAgJGVjaG8gImhvc3Q6ICRob3N0IgorKyAgICBpZiB0ZXN0ICIkYnVpbGRf bGlidG9vbF9saWJzIiA9IHllczsgdGhlbgorKyAgICAgICRlY2hvICJlbmFibGUgc2hhcmVkIGxp YnJhcmllcyIKKysgICAgZWxzZQorKyAgICAgICRlY2hvICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJp ZXMiCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4K KysgICAgICAkZWNobyAiZW5hYmxlIHN0YXRpYyBsaWJyYXJpZXMiCisrICAgIGVsc2UKKysgICAg ICAkZWNobyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgorKyAgICBmaQorKyAgICBleGl0ICQ/ CisrICAgIDs7CisrCisrICAtLWZpbmlzaCkgbW9kZT0iZmluaXNoIiA7OworKworKyAgLS1tb2Rl KSBwcmV2b3B0PSItLW1vZGUiIHByZXY9bW9kZSA7OworKyAgLS1tb2RlPSopIG1vZGU9IiRvcHRh cmciIDs7CisrCisrICAtLXByZXNlcnZlLWR1cC1kZXBzKSBkdXBsaWNhdGVfZGVwcz0ieWVzIiA7 OworKworKyAgLS1xdWlldCB8IC0tc2lsZW50KQorKyAgICBzaG93PToKKysgICAgcHJlc2VydmVf YXJncz0iJHByZXNlcnZlX2FyZ3MgJGFyZyIKKysgICAgOzsKKysKKysgIC0tdGFnKQorKyAgICBw cmV2b3B0PSItLXRhZyIKKysgICAgcHJldj10YWcKKysgICAgcHJlc2VydmVfYXJncz0iJHByZXNl cnZlX2FyZ3MgLS10YWciCisrICAgIDs7CisrICAtLXRhZz0qKQorKyAgICBzZXQgdGFnICIkb3B0 YXJnIiAkezErIiRAIn0KKysgICAgc2hpZnQKKysgICAgcHJldj10YWcKKysgICAgcHJlc2VydmVf YXJncz0iJHByZXNlcnZlX2FyZ3MgLS10YWciCisrICAgIDs7CisrCisrICAtZGxvcGVuKQorKyAg ICBwcmV2b3B0PSItZGxvcGVuIgorKyAgICBwcmV2PWV4ZWN1dGVfZGxmaWxlcworKyAgICA7Owor KworKyAgLSopCisrICAgICRlY2hvICIkbW9kZW5hbWU6IHVucmVjb2duaXplZCBvcHRpb24gXGAk YXJnJyIgMT4mMgorKyAgICAkZWNobyAiJGhlbHAiIDE+JjIKKysgICAgZXhpdCAkRVhJVF9GQUlM VVJFCisrICAgIDs7CisrCisrICAqKQorKyAgICBub25vcHQ9IiRhcmciCisrICAgIGJyZWFrCisr ICAgIDs7CisrICBlc2FjCisrZG9uZQorKworK2lmIHRlc3QgLW4gIiRwcmV2b3B0IjsgdGhlbgor KyAgJGVjaG8gIiRtb2RlbmFtZTogb3B0aW9uIFxgJHByZXZvcHQnIHJlcXVpcmVzIGFuIGFyZ3Vt ZW50IiAxPiYyCisrICAkZWNobyAiJGhlbHAiIDE+JjIKKysgIGV4aXQgJEVYSVRfRkFJTFVSRQor K2ZpCisrCisrY2FzZSAkZGlzYWJsZV9saWJzIGluCisrbm8pIAorKyAgOzsKKytzaGFyZWQpCisr ICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysgIGJ1aWxkX29sZF9saWJzPXllcworKyAgOzsKKytz dGF0aWMpCisrICBidWlsZF9vbGRfbGlicz1gY2FzZSAkYnVpbGRfbGlidG9vbF9saWJzIGluIHll cykgZWNobyBubzs7ICopIGVjaG8geWVzOzsgZXNhY2AKKysgIDs7CisrZXNhYworKworKyMgSWYg dGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBp biBpdAorKyMgd2lsbCBiZSBleGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMgcHJldmVudHMgaGVyZS1k b2N1bWVudHMgZnJvbSBiZWluZworKyMgbGVmdCBvdmVyIGJ5IHNoZWxscy4KKytleGVjX2NtZD0K KysKKytpZiB0ZXN0IC16ICIkc2hvd19oZWxwIjsgdGhlbgorKworKyAgIyBJbmZlciB0aGUgb3Bl cmF0aW9uIG1vZGUuCisrICBpZiB0ZXN0IC16ICIkbW9kZSI7IHRoZW4KKysgICAgJGVjaG8gIioq KiBXYXJuaW5nOiBpbmZlcnJpbmcgdGhlIG1vZGUgb2Ygb3BlcmF0aW9uIGlzIGRlcHJlY2F0ZWQu IiAxPiYyCisrICAgICRlY2hvICIqKiogRnV0dXJlIHZlcnNpb25zIG9mIExpYnRvb2wgd2lsbCBy ZXF1aXJlIC0tbW9kZT1NT0RFIGJlIHNwZWNpZmllZC4iIDE+JjIKKysgICAgY2FzZSAkbm9ub3B0 IGluCisrICAgICpjYyB8IGNjKiB8ICorKyB8IGdjYyogfCAqLWdjYyogfCBnKysqIHwgeGxjKikK KysgICAgICBtb2RlPWxpbmsKKysgICAgICBmb3IgYXJnCisrICAgICAgZG8KKysJY2FzZSAkYXJn IGluCisrCS1jKQorKwkgICBtb2RlPWNvbXBpbGUKKysJICAgYnJlYWsKKysJICAgOzsKKysJZXNh YworKyAgICAgIGRvbmUKKysgICAgICA7OworKyAgICAqZGIgfCAqZGJ4IHwgKnN0cmFjZSB8ICp0 cnVzcykKKysgICAgICBtb2RlPWV4ZWN1dGUKKysgICAgICA7OworKyAgICAqaW5zdGFsbCp8Y3B8 bXYpCisrICAgICAgbW9kZT1pbnN0YWxsCisrICAgICAgOzsKKysgICAgKnJtKQorKyAgICAgIG1v ZGU9dW5pbnN0YWxsCisrICAgICAgOzsKKysgICAgKikKKysgICAgICAjIElmIHdlIGhhdmUgbm8g bW9kZSwgYnV0IGRsZmlsZXMgd2VyZSBzcGVjaWZpZWQsIHRoZW4gZG8gZXhlY3V0ZSBtb2RlLgor KyAgICAgIHRlc3QgLW4gIiRleGVjdXRlX2RsZmlsZXMiICYmIG1vZGU9ZXhlY3V0ZQorKworKyAg ICAgICMgSnVzdCB1c2UgdGhlIGRlZmF1bHQgb3BlcmF0aW9uIG1vZGUuCisrICAgICAgaWYgdGVz dCAteiAiJG1vZGUiOyB0aGVuCisrCWlmIHRlc3QgLW4gIiRub25vcHQiOyB0aGVuCisrCSAgJGVj aG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGluZmVyIG9wZXJhdGlvbiBtb2RlIGZyb20g XGAkbm9ub3B0JyIgMT4mMgorKwllbHNlCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzog Y2Fubm90IGluZmVyIG9wZXJhdGlvbiBtb2RlIHdpdGhvdXQgTU9ERS1BUkdTIiAxPiYyCisrCWZp CisrICAgICAgZmkKKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQorKworKyAgIyBPbmx5IGV4 ZWN1dGUgbW9kZSBpcyBhbGxvd2VkIHRvIGhhdmUgLWRsb3BlbiBmbGFncy4KKysgIGlmIHRlc3Qg LW4gIiRleGVjdXRlX2RsZmlsZXMiICYmIHRlc3QgIiRtb2RlIiAhPSBleGVjdXRlOyB0aGVuCisr ICAgICRlY2hvICIkbW9kZW5hbWU6IHVucmVjb2duaXplZCBvcHRpb24gXGAtZGxvcGVuJyIgMT4m MgorKyAgICAkZWNobyAiJGhlbHAiIDE+JjIKKysgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICBm aQorKworKyAgIyBDaGFuZ2UgdGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25l LgorKyAgZ2VuZXJpY19oZWxwPSIkaGVscCIKKysgIGhlbHA9IlRyeSBcYCRtb2RlbmFtZSAtLWhl bHAgLS1tb2RlPSRtb2RlJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisrCisrICAjIFRoZXNlIG1v ZGVzIGFyZSBpbiBvcmRlciBvZiBleGVjdXRpb24gZnJlcXVlbmN5IHNvIHRoYXQgdGhleSBydW4g cXVpY2tseS4KKysgIGNhc2UgJG1vZGUgaW4KKysgICMgbGlidG9vbCBjb21waWxlIG1vZGUKKysg IGNvbXBpbGUpCisrICAgIG1vZGVuYW1lPSIkbW9kZW5hbWU6IGNvbXBpbGUiCisrICAgICMgR2V0 IHRoZSBjb21waWxhdGlvbiBjb21tYW5kIGFuZCB0aGUgc291cmNlIGZpbGUuCisrICAgIGJhc2Vf Y29tcGlsZT0KKysgICAgc3JjZmlsZT0iJG5vbm9wdCIgICMgIGFsd2F5cyBrZWVwIGEgbm9uLWVt cHR5IHZhbHVlIGluICJzcmNmaWxlIgorKyAgICBzdXBwcmVzc19vcHQ9eWVzCisrICAgIHN1cHBy ZXNzX291dHB1dD0KKysgICAgYXJnX21vZGU9bm9ybWFsCisrICAgIGxpYm9iaj0KKysgICAgbGF0 ZXI9CisrCisrICAgIGZvciBhcmcKKysgICAgZG8KKysgICAgICBjYXNlICRhcmdfbW9kZSBpbgor KyAgICAgIGFyZyAgKQorKwkjIGRvIG5vdCAiY29udGludWUiLiAgSW5zdGVhZCwgYWRkIHRoaXMg dG8gYmFzZV9jb21waWxlCisrCWxhc3Rhcmc9IiRhcmciCisrCWFyZ19tb2RlPW5vcm1hbAorKwk7 OworKworKyAgICAgIHRhcmdldCApCisrCWxpYm9iaj0iJGFyZyIKKysJYXJnX21vZGU9bm9ybWFs CisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgbm9ybWFsICkKKysJIyBBY2NlcHQgYW55IGNv bW1hbmQtbGluZSBvcHRpb25zLgorKwljYXNlICRhcmcgaW4KKysJLW8pCisrCSAgaWYgdGVzdCAt biAiJGxpYm9iaiIgOyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgY2Fubm90IHNw ZWNpZnkgXGAtbycgbW9yZSB0aGFuIG9uY2UiIDE+JjIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVS RQorKwkgIGZpCisrCSAgYXJnX21vZGU9dGFyZ2V0CisrCSAgY29udGludWUKKysJICA7OworKwor Kwktc3RhdGljIHwgLXByZWZlci1waWMgfCAtcHJlZmVyLW5vbi1waWMpCisrCSAgbGF0ZXI9IiRs YXRlciAkYXJnIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysKKysJLW5vLXN1cHByZXNzKQorKwkg IHN1cHByZXNzX29wdD1ubworKwkgIGNvbnRpbnVlCisrCSAgOzsKKysKKysJLVhjb21waWxlcikK KysJICBhcmdfbW9kZT1hcmcgICMgIHRoZSBuZXh0IG9uZSBnb2VzIGludG8gdGhlICJiYXNlX2Nv bXBpbGUiIGFyZyBsaXN0CisrCSAgY29udGludWUgICAgICAjICBUaGUgY3VycmVudCAic3JjZmls ZSIgd2lsbCBlaXRoZXIgYmUgcmV0YWluZWQgb3IKKysJICA7OyAgICAgICAgICAgICMgIHJlcGxh Y2VkIGxhdGVyLiAgSSB3b3VsZCBndWVzcyB0aGF0IHdvdWxkIGJlIGEgYnVnLgorKworKwktV2Ms KikKKysJICBhcmdzPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgInMvXi1XYywvLyJgCisrCSAg bGFzdGFyZz0KKysJICBzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKysgCSAgZm9yIGFyZyBpbiAk YXJnczsgZG8KKysJICAgIElGUz0iJHNhdmVfaWZzIgorKworKwkgICAgIyBEb3VibGUtcXVvdGUg YXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgorKwkgICAgIyBNYW55 IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKKysJ ICAgICMgaW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCisrCSAgICBj YXNlICRhcmcgaW4KKysJICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wg XAldKnwqXSp8IiIpCisrCSAgICAgIGFyZz0iXCIkYXJnXCIiCisrCSAgICAgIDs7CisrCSAgICBl c2FjCisrCSAgICBsYXN0YXJnPSIkbGFzdGFyZyAkYXJnIgorKwkgIGRvbmUKKysJICBJRlM9IiRz YXZlX2lmcyIKKysJICBsYXN0YXJnPWAkZWNobyAiWCRsYXN0YXJnIiB8ICRYc2VkIC1lICJzL14g Ly8iYAorKworKwkgICMgQWRkIHRoZSBhcmd1bWVudHMgdG8gYmFzZV9jb21waWxlLgorKwkgIGJh c2VfY29tcGlsZT0iJGJhc2VfY29tcGlsZSAkbGFzdGFyZyIKKysJICBjb250aW51ZQorKwkgIDs7 CisrCisrCSogKQorKwkgICMgQWNjZXB0IHRoZSBjdXJyZW50IGFyZ3VtZW50IGFzIHRoZSBzb3Vy Y2UgZmlsZS4KKysJICAjIFRoZSBwcmV2aW91cyAic3JjZmlsZSIgYmVjb21lcyB0aGUgY3VycmVu dCBhcmd1bWVudC4KKysJICAjCisrCSAgbGFzdGFyZz0iJHNyY2ZpbGUiCisrCSAgc3JjZmlsZT0i JGFyZyIKKysJICA7OworKwllc2FjICAjICBjYXNlICRhcmcKKysJOzsKKysgICAgICBlc2FjICAg ICMgIGNhc2UgJGFyZ19tb2RlCisrCisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBw cmV2aW91cyBhcmd1bWVudC4KKysgICAgICBsYXN0YXJnPWAkZWNobyAiWCRsYXN0YXJnIiB8ICRY c2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysKKysgICAgICBjYXNlICRsYXN0YXJnIGluCisr ICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFy YWN0ZXJzLgorKyAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUgY2xvc2Ug YnJhY2tldHMgY29ycmVjdGx5CisrICAgICAgIyBpbiBzY2FuIHNldHMsIGFuZCBzb21lIFN1bk9T IGtzaCBtaXN0cmVhdCBiYWNrc2xhc2gtZXNjYXBpbmcKKysgICAgICAjIGluIHNjYW4gc2V0cyAo d29ya2VkIGFyb3VuZCB3aXRoIHZhcmlhYmxlIGV4cGFuc2lvbiksCisrICAgICAgIyBhbmQgZnVy dGhlcm1vcmUgY2Fubm90IGhhbmRsZSAnfCcgJyYnICcoJyAnKScgaW4gc2NhbiBzZXRzIAorKyAg ICAgICMgYXQgYWxsLCBzbyB3ZSBzcGVjaWZ5IHRoZW0gc2VwYXJhdGVseS4KKysgICAgICAqW1xb XH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKysJbGFzdGFyZz0i XCIkbGFzdGFyZ1wiIgorKwk7OworKyAgICAgIGVzYWMKKysKKysgICAgICBiYXNlX2NvbXBpbGU9 IiRiYXNlX2NvbXBpbGUgJGxhc3RhcmciCisrICAgIGRvbmUgIyBmb3IgYXJnCisrCisrICAgIGNh c2UgJGFyZ19tb2RlIGluCisrICAgIGFyZykKKysgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3Ug bXVzdCBzcGVjaWZ5IGFuIGFyZ3VtZW50IGZvciAtWGNvbXBpbGUiCisrICAgICAgZXhpdCAkRVhJ VF9GQUlMVVJFCisrICAgICAgOzsKKysgICAgdGFyZ2V0KQorKyAgICAgICRlY2hvICIkbW9kZW5h bWU6IHlvdSBtdXN0IHNwZWNpZnkgYSB0YXJnZXQgd2l0aCBcYC1vJyIgMT4mMgorKyAgICAgIGV4 aXQgJEVYSVRfRkFJTFVSRQorKyAgICAgIDs7CisrICAgICopCisrICAgICAgIyBHZXQgdGhlIG5h bWUgb2YgdGhlIGxpYnJhcnkgb2JqZWN0LgorKyAgICAgIFsgLXogIiRsaWJvYmoiIF0gJiYgbGli b2JqPWAkZWNobyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCisrICAgICAgOzsK KysgICAgZXNhYworKworKyAgICAjIFJlY29nbml6ZSBzZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1 ZmZpeGVzLgorKyAgICAjIElmIHRoZSB1c2VyIHNwZWNpZmllcyAtbyBmaWxlLm8sIGl0IGlzIHJl cGxhY2VkIHdpdGggZmlsZS5sbworKyAgICB4Zm9ybT0nW2NDRlNpZm1zb10nCisrICAgIGNhc2Ug JGxpYm9iaiBpbgorKyAgICAqLmFkYSkgeGZvcm09YWRhIDs7CisrICAgICouYWRiKSB4Zm9ybT1h ZGIgOzsKKysgICAgKi5hZHMpIHhmb3JtPWFkcyA7OworKyAgICAqLmFzbSkgeGZvcm09YXNtIDs7 CisrICAgICouYysrKSB4Zm9ybT1jKysgOzsKKysgICAgKi5jYykgeGZvcm09Y2MgOzsKKysgICAg Ki5paSkgeGZvcm09aWkgOzsKKysgICAgKi5jbGFzcykgeGZvcm09Y2xhc3MgOzsKKysgICAgKi5j cHApIHhmb3JtPWNwcCA7OworKyAgICAqLmN4eCkgeGZvcm09Y3h4IDs7CisrICAgICouW2ZGXVsw OV0/KSB4Zm9ybT1bZkZdWzA5XS4gOzsKKysgICAgKi5mb3IpIHhmb3JtPWZvciA7OworKyAgICAq LmphdmEpIHhmb3JtPWphdmEgOzsKKysgICAgKi5vYmopIHhmb3JtPW9iaiA7OworKyAgICAqLnN4 KSB4Zm9ybT1zeCA7OworKyAgICBlc2FjCisrCisrICAgIGxpYm9iaj1gJGVjaG8gIlgkbGlib2Jq IiB8ICRYc2VkIC1lICJzL1wuJHhmb3JtJC8ubG8vImAKKysKKysgICAgY2FzZSAkbGlib2JqIGlu CisrICAgICoubG8pIG9iaj1gJGVjaG8gIlgkbGlib2JqIiB8ICRYc2VkIC1lICIkbG8ybyJgIDs7 CisrICAgICopCisrICAgICAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGRldGVybWluZSBuYW1l IG9mIGxpYnJhcnkgb2JqZWN0IGZyb20gXGAkbGlib2JqJyIgMT4mMgorKyAgICAgIGV4aXQgJEVY SVRfRkFJTFVSRQorKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgZnVuY19pbmZlcl90YWcg JGJhc2VfY29tcGlsZQorKworKyAgICBmb3IgYXJnIGluICRsYXRlcjsgZG8KKysgICAgICBjYXNl ICRhcmcgaW4KKysgICAgICAtc3RhdGljKQorKwlidWlsZF9vbGRfbGlicz15ZXMKKysJY29udGlu dWUKKysJOzsKKysKKysgICAgICAtcHJlZmVyLXBpYykKKysJcGljX21vZGU9eWVzCisrCWNvbnRp bnVlCisrCTs7CisrCisrICAgICAgLXByZWZlci1ub24tcGljKQorKwlwaWNfbW9kZT1ubworKwlj b250aW51ZQorKwk7OworKyAgICAgIGVzYWMKKysgICAgZG9uZQorKworKyAgICBxbGlib2JqPWAk ZWNobyAiWCRsaWJvYmoiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICBjYXNl ICRxbGlib2JqIGluCisrICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wg XAldKnwqXSp8IiIpCisrCXFsaWJvYmo9IlwiJHFsaWJvYmpcIiIgOzsKKysgICAgZXNhYworKyAg ICB0ZXN0ICJYJGxpYm9iaiIgIT0gIlgkcWxpYm9iaiIgXAorKwkmJiAkZWNobyAiWCRsaWJvYmoi IHwgZ3JlcCAnW11+I14qe307PD4/IiciJyInIAkmKCl8YCRbXScgXAorKwkmJiAkZWNobyAiJG1v ZGVuYW1lOiBsaWJvYmogbmFtZSBcYCRsaWJvYmonIG1heSBub3QgY29udGFpbiBzaGVsbCBzcGVj aWFsIGNoYXJhY3RlcnMuIgorKyAgICBvYmpuYW1lPWAkZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUg J3MlXi4qLyUlJ2AKKysgICAgeGRpcj1gJGVjaG8gIlgkb2JqIiB8ICRYc2VkIC1lICdzJS9bXi9d KiQlJSdgCisrICAgIGlmIHRlc3QgIlgkeGRpciIgPSAiWCRvYmoiOyB0aGVuCisrICAgICAgeGRp cj0KKysgICAgZWxzZQorKyAgICAgIHhkaXI9JHhkaXIvCisrICAgIGZpCisrICAgIGxvYmo9JHt4 ZGlyfSRvYmpkaXIvJG9iam5hbWUKKysKKysgICAgaWYgdGVzdCAteiAiJGJhc2VfY29tcGlsZSI7 IHRoZW4KKysgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGEgY29tcGls YXRpb24gY29tbWFuZCIgMT4mMgorKyAgICAgICRlY2hvICIkaGVscCIgMT4mMgorKyAgICAgIGV4 aXQgJEVYSVRfRkFJTFVSRQorKyAgICBmaQorKworKyAgICAjIERlbGV0ZSBhbnkgbGVmdG92ZXIg bGlicmFyeSBvYmplY3RzLgorKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0 aGVuCisrICAgICAgcmVtb3ZlbGlzdD0iJG9iaiAkbG9iaiAkbGlib2JqICR7bGlib2JqfVQiCisr ICAgIGVsc2UKKysgICAgICByZW1vdmVsaXN0PSIkbG9iaiAkbGlib2JqICR7bGlib2JqfVQiCisr ICAgIGZpCisrCisrICAgICRydW4gJHJtICRyZW1vdmVsaXN0CisrICAgIHRyYXAgIiRydW4gJHJt ICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKworKyAgICAjIE9uIEN5 Z3dpbiB0aGVyZSdzIG5vICJyZWFsIiBQSUMgZmxhZyBzbyB3ZSBtdXN0IGJ1aWxkIGJvdGggb2Jq ZWN0IHR5cGVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2luKiB8IG1pbmd3KiB8 IHB3MzIqIHwgb3MyKikKKysgICAgICBwaWNfbW9kZT1kZWZhdWx0CisrICAgICAgOzsKKysgICAg ZXNhYworKyAgICBpZiB0ZXN0ICIkcGljX21vZGUiID0gbm8gJiYgdGVzdCAiJGRlcGxpYnNfY2hl Y2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgorKyAgICAgICMgbm9uLVBJQyBjb2RlIGluIHNo YXJlZCBsaWJyYXJpZXMgaXMgbm90IHN1cHBvcnRlZAorKyAgICAgIHBpY19tb2RlPWRlZmF1bHQK KysgICAgZmkKKysKKysgICAgIyBDYWxjdWxhdGUgdGhlIGZpbGVuYW1lIG9mIHRoZSBvdXRwdXQg b2JqZWN0IGlmIGNvbXBpbGVyIGRvZXMKKysgICAgIyBub3Qgc3VwcG9ydCAtbyB3aXRoIC1jCisr ICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0gbm87IHRoZW4KKysgICAgICBvdXRwdXRfb2Jq PWAkZWNobyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJScgLWUgJ3MlXC5bXi5dKiQl JSdgLiR7b2JqZXh0fQorKyAgICAgIGxvY2tmaWxlPSIkb3V0cHV0X29iai5sb2NrIgorKyAgICAg IHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRvdXRwdXRfb2JqICRsb2NrZmlsZSIKKysgICAgICB0 cmFwICIkcnVuICRybSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKKysg ICAgZWxzZQorKyAgICAgIG91dHB1dF9vYmo9CisrICAgICAgbmVlZF9sb2Nrcz1ubworKyAgICAg IGxvY2tmaWxlPQorKyAgICBmaQorKworKyAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9u IGlmIGl0IGlzIG5lZWRlZAorKyAgICAjIFdlIHVzZSB0aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2Ug dGhlIGxpbmssIGl0IGF2b2lkcyBjcmVhdGluZyBhIG5ldyBmaWxlCisrICAgIGlmIHRlc3QgIiRu ZWVkX2xvY2tzIiA9IHllczsgdGhlbgorKyAgICAgIHVudGlsICRydW4gbG4gIiRwcm9ncGF0aCIg IiRsb2NrZmlsZSIgMj4vZGV2L251bGw7IGRvCisrCSRzaG93ICJXYWl0aW5nIGZvciAkbG9ja2Zp bGUgdG8gYmUgcmVtb3ZlZCIKKysJc2xlZXAgMgorKyAgICAgIGRvbmUKKysgICAgZWxpZiB0ZXN0 ICIkbmVlZF9sb2NrcyIgPSB3YXJuOyB0aGVuCisrICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxl IjsgdGhlbgorKwkkZWNobyAiXAorKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGV4aXN0cyBhbmQgY29u dGFpbnM6CisrYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisrCisrVGhpcyBpbmRpY2F0ZXMg dGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQorK3RlbXBvcmFy eSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1 c2UKKyt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0 aGVyLiAgSWYgeW91CisrcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBi eSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgorK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFr ZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCisrY29tcGlsZXIuIgorKwor KwkkcnVuICRybSAkcmVtb3ZlbGlzdAorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgICBmaQor KyAgICAgICRlY2hvICIkc3JjZmlsZSIgPiAiJGxvY2tmaWxlIgorKyAgICBmaQorKworKyAgICBp ZiB0ZXN0IC1uICIkZml4X3NyY2ZpbGVfcGF0aCI7IHRoZW4KKysgICAgICBldmFsIHNyY2ZpbGU9 XCIkZml4X3NyY2ZpbGVfcGF0aFwiCisrICAgIGZpCisrICAgIHFzcmNmaWxlPWAkZWNobyAiWCRz cmNmaWxlIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysgICAgY2FzZSAkcXNyY2Zp bGUgaW4KKysgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpd KnwiIikKKysgICAgICBxc3JjZmlsZT0iXCIkcXNyY2ZpbGVcIiIgOzsKKysgICAgZXNhYworKwor KyAgICAkcnVuICRybSAiJGxpYm9iaiIgIiR7bGlib2JqfVQiCisrCisrICAgICMgQ3JlYXRlIGEg bGlidG9vbCBvYmplY3QgZmlsZSAoYW5hbG9nb3VzIHRvIGEgIi5sYSIgZmlsZSksCisrICAgICMg YnV0IGRvbid0IGNyZWF0ZSBpdCBpZiB3ZSdyZSBkb2luZyBhIGRyeSBydW4uCisrICAgIHRlc3Qg LXogIiRydW4iICYmIGNhdCA+ICR7bGlib2JqfVQgPDxFT0YKKysjICRsaWJvYmogLSBhIGxpYnRv b2wgb2JqZWN0IGZpbGUKKysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAk VkVSU0lPTiRUSU1FU1RBTVAKKysjCisrIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUh CisrIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCisrCisrIyBOYW1l IG9mIHRoZSBQSUMgb2JqZWN0LgorK0VPRgorKworKyAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2Jq ZWN0IGlmIHdlIGFyZSBidWlsZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KKysgICAgaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFdpdGhvdXQgdGhpcyBh c3NpZ25tZW50LCBiYXNlX2NvbXBpbGUgZ2V0cyBlbXB0aWVkLgorKyAgICAgIGZic2RfaGlkZW91 c19zaF9idWc9JGJhc2VfY29tcGlsZQorKworKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0g bm87IHRoZW4KKysJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgor KyAgICAgIGVsc2UKKysJIyBEb24ndCBidWlsZCBQSUMgY29kZQorKwljb21tYW5kPSIkYmFzZV9j b21waWxlICRxc3JjZmlsZSIKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgISAtZCAiJHt4 ZGlyfSRvYmpkaXIiOyB0aGVuCisrCSRzaG93ICIkbWtkaXIgJHt4ZGlyfSRvYmpkaXIiCisrCSRy dW4gJG1rZGlyICR7eGRpcn0kb2JqZGlyCisrCWV4aXRfc3RhdHVzPSQ/CisrCWlmIHRlc3QgIiRl eGl0X3N0YXR1cyIgLW5lIDAgJiYgdGVzdCAhIC1kICIke3hkaXJ9JG9iamRpciI7IHRoZW4KKysJ ICBleGl0ICRleGl0X3N0YXR1cworKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAt eiAiJG91dHB1dF9vYmoiOyB0aGVuCisrCSMgUGxhY2UgUElDIG9iamVjdHMgaW4gJG9iamRpcgor Kwljb21tYW5kPSIkY29tbWFuZCAtbyAkbG9iaiIKKysgICAgICBmaQorKworKyAgICAgICRydW4g JHJtICIkbG9iaiIgIiRvdXRwdXRfb2JqIgorKworKyAgICAgICRzaG93ICIkY29tbWFuZCIKKysg ICAgICBpZiAkcnVuIGV2YWwgJGx0X2VudiAiJGNvbW1hbmQiOyB0aGVuIDoKKysgICAgICBlbHNl CisrCXRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiAkcnVuICRybSAkcmVtb3ZlbGlzdAorKwlleGl0 ICRFWElUX0ZBSUxVUkUKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tz IiA9IHdhcm4gJiYKKysJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJY JHNyY2ZpbGUiOyB0aGVuCisrCSRlY2hvICJcCisrKioqIEVSUk9SLCAkbG9ja2ZpbGUgY29udGFp bnM6CisrYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCisrCisrYnV0IGl0IHNob3VsZCBjb250 YWluOgorKyRzcmNmaWxlCisrCisrVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3Mg aXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQorK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxp YnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKKyt5b3VyIGNvbXBpbGVyIGRv ZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91CisrcmVwZWF0 IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFk IGJldHRlcgorK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9y bSwgb3IgZ2V0IGEgYmV0dGVyCisrY29tcGlsZXIuIgorKworKwkkcnVuICRybSAkcmVtb3ZlbGlz dAorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgICBmaQorKworKyAgICAgICMgSnVzdCBtb3Zl IHRoZSBvYmplY3QgaWYgbmVlZGVkLCB0aGVuIGdvIG9uIHRvIGNvbXBpbGUgdGhlIG5leHQgb25l CisrICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0X29iaiIg IT0gIlgkbG9iaiI7IHRoZW4KKysJJHNob3cgIiRtdiAkb3V0cHV0X29iaiAkbG9iaiIKKysJaWYg JHJ1biAkbXYgJG91dHB1dF9vYmogJGxvYmo7IHRoZW4gOgorKwllbHNlCisrCSAgZXJyb3I9JD8K KysJICAkcnVuICRybSAkcmVtb3ZlbGlzdAorKwkgIGV4aXQgJGVycm9yCisrCWZpCisrICAgICAg ZmkKKysKKysgICAgICAjIEFwcGVuZCB0aGUgbmFtZSBvZiB0aGUgUElDIG9iamVjdCB0byB0aGUg bGlidG9vbCBvYmplY3QgZmlsZS4KKysgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4gJHts aWJvYmp9VCA8PEVPRgorK3BpY19vYmplY3Q9JyRvYmpkaXIvJG9iam5hbWUnCisrCisrRU9GCisr CisrICAgICAgIyBBbGxvdyBlcnJvciBtZXNzYWdlcyBvbmx5IGZyb20gdGhlIGZpcnN0IGNvbXBp bGF0aW9uLgorKyAgICAgIGlmIHRlc3QgIiRzdXBwcmVzc19vcHQiID0geWVzOyB0aGVuCisrICAg ICAgICBzdXBwcmVzc19vdXRwdXQ9JyA+L2Rldi9udWxsIDI+JjEnCisrICAgICAgZmkKKysgICAg ZWxzZQorKyAgICAgICMgTm8gUElDIG9iamVjdCBzbyBpbmRpY2F0ZSBpdCBkb2Vzbid0IGV4aXN0 IGluIHRoZSBsaWJ0b29sCisrICAgICAgIyBvYmplY3QgZmlsZS4KKysgICAgICB0ZXN0IC16ICIk cnVuIiAmJiBjYXQgPj4gJHtsaWJvYmp9VCA8PEVPRgorK3BpY19vYmplY3Q9bm9uZQorKworK0VP RgorKyAgICBmaQorKworKyAgICAjIE9ubHkgYnVpbGQgYSBwb3NpdGlvbi1kZXBlbmRlbnQgb2Jq ZWN0IGlmIHdlIGJ1aWxkIG9sZCBsaWJyYXJpZXMuCisrICAgIGlmIHRlc3QgIiRidWlsZF9vbGRf bGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IHllczsgdGhl bgorKwkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCisrCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFz cmNmaWxlIgorKyAgICAgIGVsc2UKKysJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUg JHBpY19mbGFnIgorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJGNvbXBpbGVyX2NfbyIgPSB5 ZXM7IHRoZW4KKysJY29tbWFuZD0iJGNvbW1hbmQgLW8gJG9iaiIKKysgICAgICBmaQorKworKyAg ICAgICMgU3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0IGlmIHdlIGFscmVhZHkgZGlkIGEgUElDIGNv bXBpbGF0aW9uLgorKyAgICAgIGNvbW1hbmQ9IiRjb21tYW5kJHN1cHByZXNzX291dHB1dCIKKysg ICAgICAkcnVuICRybSAiJG9iaiIgIiRvdXRwdXRfb2JqIgorKyAgICAgICRzaG93ICIkY29tbWFu ZCIKKysgICAgICBpZiAkcnVuIGV2YWwgJGx0X2VudiAiJGNvbW1hbmQiOyB0aGVuIDoKKysgICAg ICBlbHNlCisrCSRydW4gJHJtICRyZW1vdmVsaXN0CisrCWV4aXQgJEVYSVRfRkFJTFVSRQorKyAg ICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgorKwkgdGVz dCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KKysJ JGVjaG8gIlwKKysqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoKKytgY2F0ICRsb2NrZmls ZSAyPi9kZXYvbnVsbGAKKysKKytidXQgaXQgc2hvdWxkIGNvbnRhaW46CisrJHNyY2ZpbGUKKysK KytUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRo ZSBzYW1lCisrdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29y ayBhcm91bmQgaXQgYmVjYXVzZQorK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1j JyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKKytyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwg aXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCisrYXZvaWQgcGFy YWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIK Kytjb21waWxlci4iCisrCisrCSRydW4gJHJtICRyZW1vdmVsaXN0CisrCWV4aXQgJEVYSVRfRkFJ TFVSRQorKyAgICAgIGZpCisrCisrICAgICAgIyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVk ZWQKKysgICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2Jq IiAhPSAiWCRvYmoiOyB0aGVuCisrCSRzaG93ICIkbXYgJG91dHB1dF9vYmogJG9iaiIKKysJaWYg JHJ1biAkbXYgJG91dHB1dF9vYmogJG9iajsgdGhlbiA6CisrCWVsc2UKKysJICBlcnJvcj0kPwor KwkgICRydW4gJHJtICRyZW1vdmVsaXN0CisrCSAgZXhpdCAkZXJyb3IKKysJZmkKKysgICAgICBm aQorKworKyAgICAgICMgQXBwZW5kIHRoZSBuYW1lIG9mIHRoZSBub24tUElDIG9iamVjdCB0aGUg bGlidG9vbCBvYmplY3QgZmlsZS4KKysgICAgICAjIE9ubHkgYXBwZW5kIGlmIHRoZSBsaWJ0b29s IG9iamVjdCBmaWxlIGV4aXN0cy4KKysgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4gJHts aWJvYmp9VCA8PEVPRgorKyMgTmFtZSBvZiB0aGUgbm9uLVBJQyBvYmplY3QuCisrbm9uX3BpY19v YmplY3Q9JyRvYmpuYW1lJworKworK0VPRgorKyAgICBlbHNlCisrICAgICAgIyBBcHBlbmQgdGhl IG5hbWUgb2YgdGhlIG5vbi1QSUMgb2JqZWN0IHRoZSBsaWJ0b29sIG9iamVjdCBmaWxlLgorKyAg ICAgICMgT25seSBhcHBlbmQgaWYgdGhlIGxpYnRvb2wgb2JqZWN0IGZpbGUgZXhpc3RzLgorKyAg ICAgIHRlc3QgLXogIiRydW4iICYmIGNhdCA+PiAke2xpYm9ian1UIDw8RU9GCisrIyBOYW1lIG9m IHRoZSBub24tUElDIG9iamVjdC4KKytub25fcGljX29iamVjdD1ub25lCisrCisrRU9GCisrICAg IGZpCisrCisrICAgICRydW4gJG12ICIke2xpYm9ian1UIiAiJHtsaWJvYmp9IgorKworKyAgICAj IFVubG9jayB0aGUgY3JpdGljYWwgc2VjdGlvbiBpZiBpdCB3YXMgbG9ja2VkCisrICAgIGlmIHRl c3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorKyAgICAgICRydW4gJHJtICIkbG9ja2ZpbGUi CisrICAgIGZpCisrCisrICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICA7OworKworKyAgIyBs aWJ0b29sIGxpbmsgbW9kZQorKyAgbGluayB8IHJlbGluaykKKysgICAgbW9kZW5hbWU9IiRtb2Rl bmFtZTogbGluayIKKysgICAgY2FzZSAkaG9zdCBpbgorKyAgICAqLSotY3lnd2luKiB8ICotKi1t aW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKikKKysgICAgICAjIEl0IGlzIGltcG9zc2libGUg dG8gbGluayBhIGRsbCB3aXRob3V0IHRoaXMgc2V0dGluZywgYW5kCisrICAgICAgIyB3ZSBzaG91 bGRuJ3QgZm9yY2UgdGhlIG1ha2VmaWxlIG1haW50YWluZXIgdG8gZmlndXJlIG91dAorKyAgICAg ICMgd2hpY2ggc3lzdGVtIHdlIGFyZSBjb21waWxpbmcgZm9yIGluIG9yZGVyIHRvIHBhc3MgYW4g ZXh0cmEKKysgICAgICAjIGZsYWcgZm9yIGV2ZXJ5IGxpYnRvb2wgaW52b2NhdGlvbi4KKysgICAg ICAjIGFsbG93X3VuZGVmaW5lZD1ubworKworKyAgICAgICMgRklYTUU6IFVuZm9ydHVuYXRlbHks IHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIHRoZSBhYm92ZSB3aGVuIHRyeWluZworKyAgICAgICMg dG8gbWFrZSBhIGRsbCB3aGljaCBoYXMgdW5kZWZpbmVkIHN5bWJvbHMsIGluIHdoaWNoIGNhc2Ug bm90CisrICAgICAgIyBldmVuIGEgc3RhdGljIGxpYnJhcnkgaXMgYnVpbHQuICBGb3Igbm93LCB3 ZSBuZWVkIHRvIHNwZWNpZnkKKysgICAgICAjIC1uby11bmRlZmluZWQgb24gdGhlIGxpYnRvb2wg bGluayBsaW5lIHdoZW4gd2UgY2FuIGJlIGNlcnRhaW4KKysgICAgICAjIHRoYXQgYWxsIHN5bWJv bHMgYXJlIHNhdGlzZmllZCwgb3RoZXJ3aXNlIHdlIGdldCBhIHN0YXRpYyBsaWJyYXJ5LgorKyAg ICAgIGFsbG93X3VuZGVmaW5lZD15ZXMKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIGFsbG93 X3VuZGVmaW5lZD15ZXMKKysgICAgICA7OworKyAgICBlc2FjCisrICAgIGxpYnRvb2xfYXJncz0i JG5vbm9wdCIKKysgICAgYmFzZV9jb21waWxlPSIkbm9ub3B0ICRAIgorKyAgICBjb21waWxlX2Nv bW1hbmQ9IiRub25vcHQiCisrICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRub25vcHQiCisrCisrICAg IGNvbXBpbGVfcnBhdGg9CisrICAgIGZpbmFsaXplX3JwYXRoPQorKyAgICBjb21waWxlX3NobGli cGF0aD0KKysgICAgZmluYWxpemVfc2hsaWJwYXRoPQorKyAgICBjb252ZW5pZW5jZT0KKysgICAg b2xkX2NvbnZlbmllbmNlPQorKyAgICBkZXBsaWJzPQorKyAgICBvbGRfZGVwbGlicz0KKysgICAg Y29tcGlsZXJfZmxhZ3M9CisrICAgIGxpbmtlcl9mbGFncz0KKysgICAgZGxsc2VhcmNocGF0aD0K KysgICAgbGliX3NlYXJjaF9wYXRoPWBwd2RgCisrICAgIGluc3RfcHJlZml4X2Rpcj0KKysKKysg ICAgYXZvaWRfdmVyc2lvbj1ubworKyAgICBkbGZpbGVzPQorKyAgICBkbHByZWZpbGVzPQorKyAg ICBkbHNlbGY9bm8KKysgICAgZXhwb3J0X2R5bmFtaWM9bm8KKysgICAgZXhwb3J0X3N5bWJvbHM9 CisrICAgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PQorKyAgICBnZW5lcmF0ZWQ9CisrICAgIGxpYm9i anM9CisrICAgIGx0bGlicz0KKysgICAgbW9kdWxlPW5vCisrICAgIG5vX2luc3RhbGw9bm8KKysg ICAgb2Jqcz0KKysgICAgbm9uX3BpY19vYmplY3RzPQorKyAgICBub3RpbnN0X3BhdGg9ICMgcGF0 aHMgdGhhdCBjb250YWluIG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKysgICAgcHJl Y2lvdXNfZmlsZXNfcmVnZXg9CisrICAgIHByZWZlcl9zdGF0aWNfbGlicz1ubworKyAgICBwcmVs b2FkPW5vCisrICAgIHByZXY9CisrICAgIHByZXZhcmc9CisrICAgIHJlbGVhc2U9CisrICAgIHJw YXRoPQorKyAgICB4cnBhdGg9CisrICAgIHBlcm1fcnBhdGg9CisrICAgIHRlbXBfcnBhdGg9Cisr ICAgIHRocmVhZF9zYWZlPW5vCisrICAgIHZpbmZvPQorKyAgICB2aW5mb19udW1iZXI9bm8KKysg ICAgc2luZ2xlX21vZHVsZT0iJHt3bH0tc2luZ2xlX21vZHVsZSIKKysKKysgICAgZnVuY19pbmZl cl90YWcgJGJhc2VfY29tcGlsZQorKworKyAgICAjIFdlIG5lZWQgdG8ga25vdyAtc3RhdGljLCB0 byBnZXQgdGhlIHJpZ2h0IG91dHB1dCBmaWxlbmFtZXMuCisrICAgIGZvciBhcmcKKysgICAgZG8K KysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAtYWxsLXN0YXRpYyB8IC1zdGF0aWMgfCAtc3Rh dGljLWxpYnRvb2wtbGlicykKKysJY2FzZSAkYXJnIGluCisrCS1hbGwtc3RhdGljKQorKwkgIGlm IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgLXogIiRsaW5rX3N0YXRp Y19mbGFnIjsgdGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY29tcGxldGUg c3RhdGljIGxpbmtpbmcgaXMgaW1wb3NzaWJsZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24iIDE+JjIK KysJICBmaQorKwkgIGlmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgICAg ZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYworKwkgIGZpCisrCSAgcHJlZmVyX3N0YXRp Y19saWJzPXllcworKwkgIDs7CisrCS1zdGF0aWMpCisrCSAgaWYgdGVzdCAteiAiJHBpY19mbGFn IiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKysJICAgIGRsb3Blbl9zZWxm PSRkbG9wZW5fc2VsZl9zdGF0aWMKKysJICBmaQorKwkgIHByZWZlcl9zdGF0aWNfbGlicz1idWls dAorKwkgIDs7CisrCS1zdGF0aWMtbGlidG9vbC1saWJzKQorKwkgIGlmIHRlc3QgLXogIiRwaWNf ZmxhZyIgJiYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgICBkbG9wZW5f c2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCisrCSAgZmkKKysJICBwcmVmZXJfc3RhdGljX2xpYnM9 eWVzCisrCSAgOzsKKysJZXNhYworKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJYnVpbGRfb2xk X2xpYnM9eWVzCisrCWJyZWFrCisrCTs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAg ICMgU2VlIGlmIG91ciBzaGFyZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4K KysgICAgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIGJ1aWxkX29sZF9s aWJzPXllcworKworKyAgICAjIEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50cywgdHJhbnNmb3JtaW5n IHRoZW0gb24gdGhlIHdheS4KKysgICAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbworKyAgICAg IGFyZz0iJDEiCisrICAgICAgc2hpZnQKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAqW1xb XH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKysJcWFyZz1cImAk ZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYFwiICMjIyB0ZXN0c3Vp dGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAorKwk7OworKyAgICAgICopIHFhcmc9JGFyZyA7 OworKyAgICAgIGVzYWMKKysgICAgICBsaWJ0b29sX2FyZ3M9IiRsaWJ0b29sX2FyZ3MgJHFhcmci CisrCisrICAgICAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBh c3NpZ24gaXQuCisrICAgICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrCWNhc2UgJHByZXYg aW4KKysJb3V0cHV0KQorKwkgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCBAT1VU UFVUQCIKKysJICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCBAT1VUUFVUQCIK KysJICA7OworKwllc2FjCisrCisrCWNhc2UgJHByZXYgaW4KKysJZGxmaWxlc3xkbHByZWZpbGVz KQorKwkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9IG5vOyB0aGVuCisrCSAgICAjIEFkZCB0aGUgc3lt Ym9sIG9iamVjdCBpbnRvIHRoZSBsaW5raW5nIGNvbW1hbmRzLgorKwkgICAgY29tcGlsZV9jb21t YW5kPSIkY29tcGlsZV9jb21tYW5kIEBTWU1GSUxFQCIKKysJICAgIGZpbmFsaXplX2NvbW1hbmQ9 IiRmaW5hbGl6ZV9jb21tYW5kIEBTWU1GSUxFQCIKKysJICAgIHByZWxvYWQ9eWVzCisrCSAgZmkK KysJICBjYXNlICRhcmcgaW4KKysJICAqLmxhIHwgKi5sbykgOzsgICMgV2UgaGFuZGxlIHRoZXNl IGNhc2VzIGJlbG93LgorKwkgIGZvcmNlKQorKwkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsg dGhlbgorKwkgICAgICBkbHNlbGY9bmVlZGxlc3MKKysJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVz CisrCSAgICBmaQorKwkgICAgcHJldj0KKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgIHNl bGYpCisrCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisrCSAgICAgIGRs c2VsZj15ZXMKKysJICAgIGVsaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxv cGVuX3NlbGYiICE9IHllczsgdGhlbgorKwkgICAgICBkbHNlbGY9eWVzCisrCSAgICBlbHNlCisr CSAgICAgIGRsc2VsZj1uZWVkbGVzcworKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKKysJICAg IGZpCisrCSAgICBwcmV2PQorKwkgICAgY29udGludWUKKysJICAgIDs7CisrCSAgKikKKysJICAg IGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KKysJICAgICAgZGxmaWxlcz0iJGRsZmls ZXMgJGFyZyIKKysJICAgIGVsc2UKKysJICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGFy ZyIKKysJICAgIGZpCisrCSAgICBwcmV2PQorKwkgICAgY29udGludWUKKysJICAgIDs7CisrCSAg ZXNhYworKwkgIDs7CisrCWV4cHN5bXMpCisrCSAgZXhwb3J0X3N5bWJvbHM9IiRhcmciCisrCSAg aWYgdGVzdCAhIC1mICIkYXJnIjsgdGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogc3ltYm9s IGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBleGlzdCIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQor KwkgIGZpCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWV4cHN5bXNfcmVnZXgp CisrCSAgZXhwb3J0X3N5bWJvbHNfcmVnZXg9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51 ZQorKwkgIDs7CisrCWluc3RfcHJlZml4KQorKwkgIGluc3RfcHJlZml4X2Rpcj0iJGFyZyIKKysJ ICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJcHJlY2lvdXNfcmVnZXgpCisrCSAgcHJl Y2lvdXNfZmlsZXNfcmVnZXg9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7 CisrCXJlbGVhc2UpCisrCSAgcmVsZWFzZT0iLSRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51 ZQorKwkgIDs7CisrCW9iamVjdGxpc3QpCisrCSAgaWYgdGVzdCAtZiAiJGFyZyI7IHRoZW4KKysJ ICAgIHNhdmVfYXJnPSRhcmcKKysJICAgIG1vcmVhcmdzPQorKwkgICAgZm9yIGZpbCBpbiBgY2F0 ICRzYXZlX2FyZ2AKKysJICAgIGRvCisrIwkgICAgICBtb3JlYXJncz0iJG1vcmVhcmdzICRmaWwi CisrCSAgICAgIGFyZz0kZmlsCisrCSAgICAgICMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0 LgorKworKwkgICAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9v bCBvYmplY3QuCisrCSAgICAgIGlmICgke1NFRH0gLWUgJzJxJyAkYXJnIHwgZ3JlcCAiXiMgR2Vu ZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJCXBpY19vYmpl Y3Q9CisrCQlub25fcGljX29iamVjdD0KKysKKysJCSMgUmVhZCB0aGUgLmxvIGZpbGUKKysJCSMg SWYgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgorKwkJY2Fz ZSAkYXJnIGluCisrCQkqLyogfCAqXFwqKSAuICRhcmcgOzsKKysJCSopIC4gLi8kYXJnIDs7Cisr CQllc2FjCisrCisrCQlpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgXAorKwkJICAgdGVzdCAt eiAiJG5vbl9waWNfb2JqZWN0IiB8fAorKwkJICAgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAm JiBcCisrCQkgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgorKwkJICAkZWNo byAiJG1vZGVuYW1lOiBjYW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIgMT4m MgorKwkJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJCWZpCisrCisrCQkjIEV4dHJhY3Qgc3ViZGly ZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkJeGRpcj1gJGVjaG8gIlgkYXJnIiB8ICRYc2Vk IC1lICdzJS9bXi9dKiQlJSdgCisrCQlpZiB0ZXN0ICJYJHhkaXIiID0gIlgkYXJnIjsgdGhlbgor KwkJICB4ZGlyPQorKwkJZWxzZQorKwkJICB4ZGlyPSIkeGRpci8iCisrCQlmaQorKworKwkJaWYg dGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJCSAgIyBQcmVwZW5kIHRoZSBzdWJk aXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKysJCSAgcGljX29iamVjdD0iJHhkaXIk cGljX29iamVjdCIKKysKKysJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkJ ICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5f c3VwcG9ydCIgPSB5ZXM7IHRoZW4KKysJCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRwaWNfb2Jq ZWN0IgorKwkJICAgICAgcHJldj0KKysJCSAgICAgIGNvbnRpbnVlCisrCQkgICAgZWxzZQorKwkJ ICAgICAgIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQg dG8gcHJlbG9hZC4KKysJCSAgICAgIHByZXY9ZGxwcmVmaWxlcworKwkJICAgIGZpCisrCQkgIGZp CisrCisrCQkgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCisr CQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJCSAgICAjIFByZWxvYWQg dGhlIG9sZC1zdHlsZSBvYmplY3QuCisrCQkgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJHBp Y19vYmplY3QiCisrCQkgICAgcHJldj0KKysJCSAgZmkKKysKKysJCSAgIyBBIFBJQyBvYmplY3Qu CisrCQkgIGxpYm9ianM9IiRsaWJvYmpzICRwaWNfb2JqZWN0IgorKwkJICBhcmc9IiRwaWNfb2Jq ZWN0IgorKwkJZmkKKysKKysJCSMgTm9uLVBJQyBvYmplY3QuCisrCQlpZiB0ZXN0ICIkbm9uX3Bp Y19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3Rvcnkg dGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKysJCSAgbm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9w aWNfb2JqZWN0IgorKworKwkJICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKKysJCSAgbm9u X3BpY19vYmplY3RzPSIkbm9uX3BpY19vYmplY3RzICRub25fcGljX29iamVjdCIKKysJCSAgaWYg dGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVu CisrCQkgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCisrCQkgIGZpCisrCQllbHNlCisrCQkgICMg SWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KKysJCSAgIyAkeGRpciB3 YXMgcHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3ZlLgorKwkJICBub25fcGljX29iamVjdD0i JHBpY19vYmplY3QiCisrCQkgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9u X3BpY19vYmplY3QiCisrCQlmaQorKwkgICAgICBlbHNlCisrCQkjIE9ubHkgYW4gZXJyb3IgaWYg bm90IGRvaW5nIGEgZHJ5LXJ1bi4KKysJCWlmIHRlc3QgLXogIiRydW4iOyB0aGVuCisrCQkgICRl Y2hvICIkbW9kZW5hbWU6IFxgJGFyZycgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiIDE+ JjIKKysJCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCQllbHNlCisrCQkgICMgRHJ5LXJ1biBjYXNl LgorKworKwkJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkJ ICB4ZGlyPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKKysJCSAgaWYg dGVzdCAiWCR4ZGlyIiA9ICJYJGFyZyI7IHRoZW4KKysJCSAgICB4ZGlyPQorKwkJICBlbHNlCisr CQkgICAgeGRpcj0iJHhkaXIvIgorKwkJICBmaQorKworKwkJICBwaWNfb2JqZWN0PWAkZWNobyAi WCR7eGRpcn0ke29iamRpcn0vJHthcmd9IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrCQkgIG5vbl9w aWNfb2JqZWN0PWAkZWNobyAiWCR7eGRpcn0ke2FyZ30iIHwgJFhzZWQgLWUgIiRsbzJvImAKKysJ CSAgbGlib2Jqcz0iJGxpYm9ianMgJHBpY19vYmplY3QiCisrCQkgIG5vbl9waWNfb2JqZWN0cz0i JG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCisrCQlmaQorKwkgICAgICBmaQorKwkg ICAgZG9uZQorKwkgIGVsc2UKKysJICAgICRlY2hvICIkbW9kZW5hbWU6IGxpbmsgaW5wdXQgZmls ZSBcYCRzYXZlX2FyZycgZG9lcyBub3QgZXhpc3QiCisrCSAgICBleGl0ICRFWElUX0ZBSUxVUkUK KysJICBmaQorKwkgIGFyZz0kc2F2ZV9hcmcKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAg OzsKKysJcnBhdGggfCB4cnBhdGgpCisrCSAgIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisr CSAgY2FzZSAkYXJnIGluCisrCSAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OworKwkgICop CisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxs b3dlZCIgMT4mMgorKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgICA7OworKwkgIGVzYWMK KysJICBpZiB0ZXN0ICIkcHJldiIgPSBycGF0aDsgdGhlbgorKwkgICAgY2FzZSAiJHJwYXRoICIg aW4KKysJICAgICoiICRhcmcgIiopIDs7CisrCSAgICAqKSBycGF0aD0iJHJwYXRoICRhcmciIDs7 CisrCSAgICBlc2FjCisrCSAgZWxzZQorKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisrCSAgICAq IiAkYXJnICIqKSA7OworKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRhcmciIDs7CisrCSAgICBl c2FjCisrCSAgZmkKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJeGNvbXBpbGVy KQorKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisrCSAgcHJldj0K KysJICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJHFhcmciCisrCSAgZmluYWxp emVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJHFhcmciCisrCSAgY29udGludWUKKysJICA7 OworKwl4bGlua2VyKQorKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKysJ ICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR3bCRxYXJnIgorKwkgIHByZXY9Cisr CSAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICR3bCRxYXJnIgorKwkgIGZpbmFs aXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICR3bCRxYXJnIgorKwkgIGNvbnRpbnVlCisr CSAgOzsKKysJeGNjbGlua2VyKQorKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFy ZyIKKysJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRxYXJnIgorKwkgIHByZXY9 CisrCSAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICRxYXJnIgorKwkgIGZpbmFs aXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRxYXJnIgorKwkgIGNvbnRpbnVlCisrCSAg OzsKKysJc2hyZXh0KQorKyAgCSAgc2hyZXh0X2NtZHM9IiRhcmciCisrCSAgcHJldj0KKysJICBj b250aW51ZQorKwkgIDs7CisrCWRhcndpbl9mcmFtZXdvcmt8ZGFyd2luX2ZyYW1ld29ya19za2lw KQorKwkgIHRlc3QgIiRwcmV2IiA9ICJkYXJ3aW5fZnJhbWV3b3JrIiAmJiBjb21waWxlcl9mbGFn cz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrCSAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9j b21tYW5kICRhcmciCisrCSAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFy ZyIKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJKikKKysJICBldmFsICIkcHJl dj1cIlwkYXJnXCIiCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWVzYWMKKysg ICAgICBmaSAjIHRlc3QgLW4gIiRwcmV2IgorKworKyAgICAgIHByZXZhcmc9IiRhcmciCisrCisr ICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLWFsbC1zdGF0aWMpCisrCWlmIHRlc3QgLW4gIiRs aW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29t bWFuZCAkbGlua19zdGF0aWNfZmxhZyIKKysJICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVf Y29tbWFuZCAkbGlua19zdGF0aWNfZmxhZyIKKysJZmkKKysJY29udGludWUKKysJOzsKKysKKysg ICAgICAtYWxsb3ctdW5kZWZpbmVkKQorKwkjIEZJWE1FOiByZW1vdmUgdGhpcyBmbGFnIHNvbWV0 aW1lIGluIHRoZSBmdXR1cmUuCisrCSRlY2hvICIkbW9kZW5hbWU6IFxgLWFsbG93LXVuZGVmaW5l ZCcgaXMgZGVwcmVjYXRlZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IiAxPiYyCisrCWNvbnRp bnVlCisrCTs7CisrCisrICAgICAgLWF2b2lkLXZlcnNpb24pCisrCWF2b2lkX3ZlcnNpb249eWVz CisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWRsb3BlbikKKysJcHJldj1kbGZpbGVzCisr CWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWRscHJlb3BlbikKKysJcHJldj1kbHByZWZpbGVz CisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWV4cG9ydC1keW5hbWljKQorKwlleHBvcnRf ZHluYW1pYz15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtZXhwb3J0LXN5bWJvbHMg fCAtZXhwb3J0LXN5bWJvbHMtcmVnZXgpCisrCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIg fHwgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICRlY2hvICIkbW9k ZW5hbWU6IG1vcmUgdGhhbiBvbmUgLWV4cG9ydGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFs bG93ZWQiCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCWZpCisrCWlmIHRlc3QgIlgkYXJnIiA9 ICJYLWV4cG9ydC1zeW1ib2xzIjsgdGhlbgorKwkgIHByZXY9ZXhwc3ltcworKwllbHNlCisrCSAg cHJldj1leHBzeW1zX3JlZ2V4CisrCWZpCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWZy YW1ld29ya3wtYXJjaHwtaXN5c3Jvb3QpCisrCWNhc2UgIiAkQ0MgIiBpbgorKwkgICoiICR7YXJn fSAkezF9ICIqIHwgKiIgJHthcmd9CSR7MX0gIiopIAorKwkJcHJldj1kYXJ3aW5fZnJhbWV3b3Jr X3NraXAgOzsKKysJICAqKSBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisr CSAgICAgcHJldj1kYXJ3aW5fZnJhbWV3b3JrIDs7CisrCWVzYWMKKysJY29tcGlsZV9jb21tYW5k PSIkY29tcGlsZV9jb21tYW5kICRhcmciCisrCWZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9j b21tYW5kICRhcmciCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWluc3QtcHJlZml4LWRp cikKKysJcHJldj1pbnN0X3ByZWZpeAorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgVGhl IG5hdGl2ZSBJUklYIGxpbmtlciB1bmRlcnN0YW5kcyAtTEFORzoqLCAtTElTVDoqIGFuZCAtTE5P OioKKysgICAgICAjIHNvLCBpZiB3ZSBzZWUgdGhlc2UgZmxhZ3MgYmUgY2FyZWZ1bCBub3QgdG8g dHJlYXQgdGhlbSBsaWtlIC1MCisrICAgICAgLUxbQS1aXVtBLVpdKjoqKQorKwljYXNlICR3aXRo X2djYy8kaG9zdCBpbgorKwluby8qLSotaXJpeCogfCAvKi0qLWlyaXgqKQorKwkgIGNvbXBpbGVf Y29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkYXJnIgorKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRm aW5hbGl6ZV9jb21tYW5kICRhcmciCisrCSAgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7Owor KworKyAgICAgIC1MKikKKysJZGlyPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgJ3MvXi1MLy8n YAorKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KKysJY2FzZSAkZGlyIGluCisrCVtcXC9d KiB8IFtBLVphLXpdOltcXC9dKikgOzsKKysJKikKKysJICBhYnNkaXI9YGNkICIkZGlyIiAmJiBw d2RgCisrCSAgaWYgdGVzdCAteiAiJGFic2RpciI7IHRoZW4KKysJICAgICRlY2hvICIkbW9kZW5h bWU6IGNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIg MT4mMgorKwkgICAgYWJzZGlyPSIkZGlyIgorKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9w YXRoICRkaXIiCisrCSAgZmkKKysJICBkaXI9IiRhYnNkaXIiCisrCSAgOzsKKysJZXNhYworKwlj YXNlICIkZGVwbGlicyAiIGluCisrCSoiIC1MJGRpciAiKikgOzsKKysJKikKKysJICBkZXBsaWJz PSIkZGVwbGlicyAtTCRkaXIiCisrCSAgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRo ICRkaXIiCisrCSAgOzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisrCSotKi1jeWd3aW4qIHwg Ki0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqKQorKwkgIHRlc3RiaW5kaXI9YCRlY2hv ICJYJGRpciIgfCAkWHNlZCAtZSAncyovbGliJCovYmluKidgCisrCSAgY2FzZSA6JGRsbHNlYXJj aHBhdGg6IGluCisrCSAgKiI6JGRpcjoiKikgOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxs c2VhcmNocGF0aDokZGlyIjs7CisrCSAgZXNhYworKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBp bgorKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxz ZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysJY29u dGludWUKKysJOzsKKysKKysgICAgICAtbCopCisrCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiB8 fCB0ZXN0ICJYJGFyZyIgPSAiWC1sbSI7IHRoZW4KKysJICBjYXNlICRob3N0IGluCisrCSAgKi0q LWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLWJlb3MqKQorKwkgICAgIyBU aGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIG9yIG1hdGggbGlicmFyeSAoYXMg c3VjaCkKKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgICotKi1vczIqKQorKwkgICAgIyBU aGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIGxpYnJhcnkgKGFzIHN1Y2gpCisr CSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKysJICAgIDs7CisrCSAgKi0q LW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisrCSAgICAjIERvIG5v dCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KKysJICAgIHRlc3Qg IlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotcmhhcHNvZHkq IHwgKi0qLWRhcndpbjEuWzAxMl0pCisrCSAgICAjIFJoYXBzb2R5IEMgYW5kIG1hdGggbGlicmFy aWVzIGFyZSBpbiB0aGUgU3lzdGVtIGZyYW1ld29yaworKwkgICAgZGVwbGlicz0iJGRlcGxpYnMg LWZyYW1ld29yayBTeXN0ZW0iCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotc2Nv My4ydjUqIHwgKi0qLXNjbzV2NiopCisrCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5 cGUKKysJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJ ICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVu VU5JWCopCisrCSAgICAjIENvbXBpbGVyIGluc2VydHMgbGliYyBpbiB0aGUgY29ycmVjdCBwbGFj ZSBmb3IgdGhyZWFkcyB0byB3b3JrCisrCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29u dGludWUKKysJICAgIDs7CisrCSAgZXNhYworKwllbGlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjX3Ii OyB0aGVuCisrCSBjYXNlICRob3N0IGluCisrCSAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCog fCAqLSotZHJhZ29uZmx5KikKKysJICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjX3IgZGlyZWN0bHks IHVzZSAtcHRocmVhZCBmbGFnLgorKwkgICBjb250aW51ZQorKwkgICA7OworKwkgZXNhYworKwlm aQorKwlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorKwljb250aW51ZQorKwk7OworKworKyAgICAg ICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBv ZiBDKysKKysgICAgICAjIGNsYXNzZXMsIG5hbWUgbWFuZ2xpbmcsIGFuZCBleGNlcHRpb24gaGFu ZGxpbmcuCisrICAgICAgLW1vZGVsKQorKwljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1h bmQgJGFyZyIKKysJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorKwlmaW5h bGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkYXJnIgorKwlwcmV2PXhjb21waWxlcgor Kwljb250aW51ZQorKwk7OworKworKyAgICAgLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3RocmVh ZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2FmZXwtdGhyZWFkcykKKysJY29tcGlsZXJf ZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorKwljb21waWxlX2NvbW1hbmQ9IiRjb21waWxl X2NvbW1hbmQgJGFyZyIKKysJZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFy ZyIKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtbXVsdGlfbW9kdWxlKQorKwlzaW5nbGVf bW9kdWxlPSIke3dsfS1tdWx0aV9tb2R1bGUiCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAg LW1vZHVsZSkKKysJbW9kdWxlPXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgLTY0 LCAtbWlwc1swLTldIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU0dJIGNvbXBpbGVyCisrICAg ICAgIyAtclswLTldWzAtOV0qIHNwZWNpZmllcyB0aGUgcHJvY2Vzc29yIG9uIHRoZSBTR0kgY29t cGlsZXIKKysgICAgICAjIC14YXJjaD0qLCAteHRhcmdldD0qIGVuYWJsZSA2NC1iaXQgbW9kZSBv biB0aGUgU3VuIGNvbXBpbGVyCisrICAgICAgIyArREEqLCArREQqIGVuYWJsZSA2NC1iaXQgbW9k ZSBvbiB0aGUgSFAgY29tcGlsZXIKKysgICAgICAjIC1xKiBwYXNzIHRocm91Z2ggY29tcGlsZXIg YXJncyBmb3IgdGhlIElCTSBjb21waWxlcgorKyAgICAgICMgLW0qIHBhc3MgdGhyb3VnaCBhcmNo aXRlY3R1cmUtc3BlY2lmaWMgY29tcGlsZXIgYXJncyBmb3IgR0NDCisrICAgICAgIyAtbSosIC10 WzQ1XSosIC10eHNjYWxlKiBwYXNzIHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNwZWNpZmljCisrICAg ICAgIyBjb21waWxlciBhcmdzIGZvciBHQ0MKKysgICAgICAjIC1wLCAtcGcsIC0tY292ZXJhZ2Us IC1mcHJvZmlsZS0qIHBhc3MgdGhyb3VnaCBwcm9maWxpbmcgZmxhZyBmb3IgR0NDCisrICAgICAg IyAtRi9wYXRoIGdpdmVzIHBhdGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRh cndpbgorKyAgICAgICMgQGZpbGUgR0NDIHJlc3BvbnNlIGZpbGVzCisrICAgICAgLTY0fC1taXBz WzAtOV18LXJbMC05XVswLTldKnwteGFyY2g9KnwteHRhcmdldD0qfCtEQSp8K0REKnwtcSp8LW0q fCBcCisrICAgICAgLXRbNDVdKnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxl LSp8LUYqfEAqKQorKworKwkjIFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29t bWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKKysJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1 b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KKysJYXJnPWAkZWNobyAiWCRhcmci IHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKwljYXNlICRhcmcgaW4KKysJKltcW1x+ XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrCSAgYXJnPSJcIiRh cmdcIiIKKysJICA7OworKwllc2FjCisrICAgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxl X2NvbW1hbmQgJGFyZyIKKysgICAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21t YW5kICRhcmciCisrICAgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmci CisrICAgICAgICBjb250aW51ZQorKyAgICAgICAgOzsKKysKKysgICAgICAtc2hyZXh0KQorKwlw cmV2PXNocmV4dAorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1uby1mYXN0LWluc3RhbGwp CisrCWZhc3RfaW5zdGFsbD1ubworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1uby1pbnN0 YWxsKQorKwljYXNlICRob3N0IGluCisrCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1w dzMyKiB8ICotKi1vczIqIHwgKi0qLWRhcndpbiopCisrCSAgIyBUaGUgUEFUSCBoYWNrZXJ5IGlu IHdyYXBwZXIgc2NyaXB0cyBpcyByZXF1aXJlZCBvbiBXaW5kb3dzCisrCSAgIyBhbmQgRGFyd2lu IGluIG9yZGVyIGZvciB0aGUgbG9hZGVyIHRvIGZpbmQgYW55IGRsbHMgaXQgbmVlZHMuCisrCSAg JGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtbm8taW5zdGFsbCcgaXMgaWdub3JlZCBmb3Ig JGhvc3QiIDE+JjIKKysJICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBhc3N1bWluZyBcYC1u by1mYXN0LWluc3RhbGwnIGluc3RlYWQiIDE+JjIKKysJICBmYXN0X2luc3RhbGw9bm8KKysJICA7 OworKwkqKSBub19pbnN0YWxsPXllcyA7OworKwllc2FjCisrCWNvbnRpbnVlCisrCTs7CisrCisr ICAgICAgLW5vLXVuZGVmaW5lZCkKKysJYWxsb3dfdW5kZWZpbmVkPW5vCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLW9iamVjdGxpc3QpCisrCXByZXY9b2JqZWN0bGlzdAorKwljb250aW51 ZQorKwk7OworKworKyAgICAgIC1vKSBwcmV2PW91dHB1dCA7OworKworKyAgICAgIC1wcmVjaW91 cy1maWxlcy1yZWdleCkKKysJcHJldj1wcmVjaW91c19yZWdleAorKwljb250aW51ZQorKwk7Owor KworKyAgICAgIC1yZWxlYXNlKQorKwlwcmV2PXJlbGVhc2UKKysJY29udGludWUKKysJOzsKKysK KysgICAgICAtcnBhdGgpCisrCXByZXY9cnBhdGgKKysJY29udGludWUKKysJOzsKKysKKysgICAg ICAtUikKKysJcHJldj14cnBhdGgKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtUiopCisr CWRpcj1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICdzL14tUi8vJ2AKKysJIyBXZSBuZWVkIGFu IGFic29sdXRlIHBhdGguCisrCWNhc2UgJGRpciBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwv XSopIDs7CisrCSopCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogb25seSBhYnNvbHV0ZSBydW4tcGF0 aHMgYXJlIGFsbG93ZWQiIDE+JjIKKysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICA7OworKwll c2FjCisrCWNhc2UgIiR4cnBhdGggIiBpbgorKwkqIiAkZGlyICIqKSA7OworKwkqKSB4cnBhdGg9 IiR4cnBhdGggJGRpciIgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1z dGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykKKysJIyBUaGUgZWZmZWN0cyBvZiAtc3RhdGlj IGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9vcC4KKysJIyBXZSB1c2VkIHRvIGRvIHRoZSBz YW1lIGFzIC1hbGwtc3RhdGljIG9uIHBsYXRmb3JtcyB0aGF0CisrCSMgZGlkbid0IGhhdmUgYSBQ SUMgZmxhZywgYnV0IHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGVmZmVjdHMKKysJIyB3b3VsZCBi ZSBlcXVpdmFsZW50IHdhcyB3cm9uZy4gIEl0IHdvdWxkIGJyZWFrIG9uIGF0IGxlYXN0CisrCSMg RGlnaXRhbCBVbml4IGFuZCBBSVguCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXRocmVh ZC1zYWZlKQorKwl0aHJlYWRfc2FmZT15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAt dmVyc2lvbi1pbmZvKQorKwlwcmV2PXZpbmZvCisrCWNvbnRpbnVlCisrCTs7CisrICAgICAgLXZl cnNpb24tbnVtYmVyKQorKwlwcmV2PXZpbmZvCisrCXZpbmZvX251bWJlcj15ZXMKKysJY29udGlu dWUKKysJOzsKKysKKysgICAgICAtV2MsKikKKysJYXJncz1gJGVjaG8gIlgkYXJnIiB8ICRYc2Vk IC1lICIkc2VkX3F1b3RlX3N1YnN0IiAtZSAncy9eLVdjLC8vJ2AKKysJYXJnPQorKwlzYXZlX2lm cz0iJElGUyI7IElGUz0nLCcKKysJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAgSUZTPSIkc2F2 ZV9pZnMiCisrCSAgY2FzZSAkZmxhZyBpbgorKwkgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8 XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrCSAgICBmbGFnPSJcIiRmbGFnXCIiCisrCSAgICA7 OworKwkgIGVzYWMKKysJICBhcmc9IiRhcmcgJHdsJGZsYWciCisrCSAgY29tcGlsZXJfZmxhZ3M9 IiRjb21waWxlcl9mbGFncyAkZmxhZyIKKysJZG9uZQorKwlJRlM9IiRzYXZlX2lmcyIKKysJYXJn PWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgInMvXiAvLyJgCisrCTs7CisrCisrICAgICAgLVds LCopCisrCWFyZ3M9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCIg LWUgJ3MvXi1XbCwvLydgCisrCWFyZz0KKysJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCisrCWZv ciBmbGFnIGluICRhcmdzOyBkbworKwkgIElGUz0iJHNhdmVfaWZzIgorKwkgIGNhc2UgJGZsYWcg aW4KKysJICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIi KQorKwkgICAgZmxhZz0iXCIkZmxhZ1wiIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgYXJnPSIk YXJnICR3bCRmbGFnIgorKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJGZs YWciCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgorKwlkb25lCisrCUlG Uz0iJHNhdmVfaWZzIgorKwlhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAicy9eIC8vImAK KysJOzsKKysKKysgICAgICAtWGNvbXBpbGVyKQorKwlwcmV2PXhjb21waWxlcgorKwljb250aW51 ZQorKwk7OworKworKyAgICAgIC1YbGlua2VyKQorKwlwcmV2PXhsaW5rZXIKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtWENDbGlua2VyKQorKwlwcmV2PXhjY2xpbmtlcgorKwljb250aW51 ZQorKwk7OworKworKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBmbGFnLgorKyAgICAgIC0q IHwgKyopCisrCSMgVW5rbm93biBhcmd1bWVudHMgaW4gYm90aCBmaW5hbGl6ZV9jb21tYW5kIGFu ZCBjb21waWxlX2NvbW1hbmQgbmVlZAorKwkjIHRvIGJlIGFlc3RoZXRpY2FsbHkgcXVvdGVkIGJl Y2F1c2UgdGhleSBhcmUgZXZhbGVkIGxhdGVyLgorKwlhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNl ZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCisrCWNhc2UgJGFyZyBpbgorKwkqW1xbXH5cI1xeXCZc KlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKysJICBhcmc9IlwiJGFyZ1wiIgor KwkgIDs7CisrCWVzYWMKKysJOzsKKysKKysgICAgICAqLiRvYmpleHQpCisrCSMgQSBzdGFuZGFy ZCBvYmplY3QuCisrCW9ianM9IiRvYmpzICRhcmciCisrCTs7CisrCisrICAgICAgKi5sbykKKysJ IyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCisrCisrCSMgQ2hlY2sgdG8gc2VlIHRoYXQg dGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIG9iamVjdC4KKysJaWYgKCR7U0VEfSAtZSAnMnEnICRh cmcgfCBncmVwICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIpID4vZGV2L251bGwgMj4mMTsg dGhlbgorKwkgIHBpY19vYmplY3Q9CisrCSAgbm9uX3BpY19vYmplY3Q9CisrCisrCSAgIyBSZWFk IHRoZSAubG8gZmlsZQorKwkgICMgSWYgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVudCwg dGhlbiBhZGQgb25lLgorKwkgIGNhc2UgJGFyZyBpbgorKwkgICovKiB8ICpcXCopIC4gJGFyZyA7 OworKwkgICopIC4gLi8kYXJnIDs7CisrCSAgZXNhYworKworKwkgIGlmIHRlc3QgLXogIiRwaWNf b2JqZWN0IiB8fCBcCisrCSAgICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAorKwkgICAg IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYgXAorKwkgICAgIHRlc3QgIiRub25fcGljX29i amVjdCIgPSBub25lOyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBjYW5ub3QgZmluZCBu YW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIgMT4mMgorKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJF CisrCSAgZmkKKysKKysJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50 LgorKwkgIHhkaXI9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAorKwkg IGlmIHRlc3QgIlgkeGRpciIgPSAiWCRhcmciOyB0aGVuCisrCSAgICB4ZGlyPQorKyAJICBlbHNl CisrCSAgICB4ZGlyPSIkeGRpci8iCisrCSAgZmkKKysKKysJICBpZiB0ZXN0ICIkcGljX29iamVj dCIgIT0gbm9uZTsgdGhlbgorKwkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9i amVjdCBpcyBmb3VuZCBpbi4KKysJICAgIHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3QiCisr CisrCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3Qg IiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5 ZXM7IHRoZW4KKysJCWRsZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgorKwkJcHJldj0KKysJ CWNvbnRpbnVlCisrCSAgICAgIGVsc2UKKysJCSMgSWYgbGlidG9vbCBvYmplY3RzIGFyZSB1bnN1 cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQuCisrCQlwcmV2PWRscHJlZmlsZXMKKysJ ICAgICAgZmkKKysJICAgIGZpCisrCisrCSAgICAjIENIRUNLIE1FOiAgSSB0aGluayBJIGJ1c3Rl ZCB0aGlzLiAgLU9zc2FtYQorKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhl bgorKwkgICAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCisrCSAgICAgIGRscHJl ZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0IgorKwkgICAgICBwcmV2PQorKwkgICAgZmkK KysKKysJICAgICMgQSBQSUMgb2JqZWN0LgorKwkgICAgbGlib2Jqcz0iJGxpYm9ianMgJHBpY19v YmplY3QiCisrCSAgICBhcmc9IiRwaWNfb2JqZWN0IgorKwkgIGZpCisrCisrCSAgIyBOb24tUElD IG9iamVjdC4KKysJICBpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJ ICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCisr CSAgICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCisrCisrCSAgICAjIEEg c3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKKysJICAgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNf b2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCisrCSAgICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIg fHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRoZW4KKysJICAgICAgYXJnPSIkbm9uX3Bp Y19vYmplY3QiCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgICMgSWYgdGhlIFBJQyBvYmplY3Qg ZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KKysJICAgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAk cGljX29iamVjdCBhYm92ZS4KKysJICAgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKKysJ ICAgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCisr CSAgZmkKKysJZWxzZQorKwkgICMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBkcnktcnVu LgorKwkgIGlmIHRlc3QgLXogIiRydW4iOyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBc YCRhcmcnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgb2JqZWN0IiAxPiYyCisrCSAgICBleGl0ICRF WElUX0ZBSUxVUkUKKysJICBlbHNlCisrCSAgICAjIERyeS1ydW4gY2FzZS4KKysKKysJICAgICMg RXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisrCSAgICB4ZGlyPWAkZWNo byAiWCRhcmciIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKKysJICAgIGlmIHRlc3QgIlgkeGRp ciIgPSAiWCRhcmciOyB0aGVuCisrCSAgICAgIHhkaXI9CisrCSAgICBlbHNlCisrCSAgICAgIHhk aXI9IiR4ZGlyLyIKKysJICAgIGZpCisrCisrCSAgICBwaWNfb2JqZWN0PWAkZWNobyAiWCR7eGRp cn0ke29iamRpcn0vJHthcmd9IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrCSAgICBub25fcGljX29i amVjdD1gJGVjaG8gIlgke3hkaXJ9JHthcmd9IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrCSAgICBs aWJvYmpzPSIkbGlib2JqcyAkcGljX29iamVjdCIKKysJICAgIG5vbl9waWNfb2JqZWN0cz0iJG5v bl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCisrCSAgZmkKKysJZmkKKysJOzsKKysKKysg ICAgICAqLiRsaWJleHQpCisrCSMgQW4gYXJjaGl2ZS4KKysJZGVwbGlicz0iJGRlcGxpYnMgJGFy ZyIKKysJb2xkX2RlcGxpYnM9IiRvbGRfZGVwbGlicyAkYXJnIgorKwljb250aW51ZQorKwk7Owor KworKyAgICAgICoubGEpCisrCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4KKysKKysJ aWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkgICMgVGhpcyBsaWJyYXJ5IHdhcyBz cGVjaWZpZWQgd2l0aCAtZGxvcGVuLgorKwkgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisrCSAg cHJldj0KKysJZWxpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisrCSAgIyBUaGUg bGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4KKysJICBkbHByZWZpbGVzPSIk ZGxwcmVmaWxlcyAkYXJnIgorKwkgIHByZXY9CisrCWVsc2UKKysJICBkZXBsaWJzPSIkZGVwbGli cyAkYXJnIgorKwlmaQorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgU29tZSBvdGhlciBj b21waWxlciBhcmd1bWVudC4KKysgICAgICAqKQorKwkjIFVua25vd24gYXJndW1lbnRzIGluIGJv dGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKKysJIyB0byBiZSBh ZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KKysJYXJn PWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKwljYXNlICRh cmcgaW4KKysJKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIp CisrCSAgYXJnPSJcIiRhcmdcIiIKKysJICA7OworKwllc2FjCisrCTs7CisrICAgICAgZXNhYyAj IGFyZworKworKyAgICAgICMgTm93IGFjdHVhbGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGlu dG8gdGhlIGNvbW1hbmRzLgorKyAgICAgIGlmIHRlc3QgLW4gIiRhcmciOyB0aGVuCisrCWNvbXBp bGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkYXJnIgorKwlmaW5hbGl6ZV9jb21tYW5kPSIk ZmluYWxpemVfY29tbWFuZCAkYXJnIgorKyAgICAgIGZpCisrICAgIGRvbmUgIyBhcmd1bWVudCBw YXJzaW5nIGxvb3AKKysKKysgICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrICAgICAgJGVj aG8gIiRtb2RlbmFtZTogdGhlIFxgJHByZXZhcmcnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVu dCIgMT4mMgorKyAgICAgICRlY2hvICIkaGVscCIgMT4mMgorKyAgICAgIGV4aXQgJEVYSVRfRkFJ TFVSRQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzICYm IHRlc3QgLW4gIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWMiOyB0aGVuCisrICAgICAgZXZhbCBh cmc9XCIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIKKysgICAgICBjb21waWxlX2NvbW1hbmQ9 IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKKysgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxp emVfY29tbWFuZCAkYXJnIgorKyAgICBmaQorKworKyAgICBvbGRsaWJzPQorKyAgICAjIGNhbGN1 bGF0ZSB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgd2l0aG91dCBpdHMgZGlyZWN0b3J5CisrICAgIG91 dHB1dG5hbWU9YCRlY2hvICJYJG91dHB1dCIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAorKyAgICBs aWJvYmpzX3NhdmU9IiRsaWJvYmpzIgorKworKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3Zh ciI7IHRoZW4KKysgICAgICAjIGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGluICRzaGxpYnBh dGhfdmFyCisrICAgICAgZXZhbCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkZWNobyBcIlhcJHskc2hs aWJwYXRoX3Zhcn1cIiBcfCBcJFhzZWQgLWUgXCdzLzovIC9nXCdcYAorKyAgICBlbHNlCisrICAg ICAgc2hsaWJfc2VhcmNoX3BhdGg9CisrICAgIGZpCisrICAgIGV2YWwgc3lzX2xpYl9zZWFyY2hf cGF0aD1cIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWNcIgorKyAgICBldmFsIHN5c19saWJfZGxz ZWFyY2hfcGF0aD1cIiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlY1wiCisrCisrICAgIG91dHB1 dF9vYmpkaXI9YCRlY2hvICJYJG91dHB1dCIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAorKyAg ICBpZiB0ZXN0ICJYJG91dHB1dF9vYmpkaXIiID0gIlgkb3V0cHV0IjsgdGhlbgorKyAgICAgIG91 dHB1dF9vYmpkaXI9IiRvYmpkaXIiCisrICAgIGVsc2UKKysgICAgICBvdXRwdXRfb2JqZGlyPSIk b3V0cHV0X29iamRpci8kb2JqZGlyIgorKyAgICBmaQorKyAgICAjIENyZWF0ZSB0aGUgb2JqZWN0 IGRpcmVjdG9yeS4KKysgICAgaWYgdGVzdCAhIC1kICIkb3V0cHV0X29iamRpciI7IHRoZW4KKysg ICAgICAkc2hvdyAiJG1rZGlyICRvdXRwdXRfb2JqZGlyIgorKyAgICAgICRydW4gJG1rZGlyICRv dXRwdXRfb2JqZGlyCisrICAgICAgZXhpdF9zdGF0dXM9JD8KKysgICAgICBpZiB0ZXN0ICIkZXhp dF9zdGF0dXMiIC1uZSAwICYmIHRlc3QgISAtZCAiJG91dHB1dF9vYmpkaXIiOyB0aGVuCisrCWV4 aXQgJGV4aXRfc3RhdHVzCisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgIyBEZXRlcm1pbmUg dGhlIHR5cGUgb2Ygb3V0cHV0CisrICAgIGNhc2UgJG91dHB1dCBpbgorKyAgICAiIikKKysgICAg ICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIiAxPiYy CisrICAgICAgJGVjaG8gIiRoZWxwIiAxPiYyCisrICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisr ICAgICAgOzsKKysgICAgKi4kbGliZXh0KSBsaW5rbW9kZT1vbGRsaWIgOzsKKysgICAgKi5sbyB8 ICouJG9iamV4dCkgbGlua21vZGU9b2JqIDs7CisrICAgICoubGEpIGxpbmttb2RlPWxpYiA7Owor KyAgICAqKSBsaW5rbW9kZT1wcm9nIDs7ICMgQW55dGhpbmcgZWxzZSBzaG91bGQgYmUgYSBwcm9n cmFtLgorKyAgICBlc2FjCisrCisrICAgIGNhc2UgJGhvc3QgaW4KKysgICAgKmN5Z3dpbiogfCAq bWluZ3cqIHwgKnB3MzIqKQorKyAgICAgICMgZG9uJ3QgZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBp biAkcG9zdGRlcHMgYW5kICRwcmVkZXBzCisrICAgICAgZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVy YXRlZF9kZXBzPXllcworKyAgICAgIDs7CisrICAgICopCisrICAgICAgZHVwbGljYXRlX2NvbXBp bGVyX2dlbmVyYXRlZF9kZXBzPSRkdXBsaWNhdGVfZGVwcworKyAgICAgIDs7CisrICAgIGVzYWMK KysgICAgc3BlY2lhbGRlcGxpYnM9CisrCisrICAgIGxpYnM9CisrICAgICMgRmluZCBhbGwgaW50 ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcworKyAgICAjIHRo YXQgYXJlIGxpbmtlZCBtb3JlIHRoYW4gb25jZSAoZS5nLiAtbGEgLWxiIC1sYSkKKysgICAgZm9y IGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysgICAgICBpZiB0ZXN0ICJYJGR1cGxpY2F0ZV9kZXBz IiA9ICJYeWVzIiA7IHRoZW4KKysJY2FzZSAiJGxpYnMgIiBpbgorKwkqIiAkZGVwbGliICIqKSBz cGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCWVzYWMKKysgICAg ICBmaQorKyAgICAgIGxpYnM9IiRsaWJzICRkZXBsaWIiCisrICAgIGRvbmUKKysKKysgICAgaWYg dGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJz ICRjb21waWxlcl9saWJfc2VhcmNoX3BhdGggJHBvc3RkZXBzIgorKworKyAgICAgICMgQ29tcHV0 ZSBsaWJyYXJpZXMgdGhhdCBhcmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCisr ICAgICAgIyAkcG9zdGRlcHMgYW5kIG1hcmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBk dXBsaWNhdGVzIGFyZQorKyAgICAgICMgbm90IHRvIGJlIGVsaW1pbmF0ZWQpLgorKyAgICAgIHBy ZV9wb3N0X2RlcHM9CisrICAgICAgaWYgdGVzdCAiWCRkdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJh dGVkX2RlcHMiID0gIlh5ZXMiIDsgdGhlbgorKwlmb3IgcHJlX3Bvc3RfZGVwIGluICRwcmVkZXBz ICRwb3N0ZGVwczsgZG8KKysJICBjYXNlICIkcHJlX3Bvc3RfZGVwcyAiIGluCisrCSAgKiIgJHBy ZV9wb3N0X2RlcCAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3Rf ZGVwcyIgOzsKKysJICBlc2FjCisrCSAgcHJlX3Bvc3RfZGVwcz0iJHByZV9wb3N0X2RlcHMgJHBy ZV9wb3N0X2RlcCIKKysJZG9uZQorKyAgICAgIGZpCisrICAgICAgcHJlX3Bvc3RfZGVwcz0KKysg ICAgZmkKKysKKysgICAgZGVwbGlicz0KKysgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQorKyAgICBu ZXdsaWJfc2VhcmNoX3BhdGg9CisrICAgIG5lZWRfcmVsaW5rPW5vICMgd2hldGhlciB3ZSdyZSBs aW5raW5nIGFueSB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgICBub3RpbnN0X2Rl cGxpYnM9ICMgbm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgICBjYXNlICRsaW5r bW9kZSBpbgorKyAgICBsaWIpCisrCXBhc3Nlcz0iY29udiBsaW5rIgorKwlmb3IgZmlsZSBpbiAk ZGxmaWxlcyAkZGxwcmVmaWxlczsgZG8KKysJICBjYXNlICRmaWxlIGluCisrCSAgKi5sYSkgOzsK KysJICAqKQorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogbGlicmFyaWVzIGNhbiBcYC1kbG9wZW4n IG9ubHkgbGlidG9vbCBsaWJyYXJpZXM6ICRmaWxlIiAxPiYyCisrCSAgICBleGl0ICRFWElUX0ZB SUxVUkUKKysJICAgIDs7CisrCSAgZXNhYworKwlkb25lCisrCTs7CisrICAgIHByb2cpCisrCWNv bXBpbGVfZGVwbGlicz0KKysJZmluYWxpemVfZGVwbGlicz0KKysJYWxsZGVwbGlicz1ubworKwlu ZXdkbGZpbGVzPQorKwluZXdkbHByZWZpbGVzPQorKwlwYXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4g ZGxwcmVvcGVuIGxpbmsiCisrCTs7CisrICAgICopICBwYXNzZXM9ImNvbnYiCisrCTs7CisrICAg IGVzYWMKKysgICAgZm9yIHBhc3MgaW4gJHBhc3NlczsgZG8KKysgICAgICBpZiB0ZXN0ICIkbGlu a21vZGUsJHBhc3MiID0gImxpYixsaW5rIiB8fAorKwkgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9 ICJwcm9nLHNjYW4iOyB0aGVuCisrCWxpYnM9IiRkZXBsaWJzIgorKwlkZXBsaWJzPQorKyAgICAg IGZpCisrICAgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJY2FzZSAkcGFz cyBpbgorKwlkbG9wZW4pIGxpYnM9IiRkbGZpbGVzIiA7OworKwlkbHByZW9wZW4pIGxpYnM9IiRk bHByZWZpbGVzIiA7OworKwlsaW5rKSBsaWJzPSIkZGVwbGlicyAlREVQTElCUyUgJGRlcGVuZGVu Y3lfbGlicyIgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHBhc3MiID0g ZGxvcGVuOyB0aGVuCisrCSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKKysJc2F2ZV9k ZXBsaWJzPSIkZGVwbGlicyIKKysJZGVwbGlicz0KKysgICAgICBmaQorKyAgICAgIGZvciBkZXBs aWIgaW4gJGxpYnM7IGRvCisrCWxpYj0KKysJZm91bmQ9bm8KKysJY2FzZSAkZGVwbGliIGluCisr CS1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhy ZWFkLXNhZmV8LXRocmVhZHMpCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9n LGxpbmsiOyB0aGVuCisrCSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVw bGlicyIKKysJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMi CisrCSAgZWxzZQorKwkgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZGVwbGli IgorKwkgIGZpCisrCSAgY29udGludWUKKysJICA7OworKwktbCopCisrCSAgaWYgdGVzdCAiJGxp bmttb2RlIiAhPSBsaWIgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nOyB0aGVuCisrCSAgICAk ZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1sJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9v YmplY3RzIiAxPiYyCisrCSAgICBjb250aW51ZQorKwkgIGZpCisrCSAgbmFtZT1gJGVjaG8gIlgk ZGVwbGliIiB8ICRYc2VkIC1lICdzL14tbC8vJ2AKKysJICBpZiB0ZXN0ICIkbGlua21vZGUiID0g bGliOyB0aGVuCisrCSAgICBzZWFyY2hkaXJzPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsaWJfc2Vh cmNoX3BhdGggJGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycyAkc3lzX2xpYl9zZWFyY2hfcGF0aCAk c2hsaWJfc2VhcmNoX3BhdGgiCisrCSAgZWxzZQorKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9z ZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9z ZWFyY2hfcGF0aCIKKysJICBmaQorKwkgIGZvciBzZWFyY2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRv CisrCSAgICBmb3Igc2VhcmNoX2V4dCBpbiAubGEgJHN0ZF9zaHJleHQgLnNvIC5hOyBkbworKwkg ICAgICAjIFNlYXJjaCB0aGUgbGlidG9vbCBsaWJyYXJ5CisrCSAgICAgIGxpYj0iJHNlYXJjaGRp ci9saWIke25hbWV9JHtzZWFyY2hfZXh0fSIKKysJICAgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRo ZW4KKysJCWlmIHRlc3QgIiRzZWFyY2hfZXh0IiA9ICIubGEiOyB0aGVuCisrCQkgIGZvdW5kPXll cworKwkJZWxzZQorKwkJICBmb3VuZD1ubworKwkJZmkKKysJCWJyZWFrIDIKKysJICAgICAgZmkK KysJICAgIGRvbmUKKysJICBkb25lCisrCSAgaWYgdGVzdCAiJGZvdW5kIiAhPSB5ZXM7IHRoZW4K KysJICAgICMgZGVwbGliIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGxpYnRvb2wgbGlicmFyeQorKwkg ICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgICAg IGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgICBmaW5h bGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgZWxzZQorKwkg ICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgICB0ZXN0ICIkbGlua21vZGUi ID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJz IgorKwkgICAgZmkKKysJICAgIGNvbnRpbnVlCisrCSAgZWxzZSAjIGRlcGxpYiBpcyBhIGxpYnRv b2wgbGlicmFyeQorKwkgICAgIyBJZiAkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1 bnRpbWVzICYmICRkZXBsaWIgaXMgYSBzdGRsaWIsCisrCSAgICAjIFdlIG5lZWQgdG8gZG8gc29t ZSBzcGVjaWFsIHRoaW5ncyBoZXJlLCBhbmQgbm90IGxhdGVyLgorKwkgICAgaWYgdGVzdCAiWCRh bGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgor KwkgICAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJICAgICAgKiIgJGRlcGxp YiAiKikKKysJCWlmICgke1NFRH0gLWUgJzJxJyAkbGliIHwKKysgICAgICAgICAgICAgICAgICAg IGdyZXAgIl4jIEdlbmVyYXRlZCBieSAuKiRQQUNLQUdFIikgPi9kZXYvbnVsbCAyPiYxOyB0aGVu CisrCQkgIGxpYnJhcnlfbmFtZXM9CisrCQkgIG9sZF9saWJyYXJ5PQorKwkJICBjYXNlICRsaWIg aW4KKysJCSAgKi8qIHwgKlxcKikgLiAkbGliIDs7CisrCQkgICopIC4gLi8kbGliIDs7CisrCQkg IGVzYWMKKysJCSAgZm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbworKwkJ ICAgIGxsPSIkbCIKKysJCSAgZG9uZQorKwkJICBpZiB0ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJy YXJ5IiA7IHRoZW4gIyBvbmx5IHN0YXRpYyB2ZXJzaW9uIGF2YWlsYWJsZQorKwkJICAgIGZvdW5k PW5vCisrCQkgICAgbGFkaXI9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUn YAorKwkJICAgIHRlc3QgIlgkbGFkaXIiID0gIlgkbGliIiAmJiBsYWRpcj0iLiIKKysJCSAgICBs aWI9JGxhZGlyLyRvbGRfbGlicmFyeQorKwkJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIg PSAicHJvZyxsaW5rIjsgdGhlbgorKwkJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRj b21waWxlX2RlcGxpYnMiCisrCQkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5h bGl6ZV9kZXBsaWJzIgorKwkJICAgIGVsc2UKKysJCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRl cGxpYnMiCisrCQkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lf bGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkJICAgIGZpCisrCQkgICAgY29u dGludWUKKysJCSAgZmkKKysJCWZpCisrCSAgICAgICAgOzsKKysJICAgICAgKikgOzsKKysJICAg ICAgZXNhYworKwkgICAgZmkKKysJICBmaQorKwkgIDs7ICMgLWwKKysJLUwqKQorKwkgIGNhc2Ug JGxpbmttb2RlIGluCisrCSAgbGliKQorKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIK KysJICAgIHRlc3QgIiRwYXNzIiA9IGNvbnYgJiYgY29udGludWUKKysJICAgIG5ld2RlcGVuZGVu Y3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgbmV3bGliX3NlYXJj aF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICJgJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1l ICdzL14tTC8vJ2AKKysJICAgIDs7CisrCSAgcHJvZykKKysJICAgIGlmIHRlc3QgIiRwYXNzIiA9 IGNvbnY7IHRoZW4KKysJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgICAg Y29udGludWUKKysJICAgIGZpCisrCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBzY2FuOyB0aGVuCisr CSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgIGNv bXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgICBmaW5hbGl6 ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgZmkKKysJICAgIG5l d2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAiYCRlY2hvICJYJGRlcGxpYiIg fCAkWHNlZCAtZSAncy9eLUwvLydgCisrCSAgICA7OworKwkgICopCisrCSAgICAkZWNobyAiJG1v ZGVuYW1lOiB3YXJuaW5nOiBcYC1MJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIiAx PiYyCisrCSAgICA7OworKwkgIGVzYWMgIyBsaW5rbW9kZQorKwkgIGNvbnRpbnVlCisrCSAgOzsg IyAtTAorKwktUiopCisrCSAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorKwkgICAgZGly PWAkZWNobyAiWCRkZXBsaWIiIHwgJFhzZWQgLWUgJ3MvXi1SLy8nYAorKwkgICAgIyBNYWtlIHN1 cmUgdGhlIHhycGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICAgIGNh c2UgIiR4cnBhdGggIiBpbgorKwkgICAgKiIgJGRpciAiKikgOzsKKysJICAgICopIHhycGF0aD0i JHhycGF0aCAkZGlyIiA7OworKwkgICAgZXNhYworKwkgIGZpCisrCSAgZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKKysJICBjb250aW51ZQorKwkgIDs7CisrCSoubGEpIGxpYj0iJGRlcGxpYiIg OzsKKysJKi4kbGliZXh0KQorKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAg IGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBjb250aW51ZQorKwkgIGZpCisrCSAg Y2FzZSAkbGlua21vZGUgaW4KKysJICBsaWIpCisrCSAgICB2YWxpZF9hX2xpYj1ubworKwkgICAg Y2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KKysJICAgICAgbWF0Y2hfcGF0dGVybiopCisr CQlzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kCisrCSAgICAgICAgbWF0Y2hfcGF0dGVy bl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMiBcKC4qXCkiYAorKwkJ aWYgZXZhbCAkZWNobyBcIiRkZXBsaWJcIiAyPi9kZXYvbnVsbCBcCisrCQkgICAgfCAkU0VEIDEw cSBcCisrCQkgICAgfCAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsg dGhlbgorKwkJICB2YWxpZF9hX2xpYj15ZXMKKysJCWZpCisrCQk7OworKwkgICAgICBwYXNzX2Fs bCkKKysJCXZhbGlkX2FfbGliPXllcworKwkJOzsKKysgICAgICAgICAgICBlc2FjCisrCSAgICBp ZiB0ZXN0ICIkdmFsaWRfYV9saWIiICE9IHllczsgdGhlbgorKwkgICAgICAkZWNobworKwkgICAg ICAkZWNobyAiKioqIFdhcm5pbmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNo aXZlICRkZXBsaWIuIgorKwkgICAgICAkZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0 byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJICAgICAg JGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0 aGlzIGlmIHlvdSBoYXZlIGEiCisrCSAgICAgICRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCSAgICAgICRl Y2hvICIqKiogYmVjYXVzZSB0aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJn dW1lbnQgbWFrZXMgbWUgYmVsaWV2ZSIKKysJICAgICAgJGVjaG8gIioqKiB0aGF0IGl0IGlzIGp1 c3QgYSBzdGF0aWMgYXJjaGl2ZSB0aGF0IEkgc2hvdWxkIG5vdCB1c2VkIGhlcmUuIgorKwkgICAg ZWxzZQorKwkgICAgICAkZWNobworKwkgICAgICAkZWNobyAiKioqIFdhcm5pbmc6IExpbmtpbmcg dGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUiCisrCSAgICAgICRlY2hvICIq Kiogc3RhdGljIGxpYnJhcnkgJGRlcGxpYiBpcyBub3QgcG9ydGFibGUhIgorKwkgICAgICBkZXBs aWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgZmkKKysJICAgIGNvbnRpbnVlCisrCSAgICA7 OworKwkgIHByb2cpCisrCSAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgorKwkgICAg ICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBjb21waWxl X2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVw bGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGZpCisrCSAgICBjb250aW51 ZQorKwkgICAgOzsKKysJICBlc2FjICMgbGlua21vZGUKKysJICA7OyAjICouJGxpYmV4dAorKwkq LmxvIHwgKi4kb2JqZXh0KQorKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAg IGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0g cHJvZzsgdGhlbgorKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRk bG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87 IHRoZW4KKysJICAgICAgIyBJZiB0aGVyZSBpcyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBs aW5raW5nIHN0YXRpY2FsbHksCisrCSAgICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgorKwkgICAg ICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGVwbGliIgorKwkgICAgICBjb21waWxl X2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVw bGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgbmV3 ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGRlcGxpYiIKKysJICAgIGZpCisrCSAgZmkKKysJICBjb250 aW51ZQorKwkgIDs7CisrCSVERVBMSUJTJSkKKysJICBhbGxkZXBsaWJzPXllcworKwkgIGNvbnRp bnVlCisrCSAgOzsKKysJZXNhYyAjIGNhc2UgJGRlcGxpYgorKwlpZiB0ZXN0ICIkZm91bmQiID0g eWVzIHx8IHRlc3QgLWYgIiRsaWIiOyB0aGVuIDoKKysJZWxzZQorKwkgICRlY2hvICIkbW9kZW5h bWU6IGNhbm5vdCBmaW5kIHRoZSBsaWJyYXJ5IFxgJGxpYicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50 IFxgJGRlcGxpYiciIDE+JjIKKysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJZmkKKysKKysJIyBD aGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KKysJaWYg KCR7U0VEfSAtZSAnMnEnICRsaWIgfCBncmVwICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIp ID4vZGV2L251bGwgMj4mMTsgdGhlbiA6CisrCWVsc2UKKysJICAkZWNobyAiJG1vZGVuYW1lOiBc YCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgorKwkgIGV4aXQgJEVY SVRfRkFJTFVSRQorKwlmaQorKworKwlsYWRpcj1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdz JS9bXi9dKiQlJSdgCisrCXRlc3QgIlgkbGFkaXIiID0gIlgkbGliIiAmJiBsYWRpcj0iLiIKKysK KysJZGxuYW1lPQorKwlkbG9wZW49CisrCWRscHJlb3Blbj0KKysJbGliZGlyPQorKwlsaWJyYXJ5 X25hbWVzPQorKwlvbGRfbGlicmFyeT0KKysJIyBJZiB0aGUgbGlicmFyeSB3YXMgaW5zdGFsbGVk IHdpdGggYW4gb2xkIHJlbGVhc2Ugb2YgbGlidG9vbCwKKysJIyBpdCB3aWxsIG5vdCByZWRlZmlu ZSB2YXJpYWJsZXMgaW5zdGFsbGVkLCBvciBzaG91bGRub3RsaW5rCisrCWluc3RhbGxlZD15ZXMK KysJc2hvdWxkbm90bGluaz1ubworKwlhdm9pZHRlbXBycGF0aD0KKysKKysKKysJIyBSZWFkIHRo ZSAubGEgZmlsZQorKwljYXNlICRsaWIgaW4KKysJKi8qIHwgKlxcKikgLiAkbGliIDs7CisrCSop IC4gLi8kbGliIDs7CisrCWVzYWMKKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJs aWIsbGluayIgfHwKKysJICAgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iIHx8 CisrCSAgIHsgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0g bGliOyB9OyB0aGVuCisrCSAgdGVzdCAtbiAiJGRsb3BlbiIgJiYgZGxmaWxlcz0iJGRsZmlsZXMg JGRsb3BlbiIKKysJICB0ZXN0IC1uICIkZGxwcmVvcGVuIiAmJiBkbHByZWZpbGVzPSIkZGxwcmVm aWxlcyAkZGxwcmVvcGVuIgorKwlmaQorKworKwlpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVu CisrCSAgIyBPbmx5IGNoZWNrIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMKKysJICBkZXBsaWJz PSIkbGliICRkZXBsaWJzIgorKwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisrCSAgICBp ZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB0aGVuCisrCSAgICAgICRlY2hvICIkbW9kZW5hbWU6 IGNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIiAxPiYyCisrCSAg ICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwkgICAgZmkKKysJICAgICMgSXQgaXMgYSBsaWJ0b29s IGNvbnZlbmllbmNlIGxpYnJhcnksIHNvIGFkZCBpbiBpdHMgb2JqZWN0cy4KKysJICAgIGNvbnZl bmllbmNlPSIkY29udmVuaWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgorKwkgICAg b2xkX2NvbnZlbmllbmNlPSIkb2xkX2NvbnZlbmllbmNlICRsYWRpci8kb2JqZGlyLyRvbGRfbGli cmFyeSIKKysJICAgIHRtcF9saWJzPQorKwkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9s aWJzOyBkbworKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKyAgICAgICAgICAg ICAgaWYgdGVzdCAiWCRkdXBsaWNhdGVfZGVwcyIgPSAiWHllcyIgOyB0aGVuCisrCSAgICAgICAg Y2FzZSAiJHRtcF9saWJzICIgaW4KKysJICAgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVw bGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAgICAgZXNhYworKyAgICAg ICAgICAgICAgZmkKKysJICAgICAgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgorKwkgICAg ZG9uZQorKwkgIGVsaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9k ZSIgIT0gbGliOyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBh IGNvbnZlbmllbmNlIGxpYnJhcnkiIDE+JjIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwkg IGZpCisrCSAgY29udGludWUKKysJZmkgIyAkcGFzcyA9IGNvbnYKKysKKysKKysJIyBHZXQgdGhl IG5hbWUgb2YgdGhlIGxpYnJhcnkgd2UgbGluayBhZ2FpbnN0LgorKwlsaW5rbGliPQorKwlmb3Ig bCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCisrCSAgbGlua2xpYj0iJGwiCisr CWRvbmUKKysJaWYgdGVzdCAteiAiJGxpbmtsaWIiOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFt ZTogY2Fubm90IGZpbmQgbmFtZSBvZiBsaW5rIGxpYnJhcnkgZm9yIFxgJGxpYiciIDE+JjIKKysJ ICBleGl0ICRFWElUX0ZBSUxVUkUKKysJZmkKKysKKysJIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNp ZmllZCB3aXRoIC1kbG9wZW4uCisrCWlmIHRlc3QgIiRwYXNzIiA9IGRsb3BlbjsgdGhlbgorKwkg IGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBjYW5u b3QgLWRsb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxpYiciIDE+JjIKKysJICAgIGV4 aXQgJEVYSVRfRkFJTFVSRQorKwkgIGZpCisrCSAgaWYgdGVzdCAteiAiJGRsbmFtZSIgfHwKKysJ ICAgICB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiICE9IHllcyB8fAorKwkgICAgIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgICMgSWYgdGhlcmUgaXMgbm8gZGxuYW1l LCBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nCisrCSAgICAjIHN0YXRpY2FsbHks IHdlIG5lZWQgdG8gcHJlbG9hZC4gIFdlIGFsc28gbmVlZCB0byBwcmVsb2FkIGFueQorKwkgICAg IyBkZXBlbmRlbnQgbGlicmFyaWVzIHNvIGxpYmx0ZGwncyBkZXBsaWIgcHJlbG9hZGVyIGRvZXNu J3QKKysJICAgICMgYm9tYiBvdXQgaW4gdGhlIGxvYWQgZGVwbGlicyBwaGFzZS4KKysJICAgIGRs cHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIgJGRlcGVuZGVuY3lfbGlicyIKKysJICBlbHNlCisr CSAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliIgorKwkgIGZpCisrCSAgY29udGludWUK KysJZmkgIyAkcGFzcyA9IGRsb3BlbgorKworKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4K KysJY2FzZSAkbGFkaXIgaW4KKysJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNfbGFkaXI9 IiRsYWRpciIgOzsKKysJKikKKysJICBhYnNfbGFkaXI9YGNkICIkbGFkaXIiICYmIHB3ZGAKKysJ ICBpZiB0ZXN0IC16ICIkYWJzX2xhZGlyIjsgdGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTog d2FybmluZzogY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRs YWRpciciIDE+JjIKKysJICAgICRlY2hvICIkbW9kZW5hbWU6IHBhc3NpbmcgaXQgbGl0ZXJhbGx5 IHRvIHRoZSBsaW5rZXIsIGFsdGhvdWdoIGl0IG1pZ2h0IGZhaWwiIDE+JjIKKysJICAgIGFic19s YWRpcj0iJGxhZGlyIgorKwkgIGZpCisrCSAgOzsKKysJZXNhYworKwlsYW5hbWU9YCRlY2hvICJY JGxpYiIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAorKworKwkjIEZpbmQgdGhlIHJlbGV2YW50IG9i amVjdCBkaXJlY3RvcnkgYW5kIGxpYnJhcnkgbmFtZS4KKysJaWYgdGVzdCAiWCRpbnN0YWxsZWQi ID0gWHllczsgdGhlbgorKwkgIGlmIHRlc3QgISAtZiAiJGxpYmRpci8kbGlua2xpYiIgJiYgdGVz dCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KKysJICAgICRlY2hvICIkbW9kZW5hbWU6 IHdhcm5pbmc6IGxpYnJhcnkgXGAkbGliJyB3YXMgbW92ZWQuIiAxPiYyCisrCSAgICBkaXI9IiRs YWRpciIKKysJICAgIGFic2Rpcj0iJGFic19sYWRpciIKKysJICAgIGxpYmRpcj0iJGFic19sYWRp ciIKKysJICBlbHNlCisrCSAgICBkaXI9IiRsaWJkaXIiCisrCSAgICBhYnNkaXI9IiRsaWJkaXIi CisrCSAgZmkKKysJICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSBYeWVzICYmIGF2b2lk dGVtcHJwYXRoPXllcworKwllbHNlCisrCSAgaWYgdGVzdCAhIC1mICIkbGFkaXIvJG9iamRpci8k bGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KKysJICAgIGRp cj0iJGxhZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgorKwkgICAgIyBSZW1vdmUgdGhp cyBzZWFyY2ggcGF0aCBsYXRlcgorKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRh YnNfbGFkaXIiCisrCSAgZWxzZQorKwkgICAgZGlyPSIkbGFkaXIvJG9iamRpciIKKysJICAgIGFi c2Rpcj0iJGFic19sYWRpci8kb2JqZGlyIgorKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0 aCBsYXRlcgorKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCisr CSAgZmkKKysJZmkgIyAkaW5zdGFsbGVkID0geWVzCisrCW5hbWU9YCRlY2hvICJYJGxhbmFtZSIg fCAkWHNlZCAtZSAncy9cLmxhJC8vJyAtZSAncy9ebGliLy8nYAorKworKwkjIFRoaXMgbGlicmFy eSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxw cmVvcGVuOyB0aGVuCisrCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKysJICAgICRlY2hv ICIkbW9kZW5hbWU6IGNhbm5vdCAtZGxwcmVvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAk bGliJyIgMT4mMgorKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgZmkKKysJICAjIFByZWZl ciB1c2luZyBhIHN0YXRpYyBsaWJyYXJ5IChzbyB0aGF0IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJv bHMKKysJICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4KKysJICBpZiB0ZXN0IC1uICIkb2xkX2xp YnJhcnkiOyB0aGVuCisrCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRv bGRfbGlicmFyeSIKKysJICAjIE90aGVyd2lzZSwgdXNlIHRoZSBkbG5hbWUsIHNvIHRoYXQgbHRf ZGxvcGVuIGZpbmRzIGl0LgorKwkgIGVsaWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRoZW4KKysJICAg IG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJGRsbmFtZSIKKysJICBlbHNlCisr CSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRsaW5rbGliIgorKwkgIGZp CisrCWZpICMgJHBhc3MgPSBkbHByZW9wZW4KKysKKysJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRo ZW4KKysJICAjIExpbmsgdGhlIGNvbnZlbmllbmNlIGxpYnJhcnkKKysJICBpZiB0ZXN0ICIkbGlu a21vZGUiID0gbGliOyB0aGVuCisrCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVw bGlicyIKKysJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhl bgorKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkY29tcGlsZV9kZXBs aWJzIgorKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGZpbmFsaXpl X2RlcGxpYnMiCisrCSAgZWxzZQorKwkgICAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIgIyB1c2Vk IGZvciBwcm9nLHNjYW4gcGFzcworKwkgIGZpCisrCSAgY29udGludWUKKysJZmkKKysKKysKKysJ aWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgJiYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4K KysJICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxhZGlyIgorKwkg IGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCisrCisrCSAgbGlua2FsbGRlcGxpYnM9bm8KKysJICBp ZiB0ZXN0ICIkbGlua19hbGxfZGVwbGlicyIgIT0gbm8gfHwgdGVzdCAteiAiJGxpYnJhcnlfbmFt ZXMiIHx8CisrCSAgICAgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgorKwkg ICAgbGlua2FsbGRlcGxpYnM9eWVzCisrCSAgZmkKKysKKysJICB0bXBfbGlicz0KKysJICBmb3Ig ZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICBjYXNlICRkZXBsaWIgaW4KKysJ ICAgIC1MKikgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICJgJGVjaG8g IlgkZGVwbGliIiB8ICRYc2VkIC1lICdzL14tTC8vJ2A7OyAjIyMgdGVzdHN1aXRlOiBza2lwIG5l c3RlZCBxdW90aW5nIHRlc3QKKysJICAgIGVzYWMKKysJICAgICMgTmVlZCB0byBsaW5rIGFnYWlu c3QgYWxsIGRlcGVuZGVuY3lfbGlicz8KKysJICAgIGlmIHRlc3QgIiRsaW5rYWxsZGVwbGlicyIg PSB5ZXM7IHRoZW4KKysJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIGVs c2UKKysJICAgICAgIyBOZWVkIHRvIGhhcmRjb2RlIHNoYXJlZCBsaWJyYXJ5IHBhdGhzCisrCSAg ICAgICMgb3IvYW5kIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGlicmFyaWVzCisrCSAgICAgIG5ld2Rl cGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgZmkKKysJ ICAgIGlmIHRlc3QgIlgkZHVwbGljYXRlX2RlcHMiID0gIlh5ZXMiIDsgdGhlbgorKwkgICAgICBj YXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGli cz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisr CSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisrCSAgZG9uZSAjIGZvciBkZXBsaWIK KysJICBjb250aW51ZQorKwlmaSAjICRsaW5rbW9kZSA9IHByb2cuLi4KKysKKysJaWYgdGVzdCAi JGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGxp YnJhcnlfbmFtZXMiICYmCisrCSAgICAgeyB7IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMiID0g bm8gfHwKKysJCSB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJzLCRpbnN0YWxsZWQiID0gImJ1aWx0 LHllcyI7IH0gfHwKKysJICAgICAgIHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KKysJ ICAgICMgV2UgbmVlZCB0byBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoCisrCSAgICBpZiB0ZXN0 IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAteiAiJGF2b2lkdGVtcHJwYXRoIiA7IHRoZW4K KysJICAgICAgIyBNYWtlIHN1cmUgdGhlIHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVj dG9yaWVzLgorKwkgICAgICBjYXNlICIkdGVtcF9ycGF0aCAiIGluCisrCSAgICAgICoiICRkaXIg IiopIDs7CisrCSAgICAgICoiICRhYnNkaXIgIiopIDs7CisrCSAgICAgICopIHRlbXBfcnBhdGg9 IiR0ZW1wX3JwYXRoICRhYnNkaXIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCisrCSAg ICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisrCSAgICAjIFNraXAgZGlyZWN0b3JpZXMg dGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisrCSAgICAjIHNlYXJjaCBw YXRoLgorKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIg JGFic2RpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIg aW4KKysJICAgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICAgKikgY29tcGlsZV9ycGF0aD0i JGNvbXBpbGVfcnBhdGggJGFic2RpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAg ZXNhYworKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIg JGxpYmRpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAi IGluCisrCSAgICAgICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAgICopIGZpbmFsaXplX3JwYXRo PSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkg ICAgZXNhYworKwkgIGZpICMgJGxpbmttb2RlLCRwYXNzID0gcHJvZyxsaW5rLi4uCisrCisrCSAg aWYgdGVzdCAiJGFsbGRlcGxpYnMiID0geWVzICYmCisrCSAgICAgeyB0ZXN0ICIkZGVwbGlic19j aGVja19tZXRob2QiID0gcGFzc19hbGwgfHwKKysJICAgICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRv b2xfbGlicyIgPSB5ZXMgJiYKKysJCSB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IH07IH07IHRo ZW4KKysJICAgICMgV2Ugb25seSBuZWVkIHRvIHNlYXJjaCBmb3Igc3RhdGljIGxpYnJhcmllcwor KwkgICAgY29udGludWUKKysJICBmaQorKwlmaQorKworKwlsaW5rX3N0YXRpYz1ubyAjIFdoZXRo ZXIgdGhlIGRlcGxpYiB3aWxsIGJlIGxpbmtlZCBzdGF0aWNhbGx5CisrCXVzZV9zdGF0aWNfbGli cz0kcHJlZmVyX3N0YXRpY19saWJzCisrCWlmIHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gYnVp bHQgJiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXMgOyB0aGVuCisrCSAgdXNlX3N0YXRpY19saWJz PW5vCisrCWZpCisrCWlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJgorKwkgICB7IHRlc3Qg IiR1c2Vfc3RhdGljX2xpYnMiID0gbm8gfHwgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgfTsgdGhl bgorKwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm87IHRoZW4KKysJICAgIG5vdGluc3RfZGVw bGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorKwkgICAgbmVlZF9yZWxpbms9eWVzCisrCSAg ZmkKKysJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGlicmFyeQorKworKwkgICMgV2FybiBhYm91dCBw b3J0YWJpbGl0eSwgY2FuJ3QgbGluayBhZ2FpbnN0IC1tb2R1bGUncyBvbgorKwkgICMgc29tZSBz eXN0ZW1zIChkYXJ3aW4pCisrCSAgaWYgdGVzdCAiJHNob3VsZG5vdGxpbmsiID0geWVzICYmIHRl c3QgIiRwYXNzIiA9IGxpbmsgOyB0aGVuCisrCSAgICAkZWNobworKwkgICAgaWYgdGVzdCAiJGxp bmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBMaW5raW5n IHRoZSBleGVjdXRhYmxlICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgorKwkg ICAgZWxzZQorKwkgICAgICAkZWNobyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBs aWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgorKwkgICAgZmkKKysJ ICAgICRlY2hvICIqKiogJGxpbmtsaWIgaXMgbm90IHBvcnRhYmxlISIKKysJICBmaQorKwkgIGlm IHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYKKysJICAgICB0ZXN0ICIkaGFyZGNvZGVfaW50b19s aWJzIiA9IHllczsgdGhlbgorKwkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgorKwkg ICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4t dGltZQorKwkgICAgIyBzZWFyY2ggcGF0aC4KKysJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJj aF9wYXRoICIgaW4KKysJICAgICoiICRhYnNkaXIgIiopIDs7CisrCSAgICAqKQorKwkgICAgICBj YXNlICIkY29tcGlsZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRhYnNkaXIgIiopIDs7CisrCSAg ICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21waWxlX3JwYXRoICRhYnNkaXIiCisrCSAgICAgIGVz YWMKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJj aF9wYXRoICIgaW4KKysJICAgICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAqKQorKwkgICAgICBj YXNlICIkZmluYWxpemVfcnBhdGggIiBpbgorKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworKwkg ICAgICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiCisrCSAgICAg IGVzYWMKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICBmaQorKworKwkgIGlmIHRlc3QgLW4g IiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyI7IHRoZW4KKysJICAgICMgZmlndXJlIG91 dCB0aGUgc29uYW1lCisrCSAgICBzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKKysJICAgIHJlYWxu YW1lPSIkMiIKKysJICAgIHNoaWZ0OyBzaGlmdAorKwkgICAgbGlibmFtZT1gZXZhbCBcXCRlY2hv IFwiJGxpYm5hbWVfc3BlY1wiYAorKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQn cyBwZXJmZWN0bHkgZ29vZCwgbm8/CisrCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgor KwkgICAgICBzb25hbWU9IiRkbG5hbWUiCisrCSAgICBlbGlmIHRlc3QgLW4gIiRzb25hbWVfc3Bl YyI7IHRoZW4KKysJICAgICAgIyBibGVoIHdpbmRvd3MKKysJICAgICAgY2FzZSAkaG9zdCBpbgor KwkgICAgICAqY3lnd2luKiB8IG1pbmd3KikKKysJCW1ham9yPWBleHByICRjdXJyZW50IC0gJGFn ZWAKKysJCXZlcnN1ZmZpeD0iLSRtYWpvciIKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAg ZXZhbCBzb25hbWU9XCIkc29uYW1lX3NwZWNcIgorKwkgICAgZWxzZQorKwkgICAgICBzb25hbWU9 IiRyZWFsbmFtZSIKKysJICAgIGZpCisrCisrCSAgICAjIE1ha2UgYSBuZXcgbmFtZSBmb3IgdGhl IGV4dHJhY3RfZXhwc3ltc19jbWRzIHRvIHVzZQorKwkgICAgc29yb290PSIkc29uYW1lIgorKwkg ICAgc29uYW1lPWAkZWNobyAkc29yb290IHwgJHtTRUR9IC1lICdzL14uKlwvLy8nYAorKwkgICAg bmV3bGliPSJsaWJpbXAtYCRlY2hvICRzb25hbWUgfCAke1NFRH0gJ3MvXmxpYi8vO3MvXC5kbGwk Ly8nYC5hIgorKworKwkgICAgIyBJZiB0aGUgbGlicmFyeSBoYXMgbm8gZXhwb3J0IGxpc3QsIHRo ZW4gY3JlYXRlIG9uZSBub3cKKysJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRzb25h bWUtZGVmIjsgdGhlbiA6CisrCSAgICBlbHNlCisrCSAgICAgICRzaG93ICJleHRyYWN0aW5nIGV4 cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gXGAkc29uYW1lJyIKKysJICAgICAgc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9J34nCisrCSAgICAgIGNtZHM9JGV4dHJhY3RfZXhwc3ltc19jbWRzCisrCSAgICAg IGZvciBjbWQgaW4gJGNtZHM7IGRvCisrCQlJRlM9IiRzYXZlX2lmcyIKKysJCWV2YWwgY21kPVwi JGNtZFwiCisrCQkkc2hvdyAiJGNtZCIKKysJCSRydW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPwor KwkgICAgICBkb25lCisrCSAgICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAgZmkKKysKKysJICAg ICMgQ3JlYXRlICRuZXdsaWIKKysJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRuZXds aWIiOyB0aGVuIDo7IGVsc2UKKysJICAgICAgJHNob3cgImdlbmVyYXRpbmcgaW1wb3J0IGxpYnJh cnkgZm9yIFxgJHNvbmFtZSciCisrCSAgICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkg ICAgICBjbWRzPSRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcworKwkgICAgICBmb3IgY21k IGluICRjbWRzOyBkbworKwkJSUZTPSIkc2F2ZV9pZnMiCisrCQlldmFsIGNtZD1cIiRjbWRcIgor KwkJJHNob3cgIiRjbWQiCisrCQkkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KKysJICAgICAg ZG9uZQorKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKKysJICAgIGZpCisrCSAgICAjIG1ha2Ugc3Vy ZSB0aGUgbGlicmFyeSB2YXJpYWJsZXMgYXJlIHBvaW50aW5nIHRvIHRoZSBuZXcgbGlicmFyeQor KwkgICAgZGlyPSRvdXRwdXRfb2JqZGlyCisrCSAgICBsaW5rbGliPSRuZXdsaWIKKysJICBmaSAj IHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKKysKKysJICBpZiB0ZXN0 ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rOyB0aGVuCisrCSAg ICBhZGRfc2hsaWJwYXRoPQorKwkgICAgYWRkX2Rpcj0KKysJICAgIGFkZD0KKysJICAgIGxpYl9s aW5rZWQ9eWVzCisrCSAgICBjYXNlICRoYXJkY29kZV9hY3Rpb24gaW4KKysJICAgIGltbWVkaWF0 ZSB8IHVuc3VwcG9ydGVkKQorKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5v OyB0aGVuCisrCQlhZGQ9IiRkaXIvJGxpbmtsaWIiCisrCQljYXNlICRob3N0IGluCisrCQkgICot Ki1zY28zLjJ2NS4wLlswMjRdKikgYWRkX2Rpcj0iLUwkZGlyIiA7OworKwkJICAqLSotc3lzdjQq dXcyKikgYWRkX2Rpcj0iLUwkZGlyIiA7OworKwkJICAqLSotc3lzdjVPcGVuVU5JWCogfCAqLSot c3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IFwKKysJCSAgICAqLSotdW5peHdhcmU3KikgYWRk X2Rpcj0iLUwkZGlyIiA7OworKwkJICAqLSotZGFyd2luKiApCisrCQkgICAgIyBpZiB0aGUgbGli IGlzIGEgbW9kdWxlIHRoZW4gd2UgY2FuIG5vdCBsaW5rIGFnYWluc3QKKysJCSAgICAjIGl0LCBz b21lb25lIGlzIGlnbm9yaW5nIHRoZSBuZXcgd2FybmluZ3MgSSBhZGRlZAorKwkJICAgIGlmIC91 c3IvYmluL2ZpbGUgLUwgJGFkZCAyPiAvZGV2L251bGwgfAorKyAgICAgICAgICAgICAgICAgICAg ICAkRUdSRVAgIjogW146XSogYnVuZGxlIiA+L2Rldi9udWxsIDsgdGhlbgorKwkJICAgICAgJGVj aG8gIioqIFdhcm5pbmcsIGxpYiAkbGlua2xpYiBpcyBhIG1vZHVsZSwgbm90IGEgc2hhcmVkIGxp YnJhcnkiCisrCQkgICAgICBpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgorKwkJICAg ICAgICAkZWNobworKwkJICAgICAgICAkZWNobyAiKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0 byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKKysJCSAgICAgICAgJGVjaG8gIioqIFRo ZSBsaW5rIHdpbGwgcHJvYmFibHkgZmFpbCwgc29ycnkiCisrCQkgICAgICBlbHNlCisrCQkgICAg ICAgIGFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCisrCQkgICAgICBmaQorKwkJICAgIGZpCisrCQll c2FjCisrCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KKysJ CWNhc2UgJGhvc3QgaW4KKysJCSotKi1zdW5vcyopIGFkZF9zaGxpYnBhdGg9IiRkaXIiIDs7Cisr CQllc2FjCisrCQlhZGRfZGlyPSItTCRkaXIiCisrCQlhZGQ9Ii1sJG5hbWUiCisrCSAgICAgIGVs aWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0gbm87IHRoZW4KKysJCWFkZF9zaGxp YnBhdGg9IiRkaXIiCisrCQlhZGQ9Ii1sJG5hbWUiCisrCSAgICAgIGVsc2UKKysJCWxpYl9saW5r ZWQ9bm8KKysJICAgICAgZmkKKysJICAgICAgOzsKKysJICAgIHJlbGluaykKKysJICAgICAgaWYg dGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXM7IHRoZW4KKysJCWFkZD0iJGRpci8kbGlua2xp YiIKKysJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KKysJ CWFkZF9kaXI9Ii1MJGRpciIKKysJCSMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9u IHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KKysJCWlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9k aXIiOyB0aGVuCisrCQkgIGNhc2UgJGxpYmRpciBpbgorKwkJICAgIFtcXC9dKikKKysJCSAgICAg IGFkZF9kaXI9IiRhZGRfZGlyIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCisrCQkgICAgICA7 OworKwkJICBlc2FjCisrCQlmaQorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbGlmIHRlc3Qg IiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgorKwkJYWRkX3NobGlicGF0aD0i JGRpciIKKysJCWFkZD0iLWwkbmFtZSIKKysJICAgICAgZWxzZQorKwkJbGliX2xpbmtlZD1ubwor KwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAgKikgbGliX2xpbmtlZD1ubyA7OworKwkgICAg ZXNhYworKworKwkgICAgaWYgdGVzdCAiJGxpYl9saW5rZWQiICE9IHllczsgdGhlbgorKwkgICAg ICAkZWNobyAiJG1vZGVuYW1lOiBjb25maWd1cmF0aW9uIGVycm9yOiB1bnN1cHBvcnRlZCBoYXJk Y29kZSBwcm9wZXJ0aWVzIgorKwkgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICAgIGZpCisr CisrCSAgICBpZiB0ZXN0IC1uICIkYWRkX3NobGlicGF0aCI7IHRoZW4KKysJICAgICAgY2FzZSA6 JGNvbXBpbGVfc2hsaWJwYXRoOiBpbgorKwkgICAgICAqIjokYWRkX3NobGlicGF0aDoiKikgOzsK KysJICAgICAgKikgY29tcGlsZV9zaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRhZGRfc2hs aWJwYXRoOiIgOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICAgIGlmIHRlc3QgIiRsaW5r bW9kZSIgPSBwcm9nOyB0aGVuCisrCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBjb21waWxl X2RlcGxpYnM9IiRhZGRfZGlyICRjb21waWxlX2RlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRh ZGQiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZCAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZWxz ZQorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxp YnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCisr CSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IHllcyAmJiBcCisrCQkgdGVzdCAi JGhhcmRjb2RlX21pbnVzX0wiICE9IHllcyAmJiBcCisrCQkgdGVzdCAiJGhhcmRjb2RlX3NobGli cGF0aF92YXIiID0geWVzOyB0aGVuCisrCQljYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgor KwkJKiI6JGxpYmRpcjoiKikgOzsKKysJCSopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXpl X3NobGlicGF0aCRsaWJkaXI6IiA7OworKwkJZXNhYworKwkgICAgICBmaQorKwkgICAgZmkKKysJ ICBmaQorKworKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiA9 IHJlbGluazsgdGhlbgorKwkgICAgYWRkX3NobGlicGF0aD0KKysJICAgIGFkZF9kaXI9CisrCSAg ICBhZGQ9CisrCSAgICAjIEZpbmFsaXplIGNvbW1hbmQgZm9yIGJvdGggaXMgc2ltcGxlOiBqdXN0 IGhhcmRjb2RlIGl0LgorKwkgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXM7IHRo ZW4KKysJICAgICAgYWRkPSIkbGliZGlyLyRsaW5rbGliIgorKwkgICAgZWxpZiB0ZXN0ICIkaGFy ZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KKysJICAgICAgYWRkX2Rpcj0iLUwkbGliZGlyIgor KwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBh dGhfdmFyIiA9IHllczsgdGhlbgorKwkgICAgICBjYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBp bgorKwkgICAgICAqIjokbGliZGlyOiIqKSA7OworKwkgICAgICAqKSBmaW5hbGl6ZV9zaGxpYnBh dGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgkbGliZGlyOiIgOzsKKysJICAgICAgZXNhYworKwkgICAg ICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0g eWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiICYmCisrCQkg dGVzdCAtZiAiJGluc3RfcHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiIDsgdGhlbgorKwkgICAg ICAgIGFkZD0iJGluc3RfcHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiCisrCSAgICAgIGVsc2UK KysJICAgICAgICBhZGQ9IiRsaWJkaXIvJGxpbmtsaWIiCisrCSAgICAgIGZpCisrCSAgICBlbHNl CisrCSAgICAgICMgV2UgY2Fubm90IHNlZW0gdG8gaGFyZGNvZGUgaXQsIGd1ZXNzIHdlJ2xsIGZh a2UgaXQuCisrCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIKKysJICAgICAgIyBUcnkgbG9va2lu ZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgorKwkgICAg ICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgorKwkJY2FzZSAkbGliZGlyIGlu CisrCQkgIFtcXC9dKikKKysJCSAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9k aXIkbGliZGlyIgorKwkJICAgIDs7CisrCQllc2FjCisrCSAgICAgIGZpCisrCSAgICAgIGFkZD0i LWwkbmFtZSIKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsg dGhlbgorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFk ZF9kaXIgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGZpbmFs aXplX2RlcGxpYnM9IiRhZGQgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAg IHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKKysJICAg ICAgdGVzdCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIKKysJICAgIGZpCisr CSAgZmkKKysJZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICMgSGVyZSB3 ZSBhc3N1bWUgdGhhdCBvbmUgb2YgaGFyZGNvZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wK KysJICAjIGlzIG5vdCB1bnN1cHBvcnRlZC4gIFRoaXMgaXMgdmFsaWQgb24gYWxsIGtub3duIHN0 YXRpYyBhbmQKKysJICAjIHNoYXJlZCBwbGF0Zm9ybXMuCisrCSAgaWYgdGVzdCAiJGhhcmRjb2Rl X2RpcmVjdCIgIT0gdW5zdXBwb3J0ZWQ7IHRoZW4KKysJICAgIHRlc3QgLW4gIiRvbGRfbGlicmFy eSIgJiYgbGlua2xpYj0iJG9sZF9saWJyYXJ5IgorKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGly LyRsaW5rbGliICRjb21waWxlX2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGly LyRsaW5rbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAgIGNvbXBpbGVfZGVw bGlicz0iLWwkbmFtZSAtTCRkaXIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGZpbmFsaXplX2Rl cGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGZpCisrCWVsaWYg dGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysJICAjIE5vdCBhIHNoYXJl ZCBsaWJyYXJ5CisrCSAgaWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2Fs bDsgdGhlbgorKwkgICAgIyBXZSdyZSB0cnlpbmcgbGluayBhIHNoYXJlZCBsaWJyYXJ5IGFnYWlu c3QgYSBzdGF0aWMgb25lCisrCSAgICAjIGJ1dCB0aGUgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBp dC4KKysKKysJICAgICMgSnVzdCBwcmludCBhIHdhcm5pbmcgYW5kIGFkZCB0aGUgbGlicmFyeSB0 byBkZXBlbmRlbmN5X2xpYnMgc28KKysJICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlu a2VkIGFnYWluc3QgdGhlIHN0YXRpYyBsaWJyYXJ5LgorKwkgICAgJGVjaG8KKysJICAgICRlY2hv ICIqKiogV2FybmluZzogVGhpcyBzeXN0ZW0gY2FuIG5vdCBsaW5rIHRvIHN0YXRpYyBsaWIgYXJj aGl2ZSAkbGliLiIKKysJICAgICRlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1h a2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkgICAgJGVjaG8g IioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlm IHlvdSBoYXZlIGEiCisrCSAgICAkZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJy YXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlLiIKKysJICAgIGlmIHRlc3QgIiRt b2R1bGUiID0geWVzOyB0aGVuCisrCSAgICAgICRlY2hvICIqKiogQnV0IGFzIHlvdSB0cnkgdG8g YnVpbGQgYSBtb2R1bGUgbGlicmFyeSwgbGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCisrCSAg ICAgICRlY2hvICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcg YXMgdGhlIGRsb3BlbmluZyBhcHBsaWNhdGlvbiIKKysJICAgICAgJGVjaG8gIioqKiBpcyBsaW5r ZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnIHRvIHJlc29sdmUgc3ltYm9scyBhdCBydW50aW1lLiIK KysJICAgICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKysJCSRlY2hv CisrCQkkZWNobyAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wg d2FzIGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCisrCQkkZWNobyAiKioqIGxpc3RzIGZyb20gYSBw cm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKKysJ CSRlY2hvICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMg cHJvYmFibHkgdXNlbGVzcy4iCisrCQkkZWNobyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxz IGFuZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRl c3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgorKwkJYnVpbGRfbGlidG9vbF9saWJzPW1v ZHVsZQorKwkJYnVpbGRfb2xkX2xpYnM9eWVzCisrCSAgICAgIGVsc2UKKysJCWJ1aWxkX2xpYnRv b2xfbGlicz1ubworKwkgICAgICBmaQorKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBkZXBsaWJz PSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKKysJICAgIGxpbmtfc3RhdGljPXllcworKwkg IGZpCisrCWZpICMgbGluayBzaGFyZWQvc3RhdGljIGxpYnJhcnk/CisrCisrCWlmIHRlc3QgIiRs aW5rbW9kZSIgPSBsaWI7IHRoZW4KKysJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAm JgorKwkgICAgIHsgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8CisrCSAgICAg ICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzIHx8CisrCSAgICAgICB0ZXN0ICIkbGlua19z dGF0aWMiID0geWVzOyB9OyB0aGVuCisrCSAgICAjIEV4dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5 X2xpYnMKKysJICAgIHRlbXBfZGVwbGlicz0KKysJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVu Y3lfbGliczsgZG8KKysJICAgICAgY2FzZSAkbGliZGlyIGluCisrCSAgICAgIC1SKikgdGVtcF94 cnBhdGg9YCRlY2hvICJYJGxpYmRpciIgfCAkWHNlZCAtZSAncy9eLVIvLydgCisrCQkgICBjYXNl ICIgJHhycGF0aCAiIGluCisrCQkgICAqIiAkdGVtcF94cnBhdGggIiopIDs7CisrCQkgICAqKSB4 cnBhdGg9IiR4cnBhdGggJHRlbXBfeHJwYXRoIjs7CisrCQkgICBlc2FjOzsKKysJICAgICAgKikg dGVtcF9kZXBsaWJzPSIkdGVtcF9kZXBsaWJzICRsaWJkaXIiOzsKKysJICAgICAgZXNhYworKwkg ICAgZG9uZQorKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF9kZXBsaWJzIgorKwkgIGZpCisr CisrCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRhYnNkaXIiCisr CSAgIyBMaW5rIGFnYWluc3QgdGhpcyBsaWJyYXJ5CisrCSAgdGVzdCAiJGxpbmtfc3RhdGljIiA9 IG5vICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGFic19sYWRpci8kbGFuYW1lICRuZXdkZXBlbmRl bmN5X2xpYnMiCisrCSAgIyAuLi4gYW5kIGl0cyBkZXBlbmRlbmN5X2xpYnMKKysJICB0bXBfbGli cz0KKysJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICBuZXdkZXBl bmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJICAgIGlmIHRlc3Qg IlgkZHVwbGljYXRlX2RlcHMiID0gIlh5ZXMiIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xp YnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxk ZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGli cz0iJHRtcF9saWJzICRkZXBsaWIiCisrCSAgZG9uZQorKworKwkgIGlmIHRlc3QgIiRsaW5rX2Fs bF9kZXBsaWJzIiAhPSBubzsgdGhlbgorKwkgICAgIyBBZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBh bGwgZGVwZW5kZW5jeSBsaWJyYXJpZXMKKysJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lf bGliczsgZG8KKysJICAgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAgIC1MKikgcGF0aD0iJGRl cGxpYiIgOzsKKysJICAgICAgKi5sYSkKKysJCWRpcj1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2Vk IC1lICdzJS9bXi9dKiQlJSdgCisrCQl0ZXN0ICJYJGRpciIgPSAiWCRkZXBsaWIiICYmIGRpcj0i LiIKKysJCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwkJY2FzZSAkZGlyIGluCisrCQlb XFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic2Rpcj0iJGRpciIgOzsKKysJCSopCisrCQkgIGFi c2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKysJCSAgaWYgdGVzdCAteiAiJGFic2RpciI7IHRoZW4K KysJCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBjYW5ub3QgZGV0ZXJtaW5lIGFic29s dXRlIGRpcmVjdG9yeSBuYW1lIG9mIFxgJGRpciciIDE+JjIKKysJCSAgICBhYnNkaXI9IiRkaXIi CisrCQkgIGZpCisrCQkgIDs7CisrCQllc2FjCisrCQlpZiBncmVwICJeaW5zdGFsbGVkPW5vIiAk ZGVwbGliID4gL2Rldi9udWxsOyB0aGVuCisrCQkgIHBhdGg9IiRhYnNkaXIvJG9iamRpciIKKysJ CWVsc2UKKysJCSAgZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQv XDEvcCcgJGRlcGxpYmAKKysJCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKysJCSAgICAk ZWNobyAiJG1vZGVuYW1lOiBcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2 ZSIgMT4mMgorKwkJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwkJICBmaQorKwkJICBpZiB0ZXN0 ICIkYWJzZGlyIiAhPSAiJGxpYmRpciI7IHRoZW4KKysJCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3 YXJuaW5nOiBcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1vdmVkIiAxPiYyCisrCQkgIGZpCisrCQkg IHBhdGg9IiRhYnNkaXIiCisrCQlmaQorKwkJZGVwZGVwbD0KKysJCWNhc2UgJGhvc3QgaW4KKysJ CSotKi1kYXJ3aW4qKQorKwkJICAjIHdlIGRvIG5vdCB3YW50IHRvIGxpbmsgYWdhaW5zdCBzdGF0 aWMgbGlicywKKysJCSAgIyBidXQgbmVlZCB0byBsaW5rIGFnYWluc3Qgc2hhcmVkCisrCQkgIGV2 YWwgZGVwbGlicmFyeV9uYW1lcz1gJHtTRUR9IC1uIC1lICdzL15saWJyYXJ5X25hbWVzPVwoLipc KSQvXDEvcCcgJGRlcGxpYmAKKysJCSAgZXZhbCBkZXBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9e bGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKysJCSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJh cnlfbmFtZXMiIDsgdGhlbgorKwkJICAgIGZvciB0bXAgaW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBk bworKwkJICAgICAgZGVwZGVwbD0kdG1wCisrCQkgICAgZG9uZQorKwkJICAgIGlmIHRlc3QgLWYg IiRkZXBsaWJkaXIvJGRlcGRlcGwiIDsgdGhlbgorKwkJICAgICAgZGVwZGVwbD0iJGRlcGxpYmRp ci8kZGVwZGVwbCIKKysJICAgICAgCSAgICBlbGlmIHRlc3QgLWYgIiRwYXRoLyRkZXBkZXBsIiA7 IHRoZW4KKysJCSAgICAgIGRlcGRlcGw9IiRwYXRoLyRkZXBkZXBsIgorKwkJICAgIGVsc2UKKysJ CSAgICAgICMgQ2FuJ3QgZmluZCBpdCwgb2ggd2VsbC4uLgorKwkJICAgICAgZGVwZGVwbD0KKysJ CSAgICBmaQorKwkJICAgICMgZG8gbm90IGFkZCBwYXRocyB3aGljaCBhcmUgYWxyZWFkeSB0aGVy ZQorKwkJICAgIGNhc2UgIiAkbmV3bGliX3NlYXJjaF9wYXRoICIgaW4KKysJCSAgICAqIiAkcGF0 aCAiKikgOzsKKysJCSAgICAqKSBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3Bh dGggJHBhdGgiOzsKKysJCSAgICBlc2FjCisrCQkgIGZpCisrCQkgIHBhdGg9IiIKKysJCSAgOzsK KysJCSopCisrCQkgIHBhdGg9Ii1MJHBhdGgiCisrCQkgIDs7CisrCQllc2FjCisrCQk7OworKwkg ICAgICAtbCopCisrCQljYXNlICRob3N0IGluCisrCQkqLSotZGFyd2luKikKKysJCSAgIyBBZ2Fp biwgd2Ugb25seSB3YW50IHRvIGxpbmsgYWdhaW5zdCBzaGFyZWQgbGlicmFyaWVzCisrCQkgIGV2 YWwgdG1wX2xpYnM9YCRlY2hvICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAicyxeXC1sLCwiYAorKwkJ ICBmb3IgdG1wIGluICRuZXdsaWJfc2VhcmNoX3BhdGggOyBkbworKwkJICAgIGlmIHRlc3QgLWYg IiR0bXAvbGliJHRtcF9saWJzLmR5bGliIiA7IHRoZW4KKysJCSAgICAgIGV2YWwgZGVwZGVwbD0i JHRtcC9saWIkdG1wX2xpYnMuZHlsaWIiCisrCQkgICAgICBicmVhaworKwkJICAgIGZpCisrCQkg IGRvbmUKKysJCSAgcGF0aD0iIgorKwkJICA7OworKwkJKikgY29udGludWUgOzsKKysJCWVzYWMK KysJCTs7CisrCSAgICAgICopIGNvbnRpbnVlIDs7CisrCSAgICAgIGVzYWMKKysJICAgICAgY2Fz ZSAiICRkZXBsaWJzICIgaW4KKysJICAgICAgKiIgJHBhdGggIiopIDs7CisrCSAgICAgICopIGRl cGxpYnM9IiRwYXRoICRkZXBsaWJzIiA7OworKwkgICAgICBlc2FjCisrCSAgICAgIGNhc2UgIiAk ZGVwbGlicyAiIGluCisrCSAgICAgICoiICRkZXBkZXBsICIqKSA7OworKwkgICAgICAqKSBkZXBs aWJzPSIkZGVwZGVwbCAkZGVwbGlicyIgOzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkg IGZpICMgbGlua19hbGxfZGVwbGlicyAhPSBubworKwlmaSAjIGxpbmttb2RlID0gbGliCisrICAg ICAgZG9uZSAjIGZvciBkZXBsaWIgaW4gJGxpYnMKKysgICAgICBkZXBlbmRlbmN5X2xpYnM9IiRu ZXdkZXBlbmRlbmN5X2xpYnMiCisrICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0 aGVuCisrCSMgTGluayB0aGUgZGxwcmVvcGVuZWQgbGlicmFyaWVzIGJlZm9yZSBvdGhlciBsaWJy YXJpZXMKKysJZm9yIGRlcGxpYiBpbiAkc2F2ZV9kZXBsaWJzOyBkbworKwkgIGRlcGxpYnM9IiRk ZXBsaWIgJGRlcGxpYnMiCisrCWRvbmUKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRwYXNz IiAhPSBkbG9wZW47IHRoZW4KKysJaWYgdGVzdCAiJHBhc3MiICE9IGNvbnY7IHRoZW4KKysJICAj IE1ha2Ugc3VyZSBsaWJfc2VhcmNoX3BhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3Jp ZXMuCisrCSAgbGliX3NlYXJjaF9wYXRoPQorKwkgIGZvciBkaXIgaW4gJG5ld2xpYl9zZWFyY2hf cGF0aDsgZG8KKysJICAgIGNhc2UgIiRsaWJfc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGRp ciAiKikgOzsKKysJICAgICopIGxpYl9zZWFyY2hfcGF0aD0iJGxpYl9zZWFyY2hfcGF0aCAkZGly IiA7OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJICBuZXdsaWJfc2VhcmNoX3BhdGg9CisrCWZp CisrCisrCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgIT0gInByb2csbGluayI7IHRoZW4KKysJ ICB2YXJzPSJkZXBsaWJzIgorKwllbHNlCisrCSAgdmFycz0iY29tcGlsZV9kZXBsaWJzIGZpbmFs aXplX2RlcGxpYnMiCisrCWZpCisrCWZvciB2YXIgaW4gJHZhcnMgZGVwZW5kZW5jeV9saWJzOyBk bworKwkgICMgQWRkIGxpYnJhcmllcyB0byAkdmFyIGluIHJldmVyc2Ugb3JkZXIKKysJICBldmFs IHRtcF9saWJzPVwiXCQkdmFyXCIKKysJICBuZXdfbGlicz0KKysJICBmb3IgZGVwbGliIGluICR0 bXBfbGliczsgZG8KKysJICAgICMgRklYTUU6IFBlZGFudGljYWxseSwgdGhpcyBpcyB0aGUgcmln aHQgdGhpbmcgdG8gZG8sIHNvCisrCSAgICAjICAgICAgICB0aGF0IHNvbWUgbmFzdHkgZGVwZW5k ZW5jeSBsb29wIGlzbid0IGFjY2lkZW50YWxseQorKwkgICAgIyAgICAgICAgYnJva2VuOgorKwkg ICAgI25ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIKKysJICAgICMgUHJhZ21hdGljYWxseSwg dGhpcyBzZWVtcyB0byBjYXVzZSB2ZXJ5IGZldyBwcm9ibGVtcyBpbgorKwkgICAgIyBwcmFjdGlj ZToKKysJICAgIGNhc2UgJGRlcGxpYiBpbgorKwkgICAgLUwqKSBuZXdfbGlicz0iJGRlcGxpYiAk bmV3X2xpYnMiIDs7CisrCSAgICAtUiopIDs7CisrCSAgICAqKQorKwkgICAgICAjIEFuZCBoZXJl IGlzIHRoZSByZWFzb246IHdoZW4gYSBsaWJyYXJ5IGFwcGVhcnMgbW9yZQorKwkgICAgICAjIHRo YW4gb25jZSBhcyBhbiBleHBsaWNpdCBkZXBlbmRlbmNlIG9mIGEgbGlicmFyeSwgb3IKKysJICAg ICAgIyBpcyBpbXBsaWNpdGx5IGxpbmtlZCBpbiBtb3JlIHRoYW4gb25jZSBieSB0aGUKKysJICAg ICAgIyBjb21waWxlciwgaXQgaXMgY29uc2lkZXJlZCBzcGVjaWFsLCBhbmQgbXVsdGlwbGUKKysJ ICAgICAgIyBvY2N1cnJlbmNlcyB0aGVyZW9mIGFyZSBub3QgcmVtb3ZlZC4gIENvbXBhcmUgdGhp cworKwkgICAgICAjIHdpdGggaGF2aW5nIHRoZSBzYW1lIGxpYnJhcnkgYmVpbmcgbGlzdGVkIGFz IGEKKysJICAgICAgIyBkZXBlbmRlbmN5IG9mIG11bHRpcGxlIG90aGVyIGxpYnJhcmllczogaW4g dGhpcyBjYXNlLAorKwkgICAgICAjIHdlIGtub3cgKHBlZGFudGljYWxseSwgd2UgYXNzdW1lKSB0 aGUgbGlicmFyeSBkb2VzIG5vdAorKwkgICAgICAjIG5lZWQgdG8gYmUgbGlzdGVkIG1vcmUgdGhh biBvbmNlLCBzbyB3ZSBrZWVwIG9ubHkgdGhlCisrCSAgICAgICMgbGFzdCBjb3B5LiAgVGhpcyBp cyBub3QgYWx3YXlzIHJpZ2h0LCBidXQgaXQgaXMgcmFyZQorKwkgICAgICAjIGVub3VnaCB0aGF0 IHdlIHJlcXVpcmUgdXNlcnMgdGhhdCByZWFsbHkgbWVhbiB0byBwbGF5CisrCSAgICAgICMgc3Vj aCB1bnBvcnRhYmxlIGxpbmtpbmcgdHJpY2tzIHRvIGxpbmsgdGhlIGxpYnJhcnkKKysJICAgICAg IyB1c2luZyAtV2wsLWxuYW1lLCBzbyB0aGF0IGxpYnRvb2wgZG9lcyBub3QgY29uc2lkZXIgaXQK KysJICAgICAgIyBmb3IgZHVwbGljYXRlIHJlbW92YWwuCisrCSAgICAgIGNhc2UgIiAkc3BlY2lh bGRlcGxpYnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGliICIqKSBuZXdfbGlicz0iJGRlcGxpYiAk bmV3X2xpYnMiIDs7CisrCSAgICAgICopCisrCQljYXNlICIgJG5ld19saWJzICIgaW4KKysJCSoi ICRkZXBsaWIgIiopIDs7CisrCQkqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Cisr CQllc2FjCisrCQk7OworKwkgICAgICBlc2FjCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAg ZG9uZQorKwkgIHRtcF9saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJG5ld19saWJzOyBkbworKwkg ICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCopCisrCSAgICAgIGNhc2UgIiAkdG1wX2xpYnMg IiBpbgorKwkgICAgICAqIiAkZGVwbGliICIqKSA7OworKwkgICAgICAqKSB0bXBfbGlicz0iJHRt cF9saWJzICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgICAgOzsKKysJICAgICopIHRt cF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIgOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCSAg ZXZhbCAkdmFyPVwiJHRtcF9saWJzXCIKKysJZG9uZSAjIGZvciB2YXIKKysgICAgICBmaQorKyAg ICAgICMgTGFzdCBzdGVwOiByZW1vdmUgcnVudGltZSBsaWJzIGZyb20gZGVwZW5kZW5jeV9saWJz CisrICAgICAgIyAodGhleSBzdGF5IGluIGRlcGxpYnMpCisrICAgICAgdG1wX2xpYnM9CisrICAg ICAgZm9yIGkgaW4gJGRlcGVuZGVuY3lfbGlicyA7IGRvCisrCWNhc2UgIiAkcHJlZGVwcyAkcG9z dGRlcHMgJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCAiIGluCisrCSoiICRpICIqKQorKwkgIGk9 IiIKKysJICA7OworKwllc2FjCisrCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KKysJICB0bXBfbGli cz0iJHRtcF9saWJzICRpIgorKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBkZXBlbmRlbmN5X2xp YnM9JHRtcF9saWJzCisrICAgIGRvbmUgIyBmb3IgcGFzcworKyAgICBpZiB0ZXN0ICIkbGlua21v ZGUiID0gcHJvZzsgdGhlbgorKyAgICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgorKyAgICAgIGRs cHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgorKyAgICBmaQorKworKyAgICBjYXNlICRsaW5rbW9k ZSBpbgorKyAgICBvbGRsaWIpCisrICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgorKyAgICAgICpc IC1sKiB8ICpcIC1MKikKKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtbCcgYW5kIFxg LUwnIGFyZSBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMiA7OworKyAgICAgIGVzYWMKKysKKysg ICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAh PSBubzsgdGhlbgorKwkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1kbG9wZW4nIGlzIGln bm9yZWQgZm9yIGFyY2hpdmVzIiAxPiYyCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1u ICIkcnBhdGgiOyB0aGVuCisrCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJwYXRoJyBp cyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgorKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVz dCAtbiAiJHhycGF0aCI7IHRoZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtUicg aXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiIDE+JjIKKysgICAgICBmaQorKworKyAgICAgIGlmIHRl c3QgLW4gIiR2aW5mbyI7IHRoZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVy c2lvbi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiIDE+JjIK KysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgorKwkkZWNo byAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZl cyIgMT4mMgorKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xz IiB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisrCSRlY2hvICIkbW9k ZW5hbWU6IHdhcm5pbmc6IFxgLWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZl cyIgMT4mMgorKyAgICAgIGZpCisrCisrICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9y IGJ1aWxkaW5nIG9sZCBsaWJyYXJpZXMuCisrICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCisr ICAgICAgb2xkbGlicz0iJG91dHB1dCIKKysgICAgICBvYmpzPSIkb2JqcyRvbGRfZGVwbGlicyIK KysgICAgICA7OworKworKyAgICBsaWIpCisrICAgICAgIyBNYWtlIHN1cmUgd2Ugb25seSBnZW5l cmF0ZSBsaWJyYXJpZXMgb2YgdGhlIGZvcm0gYGxpYk5BTUUubGEnLgorKyAgICAgIGNhc2UgJG91 dHB1dG5hbWUgaW4KKysgICAgICBsaWIqKQorKwluYW1lPWAkZWNobyAiWCRvdXRwdXRuYW1lIiB8 ICRYc2VkIC1lICdzL1wubGEkLy8nIC1lICdzL15saWIvLydgCisrCWV2YWwgc2hhcmVkX2V4dD1c IiRzaHJleHRfY21kc1wiCisrCWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgorKwk7Owor KyAgICAgICopCisrCWlmIHRlc3QgIiRtb2R1bGUiID0gbm87IHRoZW4KKysJICAkZWNobyAiJG1v ZGVuYW1lOiBsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0JyBtdXN0IGJlZ2luIHdpdGggXGBsaWIn IiAxPiYyCisrCSAgJGVjaG8gIiRoZWxwIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisr CWZpCisrCWlmIHRlc3QgIiRuZWVkX2xpYl9wcmVmaXgiICE9IG5vOyB0aGVuCisrCSAgIyBBZGQg dGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcyBpZiByZXF1aXJlZAorKwkgIG5hbWU9YCRlY2hv ICJYJG91dHB1dG5hbWUiIHwgJFhzZWQgLWUgJ3MvXC5sYSQvLydgCisrCSAgZXZhbCBzaGFyZWRf ZXh0PVwiJHNocmV4dF9jbWRzXCIKKysJICBldmFsIGxpYm5hbWU9XCIkbGlibmFtZV9zcGVjXCIK KysJZWxzZQorKwkgIGxpYm5hbWU9YCRlY2hvICJYJG91dHB1dG5hbWUiIHwgJFhzZWQgLWUgJ3Mv XC5sYSQvLydgCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgIGlmIHRlc3QgLW4g IiRvYmpzIjsgdGhlbgorKwlpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3Nf YWxsOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGJ1aWxkIGxpYnRvb2wgbGli cmFyeSBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9i anMiIDI+JjEKKysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJZWxzZQorKwkgICRlY2hvCisrCSAg JGVjaG8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFn YWluc3QgdGhlIG5vbi1saWJ0b29sIgorKwkgICRlY2hvICIqKiogb2JqZWN0cyAkb2JqcyBpcyBu b3QgcG9ydGFibGUhIgorKwkgIGxpYm9ianM9IiRsaWJvYmpzICRvYmpzIgorKwlmaQorKyAgICAg IGZpCisrCisrICAgICAgaWYgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKysJJGVjaG8gIiRt b2RlbmFtZTogd2FybmluZzogXGAtZGxvcGVuIHNlbGYnIGlzIGlnbm9yZWQgZm9yIGxpYnRvb2wg bGlicmFyaWVzIiAxPiYyCisrICAgICAgZmkKKysKKysgICAgICBzZXQgZHVtbXkgJHJwYXRoCisr ICAgICAgaWYgdGVzdCAiJCMiIC1ndCAyOyB0aGVuCisrCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5p bmc6IGlnbm9yaW5nIG11bHRpcGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IiAx PiYyCisrICAgICAgZmkKKysgICAgICBpbnN0YWxsX2xpYmRpcj0iJDIiCisrCisrICAgICAgb2xk bGlicz0KKysgICAgICBpZiB0ZXN0IC16ICIkcnBhdGgiOyB0aGVuCisrCWlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBCdWlsZGluZyBhIGxpYnRvb2wgY29u dmVuaWVuY2UgbGlicmFyeS4KKysJICAjIFNvbWUgY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0 aCBhIGAuYWwnIGV4dGVuc2lvbiBzbworKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIHNob3Vs ZCBoYXZlIHRoZSBzYW1lIGV4dGVuc2lvbiBhbgorKwkgICMgYXJjaGl2ZSBub3JtYWxseSB3b3Vs ZC4KKysJICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJz IgorKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1jb252ZW5pZW5jZQorKwkgIGJ1aWxkX29sZF9saWJz PXllcworKwlmaQorKworKwlpZiB0ZXN0IC1uICIkdmluZm8iOyB0aGVuCisrCSAgJGVjaG8gIiRt b2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdu b3JlZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIiAxPiYyCisrCWZpCisrCisrCWlmIHRlc3Qg LW4gIiRyZWxlYXNlIjsgdGhlbgorKwkgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJl bGVhc2UnIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIgMT4mMgorKwlmaQor KyAgICAgIGVsc2UKKysKKysJIyBQYXJzZSB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBhcmd1bWVu dC4KKysJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JzonCisrCXNldCBkdW1teSAkdmluZm8gMCAwIDAK KysJSUZTPSIkc2F2ZV9pZnMiCisrCisrCWlmIHRlc3QgLW4gIiQ4IjsgdGhlbgorKwkgICRlY2hv ICIkbW9kZW5hbWU6IHRvbyBtYW55IHBhcmFtZXRlcnMgdG8gXGAtdmVyc2lvbi1pbmZvJyIgMT4m MgorKwkgICRlY2hvICIkaGVscCIgMT4mMgorKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwlmaQor KworKwkjIGNvbnZlcnQgYWJzb2x1dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdlcwor KwkjIHRoaXMgcmV0YWlucyBjb21wYXRpYmlsaXR5IHdpdGggLmxhIGZpbGVzIGFuZCBhdHRlbXB0 cworKwkjIHRvIG1ha2UgdGhlIGNvZGUgYmVsb3cgYSBiaXQgbW9yZSBjb21wcmVoZW5zaWJsZQor KworKwljYXNlICR2aW5mb19udW1iZXIgaW4KKysJeWVzKQorKwkgIG51bWJlcl9tYWpvcj0iJDIi CisrCSAgbnVtYmVyX21pbm9yPSIkMyIKKysJICBudW1iZXJfcmV2aXNpb249IiQ0IgorKwkgICMK KysJICAjIFRoZXJlIGFyZSByZWFsbHkgb25seSB0d28ga2luZHMgLS0gdGhvc2UgdGhhdAorKwkg ICMgdXNlIHRoZSBjdXJyZW50IHJldmlzaW9uIGFzIHRoZSBtYWpvciB2ZXJzaW9uCisrCSAgIyBh bmQgdGhvc2UgdGhhdCBzdWJ0cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKKysJICAjIGEgbWlub3Ig dmVyc2lvbi4gIEJ1dCwgdGhlbiB0aGVyZSBpcyBpcml4CisrCSAgIyB3aGljaCBoYXMgYW4gZXh0 cmEgMSBhZGRlZCBqdXN0IGZvciBmdW4KKysJICAjCisrCSAgY2FzZSAkdmVyc2lvbl90eXBlIGlu CisrCSAgZGFyd2lufGxpbnV4fG9zZnx3aW5kb3dzfG5vbmUpCisrCSAgICBjdXJyZW50PWBleHBy ICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yYAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9y IgorKwkgICAgcmV2aXNpb249IiRudW1iZXJfcmV2aXNpb24iCisrCSAgICA7OworKwkgIGZyZWVi c2QtYW91dHxmcmVlYnNkLWVsZnxzdW5vcykKKysJICAgIGN1cnJlbnQ9IiRudW1iZXJfbWFqb3Ii CisrCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIKKysJICAgIGFnZT0iMCIKKysJICAgIDs7 CisrCSAgaXJpeHxub25zdG9wdXgpCisrCSAgICBjdXJyZW50PWBleHByICRudW1iZXJfbWFqb3Ig KyAkbnVtYmVyX21pbm9yYAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNp b249IiRudW1iZXJfbWlub3IiCisrCSAgICBsdF9pcml4X2luY3JlbWVudD1ubworKwkgICAgOzsK KysJICBlc2FjCisrCSAgOzsKKysJbm8pCisrCSAgY3VycmVudD0iJDIiCisrCSAgcmV2aXNpb249 IiQzIgorKwkgIGFnZT0iJDQiCisrCSAgOzsKKysJZXNhYworKworKwkjIENoZWNrIHRoYXQgZWFj aCBvZiB0aGUgdGhpbmdzIGFyZSB2YWxpZCBudW1iZXJzLgorKwljYXNlICRjdXJyZW50IGluCisr CTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18 WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICAkZWNobyAiJG1vZGVuYW1l OiBDVVJSRU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYy CisrCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGlu Zm9ybWF0aW9uIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgOzsKKysJZXNhYwor KworKwljYXNlICRyZXZpc2lvbiBpbgorKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVsw LTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7Cisr CSopCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogUkVWSVNJT04gXGAkcmV2aXNpb24nIG11c3QgYmUg YSBub25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmlu Zm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCisrCSAgZXhpdCAkRVhJ VF9GQUlMVVJFCisrCSAgOzsKKysJZXNhYworKworKwljYXNlICRhZ2UgaW4KKysJMHxbMS05XXxb MS05XVswLTldfFsxLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTld WzAtOV1bMC05XVswLTldKSA7OworKwkqKQorKwkgICRlY2hvICIkbW9kZW5hbWU6IEFHRSBcYCRh Z2UnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCisrCSAgJGVjaG8gIiRtb2Rl bmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCisr CSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgOzsKKysJZXNhYworKworKwlpZiB0ZXN0ICIkYWdl IiAtZ3QgIiRjdXJyZW50IjsgdGhlbgorKwkgICRlY2hvICIkbW9kZW5hbWU6IEFHRSBcYCRhZ2Un IGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBpbnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQn IiAxPiYyCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJz aW9uIGluZm9ybWF0aW9uIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCWZpCisrCisr CSMgQ2FsY3VsYXRlIHRoZSB2ZXJzaW9uIHZhcmlhYmxlcy4KKysJbWFqb3I9CisrCXZlcnN1ZmZp eD0KKysJdmVyc3RyaW5nPQorKwljYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysJbm9uZSkgOzsKKysK KysJZGFyd2luKQorKwkgICMgTGlrZSBMaW51eCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lv biBhdmFpbGFibGUgaW4KKysJICAjIHZlcnN0cmluZyBmb3IgY29kaW5nIGl0IGludG8gdGhlIGxp YnJhcnkgaGVhZGVyCisrCSAgbWFqb3I9LmBleHByICRjdXJyZW50IC0gJGFnZWAKKysJICB2ZXJz dWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIKKysJICAjIERhcndpbiBsZCBkb2Vzbid0IGxp a2UgMCBmb3IgdGhlc2Ugb3B0aW9ucy4uLgorKwkgIG1pbm9yX2N1cnJlbnQ9YGV4cHIgJGN1cnJl bnQgKyAxYAorKwkgIHhsY3ZlcnN0cmluZz0iJHt3bH0tY29tcGF0aWJpbGl0eV92ZXJzaW9uICR7 d2x9JG1pbm9yX2N1cnJlbnQgJHt3bH0tY3VycmVudF92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJl bnQuJHJldmlzaW9uIgorKwkgIHZlcnN0cmluZz0iLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkbWlu b3JfY3VycmVudCAtY3VycmVudF92ZXJzaW9uICRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKKysJ ICA7OworKworKwlmcmVlYnNkLWFvdXQpCisrCSAgbWFqb3I9Ii4kY3VycmVudCIKKysJICB2ZXJz dWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iOworKwkgIDs7CisrCisrCWZyZWVic2QtZWxmKQor KwkgIG1ham9yPSIuJGN1cnJlbnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQiOworKwkgIDs7 CisrCisrCWlyaXggfCBub25zdG9wdXgpCisrCSAgaWYgdGVzdCAiWCRsdF9pcml4X2luY3JlbWVu dCIgPSAiWG5vIjsgdGhlbgorKwkgICAgbWFqb3I9YGV4cHIgJGN1cnJlbnQgLSAkYWdlYAorKwkg IGVsc2UKKysJICAgIG1ham9yPWBleHByICRjdXJyZW50IC0gJGFnZSArIDFgCisrCSAgZmkKKysJ ICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysJICAgIG5vbnN0b3B1eCkgdmVyc3RyaW5nX3ByZWZp eD1ub25zdG9wdXggOzsKKysJICAgICopICAgICAgICAgdmVyc3RyaW5nX3ByZWZpeD1zZ2kgOzsK KysJICBlc2FjCisrCSAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpvci4kcmV2aXNp b24iCisrCisrCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBh dGlibGUgd2l0aC4KKysJICBsb29wPSRyZXZpc2lvbgorKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAt bmUgMDsgZG8KKysJICAgIGlmYWNlPWBleHByICRyZXZpc2lvbiAtICRsb29wYAorKwkgICAgbG9v cD1gZXhwciAkbG9vcCAtIDFgCisrCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1h am9yLiRpZmFjZTokdmVyc3RyaW5nIgorKwkgIGRvbmUKKysKKysJICAjIEJlZm9yZSB0aGlzIHBv aW50LCAkbWFqb3IgbXVzdCBub3QgY29udGFpbiBgLicuCisrCSAgbWFqb3I9LiRtYWpvcgorKwkg IHZlcnN1ZmZpeD0iJG1ham9yLiRyZXZpc2lvbiIKKysJICA7OworKworKwlsaW51eCkKKysJICBt YWpvcj0uYGV4cHIgJGN1cnJlbnQgLSAkYWdlYAorKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2Uu JHJldmlzaW9uIgorKwkgIDs7CisrCisrCW9zZikKKysJICBtYWpvcj0uYGV4cHIgJGN1cnJlbnQg LSAkYWdlYAorKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgorKwkgIHZl cnN0cmluZz0iJGN1cnJlbnQuJGFnZS4kcmV2aXNpb24iCisrCisrCSAgIyBBZGQgaW4gYWxsIHRo ZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KKysJICBsb29wPSRhZ2UK KysJICB3aGlsZSB0ZXN0ICIkbG9vcCIgLW5lIDA7IGRvCisrCSAgICBpZmFjZT1gZXhwciAkY3Vy cmVudCAtICRsb29wYAorKwkgICAgbG9vcD1gZXhwciAkbG9vcCAtIDFgCisrCSAgICB2ZXJzdHJp bmc9IiR2ZXJzdHJpbmc6JHtpZmFjZX0uMCIKKysJICBkb25lCisrCisrCSAgIyBNYWtlIGV4ZWN1 dGFibGVzIGRlcGVuZCBvbiBvdXIgY3VycmVudCB2ZXJzaW9uLgorKwkgIHZlcnN0cmluZz0iJHZl cnN0cmluZzoke2N1cnJlbnR9LjAiCisrCSAgOzsKKysKKysJc3Vub3MpCisrCSAgbWFqb3I9Ii4k Y3VycmVudCIKKysJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iCisrCSAgOzsKKysK KysJd2luZG93cykKKysJICAjIFVzZSAnLScgcmF0aGVyIHRoYW4gJy4nLCBzaW5jZSB3ZSBvbmx5 IHdhbnQgb25lCisrCSAgIyBleHRlbnNpb24gb24gRE9TIDguMyBmaWxlc3lzdGVtcy4KKysJICBt YWpvcj1gZXhwciAkY3VycmVudCAtICRhZ2VgCisrCSAgdmVyc3VmZml4PSItJG1ham9yIgorKwkg IDs7CisrCisrCSopCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogdW5rbm93biBsaWJyYXJ5IHZlcnNp b24gdHlwZSBcYCR2ZXJzaW9uX3R5cGUnIiAxPiYyCisrCSAgJGVjaG8gIkZhdGFsIGNvbmZpZ3Vy YXRpb24gZXJyb3IuICBTZWUgdGhlICRQQUNLQUdFIGRvY3MgZm9yIG1vcmUgaW5mb3JtYXRpb24u IiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgOzsKKysJZXNhYworKworKwkjIENs ZWFyIHRoZSB2ZXJzaW9uIGluZm8gaWYgd2UgZGVmYXVsdGVkLCBhbmQgdGhleSBzcGVjaWZpZWQg YSByZWxlYXNlLgorKwlpZiB0ZXN0IC16ICIkdmluZm8iICYmIHRlc3QgLW4gIiRyZWxlYXNlIjsg dGhlbgorKwkgIG1ham9yPQorKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorKwkgIGRhcndpbikK KysJICAgICMgd2UgY2FuJ3QgY2hlY2sgZm9yICIwLjAiIGluIGFyY2hpdmVfY21kcyBkdWUgdG8g cXVvdGluZworKwkgICAgIyBwcm9ibGVtcywgc28gd2UgcmVzZXQgaXQgY29tcGxldGVseQorKwkg ICAgdmVyc3RyaW5nPQorKwkgICAgOzsKKysJICAqKQorKwkgICAgdmVyc3RyaW5nPSIwLjAiCisr CSAgICA7OworKwkgIGVzYWMKKysJICBpZiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVu CisrCSAgICB2ZXJzdWZmaXg9CisrCSAgZWxzZQorKwkgICAgdmVyc3VmZml4PSIuMC4wIgorKwkg IGZpCisrCWZpCisrCisrCSMgUmVtb3ZlIHZlcnNpb24gaW5mbyBmcm9tIG5hbWUgaWYgdmVyc2lv bmluZyBzaG91bGQgYmUgYXZvaWRlZAorKwlpZiB0ZXN0ICIkYXZvaWRfdmVyc2lvbiIgPSB5ZXMg JiYgdGVzdCAiJG5lZWRfdmVyc2lvbiIgPSBubzsgdGhlbgorKwkgIG1ham9yPQorKwkgIHZlcnN1 ZmZpeD0KKysJICB2ZXJzdHJpbmc9IiIKKysJZmkKKysKKysJIyBDaGVjayB0byBzZWUgaWYgdGhl IGFyY2hpdmUgd2lsbCBoYXZlIHVuZGVmaW5lZCBzeW1ib2xzLgorKwlpZiB0ZXN0ICIkYWxsb3df dW5kZWZpbmVkIiA9IHllczsgdGhlbgorKwkgIGlmIHRlc3QgIiRhbGxvd191bmRlZmluZWRfZmxh ZyIgPSB1bnN1cHBvcnRlZDsgdGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzog dW5kZWZpbmVkIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gJGhvc3Qgc2hhcmVkIGxpYnJhcmllcyIg MT4mMgorKwkgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCisrCSAgICBidWlsZF9vbGRfbGlicz15 ZXMKKysJICBmaQorKwllbHNlCisrCSAgIyBEb24ndCBhbGxvdyB1bmRlZmluZWQgc3ltYm9scy4K KysJICBhbGxvd191bmRlZmluZWRfZmxhZz0iJG5vX3VuZGVmaW5lZF9mbGFnIgorKwlmaQorKyAg ICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorKwkjIFJl bW92ZSBvdXIgb3V0cHV0cywgYnV0IGRvbid0IHJlbW92ZSBvYmplY3QgZmlsZXMgc2luY2UgdGhl eQorKwkjIG1heSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0cy4K KysJcmVtb3ZlbGlzdD0KKysJdGVtcHJlbW92ZWxpc3Q9YCRlY2hvICIkb3V0cHV0X29iamRpci8q ImAKKysJZm9yIHAgaW4gJHRlbXByZW1vdmVsaXN0OyBkbworKwkgIGNhc2UgJHAgaW4KKysJICAg ICouJG9iamV4dCkKKysJICAgICAgIDs7CisrCSAgICAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFt ZSB8ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiogfCAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9 JHtyZWxlYXNlfS4qKQorKwkgICAgICAgaWYgdGVzdCAiWCRwcmVjaW91c19maWxlc19yZWdleCIg IT0gIlgiOyB0aGVuCisrCSAgICAgICAgIGlmIGVjaG8gJHAgfCAkRUdSRVAgLWUgIiRwcmVjaW91 c19maWxlc19yZWdleCIgPi9kZXYvbnVsbCAyPiYxCisrCSAgICAgICAgIHRoZW4KKysJCSAgIGNv bnRpbnVlCisrCQkgZmkKKysJICAgICAgIGZpCisrCSAgICAgICByZW1vdmVsaXN0PSIkcmVtb3Zl bGlzdCAkcCIKKysJICAgICAgIDs7CisrCSAgICAqKSA7OworKwkgIGVzYWMKKysJZG9uZQorKwlp ZiB0ZXN0IC1uICIkcmVtb3ZlbGlzdCI7IHRoZW4KKysJICAkc2hvdyAiJHtybX1yICRyZW1vdmVs aXN0IgorKwkgICRydW4gJHtybX1yICRyZW1vdmVsaXN0CisrCWZpCisrICAgICAgZmkKKysKKysg ICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4K KysgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgorKwlvbGRsaWJzPSIkb2xkbGlicyAk b3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorKworKwkjIFRyYW5zZm9ybSAubG8gZmls ZXMgdG8gLm8gZmlsZXMuCisrCW9sZG9ianM9IiRvYmpzICJgJGVjaG8gIlgkbGlib2JqcyIgfCAk U1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSckL2QnIC1lICIkbG8ybyIgfCAkTkwyU1Bg CisrICAgICAgZmkKKysKKysgICAgICAjIEVsaW1pbmF0ZSBhbGwgdGVtcG9yYXJ5IGRpcmVjdG9y aWVzLgorKyAgICAgICNmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbworKyAgICAgICMJbGli X3NlYXJjaF9wYXRoPWAkZWNobyAiJGxpYl9zZWFyY2hfcGF0aCAiIHwgJHtTRUR9IC1lICJzJSAk cGF0aCAlICVnImAKKysgICAgICAjCWRlcGxpYnM9YCRlY2hvICIkZGVwbGlicyAiIHwgJHtTRUR9 IC1lICJzJSAtTCRwYXRoICUgJWciYAorKyAgICAgICMJZGVwZW5kZW5jeV9saWJzPWAkZWNobyAi JGRlcGVuZGVuY3lfbGlicyAiIHwgJHtTRUR9IC1lICJzJSAtTCRwYXRoICUgJWciYAorKyAgICAg ICNkb25lCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7IHRoZW4KKysJIyBJZiB0aGUg dXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0aGVtLgorKwl0ZW1wX3hy cGF0aD0KKysJZm9yIGxpYmRpciBpbiAkeHJwYXRoOyBkbworKwkgIHRlbXBfeHJwYXRoPSIkdGVt cF94cnBhdGggLVIkbGliZGlyIgorKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAg KiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRo ICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlkb25lCisrCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRv X2xpYnMiICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrCSAg ZGVwZW5kZW5jeV9saWJzPSIkdGVtcF94cnBhdGggJGRlcGVuZGVuY3lfbGlicyIKKysJZmkKKysg ICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIGRsZmlsZXMgY29udGFpbnMgb25seSB1bmlx dWUgZmlsZXMgdGhhdCB3b24ndCBiZSBkbHByZW9wZW5lZAorKyAgICAgIG9sZF9kbGZpbGVzPSIk ZGxmaWxlcyIKKysgICAgICBkbGZpbGVzPQorKyAgICAgIGZvciBsaWIgaW4gJG9sZF9kbGZpbGVz OyBkbworKwljYXNlICIgJGRscHJlZmlsZXMgJGRsZmlsZXMgIiBpbgorKwkqIiAkbGliICIqKSA7 OworKwkqKSBkbGZpbGVzPSIkZGxmaWxlcyAkbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQor KworKyAgICAgICMgTWFrZSBzdXJlIGRscHJlZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmls ZXMKKysgICAgICBvbGRfZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMiCisrICAgICAgZGxwcmVmaWxl cz0KKysgICAgICBmb3IgbGliIGluICRvbGRfZGxwcmVmaWxlczsgZG8KKysJY2FzZSAiJGRscHJl ZmlsZXMgIiBpbgorKwkqIiAkbGliICIqKSA7OworKwkqKSBkbHByZWZpbGVzPSIkZGxwcmVmaWxl cyAkbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKworKyAgICAgIGlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4K KysJICBjYXNlICRob3N0IGluCisrCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3 MzIqIHwgKi0qLW9zMiogfCAqLSotYmVvcyopCisrCSAgICAjIHRoZXNlIHN5c3RlbXMgZG9uJ3Qg YWN0dWFsbHkgaGF2ZSBhIGMgbGlicmFyeSAoYXMgc3VjaCkhCisrCSAgICA7OworKwkgICotKi1y aGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJICAgICMgUmhhcHNvZHkgQyBsaWJyYXJ5 IGlzIGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisrCSAgICBkZXBsaWJzPSIkZGVwbGlicyAtZnJh bWV3b3JrIFN5c3RlbSIKKysJICAgIDs7CisrCSAgKi0qLW5ldGJzZCopCisrCSAgICAjIERvbid0 IGxpbmsgd2l0aCBsaWJjIHVudGlsIHRoZSBhLm91dCBsZC5zbyBpcyBmaXhlZC4KKysJICAgIDs7 CisrCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisrCSAg ICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KKysJ ICAgIDs7CisrCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1zY281djYqKQorKwkgICAgIyBDYXVzZXMg cHJvYmxlbXMgd2l0aCBfX2N0eXBlCisrCSAgICA7OworKwkgICotKi1zeXN2NC4ydXcyKiB8ICot Ki1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKKysJICAgICMgQ29tcGls ZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsK KysJICAgIDs7CisrIAkgICopCisrCSAgICAjIEFkZCBsaWJjIHRvIGRlcGxpYnMgb24gYWxsIG90 aGVyIHN5c3RlbXMgaWYgbmVjZXNzYXJ5LgorKwkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bmVlZF9sYyIgPSAieWVzIjsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGlicyAtbGMiCisr CSAgICBmaQorKwkgICAgOzsKKysJICBlc2FjCisrCWZpCisrCisrCSMgVHJhbnNmb3JtIGRlcGxp YnMgaW50byBvbmx5IGRlcGxpYnMgdGhhdCBjYW4gYmUgbGlua2VkIGluIHNoYXJlZC4KKysJbmFt ZV9zYXZlPSRuYW1lCisrCWxpYm5hbWVfc2F2ZT0kbGlibmFtZQorKwlyZWxlYXNlX3NhdmU9JHJl bGVhc2UKKysJdmVyc3VmZml4X3NhdmU9JHZlcnN1ZmZpeAorKwltYWpvcl9zYXZlPSRtYWpvcgor KwkjIEknbSBub3Qgc3VyZSBpZiBJJ20gdHJlYXRpbmcgdGhlIHJlbGVhc2UgY29ycmVjdGx5LiAg SSB0aGluaworKwkjIHJlbGVhc2Ugc2hvdWxkIHNob3cgdXAgaW4gdGhlIC1sIChpZSAtbGdtcDUp IHNvIHdlIGRvbid0IHdhbnQgdG8KKysJIyBhZGQgaXQgaW4gdHdpY2UuICBJcyB0aGF0IGNvcnJl Y3Q/CisrCXJlbGVhc2U9IiIKKysJdmVyc3VmZml4PSIiCisrCW1ham9yPSIiCisrCW5ld2RlcGxp YnM9CisrCWRyb3BwZWRkZXBzPW5vCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisr CXBhc3NfYWxsKQorKwkgICMgRG9uJ3QgY2hlY2sgZm9yIHNoYXJlZC9zdGF0aWMuICBFdmVyeXRo aW5nIHdvcmtzLgorKwkgICMgVGhpcyBtaWdodCBiZSBhIGxpdHRsZSBuYWl2ZS4gIFdlIG1pZ2h0 IHdhbnQgdG8gY2hlY2sKKysJICAjIHdoZXRoZXIgdGhlIGxpYnJhcnkgZXhpc3RzIG9yIG5vdC4g IEJ1dCB0aGlzIGlzIG9uCisrCSAgIyBvc2YzICYgb3NmNCBhbmQgSSdtIG5vdCByZWFsbHkgc3Vy ZS4uLiBKdXN0CisrCSAgIyBpbXBsZW1lbnRpbmcgd2hhdCB3YXMgYWxyZWFkeSB0aGUgYmVoYXZp b3IuCisrCSAgbmV3ZGVwbGlicz0kZGVwbGlicworKwkgIDs7CisrCXRlc3RfY29tcGlsZSkKKysJ ICAjIFRoaXMgY29kZSBzdHJlc3NlcyB0aGUgImxpYnJhcmllcyBhcmUgcHJvZ3JhbXMiIHBhcmFk aWdtIHRvIGl0cworKwkgICMgbGltaXRzLiBNYXliZSBldmVuIGJyZWFrcyBpdC4gIFdlIGNvbXBp bGUgYSBwcm9ncmFtLCBsaW5raW5nIGl0CisrCSAgIyBhZ2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEg cHJveHkgZm9yIHRoZSBsaWJyYXJ5LiAgVGhlbiB3ZSBjYW4gY2hlY2sKKysJICAjIHdoZXRoZXIg dGhleSBsaW5rZWQgaW4gc3RhdGljYWxseSBvciBkeW5hbWljYWxseSB3aXRoIGxkZC4KKysJICAk cm0gY29uZnRlc3QuYworKwkgIGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKKysJICBpbnQgbWFpbigp IHsgcmV0dXJuIDA7IH0KKytFT0YKKysJICAkcm0gY29uZnRlc3QKKysJICBpZiAkTFRDQyAkTFRD RkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkZGVwbGliczsgdGhlbgorKwkgICAgbGRkX291 dHB1dD1gbGRkIGNvbmZ0ZXN0YAorKwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCisrCSAgICAg IG5hbWU9YGV4cHIgJGkgOiAnLWxcKC4qXCknYAorKwkgICAgICAjIElmICRuYW1lIGlzIGVtcHR5 IHdlIGFyZSBvcGVyYXRpbmcgb24gYSAtTCBhcmd1bWVudC4KKysgICAgICAgICAgICAgIGlmIHRl c3QgIiRuYW1lIiAhPSAiIiAmJiB0ZXN0ICIkbmFtZSIgIT0gIjAiOyB0aGVuCisrCQlpZiB0ZXN0 ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0 aGVuCisrCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorKwkJICAqIiAkaSAiKikK KysJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJCSAgICBpPSIiCisrCQkgICAg OzsKKysJCSAgZXNhYworKwkgICAgICAgIGZpCisrCQlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisr CQkgIGxpYm5hbWU9YGV2YWwgXFwkZWNobyBcIiRsaWJuYW1lX3NwZWNcImAKKysJCSAgZGVwbGli X21hdGNoZXM9YGV2YWwgXFwkZWNobyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcImAKKysJCSAgc2V0 IGR1bW15ICRkZXBsaWJfbWF0Y2hlcworKwkJICBkZXBsaWJfbWF0Y2g9JDIKKysJCSAgaWYgdGVz dCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgor KwkJICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorKwkJICBlbHNlCisrCQkgICAgZHJv cHBlZGRlcHM9eWVzCisrCQkgICAgJGVjaG8KKysJCSAgICAkZWNobyAiKioqIFdhcm5pbmc6IGR5 bmFtaWMgbGlua2VyIGRvZXMgbm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAkaS4iCisrCQkgICAg JGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0 b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQkgICAgJGVjaG8gIioqKiB5b3UgbGluayB0byB0 aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisrCQkg ICAgJGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxp ZXZlIHlvdSBkbyBub3QgaGF2ZSIKKysJCSAgICAkZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2Nv bXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgaXQgZm9yIgorKwkJ ICAgICRlY2hvICIqKiogaXRzIGR5bmFtaWMgZGVwZW5kZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMg Z2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCisrCQkgIGZpCisrCQlmaQorKwkgICAgICBl bHNlCisrCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJICAgICAgZmkKKysJICAgIGRv bmUKKysJICBlbHNlCisrCSAgICAjIEVycm9yIG9jY3VycmVkIGluIHRoZSBmaXJzdCBjb21waWxl LiAgTGV0J3MgdHJ5IHRvIHNhbHZhZ2UKKysJICAgICMgdGhlIHNpdHVhdGlvbjogQ29tcGlsZSBh IHNlcGFyYXRlIHByb2dyYW0gZm9yIGVhY2ggbGlicmFyeS4KKysJICAgIGZvciBpIGluICRkZXBs aWJzOyBkbworKwkgICAgICBuYW1lPWBleHByICRpIDogJy1sXCguKlwpJ2AKKysJICAgICAgIyBJ ZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEgLUwgYXJndW1lbnQuCisrICAg ICAgICAgICAgICBpZiB0ZXN0ICIkbmFtZSIgIT0gIiIgJiYgdGVzdCAiJG5hbWUiICE9ICIwIjsg dGhlbgorKwkJJHJtIGNvbmZ0ZXN0CisrCQlpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3Qg Y29uZnRlc3QuYyAkaTsgdGhlbgorKwkJICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCisrCQkg IGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJY eWVzIiA7IHRoZW4KKysJCSAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJCSAg ICAqIiAkaSAiKikKKysJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorKwkJICAg ICAgaT0iIgorKwkJICAgICAgOzsKKysJCSAgICBlc2FjCisrCQkgIGZpCisrCQkgIGlmIHRlc3Qg LW4gIiRpIiA7IHRoZW4KKysJCSAgICBsaWJuYW1lPWBldmFsIFxcJGVjaG8gXCIkbGlibmFtZV9z cGVjXCJgCisrCQkgICAgZGVwbGliX21hdGNoZXM9YGV2YWwgXFwkZWNobyBcIiRsaWJyYXJ5X25h bWVzX3NwZWNcImAKKysJCSAgICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzCisrCQkgICAgZGVw bGliX21hdGNoPSQyCisrCQkgICAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRl cGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxp YnMgJGkiCisrCQkgICAgZWxzZQorKwkJICAgICAgZHJvcHBlZGRlcHM9eWVzCisrCQkgICAgICAk ZWNobworKwkJICAgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5v dCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgorKwkJICAgICAgJGVjaG8gIioqKiBJIGhhdmUg dGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGlu IHdoZW4iCisrCQkgICAgICAkZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1 dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSAgICAgICRlY2hvICIqKiog c2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRv IGhhdmUiCisrCQkgICAgICAkZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJl dmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgdGhpcyBvbmUiCisrCQkgICAgICAkZWNo byAiKioqIGFzIGEgZHluYW1pYyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNv bHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgorKwkJICAgIGZpCisrCQkgIGZpCisrCQllbHNlCisrCQkg IGRyb3BwZWRkZXBzPXllcworKwkJICAkZWNobworKwkJICAkZWNobyAiKioqIFdhcm5pbmchICBM aWJyYXJ5ICRpIGlzIG5lZWRlZCBieSB0aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRv IgorKwkJICAkZWNobyAiKioqIG1ha2UgaXQgbGluayBpbiEgIFlvdSB3aWxsIHByb2JhYmx5IG5l ZWQgdG8gaW5zdGFsbCBpdCBvciBzb21lIgorKwkJICAkZWNobyAiKioqIGxpYnJhcnkgdGhhdCBp dCBkZXBlbmRzIG9uIGJlZm9yZSB0aGlzIGxpYnJhcnkgd2lsbCBiZSBmdWxseSIKKysJCSAgJGVj aG8gIioqKiBmdW5jdGlvbmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3Vs ZCBiZSBldmVuIGJldHRlci4iCisrCQlmaQorKwkgICAgICBlbHNlCisrCQluZXdkZXBsaWJzPSIk bmV3ZGVwbGlicyAkaSIKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJICBmaQorKwkgIDs7Cisr CWZpbGVfbWFnaWMqKQorKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2QKKysJICBm aWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQyIFwoLipc KSJgCisrCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgICAgbmFtZT1gZXhwciAk YV9kZXBsaWIgOiAnLWxcKC4qXCknYAorKwkgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUg b3BlcmF0aW5nIG9uIGEgLUwgYXJndW1lbnQuCisrICAgICAgICAgICAgaWYgdGVzdCAiJG5hbWUi ICE9ICIiICYmIHRlc3QgICIkbmFtZSIgIT0gIjAiOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgIlgk YWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4K KysJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorKwkJKiIgJGFfZGVwbGliICIqKQor KwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkgIGFfZGVwbGliPSIi CisrCQkgIDs7CisrCQllc2FjCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgLW4gIiRhX2Rl cGxpYiIgOyB0aGVuCisrCQlsaWJuYW1lPWBldmFsIFxcJGVjaG8gXCIkbGlibmFtZV9zcGVjXCJg CisrCQlmb3IgaSBpbiAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxp Yl9zZWFyY2hfcGF0aDsgZG8KKysJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4t XSogMj4vZGV2L251bGxgCisrCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsg ZG8KKysJCSAgICAgICMgRm9sbG93IHNvZnQgbGlua3MuCisrCQkgICAgICBpZiBscyAtbExkICIk cG90ZW50X2xpYiIgMj4vZGV2L251bGwgXAorKwkJCSB8IGdyZXAgIiAtPiAiID4vZGV2L251bGw7 IHRoZW4KKysJCQljb250aW51ZQorKwkJICAgICAgZmkKKysJCSAgICAgICMgVGhlIHN0YXRlbWVu dCBhYm92ZSB0cmllcyB0byBhdm9pZCBlbnRlcmluZyBhbgorKwkJICAgICAgIyBlbmRsZXNzIGxv b3AgYmVsb3csIGluIGNhc2Ugb2YgY3ljbGljIGxpbmtzLgorKwkJICAgICAgIyBXZSBtaWdodCBz dGlsbCBlbnRlciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNlIGEgbGluaworKwkJICAgICAgIyBsb29w IGNhbiBiZSBjbG9zZWQgd2hpbGUgd2UgZm9sbG93IGxpbmtzLAorKwkJICAgICAgIyBidXQgc28g d2hhdD8KKysJCSAgICAgIHBvdGxpYj0iJHBvdGVudF9saWIiCisrCQkgICAgICB3aGlsZSB0ZXN0 IC1oICIkcG90bGliIiAyPi9kZXYvbnVsbDsgZG8KKysJCQlwb3RsaWJsaW5rPWBscyAtbGQgJHBv dGxpYiB8ICR7U0VEfSAncy8uKiAtPiAvLydgCisrCQkJY2FzZSAkcG90bGlibGluayBpbgorKwkJ CVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgcG90bGliPSIkcG90bGlibGluayI7OworKwkJCSop IHBvdGxpYj1gJGVjaG8gIlgkcG90bGliIiB8ICRYc2VkIC1lICdzLFteL10qJCwsJ2AiJHBvdGxp YmxpbmsiOzsKKysJCQllc2FjCisrCQkgICAgICBkb25lCisrCQkgICAgICBpZiBldmFsICRmaWxl X21hZ2ljX2NtZCBcIlwkcG90bGliXCIgMj4vZGV2L251bGwgXAorKwkJCSB8ICR7U0VEfSAxMHEg XAorKwkJCSB8ICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisr CQkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkJCWFfZGVwbGliPSIiCisr CQkJYnJlYWsgMgorKwkJICAgICAgZmkKKysJCSAgZG9uZQorKwkJZG9uZQorKwkgICAgICBmaQor KwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorKwkJZHJvcHBlZGRlcHM9eWVz CisrCQkkZWNobworKwkJJGVjaG8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBo YXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgorKwkJJGVjaG8gIioqKiBJIGhh dmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5r IGluIHdoZW4iCisrCQkkZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJ IGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSRlY2hvICIqKiogc2hhcmVkIHZl cnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisr CQkkZWNobyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcg Zm9yIGEgZmlsZSBzdGFydGluZyIKKysJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgorKwkJ ICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4g KC4uLmZvciBmaWxlIG1hZ2ljIHRlc3QpIgorKwkJZWxzZQorKwkJICAkZWNobyAiKioqIHdpdGgg JGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQg dGVzdCIKKysJCSAgJGVjaG8gIioqKiB1c2luZyBhIGZpbGUgbWFnaWMuIExhc3QgZmlsZSBjaGVj a2VkOiAkcG90bGliIgorKwkJZmkKKysJICAgICAgZmkKKysJICAgIGVsc2UKKysJICAgICAgIyBB ZGQgYSAtTCBhcmd1bWVudC4KKysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVw bGliIgorKwkgICAgZmkKKysJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgorKwkg IDs7CisrCW1hdGNoX3BhdHRlcm4qKQorKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRo b2QKKysJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2Qi IDogIiQyIFwoLipcKSJgCisrCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgICAg bmFtZT1gZXhwciAkYV9kZXBsaWIgOiAnLWxcKC4qXCknYAorKwkgICAgIyBJZiAkbmFtZSBpcyBl bXB0eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEgLUwgYXJndW1lbnQuCisrCSAgICBpZiB0ZXN0IC1u ICIkbmFtZSIgJiYgdGVzdCAiJG5hbWUiICE9ICIwIjsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICJY JGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVu CisrCQljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJCSoiICRhX2RlcGxpYiAiKikK KysJCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkJICBhX2RlcGxpYj0i IgorKwkJICA7OworKwkJZXNhYworKwkgICAgICBmaQorKwkgICAgICBpZiB0ZXN0IC1uICIkYV9k ZXBsaWIiIDsgdGhlbgorKwkJbGlibmFtZT1gZXZhbCBcXCRlY2hvIFwiJGxpYm5hbWVfc3BlY1wi YAorKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hs aWJfc2VhcmNoX3BhdGg7IGRvCisrCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsu LV0qIDI+L2Rldi9udWxsYAorKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7 IGRvCisrCQkgICAgcG90bGliPSIkcG90ZW50X2xpYiIgIyBzZWUgc3ltbGluay1jaGVjayBhYm92 ZSBpbiBmaWxlX21hZ2ljIHRlc3QKKysJCSAgICBpZiBldmFsICRlY2hvIFwiJHBvdGVudF9saWJc IiAyPi9kZXYvbnVsbCBcCisrCQkgICAgICAgIHwgJHtTRUR9IDEwcSBcCisrCQkgICAgICAgIHwg JEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKysJCSAgICAg IG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKKysJCSAgICAgIGFfZGVwbGliPSIi CisrCQkgICAgICBicmVhayAyCisrCQkgICAgZmkKKysJCSAgZG9uZQorKwkJZG9uZQorKwkgICAg ICBmaQorKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorKwkJZHJvcHBlZGRl cHM9eWVzCisrCQkkZWNobworKwkJJGVjaG8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2Vz IG5vdCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgorKwkJJGVjaG8gIioq KiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxs eSBsaW5rIGluIHdoZW4iCisrCQkkZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4g IEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSRlY2hvICIqKiogc2hh cmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhh dmUiCisrCQkkZWNobyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxv b2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKKysJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhl bgorKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBm b3VuZC4gKC4uLmZvciByZWdleCBwYXR0ZXJuIHRlc3QpIgorKwkJZWxzZQorKwkJICAkZWNobyAi KioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmls ZSBmb3JtYXQgdGVzdCIKKysJCSAgJGVjaG8gIioqKiB1c2luZyBhIHJlZ2V4IHBhdHRlcm4uIExh c3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgorKwkJZmkKKysJICAgICAgZmkKKysJICAgIGVsc2UK KysJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KKysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2Rl cGxpYnMgJGFfZGVwbGliIgorKwkgICAgZmkKKysJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBk ZXBsaWJzLgorKwkgIDs7CisrCW5vbmUgfCB1bmtub3duIHwgKikKKysJICBuZXdkZXBsaWJzPSIi CisrCSAgdG1wX2RlcGxpYnM9YCRlY2hvICJYICRkZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMk Ly8nIFwKKysJICAgIC1lICdzLyAtW0xSXVteIF0qLy9nJ2AKKysJICBpZiB0ZXN0ICJYJGFsbG93 X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCSAg ICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRlcHMgOyBkbworKwkgICAgICAjIGNhbid0IHVzZSBY c2VkIGJlbG93LCBiZWNhdXNlICRpIG1pZ2h0IGNvbnRhaW4gJy8nCisrCSAgICAgIHRtcF9kZXBs aWJzPWAkZWNobyAiWCAkdG1wX2RlcGxpYnMiIHwgJHtTRUR9IC1lICIxcyxeWCwsIiAtZSAicywk aSwsImAKKysJICAgIGRvbmUKKysJICBmaQorKwkgIGlmICRlY2hvICJYICR0bXBfZGVwbGlicyIg fCAkWHNlZCAtZSAncy9bIAldLy9nJyBcCisrCSAgICB8IGdyZXAgLiA+L2Rldi9udWxsOyB0aGVu CisrCSAgICAkZWNobworKwkgICAgaWYgdGVzdCAiWCRkZXBsaWJzX2NoZWNrX21ldGhvZCIgPSAi WG5vbmUiOyB0aGVuCisrCSAgICAgICRlY2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBk ZXBlbmRlbmNpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4iCisrCSAgICBl bHNlCisrCSAgICAgICRlY2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNp ZXMgYXJlIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQuIgorKwkgICAgZmkKKysJICAgICRlY2hv ICIqKiogQWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBiZWluZyBk cm9wcGVkLiIKKysJICAgIGRyb3BwZWRkZXBzPXllcworKwkgIGZpCisrCSAgOzsKKysJZXNhYwor Kwl2ZXJzdWZmaXg9JHZlcnN1ZmZpeF9zYXZlCisrCW1ham9yPSRtYWpvcl9zYXZlCisrCXJlbGVh c2U9JHJlbGVhc2Vfc2F2ZQorKwlsaWJuYW1lPSRsaWJuYW1lX3NhdmUKKysJbmFtZT0kbmFtZV9z YXZlCisrCisrCWNhc2UgJGhvc3QgaW4KKysJKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlsw MTJdKQorKwkgICMgT24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0 ZW0gZnJhbWV3b3JrCisrCSAgbmV3ZGVwbGlicz1gJGVjaG8gIlggJG5ld2RlcGxpYnMiIHwgJFhz ZWQgLWUgJ3MvIC1sYyAvIC1mcmFtZXdvcmsgU3lzdGVtIC8nYAorKwkgIDs7CisrCWVzYWMKKysK KysJaWYgdGVzdCAiJGRyb3BwZWRkZXBzIiA9IHllczsgdGhlbgorKwkgIGlmIHRlc3QgIiRtb2R1 bGUiID0geWVzOyB0aGVuCisrCSAgICAkZWNobworKwkgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBs aWJ0b29sIGNvdWxkIG5vdCBzYXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IgorKwkg ICAgJGVjaG8gIioqKiBkZXBlbmRlbmNpZXMgb2YgbW9kdWxlICRsaWJuYW1lLiAgVGhlcmVmb3Jl LCBsaWJ0b29sIHdpbGwgY3JlYXRlIgorKwkgICAgJGVjaG8gIioqKiBhIHN0YXRpYyBtb2R1bGUs IHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgorKwkgICAgJGVjaG8g IioqKiBhcHBsaWNhdGlvbiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnLiIKKysJICAg IGlmIHRlc3QgLXogIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrCSAgICAgICRlY2hvCisr CSAgICAgICRlY2hvICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9v bCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKKysJICAgICAgJGVjaG8gIioqKiBsaXN0cyBm cm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291 bGQiCisrCSAgICAgICRlY2hvICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhp cyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCisrCSAgICAgICRlY2hvICIqKiogXGBubScg ZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKKysJICAgIGZp CisrCSAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KKysJICAgICAgb2xk bGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKKysJICAgICAgYnVpbGRfbGli dG9vbF9saWJzPW1vZHVsZQorKwkgICAgICBidWlsZF9vbGRfbGlicz15ZXMKKysJICAgIGVsc2UK KysJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAg ICRlY2hvICIqKiogVGhlIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaGF2ZSBiZWVu IGRyb3BwZWQgaGVyZSB3aWxsIGJlIgorKwkgICAgJGVjaG8gIioqKiBhdXRvbWF0aWNhbGx5IGFk ZGVkIHdoZW5ldmVyIGEgcHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCB0aGlzIGxpYnJhcnkiCisrCSAg ICAkZWNobyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgorKworKwkgICAgaWYg dGVzdCAiJGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhlbgorKwkgICAgICAkZWNobworKwkgICAg ICAkZWNobyAiKioqIFNpbmNlIHRoaXMgbGlicmFyeSBtdXN0IG5vdCBjb250YWluIHVuZGVmaW5l ZCBzeW1ib2xzLCIKKysJICAgICAgJGVjaG8gIioqKiBiZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZv cm0gZG9lcyBub3Qgc3VwcG9ydCB0aGVtIG9yIgorKwkgICAgICAkZWNobyAiKioqIGl0IHdhcyBl eHBsaWNpdGx5IHJlcXVlc3RlZCB3aXRoIC1uby11bmRlZmluZWQsIgorKwkgICAgICAkZWNobyAi KioqIGxpYnRvb2wgd2lsbCBvbmx5IGNyZWF0ZSBhIHN0YXRpYyB2ZXJzaW9uIG9mIGl0LiIKKysJ ICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCisrCQlvbGRsaWJzPSIk b3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorKwkJYnVpbGRfbGlidG9vbF9saWJzPW1v ZHVsZQorKwkJYnVpbGRfb2xkX2xpYnM9eWVzCisrCSAgICAgIGVsc2UKKysJCWJ1aWxkX2xpYnRv b2xfbGlicz1ubworKwkgICAgICBmaQorKwkgICAgZmkKKysJICBmaQorKwlmaQorKwkjIERvbmUg Y2hlY2tpbmcgZGVwbGlicyEKKysJZGVwbGlicz0kbmV3ZGVwbGlicworKyAgICAgIGZpCisrCisr CisrICAgICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBw YXRocyB0byBub3QgeWV0CisrICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdp bm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKKysgICAgICBuZXdfbGlicz0KKysgICAg ICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbworKwljYXNlICIgJG5ld19saWJzICIgaW4K KysJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7OworKwkqKQorKwkgIGNhc2UgIiAkZGVwbGlicyAi IGluCisrCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIqKQorKwkgICAgbmV3X2xpYnM9IiRuZXdfbGli cyAtTCRwYXRoLyRvYmpkaXIiIDs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBk b25lCisrICAgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGlu CisrCS1MKikKKysJICBjYXNlICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7 OworKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAg OzsKKysJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAg ZG9uZQorKyAgICAgIGRlcGxpYnM9IiRuZXdfbGlicyIKKysKKysKKysgICAgICAjIEFsbCB0aGUg bGlicmFyeS1zcGVjaWZpYyB2YXJpYWJsZXMgKGluc3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSku CisrICAgICAgbGlicmFyeV9uYW1lcz0KKysgICAgICBvbGRfbGlicmFyeT0KKysgICAgICBkbG5h bWU9CisrCisrICAgICAgIyBUZXN0IGFnYWluLCB3ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBi dWlsZCBpdCBhbnkgbW9yZQorKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0g eWVzOyB0aGVuCisrCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisr CSAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocworKwkgIGhhcmRjb2RlX2xpYmRpcnM9Cisr CSAgZGVwX3JwYXRoPQorKwkgIHJwYXRoPSIkZmluYWxpemVfcnBhdGgiCisrCSAgdGVzdCAiJG1v ZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCisrCSAgZm9yIGxp YmRpciBpbiAkcnBhdGg7IGRvCisrCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYyI7IHRoZW4KKysJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IiOyB0aGVuCisrCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJ CSAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKysJCWVsc2UKKysJCSAgIyBKdXN0IGFjY3Vt dWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkJ ICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yIiopCisrCQkgICAgOzsKKysJCSAgKikKKysJCSAgICBoYXJkY29kZV9saWJkaXJzPSIk aGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKKysJCSAg ICA7OworKwkJICBlc2FjCisrCQlmaQorKwkgICAgICBlbHNlCisrCQlldmFsIGZsYWc9XCIkaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCQlkZXBfcnBhdGg9IiRkZXBfcnBhdGggJGZsYWci CisrCSAgICAgIGZpCisrCSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJ ICAgICAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgorKwkgICAgICAqIiAkbGliZGlyICIqKSA7Owor KwkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OworKwkgICAgICBl c2FjCisrCSAgICBmaQorKwkgIGRvbmUKKysJICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBs aWJkaXJzIGludG8gdGhlIHJwYXRoLgorKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yIiAmJgorKwkgICAgIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgor KwkgICAgbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKysJICAgIGlmIHRlc3QgLW4gIiRoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsgdGhlbgorKwkgICAgICBjYXNlICRhcmNoaXZlX2Nt ZHMgaW4KKysJICAgICAgKlwkTEQqKSBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkXCIgOzsKKysJICAgICAgKikgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjXCIgOzsKKysJICAgICAgZXNhYworKwkgICAgZWxzZQorKwkg ICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKysJICAg IGZpCisrCSAgZmkKKysJICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiICYmIHRlc3QgLW4gIiRw ZXJtX3JwYXRoIjsgdGhlbgorKwkgICAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4K KysJICAgIHJwYXRoPQorKwkgICAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KKysJICAgICAg cnBhdGg9IiRycGF0aCRkaXI6IgorKwkgICAgZG9uZQorKwkgICAgZXZhbCAiJHJ1bnBhdGhfdmFy PSckcnBhdGhcJCRydW5wYXRoX3Zhcic7IGV4cG9ydCAkcnVucGF0aF92YXIiCisrCSAgZmkKKysJ ICB0ZXN0IC1uICIkZGVwX3JwYXRoIiAmJiBkZXBsaWJzPSIkZGVwX3JwYXRoICRkZXBsaWJzIgor KwlmaQorKworKwlzaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgiCisrCXRlc3QgIiRtb2Rl IiAhPSByZWxpbmsgJiYgc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkc2hsaWJwYXRoIgor KwlpZiB0ZXN0IC1uICIkc2hsaWJwYXRoIjsgdGhlbgorKwkgIGV2YWwgIiRzaGxpYnBhdGhfdmFy PSckc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3Zhcic7IGV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKKysJ ZmkKKysKKysJIyBHZXQgdGhlIHJlYWwgYW5kIGxpbmsgbmFtZXMgb2YgdGhlIGxpYnJhcnkuCisr CWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisrCWV2YWwgbGlicmFyeV9uYW1lcz1c IiRsaWJyYXJ5X25hbWVzX3NwZWNcIgorKwlzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKKysJcmVh bG5hbWU9IiQyIgorKwlzaGlmdDsgc2hpZnQKKysKKysJaWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVj IjsgdGhlbgorKwkgIGV2YWwgc29uYW1lPVwiJHNvbmFtZV9zcGVjXCIKKysJZWxzZQorKwkgIHNv bmFtZT0iJHJlYWxuYW1lIgorKwlmaQorKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgorKwkg IGRsbmFtZT0kc29uYW1lCisrCWZpCisrCisrCWxpYj0iJG91dHB1dF9vYmpkaXIvJHJlYWxuYW1l IgorKwlsaW5rbmFtZXM9CisrCWZvciBsaW5rCisrCWRvCisrCSAgbGlua25hbWVzPSIkbGlua25h bWVzICRsaW5rIgorKwlkb25lCisrCisrCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBh cmUgcGljCisrCXRlc3QgLXogIiRwaWNfZmxhZyIgJiYgbGlib2Jqcz1gJGVjaG8gIlgkbGlib2Jq cyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorKworKwkjIFByZXBhcmUg dGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scworKwlpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJv bHMiOyB0aGVuCisrCSAgaWYgdGVzdCAiJGFsd2F5c19leHBvcnRfc3ltYm9scyIgPSB5ZXMgfHwg dGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICAgJHNob3cgImdlbmVy YXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIgorKwkgICAgZXhwb3J0X3N5bWJv bHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4cCIKKysJICAgICRydW4gJHJtICRleHBvcnRf c3ltYm9scworKwkgICAgY21kcz0kZXhwb3J0X3N5bWJvbHNfY21kcworKwkgICAgc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9J34nCisrCSAgICBmb3IgY21kIGluICRjbWRzOyBkbworKwkgICAgICBJRlM9 IiRzYXZlX2lmcyIKKysJICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKKysJICAgICAgaWYgbGVuPWBl eHByICJYJGNtZCIgOiAiLioiYCAmJgorKwkgICAgICAgdGVzdCAiJGxlbiIgLWxlICIkbWF4X2Nt ZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCisrCSAgICAgICAgJHNo b3cgIiRjbWQiCisrCSAgICAgICAgJHJ1biBldmFsICIkY21kIiB8fCBleGl0ICQ/CisrCSAgICAg ICAgc2tpcHBlZF9leHBvcnQ9ZmFsc2UKKysJICAgICAgZWxzZQorKwkgICAgICAgICMgVGhlIGNv bW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBleGVjdXRlIGluIG9uZSBzdGVwLgorKwkgICAgICAg ICRzaG93ICJ1c2luZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlIGZvciBleHBvcnQgbGlzdC4uLiIK KysJICAgICAgICBza2lwcGVkX2V4cG9ydD06CisrCQkjIEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3 aXNlIHNraXBwZWRfZXhwb3J0IG1heSBiZQorKwkJIyBzZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBi dXQgc2hvcnRlciBjbWQuCisrCQlicmVhaworKwkgICAgICBmaQorKwkgICAgZG9uZQorKwkgICAg SUZTPSIkc2F2ZV9pZnMiCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgi OyB0aGVuCisrCSAgICAgICRzaG93ICIkRUdSRVAgLWUgXCIkZXhwb3J0X3N5bWJvbHNfcmVnZXhc IiBcIiRleHBvcnRfc3ltYm9sc1wiID4gXCIke2V4cG9ydF9zeW1ib2xzfVRcIiIKKysJICAgICAg JHJ1biBldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3lt Ym9scyIgPiAiJHtleHBvcnRfc3ltYm9sc31UIicKKysJICAgICAgJHNob3cgIiRtdiBcIiR7ZXhw b3J0X3N5bWJvbHN9VFwiIFwiJGV4cG9ydF9zeW1ib2xzXCIiCisrCSAgICAgICRydW4gZXZhbCAn JG12ICIke2V4cG9ydF9zeW1ib2xzfVQiICIkZXhwb3J0X3N5bWJvbHMiJworKwkgICAgZmkKKysJ ICBmaQorKwlmaQorKworKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4g IiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCisrCSAgJHJ1biBldmFsICckZWNobyAiWCRpbmNsdWRl X2V4cHN5bXMiIHwgJFNQMk5MID4+ICIkZXhwb3J0X3N5bWJvbHMiJworKwlmaQorKworKwl0bXBf ZGVwbGlicz0KKysJZm9yIHRlc3RfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkJY2FzZSAiICRj b252ZW5pZW5jZSAiIGluCisrCQkqIiAkdGVzdF9kZXBsaWIgIiopIDs7CisrCQkqKQorKwkJCXRt cF9kZXBsaWJzPSIkdG1wX2RlcGxpYnMgJHRlc3RfZGVwbGliIgorKwkJCTs7CisrCQllc2FjCisr CWRvbmUKKysJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgorKworKwlpZiB0ZXN0IC1uICIkY29udmVu aWVuY2UiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsg dGhlbgorKwkgICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCisrCSAgICBldmFsIGxpYm9ianM9XCJc JGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKKysJICBlbHNlCisrCSAgICBnZW50 b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorKwkgICAgZ2VuZXJhdGVkPSIkZ2Vu ZXJhdGVkICRnZW50b3AiCisrCisrCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAk Y29udmVuaWVuY2UKKysJICAgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2 ZXNfcmVzdWx0IgorKwkgIGZpCisrCWZpCisrCQorKwlpZiB0ZXN0ICIkdGhyZWFkX3NhZmUiID0g eWVzICYmIHRlc3QgLW4gIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgZXZhbCBm bGFnPVwiJHRocmVhZF9zYWZlX2ZsYWdfc3BlY1wiCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2Vy X2ZsYWdzICRmbGFnIgorKwlmaQorKworKwkjIE1ha2UgYSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFs bGVkIGxpYnJhcnkgd2hlbiByZWxpbmtpbmcKKysJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0 aGVuCisrCSAgJHJ1biBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJHJtICR7cmVhbG5hbWV9 VSAmJiAkbXYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VSknIHx8IGV4aXQgJD8KKysJZmkKKysKKysJ IyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgorKwlpZiB0ZXN0ICIkbW9kdWxlIiA9 IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxlX2NtZHMiIDsgdGhlbgorKwkgIGlmIHRlc3QgLW4gIiRl eHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KKysJ ICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1vZHVsZV9leHBzeW1fY21kc1wiCisrCSAgICBjbWRzPSRt b2R1bGVfZXhwc3ltX2NtZHMKKysJICBlbHNlCisrCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1 bGVfY21kc1wiCisrCSAgICBjbWRzPSRtb2R1bGVfY21kcworKwkgIGZpCisrCWVsc2UKKysJaWYg dGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21k cyI7IHRoZW4KKysJICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2V4cHN5bV9jbWRzXCIKKysJ ICBjbWRzPSRhcmNoaXZlX2V4cHN5bV9jbWRzCisrCWVsc2UKKysJICBldmFsIHRlc3RfY21kcz1c IiRhcmNoaXZlX2NtZHNcIgorKwkgIGNtZHM9JGFyY2hpdmVfY21kcworKwkgIGZpCisrCWZpCisr CisrCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYKKysJICAgbGVuPWBleHBy ICJYJHRlc3RfY21kcyIgOiAiLioiIDI+L2Rldi9udWxsYCAmJgorKwkgICB0ZXN0ICIkbGVuIiAt bGUgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KKysJ ICA6CisrCWVsc2UKKysJICAjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBp biBvbmUgc3RlcCwgbGluayBwaWVjZXdpc2UuCisrCSAgJGVjaG8gImNyZWF0aW5nIHJlbG9hZGFi bGUgb2JqZWN0IGZpbGVzLi4uIgorKworKwkgICMgU2F2ZSB0aGUgdmFsdWUgb2YgJG91dHB1dCBh bmQgJGxpYm9ianMgYmVjYXVzZSB3ZSB3YW50IHRvCisrCSAgIyB1c2UgdGhlbSBsYXRlci4gIElm IHdlIGhhdmUgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsIHdlCisrCSAgIyB3YW50IHRvIHVzZSBz YXZlX2xpYm9ianMgYXMgaXQgd2FzIGJlZm9yZQorKwkgICMgd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMgd2FzIGV4cGFuZGVkLCBiZWNhdXNlIHdlIGNhbid0CisrCSAgIyBhc3N1bWUgdGhlIGxpbmtl ciB1bmRlcnN0YW5kcyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYy4KKysJICAjIFRoaXMgbWF5IGhh dmUgdG8gYmUgcmV2aXNpdGVkLCBpbiBjYXNlIHRvbyBtYW55CisrCSAgIyBjb252ZW5pZW5jZSBs aWJyYXJpZXMgZ2V0IGxpbmtlZCBpbiBhbmQgZW5kIHVwIGV4Y2VlZGluZworKwkgICMgdGhlIHNw ZWMuCisrCSAgaWYgdGVzdCAteiAiJGNvbnZlbmllbmNlIiB8fCB0ZXN0IC16ICIkd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKKysJICBm aQorKwkgIHNhdmVfb3V0cHV0PSRvdXRwdXQKKysJICBvdXRwdXRfbGE9YCRlY2hvICJYJG91dHB1 dCIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKKysKKysJICAjIENsZWFyIHRoZSByZWxvYWRhYmxl IG9iamVjdCBjcmVhdGlvbiBjb21tYW5kIHF1ZXVlIGFuZAorKwkgICMgaW5pdGlhbGl6ZSBrIHRv IG9uZS4KKysJICB0ZXN0X2NtZHM9CisrCSAgY29uY2F0X2NtZHM9CisrCSAgb2JqbGlzdD0KKysJ ICBkZWxmaWxlcz0KKysJICBsYXN0X3JvYmo9CisrCSAgaz0xCisrCSAgb3V0cHV0PSRvdXRwdXRf b2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CisrCSAgIyBMb29wIG92ZXIgdGhlIGxpc3Qg b2Ygb2JqZWN0cyB0byBiZSBsaW5rZWQuCisrCSAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCisr CSAgZG8KKysJICAgIGV2YWwgdGVzdF9jbWRzPVwiJHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0 X3JvYmpcIgorKwkgICAgaWYgdGVzdCAiWCRvYmpsaXN0IiA9IFggfHwKKysJICAgICAgIHsgbGVu PWBleHByICJYJHRlc3RfY21kcyIgOiAiLioiIDI+L2Rldi9udWxsYCAmJgorKwkJIHRlc3QgIiRs ZW4iIC1sZSAiJG1heF9jbWRfbGVuIjsgfTsgdGhlbgorKwkgICAgICBvYmpsaXN0PSIkb2JqbGlz dCAkb2JqIgorKwkgICAgZWxzZQorKwkgICAgICAjIFRoZSBjb21tYW5kICR0ZXN0X2NtZHMgaXMg YWxtb3N0IHRvbyBsb25nLCBhZGQgYQorKwkgICAgICAjIGNvbW1hbmQgdG8gdGhlIHF1ZXVlLgor KwkgICAgICBpZiB0ZXN0ICIkayIgLWVxIDEgOyB0aGVuCisrCQkjIFRoZSBmaXJzdCBmaWxlIGRv ZXNuJ3QgaGF2ZSBhIHByZXZpb3VzIGNvbW1hbmQgdG8gYWRkLgorKwkJZXZhbCBjb25jYXRfY21k cz1cIiRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKysJICAgICAgZWxzZQorKwkJ IyBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVjdCBmaWxlcyB3aWxsIGxpbmsgaW4KKysJ CSMgdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCisrCQlldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRf Y21kc34kcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ialwiCisrCSAgICAgIGZpCisrCSAg ICAgIGxhc3Rfcm9iaj0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAorKwkg ICAgICBrPWBleHByICRrICsgMWAKKysJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRw dXRfbGEtJHtrfS4kb2JqZXh0CisrCSAgICAgIG9iamxpc3Q9JG9iagorKwkgICAgICBsZW49MQor KwkgICAgZmkKKysJICBkb25lCisrCSAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmplY3RzIGJ5 IGNyZWF0aW5nIG9uZSBsYXN0CisrCSAgIyByZWxvYWRhYmxlIG9iamVjdCBmaWxlLiAgQWxsIHN1 YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QKKysJICAjIGZpbGVzIHdpbGwgbGluayBpbiB0aGUg bGFzdCBvbmUgY3JlYXRlZC4KKysJICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9j bWRzPSRjb25jYXRfY21kc34KKysJICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9 JHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgorKworKwkgIGlmICR7c2tpcHBlZF9l eHBvcnQtZmFsc2V9OyB0aGVuCisrCSAgICAkc2hvdyAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBm b3IgXGAkbGlibmFtZS5sYSciCisrCSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuZXhwIgorKwkgICAgJHJ1biAkcm0gJGV4cG9ydF9zeW1ib2xzCisrCSAgICBsaWJv YmpzPSRvdXRwdXQKKysJICAgICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIGNyZWF0ZSB0aGUgZXhw b3J0IGZpbGUuCisrCSAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kZXhwb3J0 X3N5bWJvbHNfY21kc1wiCisrICAgICAgICAgIGZpCisrCisrCSAgIyBTZXQgdXAgYSBjb21tYW5k IHRvIHJlbW92ZSB0aGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMKKysJICAjIGFmdGVyIHRoZXkg YXJlIHVzZWQuCisrCSAgaT0wCisrCSAgd2hpbGUgdGVzdCAiJGkiIC1sdCAiJGsiCisrCSAgZG8K KysJICAgIGk9YGV4cHIgJGkgKyAxYAorKwkgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0 X29iamRpci8kb3V0cHV0X2xhLSR7aX0uJG9iamV4dCIKKysJICBkb25lCisrCisrCSAgJGVjaG8g ImNyZWF0aW5nIGEgdGVtcG9yYXJ5IHJlbG9hZGFibGUgb2JqZWN0IGZpbGU6ICRvdXRwdXQiCisr CisrCSAgIyBMb29wIHRocm91Z2ggdGhlIGNvbW1hbmRzIGdlbmVyYXRlZCBhYm92ZSBhbmQgZXhl Y3V0ZSB0aGVtLgorKwkgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgIGZvciBjbWQgaW4g JGNvbmNhdF9jbWRzOyBkbworKwkgICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgICAkc2hvdyAiJGNt ZCIKKysJICAgICRydW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPworKwkgIGRvbmUKKysJICBJRlM9 IiRzYXZlX2lmcyIKKysKKysJICBsaWJvYmpzPSRvdXRwdXQKKysJICAjIFJlc3RvcmUgdGhlIHZh bHVlIG9mIG91dHB1dC4KKysJICBvdXRwdXQ9JHNhdmVfb3V0cHV0CisrCisrCSAgaWYgdGVzdCAt biAiJGNvbnZlbmllbmNlIiAmJiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0 aGVuCisrCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjXCIKKysJICBmaQorKwkgICMgRXhwYW5kIHRoZSBsaWJyYXJ5IGxpbmtpbmcgY29tbWFuZHMg YWdhaW4gdG8gcmVzZXQgdGhlCisrCSAgIyB2YWx1ZSBvZiAkbGlib2JqcyBmb3IgcGllY2V3aXNl IGxpbmtpbmcuCisrCisrCSAgIyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgorKwkg IGlmIHRlc3QgIiRtb2R1bGUiID0geWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVu CisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVf ZXhwc3ltX2NtZHMiOyB0aGVuCisrCSAgICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcworKwkg ICAgZWxzZQorKwkgICAgICBjbWRzPSRtb2R1bGVfY21kcworKwkgICAgZmkKKysJICBlbHNlCisr CSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBz eW1fY21kcyI7IHRoZW4KKysJICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKKysJICBlbHNl CisrCSAgICBjbWRzPSRhcmNoaXZlX2NtZHMKKysJICAgIGZpCisrCSAgZmkKKysKKysJICAjIEFw cGVuZCB0aGUgY29tbWFuZCB0byByZW1vdmUgdGhlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzCisr CSAgIyB0byB0aGUganVzdC1yZXNldCAkY21kcy4KKysJICBldmFsIGNtZHM9XCJcJGNtZHN+XCRy bSAkZGVsZmlsZXNcIgorKwlmaQorKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nficKKysJZm9yIGNt ZCBpbiAkY21kczsgZG8KKysJICBJRlM9IiRzYXZlX2lmcyIKKysJICBldmFsIGNtZD1cIiRjbWRc IgorKwkgICRzaG93ICIkY21kIgorKwkgICRydW4gZXZhbCAiJGNtZCIgfHwgeworKwkgICAgbHRf ZXhpdD0kPworKworKwkgICAgIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBl eGl0CisrCSAgICBpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJICAgICAgJHJ1biBl dmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJHJtICR7cmVhbG5hbWV9VCAmJiAkbXYgJHtyZWFs bmFtZX1VICRyZWFsbmFtZSknCisrCSAgICBmaQorKworKwkgICAgZXhpdCAkbHRfZXhpdAorKwkg IH0KKysJZG9uZQorKwlJRlM9IiRzYXZlX2lmcyIKKysKKysJIyBSZXN0b3JlIHRoZSB1bmluc3Rh bGxlZCBsaWJyYXJ5IGFuZCBleGl0CisrCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgor KwkgICRydW4gZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRybSAke3JlYWxuYW1lfVQgJiYg JG12ICRyZWFsbmFtZSAke3JlYWxuYW1lfVQgJiYgJG12ICIkcmVhbG5hbWUiVSAkcmVhbG5hbWUp JyB8fCBleGl0ICQ/CisrCisrCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgorKwkg ICAgaWYgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorKwkgICAgICAk c2hvdyAiJHtybX1yICRnZW50b3AiCisrCSAgICAgICRydW4gJHtybX1yICIkZ2VudG9wIgorKwkg ICAgZmkKKysJICBmaQorKworKwkgIGV4aXQgJEVYSVRfU1VDQ0VTUworKwlmaQorKworKwkjIENy ZWF0ZSBsaW5rcyB0byB0aGUgcmVhbCBsaWJyYXJ5LgorKwlmb3IgbGlua25hbWUgaW4gJGxpbmtu YW1lczsgZG8KKysJICBpZiB0ZXN0ICIkcmVhbG5hbWUiICE9ICIkbGlua25hbWUiOyB0aGVuCisr CSAgICAkc2hvdyAiKGNkICRvdXRwdXRfb2JqZGlyICYmICRybSAkbGlua25hbWUgJiYgJExOX1Mg JHJlYWxuYW1lICRsaW5rbmFtZSkiCisrCSAgICAkcnVuIGV2YWwgJyhjZCAkb3V0cHV0X29iamRp ciAmJiAkcm0gJGxpbmtuYW1lICYmICRMTl9TICRyZWFsbmFtZSAkbGlua25hbWUpJyB8fCBleGl0 ICQ/CisrCSAgZmkKKysJZG9uZQorKworKwkjIElmIC1tb2R1bGUgb3IgLWV4cG9ydC1keW5hbWlj IHdhcyBzcGVjaWZpZWQsIHNldCB0aGUgZGxuYW1lLgorKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHll cyB8fCB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzOyB0aGVuCisrCSAgIyBPbiBhbGwga25v d24gb3BlcmF0aW5nIHN5c3RlbXMsIHRoZXNlIGFyZSBpZGVudGljYWwuCisrCSAgZGxuYW1lPSIk c29uYW1lIgorKwlmaQorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgb2JqKQorKyAgICAg IGNhc2UgIiAkZGVwbGlicyIgaW4KKysgICAgICAqXCAtbCogfCAqXCAtTCopCisrCSRlY2hvICIk bW9kZW5hbWU6IHdhcm5pbmc6IFxgLWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0 cyIgMT4mMiA7OworKyAgICAgIGVzYWMKKysKKysgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRk bHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgorKwkkZWNobyAiJG1vZGVu YW1lOiB3YXJuaW5nOiBcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKKysg ICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KKysJJGVjaG8gIiRt b2RlbmFtZTogd2FybmluZzogXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIK KysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgLW4gIiR4cnBhdGgiOyB0aGVuCisrCSRlY2hv ICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLVInIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIK KysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7IHRoZW4KKysJJGVjaG8g IiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBvYmpl Y3RzIiAxPiYyCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkcmVsZWFzZSI7IHRo ZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtcmVsZWFzZScgaXMgaWdub3JlZCBm b3Igb2JqZWN0cyIgMT4mMgorKyAgICAgIGZpCisrCisrICAgICAgY2FzZSAkb3V0cHV0IGluCisr ICAgICAgKi5sbykKKysJaWYgdGVzdCAtbiAiJG9ianMkb2xkX2RlcGxpYnMiOyB0aGVuCisrCSAg JGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxgJG91dHB1dCcg ZnJvbSBub24tbGlidG9vbCBvYmplY3RzIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisr CWZpCisrCWxpYm9iaj0iJG91dHB1dCIKKysJb2JqPWAkZWNobyAiWCRvdXRwdXQiIHwgJFhzZWQg LWUgIiRsbzJvImAKKysJOzsKKysgICAgICAqKQorKwlsaWJvYmo9CisrCW9iaj0iJG91dHB1dCIK KysJOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBEZWxldGUgdGhlIG9sZCBvYmplY3RzLgor KyAgICAgICRydW4gJHJtICRvYmogJGxpYm9iagorKworKyAgICAgICMgT2JqZWN0cyBmcm9tIGNv bnZlbmllbmNlIGxpYnJhcmllcy4gIFRoaXMgYXNzdW1lcworKyAgICAgICMgc2luZ2xlLXZlcnNp b24gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgV2hlbmV2ZXIgd2UgY3JlYXRlCisrICAgICAgIyBk aWZmZXJlbnQgb25lcyBmb3IgUElDL25vbi1QSUMsIHRoaXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNh dGUKKysgICAgICAjIHRoZSBleHRyYWN0aW9uLgorKyAgICAgIHJlbG9hZF9jb252X29ianM9Cisr ICAgICAgZ2VudG9wPQorKyAgICAgICMgcmVsb2FkX2NtZHMgcnVucyAkTEQgZGlyZWN0bHksIHNv IGxldCB1cyBnZXQgcmlkIG9mCisrICAgICAgIyAtV2wgZnJvbSB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYyBhbmQgaG9wZSB3ZSBjYW4gZ2V0IGJ5IHdpdGgKKysgICAgICAjIHR1cm5pbmcgY29tbWEg aW50byBzcGFjZS4uCisrICAgICAgd2w9CisrCisrICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmll bmNlIjsgdGhlbgorKwlpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVu CisrCSAgZXZhbCB0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncz1cIiR3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY1wiCisrCSAgcmVsb2FkX2NvbnZfb2Jqcz0kcmVsb2FkX29ianNcIGAkZWNobyAiWCR0bXBf d2hvbGVfYXJjaGl2ZV9mbGFncyIgfCAkWHNlZCAtZSAnc3wsfCB8ZydgCisrCWVsc2UKKysJICBn ZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b2JqfXgiCisrCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVk ICRnZW50b3AiCisrCisrCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmll bmNlCisrCSAgcmVsb2FkX2NvbnZfb2Jqcz0iJHJlbG9hZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJj aGl2ZXNfcmVzdWx0IgorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgIyBDcmVhdGUgdGhlIG9s ZC1zdHlsZSBvYmplY3QuCisrICAgICAgcmVsb2FkX29ianM9IiRvYmpzJG9sZF9kZXBsaWJzICJg JGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSQnL2Qn IC1lICcvXC5saWIkL2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgIiAkcmVsb2FkX2NvbnZfb2JqcyIg IyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQgcXVvdGluZyB0ZXN0CisrCisrICAgICAgb3V0cHV0 PSIkb2JqIgorKyAgICAgIGNtZHM9JHJlbG9hZF9jbWRzCisrICAgICAgc2F2ZV9pZnM9IiRJRlMi OyBJRlM9J34nCisrICAgICAgZm9yIGNtZCBpbiAkY21kczsgZG8KKysJSUZTPSIkc2F2ZV9pZnMi CisrCWV2YWwgY21kPVwiJGNtZFwiCisrCSRzaG93ICIkY21kIgorKwkkcnVuIGV2YWwgIiRjbWQi IHx8IGV4aXQgJD8KKysgICAgICBkb25lCisrICAgICAgSUZTPSIkc2F2ZV9pZnMiCisrCisrICAg ICAgIyBFeGl0IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCisrICAg ICAgaWYgdGVzdCAteiAiJGxpYm9iaiI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRo ZW4KKysJICAkc2hvdyAiJHtybX1yICRnZW50b3AiCisrCSAgJHJ1biAke3JtfXIgJGdlbnRvcAor KwlmaQorKworKwlleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgICBmaQorKworKyAgICAgIGlmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgorKwlpZiB0ZXN0IC1uICIkZ2Vu dG9wIjsgdGhlbgorKwkgICRzaG93ICIke3JtfXIgJGdlbnRvcCIKKysJICAkcnVuICR7cm19ciAk Z2VudG9wCisrCWZpCisrCisrCSMgQ3JlYXRlIGFuIGludmFsaWQgbGlidG9vbCBvYmplY3QgaWYg bm8gUElDLCBzbyB0aGF0IHdlIGRvbid0CisrCSMgYWNjaWRlbnRhbGx5IGxpbmsgaXQgaW50byBh IHByb2dyYW0uCisrCSMgJHNob3cgImVjaG8gdGltZXN0YW1wID4gJGxpYm9iaiIKKysJIyAkcnVu IGV2YWwgImVjaG8gdGltZXN0YW1wID4gJGxpYm9iaiIgfHwgZXhpdCAkPworKwlleGl0ICRFWElU X1NVQ0NFU1MKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgLW4gIiRwaWNfZmxhZyIgfHwg dGVzdCAiJHBpY19tb2RlIiAhPSBkZWZhdWx0OyB0aGVuCisrCSMgT25seSBkbyBjb21tYW5kcyBp ZiB3ZSByZWFsbHkgaGF2ZSBkaWZmZXJlbnQgUElDIG9iamVjdHMuCisrCXJlbG9hZF9vYmpzPSIk bGlib2JqcyAkcmVsb2FkX2NvbnZfb2JqcyIKKysJb3V0cHV0PSIkbGlib2JqIgorKwljbWRzPSRy ZWxvYWRfY21kcworKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nficKKysJZm9yIGNtZCBpbiAkY21k czsgZG8KKysJICBJRlM9IiRzYXZlX2lmcyIKKysJICBldmFsIGNtZD1cIiRjbWRcIgorKwkgICRz aG93ICIkY21kIgorKwkgICRydW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPworKwlkb25lCisrCUlG Uz0iJHNhdmVfaWZzIgorKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAtbiAiJGdlbnRvcCI7 IHRoZW4KKysJJHNob3cgIiR7cm19ciAkZ2VudG9wIgorKwkkcnVuICR7cm19ciAkZ2VudG9wCisr ICAgICAgZmkKKysKKysgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgICA7OworKworKyAg ICBwcm9nKQorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysJKmN5Z3dpbiopIG91dHB1dD1gJGVjaG8g JG91dHB1dCB8ICR7U0VEfSAtZSAncywuZXhlJCwsO3MsJCwuZXhlLCdgIDs7CisrICAgICAgZXNh YworKyAgICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7IHRoZW4KKysJJGVjaG8gIiRtb2RlbmFtZTog d2FybmluZzogXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIgMT4mMgor KyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCisrCSRlY2hv ICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1z IiAxPiYyCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXM7IHRo ZW4KKysJaWYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHVua25vd24gJiYgdGVzdCAiJGRsb3Bl bl9zZWxmIiA9IHVua25vd24gJiYKKysJICAgdGVzdCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1 bmtub3duOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGBBQ19MSUJUT09M X0RMT1BFTicgbm90IHVzZWQuIEFzc3VtaW5nIG5vIGRsb3BlbiBzdXBwb3J0LiIKKysJZmkKKysg ICAgICBmaQorKworKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqLSotcmhhcHNvZHkqIHwg Ki0qLWRhcndpbjEuWzAxMl0pCisrCSMgT24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5 IGlzIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisrCWNvbXBpbGVfZGVwbGlicz1gJGVjaG8gIlggJGNv bXBpbGVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gLWZyYW1ld29yayBTeXN0ZW0gLydg CisrCWZpbmFsaXplX2RlcGxpYnM9YCRlY2hvICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2Vk IC1lICdzLyAtbGMgLyAtZnJhbWV3b3JrIFN5c3RlbSAvJ2AKKysJOzsKKysgICAgICBlc2FjCisr CisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAgICpkYXJ3aW4qKQorKyAgICAgICAgIyBEb24n dCBhbGxvdyBsYXp5IGxpbmtpbmcsIGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNvbnN0cnVjdG9ycwor KyAgICAgICAgaWYgdGVzdCAiJHRhZ25hbWUiID0gQ1hYIDsgdGhlbgorKyAgICAgICAgY29tcGls ZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKKysgICAgICAg IGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIK KysgICAgICAgIGZpCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysKKysKKysgICAgICAjIG1v dmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5 ZXQKKysgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg bGlicmFyeSBzZWFyY2ggbGlzdAorKyAgICAgIG5ld19saWJzPQorKyAgICAgIGZvciBwYXRoIGlu ICRub3RpbnN0X3BhdGg7IGRvCisrCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkqIiAtTCRwYXRo LyRvYmpkaXIgIiopIDs7CisrCSopCisrCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBpbgor KwkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKKysJICAgIG5ld19saWJzPSIkbmV3X2xpYnMgLUwk cGF0aC8kb2JqZGlyIiA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZG9uZQor KyAgICAgIGZvciBkZXBsaWIgaW4gJGNvbXBpbGVfZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGli IGluCisrCS1MKikKKysJICBjYXNlICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIq KSA7OworKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisr CSAgOzsKKysJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAg ICAgZG9uZQorKyAgICAgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19saWJzIgorKworKworKyAgICAg IGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkY29tcGlsZV9kZXBsaWJzIgorKyAg ICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRmaW5hbGl6ZV9kZXBsaWJz IgorKworKyAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCisrCSMgSWYgdGhl IHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KKysJZm9yIGxp YmRpciBpbiAkcnBhdGggJHhycGF0aDsgZG8KKysJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVz ZSAtcnBhdGguCisrCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGly ICIqKSA7OworKwkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIg OzsKKysJICBlc2FjCisrCWRvbmUKKysgICAgICBmaQorKworKyAgICAgICMgTm93IGhhcmRjb2Rl IHRoZSBsaWJyYXJ5IHBhdGhzCisrICAgICAgcnBhdGg9CisrICAgICAgaGFyZGNvZGVfbGliZGly cz0KKysgICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5hbGl6ZV9ycGF0aDsg ZG8KKysJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisrCSAg aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCSAgICBpZiB0 ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJICAgICAgaGFyZGNvZGVfbGliZGly cz0iJGxpYmRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVu aXF1ZSBsaWJkaXJzLgorKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhh cmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkgICAgICAqIiRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y IiopCisrCQk7OworKwkgICAgICAqKQorKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xp YmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisrCQk7OworKwkgICAgICBl c2FjCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjXCIKKysJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisrCSAgZmkKKysJZWxp ZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrCSAgY2FzZSAiJHBlcm1fcnBhdGggIiBp bgorKwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGgg JGxpYmRpciIgOzsKKysJICBlc2FjCisrCWZpCisrCWNhc2UgJGhvc3QgaW4KKysJKi0qLWN5Z3dp biogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiopCisrCSAgdGVzdGJpbmRpcj1g JGVjaG8gIlgkbGliZGlyIiB8ICRYc2VkIC1lICdzKi9saWIkKi9iaW4qJ2AKKysJICBjYXNlIDok ZGxsc2VhcmNocGF0aDogaW4KKysJICAqIjokbGliZGlyOiIqKSA7OworKwkgICopIGRsbHNlYXJj aHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRsaWJkaXIiOzsKKysJICBlc2FjCisrCSAgY2FzZSA6JGRs bHNlYXJjaHBhdGg6IGluCisrCSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7CisrCSAgKikgZGxsc2Vh cmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JHRlc3RiaW5kaXIiOzsKKysJICBlc2FjCisrCSAgOzsK KysJZXNhYworKyAgICAgIGRvbmUKKysgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBs aWJkaXJzIGludG8gdGhlIHJwYXRoLgorKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIiAmJgorKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisr CWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCisrCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNcIgorKyAgICAgIGZpCisrICAgICAgY29tcGlsZV9ycGF0aD0iJHJwYXRo IgorKworKyAgICAgIHJwYXRoPQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcnM9CisrICAgICAgZm9y IGxpYmRpciBpbiAkZmluYWxpemVfcnBhdGg7IGRvCisrCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yIjsgdGhlbgorKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0 aGVuCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCisrCSAgICBlbHNlCisrCSAg ICAgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KKysJICAgICAgY2FzZSAk aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IgaW4KKysJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJk aXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQorKwkJOzsKKysJICAgICAgKikKKysJCWhh cmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IkbGliZGlyIgorKwkJOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICBlbHNlCisrCSAg ICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCSAgICBycGF0aD0i JHJwYXRoICRmbGFnIgorKwkgIGZpCisrCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhl bgorKwkgIGNhc2UgIiRmaW5hbGl6ZV9wZXJtX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGlyICIq KSA7OworKwkgICopIGZpbmFsaXplX3Blcm1fcnBhdGg9IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRs aWJkaXIiIDs7CisrCSAgZXNhYworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICAjIFN1YnN0aXR1 dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgorKyAgICAgIGlmIHRlc3Qg LW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorKwkgdGVzdCAtbiAiJGhhcmRjb2Rl X2xpYmRpcnMiOyB0aGVuCisrCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCisrCWV2YWwgcnBh dGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorKyAgICAgIGZpCisrICAgICAgZmlu YWxpemVfcnBhdGg9IiRycGF0aCIKKysKKysgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYg dGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKwkjIFRyYW5zZm9ybSBhbGwgdGhl IGxpYnJhcnkgb2JqZWN0cyBpbnRvIHN0YW5kYXJkIG9iamVjdHMuCisrCWNvbXBpbGVfY29tbWFu ZD1gJGVjaG8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIg fCAkTkwyU1BgCisrCWZpbmFsaXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQi IHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKysgICAgICBmaQorKworKyAg ICAgIGRsc3ltcz0KKysgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0 ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgorKwlpZiB0ZXN0IC1uICIkTk0iICYmIHRlc3QgLW4g IiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrCSAgZGxzeW1zPSIke291dHB1dG5hbWV9Uy5j IgorKwllbHNlCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogbm90IGNvbmZpZ3VyZWQgdG8gZXh0cmFj dCBnbG9iYWwgc3ltYm9scyBmcm9tIGRscHJlb3BlbmVkIGZpbGVzIiAxPiYyCisrCWZpCisrICAg ICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkZGxzeW1zIjsgdGhlbgorKwljYXNlICRkbHN5 bXMgaW4KKysJIiIpIDs7CisrCSouYykKKysJICAjIERpc2NvdmVyIHRoZSBubGlzdCBvZiBlYWNo IG9mIHRoZSBkbGZpbGVzLgorKwkgIG5saXN0PSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9 Lm5tIgorKworKwkgICRzaG93ICIkcm0gJG5saXN0ICR7bmxpc3R9UyAke25saXN0fVQiCisrCSAg JHJ1biAkcm0gIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7bmxpc3R9VCIKKysKKysJICAjIFBhcnNl IHRoZSBuYW1lIGxpc3QgaW50byBhIHNvdXJjZSBmaWxlLgorKwkgICRzaG93ICJjcmVhdGluZyAk b3V0cHV0X29iamRpci8kZGxzeW1zIgorKworKwkgIHRlc3QgLXogIiRydW4iICYmICRlY2hvID4g IiRvdXRwdXRfb2JqZGlyLyRkbHN5bXMiICJcCisrLyogJGRsc3ltcyAtIHN5bWJvbCByZXNvbHV0 aW9uIHRhYmxlIGZvciBcYCRvdXRwdXRuYW1lJyBkbHN5bSBlbXVsYXRpb24uICovCisrLyogR2Vu ZXJhdGVkIGJ5ICRQUk9HUkFNIC0gR05VICRQQUNLQUdFICRWRVJTSU9OJFRJTUVTVEFNUCAqLwor KworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiBcIkNcIiB7CisrI2VuZGlmCisrCisrLyog UHJldmVudCB0aGUgb25seSBraW5kIG9mIGRlY2xhcmF0aW9uIGNvbmZsaWN0cyB3ZSBjYW4gbWFr ZS4gKi8KKysjZGVmaW5lIGx0X3ByZWxvYWRlZF9zeW1ib2xzIHNvbWVfb3RoZXJfc3ltYm9sCisr CisrLyogRXh0ZXJuYWwgc3ltYm9sIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGNvbXBpbGVyLiAqL1wK KysiCisrCisrCSAgaWYgdGVzdCAiJGRsc2VsZiIgPSB5ZXM7IHRoZW4KKysJICAgICRzaG93ICJn ZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRvdXRwdXQnIgorKworKwkgICAgdGVzdCAteiAi JHJ1biIgJiYgJGVjaG8gJzogQFBST0dSQU1AICcgPiAiJG5saXN0IgorKworKwkgICAgIyBBZGQg b3VyIG93biBwcm9ncmFtIG9iamVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgorKwkgICAgcHJvZ2Zp bGVzPWAkZWNobyAiWCRvYmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8y byIgfCAkTkwyU1BgCisrCSAgICBmb3IgYXJnIGluICRwcm9nZmlsZXM7IGRvCisrCSAgICAgICRz aG93ICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRhcmcnIgorKwkgICAgICAk cnVuIGV2YWwgIiROTSAkYXJnIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKysJ ICAgIGRvbmUKKysKKysJICAgIGlmIHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCisr CSAgICAgICRydW4gZXZhbCAnJEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlz dCIgPiAiJG5saXN0IlQnCisrCSAgICAgICRydW4gZXZhbCAnJG12ICIkbmxpc3QiVCAiJG5saXN0 IicKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgi OyB0aGVuCisrCSAgICAgICRydW4gZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVn ZXgiICIkbmxpc3QiID4gIiRubGlzdCJUJworKwkgICAgICAkcnVuIGV2YWwgJyRtdiAiJG5saXN0 IlQgIiRubGlzdCInCisrCSAgICBmaQorKworKwkgICAgIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4 cG9ydGVkIHN5bWJvbHMKKysJICAgIGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4K KysJICAgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIK KysJICAgICAgJHJ1biAkcm0gJGV4cG9ydF9zeW1ib2xzCisrCSAgICAgICRydW4gZXZhbCAiJHtT RUR9IC1uIC1lICcvXjogQFBST0dSQU1AICQvZCcgLWUgJ3MvXi4qIFwoLipcKSQvXDEvcCcgIic8 ICIkbmxpc3QiID4gIiRleHBvcnRfc3ltYm9scyInCisrICAgICAgICAgICAgICBjYXNlICRob3N0 IGluCisrICAgICAgICAgICAgICAqY3lnd2luKiB8ICptaW5ndyogKQorKwkgICAgICAgICRydW4g ZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicK KysJCSRydW4gZXZhbCAnY2F0ICIkZXhwb3J0X3N5bWJvbHMiID4+ICIkb3V0cHV0X29iamRpci8k b3V0cHV0bmFtZS5kZWYiJworKyAgICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgICAgZXNh YworKwkgICAgZWxzZQorKwkgICAgICAkcnVuIGV2YWwgIiR7U0VEfSAtZSAncy9cKFtdLlsqXiRd XCkvXFxcXFwxL2cnIC1lICdzL14vIC8nIC1lICdzLyQvJC8nIicgPCAiJGV4cG9ydF9zeW1ib2xz IiA+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiJworKwkgICAgICAkcnVuIGV2YWwg J2dyZXAgLWYgIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ICIk bmxpc3QiVCcKKysJICAgICAgJHJ1biBldmFsICdtdiAiJG5saXN0IlQgIiRubGlzdCInCisrICAg ICAgICAgICAgICBjYXNlICRob3N0IGluCisrICAgICAgICAgICAgICAqY3lnd2luKiB8ICptaW5n dyogKQorKwkgICAgICAgICRydW4gZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpk aXIvJG91dHB1dG5hbWUuZGVmIicKKysJCSRydW4gZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0 cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKyAgICAgICAgICAgICAgICA7OworKyAgICAg ICAgICAgICAgZXNhYworKwkgICAgZmkKKysJICBmaQorKworKwkgIGZvciBhcmcgaW4gJGRscHJl ZmlsZXM7IGRvCisrCSAgICAkc2hvdyAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20g XGAkYXJnJyIKKysJICAgIG5hbWU9YCRlY2hvICIkYXJnIiB8ICR7U0VEfSAtZSAncyVeLiovJSUn YAorKwkgICAgJHJ1biBldmFsICckZWNobyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJworKwkgICAg JHJ1biBldmFsICIkTk0gJGFyZyB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCisr CSAgZG9uZQorKworKwkgIGlmIHRlc3QgLXogIiRydW4iOyB0aGVuCisrCSAgICAjIE1ha2Ugc3Vy ZSB3ZSBoYXZlIGF0IGxlYXN0IGFuIGVtcHR5IGZpbGUuCisrCSAgICB0ZXN0IC1mICIkbmxpc3Qi IHx8IDogPiAiJG5saXN0IgorKworKwkgICAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7 IHRoZW4KKysJICAgICAgJEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIg PiAiJG5saXN0IlQKKysJICAgICAgJG12ICIkbmxpc3QiVCAiJG5saXN0IgorKwkgICAgZmkKKysK KysJICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisrCSAgICBp ZiBncmVwIC12ICJeOiAiIDwgIiRubGlzdCIgfAorKwkJaWYgc29ydCAtayAzIDwvZGV2L251bGwg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQkgIHNvcnQgLWsgMworKwkJZWxzZQorKwkJICBzb3J0 ICsyCisrCQlmaSB8CisrCQl1bmlxID4gIiRubGlzdCJTOyB0aGVuCisrCSAgICAgIDoKKysJICAg IGVsc2UKKysJICAgICAgZ3JlcCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRubGlzdCJTCisrCSAg ICBmaQorKworKwkgICAgaWYgdGVzdCAtZiAiJG5saXN0IlM7IHRoZW4KKysJICAgICAgZXZhbCAi JGdsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3QiUyA+PiAiJG91dHB1dF9vYmpkaXIv JGRsc3ltcyInCisrCSAgICBlbHNlCisrCSAgICAgICRlY2hvICcvKiBOT05FICovJyA+PiAiJG91 dHB1dF9vYmpkaXIvJGRsc3ltcyIKKysJICAgIGZpCisrCisrCSAgICAkZWNobyA+PiAiJG91dHB1 dF9vYmpkaXIvJGRsc3ltcyIgIlwKKysKKysjdW5kZWYgbHRfcHJlbG9hZGVkX3N5bWJvbHMKKysK KysjaWYgZGVmaW5lZCAoX19TVERDX18pICYmIF9fU1REQ19fCisrIyBkZWZpbmUgbHRfcHRyIHZv aWQgKgorKyNlbHNlCisrIyBkZWZpbmUgbHRfcHRyIGNoYXIgKgorKyMgZGVmaW5lIGNvbnN0Cisr I2VuZGlmCisrCisrLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJv bHMuICovCisrIgorKworKwkgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgKmN5Z3dpbiogfCAqbWlu Z3cqICkKKysJICAkZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKKysvKiBEQVRB IGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMyIGNhbid0IGJlIGNvbnN0LCBiZWNhdXNlCisrICAg cnVudGltZSByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRp b24KKysgICBvbiBwc2V1ZG8tcmVsb2NzICovCisrc3RydWN0IHsKKysiCisrCSAgICAgIDs7Cisr CSAgICAqICkKKysJICAkZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKKytjb25z dCBzdHJ1Y3QgeworKyIKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysKKysKKysJICAkZWNobyA+ PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICBs dF9wdHIgYWRkcmVzczsKKyt9CisrbHRfcHJlbG9hZGVkX3N5bWJvbHNbXSA9Cisre1wKKysiCisr CisrCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyIgPCAiJG5saXN0 IiA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIKKysKKysJICAgICRlY2hvID4+ICIkb3V0cHV0 X29iamRpci8kZGxzeW1zIiAiXAorKyAgezAsIChsdF9wdHIpIDB9CisrfTsKKysKKysvKiBUaGlz IHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZkZWYgRlJF RUJTRF9XT1JLQVJPVU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgp IHsKKysgIHJldHVybiBsdF9wcmVsb2FkZWRfc3ltYm9sczsKKyt9CisrI2VuZGlmCisrCisrI2lm ZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZlwKKysiCisrCSAgZmkKKysKKysJICBwaWNfZmxh Z19mb3Jfc3ltdGFibGU9CisrCSAgY2FzZSAkaG9zdCBpbgorKwkgICMgY29tcGlsaW5nIHRoZSBz eW1ib2wgdGFibGUgZmlsZSB3aXRoIHBpY19mbGFnIHdvcmtzIGFyb3VuZAorKwkgICMgYSBGcmVl QlNEIGJ1ZyB0aGF0IGNhdXNlcyBwcm9ncmFtcyB0byBjcmFzaCB3aGVuIC1sbSBpcworKwkgICMg bGlua2VkIGJlZm9yZSBhbnkgb3RoZXIgUElDIG9iamVjdC4gIEJ1dCB3ZSBtdXN0IG5vdCB1c2UK KysJICAjIHBpY19mbGFnIHdoZW4gbGlua2luZyB3aXRoIC1zdGF0aWMuICBUaGUgcHJvYmxlbSBl eGlzdHMgaW4KKysJICAjIEZyZWVCU0QgMi4yLjYgYW5kIGlzIGZpeGVkIGluIEZyZWVCU0QgMy4x LgorKwkgICotKi1mcmVlYnNkMip8Ki0qLWZyZWVic2QzLjAqfCotKi1mcmVlYnNkZWxmMy4wKikK KysJICAgIGNhc2UgIiRjb21waWxlX2NvbW1hbmQgIiBpbgorKwkgICAgKiIgLXN0YXRpYyAiKikg OzsKKysJICAgICopIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyAtREZSRUVCU0Rf V09SS0FST1VORCI7OworKwkgICAgZXNhYzs7CisrCSAgKi0qLWhwdXgqKQorKwkgICAgY2FzZSAi JGNvbXBpbGVfY29tbWFuZCAiIGluCisrCSAgICAqIiAtc3RhdGljICIqKSA7OworKwkgICAgKikg cGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFnIjs7CisrCSAgICBlc2FjCisrCSAgZXNh YworKworKwkgICMgTm93IGNvbXBpbGUgdGhlIGR5bmFtaWMgc3ltYm9sIGZpbGUuCisrCSAgJHNo b3cgIihjZCAkb3V0cHV0X29iamRpciAmJiAkTFRDQyAgJExUQ0ZMQUdTIC1jJG5vX2J1aWx0aW5f ZmxhZyRwaWNfZmxhZ19mb3Jfc3ltdGFibGUgXCIkZGxzeW1zXCIpIgorKwkgICRydW4gZXZhbCAn KGNkICRvdXRwdXRfb2JqZGlyICYmICRMVENDICAkTFRDRkxBR1MgLWMkbm9fYnVpbHRpbl9mbGFn JHBpY19mbGFnX2Zvcl9zeW10YWJsZSAiJGRsc3ltcyIpJyB8fCBleGl0ICQ/CisrCisrCSAgIyBD bGVhbiB1cCB0aGUgZ2VuZXJhdGVkIGZpbGVzLgorKwkgICRzaG93ICIkcm0gJG91dHB1dF9vYmpk aXIvJGRsc3ltcyAkbmxpc3QgJHtubGlzdH1TICR7bmxpc3R9VCIKKysJICAkcnVuICRybSAiJG91 dHB1dF9vYmpkaXIvJGRsc3ltcyIgIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7bmxpc3R9VCIKKysK KysJICAjIFRyYW5zZm9ybSB0aGUgc3ltYm9sIGZpbGUgaW50byB0aGUgY29ycmVjdCBuYW1lLgor KyAgICAgICAgICBjYXNlICRob3N0IGluCisrICAgICAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiAp CisrICAgICAgICAgICAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfS5k ZWYiIDsgdGhlbgorKyAgICAgICAgICAgICAgY29tcGlsZV9jb21tYW5kPWAkZWNobyAiWCRjb21w aWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2Jq ZGlyLyR7b3V0cHV0bmFtZX0uZGVmICRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2Jq ZXh0fSUiIHwgJE5MMlNQYAorKyAgICAgICAgICAgICAgZmluYWxpemVfY29tbWFuZD1gJGVjaG8g IlgkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91 dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfS5kZWYgJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1l fVMuJHtvYmpleHR9JSIgfCAkTkwyU1BgCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAg ICAgY29tcGlsZV9jb21tYW5kPWAkZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwg JFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2Jq ZXh0fSUiIHwgJE5MMlNQYAorKyAgICAgICAgICAgICAgZmluYWxpemVfY29tbWFuZD1gJGVjaG8g IlgkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91 dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9JSIgfCAkTkwyU1BgCisrICAgICAg ICAgICAgIGZpCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAgKiApCisrICAgICAgICAgICAg Y29tcGlsZV9jb21tYW5kPWAkZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhz ZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0 fSUiIHwgJE5MMlNQYAorKyAgICAgICAgICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRlY2hvICJYJGZp bmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRf b2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAorKyAgICAgICAgICAg IDs7CisrICAgICAgICAgIGVzYWMKKysJICA7OworKwkqKQorKwkgICRlY2hvICIkbW9kZW5hbWU6 IHVua25vd24gc3VmZml4IGZvciBcYCRkbHN5bXMnIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlM VVJFCisrCSAgOzsKKysJZXNhYworKyAgICAgIGVsc2UKKysJIyBXZSBrZWVwIGdvaW5nIGp1c3Qg aW4gY2FzZSB0aGUgdXNlciBkaWRuJ3QgcmVmZXIgdG8KKysJIyBsdF9wcmVsb2FkZWRfc3ltYm9s cy4gIFRoZSBsaW5rZXIgd2lsbCBmYWlsIGlmIGdsb2JhbF9zeW1ib2xfcGlwZQorKwkjIHJlYWxs eSB3YXMgcmVxdWlyZWQuCisrCisrCSMgTnVsbGlmeSB0aGUgc3ltYm9sIGZpbGUuCisrCWNvbXBp bGVfY29tbWFuZD1gJGVjaG8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1l ICJzJSBAU1lNRklMRUAlJSIgfCAkTkwyU1BgCisrCWZpbmFsaXplX2NvbW1hbmQ9YCRlY2hvICJY JGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlIiB8 ICROTDJTUGAKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRuZWVkX3JlbGluayIgPSBu byB8fCB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KKysJIyBSZXBsYWNl IHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgorKwljb21waWxlX2NvbW1hbmQ9YCRlY2hv ICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRv dXRwdXQiJyVnJyB8ICROTDJTUGAKKysJbGlua19jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kJGNv bXBpbGVfcnBhdGgiCisrCisrCSMgV2UgaGF2ZSBubyB1bmluc3RhbGxlZCBsaWJyYXJ5IGRlcGVu ZGVuY2llcywgc28gZmluYWxpemUgcmlnaHQgbm93LgorKwkkc2hvdyAiJGxpbmtfY29tbWFuZCIK KysJJHJ1biBldmFsICIkbGlua19jb21tYW5kIgorKwlleGl0X3N0YXR1cz0kPworKworKwkjIERl bGV0ZSB0aGUgZ2VuZXJhdGVkIGZpbGVzLgorKwlpZiB0ZXN0IC1uICIkZGxzeW1zIjsgdGhlbgor KwkgICRzaG93ICIkcm0gJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9Igor KwkgICRydW4gJHJtICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iCisr CWZpCisrCisrCWV4aXQgJGV4aXRfc3RhdHVzCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0 IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKysJIyBXZSBzaG91bGQgc2V0IHRoZSBzaGxpYnBh dGhfdmFyCisrCXJwYXRoPQorKwlmb3IgZGlyIGluICR0ZW1wX3JwYXRoOyBkbworKwkgIGNhc2Ug JGRpciBpbgorKwkgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikKKysJICAgICMgQWJzb2x1dGUg cGF0aC4KKysJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICAgIDs7CisrCSAgKikKKysJICAg ICMgUmVsYXRpdmUgcGF0aDogYWRkIGEgdGhpc2RpciBlbnRyeS4KKysJICAgIHJwYXRoPSIkcnBh dGhcJHRoaXNkaXIvJGRpcjoiCisrCSAgICA7OworKwkgIGVzYWMKKysJZG9uZQorKwl0ZW1wX3Jw YXRoPSIkcnBhdGgiCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkY29tcGlsZV9z aGxpYnBhdGgkZmluYWxpemVfc2hsaWJwYXRoIjsgdGhlbgorKwljb21waWxlX2NvbW1hbmQ9IiRz aGxpYnBhdGhfdmFyPVwiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aFwkJHNo bGlicGF0aF92YXJcIiAkY29tcGlsZV9jb21tYW5kIgorKyAgICAgIGZpCisrICAgICAgaWYgdGVz dCAtbiAiJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4KKysJZmluYWxpemVfY29tbWFuZD0iJHNo bGlicGF0aF92YXI9XCIkZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRmaW5h bGl6ZV9jb21tYW5kIgorKyAgICAgIGZpCisrCisrICAgICAgY29tcGlsZV92YXI9CisrICAgICAg ZmluYWxpemVfdmFyPQorKyAgICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJ aWYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCisrCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBy dW5wYXRoX3Zhci4KKysJICBycGF0aD0KKysJICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbwor KwkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorKwkgIGRvbmUKKysJICBjb21waWxlX3Zhcj0iJHJ1 bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCisrCWZpCisrCWlmIHRlc3QgLW4g IiRmaW5hbGl6ZV9wZXJtX3JwYXRoIjsgdGhlbgorKwkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVu cGF0aF92YXIuCisrCSAgcnBhdGg9CisrCSAgZm9yIGRpciBpbiAkZmluYWxpemVfcGVybV9ycGF0 aDsgZG8KKysJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICBkb25lCisrCSAgZmluYWxpemVf dmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhcJCRydW5wYXRoX3ZhclwiICIKKysJZmkKKysgICAg ICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRub19pbnN0YWxsIiA9IHllczsgdGhlbgorKwkjIFdl IGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBzY3JpcHQuCisrCWxpbmtfY29tbWFuZD0i JGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwkjIFJlcGxhY2Ug dGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisrCWxpbmtfY29tbWFuZD1gJGVjaG8gIlgk bGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorKwkj IERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlLgorKwkkcnVuICRybSAkb3V0cHV0CisrCSMgTGlu ayB0aGUgZXhlY3V0YWJsZSBhbmQgZXhpdAorKwkkc2hvdyAiJGxpbmtfY29tbWFuZCIKKysJJHJ1 biBldmFsICIkbGlua19jb21tYW5kIiB8fCBleGl0ICQ/CisrCWV4aXQgJEVYSVRfU1VDQ0VTUwor KyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbms7 IHRoZW4KKysJIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisrCWxpbmtfY29t bWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwlyZWxp bmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRo IgorKworKwkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiB0aGlzIHBsYXRmb3JtIGRvZXMgbm90 IGxpa2UgdW5pbnN0YWxsZWQgc2hhcmVkIGxpYnJhcmllcyIgMT4mMgorKwkkZWNobyAiJG1vZGVu YW1lOiBcYCRvdXRwdXQnIHdpbGwgYmUgcmVsaW5rZWQgZHVyaW5nIGluc3RhbGxhdGlvbiIgMT4m MgorKyAgICAgIGVsc2UKKysJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KKysJ ICBsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3Jw YXRoIgorKwkgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgICByZWxp bmtfY29tbWFuZD1gJGVjaG8gIlgkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVf cnBhdGgiIHwgJFNQMk5MIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVn JyB8ICROTDJTUGAKKysJICBlbHNlCisrCSAgICAjIGZhc3RfaW5zdGFsbCBpcyBzZXQgdG8gbmVl ZGxlc3MKKysJICAgIHJlbGlua19jb21tYW5kPQorKwkgIGZpCisrCWVsc2UKKysJICBsaW5rX2Nv bW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKysJICBy ZWxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3Jw YXRoIgorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmls ZSBzcGVjaWZpY2F0aW9uLgorKyAgICAgIGxpbmtfY29tbWFuZD1gJGVjaG8gIlgkbGlua19jb21t YW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUi JyVnJ2AKKysKKysgICAgICAjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlcy4KKysgICAgICAk cnVuICRybSAkb3V0cHV0ICRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lICRvdXRwdXRfb2JqZGly L2x0LSRvdXRwdXRuYW1lCisrCisrICAgICAgJHNob3cgIiRsaW5rX2NvbW1hbmQiCisrICAgICAg JHJ1biBldmFsICIkbGlua19jb21tYW5kIiB8fCBleGl0ICQ/CisrCisrICAgICAgIyBOb3cgY3Jl YXRlIHRoZSB3cmFwcGVyIHNjcmlwdC4KKysgICAgICAkc2hvdyAiY3JlYXRpbmcgJG91dHB1dCIK KysKKysgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCisrICAg ICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkjIFByZXNlcnZlIGFueSB2 YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisrCWZvciB2YXIgaW4g JHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbworKwkgIGlmIGV2YWwgdGVzdCAteiBcIlwk eyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7 JHZhcitzZXR9XCIgfHwgdW5zZXQgJHZhciB8fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsg JHJlbGlua19jb21tYW5kIgorKwkgIGVsaWYgZXZhbCB2YXJfdmFsdWU9XCQkdmFyOyB0ZXN0IC16 ICIkdmFyX3ZhbHVlIjsgdGhlbgorKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQg JHZhcjsgJHJlbGlua19jb21tYW5kIgorKwkgIGVsc2UKKysJICAgIHZhcl92YWx1ZT1gJGVjaG8g IlgkdmFyX3ZhbHVlIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysJICAgIHJlbGlu a19jb21tYW5kPSIkdmFyPVwiJHZhcl92YWx1ZVwiOyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21t YW5kIgorKwkgIGZpCisrCWRvbmUKKysJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlu a19jb21tYW5kKSIKKysJcmVsaW5rX2NvbW1hbmQ9YCRlY2hvICJYJHJlbGlua19jb21tYW5kIiB8 ICRTUDJOTCB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0IiB8ICROTDJTUGAKKysgICAgICBm aQorKworKyAgICAgICMgUXVvdGUgJGVjaG8gZm9yIHNoaXBwaW5nLgorKyAgICAgIGlmIHRlc3Qg IlgkZWNobyIgPSAiWCRTSEVMTCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjsgdGhlbgorKwlj YXNlICRwcm9ncGF0aCBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHFlY2hvPSIkU0hF TEwgJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7OworKwkqKSBxZWNobz0iJFNIRUxMIGBwd2Rg LyRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsKKysJZXNhYworKwlxZWNobz1gJGVjaG8gIlgk cWVjaG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGVsc2UKKysJcWVj aG89YCRlY2hvICJYJGVjaG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAg IGZpCisrCisrICAgICAgIyBPbmx5IGFjdHVhbGx5IGRvIHRoaW5ncyBpZiBvdXIgcnVuIGNvbW1h bmQgaXMgbm9uLW51bGwuCisrICAgICAgaWYgdGVzdCAteiAiJHJ1biI7IHRoZW4KKysJIyB3aW4z MiB3aWxsIHRoaW5rIHRoZSBzY3JpcHQgaXMgYSBiaW5hcnkgaWYgaXQgaGFzCisrCSMgYSAuZXhl IHN1ZmZpeCwgc28gd2Ugc3RyaXAgaXQgb2ZmIGhlcmUuCisrCWNhc2UgJG91dHB1dCBpbgorKwkg ICouZXhlKSBvdXRwdXQ9YCRlY2hvICRvdXRwdXR8JHtTRUR9ICdzLC5leGUkLCwnYCA7OworKwll c2FjCisrCSMgdGVzdCBmb3IgY3lnd2luIGJlY2F1c2UgbXYgZmFpbHMgdy9vIC5leGUgZXh0ZW5z aW9ucworKwljYXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiopCisrCSAgICBleGVleHQ9LmV4ZQor KwkgICAgb3V0cHV0bmFtZT1gJGVjaG8gJG91dHB1dG5hbWV8JHtTRUR9ICdzLC5leGUkLCwnYCA7 OworKwkgICopIGV4ZWV4dD0gOzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisrCSAgKmN5Z3dp biogfCAqbWluZ3cqICkKKysgICAgICAgICAgICBvdXRwdXRfbmFtZT1gYmFzZW5hbWUgJG91dHB1 dGAKKysgICAgICAgICAgICBvdXRwdXRfcGF0aD1gZGlybmFtZSAkb3V0cHV0YAorKyAgICAgICAg ICAgIGN3cmFwcGVyc291cmNlPSIkb3V0cHV0X3BhdGgvJG9iamRpci9sdC0kb3V0cHV0X25hbWUu YyIKKysgICAgICAgICAgICBjd3JhcHBlcj0iJG91dHB1dF9wYXRoLyRvdXRwdXRfbmFtZS5leGUi CisrICAgICAgICAgICAgJHJtICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXIKKysgICAgICAgICAg ICB0cmFwICIkcm0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcjsgZXhpdCAkRVhJVF9GQUlMVVJF IiAxIDIgMTUKKysKKysJICAgIGNhdCA+ICRjd3JhcHBlcnNvdXJjZSA8PEVPRgorKworKy8qICRj d3JhcHBlcnNvdXJjZSAtIHRlbXBvcmFyeSB3cmFwcGVyIGV4ZWN1dGFibGUgZm9yICRvYmpkaXIv JG91dHB1dG5hbWUKKysgICBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gLSBHTlUgJFBBQ0tBR0UgJFZF UlNJT04kVElNRVNUQU1QCisrCisrICAgVGhlICRvdXRwdXQgcHJvZ3JhbSBjYW5ub3QgYmUgZGly ZWN0bHkgZXhlY3V0ZWQgdW50aWwgYWxsIHRoZSBsaWJ0b29sCisrICAgbGlicmFyaWVzIHRoYXQg aXQgZGVwZW5kcyBvbiBhcmUgaW5zdGFsbGVkLgorKworKyAgIFRoaXMgd3JhcHBlciBleGVjdXRh YmxlIHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysg ICBJZiBpdCBpcywgaXQgd2lsbCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCisrCisrICAgQ3VycmVu dGx5LCBpdCBzaW1wbHkgZXhlY3MgdGhlIHdyYXBwZXIgKnNjcmlwdCogIi9iaW4vc2ggJG91dHB1 dCIsCisrICAgYnV0IGNvdWxkIGV2ZW50dWFsbHkgYWJzb3JiIGFsbCBvZiB0aGUgc2NyaXB0cyBm dW5jdGlvbmFsaXR5IGFuZAorKyAgIGV4ZWMgJG9iamRpci8kb3V0cHV0bmFtZSBkaXJlY3RseS4K KysqLworK0VPRgorKwkgICAgY2F0ID4+ICRjd3JhcHBlcnNvdXJjZTw8IkVPRiIKKysjaW5jbHVk ZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHVuaXN0ZC5oPgor KyNpbmNsdWRlIDxtYWxsb2MuaD4KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPGFz c2VydC5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5j bHVkZSA8c3lzL3N0YXQuaD4KKysKKysjaWYgZGVmaW5lZChQQVRIX01BWCkKKysjIGRlZmluZSBM VF9QQVRITUFYIFBBVEhfTUFYCisrI2VsaWYgZGVmaW5lZChNQVhQQVRITEVOKQorKyMgZGVmaW5l IExUX1BBVEhNQVggTUFYUEFUSExFTgorKyNlbHNlCisrIyBkZWZpbmUgTFRfUEFUSE1BWCAxMDI0 CisrI2VuZGlmCisrCisrI2lmbmRlZiBESVJfU0VQQVJBVE9SCisrIyBkZWZpbmUgRElSX1NFUEFS QVRPUiAnLycKKysjIGRlZmluZSBQQVRIX1NFUEFSQVRPUiAnOicKKysjZW5kaWYKKysKKysjaWYg ZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfX01TRE9TX18pIHx8IGRlZmluZWQgKF9fREpH UFBfXykgfHwgXAorKyAgZGVmaW5lZCAoX19PUzJfXykKKysjIGRlZmluZSBIQVZFX0RPU19CQVNF RF9GSUxFX1NZU1RFTQorKyMgaWZuZGVmIERJUl9TRVBBUkFUT1JfMgorKyMgIGRlZmluZSBESVJf U0VQQVJBVE9SXzIgJ1xcJworKyMgZW5kaWYKKysjIGlmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCisr IyAgZGVmaW5lIFBBVEhfU0VQQVJBVE9SXzIgJzsnCisrIyBlbmRpZgorKyNlbmRpZgorKworKyNp Zm5kZWYgRElSX1NFUEFSQVRPUl8yCisrIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihjaCkgKChj aCkgPT0gRElSX1NFUEFSQVRPUikKKysjZWxzZSAvKiBESVJfU0VQQVJBVE9SXzIgKi8KKysjIGRl ZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSBcCisrICAgICAgICAoKChjaCkgPT0gRElSX1NFUEFS QVRPUikgfHwgKChjaCkgPT0gRElSX1NFUEFSQVRPUl8yKSkKKysjZW5kaWYgLyogRElSX1NFUEFS QVRPUl8yICovCisrCisrI2lmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCisrIyBkZWZpbmUgSVNfUEFU SF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQQVJBVE9SKQorKyNlbHNlIC8qIFBBVEhf U0VQQVJBVE9SXzIgKi8KKysjIGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkgPT0g UEFUSF9TRVBBUkFUT1JfMikKKysjZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLworKworKyNk ZWZpbmUgWE1BTExPQyh0eXBlLCBudW0pICAgICAgKCh0eXBlICopIHhtYWxsb2MgKChudW0pICog c2l6ZW9mKHR5cGUpKSkKKysjZGVmaW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKKysgIGlmIChzdGFs ZSkgeyBmcmVlICgodm9pZCAqKSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCisrfSB3aGlsZSAoMCkK KysKKysvKiAtRERFQlVHIGlzIGZhaXJseSBjb21tb24gaW4gQ0ZMQUdTLiAgKi8KKysjdW5kZWYg REVCVUcKKysjaWYgZGVmaW5lZCBERUJVR1dSQVBQRVIKKysjIGRlZmluZSBERUJVRyhmb3JtYXQs IC4uLikgZnByaW50ZihzdGRlcnIsIGZvcm1hdCwgX19WQV9BUkdTX18pCisrI2Vsc2UKKysjIGRl ZmluZSBERUJVRyhmb3JtYXQsIC4uLikKKysjZW5kaWYKKysKKytjb25zdCBjaGFyICpwcm9ncmFt X25hbWUgPSBOVUxMOworKworK3ZvaWQgKiB4bWFsbG9jIChzaXplX3QgbnVtKTsKKytjaGFyICog eHN0cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKTsKKytjb25zdCBjaGFyICogYmFzZV9uYW1lIChj b25zdCBjaGFyICpuYW1lKTsKKytjaGFyICogZmluZF9leGVjdXRhYmxlKGNvbnN0IGNoYXIgKndy YXBwZXIpOworK2ludCAgICBjaGVja19leGVjdXRhYmxlKGNvbnN0IGNoYXIgKnBhdGgpOworK2No YXIgKiBzdHJlbmR6YXAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpOworK3ZvaWQgbHRfZmF0 YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLik7CisrCisraW50CisrbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKKyt7CisrICBjaGFyICoqbmV3YXJnejsKKysgIGludCBpOworKworKyAg cHJvZ3JhbV9uYW1lID0gKGNoYXIgKikgeHN0cmR1cCAoYmFzZV9uYW1lIChhcmd2WzBdKSk7Cisr ICBERUJVRygiKG1haW4pIGFyZ3ZbMF0gICAgICA6ICVzXG4iLGFyZ3ZbMF0pOworKyAgREVCVUco IihtYWluKSBwcm9ncmFtX25hbWUgOiAlc1xuIixwcm9ncmFtX25hbWUpOworKyAgbmV3YXJneiA9 IFhNQUxMT0MoY2hhciAqLCBhcmdjKzIpOworK0VPRgorKworKyAgICAgICAgICAgIGNhdCA+PiAk Y3dyYXBwZXJzb3VyY2UgPDxFT0YKKysgIG5ld2FyZ3pbMF0gPSAoY2hhciAqKSB4c3RyZHVwKCIk U0hFTEwiKTsKKytFT0YKKysKKysgICAgICAgICAgICBjYXQgPj4gJGN3cmFwcGVyc291cmNlIDw8 IkVPRiIKKysgIG5ld2FyZ3pbMV0gPSBmaW5kX2V4ZWN1dGFibGUoYXJndlswXSk7CisrICBpZiAo bmV3YXJnelsxXSA9PSBOVUxMKQorKyAgICBsdF9mYXRhbCgiQ291bGRuJ3QgZmluZCAlcyIsIGFy Z3ZbMF0pOworKyAgREVCVUcoIihtYWluKSBmb3VuZCBleGUgYXQgOiAlc1xuIixuZXdhcmd6WzFd KTsKKysgIC8qIHdlIGtub3cgdGhlIHNjcmlwdCBoYXMgdGhlIHNhbWUgbmFtZSwgd2l0aG91dCB0 aGUgLmV4ZSAqLworKyAgLyogc28gbWFrZSBzdXJlIG5ld2FyZ3pbMV0gZG9lc24ndCBlbmQgaW4g LmV4ZSAqLworKyAgc3RyZW5kemFwKG5ld2FyZ3pbMV0sIi5leGUiKTsKKysgIGZvciAoaSA9IDE7 IGkgPCBhcmdjOyBpKyspCisrICAgIG5ld2FyZ3pbaSsxXSA9IHhzdHJkdXAoYXJndltpXSk7Cisr ICBuZXdhcmd6W2FyZ2MrMV0gPSBOVUxMOworKworKyAgZm9yIChpPTA7IGk8YXJnYysxOyBpKysp CisrICB7CisrICAgIERFQlVHKCIobWFpbikgbmV3YXJnelslZF0gICA6ICVzXG4iLGksbmV3YXJn eltpXSk7CisrICAgIDsKKysgIH0KKysKKytFT0YKKysKKysgICAgICAgICAgICBjYXNlICRob3N0 X29zIGluCisrICAgICAgICAgICAgICBtaW5ndyopCisrICAgICAgICAgICAgICAgIGNhdCA+PiAk Y3dyYXBwZXJzb3VyY2UgPDxFT0YKKysgIGV4ZWN2KCIkU0hFTEwiLChjaGFyIGNvbnN0ICoqKW5l d2FyZ3opOworK0VPRgorKyAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgICopCisrICAg ICAgICAgICAgICAgIGNhdCA+PiAkY3dyYXBwZXJzb3VyY2UgPDxFT0YKKysgIGV4ZWN2KCIkU0hF TEwiLG5ld2FyZ3opOworK0VPRgorKyAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICBlc2Fj CisrCisrICAgICAgICAgICAgY2F0ID4+ICRjd3JhcHBlcnNvdXJjZSA8PCJFT0YiCisrICByZXR1 cm4gMTI3OworK30KKysKKyt2b2lkICoKKyt4bWFsbG9jIChzaXplX3QgbnVtKQorK3sKKysgIHZv aWQgKiBwID0gKHZvaWQgKikgbWFsbG9jIChudW0pOworKyAgaWYgKCFwKQorKyAgICBsdF9mYXRh bCAoIk1lbW9yeSBleGhhdXN0ZWQiKTsKKysKKysgIHJldHVybiBwOworK30KKysKKytjaGFyICoK Kyt4c3RyZHVwIChjb25zdCBjaGFyICpzdHJpbmcpCisreworKyAgcmV0dXJuIHN0cmluZyA/IHN0 cmNweSAoKGNoYXIgKikgeG1hbGxvYyAoc3RybGVuIChzdHJpbmcpICsgMSksIHN0cmluZykgOiBO VUxMCisrOworK30KKysKKytjb25zdCBjaGFyICoKKytiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5h bWUpCisreworKyAgY29uc3QgY2hhciAqYmFzZTsKKysKKysjaWYgZGVmaW5lZCAoSEFWRV9ET1Nf QkFTRURfRklMRV9TWVNURU0pCisrICAvKiBTa2lwIG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RP UyBwYXRobmFtZXMuICovCisrICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpbmFtZVswXSkg JiYgbmFtZVsxXSA9PSAnOicpCisrICAgIG5hbWUgKz0gMjsKKysjZW5kaWYKKysKKysgIGZvciAo YmFzZSA9IG5hbWU7ICpuYW1lOyBuYW1lKyspCisrICAgIGlmIChJU19ESVJfU0VQQVJBVE9SICgq bmFtZSkpCisrICAgICAgYmFzZSA9IG5hbWUgKyAxOworKyAgcmV0dXJuIGJhc2U7CisrfQorKwor K2ludAorK2NoZWNrX2V4ZWN1dGFibGUoY29uc3QgY2hhciAqIHBhdGgpCisreworKyAgc3RydWN0 IHN0YXQgc3Q7CisrCisrICBERUJVRygiKGNoZWNrX2V4ZWN1dGFibGUpICA6ICVzXG4iLCBwYXRo ID8gKCpwYXRoID8gcGF0aCA6ICJFTVBUWSEiKSA6ICJOVUxMISIpOworKyAgaWYgKCghcGF0aCkg fHwgKCEqcGF0aCkpCisrICAgIHJldHVybiAwOworKworKyAgaWYgKChzdGF0IChwYXRoLCAmc3Qp ID49IDApICYmCisrICAgICAgKAorKyAgICAgICAgLyogTWluR1cgJiBuYXRpdmUgV0lOMzIgZG8g bm90IHN1cHBvcnQgU19JWE9USCBvciBTX0lYR1JQICovCisrI2lmIGRlZmluZWQgKFNfSVhPVEgp CisrICAgICAgICgoc3Quc3RfbW9kZSAmIFNfSVhPVEgpID09IFNfSVhPVEgpIHx8CisrI2VuZGlm CisrI2lmIGRlZmluZWQgKFNfSVhHUlApCisrICAgICAgICgoc3Quc3RfbW9kZSAmIFNfSVhHUlAp ID09IFNfSVhHUlApIHx8CisrI2VuZGlmCisrICAgICAgICgoc3Quc3RfbW9kZSAmIFNfSVhVU1Ip ID09IFNfSVhVU1IpKQorKyAgICAgICkKKysgICAgcmV0dXJuIDE7CisrICBlbHNlCisrICAgIHJl dHVybiAwOworK30KKysKKysvKiBTZWFyY2hlcyBmb3IgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgd3Jh cHBlci4gIFJldHVybnMKKysgICBuZXdseSBhbGxvY2F0ZWQgZnVsbCBwYXRoIG5hbWUgaWYgZm91 bmQsIE5VTEwgb3RoZXJ3aXNlICovCisrY2hhciAqCisrZmluZF9leGVjdXRhYmxlIChjb25zdCBj aGFyKiB3cmFwcGVyKQorK3sKKysgIGludCBoYXNfc2xhc2ggPSAwOworKyAgY29uc3QgY2hhciog cDsKKysgIGNvbnN0IGNoYXIqIHBfbmV4dDsKKysgIC8qIHN0YXRpYyBidWZmZXIgZm9yIGdldGN3 ZCAqLworKyAgY2hhciB0bXBbTFRfUEFUSE1BWCArIDFdOworKyAgaW50IHRtcF9sZW47CisrICBj aGFyKiBjb25jYXRfbmFtZTsKKysKKysgIERFQlVHKCIoZmluZF9leGVjdXRhYmxlKSAgOiAlc1xu Iiwgd3JhcHBlciA/ICgqd3JhcHBlciA/IHdyYXBwZXIgOiAiRU1QVFkhIikgOiAiTlVMTCEiKTsK KysKKysgIGlmICgod3JhcHBlciA9PSBOVUxMKSB8fCAoKndyYXBwZXIgPT0gJ1wwJykpCisrICAg IHJldHVybiBOVUxMOworKworKyAgLyogQWJzb2x1dGUgcGF0aD8gKi8KKysjaWYgZGVmaW5lZCAo SEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisrICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNo YXIpd3JhcHBlclswXSkgJiYgd3JhcHBlclsxXSA9PSAnOicpCisrICB7CisrICAgIGNvbmNhdF9u YW1lID0geHN0cmR1cCAod3JhcHBlcik7CisrICAgIGlmIChjaGVja19leGVjdXRhYmxlKGNvbmNh dF9uYW1lKSkKKysgICAgICByZXR1cm4gY29uY2F0X25hbWU7CisrICAgIFhGUkVFKGNvbmNhdF9u YW1lKTsKKysgIH0KKysgIGVsc2UKKysgIHsKKysjZW5kaWYKKysgICAgaWYgKElTX0RJUl9TRVBB UkFUT1IgKHdyYXBwZXJbMF0pKQorKyAgICB7CisrICAgICAgY29uY2F0X25hbWUgPSB4c3RyZHVw ICh3cmFwcGVyKTsKKysgICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZShjb25jYXRfbmFtZSkpCisr ICAgICAgICByZXR1cm4gY29uY2F0X25hbWU7CisrICAgICAgWEZSRUUoY29uY2F0X25hbWUpOwor KyAgICB9CisrI2lmIGRlZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQorKyAgfQor KyNlbmRpZgorKworKyAgZm9yIChwID0gd3JhcHBlcjsgKnA7IHArKykKKysgICAgaWYgKCpwID09 ICcvJykKKysgICAgeworKyAgICAgIGhhc19zbGFzaCA9IDE7CisrICAgICAgYnJlYWs7CisrICAg IH0KKysgIGlmICghaGFzX3NsYXNoKQorKyAgeworKyAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2gg UEFUSCAqLworKyAgICBjb25zdCBjaGFyKiBwYXRoID0gZ2V0ZW52ICgiUEFUSCIpOworKyAgICBp ZiAocGF0aCAhPSBOVUxMKQorKyAgICB7CisrICAgICAgZm9yIChwID0gcGF0aDsgKnA7IHAgPSBw X25leHQpCisrICAgICAgeworKyAgICAgICAgY29uc3QgY2hhciogcTsKKysgICAgICAgIHNpemVf dCBwX2xlbjsKKysgICAgICAgIGZvciAocSA9IHA7ICpxOyBxKyspCisrICAgICAgICAgIGlmIChJ U19QQVRIX1NFUEFSQVRPUigqcSkpCisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBwX2xl biA9IHEgLSBwOworKyAgICAgICAgcF9uZXh0ID0gKCpxID09ICdcMCcgPyBxIDogcSArIDEpOwor KyAgICAgICAgaWYgKHBfbGVuID09IDApCisrICAgICAgICB7CisrICAgICAgICAgIC8qIGVtcHR5 IHBhdGg6IGN1cnJlbnQgZGlyZWN0b3J5ICovCisrICAgICAgICAgIGlmIChnZXRjd2QgKHRtcCwg TFRfUEFUSE1BWCkgPT0gTlVMTCkKKysgICAgICAgICAgICBsdF9mYXRhbCAoImdldGN3ZCBmYWls ZWQiKTsKKysgICAgICAgICAgdG1wX2xlbiA9IHN0cmxlbih0bXApOworKyAgICAgICAgICBjb25j YXRfbmFtZSA9IFhNQUxMT0MoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4od3JhcHBlcikgKyAx KTsKKysgICAgICAgICAgbWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKKysgICAg ICAgICAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7CisrICAgICAgICAgIHN0cmNweSAoY29u Y2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7CisrICAgICAgICB9CisrICAgICAgICBl bHNlCisrICAgICAgICB7CisrICAgICAgICAgIGNvbmNhdF9uYW1lID0gWE1BTExPQyhjaGFyLCBw X2xlbiArIDEgKyBzdHJsZW4od3JhcHBlcikgKyAxKTsKKysgICAgICAgICAgbWVtY3B5IChjb25j YXRfbmFtZSwgcCwgcF9sZW4pOworKyAgICAgICAgICBjb25jYXRfbmFtZVtwX2xlbl0gPSAnLyc7 CisrICAgICAgICAgIHN0cmNweSAoY29uY2F0X25hbWUgKyBwX2xlbiArIDEsIHdyYXBwZXIpOwor KyAgICAgICAgfQorKyAgICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUoY29uY2F0X25hbWUpKQor KyAgICAgICAgICByZXR1cm4gY29uY2F0X25hbWU7CisrICAgICAgICBYRlJFRShjb25jYXRfbmFt ZSk7CisrICAgICAgfQorKyAgICB9CisrICAgIC8qIG5vdCBmb3VuZCBpbiBQQVRIOyBhc3N1bWUg Y3VyZGlyICovCisrICB9CisrICAvKiBSZWxhdGl2ZSBwYXRoIHwgbm90IGZvdW5kIGluIHBhdGg6 IHByZXBlbmQgY3dkICovCisrICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwp CisrICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIpOworKyAgdG1wX2xlbiA9IHN0cmxlbih0 bXApOworKyAgY29uY2F0X25hbWUgPSBYTUFMTE9DKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVu KHdyYXBwZXIpICsgMSk7CisrICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOwor KyAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7CisrICBzdHJjcHkgKGNvbmNhdF9uYW1lICsg dG1wX2xlbiArIDEsIHdyYXBwZXIpOworKworKyAgaWYgKGNoZWNrX2V4ZWN1dGFibGUoY29uY2F0 X25hbWUpKQorKyAgICByZXR1cm4gY29uY2F0X25hbWU7CisrICBYRlJFRShjb25jYXRfbmFtZSk7 CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrY2hhciAqCisrc3RyZW5kemFwKGNoYXIgKnN0ciwg Y29uc3QgY2hhciAqcGF0KQorK3sKKysgIHNpemVfdCBsZW4sIHBhdGxlbjsKKysKKysgIGFzc2Vy dChzdHIgIT0gTlVMTCk7CisrICBhc3NlcnQocGF0ICE9IE5VTEwpOworKworKyAgbGVuID0gc3Ry bGVuKHN0cik7CisrICBwYXRsZW4gPSBzdHJsZW4ocGF0KTsKKysKKysgIGlmIChwYXRsZW4gPD0g bGVuKQorKyAgeworKyAgICBzdHIgKz0gbGVuIC0gcGF0bGVuOworKyAgICBpZiAoc3RyY21wKHN0 ciwgcGF0KSA9PSAwKQorKyAgICAgICpzdHIgPSAnXDAnOworKyAgfQorKyAgcmV0dXJuIHN0cjsK Kyt9CisrCisrc3RhdGljIHZvaWQKKytsdF9lcnJvcl9jb3JlIChpbnQgZXhpdF9zdGF0dXMsIGNv bnN0IGNoYXIgKiBtb2RlLAorKyAgICAgICAgICBjb25zdCBjaGFyICogbWVzc2FnZSwgdmFfbGlz dCBhcCkKKyt7CisrICBmcHJpbnRmIChzdGRlcnIsICIlczogJXM6ICIsIHByb2dyYW1fbmFtZSwg bW9kZSk7CisrICB2ZnByaW50ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7CisrICBmcHJpbnRmIChz dGRlcnIsICIuXG4iKTsKKysKKysgIGlmIChleGl0X3N0YXR1cyA+PSAwKQorKyAgICBleGl0IChl eGl0X3N0YXR1cyk7CisrfQorKworK3ZvaWQKKytsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2Fn ZSwgLi4uKQorK3sKKysgIHZhX2xpc3QgYXA7CisrICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOwor KyAgbHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7Cisr ICB2YV9lbmQgKGFwKTsKKyt9CisrRU9GCisrICAgICAgICAgICMgd2Ugc2hvdWxkIHJlYWxseSB1 c2UgYSBidWlsZC1wbGF0Zm9ybSBzcGVjaWZpYyBjb21waWxlcgorKyAgICAgICAgICAjIGhlcmUs IGJ1dCBPVE9ILCB0aGUgd3JhcHBlcnMgKHNoZWxsIHNjcmlwdCBhbmQgdGhpcyBDIG9uZSkKKysg ICAgICAgICAgIyBhcmUgb25seSB1c2VmdWwgaWYgeW91IHdhbnQgdG8gZXhlY3V0ZSB0aGUgInJl YWwiIGJpbmFyeS4KKysgICAgICAgICAgIyBTaW5jZSB0aGUgInJlYWwiIGJpbmFyeSBpcyBidWls dCBmb3IgJGhvc3QsIHRoZW4gdGhpcworKyAgICAgICAgICAjIHdyYXBwZXIgbWlnaHQgYXMgd2Vs bCBiZSBidWlsdCBmb3IgJGhvc3QsIHRvby4KKysgICAgICAgICAgJHJ1biAkTFRDQyAkTFRDRkxB R1MgLXMgLW8gJGN3cmFwcGVyICRjd3JhcHBlcnNvdXJjZQorKyAgICAgICAgICA7OworKyAgICAg ICAgZXNhYworKyAgICAgICAgJHJtICRvdXRwdXQKKysgICAgICAgIHRyYXAgIiRybSAkb3V0cHV0 OyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKworKwkkZWNobyA+ICRvdXRwdXQgIlwKKysj ISAkU0hFTEwKKysKKysjICRvdXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9yICRv YmpkaXIvJG91dHB1dG5hbWUKKysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FH RSAkVkVSU0lPTiRUSU1FU1RBTVAKKysjCisrIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBi ZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKKysjIGxpYnJhcmllcyB0 aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysjCisrIyBUaGlzIHdyYXBwZXIgc2Ny aXB0IHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysj IElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KKysKKysjIFNlZCBzdWJz dGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlm aWVzCisrIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJs ZS1xdW90ZWQgc3RyaW5ncy4KKytYc2VkPScke1NFRH0gLWUgMXMvXlgvLycKKytzZWRfcXVvdGVf c3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCisrCisrIyBCZSBCb3VybmUgY29tcGF0aWJsZSAodGFr ZW4gZnJvbSBBdXRvY29uZjpfQVNfQk9VUk5FX0NPTVBBVElCTEUpLgorK2lmIHRlc3QgLW4gXCJc JHtaU0hfVkVSU0lPTitzZXR9XCIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhl bgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFpzaCAzLnggYW5kIDQueCBwZXJm b3JtcyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAorKyAgIyBpcyBjb250 cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICdc JHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQor KyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4 OzsgZXNhYworK2ZpCisrQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytE VUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBUaGUgSFAtVVgg a3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQK KysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYm IHVuc2V0IENEUEFUSAorKworK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKKysK KysjIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1v ZGUuCisraWYgdGVzdCBcIlwkbGlidG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0 aGVuCisrICAjIGluc3RhbGwgbW9kZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlOgorKyAg bm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9kZXBsaWJzJworK2Vsc2UKKysgICMgV2hlbiB3ZSBh cmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRlY2hvIGFyZSBhbHJlYWR5 IHNldC4KKysgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2lj XCI7IHRoZW4KKysgICAgZWNobz1cIiRxZWNob1wiCisrICAgIGZpbGU9XCJcJDBcIgorKyAgICAj IE1ha2Ugc3VyZSBlY2hvIHdvcmtzLgorKyAgICBpZiB0ZXN0IFwiWFwkMVwiID0gWC0tbm8tcmVl eGVjOyB0aGVuCisrICAgICAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29u dGludWUuCisrICAgICAgc2hpZnQKKysgICAgZWxpZiB0ZXN0IFwiWFxgKFwkZWNobyAnXHQnKSAy Pi9kZXYvbnVsbFxgXCIgPSAnWFx0JzsgdGhlbgorKyAgICAgICMgWWlwcGVlLCBcJGVjaG8gd29y a3MhCisrICAgICAgOgorKyAgICBlbHNlCisrICAgICAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3Jy ZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSBcJGVjaG8gd2lsbCB3b3JrLgorKyAgICAgIGV4ZWMg JFNIRUxMIFwiXCQwXCIgLS1uby1yZWV4ZWMgXCR7MStcIlwkQFwifQorKyAgICBmaQorKyAgZmlc CisrIgorKwkkZWNobyA+PiAkb3V0cHV0ICJcCisrCisrICAjIEZpbmQgdGhlIGRpcmVjdG9yeSB0 aGF0IHRoaXMgc2NyaXB0IGxpdmVzIGluLgorKyAgdGhpc2Rpcj1cYFwkZWNobyBcIlhcJGZpbGVc IiB8IFwkWHNlZCAtZSAncyUvW14vXSokJSUnXGAKKysgIHRlc3QgXCJ4XCR0aGlzZGlyXCIgPSBc InhcJGZpbGVcIiAmJiB0aGlzZGlyPS4KKysKKysgICMgRm9sbG93IHN5bWJvbGljIGxpbmtzIHVu dGlsIHdlIGdldCB0byB0aGUgcmVhbCB0aGlzZGlyLgorKyAgZmlsZT1cYGxzIC1sZCBcIlwkZmls ZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4gLy9wJ1xgCisrICB3aGlsZSB0ZXN0IC1uIFwiXCRmaWxl XCI7IGRvCisrICAgIGRlc3RkaXI9XGBcJGVjaG8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3Ml L1teL10qXCQlJSdcYAorKworKyAgICAjIElmIHRoZXJlIHdhcyBhIGRpcmVjdG9yeSBjb21wb25l bnQsIHRoZW4gY2hhbmdlIHRoaXNkaXIuCisrICAgIGlmIHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0g XCJ4XCRmaWxlXCI7IHRoZW4KKysgICAgICBjYXNlIFwiXCRkZXN0ZGlyXCIgaW4KKysgICAgICBb XFxcXC9dKiB8IFtBLVphLXpdOltcXFxcL10qKSB0aGlzZGlyPVwiXCRkZXN0ZGlyXCIgOzsKKysg ICAgICAqKSB0aGlzZGlyPVwiXCR0aGlzZGlyL1wkZGVzdGRpclwiIDs7CisrICAgICAgZXNhYwor KyAgICBmaQorKworKyAgICBmaWxlPVxgXCRlY2hvIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdz JV4uKi8lJSdcYAorKyAgICBmaWxlPVxgbHMgLWxkIFwiXCR0aGlzZGlyL1wkZmlsZVwiIHwgJHtT RUR9IC1uICdzLy4qLT4gLy9wJ1xgCisrICBkb25lCisrCisrICAjIFRyeSB0byBnZXQgdGhlIGFi c29sdXRlIGRpcmVjdG9yeSBuYW1lLgorKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBw d2RcYAorKyAgdGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKKysi CisrCisrCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgJGVjaG8gPj4g JG91dHB1dCAiXAorKyAgcHJvZ3JhbT1sdC0nJG91dHB1dG5hbWUnJGV4ZWV4dAorKyAgcHJvZ2Rp cj1cIlwkdGhpc2Rpci8kb2JqZGlyXCIKKysKKysgIGlmIHRlc3QgISAtZiBcIlwkcHJvZ2Rpci9c JHByb2dyYW1cIiB8fCBcXAorKyAgICAgeyBmaWxlPVxgbHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHBy b2dyYW1cIiBcIlwkcHJvZ2Rpci8uLi9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8ICR7U0VEfSAx cVxgOyBcXAorKyAgICAgICB0ZXN0IFwiWFwkZmlsZVwiICE9IFwiWFwkcHJvZ2Rpci9cJHByb2dy YW1cIjsgfTsgdGhlbgorKworKyAgICBmaWxlPVwiXCRcJC1cJHByb2dyYW1cIgorKworKyAgICBp ZiB0ZXN0ICEgLWQgXCJcJHByb2dkaXJcIjsgdGhlbgorKyAgICAgICRta2RpciBcIlwkcHJvZ2Rp clwiCisrICAgIGVsc2UKKysgICAgICAkcm0gXCJcJHByb2dkaXIvXCRmaWxlXCIKKysgICAgZmki CisrCisrCSAgJGVjaG8gPj4gJG91dHB1dCAiXAorKworKyAgICAjIHJlbGluayBleGVjdXRhYmxl IGlmIG5lY2Vzc2FyeQorKyAgICBpZiB0ZXN0IC1uIFwiXCRyZWxpbmtfY29tbWFuZFwiOyB0aGVu CisrICAgICAgaWYgcmVsaW5rX2NvbW1hbmRfb3V0cHV0PVxgZXZhbCBcJHJlbGlua19jb21tYW5k IDI+JjFcYDsgdGhlbiA6CisrICAgICAgZWxzZQorKwkkZWNobyBcIlwkcmVsaW5rX2NvbW1hbmRf b3V0cHV0XCIgPiYyCisrCSRybSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgorKwlleGl0ICRFWElUX0ZB SUxVUkUKKysgICAgICBmaQorKyAgICBmaQorKworKyAgICAkbXYgXCJcJHByb2dkaXIvXCRmaWxl XCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfHwKKysgICAgeyAkcm0gXCJc JHByb2dkaXIvXCRwcm9ncmFtXCI7CisrICAgICAgJG12IFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwi XCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB9CisrICAgICRybSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgor KyAgZmkiCisrCWVsc2UKKysJICAkZWNobyA+PiAkb3V0cHV0ICJcCisrICBwcm9ncmFtPSckb3V0 cHV0bmFtZScKKysgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrIgorKwlmaQorKwor KwkkZWNobyA+PiAkb3V0cHV0ICJcCisrCisrICBpZiB0ZXN0IC1mIFwiXCRwcm9nZGlyL1wkcHJv Z3JhbVwiOyB0aGVuIgorKworKwkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBpZiB3ZSBoYXZl IG9uZS4KKysJaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYg dGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgor KwkgICRlY2hvID4+ICRvdXRwdXQgIlwKKysgICAgIyBBZGQgb3VyIG93biBsaWJyYXJ5IHBhdGgg dG8gJHNobGlicGF0aF92YXIKKysgICAgJHNobGlicGF0aF92YXI9XCIkdGVtcF9ycGF0aFwkJHNo bGlicGF0aF92YXJcIgorKworKyAgICAjIFNvbWUgc3lzdGVtcyBjYW5ub3QgY29wZSB3aXRoIGNv bG9uLXRlcm1pbmF0ZWQgJHNobGlicGF0aF92YXIKKysgICAgIyBUaGUgc2Vjb25kIGNvbG9uIGlz IGEgd29ya2Fyb3VuZCBmb3IgYSBidWcgaW4gQmVPUyBSNCBzZWQKKysgICAgJHNobGlicGF0aF92 YXI9XGBcJGVjaG8gXCJYXCQkc2hsaWJwYXRoX3ZhclwiIHwgXCRYc2VkIC1lICdzLzo6KlwkLy8n XGAKKysKKysgICAgZXhwb3J0ICRzaGxpYnBhdGhfdmFyCisrIgorKwlmaQorKworKwkjIGZpeHVw IHRoZSBkbGwgc2VhcmNocGF0aCBpZiB3ZSBuZWVkIHRvLgorKwlpZiB0ZXN0IC1uICIkZGxsc2Vh cmNocGF0aCI7IHRoZW4KKysJICAkZWNobyA+PiAkb3V0cHV0ICJcCisrICAgICMgQWRkIHRoZSBk bGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRICisrICAgIFBB VEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICisrIgorKwlmaQorKworKwkkZWNobyA+PiAkb3V0cHV0 ICJcCisrICAgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2lj XCI7IHRoZW4KKysgICAgICAjIFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1l bnRzLgorKyIKKysJY2FzZSAkaG9zdCBpbgorKwkjIEJhY2tzbGFzaGVzIHNlcGFyYXRlIGRpcmVj dG9yaWVzIG9uIHBsYWluIHdpbmRvd3MKKysJKi0qLW1pbmd3IHwgKi0qLW9zMiopCisrCSAgJGVj aG8gPj4gJG91dHB1dCAiXAorKyAgICAgIGV4ZWMgXCJcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIg XCR7MStcIlwkQFwifQorKyIKKysJICA7OworKworKwkqKQorKwkgICRlY2hvID4+ICRvdXRwdXQg IlwKKysgICAgICBleGVjIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKysi CisrCSAgOzsKKysJZXNhYworKwkkZWNobyA+PiAkb3V0cHV0ICJcCisrICAgICAgXCRlY2hvIFwi XCQwOiBjYW5ub3QgZXhlYyBcJHByb2dyYW0gXCQqXCIKKysgICAgICBleGl0ICRFWElUX0ZBSUxV UkUKKysgICAgZmkKKysgIGVsc2UKKysgICAgIyBUaGUgcHJvZ3JhbSBkb2Vzbid0IGV4aXN0Lgor KyAgICBcJGVjaG8gXCJcJDA6IGVycm9yOiBcXFxgXCRwcm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBu b3QgZXhpc3RcIiAxPiYyCisrICAgIFwkZWNobyBcIlRoaXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFw cGVyIGZvciBcJHByb2dyYW0uXCIgMT4mMgorKyAgICAkZWNobyBcIlNlZSB0aGUgJFBBQ0tBR0Ug ZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIiAxPiYyCisrICAgIGV4aXQgJEVY SVRfRkFJTFVSRQorKyAgZmkKKytmaVwKKysiCisrCWNobW9kICt4ICRvdXRwdXQKKysgICAgICBm aQorKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysg ICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hpdmUuCisr ICAgIGZvciBvbGRsaWIgaW4gJG9sZGxpYnM7IGRvCisrCisrICAgICAgaWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsgdGhlbgorKwlvbGRvYmpzPSIkbGlib2Jqc19z YXZlIgorKwlhZGRsaWJzPSIkY29udmVuaWVuY2UiCisrCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwor KyAgICAgIGVsc2UKKysJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBtb2R1bGU7IHRo ZW4KKysJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgorKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1u bworKwllbHNlCisrCSAgb2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCisr CWZpCisrCWFkZGxpYnM9IiRvbGRfY29udmVuaWVuY2UiCisrICAgICAgZmkKKysKKysgICAgICBp ZiB0ZXN0IC1uICIkYWRkbGlicyI7IHRoZW4KKysJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291 dHB1dG5hbWV9eCIKKysJZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisrCisrCWZ1bmNf ZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRhZGRsaWJzCisrCW9sZG9ianM9IiRvbGRvYmpzICRm dW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgorKyAgICAgIGZpCisrCisrICAgICAgIyBEbyBl YWNoIGNvbW1hbmQgaW4gdGhlIGFyY2hpdmUgY29tbWFuZHMuCisrICAgICAgaWYgdGVzdCAtbiAi JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ID0geWVzOyB0aGVuCisrICAgICAgIGNtZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKKysg ICAgICBlbHNlCisrCSMgUE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFy Y2hpdmVzLiAgV2UgaGF2ZQorKwkjIHRvIGF2b2lkIGNyZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVw bGljYXRlIGJhc2VuYW1lcyBpZiB3ZQorKwkjIG1pZ2h0IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFm dGVyd2FyZHMsIGUuZy4sIHdoZW4gY3JlYXRpbmcgYQorKwkjIHN0YXRpYyBhcmNoaXZlIG91dCBv ZiBhIGNvbnZlbmllbmNlIGxpYnJhcnksIG9yIHdoZW4gbGlua2luZworKwkjIHRoZSBlbnRpcmV0 eSBvZiBhIGxpYnRvb2wgYXJjaGl2ZSBpbnRvIGFub3RoZXIgKGN1cnJlbnRseQorKwkjIG5vdCBz dXBwb3J0ZWQgYnkgbGlidG9vbCkuCisrCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCisrCSAgICBk bworKwkgICAgICAkZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJworKwkgICAgZG9u ZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCisrCSAgOgorKwllbHNl CisrCSAgJGVjaG8gImNvcHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2Vu YW1lIGNvbmZsaWN0cy4uLiIKKysKKysJICBpZiB0ZXN0IC16ICIkZ2VudG9wIjsgdGhlbgorKwkg ICAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKysJICAgIGdlbmVyYXRl ZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorKworKwkgICAgJHNob3cgIiR7cm19ciAkZ2VudG9wIgor KwkgICAgJHJ1biAke3JtfXIgIiRnZW50b3AiCisrCSAgICAkc2hvdyAiJG1rZGlyICRnZW50b3Ai CisrCSAgICAkcnVuICRta2RpciAiJGdlbnRvcCIKKysJICAgIGV4aXRfc3RhdHVzPSQ/CisrCSAg ICBpZiB0ZXN0ICIkZXhpdF9zdGF0dXMiIC1uZSAwICYmIHRlc3QgISAtZCAiJGdlbnRvcCI7IHRo ZW4KKysJICAgICAgZXhpdCAkZXhpdF9zdGF0dXMKKysJICAgIGZpCisrCSAgZmkKKysKKysJICBz YXZlX29sZG9ianM9JG9sZG9ianMKKysJICBvbGRvYmpzPQorKwkgIGNvdW50ZXI9MQorKwkgIGZv ciBvYmogaW4gJHNhdmVfb2xkb2JqcworKwkgIGRvCisrCSAgICBvYmpiYXNlPWAkZWNobyAiWCRv YmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKKysJICAgIGNhc2UgIiAkb2xkb2JqcyAiIGluCisr CSAgICAiICIpIG9sZG9ianM9JG9iaiA7OworKwkgICAgKltcIC9dIiRvYmpiYXNlICIqKQorKwkg ICAgICB3aGlsZSA6OyBkbworKwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGljayBhbiBhbHRlcm5h dGUgbmFtZSB0aGF0IGFsc28KKysJCSMgb3ZlcmxhcHMuCisrCQluZXdvYmo9bHQkY291bnRlci0k b2JqYmFzZQorKwkJY291bnRlcj1gZXhwciAkY291bnRlciArIDFgCisrCQljYXNlICIgJG9sZG9i anMgIiBpbgorKwkJKltcIC9dIiRuZXdvYmogIiopIDs7CisrCQkqKSBpZiB0ZXN0ICEgLWYgIiRn ZW50b3AvJG5ld29iaiI7IHRoZW4gYnJlYWs7IGZpIDs7CisrCQllc2FjCisrCSAgICAgIGRvbmUK KysJICAgICAgJHNob3cgImxuICRvYmogJGdlbnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdlbnRv cC8kbmV3b2JqIgorKwkgICAgICAkcnVuIGxuICIkb2JqIiAiJGdlbnRvcC8kbmV3b2JqIiB8fAor KwkgICAgICAkcnVuIGNwICIkb2JqIiAiJGdlbnRvcC8kbmV3b2JqIgorKwkgICAgICBvbGRvYmpz PSIkb2xkb2JqcyAkZ2VudG9wLyRuZXdvYmoiCisrCSAgICAgIDs7CisrCSAgICAqKSBvbGRvYmpz PSIkb2xkb2JqcyAkb2JqIiA7OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJZmkKKysKKysJZXZh bCBjbWRzPVwiJG9sZF9hcmNoaXZlX2NtZHNcIgorKworKwlpZiBsZW49YGV4cHIgIlgkY21kcyIg OiAiLioiYCAmJgorKwkgICAgIHRlc3QgIiRsZW4iIC1sZSAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0 ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgorKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMK KysJZWxzZQorKwkgICMgdGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9u ZSBzdGVwLCBsaW5rIGluIHBhcnRzCisrCSAgJGVjaG8gInVzaW5nIHBpZWNld2lzZSBhcmNoaXZl IGxpbmtpbmcuLi4iCisrCSAgc2F2ZV9SQU5MSUI9JFJBTkxJQgorKwkgIFJBTkxJQj06CisrCSAg b2JqbGlzdD0KKysJICBjb25jYXRfY21kcz0KKysJICBzYXZlX29sZG9ianM9JG9sZG9ianMKKysK KysJICAjIElzIHRoZXJlIGEgYmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBp biB0aGUgbGlzdD8KKysJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKKysJICBkbworKwkgICAg bGFzdF9vbGRvYmo9JG9iagorKwkgIGRvbmUKKysJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMK KysJICBkbworKwkgICAgb2xkb2Jqcz0iJG9iamxpc3QgJG9iaiIKKysJICAgIG9iamxpc3Q9IiRv YmpsaXN0ICRvYmoiCisrCSAgICBldmFsIHRlc3RfY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIK KysJICAgIGlmIGxlbj1gZXhwciAiWCR0ZXN0X2NtZHMiIDogIi4qIiAyPi9kZXYvbnVsbGAgJiYK KysJICAgICAgIHRlc3QgIiRsZW4iIC1sZSAiJG1heF9jbWRfbGVuIjsgdGhlbgorKwkgICAgICA6 CisrCSAgICBlbHNlCisrCSAgICAgICMgdGhlIGFib3ZlIGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQg YmVmb3JlIGl0IGdldHMgdG9vIGxvbmcKKysJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAorKwkgICAg ICBpZiB0ZXN0ICIkb2JqIiA9ICIkbGFzdF9vbGRvYmoiIDsgdGhlbgorKwkgICAgICAgIFJBTkxJ Qj0kc2F2ZV9SQU5MSUIKKysJICAgICAgZmkKKysJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRz IiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+CisrCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9 XCJcJHtjb25jYXRfY21kc30kb2xkX2FyY2hpdmVfY21kc1wiCisrCSAgICAgIG9iamxpc3Q9Cisr CSAgICBmaQorKwkgIGRvbmUKKysJICBSQU5MSUI9JHNhdmVfUkFOTElCCisrCSAgb2xkb2Jqcz0k b2JqbGlzdAorKwkgIGlmIHRlc3QgIlgkb2xkb2JqcyIgPSAiWCIgOyB0aGVuCisrCSAgICBldmFs IGNtZHM9XCJcJGNvbmNhdF9jbWRzXCIKKysJICBlbHNlCisrCSAgICBldmFsIGNtZHM9XCJcJGNv bmNhdF9jbWRzflwkb2xkX2FyY2hpdmVfY21kc1wiCisrCSAgZmkKKysJZmkKKysgICAgICBmaQor KyAgICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKyAgICAgIGZvciBjbWQgaW4gJGNtZHM7 IGRvCisrICAgICAgICBldmFsIGNtZD1cIiRjbWRcIgorKwlJRlM9IiRzYXZlX2lmcyIKKysJJHNo b3cgIiRjbWQiCisrCSRydW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPworKyAgICAgIGRvbmUKKysg ICAgICBJRlM9IiRzYXZlX2lmcyIKKysgICAgZG9uZQorKworKyAgICBpZiB0ZXN0IC1uICIkZ2Vu ZXJhdGVkIjsgdGhlbgorKyAgICAgICRzaG93ICIke3JtfXIkZ2VuZXJhdGVkIgorKyAgICAgICRy dW4gJHtybX1yJGdlbmVyYXRlZAorKyAgICBmaQorKworKyAgICAjIE5vdyBjcmVhdGUgdGhlIGxp YnRvb2wgYXJjaGl2ZS4KKysgICAgY2FzZSAkb3V0cHV0IGluCisrICAgICoubGEpCisrICAgICAg b2xkX2xpYnJhcnk9CisrICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiBvbGRf bGlicmFyeT0iJGxpYm5hbWUuJGxpYmV4dCIKKysgICAgICAkc2hvdyAiY3JlYXRpbmcgJG91dHB1 dCIKKysKKysgICAgICAjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNv bXBpbGVyIGJlaGF2aW9yCisrICAgICAgZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9y ZWxpbms7IGRvCisrCWlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAg cmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8IHVuc2V0ICR2YXIg fHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKKysJZWxpZiBl dmFsIHZhcl92YWx1ZT1cJCR2YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCisrCSAgcmVs aW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorKwllbHNl CisrCSAgdmFyX3ZhbHVlPWAkZWNobyAiWCR2YXJfdmFsdWUiIHwgJFhzZWQgLWUgIiRzZWRfcXVv dGVfc3Vic3QiYAorKwkgIHJlbGlua19jb21tYW5kPSIkdmFyPVwiJHZhcl92YWx1ZVwiOyBleHBv cnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorKwlmaQorKyAgICAgIGRvbmUKKysgICAgICAjIFF1 b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgorKyAgICAgIHJlbGlua19jb21tYW5k PSIoY2QgYHB3ZGA7ICRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGlu ayAkbGlidG9vbF9hcmdzIEBpbnN0X3ByZWZpeF9kaXJAKSIKKysgICAgICByZWxpbmtfY29tbWFu ZD1gJGVjaG8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRzZWRfcXVv dGVfc3Vic3QiIHwgJE5MMlNQYAorKyAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMi ID0geWVzIDsgdGhlbgorKwlyZWxpbmtfY29tbWFuZD0KKysgICAgICBmaQorKworKworKyAgICAg ICMgT25seSBjcmVhdGUgdGhlIG91dHB1dCBpZiBub3QgYSBkcnkgcnVuLgorKyAgICAgIGlmIHRl c3QgLXogIiRydW4iOyB0aGVuCisrCWZvciBpbnN0YWxsZWQgaW4gbm8geWVzOyBkbworKwkgIGlm IHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkaW5zdGFs bF9saWJkaXIiOyB0aGVuCisrCSAgICAgIGJyZWFrCisrCSAgICBmaQorKwkgICAgb3V0cHV0PSIk b3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSJpCisrCSAgICAjIFJlcGxhY2UgYWxsIHVuaW5zdGFs bGVkIGxpYnRvb2wgbGlicmFyaWVzIHdpdGggdGhlIGluc3RhbGxlZCBvbmVzCisrCSAgICBuZXdk ZXBlbmRlbmN5X2xpYnM9CisrCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRv CisrCSAgICAgIGNhc2UgJGRlcGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkJbmFtZT1gJGVjaG8g IlgkZGVwbGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCisrCQlldmFsIGxpYmRpcj1gJHtTRUR9 IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAorKwkJaWYgdGVzdCAteiAi JGxpYmRpciI7IHRoZW4KKysJCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkZGVwbGliJyBpcyBub3Qg YSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiIDE+JjIKKysJCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisr CQlmaQorKwkJbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIv JG5hbWUiCisrCQk7OworKwkgICAgICAqKSBuZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRl bmN5X2xpYnMgJGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgZGVw ZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgbmV3ZGxmaWxlcz0KKysJ ICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7IGRvCisrCSAgICAgIG5hbWU9YCRlY2hvICJYJGxpYiIg fCAkWHNlZCAtZSAncyVeLiovJSUnYAorKwkgICAgICBldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1l ICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAorKwkgICAgICBpZiB0ZXN0IC16ICIkbGli ZGlyIjsgdGhlbgorKwkJJGVjaG8gIiRtb2RlbmFtZTogXGAkbGliJyBpcyBub3QgYSB2YWxpZCBs aWJ0b29sIGFyY2hpdmUiIDE+JjIKKysJCWV4aXQgJEVYSVRfRkFJTFVSRQorKwkgICAgICBmaQor KwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliZGlyLyRuYW1lIgorKwkgICAgZG9u ZQorKwkgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrCSAgICBuZXdkbHByZWZpbGVzPQorKwkg ICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KKysJICAgICAgbmFtZT1gJGVjaG8gIlgkbGli IiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCisrCSAgICAgIGV2YWwgbGliZGlyPWAke1NFRH0gLW4g LWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCisrCSAgICAgIGlmIHRlc3QgLXogIiRs aWJkaXIiOyB0aGVuCisrCQkkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBhIHZhbGlk IGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgorKwkJZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgICAgIGZp CisrCSAgICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRsaWJkaXIvJG5hbWUiCisr CSAgICBkb25lCisrCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysJICBlbHNlCisr CSAgICBuZXdkbGZpbGVzPQorKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KKysJICAgICAg Y2FzZSAkbGliIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsK KysJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBuZXdkbGZp bGVzPSIkbmV3ZGxmaWxlcyAkYWJzIgorKwkgICAgZG9uZQorKwkgICAgZGxmaWxlcz0iJG5ld2Rs ZmlsZXMiCisrCSAgICBuZXdkbHByZWZpbGVzPQorKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxl czsgZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSop IGFicz0iJGxpYiIgOzsKKysJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKysJICAgICAgZXNhYwor KwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkYWJzIgorKwkgICAgZG9uZQor KwkgICAgZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCisrCSAgZmkKKysJICAkcm0gJG91dHB1 dAorKwkgICMgcGxhY2UgZGxuYW1lIGluIGNvcnJlY3QgcG9zaXRpb24gZm9yIGN5Z3dpbgorKwkg IHRkbG5hbWU9JGRsbmFtZQorKwkgIGNhc2UgJGhvc3QsJG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1 bGUsJGRsbmFtZSBpbgorKwkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqbWluZ3cq LCpsYWkseWVzLG5vLCouZGxsKSB0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lIDs7CisrCSAgZXNhYwor KwkgICRlY2hvID4gJG91dHB1dCAiXAorKyMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFy eSBmaWxlCisrIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gLSBHTlUgJFBBQ0tBR0UgJFZFUlNJT04k VElNRVNUQU1QCisrIworKyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQorKyMgSXQg aXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRoZSBsaWJyYXJ5LgorKworKyMgVGhlIG5hbWUgdGhh dCB3ZSBjYW4gZGxvcGVuKDMpLgorK2RsbmFtZT0nJHRkbG5hbWUnCisrCisrIyBOYW1lcyBvZiB0 aGlzIGxpYnJhcnkuCisrbGlicmFyeV9uYW1lcz0nJGxpYnJhcnlfbmFtZXMnCisrCisrIyBUaGUg bmFtZSBvZiB0aGUgc3RhdGljIGFyY2hpdmUuCisrb2xkX2xpYnJhcnk9JyRvbGRfbGlicmFyeScK KysKKysjIExpYnJhcmllcyB0aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBvbi4KKytkZXBlbmRlbmN5 X2xpYnM9JyRkZXBlbmRlbmN5X2xpYnMnCisrCisrIyBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciAk bGlibmFtZS4KKytjdXJyZW50PSRjdXJyZW50CisrYWdlPSRhZ2UKKytyZXZpc2lvbj0kcmV2aXNp b24KKysKKysjIElzIHRoaXMgYW4gYWxyZWFkeSBpbnN0YWxsZWQgbGlicmFyeT8KKytpbnN0YWxs ZWQ9JGluc3RhbGxlZAorKworKyMgU2hvdWxkIHdlIHdhcm4gYWJvdXQgcG9ydGFiaWxpdHkgd2hl biBsaW5raW5nIGFnYWluc3QgLW1vZHVsZXM/Cisrc2hvdWxkbm90bGluaz0kbW9kdWxlCisrCisr IyBGaWxlcyB0byBkbG9wZW4vZGxwcmVvcGVuCisrZGxvcGVuPSckZGxmaWxlcycKKytkbHByZW9w ZW49JyRkbHByZWZpbGVzJworKworKyMgRGlyZWN0b3J5IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRz IHRvIGJlIGluc3RhbGxlZCBpbjoKKytsaWJkaXI9JyRpbnN0YWxsX2xpYmRpciciCisrCSAgaWYg dGVzdCAiJGluc3RhbGxlZCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0geWVzOyB0aGVu CisrCSAgICAkZWNobyA+PiAkb3V0cHV0ICJcCisrcmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2Nv bW1hbmRcIiIKKysJICBmaQorKwlkb25lCisrICAgICAgZmkKKysKKysgICAgICAjIERvIGEgc3lt Ym9saWMgbGluayBzbyB0aGF0IHRoZSBsaWJ0b29sIGFyY2hpdmUgY2FuIGJlIGZvdW5kIGluCisr ICAgICAgIyBMRF9MSUJSQVJZX1BBVEggYmVmb3JlIHRoZSBwcm9ncmFtIGlzIGluc3RhbGxlZC4K KysgICAgICAkc2hvdyAiKGNkICRvdXRwdXRfb2JqZGlyICYmICRybSAkb3V0cHV0bmFtZSAmJiAk TE5fUyAuLi8kb3V0cHV0bmFtZSAkb3V0cHV0bmFtZSkiCisrICAgICAgJHJ1biBldmFsICcoY2Qg JG91dHB1dF9vYmpkaXIgJiYgJHJtICRvdXRwdXRuYW1lICYmICRMTl9TIC4uLyRvdXRwdXRuYW1l ICRvdXRwdXRuYW1lKScgfHwgZXhpdCAkPworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgZXhp dCAkRVhJVF9TVUNDRVNTCisrICAgIDs7CisrCisrICAjIGxpYnRvb2wgaW5zdGFsbCBtb2RlCisr ICBpbnN0YWxsKQorKyAgICBtb2RlbmFtZT0iJG1vZGVuYW1lOiBpbnN0YWxsIgorKworKyAgICAj IFRoZXJlIG1heSBiZSBhbiBvcHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5n IG9mCisrICAgICMgaW5zdGFsbF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRvd3MgTlQpLgorKyAg ICBpZiB0ZXN0ICIkbm9ub3B0IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25vcHQiID0gL2Jpbi9z aCB8fAorKyAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGluc3RhbGwgY29t bWFuZC4KKysgICAgICAgJGVjaG8gIlgkbm9ub3B0IiB8IGdyZXAgc2h0b29sID4gL2Rldi9udWxs OyB0aGVuCisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgorKyAgICAgIGFyZz1gJGVj aG8gIlgkbm9ub3B0IiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysgICAgICBjYXNl ICRhcmcgaW4KKysgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0q fCpdKnwiIikKKysJYXJnPSJcIiRhcmdcIiIKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgaW5z dGFsbF9wcm9nPSIkYXJnICIKKysgICAgICBhcmc9IiQxIgorKyAgICAgIHNoaWZ0CisrICAgIGVs c2UKKysgICAgICBpbnN0YWxsX3Byb2c9CisrICAgICAgYXJnPSRub25vcHQKKysgICAgZmkKKysK KysgICAgIyBUaGUgcmVhbCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhl IGluc3RhbGxhdGlvbiBwcm9ncmFtLgorKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCisr ICAgIGFyZz1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysg ICAgY2FzZSAkYXJnIGluCisrICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdc IFwJXSp8Kl0qfCIiKQorKyAgICAgIGFyZz0iXCIkYXJnXCIiCisrICAgICAgOzsKKysgICAgZXNh YworKyAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2ckYXJnIgorKworKyAgICAjIFdlIG5l ZWQgdG8gYWNjZXB0IGF0IGxlYXN0IGFsbCB0aGUgQlNEIGluc3RhbGwgZmxhZ3MuCisrICAgIGRl c3Q9CisrICAgIGZpbGVzPQorKyAgICBvcHRzPQorKyAgICBwcmV2PQorKyAgICBpbnN0YWxsX3R5 cGU9CisrICAgIGlzZGlyPW5vCisrICAgIHN0cmlwbWU9CisrICAgIGZvciBhcmcKKysgICAgZG8K KysgICAgICBpZiB0ZXN0IC1uICIkZGVzdCI7IHRoZW4KKysJZmlsZXM9IiRmaWxlcyAkZGVzdCIK KysJZGVzdD0kYXJnCisrCWNvbnRpbnVlCisrICAgICAgZmkKKysKKysgICAgICBjYXNlICRhcmcg aW4KKysgICAgICAtZCkgaXNkaXI9eWVzIDs7CisrICAgICAgLWYpIAorKyAgICAgIAljYXNlICIg JGluc3RhbGxfcHJvZyAiIGluCisrCSpbXFxcIC9dY3BcICopIDs7CisrCSopIHByZXY9JGFyZyA7 OworKwllc2FjCisrCTs7CisrICAgICAgLWcgfCAtbSB8IC1vKSBwcmV2PSRhcmcgOzsKKysgICAg ICAtcykKKysJc3RyaXBtZT0iIC1zIgorKwljb250aW51ZQorKwk7OworKyAgICAgIC0qKQorKwk7 OworKyAgICAgICopCisrCSMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkZWQgYW4gYXJndW1l bnQsIHRoZW4gc2tpcCBpdC4KKysJaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrCSAgcHJldj0K KysJZWxzZQorKwkgIGRlc3Q9JGFyZworKwkgIGNvbnRpbnVlCisrCWZpCisrCTs7CisrICAgICAg ZXNhYworKworKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgYXJndW1lbnQuCisrICAg ICAgYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAg ICAgIGNhc2UgJGFyZyBpbgorKyAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/ XCdcIFwJXSp8Kl0qfCIiKQorKwlhcmc9IlwiJGFyZ1wiIgorKwk7OworKyAgICAgIGVzYWMKKysg ICAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2cgJGFyZyIKKysgICAgZG9uZQorKworKyAg ICBpZiB0ZXN0IC16ICIkaW5zdGFsbF9wcm9nIjsgdGhlbgorKyAgICAgICRlY2hvICIkbW9kZW5h bWU6IHlvdSBtdXN0IHNwZWNpZnkgYW4gaW5zdGFsbCBwcm9ncmFtIiAxPiYyCisrICAgICAgJGVj aG8gIiRoZWxwIiAxPiYyCisrICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgIGZpCisrCisr ICAgIGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHRo ZSBcYCRwcmV2JyBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQiIDE+JjIKKysgICAgICAkZWNo byAiJGhlbHAiIDE+JjIKKysgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgZmkKKysKKysg ICAgaWYgdGVzdCAteiAiJGZpbGVzIjsgdGhlbgorKyAgICAgIGlmIHRlc3QgLXogIiRkZXN0Ijsg dGhlbgorKwkkZWNobyAiJG1vZGVuYW1lOiBubyBmaWxlIG9yIGRlc3RpbmF0aW9uIHNwZWNpZmll ZCIgMT4mMgorKyAgICAgIGVsc2UKKysJJGVjaG8gIiRtb2RlbmFtZTogeW91IG11c3Qgc3BlY2lm eSBhIGRlc3RpbmF0aW9uIiAxPiYyCisrICAgICAgZmkKKysgICAgICAkZWNobyAiJGhlbHAiIDE+ JjIKKysgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgZmkKKysKKysgICAgIyBTdHJpcCBh bnkgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgZGVzdGluYXRpb24uCisrICAgIGRlc3Q9YCRlY2hv ICJYJGRlc3QiIHwgJFhzZWQgLWUgJ3MlLyQlJSdgCisrCisrICAgICMgQ2hlY2sgdG8gc2VlIHRo YXQgdGhlIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LgorKyAgICB0ZXN0IC1kICIkZGVzdCIg JiYgaXNkaXI9eWVzCisrICAgIGlmIHRlc3QgIiRpc2RpciIgPSB5ZXM7IHRoZW4KKysgICAgICBk ZXN0ZGlyPSIkZGVzdCIKKysgICAgICBkZXN0bmFtZT0KKysgICAgZWxzZQorKyAgICAgIGRlc3Rk aXI9YCRlY2hvICJYJGRlc3QiIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKKysgICAgICB0ZXN0 ICJYJGRlc3RkaXIiID0gIlgkZGVzdCIgJiYgZGVzdGRpcj0uCisrICAgICAgZGVzdG5hbWU9YCRl Y2hvICJYJGRlc3QiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKKysKKysgICAgICAjIE5vdCBhIGRp cmVjdG9yeSwgc28gY2hlY2sgdG8gc2VlIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmlsZSBzcGVj aWZpZWQuCisrICAgICAgc2V0IGR1bW15ICRmaWxlcworKyAgICAgIGlmIHRlc3QgIiQjIiAtZ3Qg MjsgdGhlbgorKwkkZWNobyAiJG1vZGVuYW1lOiBcYCRkZXN0JyBpcyBub3QgYSBkaXJlY3Rvcnki IDE+JjIKKysJJGVjaG8gIiRoZWxwIiAxPiYyCisrCWV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICAg IGZpCisrICAgIGZpCisrICAgIGNhc2UgJGRlc3RkaXIgaW4KKysgICAgW1xcL10qIHwgW0EtWmEt el06W1xcL10qKSA7OworKyAgICAqKQorKyAgICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KKysJ Y2FzZSAkZmlsZSBpbgorKwkqLmxvKSA7OworKwkqKQorKwkgICRlY2hvICIkbW9kZW5hbWU6IFxg JGRlc3RkaXInIG11c3QgYmUgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUiIDE+JjIKKysJICAk ZWNobyAiJGhlbHAiIDE+JjIKKysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICA7OworKwllc2Fj CisrICAgICAgZG9uZQorKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBUaGlzIHZhcmlh YmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRvIHNldCB2YXJpYWJsZXMgcmF0aGVyCisr ICAgICMgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgorKyAgICBsaWJ0b29sX2luc3RhbGxf bWFnaWM9IiRtYWdpYyIKKysKKysgICAgc3RhdGljbGlicz0KKysgICAgZnV0dXJlX2xpYmRpcnM9 CisrICAgIGN1cnJlbnRfbGliZGlycz0KKysgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbworKwor KyAgICAgICMgRG8gZWFjaCBpbnN0YWxsYXRpb24uCisrICAgICAgY2FzZSAkZmlsZSBpbgorKyAg ICAgICouJGxpYmV4dCkKKysJIyBEbyB0aGUgc3RhdGljIGxpYnJhcmllcyBsYXRlci4KKysJc3Rh dGljbGlicz0iJHN0YXRpY2xpYnMgJGZpbGUiCisrCTs7CisrCisrICAgICAgKi5sYSkKKysJIyBD aGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KKysJaWYg KCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0Ui KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgorKwllbHNlCisrCSAgJGVjaG8gIiRtb2RlbmFtZTog XGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIiAxPiYyCisrCSAgJGVjaG8g IiRoZWxwIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCWZpCisrCisrCWxpYnJhcnlf bmFtZXM9CisrCW9sZF9saWJyYXJ5PQorKwlyZWxpbmtfY29tbWFuZD0KKysJIyBJZiB0aGVyZSBp cyBubyBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCisrCWNhc2UgJGZpbGUgaW4K KysJKi8qIHwgKlxcKikgLiAkZmlsZSA7OworKwkqKSAuIC4vJGZpbGUgOzsKKysJZXNhYworKwor KwkjIEFkZCB0aGUgbGliZGlyIHRvIGN1cnJlbnRfbGliZGlycyBpZiBpdCBpcyB0aGUgZGVzdGlu YXRpb24uCisrCWlmIHRlc3QgIlgkZGVzdGRpciIgPSAiWCRsaWJkaXIiOyB0aGVuCisrCSAgY2Fz ZSAiJGN1cnJlbnRfbGliZGlycyAiIGluCisrCSAgKiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBj dXJyZW50X2xpYmRpcnM9IiRjdXJyZW50X2xpYmRpcnMgJGxpYmRpciIgOzsKKysJICBlc2FjCisr CWVsc2UKKysJICAjIE5vdGUgdGhlIGxpYmRpciBhcyBhIGZ1dHVyZSBsaWJkaXIuCisrCSAgY2Fz ZSAiJGZ1dHVyZV9saWJkaXJzICIgaW4KKysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIGZ1 dHVyZV9saWJkaXJzPSIkZnV0dXJlX2xpYmRpcnMgJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWZp CisrCisrCWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYC8KKysJ dGVzdCAiWCRkaXIiID0gIlgkZmlsZS8iICYmIGRpcj0KKysJZGlyPSIkZGlyJG9iamRpciIKKysK KysJaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkgICMgRGV0ZXJtaW5lIHRo ZSBwcmVmaXggdGhlIHVzZXIgaGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCisrCSAgaW5z dF9wcmVmaXhfZGlyPWAkZWNobyAiJGRlc3RkaXIiIHwgJFNFRCAicyUkbGliZGlyXCQlJSJgCisr CisrCSAgIyBEb24ndCBhbGxvdyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRlIG9mIG91ciBl eHBlY3RlZAorKwkgICMgbG9jYXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGluZyBkZXBlbmRl bnQgbGlicmFyaWVzIHRoYXQKKysJICAjIGFyZSBpbnN0YWxsZWQgdG8gdGhlIHNhbWUgcHJlZml4 LgorKwkgICMgQXQgcHJlc2VudCwgdGhpcyBjaGVjayBkb2Vzbid0IGFmZmVjdCB3aW5kb3dzIC5k bGwncyB0aGF0CisrCSAgIyBhcmUgaW5zdGFsbGVkIGludG8gJGxpYmRpci8uLi9iaW4gKGN1cnJl bnRseSwgdGhhdCB3b3JrcyBmaW5lKQorKwkgICMgYnV0IGl0J3Mgc29tZXRoaW5nIHRvIGtlZXAg YW4gZXllIG9uLgorKwkgIGlmIHRlc3QgIiRpbnN0X3ByZWZpeF9kaXIiID0gIiRkZXN0ZGlyIjsg dGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogZXJyb3I6IGNhbm5vdCBpbnN0YWxsIFxgJGZp bGUnIHRvIGEgZGlyZWN0b3J5IG5vdCBlbmRpbmcgaW4gJGxpYmRpciIgMT4mMgorKwkgICAgZXhp dCAkRVhJVF9GQUlMVVJFCisrCSAgZmkKKysKKysJICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhf ZGlyIjsgdGhlbgorKwkgICAgIyBTdGljayB0aGUgaW5zdF9wcmVmaXhfZGlyIGRhdGEgaW50byB0 aGUgbGluayBjb21tYW5kLgorKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRlY2hvICIkcmVsaW5rX2Nv bW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVmaXgt ZGlyICRpbnN0X3ByZWZpeF9kaXIlIiB8ICROTDJTUGAKKysJICBlbHNlCisrCSAgICByZWxpbmtf Y29tbWFuZD1gJGVjaG8gIiRyZWxpbmtfY29tbWFuZCIgfCAkU1AyTkwgfCAkU0VEICJzJUBpbnN0 X3ByZWZpeF9kaXJAJSUiIHwgJE5MMlNQYAorKwkgIGZpCisrCisrCSAgJGVjaG8gIiRtb2RlbmFt ZTogd2FybmluZzogcmVsaW5raW5nIFxgJGZpbGUnIiAxPiYyCisrCSAgJHNob3cgIiRyZWxpbmtf Y29tbWFuZCIKKysJICBpZiAkcnVuIGV2YWwgIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4gOgorKwkg IGVsc2UKKysJICAgICRlY2hvICIkbW9kZW5hbWU6IGVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0 aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIgMT4mMgorKwkgICAgZXhp dCAkRVhJVF9GQUlMVVJFCisrCSAgZmkKKysJZmkKKysKKysJIyBTZWUgdGhlIG5hbWVzIG9mIHRo ZSBzaGFyZWQgbGlicmFyeS4KKysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCisrCWlmIHRlc3Qg LW4gIiQyIjsgdGhlbgorKwkgIHJlYWxuYW1lPSIkMiIKKysJICBzaGlmdAorKwkgIHNoaWZ0Cisr CisrCSAgc3JjbmFtZT0iJHJlYWxuYW1lIgorKwkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCIg JiYgc3JjbmFtZT0iJHJlYWxuYW1lIlQKKysKKysJICAjIEluc3RhbGwgdGhlIHNoYXJlZCBsaWJy YXJ5IGFuZCBidWlsZCB0aGUgc3ltbGlua3MuCisrCSAgJHNob3cgIiRpbnN0YWxsX3Byb2cgJGRp ci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5hbWUiCisrCSAgJHJ1biBldmFsICIkaW5zdGFsbF9w cm9nICRkaXIvJHNyY25hbWUgJGRlc3RkaXIvJHJlYWxuYW1lIiB8fCBleGl0ICQ/CisrCSAgaWYg dGVzdCAtbiAiJHN0cmlwbWUiICYmIHRlc3QgLW4gIiRzdHJpcGxpYiI7IHRoZW4KKysJICAgICRz aG93ICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1lIgorKwkgICAgJHJ1biBldmFsICIkc3Ry aXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1lIiB8fCBleGl0ICQ/CisrCSAgZmkKKysKKysJICBpZiB0 ZXN0ICIkIyIgLWd0IDA7IHRoZW4KKysJICAgICMgRGVsZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFu ZCBjcmVhdGUgbmV3IG9uZXMuCisrCSAgICAjIFRyeSBgbG4gLXNmJyBmaXJzdCwgYmVjYXVzZSB0 aGUgYGxuJyBiaW5hcnkgbWlnaHQgZGVwZW5kIG9uCisrCSAgICAjIHRoZSBzeW1saW5rIHdlIHJl cGxhY2UhICBTb2xhcmlzIC9iaW4vbG4gZG9lcyBub3QgdW5kZXJzdGFuZCAtZiwKKysJICAgICMg c28gd2UgYWxzbyBuZWVkIHRvIHRyeSBybSAmJiBsbiAtcy4KKysJICAgIGZvciBsaW5rbmFtZQor KwkgICAgZG8KKysJICAgICAgaWYgdGVzdCAiJGxpbmtuYW1lIiAhPSAiJHJlYWxuYW1lIjsgdGhl bgorKyAgICAgICAgICAgICAgICAkc2hvdyAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJl YWxuYW1lICRsaW5rbmFtZSB8fCB7ICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRs aW5rbmFtZTsgfTsgfSkiCisrICAgICAgICAgICAgICAgICRydW4gZXZhbCAiKGNkICRkZXN0ZGly ICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFtZSB8fCB7ICRybSAkbGlua25hbWUgJiYg JExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSkiCisrCSAgICAgIGZpCisrCSAgICBkb25l CisrCSAgZmkKKysKKysJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29t bWFuZHMuCisrCSAgbGliPSIkZGVzdGRpci8kcmVhbG5hbWUiCisrCSAgY21kcz0kcG9zdGluc3Rh bGxfY21kcworKwkgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgIGZvciBjbWQgaW4gJGNt ZHM7IGRvCisrCSAgICBJRlM9IiRzYXZlX2lmcyIKKysJICAgIGV2YWwgY21kPVwiJGNtZFwiCisr CSAgICAkc2hvdyAiJGNtZCIKKysJICAgICRydW4gZXZhbCAiJGNtZCIgfHwgeworKwkgICAgICBs dF9leGl0PSQ/CisrCisrCSAgICAgICMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBh bmQgZXhpdAorKwkgICAgICBpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJCSRydW4g ZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRybSAke3JlYWxuYW1lfVQgJiYgJG12ICR7cmVh bG5hbWV9VSAkcmVhbG5hbWUpJworKwkgICAgICBmaQorKworKwkgICAgICBleGl0ICRsdF9leGl0 CisrCSAgICB9CisrCSAgZG9uZQorKwkgIElGUz0iJHNhdmVfaWZzIgorKwlmaQorKworKwkjIElu c3RhbGwgdGhlIHBzZXVkby1saWJyYXJ5IGZvciBpbmZvcm1hdGlvbiBwdXJwb3Nlcy4KKysJbmFt ZT1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAorKwlpbnN0bmFtZT0iJGRp ci8kbmFtZSJpCisrCSRzaG93ICIkaW5zdGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFt ZSIKKysJJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIg fHwgZXhpdCAkPworKworKwkjIE1heWJlIGluc3RhbGwgdGhlIHN0YXRpYyBsaWJyYXJ5LCB0b28u CisrCXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGRp ci8kb2xkX2xpYnJhcnkiCisrCTs7CisrCisrICAgICAgKi5sbykKKysJIyBJbnN0YWxsIChpLmUu IGNvcHkpIGEgbGlidG9vbCBvYmplY3QuCisrCisrCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBm aWxlIG5hbWUsIGlmIGl0IHdhc24ndCBhbHJlYWR5IHNwZWNpZmllZC4KKysJaWYgdGVzdCAtbiAi JGRlc3RuYW1lIjsgdGhlbgorKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdG5hbWUiCisrCWVs c2UKKysJICBkZXN0ZmlsZT1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAor KwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdGZpbGUiCisrCWZpCisrCisrCSMgRGVkdWNlIHRo ZSBuYW1lIG9mIHRoZSBkZXN0aW5hdGlvbiBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCisrCWNhc2Ug JGRlc3RmaWxlIGluCisrCSoubG8pCisrCSAgc3RhdGljZGVzdD1gJGVjaG8gIlgkZGVzdGZpbGUi IHwgJFhzZWQgLWUgIiRsbzJvImAKKysJICA7OworKwkqLiRvYmpleHQpCisrCSAgc3RhdGljZGVz dD0iJGRlc3RmaWxlIgorKwkgIGRlc3RmaWxlPQorKwkgIDs7CisrCSopCisrCSAgJGVjaG8gIiRt b2RlbmFtZTogY2Fubm90IGNvcHkgYSBsaWJ0b29sIG9iamVjdCB0byBcYCRkZXN0ZmlsZSciIDE+ JjIKKysJICAkZWNobyAiJGhlbHAiIDE+JjIKKysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICA7 OworKwllc2FjCisrCisrCSMgSW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVk LgorKwlpZiB0ZXN0IC1uICIkZGVzdGZpbGUiOyB0aGVuCisrCSAgJHNob3cgIiRpbnN0YWxsX3By b2cgJGZpbGUgJGRlc3RmaWxlIgorKwkgICRydW4gZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAk ZGVzdGZpbGUiIHx8IGV4aXQgJD8KKysJZmkKKysKKysJIyBJbnN0YWxsIHRoZSBvbGQgb2JqZWN0 IGlmIGVuYWJsZWQuCisrCWlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKysJ ICAjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgb2xkLXN0eWxlIG9iamVjdCBmaWxlLgorKwkgIHN0 YXRpY29iaj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAiJGxvMm8iYAorKworKwkgICRzaG93 ICIkaW5zdGFsbF9wcm9nICRzdGF0aWNvYmogJHN0YXRpY2Rlc3QiCisrCSAgJHJ1biBldmFsICIk aW5zdGFsbF9wcm9nIFwkc3RhdGljb2JqIFwkc3RhdGljZGVzdCIgfHwgZXhpdCAkPworKwlmaQor KwlleGl0ICRFWElUX1NVQ0NFU1MKKysJOzsKKysKKysgICAgICAqKQorKwkjIEZpZ3VyZSBvdXQg ZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCisr CWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRl c3RuYW1lIgorKwllbHNlCisrCSAgZGVzdGZpbGU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUg J3MlXi4qLyUlJ2AKKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgorKwlmaQorKwor KwkjIElmIHRoZSBmaWxlIGlzIG1pc3NpbmcsIGFuZCB0aGVyZSBpcyBhIC5leGUgb24gdGhlIGVu ZCwgc3RyaXAgaXQKKysJIyBiZWNhdXNlIGl0IGlzIG1vc3QgbGlrZWx5IGEgbGlidG9vbCBzY3Jp cHQgd2UgYWN0dWFsbHkgd2FudCB0bworKwkjIGluc3RhbGwKKysJc3RyaXBwZWRfZXh0PSIiCisr CWNhc2UgJGZpbGUgaW4KKysJICAqLmV4ZSkKKysJICAgIGlmIHRlc3QgISAtZiAiJGZpbGUiOyB0 aGVuCisrCSAgICAgIGZpbGU9YCRlY2hvICRmaWxlfCR7U0VEfSAncywuZXhlJCwsJ2AKKysJICAg ICAgc3RyaXBwZWRfZXh0PSIuZXhlIgorKwkgICAgZmkKKysJICAgIDs7CisrCWVzYWMKKysKKysJ IyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgor KwljYXNlICRob3N0IGluCisrCSpjeWd3aW4qfCptaW5ndyopCisrCSAgICB3cmFwcGVyPWAkZWNo byAkZmlsZSB8ICR7U0VEfSAtZSAncywuZXhlJCwsJ2AKKysJICAgIDs7CisrCSopCisrCSAgICB3 cmFwcGVyPSRmaWxlCisrCSAgICA7OworKwllc2FjCisrCWlmICgke1NFRH0gLWUgJzRxJyAkd3Jh cHBlciB8IGdyZXAgIl4jIEdlbmVyYXRlZCBieSAuKiRQQUNLQUdFIik+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysJICBub3RpbnN0X2RlcGxpYnM9CisrCSAgcmVsaW5rX2NvbW1hbmQ9CisrCisrCSAg IyBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2FyeSBvbiBjeWd3aW4vbWluZ3cgdG8gYXBwZW5k IGEgZG90IHRvCisrCSAgIyBmb28gZXZlbiBpZiBib3RoIGZvbyBhbmQgRklMRS5leGUgZXhpc3Q6 IGF1dG9tYXRpYy1hcHBlbmQtLmV4ZQorKwkgICMgYmVoYXZpb3IgaGFwcGVucyBvbmx5IGZvciBl eGVjKDMpLCBub3QgZm9yIG9wZW4oMikhICBBbHNvLCBzb3VyY2luZworKwkgICMgYEZJTEUuJyBk b2VzIG5vdCB3b3JrIG9uIGN5Z3dpbiBtYW5hZ2VkIG1vdW50cy4KKysJICAjCisrCSAgIyBJZiB0 aGVyZSBpcyBubyBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCisrCSAgY2FzZSAk d3JhcHBlciBpbgorKwkgICovKiB8ICpcXCopIC4gJHt3cmFwcGVyfSA7OworKwkgICopIC4gLi8k e3dyYXBwZXJ9IDs7CisrCSAgZXNhYworKworKwkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0 IHNob3VsZCBoYXZlIGJlZW4gc2V0LgorKwkgIGlmIHRlc3QgLXogIiRub3RpbnN0X2RlcGxpYnMi OyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBz Y3JpcHQgXGAkd3JhcHBlciciIDE+JjIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwkgIGZp CisrCisrCSAgZmluYWxpemU9eWVzCisrCSAgZm9yIGxpYiBpbiAkbm90aW5zdF9kZXBsaWJzOyBk bworKwkgICAgIyBDaGVjayB0byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFsbGVkLgor KwkgICAgbGliZGlyPQorKwkgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJICAgICAgIyBJ ZiB0aGVyZSBpcyBubyBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCisrCSAgICAg IGNhc2UgJGxpYiBpbgorKwkgICAgICAqLyogfCAqXFwqKSAuICRsaWIgOzsKKysJICAgICAgKikg LiAuLyRsaWIgOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICAgIGxpYmZpbGU9IiRsaWJk aXIvImAkZWNobyAiWCRsaWIiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6 IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAorKwkgICAgaWYgdGVzdCAtbiAiJGxpYmRpciIgJiYg dGVzdCAhIC1mICIkbGliZmlsZSI7IHRoZW4KKysJICAgICAgJGVjaG8gIiRtb2RlbmFtZTogd2Fy bmluZzogXGAkbGliJyBoYXMgbm90IGJlZW4gaW5zdGFsbGVkIGluIFxgJGxpYmRpciciIDE+JjIK KysJICAgICAgZmluYWxpemU9bm8KKysJICAgIGZpCisrCSAgZG9uZQorKworKwkgIHJlbGlua19j b21tYW5kPQorKwkgICMgTm90ZSB0aGF0IGl0IGlzIG5vdCBuZWNlc3Nhcnkgb24gY3lnd2luL21p bmd3IHRvIGFwcGVuZCBhIGRvdCB0bworKwkgICMgZm9vIGV2ZW4gaWYgYm90aCBmb28gYW5kIEZJ TEUuZXhlIGV4aXN0OiBhdXRvbWF0aWMtYXBwZW5kLS5leGUKKysJICAjIGJlaGF2aW9yIGhhcHBl bnMgb25seSBmb3IgZXhlYygzKSwgbm90IGZvciBvcGVuKDIpISAgQWxzbywgc291cmNpbmcKKysJ ICAjIGBGSUxFLicgZG9lcyBub3Qgd29yayBvbiBjeWd3aW4gbWFuYWdlZCBtb3VudHMuCisrCSAg IworKwkgICMgSWYgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25l LgorKwkgIGNhc2UgJHdyYXBwZXIgaW4KKysJICAqLyogfCAqXFwqKSAuICR7d3JhcHBlcn0gOzsK KysJICAqKSAuIC4vJHt3cmFwcGVyfSA7OworKwkgIGVzYWMKKysKKysJICBvdXRwdXRuYW1lPQor KwkgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0gbm8gJiYgdGVzdCAtbiAiJHJlbGlua19jb21t YW5kIjsgdGhlbgorKwkgICAgaWYgdGVzdCAiJGZpbmFsaXplIiA9IHllcyAmJiB0ZXN0IC16ICIk cnVuIjsgdGhlbgorKwkgICAgICB0bXBkaXI9YGZ1bmNfbWt0ZW1wZGlyYAorKwkgICAgICBmaWxl PWAkZWNobyAiWCRmaWxlJHN0cmlwcGVkX2V4dCIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAorKwkg ICAgICBvdXRwdXRuYW1lPSIkdG1wZGlyLyRmaWxlIgorKwkgICAgICAjIFJlcGxhY2UgdGhlIG91 dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisrCSAgICAgIHJlbGlua19jb21tYW5kPWAkZWNobyAi WCRyZWxpbmtfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRw dXRuYW1lIiclZycgfCAkTkwyU1BgCisrCisrCSAgICAgICRzaG93ICIkcmVsaW5rX2NvbW1hbmQi CisrCSAgICAgIGlmICRydW4gZXZhbCAiJHJlbGlua19jb21tYW5kIjsgdGhlbiA6CisrCSAgICAg IGVsc2UKKysJCSRlY2hvICIkbW9kZW5hbWU6IGVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0 aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIgMT4mMgorKwkJJHtybX1yICIk dG1wZGlyIgorKwkJY29udGludWUKKysJICAgICAgZmkKKysJICAgICAgZmlsZT0iJG91dHB1dG5h bWUiCisrCSAgICBlbHNlCisrCSAgICAgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGNhbm5v dCByZWxpbmsgXGAkZmlsZSciIDE+JjIKKysJICAgIGZpCisrCSAgZWxzZQorKwkgICAgIyBJbnN0 YWxsIHRoZSBiaW5hcnkgdGhhdCB3ZSBjb21waWxlZCBlYXJsaWVyLgorKwkgICAgZmlsZT1gJGVj aG8gIlgkZmlsZSRzdHJpcHBlZF9leHQiIHwgJFhzZWQgLWUgInMlXChbXi9dKlwpJCUkb2JqZGly L1wxJSJgCisrCSAgZmkKKysJZmkKKysKKysJIyByZW1vdmUgLmV4ZSBzaW5jZSBjeWd3aW4gL3Vz ci9iaW4vaW5zdGFsbCB3aWxsIGFwcGVuZCBhbm90aGVyCisrCSMgb25lIGFueXdheSAKKysJY2Fz ZSAkaW5zdGFsbF9wcm9nLCRob3N0IGluCisrCSovdXNyL2Jpbi9pbnN0YWxsKiwqY3lnd2luKikK KysJICBjYXNlICRmaWxlOiRkZXN0ZmlsZSBpbgorKwkgICouZXhlOiouZXhlKQorKwkgICAgIyB0 aGlzIGlzIG9rCisrCSAgICA7OworKwkgICouZXhlOiopCisrCSAgICBkZXN0ZmlsZT0kZGVzdGZp bGUuZXhlCisrCSAgICA7OworKwkgICo6Ki5leGUpCisrCSAgICBkZXN0ZmlsZT1gJGVjaG8gJGRl c3RmaWxlIHwgJHtTRUR9IC1lICdzLC5leGUkLCwnYAorKwkgICAgOzsKKysJICBlc2FjCisrCSAg OzsKKysJZXNhYworKwkkc2hvdyAiJGluc3RhbGxfcHJvZyRzdHJpcG1lICRmaWxlICRkZXN0Zmls ZSIKKysJJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nXCRzdHJpcG1lIFwkZmlsZSBcJGRlc3RmaWxl IiB8fCBleGl0ICQ/CisrCXRlc3QgLW4gIiRvdXRwdXRuYW1lIiAmJiAke3JtfXIgIiR0bXBkaXIi CisrCTs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAgIGZvciBmaWxlIGluICRzdGF0 aWNsaWJzOyBkbworKyAgICAgIG5hbWU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4q LyUlJ2AKKysKKysgICAgICAjIFNldCB1cCB0aGUgcmFubGliIHBhcmFtZXRlcnMuCisrICAgICAg b2xkbGliPSIkZGVzdGRpci8kbmFtZSIKKysKKysgICAgICAkc2hvdyAiJGluc3RhbGxfcHJvZyAk ZmlsZSAkb2xkbGliIgorKyAgICAgICRydW4gZXZhbCAiJGluc3RhbGxfcHJvZyBcJGZpbGUgXCRv bGRsaWIiIHx8IGV4aXQgJD8KKysKKysgICAgICBpZiB0ZXN0IC1uICIkc3RyaXBtZSIgJiYgdGVz dCAtbiAiJG9sZF9zdHJpcGxpYiI7IHRoZW4KKysJJHNob3cgIiRvbGRfc3RyaXBsaWIgJG9sZGxp YiIKKysJJHJ1biBldmFsICIkb2xkX3N0cmlwbGliICRvbGRsaWIiIHx8IGV4aXQgJD8KKysgICAg ICBmaQorKworKyAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21t YW5kcy4KKysgICAgICBjbWRzPSRvbGRfcG9zdGluc3RhbGxfY21kcworKyAgICAgIHNhdmVfaWZz PSIkSUZTIjsgSUZTPSd+JworKyAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCisrCUlGUz0iJHNh dmVfaWZzIgorKwlldmFsIGNtZD1cIiRjbWRcIgorKwkkc2hvdyAiJGNtZCIKKysJJHJ1biBldmFs ICIkY21kIiB8fCBleGl0ICQ/CisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJHNhdmVfaWZzIgor KyAgICBkb25lCisrCisrICAgIGlmIHRlc3QgLW4gIiRmdXR1cmVfbGliZGlycyI7IHRoZW4KKysg ICAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiByZW1lbWJlciB0byBydW4gXGAkcHJvZ25h bWUgLS1maW5pc2gkZnV0dXJlX2xpYmRpcnMnIiAxPiYyCisrICAgIGZpCisrCisrICAgIGlmIHRl c3QgLW4gIiRjdXJyZW50X2xpYmRpcnMiOyB0aGVuCisrICAgICAgIyBNYXliZSBqdXN0IGRvIGEg ZHJ5IHJ1bi4KKysgICAgICB0ZXN0IC1uICIkcnVuIiAmJiBjdXJyZW50X2xpYmRpcnM9IiAtbiRj dXJyZW50X2xpYmRpcnMiCisrICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNl cnZlX2FyZ3MgLS1maW5pc2gkY3VycmVudF9saWJkaXJzJworKyAgICBlbHNlCisrICAgICAgZXhp dCAkRVhJVF9TVUNDRVNTCisrICAgIGZpCisrICAgIDs7CisrCisrICAjIGxpYnRvb2wgZmluaXNo IG1vZGUKKysgIGZpbmlzaCkKKysgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogZmluaXNoIgorKyAg ICBsaWJkaXJzPSIkbm9ub3B0IgorKyAgICBhZG1pbmNtZHM9CisrCisrICAgIGlmIHRlc3QgLW4g IiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCisr ICAgICAgZm9yIGRpcgorKyAgICAgIGRvCisrCWxpYmRpcnM9IiRsaWJkaXJzICRkaXIiCisrICAg ICAgZG9uZQorKworKyAgICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisrCWlmIHRlc3Qg LW4gIiRmaW5pc2hfY21kcyI7IHRoZW4KKysJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgZmlu aXNoIGNvbW1hbmRzLgorKwkgIGNtZHM9JGZpbmlzaF9jbWRzCisrCSAgc2F2ZV9pZnM9IiRJRlMi OyBJRlM9J34nCisrCSAgZm9yIGNtZCBpbiAkY21kczsgZG8KKysJICAgIElGUz0iJHNhdmVfaWZz IgorKwkgICAgZXZhbCBjbWQ9XCIkY21kXCIKKysJICAgICRzaG93ICIkY21kIgorKwkgICAgJHJ1 biBldmFsICIkY21kIiB8fCBhZG1pbmNtZHM9IiRhZG1pbmNtZHMKKysgICAgICAgJGNtZCIKKysJ ICBkb25lCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5pc2hf ZXZhbCI7IHRoZW4KKysJICAjIERvIHRoZSBzaW5nbGUgZmluaXNoX2V2YWwuCisrCSAgZXZhbCBj bWRzPVwiJGZpbmlzaF9ldmFsXCIKKysJICAkcnVuIGV2YWwgIiRjbWRzIiB8fCBhZG1pbmNtZHM9 IiRhZG1pbmNtZHMKKysgICAgICAgJGNtZHMiCisrCWZpCisrICAgICAgZG9uZQorKyAgICBmaQor KworKyAgICAjIEV4aXQgaGVyZSBpZiB0aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KKysgICAgdGVz dCAiJHNob3ciID0gOiAmJiBleGl0ICRFWElUX1NVQ0NFU1MKKysKKysgICAgJGVjaG8gIlgtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIiB8ICRYc2VkCisrICAgICRlY2hvICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3Rh bGxlZCBpbjoiCisrICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisrICAgICAgJGVjaG8g IiAgICRsaWJkaXIiCisrICAgIGRvbmUKKysgICAgJGVjaG8KKysgICAgJGVjaG8gIklmIHlvdSBl dmVyIGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgor KyAgICAkZWNobyAiaW4gYSBnaXZlbiBkaXJlY3RvcnksIExJQkRJUiwgeW91IG11c3QgZWl0aGVy IHVzZSBsaWJ0b29sLCBhbmQiCisrICAgICRlY2hvICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1l IG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxMSUJESVInIgorKyAgICAkZWNobyAiZmxh ZyBkdXJpbmcgbGlua2luZyBhbmQgZG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6Igor KyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKysgICAgICAkZWNobyAiICAg LSBhZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJs ZSIKKysgICAgICAkZWNobyAiICAgICBkdXJpbmcgZXhlY3V0aW9uIgorKyAgICBmaQorKyAgICBp ZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrICAgICAgJGVjaG8gIiAgIC0gYWRkIExJ QkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorKyAgICAg ICRlY2hvICIgICAgIGR1cmluZyBsaW5raW5nIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1uICIk aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKysgICAgICBsaWJkaXI9TElCRElSCisr ICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorKworKyAgICAg ICRlY2hvICIgICAtIHVzZSB0aGUgXGAkZmxhZycgbGlua2VyIGZsYWciCisrICAgIGZpCisrICAg IGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCisrICAgICAgJGVjaG8gIiAgIC0gaGF2ZSB5 b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHJ1biB0aGVzZSBjb21tYW5kczokYWRtaW5jbWRzIgor KyAgICBmaQorKyAgICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgorKyAgICAgICRl Y2hvICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBhZGQgTElCRElSIHRvIFxg L2V0Yy9sZC5zby5jb25mJyIKKysgICAgZmkKKysgICAgJGVjaG8KKysgICAgJGVjaG8gIlNlZSBh bnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMg Zm9yIgorKyAgICAkZWNobyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5k IGxkLnNvKDgpIG1hbnVhbCBwYWdlcy4iCisrICAgICRlY2hvICJYLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCAk WHNlZAorKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgOzsKKysKKysgICMgbGlidG9vbCBl eGVjdXRlIG1vZGUKKysgIGV4ZWN1dGUpCisrICAgIG1vZGVuYW1lPSIkbW9kZW5hbWU6IGV4ZWN1 dGUiCisrCisrICAgICMgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBjb21tYW5kIG5hbWUuCisr ICAgIGNtZD0iJG5vbm9wdCIKKysgICAgaWYgdGVzdCAteiAiJGNtZCI7IHRoZW4KKysgICAgICAk ZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGEgQ09NTUFORCIgMT4mMgorKyAgICAg ICRlY2hvICIkaGVscCIKKysgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgZmkKKysKKysg ICAgIyBIYW5kbGUgLWRsb3BlbiBmbGFncyBpbW1lZGlhdGVseS4KKysgICAgZm9yIGZpbGUgaW4g JGV4ZWN1dGVfZGxmaWxlczsgZG8KKysgICAgICBpZiB0ZXN0ICEgLWYgIiRmaWxlIjsgdGhlbgor KwkkZWNobyAiJG1vZGVuYW1lOiBcYCRmaWxlJyBpcyBub3QgYSBmaWxlIiAxPiYyCisrCSRlY2hv ICIkaGVscCIgMT4mMgorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgICBmaQorKworKyAgICAg IGRpcj0KKysgICAgICBjYXNlICRmaWxlIGluCisrICAgICAgKi5sYSkKKysJIyBDaGVjayB0byBz ZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KKysJaWYgKCR7U0VEfSAt ZSAnMnEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9u dWxsIDI+JjE7IHRoZW4gOgorKwllbHNlCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkbGliJyBp cyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiIDE+JjIKKysJICAkZWNobyAiJGhlbHAiIDE+ JjIKKysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJZmkKKysKKysJIyBSZWFkIHRoZSBsaWJ0b29s IGxpYnJhcnkuCisrCWRsbmFtZT0KKysJbGlicmFyeV9uYW1lcz0KKysKKysJIyBJZiB0aGVyZSBp cyBubyBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCisrCWNhc2UgJGZpbGUgaW4K KysJKi8qIHwgKlxcKikgLiAkZmlsZSA7OworKwkqKSAuIC4vJGZpbGUgOzsKKysJZXNhYworKwor KwkjIFNraXAgdGhpcyBsaWJyYXJ5IGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZC4KKysJaWYgdGVz dCAteiAiJGRsbmFtZSI7IHRoZW4KKysJICAjIFdhcm4gaWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJh cnkuCisrCSAgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmICRlY2hvICIkbW9kZW5hbWU6IHdh cm5pbmc6IFxgJGZpbGUnIHdhcyBub3QgbGlua2VkIHdpdGggXGAtZXhwb3J0LWR5bmFtaWMnIgor KwkgIGNvbnRpbnVlCisrCWZpCisrCisrCWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAn cyUvW14vXSokJSUnYAorKwl0ZXN0ICJYJGRpciIgPSAiWCRmaWxlIiAmJiBkaXI9LgorKworKwlp ZiB0ZXN0IC1mICIkZGlyLyRvYmpkaXIvJGRsbmFtZSI7IHRoZW4KKysJICBkaXI9IiRkaXIvJG9i amRpciIKKysJZWxzZQorKwkgIGlmIHRlc3QgISAtZiAiJGRpci8kZGxuYW1lIjsgdGhlbgorKwkg ICAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBcYCRkaXInIG9y IFxgJGRpci8kb2JqZGlyJyIgMT4mMgorKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgZmkK KysJZmkKKysJOzsKKysKKysgICAgICAqLmxvKQorKwkjIEp1c3QgYWRkIHRoZSBkaXJlY3Rvcnkg Y29udGFpbmluZyB0aGUgLmxvIGZpbGUuCisrCWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAt ZSAncyUvW14vXSokJSUnYAorKwl0ZXN0ICJYJGRpciIgPSAiWCRmaWxlIiAmJiBkaXI9LgorKwk7 OworKworKyAgICAgICopCisrCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmcgXGAtZGxvcGVuJyBp cyBpZ25vcmVkIGZvciBub24tbGlidG9vbCBsaWJyYXJpZXMgYW5kIG9iamVjdHMiIDE+JjIKKysJ Y29udGludWUKKysJOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBHZXQgdGhlIGFic29sdXRl IHBhdGhuYW1lLgorKyAgICAgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKysgICAgICB0ZXN0 IC1uICIkYWJzZGlyIiAmJiBkaXI9IiRhYnNkaXIiCisrCisrICAgICAgIyBOb3cgYWRkIHRoZSBk aXJlY3RvcnkgdG8gc2hsaWJwYXRoX3Zhci4KKysgICAgICBpZiBldmFsICJ0ZXN0IC16IFwiXCQk c2hsaWJwYXRoX3ZhclwiIjsgdGhlbgorKwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyXCIi CisrICAgICAgZWxzZQorKwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0 aF92YXJcIiIKKysgICAgICBmaQorKyAgICBkb25lCisrCisrICAgICMgVGhpcyB2YXJpYWJsZSB0 ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQgc2hsaWJwYXRoX3ZhcgorKyAgICAjIHJh dGhlciB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfZXhlY3V0ZV9t YWdpYz0iJG1hZ2ljIgorKworKyAgICAjIENoZWNrIGlmIGFueSBvZiB0aGUgYXJndW1lbnRzIGlz IGEgd3JhcHBlciBzY3JpcHQuCisrICAgIGFyZ3M9CisrICAgIGZvciBmaWxlCisrICAgIGRvCisr ICAgICAgY2FzZSAkZmlsZSBpbgorKyAgICAgIC0qKSA7OworKyAgICAgICopCisrCSMgRG8gYSB0 ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KKysJaWYgKCR7 U0VEfSAtZSAnNHEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAjIElmIHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBjb21w b25lbnQsIHRoZW4gYWRkIG9uZS4KKysJICBjYXNlICRmaWxlIGluCisrCSAgKi8qIHwgKlxcKikg LiAkZmlsZSA7OworKwkgICopIC4gLi8kZmlsZSA7OworKwkgIGVzYWMKKysKKysJICAjIFRyYW5z Zm9ybSBhcmcgdG8gd3JhcHBlZCBuYW1lLgorKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgor KwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICAjIFF1b3RlIGFyZ3VtZW50cyAodG8gcHJl c2VydmUgc2hlbGwgbWV0YWNoYXJhY3RlcnMpLgorKyAgICAgIGZpbGU9YCRlY2hvICJYJGZpbGUi IHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGFyZ3M9IiRhcmdzIFwiJGZp bGVcIiIKKysgICAgZG9uZQorKworKyAgICBpZiB0ZXN0IC16ICIkcnVuIjsgdGhlbgorKyAgICAg IGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorKwkjIEV4cG9ydCB0aGUgc2hsaWJw YXRoX3Zhci4KKysJZXZhbCAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorKyAgICAgIGZpCisrCisr ICAgICAgIyBSZXN0b3JlIHNhdmVkIGVudmlyb25tZW50IHZhcmlhYmxlcworKyAgICAgIGZvciBs dF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNT QUdFUworKyAgICAgIGRvCisrCWV2YWwgImlmIHRlc3QgXCJcJHtzYXZlXyRsdF92YXIrc2V0fVwi ID0gc2V0OyB0aGVuCisrCQkkbHRfdmFyPVwkc2F2ZV8kbHRfdmFyOyBleHBvcnQgJGx0X3Zhcgor KwkgICAgICBmaSIKKysgICAgICBkb25lCisrCisrICAgICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1 YWxseSBleGVjIHRoZSBjb21tYW5kLgorKyAgICAgIGV4ZWNfY21kPSJcJGNtZCRhcmdzIgorKyAg ICBlbHNlCisrICAgICAgIyBEaXNwbGF5IHdoYXQgd291bGQgYmUgZG9uZS4KKysgICAgICBpZiB0 ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKysJZXZhbCAiXCRlY2hvIFwiXCRzaGxpYnBh dGhfdmFyPVwkJHNobGlicGF0aF92YXJcIiIKKysJJGVjaG8gImV4cG9ydCAkc2hsaWJwYXRoX3Zh ciIKKysgICAgICBmaQorKyAgICAgICRlY2hvICIkY21kJGFyZ3MiCisrICAgICAgZXhpdCAkRVhJ VF9TVUNDRVNTCisrICAgIGZpCisrICAgIDs7CisrCisrICAjIGxpYnRvb2wgY2xlYW4gYW5kIHVu aW5zdGFsbCBtb2RlCisrICBjbGVhbiB8IHVuaW5zdGFsbCkKKysgICAgbW9kZW5hbWU9IiRtb2Rl bmFtZTogJG1vZGUiCisrICAgIHJtPSIkbm9ub3B0IgorKyAgICBmaWxlcz0KKysgICAgcm1mb3Jj ZT0KKysgICAgZXhpdF9zdGF0dXM9MAorKworKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3Jh cHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKKysgICAgIyB0aGFuIHJ1 bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2lj IgorKworKyAgICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAg LWYpIHJtPSIkcm0gJGFyZyI7IHJtZm9yY2U9eWVzIDs7CisrICAgICAgLSopIHJtPSIkcm0gJGFy ZyIgOzsKKysgICAgICAqKSBmaWxlcz0iJGZpbGVzICRhcmciIDs7CisrICAgICAgZXNhYworKyAg ICBkb25lCisrCisrICAgIGlmIHRlc3QgLXogIiRybSI7IHRoZW4KKysgICAgICAkZWNobyAiJG1v ZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGFuIFJNIHByb2dyYW0iIDE+JjIKKysgICAgICAkZWNo byAiJGhlbHAiIDE+JjIKKysgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgZmkKKysKKysg ICAgcm1kaXJzPQorKworKyAgICBvcmlnb2JqZGlyPSIkb2JqZGlyIgorKyAgICBmb3IgZmlsZSBp biAkZmlsZXM7IGRvCisrICAgICAgZGlyPWAkZWNobyAiWCRmaWxlIiB8ICRYc2VkIC1lICdzJS9b Xi9dKiQlJSdgCisrICAgICAgaWYgdGVzdCAiWCRkaXIiID0gIlgkZmlsZSI7IHRoZW4KKysJZGly PS4KKysJb2JqZGlyPSIkb3JpZ29iamRpciIKKysgICAgICBlbHNlCisrCW9iamRpcj0iJGRpci8k b3JpZ29iamRpciIKKysgICAgICBmaQorKyAgICAgIG5hbWU9YCRlY2hvICJYJGZpbGUiIHwgJFhz ZWQgLWUgJ3MlXi4qLyUlJ2AKKysgICAgICB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgJiYgb2Jq ZGlyPSIkZGlyIgorKworKyAgICAgICMgUmVtZW1iZXIgb2JqZGlyIGZvciByZW1vdmFsIGxhdGVy LCBiZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1cGxpY2F0ZXMKKysgICAgICBpZiB0ZXN0ICIkbW9k ZSIgPSBjbGVhbjsgdGhlbgorKwljYXNlICIgJHJtZGlycyAiIGluCisrCSAgKiIgJG9iamRpciAi KikgOzsKKysJICAqKSBybWRpcnM9IiRybWRpcnMgJG9iamRpciIgOzsKKysJZXNhYworKyAgICAg IGZpCisrCisrICAgICAgIyBEb24ndCBlcnJvciBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IGFu ZCBybSAtZiB3YXMgdXNlZC4KKysgICAgICBpZiAodGVzdCAtTCAiJGZpbGUiKSA+L2Rldi9udWxs IDI+JjEgXAorKwl8fCAodGVzdCAtaCAiJGZpbGUiKSA+L2Rldi9udWxsIDI+JjEgXAorKwl8fCB0 ZXN0IC1mICIkZmlsZSI7IHRoZW4KKysJOgorKyAgICAgIGVsaWYgdGVzdCAtZCAiJGZpbGUiOyB0 aGVuCisrCWV4aXRfc3RhdHVzPTEKKysJY29udGludWUKKysgICAgICBlbGlmIHRlc3QgIiRybWZv cmNlIiA9IHllczsgdGhlbgorKwljb250aW51ZQorKyAgICAgIGZpCisrCisrICAgICAgcm1maWxl cz0iJGZpbGUiCisrCisrICAgICAgY2FzZSAkbmFtZSBpbgorKyAgICAgICoubGEpCisrCSMgUG9z c2libHkgYSBsaWJ0b29sIGFyY2hpdmUsIHNvIHZlcmlmeSBpdC4KKysJaWYgKCR7U0VEfSAtZSAn MnEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4KKysJICAuICRkaXIvJG5hbWUKKysKKysJICAjIERlbGV0ZSB0aGUgbGlidG9v bCBsaWJyYXJpZXMgYW5kIHN5bWxpbmtzLgorKwkgIGZvciBuIGluICRsaWJyYXJ5X25hbWVzOyBk bworKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbiIKKysJICBkb25lCisrCSAgdGVz dCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRvbGRfbGli cmFyeSIKKysKKysJICBjYXNlICIkbW9kZSIgaW4KKysJICBjbGVhbikKKysJICAgIGNhc2UgIiAg JGxpYnJhcnlfbmFtZXMgIiBpbgorKwkgICAgIyAiICAiIGluIHRoZSBiZWdpbm5pbmcgY2F0Y2hl cyBlbXB0eSAkZGxuYW1lCisrCSAgICAqIiAkZGxuYW1lICIqKSA7OworKwkgICAgKikgcm1maWxl cz0iJHJtZmlsZXMgJG9iamRpci8kZGxuYW1lIiA7OworKwkgICAgZXNhYworKwkgICAgIHRlc3Qg LW4gIiRsaWJkaXIiICYmIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9iamRpci8k e25hbWV9aSIKKysJICAgIDs7CisrCSAgdW5pbnN0YWxsKQorKwkgICAgaWYgdGVzdCAtbiAiJGxp YnJhcnlfbmFtZXMiOyB0aGVuCisrCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0 dW5pbnN0YWxsIGNvbW1hbmRzLgorKwkgICAgICBjbWRzPSRwb3N0dW5pbnN0YWxsX2NtZHMKKysJ ICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAgICAgIGZvciBjbWQgaW4gJGNtZHM7 IGRvCisrCQlJRlM9IiRzYXZlX2lmcyIKKysJCWV2YWwgY21kPVwiJGNtZFwiCisrCQkkc2hvdyAi JGNtZCIKKysJCSRydW4gZXZhbCAiJGNtZCIKKysJCWlmIHRlc3QgIiQ/IiAtbmUgMCAmJiB0ZXN0 ICIkcm1mb3JjZSIgIT0geWVzOyB0aGVuCisrCQkgIGV4aXRfc3RhdHVzPTEKKysJCWZpCisrCSAg ICAgIGRvbmUKKysJICAgICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgICBmaQorKworKwkgICAgaWYg dGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgorKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBp biB0aGUgb2xkX3Bvc3R1bmluc3RhbGwgY29tbWFuZHMuCisrCSAgICAgIGNtZHM9JG9sZF9wb3N0 dW5pbnN0YWxsX2NtZHMKKysJICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAgICAg IGZvciBjbWQgaW4gJGNtZHM7IGRvCisrCQlJRlM9IiRzYXZlX2lmcyIKKysJCWV2YWwgY21kPVwi JGNtZFwiCisrCQkkc2hvdyAiJGNtZCIKKysJCSRydW4gZXZhbCAiJGNtZCIKKysJCWlmIHRlc3Qg IiQ/IiAtbmUgMCAmJiB0ZXN0ICIkcm1mb3JjZSIgIT0geWVzOyB0aGVuCisrCQkgIGV4aXRfc3Rh dHVzPTEKKysJCWZpCisrCSAgICAgIGRvbmUKKysJICAgICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAg ICBmaQorKwkgICAgIyBGSVhNRTogc2hvdWxkIHJlaW5zdGFsbCB0aGUgYmVzdCByZW1haW5pbmcg c2hhcmVkIGxpYnJhcnkuCisrCSAgICA7OworKwkgIGVzYWMKKysJZmkKKysJOzsKKysKKysgICAg ICAqLmxvKQorKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBvYmplY3QsIHNvIHZlcmlmeSBpdC4KKysJ aWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tB R0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysKKysJICAjIFJlYWQgdGhlIC5sbyBmaWxlCisr CSAgLiAkZGlyLyRuYW1lCisrCisrCSAgIyBBZGQgUElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBm aWxlcyB0byByZW1vdmUuCisrCSAgaWYgdGVzdCAtbiAiJHBpY19vYmplY3QiIFwKKysJICAgICAm JiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorKwkgICAgcm1maWxlcz0iJHJtZmls ZXMgJGRpci8kcGljX29iamVjdCIKKysJICBmaQorKworKwkgICMgQWRkIG5vbi1QSUMgb2JqZWN0 IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KKysJICBpZiB0ZXN0IC1uICIkbm9uX3Bp Y19vYmplY3QiIFwKKysJICAgICAmJiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRo ZW4KKysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIvJG5vbl9waWNfb2JqZWN0IgorKwkgIGZp CisrCWZpCisrCTs7CisrCisrICAgICAgKikKKysJaWYgdGVzdCAiJG1vZGUiID0gY2xlYW4gOyB0 aGVuCisrCSAgbm9leGVuYW1lPSRuYW1lCisrCSAgY2FzZSAkZmlsZSBpbgorKwkgICouZXhlKQor KwkgICAgZmlsZT1gJGVjaG8gJGZpbGV8JHtTRUR9ICdzLC5leGUkLCwnYAorKwkgICAgbm9leGVu YW1lPWAkZWNobyAkbmFtZXwke1NFRH0gJ3MsLmV4ZSQsLCdgCisrCSAgICAjICRmaWxlIHdpdGgg LmV4ZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHJtZmlsZXMsCisrCSAgICAjIGFkZCAkZmls ZSB3aXRob3V0IC5leGUKKysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRmaWxlIgorKwkgICAgOzsK KysJICBlc2FjCisrCSAgIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgYSBsaWJ0b29sIHBy b2dyYW0uCisrCSAgaWYgKCR7U0VEfSAtZSAnNHEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVk IGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAgIHJlbGlua19jb21t YW5kPQorKwkgICAgLiAkZGlyLyRub2V4ZW5hbWUKKysKKysJICAgICMgbm90ZSAkbmFtZSBzdGls bCBjb250YWlucyAuZXhlIGlmIGl0IHdhcyBpbiAkZmlsZSBvcmlnaW5hbGx5CisrCSAgICAjIGFz IGRvZXMgdGhlIHZlcnNpb24gb2YgJGZpbGUgdGhhdCB3YXMgYWRkZWQgaW50byAkcm1maWxlcwor KwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1TLiR7 b2JqZXh0fSIKKysJICAgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzICYmIHRlc3QgLW4g IiRyZWxpbmtfY29tbWFuZCI7IHRoZW4KKysJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRp ci9sdC0kbmFtZSIKKysJICAgIGZpCisrCSAgICBpZiB0ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgk bmFtZSIgOyB0aGVuCisrCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJHtub2V4 ZW5hbWV9LmMiCisrCSAgICBmaQorKwkgIGZpCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAg ICAgICRzaG93ICIkcm0gJHJtZmlsZXMiCisrICAgICAgJHJ1biAkcm0gJHJtZmlsZXMgfHwgZXhp dF9zdGF0dXM9MQorKyAgICBkb25lCisrICAgIG9iamRpcj0iJG9yaWdvYmpkaXIiCisrCisrICAg ICMgVHJ5IHRvIHJlbW92ZSB0aGUgJHtvYmpkaXJ9cyBpbiB0aGUgZGlyZWN0b3JpZXMgd2hlcmUg d2UgZGVsZXRlZCBmaWxlcworKyAgICBmb3IgZGlyIGluICRybWRpcnM7IGRvCisrICAgICAgaWYg dGVzdCAtZCAiJGRpciI7IHRoZW4KKysJJHNob3cgInJtZGlyICRkaXIiCisrCSRydW4gcm1kaXIg JGRpciA+L2Rldi9udWxsIDI+JjEKKysgICAgICBmaQorKyAgICBkb25lCisrCisrICAgIGV4aXQg JGV4aXRfc3RhdHVzCisrICAgIDs7CisrCisrICAiIikKKysgICAgJGVjaG8gIiRtb2RlbmFtZTog eW91IG11c3Qgc3BlY2lmeSBhIE1PREUiIDE+JjIKKysgICAgJGVjaG8gIiRnZW5lcmljX2hlbHAi IDE+JjIKKysgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgIDs7CisrICBlc2FjCisrCisrICBp ZiB0ZXN0IC16ICIkZXhlY19jbWQiOyB0aGVuCisrICAgICRlY2hvICIkbW9kZW5hbWU6IGludmFs aWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciIDE+JjIKKysgICAgJGVjaG8gIiRnZW5lcmljX2hl bHAiIDE+JjIKKysgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICBmaQorK2ZpICMgdGVzdCAteiAi JHNob3dfaGVscCIKKysKKytpZiB0ZXN0IC1uICIkZXhlY19jbWQiOyB0aGVuCisrICBldmFsIGV4 ZWMgJGV4ZWNfY21kCisrICBleGl0ICRFWElUX0ZBSUxVUkUKKytmaQorKworKyMgV2UgbmVlZCB0 byBkaXNwbGF5IGhlbHAgZm9yIGVhY2ggb2YgdGhlIG1vZGVzLgorK2Nhc2UgJG1vZGUgaW4KKysi IikgJGVjaG8gXAorKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIFtNT0RFLUFSR10uLi4K KysKKytQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNl cy4KKysKKysgICAgLS1jb25maWcgICAgICAgICAgc2hvdyBhbGwgY29uZmlndXJhdGlvbiB2YXJp YWJsZXMKKysgICAgLS1kZWJ1ZyAgICAgICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2lu ZworKy1uLCAtLWRyeS1ydW4gICAgICAgICBkaXNwbGF5IGNvbW1hbmRzIHdpdGhvdXQgbW9kaWZ5 aW5nIGFueSBmaWxlcworKyAgICAtLWZlYXR1cmVzICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZp Z3VyYXRpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKysgICAgLS1maW5pc2ggICAgICAgICAgc2Ft ZSBhcyBcYC0tbW9kZT1maW5pc2gnCisrICAgIC0taGVscCAgICAgICAgICAgIGRpc3BsYXkgdGhp cyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKKysgICAgLS1tb2RlPU1PREUgICAgICAgdXNlIG9wZXJh dGlvbiBtb2RlIE1PREUgW2RlZmF1bHQ9aW5mZXJyZWQgZnJvbSBNT0RFLUFSR1NdCisrICAgIC0t cXVpZXQgICAgICAgICAgIHNhbWUgYXMgXGAtLXNpbGVudCcKKysgICAgLS1zaWxlbnQgICAgICAg ICAgZG9uJ3QgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlcworKyAgICAtLXRhZz1UQUcgICAg ICAgICB1c2UgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZnJvbSB0YWcgVEFHCisrICAgIC0tdmVy c2lvbiAgICAgICAgIHByaW50IHZlcnNpb24gaW5mb3JtYXRpb24KKysKKytNT0RFIG11c3QgYmUg b25lIG9mIHRoZSBmb2xsb3dpbmc6CisrCisrICAgICAgY2xlYW4gICAgICAgICAgIHJlbW92ZSBm aWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkKKysgICAgICBjb21waWxlICAgICAgICAgY29t cGlsZSBhIHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIG9iamVjdAorKyAgICAgIGV4ZWN1dGUg ICAgICAgICBhdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3Jh bQorKyAgICAgIGZpbmlzaCAgICAgICAgICBjb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxp YnRvb2wgbGlicmFyaWVzCisrICAgICAgaW5zdGFsbCAgICAgICAgIGluc3RhbGwgbGlicmFyaWVz IG9yIGV4ZWN1dGFibGVzCisrICAgICAgbGluayAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkg b3IgYW4gZXhlY3V0YWJsZQorKyAgICAgIHVuaW5zdGFsbCAgICAgICByZW1vdmUgbGlicmFyaWVz IGZyb20gYW4gaW5zdGFsbGVkIGRpcmVjdG9yeQorKworK01PREUtQVJHUyB2YXJ5IGRlcGVuZGlu ZyBvbiB0aGUgTU9ERS4gIFRyeSBcYCRtb2RlbmFtZSAtLWhlbHAgLS1tb2RlPU1PREUnIGZvcgor K2EgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBNT0RFLgorKworK1JlcG9ydCBidWdzIHRv IDxidWctbGlidG9vbEBnbnUub3JnPi4iCisrICBleGl0ICRFWElUX1NVQ0NFU1MKKysgIDs7Cisr CisrY2xlYW4pCisrICAkZWNobyBcCisrIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0uLi4gLS1t b2RlPWNsZWFuIFJNIFtSTS1PUFRJT05dLi4uIEZJTEUuLi4KKysKKytSZW1vdmUgZmlsZXMgZnJv bSB0aGUgYnVpbGQgZGlyZWN0b3J5LgorKworK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFt IHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQorKyh0eXBp Y2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYn KSB0byBiZSBwYXNzZWQKKyt0byBSTS4KKysKKytJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5 LCBvYmplY3Qgb3IgcHJvZ3JhbSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lhdGVkCisrd2l0aCBpdCBh cmUgZGVsZXRlZC4gT3RoZXJ3aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcg Uk0uIgorKyAgOzsKKysKKytjb21waWxlKQorKyAgJGVjaG8gXAorKyJVc2FnZTogJG1vZGVuYW1l IFtPUFRJT05dLi4uIC0tbW9kZT1jb21waWxlIENPTVBJTEUtQ09NTUFORC4uLiBTT1VSQ0VGSUxF CisrCisrQ29tcGlsZSBhIHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIGxpYnJhcnkgb2JqZWN0 LgorKworK1RoaXMgbW9kZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25z OgorKworKyAgLW8gT1VUUFVULUZJTEUgICAgc2V0IHRoZSBvdXRwdXQgZmlsZSBuYW1lIHRvIE9V VFBVVC1GSUxFCisrICAtcHJlZmVyLXBpYyAgICAgICB0cnkgdG8gYnVpbGRpbmcgUElDIG9iamVj dHMgb25seQorKyAgLXByZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkaW5nIG5vbi1QSUMgb2Jq ZWN0cyBvbmx5CisrICAtc3RhdGljICAgICAgICAgICBhbHdheXMgYnVpbGQgYSBcYC5vJyBmaWxl IHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZworKworK0NPTVBJTEUtQ09NTUFORCBpcyBhIGNv bW1hbmQgdG8gYmUgdXNlZCBpbiBjcmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCisr ZnJvbSB0aGUgZ2l2ZW4gU09VUkNFRklMRS4KKysKKytUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBk ZXRlcm1pbmVkIGJ5IHJlbW92aW5nIHRoZSBkaXJlY3RvcnkgY29tcG9uZW50IGZyb20KKytTT1VS Q0VGSUxFLCB0aGVuIHN1YnN0aXR1dGluZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZmaXggXGAuYycg d2l0aCB0aGUKKytsaWJyYXJ5IG9iamVjdCBzdWZmaXgsIFxgLmxvJy4iCisrICA7OworKworK2V4 ZWN1dGUpCisrICAkZWNobyBcCisrIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2Rl PWV4ZWN1dGUgQ09NTUFORCBbQVJHU10uLi4KKysKKytBdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5 IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbS4KKysKKytUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9s bG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKKysKKysgIC1kbG9wZW4gRklMRSAgICAgIGFkZCB0 aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgRklMRSB0byB0aGUgbGlicmFyeSBwYXRoCisrCisrVGhp cyBtb2RlIHNldHMgdGhlIGxpYnJhcnkgcGF0aCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRp bmcgdG8gXGAtZGxvcGVuJworK2ZsYWdzLgorKworK0lmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGli dG9vbCBleGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5zbGF0ZWQKKytpbnRv IHRoZWlyIGNvcnJlc3BvbmRpbmcgdW5pbnN0YWxsZWQgYmluYXJ5LCBhbmQgYW55IG9mIHRoZWly IHJlcXVpcmVkIGxpYnJhcnkKKytkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkg cGF0aC4KKysKKytUaGVuLCBDT01NQU5EIGlzIGV4ZWN1dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1l bnRzLiIKKysgIDs7CisrCisrZmluaXNoKQorKyAgJGVjaG8gXAorKyJVc2FnZTogJG1vZGVuYW1l IFtPUFRJT05dLi4uIC0tbW9kZT1maW5pc2ggW0xJQkRJUl0uLi4KKysKKytDb21wbGV0ZSB0aGUg aW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzLgorKworK0VhY2ggTElCRElSIGlzIGEg ZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgbGlidG9vbCBsaWJyYXJpZXMuCisrCisrVGhlIGNvbW1h bmRzIHRoYXQgdGhpcyBtb2RlIGV4ZWN1dGVzIG1heSByZXF1aXJlIHN1cGVydXNlciBwcml2aWxl Z2VzLiAgVXNlCisrdGhlIFxgLS1kcnktcnVuJyBvcHRpb24gaWYgeW91IGp1c3Qgd2FudCB0byBz ZWUgd2hhdCB3b3VsZCBiZSBleGVjdXRlZC4iCisrICA7OworKworK2luc3RhbGwpCisrICAkZWNo byBcCisrIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3RhbGwgSU5TVEFM TC1DT01NQU5ELi4uCisrCisrSW5zdGFsbCBleGVjdXRhYmxlcyBvciBsaWJyYXJpZXMuCisrCisr SU5TVEFMTC1DT01NQU5EIGlzIHRoZSBpbnN0YWxsYXRpb24gY29tbWFuZC4gIFRoZSBmaXJzdCBj b21wb25lbnQgc2hvdWxkIGJlCisrZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3AnIHByb2dy YW0uCisrCisrVGhlIHJlc3Qgb2YgdGhlIGNvbXBvbmVudHMgYXJlIGludGVycHJldGVkIGFzIGFy Z3VtZW50cyB0byB0aGF0IGNvbW1hbmQgKG9ubHkKKytCU0QtY29tcGF0aWJsZSBpbnN0YWxsIG9w dGlvbnMgYXJlIHJlY29nbml6ZWQpLiIKKysgIDs7CisrCisrbGluaykKKysgICRlY2hvIFwKKysi VXNhZ2U6ICRtb2RlbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9bGluayBMSU5LLUNPTU1BTkQuLi4K KysKKytMaW5rIG9iamVjdCBmaWxlcyBvciBsaWJyYXJpZXMgdG9nZXRoZXIgdG8gZm9ybSBhbm90 aGVyIGxpYnJhcnksIG9yIHRvCisrY3JlYXRlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbS4KKysKKytM SU5LLUNPTU1BTkQgaXMgYSBjb21tYW5kIHVzaW5nIHRoZSBDIGNvbXBpbGVyIHRoYXQgeW91IHdv dWxkIHVzZSB0byBjcmVhdGUKKythIHByb2dyYW0gZnJvbSBzZXZlcmFsIG9iamVjdCBmaWxlcy4K KysKKytUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2YgTElOSy1DT01NQU5EIGFyZSB0cmVhdGVk IHNwZWNpYWxseToKKysKKysgIC1hbGwtc3RhdGljICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1p YyBsaW5raW5nIGF0IGFsbAorKyAgLWF2b2lkLXZlcnNpb24gICAgZG8gbm90IGFkZCBhIHZlcnNp b24gc3VmZml4IGlmIHBvc3NpYmxlCisrICAtZGxvcGVuIEZJTEUgICAgICBcYC1kbHByZW9wZW4n IEZJTEUgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkIGF0IHJ1bnRpbWUKKysgIC1kbHByZW9wZW4g RklMRSAgIGxpbmsgaW4gRklMRSBhbmQgYWRkIGl0cyBzeW1ib2xzIHRvIGx0X3ByZWxvYWRlZF9z eW1ib2xzCisrICAtZXhwb3J0LWR5bmFtaWMgICBhbGxvdyBzeW1ib2xzIGZyb20gT1VUUFVULUZJ TEUgdG8gYmUgcmVzb2x2ZWQgd2l0aCBkbHN5bSgzKQorKyAgLWV4cG9ydC1zeW1ib2xzIFNZTUZJ TEUKKysgICAgICAgICAgICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBs aXN0ZWQgaW4gU1lNRklMRQorKyAgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4IFJFR0VYCisrICAgICAg ICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbWF0Y2hpbmcgUkVH RVgKKysgIC1MTElCRElSICAgICAgICAgIHNlYXJjaCBMSUJESVIgZm9yIHJlcXVpcmVkIGluc3Rh bGxlZCBsaWJyYXJpZXMKKysgIC1sTkFNRSAgICAgICAgICAgIE9VVFBVVC1GSUxFIHJlcXVpcmVz IHRoZSBpbnN0YWxsZWQgbGlicmFyeSBsaWJOQU1FCisrICAtbW9kdWxlICAgICAgICAgICBidWls ZCBhIGxpYnJhcnkgdGhhdCBjYW4gZGxvcGVuZWQKKysgIC1uby1mYXN0LWluc3RhbGwgIGRpc2Fi bGUgdGhlIGZhc3QtaW5zdGFsbCBtb2RlCisrICAtbm8taW5zdGFsbCAgICAgICBsaW5rIGEgbm90 LWluc3RhbGxhYmxlIGV4ZWN1dGFibGUKKysgIC1uby11bmRlZmluZWQgICAgIGRlY2xhcmUgdGhh dCBhIGxpYnJhcnkgZG9lcyBub3QgcmVmZXIgdG8gZXh0ZXJuYWwgc3ltYm9scworKyAgLW8gT1VU UFVULUZJTEUgICAgY3JlYXRlIE9VVFBVVC1GSUxFIGZyb20gdGhlIHNwZWNpZmllZCBvYmplY3Rz CisrICAtb2JqZWN0bGlzdCBGSUxFICBVc2UgYSBsaXN0IG9mIG9iamVjdCBmaWxlcyBmb3VuZCBp biBGSUxFIHRvIHNwZWNpZnkgb2JqZWN0cworKyAgLXByZWNpb3VzLWZpbGVzLXJlZ2V4IFJFR0VY CisrICAgICAgICAgICAgICAgICAgICBkb24ndCByZW1vdmUgb3V0cHV0IGZpbGVzIG1hdGNoaW5n IFJFR0VYCisrICAtcmVsZWFzZSBSRUxFQVNFICBzcGVjaWZ5IHBhY2thZ2UgcmVsZWFzZSBpbmZv cm1hdGlvbgorKyAgLXJwYXRoIExJQkRJUiAgICAgdGhlIGNyZWF0ZWQgbGlicmFyeSB3aWxsIGV2 ZW50dWFsbHkgYmUgaW5zdGFsbGVkIGluIExJQkRJUgorKyAgLVJbIF1MSUJESVIgICAgICAgYWRk IExJQkRJUiB0byB0aGUgcnVudGltZSBwYXRoIG9mIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMKKysg IC1zdGF0aWMgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIHVuaW5z dGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCisrICAtc3RhdGljLWxpYnRvb2wtbGlicworKyAgICAg ICAgICAgICAgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBs aWJyYXJpZXMKKysgIC12ZXJzaW9uLWluZm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFHRV1dCisrICAg ICAgICAgICAgICAgICAgICBzcGVjaWZ5IGxpYnJhcnkgdmVyc2lvbiBpbmZvIFtlYWNoIHZhcmlh YmxlIGRlZmF1bHRzIHRvIDBdCisrCisrQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdp bm5pbmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KKysKKytFdmVyeSBvdGhlciBhcmd1bWVudCBp cyB0cmVhdGVkIGFzIGEgZmlsZW5hbWUuICBGaWxlcyBlbmRpbmcgaW4gXGAubGEnIGFyZQorK3Ry ZWF0ZWQgYXMgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBz dGFuZGFyZCBvciBsaWJyYXJ5Cisrb2JqZWN0IGZpbGVzLgorKworK0lmIHRoZSBPVVRQVVQtRklM RSBlbmRzIGluIFxgLmxhJywgdGhlbiBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLAorK29u bHkgbGlicmFyeSBvYmplY3RzIChcYC5sbycgZmlsZXMpIG1heSBiZSBzcGVjaWZpZWQsIGFuZCBc YC1ycGF0aCcgaXMKKytyZXF1aXJlZCwgZXhjZXB0IHdoZW4gY3JlYXRpbmcgYSBjb252ZW5pZW5j ZSBsaWJyYXJ5LgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywg dGhlbiBhIHN0YW5kYXJkIGxpYnJhcnkgaXMgY3JlYXRlZAorK3VzaW5nIFxgYXInIGFuZCBcYHJh bmxpYicsIG9yIG9uIFdpbmRvd3MgdXNpbmcgXGBsaWInLgorKworK0lmIE9VVFBVVC1GSUxFIGVu ZHMgaW4gXGAubG8nIG9yIFxgLiR7b2JqZXh0fScsIHRoZW4gYSByZWxvYWRhYmxlIG9iamVjdCBm aWxlCisraXMgY3JlYXRlZCwgb3RoZXJ3aXNlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbSBpcyBjcmVh dGVkLiIKKysgIDs7CisrCisrdW5pbnN0YWxsKQorKyAgJGVjaG8gXAorKyJVc2FnZTogJG1vZGVu YW1lIFtPUFRJT05dLi4uIC0tbW9kZT11bmluc3RhbGwgUk0gW1JNLU9QVElPTl0uLi4gRklMRS4u LgorKworK1JlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Lgor KworK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMg YXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQorKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1P UFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKKyt0byBSTS4K KysKKytJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0 ZWQgd2l0aCBpdCBhcmUgZGVsZXRlZC4KKytPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMg ZGVsZXRlZCB1c2luZyBSTS4iCisrICA7OworKworKyopCisrICAkZWNobyAiJG1vZGVuYW1lOiBp bnZhbGlkIG9wZXJhdGlvbiBtb2RlIFxgJG1vZGUnIiAxPiYyCisrICAkZWNobyAiJGhlbHAiIDE+ JjIKKysgIGV4aXQgJEVYSVRfRkFJTFVSRQorKyAgOzsKKytlc2FjCisrCisrJGVjaG8KKyskZWNo byAiVHJ5IFxgJG1vZGVuYW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3Ro ZXIgbW9kZXMuIgorKworK2V4aXQgJD8KKysKKysjIFRoZSBUQUdzIGJlbG93IGFyZSBkZWZpbmVk IHN1Y2ggdGhhdCB3ZSBuZXZlciBnZXQgaW50byBhIHNpdHVhdGlvbgorKyMgaW4gd2hpY2ggd2Ug ZGlzYWJsZSBib3RoIGtpbmRzIG9mIGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCisrIyBj aG9pY2VzLCB3ZSBnbyBmb3IgYSBzdGF0aWMgbGlicmFyeSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0 YWJsZSwKKysjIHNpbmNlIHdlIGNhbid0IHRlbGwgd2hldGhlciBzaGFyZWQgbGlicmFyaWVzIHdl cmUgZGlzYWJsZWQgYmVjYXVzZQorKyMgdGhlIHVzZXIgYXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVz ZSB0aGUgcGxhdGZvcm0gZG9lc24ndCBzdXBwb3J0CisrIyB0aGVtLiAgVGhpcyBpcyBwYXJ0aWN1 bGFybHkgaW1wb3J0YW50IG9uIEFJWCwgYmVjYXVzZSB3ZSBkb24ndAorKyMgc3VwcG9ydCBoYXZp bmcgYm90aCBzdGF0aWMgYW5kIHNoYXJlZCBsaWJyYXJpZXMgZW5hYmxlZCBhdCB0aGUgc2FtZQor KyMgdGltZSBvbiB0aGF0IHBsYXRmb3JtLCBzbyB3ZSBkZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkg Y29uZmlndXJhdGlvbi4KKysjIElmIGEgZGlzYWJsZS1zaGFyZWQgdGFnIGlzIGdpdmVuLCB3ZSds bCBmYWxsYmFjayB0byBhIHN0YXRpYy1vbmx5CisrIyBjb25maWd1cmF0aW9uLiAgQnV0IHdlJ2xs IG5ldmVyIGdvIGZyb20gc3RhdGljLW9ubHkgdG8gc2hhcmVkLW9ubHkuCisrCisrIyAjIyMgQkVH SU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAorK2Rpc2FibGVfbGlicz1zaGFy ZWQKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAorKworKyMg IyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKKytkaXNhYmxlX2xp YnM9c3RhdGljCisrIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMK KysKKysjIExvY2FsIFZhcmlhYmxlczoKKysjIG1vZGU6c2hlbGwtc2NyaXB0CisrIyBzaC1pbmRl bnRhdGlvbjoyCisrIyBFbmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21p c3Npbmcgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9taXNzaW5nCistLS0gc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL21pc3NpbmcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcJMjAwOS0wNS0wMyAwMDoyMDoz OS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMzY3IEBACisrIyEgL2Jpbi9zaAorKyMgQ29t bW9uIHN0dWIgZm9yIGEgZmV3IG1pc3NpbmcgR05VIHByb2dyYW1zIHdoaWxlIGluc3RhbGxpbmcu CisrCisrc2NyaXB0dmVyc2lvbj0yMDA2LTA1LTEwLjIzCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5 OTYsIDE5OTcsIDE5OTksIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKKysjICAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29p cyBQaW5hcmQgPHBpbmFyZEBpcm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KKysKKysjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQorKyMgYW55IGxhdGVyIHZlcnNpb24u CisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3Vu ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B CisrIyAwMjExMC0xMzAxLCBVU0EuCisrCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMg ZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRp b24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVy CisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVz dCBvZiB0aGF0IHByb2dyYW0uCisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgZWNobyAx PiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgorKyAgZXhpdCAxCisr ZmkKKysKKytydW49OgorK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBdKlwpLiov XDEvcCcKKytzZWRfbWludXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wxL3AnCisrCisrIyBJbiB0 aGUgY2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRo ZQorKyMgc3JjZGlyIGFscmVhZHkuCisraWYgdGVzdCAtZiBjb25maWd1cmUuYWM7IHRoZW4KKysg IGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKKytlbHNlCisrICBjb25maWd1cmVfYWM9Y29uZmln dXJlLmluCisrZmkKKysKKyttc2c9Im1pc3Npbmcgb24geW91ciBzeXN0ZW0iCisrCisrY2FzZSAk MSBpbgorKy0tcnVuKQorKyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVz dCBleGl0IGlmIGl0IHN1Y2NlZWRzLgorKyAgcnVuPQorKyAgc2hpZnQKKysgICIkQCIgJiYgZXhp dCAwCisrICAjIEV4aXQgY29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21hdGNoLiAgVGhpcyBvZnRl biBoYXBwZW5zCisrICAjIHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBhbiBhbmNpZW50IHZlcnNp b24gb2YgYSB0b29sIG9uCisrICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJz aW9uLiAgSW4gdGhpcyBjYXNlIHdlCisrICAjIHdlIHNob3VsZCBwcm9jZWVkIGhhcyBpZiB0aGUg cHJvZ3JhbSBoYWQgYmVlbiBhYnNlbnQsIG9yCisrICAjIGlmIC0tcnVuIGhhZG4ndCBiZWVuIHBh c3NlZC4KKysgIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgorKyAgICBydW49OgorKyAgICBtc2c9InBy b2JhYmx5IHRvbyBvbGQiCisrICBmaQorKyAgOzsKKysKKysgIC1ofC0taHwtLWhlfC0taGVsfC0t aGVscCkKKysgICAgZWNobyAiXAorKyQwIFtPUFRJT05dLi4uIFBST0dSQU0gW0FSR1VNRU5UXS4u LgorKworK0hhbmRsZSBcYFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9yIHdoZW4gUFJPR1JBTSBp cyBtaXNzaW5nLCBvciByZXR1cm4gYW4KKytlcnJvciBzdGF0dXMgaWYgdGhlcmUgaXMgbm8ga25v d24gaGFuZGxpbmcgZm9yIFBST0dSQU0uCisrCisrT3B0aW9uczoKKysgIC1oLCAtLWhlbHAgICAg ICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAorKyAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2 ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CisrICAtLXJ1biAgICAgICAgICAgdHJ5IHRvIHJ1 biB0aGUgZ2l2ZW4gY29tbWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQgZmFpbHMKKysKKytTdXBw b3J0ZWQgUFJPR1JBTSB2YWx1ZXM6CisrICBhY2xvY2FsICAgICAgdG91Y2ggZmlsZSBcYGFjbG9j YWwubTQnCisrICBhdXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKKysgIGF1dG9o ZWFkZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCisrICBhdXRvbTR0ZSAgICAgdG91Y2gg dGhlIG91dHB1dCBmaWxlLCBvciBjcmVhdGUgYSBzdHViIG9uZQorKyAgYXV0b21ha2UgICAgIHRv dWNoIGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcworKyAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHku dGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQorKyAgZmxleCAgICAg ICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKKysg IGhlbHAybWFuICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKKysgIGxleCAgICAgICAgICBjcmVh dGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCisrICBtYWtlaW5m byAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCisrICB0YXIgICAgICAgICAgdHJ5IHRhciwgZ251 dGFyLCBndGFyLCB0aGVuIHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBmbGFncworKyAgeWFjYyAg ICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAu W2NoXQorKworK1NlbmQgYnVnIHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCisr ICAgIGV4aXQgJD8KKysgICAgOzsKKysKKysgIC12fC0tdnwtLXZlfC0tdmVyfC0tdmVyc3wtLXZl cnNpfC0tdmVyc2lvfC0tdmVyc2lvbikKKysgICAgZWNobyAibWlzc2luZyAkc2NyaXB0dmVyc2lv biAoR05VIEF1dG9tYWtlKSIKKysgICAgZXhpdCAkPworKyAgICA7OworKworKyAgLSopCisrICAg IGVjaG8gMT4mMiAiJDA6IFVua25vd24gXGAkMScgb3B0aW9uIgorKyAgICBlY2hvIDE+JjIgIlRy eSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisrICAgIGV4aXQgMQorKyAgICA7 OworKworK2VzYWMKKysKKysjIE5vdyBleGl0IGlmIHdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQu ICBBbHNvIGV4aXQgbm93IGlmIHdlCisrIyBkb24ndCBoYXZlIGl0IGFuZCAtLXZlcnNpb24gd2Fz IHBhc3NlZCAobW9zdCBsaWtlbHkgdG8gZGV0ZWN0CisrIyB0aGUgcHJvZ3JhbSkuCisrY2FzZSAk MSBpbgorKyAgbGV4fHlhY2MpCisrICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBkb24ndCBo YXZlIC0tdmVyc2lvbi4KKysgICAgOzsKKysKKysgIHRhcikKKysgICAgaWYgdGVzdCAtbiAiJHJ1 biI7IHRoZW4KKysgICAgICAgZWNobyAxPiYyICJFUlJPUjogXGB0YXInIHJlcXVpcmVzIC0tcnVu IgorKyAgICAgICBleGl0IDEKKysgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8 IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4KKysgICAgICAgZXhpdCAxCisrICAgIGZpCisr ICAgIDs7CisrCisrICAqKQorKyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9u KSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZh aWxlZC4KKysgICAgICAgZXhpdCAxCisrICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9u IiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhlbHAiOyB0aGVuCisrICAgICAgICMgQ291bGQgbm90IHJ1 biAtLXZlcnNpb24gb3IgLS1oZWxwLiAgVGhpcyBpcyBwcm9iYWJseSBzb21lb25lCisrICAgICAg ICMgcnVubmluZyBgJFRPT0wgLS12ZXJzaW9uJyBvciBgJFRPT0wgLS1oZWxwJyB0byBjaGVjayB3 aGV0aGVyCisrICAgICAgICMgJFRPT0wgZXhpc3RzIGFuZCBub3Qga25vd2luZyAkVE9PTCB1c2Vz IG1pc3NpbmcuCisrICAgICAgIGV4aXQgMQorKyAgICBmaQorKyAgICA7OworK2VzYWMKKysKKysj IElmIGl0IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRh dGVkIHZlcnNpb24pLAorKyMgdHJ5IHRvIGVtdWxhdGUgaXQuCisrY2FzZSAkMSBpbgorKyAgYWNs b2NhbCopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ug c2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjaW5jbHVk ZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKysgICAgICAgICB0 byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4gIEdyYWIgdGhl bSBmcm9tCisrICAgICAgICAgYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAgICB0b3VjaCBhY2xv Y2FsLm00CisrICAgIDs7CisrCisrICBhdXRvY29uZikKKysgICAgZWNobyAxPiYyICJcCisrV0FS TklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAg ICAgeW91IG1vZGlmaWVkIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50IHRvIGlu c3RhbGwgdGhlCisrICAgICAgICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4g IEdyYWIgdGhlbSBmcm9tIGFueSBHTlUKKysgICAgICAgICBhcmNoaXZlIHNpdGUuIgorKyAgICB0 b3VjaCBjb25maWd1cmUKKysgICAgOzsKKysKKysgIGF1dG9oZWFkZXIpCisrICAgIGVjaG8gMT4m MiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBp ZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjY29uZmlnLmgnIG9yIFxgJHtjb25maWd1cmVf YWN9Jy4gIFlvdSBtaWdodCB3YW50CisrICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29u ZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbQorKyAgICAgICAgIGZyb20gYW55 IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAgICBmaWxlcz1gc2VkIC1uICdzL15bIF0qQVtDTV1fQ09O RklHX0hFQURFUihcKFteKV0qXCkpLiovXDEvcCcgJHtjb25maWd1cmVfYWN9YAorKyAgICB0ZXN0 IC16ICIkZmlsZXMiICYmIGZpbGVzPSJjb25maWcuaCIKKysgICAgdG91Y2hfZmlsZXM9CisrICAg IGZvciBmIGluICRmaWxlczsgZG8KKysgICAgICBjYXNlICRmIGluCisrICAgICAgKjoqKSB0b3Vj aF9maWxlcz0iJHRvdWNoX2ZpbGVzICJgZWNobyAiJGYiIHwKKysJCQkJICAgICAgIHNlZCAtZSAn cy9eW146XSo6Ly8nIC1lICdzLzouKi8vJ2A7OworKyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91 Y2hfZmlsZXMgJGYuaW4iOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysgICAgdG91Y2ggJHRv dWNoX2ZpbGVzCisrICAgIDs7CisrCisrICBhdXRvbWFrZSopCisrICAgIGVjaG8gMT4mMiAiXAor K1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAg ICAgICAgIHlvdSBtb2RpZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxg JHtjb25maWd1cmVfYWN9Jy4KKysgICAgICAgICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRo ZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4KKysgICAgICAgICBHcmFiIHRoZW0g ZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1h a2VmaWxlLmFtIC1wcmludCB8CisrCSAgIHNlZCAncy9cLmFtJC8uaW4vJyB8CisrCSAgIHdoaWxl IHJlYWQgZjsgZG8gdG91Y2ggIiRmIjsgZG9uZQorKyAgICA7OworKworKyAgYXV0b200dGUpCisr ICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYnV0IGlzICRtc2cu CisrICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhh dmluZyB0aGUKKysgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhl bS4KKysgICAgICAgICBZb3UgY2FuIGdldCBcYCQxJyBhcyBwYXJ0IG9mIFxgQXV0b2NvbmYnIGZy b20gYW55IEdOVQorKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCisrCisrICAgIGZpbGU9YGVjaG8g IiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmls ZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisrICAgIGlmIHRlc3QgLWYgIiRm aWxlIjsgdGhlbgorKwl0b3VjaCAkZmlsZQorKyAgICBlbHNlCisrCXRlc3QgLXogIiRmaWxlIiB8 fCBleGVjID4kZmlsZQorKwllY2hvICIjISAvYmluL3NoIgorKwllY2hvICIjIENyZWF0ZWQgYnkg R05VIEF1dG9tYWtlIG1pc3NpbmcgYXMgYSByZXBsYWNlbWVudCBvZiIKKysJZWNobyAiIyAgJCAk QCIKKysJZWNobyAiZXhpdCAwIgorKwljaG1vZCAreCAkZmlsZQorKwlleGl0IDEKKysgICAgZmkK KysgICAgOzsKKysKKysgIGJpc29ufHlhY2MpCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6 IFxgJDEnICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBt b2RpZmllZCBhIFxgLnknIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UK KysgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVj dC4gIFlvdSBjYW4gZ2V0CisrICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUg c2l0ZS4iCisrICAgIHJtIC1mIHkudGFiLmMgeS50YWIuaAorKyAgICBpZiB0ZXN0ICQjIC1uZSAx OyB0aGVuCisrICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKKysJY2FzZSAkTEFTVEFSRyBp bgorKwkqLnkpCisrCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8n YAorKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCisrCSAgICAgICAgIGNwICIkU1JD RklMRSIgeS50YWIuYworKwkgICAgZmkKKysJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8 IHNlZCAncy95JC9oLydgCisrCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KKysJICAg ICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5oCisrCSAgICBmaQorKwkgIDs7CisrCWVzYWMKKysg ICAgZmkKKysgICAgaWYgdGVzdCAhIC1mIHkudGFiLmg7IHRoZW4KKysJZWNobyA+eS50YWIuaAor KyAgICBmaQorKyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuYzsgdGhlbgorKwllY2hvICdtYWluKCkg eyByZXR1cm4gMDsgfScgPnkudGFiLmMKKysgICAgZmkKKysgICAgOzsKKysKKysgIGxleHxmbGV4 KQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3Vs ZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAg WW91IG1heSBuZWVkIHRoZSBcYEZsZXgnIHBhY2thZ2UKKysgICAgICAgICBpbiBvcmRlciBmb3Ig dGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0CisrICAgICAg ICAgXGBGbGV4JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgcm0gLWYgbGV4Lnl5 LmMKKysgICAgaWYgdGVzdCAkIyAtbmUgMTsgdGhlbgorKyAgICAgICAgZXZhbCBMQVNUQVJHPSJc JHskI30iCisrCWNhc2UgJExBU1RBUkcgaW4KKysJKi5sKQorKwkgICAgU1JDRklMRT1gZWNobyAi JExBU1RBUkciIHwgc2VkICdzL2wkL2MvJ2AKKysJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsg dGhlbgorKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIGxleC55eS5jCisrCSAgICBmaQorKwkgIDs7 CisrCWVzYWMKKysgICAgZmkKKysgICAgaWYgdGVzdCAhIC1mIGxleC55eS5jOyB0aGVuCisrCWVj aG8gJ21haW4oKSB7IHJldHVybiAwOyB9JyA+bGV4Lnl5LmMKKysgICAgZmkKKysgICAgOzsKKysK KysgIGhlbHAybWFuKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNn LiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVu Y3kgb2YgYSBtYW51YWwgcGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKKysJIFxgSGVscDJtYW4nIHBh Y2thZ2UgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZQorKwkgZWZmZWN0 LiAgWW91IGNhbiBnZXQgXGBIZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisr CisrICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorKyAgICB0ZXN0 IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisr ICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgorKwl0b3VjaCAkZmlsZQorKyAgICBlbHNlCisr CXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQorKwllY2hvICIuYWIgaGVscDJtYW4gaXMg cmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlIgorKwlleGl0IDEKKysgICAgZmkKKysgICAg OzsKKysKKysgIG1ha2VpbmZvKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBp cyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZp ZWQgYSBcYC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQorKyAg ICAgICAgIGluZGlyZWN0bHkgYWZmZWN0aW5nIHRoZSBhc3BlY3Qgb2YgdGhlIG1hbnVhbC4gIFRo ZSBzcHVyaW91cworKyAgICAgICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUgY29uc2VxdWVuY2Ug b2YgdXNpbmcgYSBidWdneSBcYG1ha2UnIChBSVgsCisrICAgICAgICAgRFUsIElSSVgpLiAgWW91 IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCisrICAgICAg ICAgdGhlIFxgR05VIG1ha2UnIHBhY2thZ2UuICBHcmFiIGVpdGhlciBmcm9tIGFueSBHTlUgYXJj aGl2ZSBzaXRlLiIKKysgICAgIyBUaGUgZmlsZSB0byB0b3VjaCBpcyB0aGF0IHNwZWNpZmllZCB3 aXRoIC1vIC4uLgorKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAK KysgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9t aW51c28iYAorKyAgICBpZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KKysgICAgICAjIC4uLiBvciBp dCBpcyB0aGUgb25lIHNwZWNpZmllZCB3aXRoIEBzZXRmaWxlbmFtZSAuLi4KKysgICAgICBpbmZp bGU9YGVjaG8gIiQqIiB8IHNlZCAncy8uKiBcKFteIF0qXCkgKiQvXDEvJ2AKKysgICAgICBmaWxl PWBzZWQgLW4gJworKwkvXkBzZXRmaWxlbmFtZS97CisrCSAgcy8uKiBcKFteIF0qXCkgKiQvXDEv CisrCSAgcAorKwkgIHEKKysJfScgJGluZmlsZWAKKysgICAgICAjIC4uLiBvciBpdCBpcyBkZXJp dmVkIGZyb20gdGhlIHNvdXJjZSBuYW1lIChkaXIvZi50ZXhpIGJlY29tZXMgZi5pbmZvKQorKyAg ICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8IHNlZCAncywuKi8s LDtzLC5bXi5dKiQsLCdgLmluZm8KKysgICAgZmkKKysgICAgIyBJZiB0aGUgZmlsZSBkb2VzIG5v dCBleGlzdCwgdGhlIHVzZXIgcmVhbGx5IG5lZWRzIG1ha2VpbmZvOworKyAgICAjIGxldCdzIGZh aWwgd2l0aG91dCB0b3VjaGluZyBhbnl0aGluZy4KKysgICAgdGVzdCAtZiAkZmlsZSB8fCBleGl0 IDEKKysgICAgdG91Y2ggJGZpbGUKKysgICAgOzsKKysKKysgIHRhcikKKysgICAgc2hpZnQKKysK KysgICAgIyBXZSBoYXZlIGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCisr ICAgICMgTG9vayBmb3IgZ251dGFyL2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWds eSBlcnJvcgorKyAgICAjIG1lc3NhZ2VzLgorKyAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9k ZXYvbnVsbCAyPiYxKTsgdGhlbgorKyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKKysgICAg ZmkKKysgICAgaWYgKGd0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCisrICAg ICAgIGd0YXIgIiRAIiAmJiBleGl0IDAKKysgICAgZmkKKysgICAgZmlyc3Rhcmc9IiQxIgorKyAg ICBpZiBzaGlmdDsgdGhlbgorKwljYXNlICRmaXJzdGFyZyBpbgorKwkqbyopCisrCSAgICBmaXJz dGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL28vL2AKKysJICAgIHRhciAiJGZpcnN0YXJn IiAiJEAiICYmIGV4aXQgMAorKwkgICAgOzsKKysJZXNhYworKwljYXNlICRmaXJzdGFyZyBpbgor KwkqaCopCisrCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKKysJ ICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAorKwkgICAgOzsKKysJZXNhYworKyAg ICBmaQorKworKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUg YWJsZSB0byBydW4gXGB0YXInIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KKysgICAgICAgICBZ b3UgbWF5IHdhbnQgdG8gaW5zdGFsbCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNr IHRoZQorKyAgICAgICAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgorKyAgICBleGl0IDEKKysg ICAgOzsKKysKKysgICopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzIG5l ZWRlZCwgYW5kIGlzICRtc2cuCisrICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29t ZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKKysgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1 cnRoZXIgaGFuZGxpbmcgdGhlbS4gIENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKKysgICAgICAg ICBpdCBvZnRlbiB0ZWxscyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBp bnN0YWxsaW5nCisrICAgICAgICAgdGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQg YW55IEdOVSBhcmNoaXZlIHNpdGUsIGluIGNhc2UKKysgICAgICAgICBzb21lIG90aGVyIHBhY2th Z2Ugd291bGQgY29udGFpbiB0aGlzIG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCisrICAgIGV4aXQg MQorKyAgICA7OworK2VzYWMKKysKKytleGl0IDAKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysj IGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUt c3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5 LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZSBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln dXJlCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlCTIwMDktMDUtMDMgMDA6MjQ6MTMu MDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZQkyMDA5LTA1 LTAzIDAwOjIwOjM2LjAwMDAwMDAwMCArMDIwMAorQEAgLTEsNzIgKzEsMjU3MTMgQEAKKy0jIS9i aW4vc2gKKysjISAvYmluL3NoCisrIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQg dmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgorKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRv Y29uZiAyLjYzIGZvciBTT0NJIDMuMC4wLgorKyMKKysjIFJlcG9ydCBidWdzIHRvIDxtc29iY3ph a0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgorKyMKKysjIENvcHlyaWdodCAoQykgMjAwNC0yMDA5 IE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrIworKyMg Q29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAy MDAwLCAyMDAxLAorKyMgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgY29uZmlndXJlIHNjcmlwdCBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisr IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMj CisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisgCistaWYgWyAkIyAtZ3QgMCBdCistdGhl bgorLSAgICBpZiBbICQxID0gIi1oZWxwIiAtbyAkMSA9ICItLWhlbHAiIF0KKysjIEJlIG1vcmUg Qm91cm5lIGNvbXBhdGlibGUKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtT IHNoCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCisrICBlbXVsYXRlIHNoCisrICBOVUxMQ01EPToKKysgICMgUHJl LTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGlj aAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4K KysgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QK KytlbHNlCisrICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KKysgICpwb3NpeCopIHNl dCAtbyBwb3NpeCA7OworK2VzYWMKKysKKytmaQorKworKworKworKworKyMgUEFUSCBuZWVkcyBD UgorKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KKythc19jcl9sZXR0 ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKKythc19jcl9MRVRURVJTPSdBQkNERUZH SElKS0xNTk9QUVJTVFVWV1hZWicKKythc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2Ny X0xFVFRFUlMKKythc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCisrYXNfY3JfYWxudW09JGFzX2Ny X0xldHRlcnMkYXNfY3JfZGlnaXRzCisrCisrYXNfbmw9JworKycKKytleHBvcnQgYXNfbmwKKysj IFByaW50aW5nIGEgbG9uZyBzdHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRm LgorK2FzX2VjaG89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFwnCisrYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCisr YXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8K KytpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYv bnVsbDsgdGhlbgorKyAgYXNfZWNobz0ncHJpbnRmICVzXG4nCisrICBhc19lY2hvX249J3ByaW50 ZiAlcycKKytlbHNlCisrICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hv KSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KKysgICAgYXNfZWNob19ib2R5 PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQxJGFzX25sIicKKysgICAgYXNfZWNob19uPScvdXNy L3VjYi9lY2hvIC1uJworKyAgZWxzZQorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQx IiA6ICJYXFwoLipcXCkiJworKyAgICBhc19lY2hvX25fYm9keT0nZXZhbAorKyAgICAgIGFyZz0k MTsKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAqIiRhc19ubCIqKQorKwlleHByICJYJGFy ZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKKysJYXJnPWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxc XCguKlxcKSJgOzsKKysgICAgICBlc2FjOworKyAgICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipc XCkiIHwgdHIgLWQgIiRhc19ubCIKKysgICAgJworKyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkK KysgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNobycKKysgIGZpCisr ICBleHBvcnQgYXNfZWNob19ib2R5CisrICBhc19lY2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFz X2VjaG8nCisrZmkKKysKKysjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KKytpZiB0ZXN0ICIk e1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgorKyAgUEFUSF9TRVBBUkFUT1I9Ogor KyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+ JjEgJiYgeworKyAgICAoUEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4v ZGV2L251bGwgMj4mMSB8fAorKyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JworKyAgfQorK2ZpCisr CisrIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCisraWYgKCAoTUFJTD02MDsgdW5zZXQg TUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBhc191bnNldD11bnNldAor K2Vsc2UKKysgIGFzX3Vuc2V0PWZhbHNlCisrZmkKKysKKysKKysjIElGUworKyMgV2UgbmVlZCBz cGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuICBRdW90aW5n IGlzCisrIyB0aGVyZSB0byBwcmV2ZW50IGVkaXRvcnMgZnJvbSBjb21wbGFpbmluZyBhYm91dCBz cGFjZS10YWIuCisrIyAoSWYgX0FTX1BBVEhfV0FMSyB3ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNl dCwgaXQgd291bGQgZGlzYWJsZSB3b3JkCisrIyBzcGxpdHRpbmcgYnkgc2V0dGluZyBJRlMgdG8g ZW1wdHkgdmFsdWUuKQorK0lGUz0iICIiCSRhc19ubCIKKysKKysjIEZpbmQgd2hvIHdlIGFyZS4g IExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgor K2Nhc2UgJDAgaW4KKysgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKKysgICopIGFzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8K KysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisr ICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawor K2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICAgICA7OworK2VzYWMKKysjIFdlIGRpZCBu b3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1B TkQnCisrIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGgu CisraWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgorKyAgYXNfbXlzZWxmPSQwCisrZmkK KytpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCisrICAkYXNfZWNobyAiJGFzX215c2Vs ZjogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBmaWxl IG5hbWUiID4mMgorKyAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisrZmkKKysKKysjIFdvcmsgYXJv dW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KKytmb3IgYXNfdmFyIGluIEVOViBNQUlMIE1B SUxQQVRICisrZG8gKCRhc191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vu c2V0ICRhc192YXIKKytkb25lCisrUFMxPSckICcKKytQUzI9Jz4gJworK1BTND0nKyAnCisrCisr IyBOTFMgbnVpc2FuY2VzLgorK0xDX0FMTD1DCisrZXhwb3J0IExDX0FMTAorK0xBTkdVQUdFPUMK KytleHBvcnQgTEFOR1VBR0UKKysKKysjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KKytpZiBl eHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhwciAwMDAw MSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytlbHNlCisr ICBhc19leHByPWZhbHNlCisrZmkKKysKKytpZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAy PiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVuCisrICBhc19i YXNlbmFtZT1iYXNlbmFtZQorK2Vsc2UKKysgIGFzX2Jhc2VuYW1lPWZhbHNlCisrZmkKKysKKysK KysjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCisrYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAi IHx8CisrJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKysJIFgi JDAiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251 bGwgfHwKKyskYXNfZWNobyBYLyIkMCIgfAorKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClc LyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cL1wpJC97 CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXC9cKFwvXCkuKi97CisrCSAg ICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrCisrIyBDRFBBVEgu CisrJGFzX3Vuc2V0IENEUEFUSAorKworKworK2lmIHRlc3QgIngkQ09ORklHX1NIRUxMIiA9IHg7 IHRoZW4KKysgIGlmIChldmFsICI6IikgMj4vZGV2L251bGw7IHRoZW4KKysgIGFzX2hhdmVfcmVx dWlyZWQ9eWVzCisrZWxzZQorKyAgYXNfaGF2ZV9yZXF1aXJlZD1ubworK2ZpCisrCisrICBpZiB0 ZXN0ICRhc19oYXZlX3JlcXVpcmVkID0geWVzICYmCSAoZXZhbCAiOgorKyhhc19mdW5jX3JldHVy biAoKSB7CisrICAoZXhpdCBcJDEpCisrfQorK2FzX2Z1bmNfc3VjY2VzcyAoKSB7CisrICBhc19m dW5jX3JldHVybiAwCisrfQorK2FzX2Z1bmNfZmFpbHVyZSAoKSB7CisrICBhc19mdW5jX3JldHVy biAxCisrfQorK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgeworKyAgcmV0dXJuIDAKKyt9CisrYXNf ZnVuY19yZXRfZmFpbHVyZSAoKSB7CisrICByZXR1cm4gMQorK30KKysKKytleGl0Y29kZT0wCisr aWYgYXNfZnVuY19zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAg ZWNobyBhc19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19mYWlsdXJl OyB0aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQu CisrZmkKKysKKytpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAg ZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KKytmaQorKwor K2lmIGFzX2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNf ZnVuY19yZXRfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiAoIHNldCB4OyBhc19mdW5j X3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCisrICA6CisrZWxzZQor KyAgZXhpdGNvZGU9MQorKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2 ZWQuCisrZmkKKysKKyt0ZXN0IFwkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0IDEpOyBleGl0IDE7 IH0KKysKKysoCisrICBhc19saW5lbm9fMT1cJExJTkVOTworKyAgYXNfbGluZW5vXzI9XCRMSU5F Tk8KKysgIHRlc3QgXCJ4XCRhc19saW5lbm9fMVwiICE9IFwieFwkYXNfbGluZW5vXzJcIiAmJgor KyAgdGVzdCBcInhcYGV4cHIgXCRhc19saW5lbm9fMSArIDFcYFwiID0gXCJ4XCRhc19saW5lbm9f MlwiKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKysiKSAyPiAvZGV2L251bGw7IHRoZW4KKysg IDoKKytlbHNlCisrICBhc19jYW5kaWRhdGVfc2hlbGxzPQorKyAgICBhc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9S L3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgY2FzZSAkYXNfZGlyIGluCisrCSAv KikKKysJICAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbworKwkgICAgIGFzX2Nh bmRpZGF0ZV9zaGVsbHM9IiRhc19jYW5kaWRhdGVfc2hlbGxzICRhc19kaXIvJGFzX2Jhc2UiCisr CSAgIGRvbmU7OworKyAgICAgICBlc2FjCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysK KysgICAgICBmb3IgYXNfc2hlbGwgaW4gJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJFNIRUxMOyBkbwor KwkgIyBUcnkgb25seSBzaGVsbHMgdGhhdCBleGlzdCwgdG8gc2F2ZSBzZXZlcmFsIGZvcmtzLgor KwkgaWYgeyB0ZXN0IC1mICIkYXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19zaGVsbC5leGUiOyB9 ICYmCisrCQl7ICgiJGFzX3NoZWxsIikgMj4gL2Rldi9udWxsIDw8XF9BU0VPRgorK2lmIHRlc3Qg LW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsg dGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMg b2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29u dHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAn JHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2Fz ZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsK Kytlc2FjCisrCisrZmkKKysKKysKKys6CisrX0FTRU9GCisrfTsgdGhlbgorKyAgQ09ORklHX1NI RUxMPSRhc19zaGVsbAorKwkgICAgICAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKKysJICAgICAgIGlm IHsgIiRhc19zaGVsbCIgMj4gL2Rldi9udWxsIDw8XF9BU0VPRgorK2lmIHRlc3QgLW4gIiR7WlNI X1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAg ZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRv IHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8g b3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9 Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAt bykgMj4vZGV2L251bGxgIGluCisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKKytlc2FjCisr CisrZmkKKysKKysKKys6CisrKGFzX2Z1bmNfcmV0dXJuICgpIHsKKysgIChleGl0ICQxKQorK30K Kythc19mdW5jX3N1Y2Nlc3MgKCkgeworKyAgYXNfZnVuY19yZXR1cm4gMAorK30KKythc19mdW5j X2ZhaWx1cmUgKCkgeworKyAgYXNfZnVuY19yZXR1cm4gMQorK30KKythc19mdW5jX3JldF9zdWNj ZXNzICgpIHsKKysgIHJldHVybiAwCisrfQorK2FzX2Z1bmNfcmV0X2ZhaWx1cmUgKCkgeworKyAg cmV0dXJuIDEKKyt9CisrCisrZXhpdGNvZGU9MAorK2lmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgor KyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19zdWNjZXNzIGZhaWxl ZC4KKytmaQorKworK2lmIGFzX2Z1bmNfZmFpbHVyZTsgdGhlbgorKyAgZXhpdGNvZGU9MQorKyAg ZWNobyBhc19mdW5jX2ZhaWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19yZXRf c3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVu Y19yZXRfc3VjY2VzcyBmYWlsZWQuCisrZmkKKysKKytpZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0 aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVk LgorK2ZpCisrCisraWYgKCBzZXQgeDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9 ICIkMSIgKTsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gcG9zaXRp b25hbCBwYXJhbWV0ZXJzIHdlcmUgbm90IHNhdmVkLgorK2ZpCisrCisrdGVzdCAkZXhpdGNvZGUg PSAwKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKysKKysoCisrICBhc19saW5lbm9fMT0kTElO RU5PCisrICBhc19saW5lbm9fMj0kTElORU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAi eCRhc19saW5lbm9fMiIgJiYKKysgIHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAi eCRhc19saW5lbm9fMiIpIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorKworK19BU0VPRgorK307 IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKytmaQorKworKyAgICAgIGRvbmUKKysKKysgICAgICBp ZiB0ZXN0ICJ4JENPTkZJR19TSEVMTCIgIT0geDsgdGhlbgorKyAgZm9yIGFzX3ZhciBpbiBCQVNI X0VOViBFTlYKKysJZG8gKCRhc191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFz X3Vuc2V0ICRhc192YXIKKysJZG9uZQorKwlleHBvcnQgQ09ORklHX1NIRUxMCisrCWV4ZWMgIiRD T05GSUdfU0hFTEwiICIkYXNfbXlzZWxmIiAkezErIiRAIn0KKytmaQorKworKworKyAgICBpZiB0 ZXN0ICRhc19oYXZlX3JlcXVpcmVkID0gbm87IHRoZW4KKysgIGVjaG8gVGhpcyBzY3JpcHQgcmVx dWlyZXMgYSBzaGVsbCBtb3JlIG1vZGVybiB0aGFuIGFsbCB0aGUKKysgICAgICBlY2hvIHNoZWxs cyB0aGF0IEkgZm91bmQgb24geW91ciBzeXN0ZW0uICBQbGVhc2UgaW5zdGFsbCBhCisrICAgICAg ZWNobyBtb2Rlcm4gc2hlbGwsIG9yIG1hbnVhbGx5IHJ1biB0aGUgc2NyaXB0IHVuZGVyIHN1Y2gg YQorKyAgICAgIGVjaG8gc2hlbGwgaWYgeW91IGRvIGhhdmUgb25lLgorKyAgICAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfQorK2ZpCisrCisrCisrZmkKKysKKytmaQorKworKworKworKyhldmFsICJh c19mdW5jX3JldHVybiAoKSB7CisrICAoZXhpdCBcJDEpCisrfQorK2FzX2Z1bmNfc3VjY2VzcyAo KSB7CisrICBhc19mdW5jX3JldHVybiAwCisrfQorK2FzX2Z1bmNfZmFpbHVyZSAoKSB7CisrICBh c19mdW5jX3JldHVybiAxCisrfQorK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgeworKyAgcmV0dXJu IDAKKyt9CisrYXNfZnVuY19yZXRfZmFpbHVyZSAoKSB7CisrICByZXR1cm4gMQorK30KKysKKytl eGl0Y29kZT0wCisraWYgYXNfZnVuY19zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhp dGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNf ZnVuY19mYWlsdXJlOyB0aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfZmFpbHVy ZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCisrICA6 CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxl ZC4KKytmaQorKworK2lmIGFzX2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEK KysgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiAoIHNl dCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCisr ICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMg d2VyZSBub3Qgc2F2ZWQuCisrZmkKKysKKyt0ZXN0IFwkZXhpdGNvZGUgPSAwIikgfHwgeworKyAg ZWNobyBObyBzaGVsbCBmb3VuZCB0aGF0IHN1cHBvcnRzIHNoZWxsIGZ1bmN0aW9ucy4KKysgIGVj aG8gUGxlYXNlIHRlbGwgYnVnLWF1dG9jb25mQGdudS5vcmcgYWJvdXQgeW91ciBzeXN0ZW0sCisr ICBlY2hvIGluY2x1ZGluZyBhbnkgZXJyb3IgcG9zc2libHkgb3V0cHV0IGJlZm9yZSB0aGlzIG1l c3NhZ2UuCisrICBlY2hvIFRoaXMgY2FuIGhlbHAgdXMgaW1wcm92ZSBmdXR1cmUgYXV0b2NvbmYg dmVyc2lvbnMuCisrICBlY2hvIENvbmZpZ3VyYXRpb24gd2lsbCBub3cgcHJvY2VlZCB3aXRob3V0 IHNoZWxsIGZ1bmN0aW9ucy4KKyt9CisrCisrCisrCisrICBhc19saW5lbm9fMT0kTElORU5PCisr ICBhc19saW5lbm9fMj0kTElORU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19s aW5lbm9fMiIgJiYKKysgIHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19s aW5lbm9fMiIgfHwgeworKworKyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2Yg JGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTworKyAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkg dGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQorKyAgIyBsaW5lLW51 bWJlciBsaW5lIGFmdGVyIGVhY2ggbGluZSB1c2luZyAkTElORU5POyB0aGUgc2Vjb25kICdzZWQn CisrICAjIGRvZXMgdGhlIHJlYWwgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRv IHBhaXIgZWFjaAorKyAgIyBsaW5lLW51bWJlciBsaW5lIHdpdGggdGhlIGxpbmUgY29udGFpbmlu ZyAkTElORU5PLCBhbmQgYXBwZW5kcworKyAgIyB0cmFpbGluZyAnLScgZHVyaW5nIHN1YnN0aXR1 dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbAorKyAgIyBjYXNlIGF0IGxpbmUg ZW5kLgorKyAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBF Z2dlcnQgd3JvdGUgdGhlCisrICAjIHNjcmlwdHMgd2l0aCBvcHRpbWl6YXRpb24gaGVscCBmcm9t IFBhb2xvIEJvbnppbmkuICBCbGFtZSBMZWUKKysgICMgRS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBm b3Igc2VkJ3Mgc3ludGF4LiAgOi0pCisrICBzZWQgLW4gJworKyAgICBwCisrICAgIC9bJF1MSU5F Tk8vPQorKyAgJyA8JGFzX215c2VsZiB8CisrICAgIHNlZCAnCisrICAgICAgcy9bJF1MSU5FTk8u Ki8mLS8KKysgICAgICB0IGxpbmVubworKyAgICAgIGIKKysgICAgICA6bGluZW5vCisrICAgICAg TgorKyAgICAgIDpsb29wCisrICAgICAgcy9bJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXS4q XG5cKVwoLipcKS9cMlwxXDIvCisrICAgICAgdCBsb29wCisrICAgICAgcy8tXG4uKi8vCisrICAg ICcgPiRhc19tZS5saW5lbm8gJiYKKysgIGNobW9kICt4ICIkYXNfbWUubGluZW5vIiB8fAorKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87 IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9CisrCisrICAjIERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2lu ZyBhbGwgc29ydCBvZiBwcm9ibGVtcworKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3Qg dGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCisrICAjIG9yaWdpbmFsIGFuZCBzbyBv bi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2l0aXZlIHRvIHRoaXMpLgorKyAgLiAiLi8k YXNfbWUubGluZW5vIgorKyAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1h bmQuCisrICBleGl0CisrfQorKworKworK2lmIChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVz dCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfZGlybmFtZT1k aXJuYW1lCisrZWxzZQorKyAgYXNfZGlybmFtZT1mYWxzZQorK2ZpCisrCisrRUNIT19DPSBFQ0hP X049IEVDSE9fVD0KKytjYXNlIGBlY2hvIC1uIHhgIGluCisrLW4qKQorKyAgY2FzZSBgZWNobyAn eFxjJ2AgaW4KKysgICpjKikgRUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hh cmFjdGVyLgorKyAgKikgICBFQ0hPX0M9J1xjJzs7CisrICBlc2FjOzsKKysqKQorKyAgRUNIT19O PSctbic7OworK2VzYWMKKytpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgor KyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBh c19leHByPWV4cHIKKytlbHNlCisrICBhc19leHByPWZhbHNlCisrZmkKKysKKytybSAtZiBjb25m JCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQorK2lmIHRlc3QgLWQgY29uZiQkLmRpcjsgdGhlbgor KyAgcm0gLWYgY29uZiQkLmRpci9jb25mJCQuZmlsZQorK2Vsc2UKKysgIHJtIC1mIGNvbmYkJC5k aXIKKysgIG1rZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251bGwKKytmaQorK2lmIChlY2hvID5jb25m JCQuZmlsZSkgMj4vZGV2L251bGw7IHRoZW4KKysgIGlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYk JCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBhc19sbl9zPSdsbiAtcycKKysgICAgIyAuLi4gYnV0 IHRoZXJlIGFyZSB0d28gZ290Y2hhczoKKysgICAgIyAxKSBPbiBNU1lTLCBib3RoIGBsbiAtcyBm aWxlIGRpcicgYW5kIGBsbiBmaWxlIGRpcicgZmFpbC4KKysgICAgIyAyKSBESkdQUCA8IDIuMDQg aGFzIG5vIHN5bWxpbmtzOyBgbG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4ZWN1dGFibGUuCisr ICAgICMgSW4gYm90aCBjYXNlcywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBjcCAtcCcuCisrICAg IGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNv bmYkJC5leGUgfHwKKysgICAgICBhc19sbl9zPSdjcCAtcCcKKysgIGVsaWYgbG4gY29uZiQkLmZp bGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisrICAgIGFzX2xuX3M9bG4KKysgIGVsc2UKKysg ICAgYXNfbG5fcz0nY3AgLXAnCisrICBmaQorK2Vsc2UKKysgIGFzX2xuX3M9J2NwIC1wJworK2Zp Cisrcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQu ZmlsZQorK3JtZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251bGwKKysKKytpZiBta2RpciAtcCAuIDI+ L2Rldi9udWxsOyB0aGVuCisrICBhc19ta2Rpcl9wPToKKytlbHNlCisrICB0ZXN0IC1kIC4vLXAg JiYgcm1kaXIgLi8tcAorKyAgYXNfbWtkaXJfcD1mYWxzZQorK2ZpCisrCisraWYgdGVzdCAteCAv ID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfdGVzdF94PSd0ZXN0IC14JworK2Vsc2UKKysg IGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICBhc19sc19MX29wdGlvbj1M CisrICBlbHNlCisrICAgIGFzX2xzX0xfb3B0aW9uPQorKyAgZmkKKysgIGFzX3Rlc3RfeD0nCisr ICAgIGV2YWwgc2ggLWMgJ1wnJworKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0 IC1kICIkMS8uIjsKKysgICAgICBlbHNlCisrCWNhc2UgJDEgaW4KKysJLSopc2V0ICIuLyQxIjs7 CisrCWVzYWM7CisrCWNhc2UgYGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251 bGxgIGluCisrCT8/P1tzeF0qKTo7OyopZmFsc2U7O2VzYWM7ZmkKKysgICAgJ1wnJyBzaAorKyAg JworK2ZpCisrYXNfZXhlY3V0YWJsZV9wPSRhc190ZXN0X3gKKysKKysjIFNlZCBleHByZXNzaW9u IHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCisrYXNfdHJfY3BwPSJldmFs IHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51 bV0lXyVnJyIKKysKKysjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFs aWQgdmFyaWFibGUgbmFtZS4KKythc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFz X2NyX2FsbnVtXSVfJWcnIgorKworKworKworKworKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmlu ZyB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3No fQorKworK2Nhc2UgWCRFQ0hPIGluCisrWCotLWZhbGxiYWNrLWVjaG8pCisrICAjIFJlbW92ZSBv bmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgorKyAg RUNITz1gZWNobyAiJEVDSE8iIHwgc2VkICdzLFxcXFxcJFxcJDAsJyQwJywnYAorKyAgOzsKKytl c2FjCisrCisrZWNobz0ke0VDSE8tZWNob30KKytpZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVj OyB0aGVuCisrICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4K KysgIHNoaWZ0CisrZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAg IyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgor K2VsaWYgdGVzdCAiWGAoJGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgor KyAgIyBZaXBwZWUsICRlY2hvIHdvcmtzIQorKyAgOgorK2Vsc2UKKysgICMgUmVzdGFydCB1bmRl ciB0aGUgY29ycmVjdCBzaGVsbC4KKysgIGV4ZWMgJFNIRUxMICIkMCIgLS1uby1yZWV4ZWMgJHsx KyIkQCJ9CisrZmkKKysKKytpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgor KyAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KKysgIHNoaWZ0CisrICBjYXQgPDxFT0YKKyskKgor K0VPRgorKyAgZXhpdCAwCisrZmkKKysKKysjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxs IHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorKyMgaWYgQ0RQQVRIIGlzIHNl dC4KKysodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICisrCisr aWYgdGVzdCAteiAiJEVDSE8iOyB0aGVuCisraWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytz ZXR9IiAhPSBYc2V0OyB0aGVuCisrIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxl LCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0CisrICBmb3IgY21kIGluICdz ZWQgNTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQgMTBxICIkMCInICdzZWQgMnEgIiQwIicg J2VjaG8gdGVzdCc7IGRvCisrICAgICMgZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFL YiwgNTEyIGJ5dGVzLCAxNiBieXRlcywgLi4uCisrICAgIGlmIChlY2hvX3Rlc3Rfc3RyaW5nPWBl dmFsICRjbWRgKSAyPi9kZXYvbnVsbCAmJgorKyAgICAgICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFs ICRjbWRgICYmCisrICAgICAgICh0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlgkZWNob190 ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsCisgICAgIHRoZW4KKy0gICAgICAgIGVjaG8gJ1JlY29n bml6ZWQgY29uZmlndXJlIG9wdGlvbnM6JworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNo byAnSW5zdGFsbGF0aW9uIG9wdGlvbnM6JworLSAgICAgICAgZWNobyAnLS1pbmNsdWRlLXByZWZp eD0vc29tZS9wYXRoICAgICAgLSBwYXRoIHRvIGluc3RhbGwgU09DSSBoZWFkZXIgZmlsZXMnCist ICAgICAgICBlY2hvICctLWxpYi1wcmVmaXg9L3NvbWUvcGF0aCAgICAgICAgICAtIHBhdGggdG8g aW5zdGFsbCBTT0NJIGxpYnJhcmllcycKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8g J015U1FMIG9wdGlvbnM6JworLSAgICAgICAgZWNobyAnLS1teXNxbC1pbmNsdWRlPS9zb21lL3Bh dGggICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBteXNxbC5oJworLSAgICAgICAgZWNobyAn LS1teXNxbC1saWI9L3NvbWUvcGF0aCAgICAgICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBs aWJteXNxbGNsaWVudC5bYXxzb10nCistICAgICAgICBlY2hvICcnCistICAgICAgICBlY2hvICdP cmFjbGUgb3B0aW9ucyAoaWYgT1JBQ0xFX0hPTUUgdmFyaWFibGUgaXMgbm90IHNldCk6JworLSAg ICAgICAgZWNobyAnLS1vcmFjbGUtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgLSBkaXJlY3Rvcnkg Y29udGFpbmluZyBvY2kuaCcKKy0gICAgICAgIGVjaG8gJy0tb3JhY2xlLWxpYj0vc29tZS9wYXRo ICAgICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGliY2xudHNoLlthfHNvXScKKy0gICAg ICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8gJ1Bvc3RncmVTUUwgb3B0aW9uczonCistICAgICAg ICBlY2hvICctLXBvc3RncmVzcWwtaW5jbHVkZT0vc29tZS9wYXRoICAtIGRpcmVjdG9yeSBjb250 YWluaW5nIGxpYnBxL2xpYnBxLWZzLmgnCistICAgICAgICBlY2hvICctLXBvc3RncmVzcWwtbGli PS9zb21lL3BhdGggICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBxLlthfHNvXScKKy0g ICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8gJ1Rlc3QgcHJvZ3JhbXMgY29tcGlsYXRpb24g b3B0aW9ucyAobm90IG5lZWRlZCBmb3IgbGlicmFyeSBidWlsZCk6JworLSAgICAgICAgZWNobyAn LS1ib29zdC1pbmNsdWRlPS9zb21lL3BhdGggICAgICAgLSByb290IGluY2x1ZGUgZGlyZWN0b3J5 IG9mIEJvb3N0JworLSAgICAgICAgZWNobyAnLS1ib29zdC1saWI9L3NvbWUvcGF0aCAgICAgICAg ICAgLSByb290IGxpYiBkaXJlY3Rvcnkgb2YgQm9vc3QnCistICAgICAgICBlY2hvICcnCistICAg ICAgICBleGl0CisrICAgICAgYnJlYWsKKyAgICAgZmkKKysgIGRvbmUKKyBmaQorIAorLW1rZGly IC1wIGJ1aWxkL3VuaXgvbG9jYWwKKy1wYXRoPSJidWlsZC91bml4L2xvY2FsL3BhcmFtZXRlcnMi Cistcm0gLWYgJHBhdGgKKy10b3VjaCAkcGF0aAorLWZvciBwYXJhbSBpbiAkKgorLWRvCistICAg ICAgICBlY2hvICRwYXJhbSA+PiAkcGF0aAorLWRvbmUKKy0KKy1wcmludGYgJ1RyeWluZyB0byBm aW5kIHRoZSBUY2wgaW50ZXJwcmV0ZXIuLi4gJworLXRjbF9mb3VuZD0wCistCistZm9yIHBhdGgg aW4gIi91c3IvYmluL3RjbHNoIiBcCistICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNo OC41IiBcCistICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC40IiBcCistICAgICAg ICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC4zIjsgZG8KKy0gICAgaWYgWyAteCAkcGF0aCBd CistICAgIHRoZW4KKy0gICAgICAgIGVjaG8gJHBhdGggPiBidWlsZC91bml4L2xvY2FsL3RjbAor LSAgICAgICAgZWNobyAkcGF0aAorLSAgICAgICAgdGNsX2ZvdW5kPTEKKy0gICAgICAgIGJyZWFr CisraWYgdGVzdCAiWGAoJGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrICAg ZWNob190ZXN0aW5nX3N0cmluZz1gKCRlY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9u dWxsYCAmJgorKyAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rf c3RyaW5nIjsgdGhlbgorKyAgOgorK2Vsc2UKKysgICMgVGhlIFNvbGFyaXMsIEFJWCwgYW5kIERp Z2l0YWwgVW5peCBkZWZhdWx0IGVjaG8gcHJvZ3JhbXMgdW5xdW90ZQorKyAgIyBiYWNrc2xhc2hl cy4gIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBxdW90ZSBiYWNrc2xhc2hlcyB1c2luZwor KyAgIyAgIGVjaG8gIiRzb21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKKysgICMKKysgICMg U28sIGZpcnN0IHdlIGxvb2sgZm9yIGEgd29ya2luZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4K KysKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgZm9yIGRp ciBpbiAkUEFUSCAvdXNyL3VjYjsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIGlm ICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVleHQpICYmCisr ICAgICAgIHRlc3QgIlhgKCRkaXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYK KysgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRkaXIvZWNobyAiJGVjaG9fdGVzdF9zdHJp bmciKSAyPi9kZXYvbnVsbGAgJiYKKysgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5n IiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrICAgICAgZWNobz0iJGRpci9lY2hvIgor KyAgICAgIGJyZWFrCisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKysK KysgIGlmIHRlc3QgIlgkZWNobyIgPSBYZWNobzsgdGhlbgorKyAgICAjIFdlIGRpZG4ndCBmaW5k IGEgYmV0dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KKysgICAgaWYgdGVzdCAi WGAocHJpbnQgLXIgJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrICAgICAgIGVjaG9f dGVzdGluZ19zdHJpbmc9YChwcmludCAtciAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVs bGAgJiYKKysgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVz dF9zdHJpbmciOyB0aGVuCisrICAgICAgIyBUaGlzIHNoZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQg LXIgdGhhdCBkb2VzIHRoZSB0cmljay4KKysgICAgICBlY2hvPSdwcmludCAtcicKKysgICAgZWxp ZiAodGVzdCAtZiAvYmluL2tzaCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dCkgJiYKKysJ IHRlc3QgIlgkQ09ORklHX1NIRUxMIiAhPSBYL2Jpbi9rc2g7IHRoZW4KKysgICAgICAjIElmIHdl IGhhdmUga3NoLCB0cnkgcnVubmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KKysgICAgICBP UklHSU5BTF9DT05GSUdfU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKysgICAgICBleHBv cnQgT1JJR0lOQUxfQ09ORklHX1NIRUxMCisrICAgICAgQ09ORklHX1NIRUxMPS9iaW4va3NoCisr ICAgICAgZXhwb3J0IENPTkZJR19TSEVMTAorKyAgICAgIGV4ZWMgJENPTkZJR19TSEVMTCAiJDAi IC0tbm8tcmVleGVjICR7MSsiJEAifQorKyAgICBlbHNlCisrICAgICAgIyBUcnkgdXNpbmcgcHJp bnRmLgorKyAgICAgIGVjaG89J3ByaW50ZiAlc1xuJworKyAgICAgIGlmIHRlc3QgIlhgKCRlY2hv ICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgorKwkgZWNob190ZXN0aW5nX3N0cmluZz1g KCRlY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkgdGVzdCAiWCRl Y2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSMgQ29v bCwgcHJpbnRmIHdvcmtzCisrCToKKysgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgk T1JJR0lOQUxfQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9u dWxsYCAmJgorKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKKysJ ICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIiQwIiAtLWZh bGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCisrCSAgIHRl c3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgor KwlDT05GSUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19TSEVMTAorKwlleHBvcnQgQ09ORklHX1NI RUxMCisrCVNIRUxMPSIkQ09ORklHX1NIRUxMIgorKwlleHBvcnQgU0hFTEwKKysJZWNobz0iJENP TkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iCisrICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdf c3RyaW5nPWAoJENPTkZJR19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYv bnVsbGAgJiYKKysJICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCisr CSAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1l Y2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkgICB0ZXN0ICJYJGVj aG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysJZWNobz0i JENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iCisrICAgICAgZWxzZQorKwkjIG1heWJl IHdpdGggYSBzbWFsbGVyIHN0cmluZy4uLgorKwlwcmV2PToKKysKKysJZm9yIGNtZCBpbiAnZWNo byB0ZXN0JyAnc2VkIDJxICIkMCInICdzZWQgMTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQg NTBxICIkMCInOyBkbworKwkgIGlmICh0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZh bCAkY21kYCIpIDI+L2Rldi9udWxsCisrCSAgdGhlbgorKwkgICAgYnJlYWsKKysJICBmaQorKwkg IHByZXY9IiRjbWQiCisrCWRvbmUKKysKKysJaWYgdGVzdCAiJHByZXYiICE9ICdzZWQgNTBxICIk MCInOyB0aGVuCisrCSAgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKKysJICBleHBvcnQg ZWNob190ZXN0X3N0cmluZworKwkgIGV4ZWMgJHtPUklHSU5BTF9DT05GSUdfU0hFTEwtJHtDT05G SUdfU0hFTEwtL2Jpbi9zaH19ICIkMCIgJHsxKyIkQCJ9CisrCWVsc2UKKysJICAjIE9vcHMuICBX ZSBsb3N0IGNvbXBsZXRlbHksIHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgorKwkgIGVjaG89ZWNo bworKwlmaQorKyAgICAgIGZpCisgICAgIGZpCisrICBmaQorK2ZpCisrZmkKKysKKysjIENvcHkg ZWNobyBhbmQgcXVvdGUgdGhlIGNvcHkgc3VpdGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBm cm9tCisrIyB0aGUgTWFrZWZpbGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdo aWNoIGlzIHVzZWQgbGF0ZXIuCisrRUNITz0kZWNobworK2lmIHRlc3QgIlgkRUNITyIgPSAiWCRD T05GSUdfU0hFTEwgJDAgLS1mYWxsYmFjay1lY2hvIjsgdGhlbgorKyAgIEVDSE89IiRDT05GSUdf U0hFTEwgXFxcJFwkMCAtLWZhbGxiYWNrLWVjaG8iCisrZmkKKysKKysKKysKKysKKyt0YWduYW1l cz0ke3RhZ25hbWVzKyR7dGFnbmFtZXN9LH1DWFgKKysKKyt0YWduYW1lcz0ke3RhZ25hbWVzKyR7 dGFnbmFtZXN9LH1GNzcKKysKKytleGVjIDc8JjAgPC9kZXYvbnVsbCA2PiYxCisrCisrIyBOYW1l IG9mIHRoZSBob3N0LgorKyMgaG9zdG5hbWUgb24gc29tZSBzeXN0ZW1zIChTVlIzLjIsIExpbnV4 KSByZXR1cm5zIGEgYm9ndXMgZXhpdCBzdGF0dXMsCisrIyBzbyB1bmFtZSBnZXRzIHJ1biB0b28u CisrYWNfaG9zdG5hbWU9YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQg MXFgCisrCisrIworKyMgSW5pdGlhbGl6YXRpb25zLgorKyMKKythY19kZWZhdWx0X3ByZWZpeD0v dXNyL2xvY2FsCisrYWNfY2xlYW5fZmlsZXM9CisrYWNfY29uZmlnX2xpYm9ial9kaXI9LgorK0xJ Qk9CSlM9CisrY3Jvc3NfY29tcGlsaW5nPW5vCisrc3ViZGlycz0KKytNRkxBR1M9CisrTUFLRUZM QUdTPQorK1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CisrCisrIyBJZGVudGl0eSBvZiB0 aGlzIHBhY2thZ2UuCisrUEFDS0FHRV9OQU1FPSdTT0NJJworK1BBQ0tBR0VfVEFSTkFNRT0nc29j aScKKytQQUNLQUdFX1ZFUlNJT049JzMuMC4wJworK1BBQ0tBR0VfU1RSSU5HPSdTT0NJIDMuMC4w JworK1BBQ0tBR0VfQlVHUkVQT1JUPSdtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQnCisr CisrYWNfdW5pcXVlX2ZpbGU9InNvY2kvY29yZS9lcnJvci5jcHAiCisrIyBGYWN0b3JpbmcgZGVm YXVsdCBoZWFkZXJzIGZvciBtb3N0IHRlc3RzLgorK2FjX2luY2x1ZGVzX2RlZmF1bHQ9IlwKKysj aW5jbHVkZSA8c3RkaW8uaD4KKysjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorKyMgaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorKyMgaW5jbHVk ZSA8c3lzL3N0YXQuaD4KKysjZW5kaWYKKysjaWZkZWYgU1REQ19IRUFERVJTCisrIyBpbmNsdWRl IDxzdGRsaWIuaD4KKysjIGluY2x1ZGUgPHN0ZGRlZi5oPgorKyNlbHNlCisrIyBpZmRlZiBIQVZF X1NURExJQl9ICisrIyAgaW5jbHVkZSA8c3RkbGliLmg+CisrIyBlbmRpZgorKyNlbmRpZgorKyNp ZmRlZiBIQVZFX1NUUklOR19ICisrIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5l ZCBIQVZFX01FTU9SWV9ICisrIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CisrIyBlbmRpZgorKyMgaW5j bHVkZSA8c3RyaW5nLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1RSSU5HU19ICisrIyBpbmNs dWRlIDxzdHJpbmdzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAorKyMgaW5j bHVkZSA8aW50dHlwZXMuaD4KKysjZW5kaWYKKysjaWZkZWYgSEFWRV9TVERJTlRfSAorKyMgaW5j bHVkZSA8c3RkaW50Lmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfVU5JU1REX0gKKysjIGluY2x1 ZGUgPHVuaXN0ZC5oPgorKyNlbmRpZiIKKysKKythY19zdWJzdF92YXJzPSdMVExJQk9CSlMKKytM SUJPQkpTCisrUlVOX1RFU1RTX0ZBTFNFCisrUlVOX1RFU1RTX1RSVUUKKytzZWRfb2sKKytkaWZm X29rCisrSFRNTF9ET0NfRkFMU0UKKytIVE1MX0RPQ19UUlVFCisrUEVSTAorK2dzX29rCisrZHZp cHNfb2sKKytsYXRleF9vaworK2RveHlnZW5fb2sKKytJTkZPX0RPQ19GQUxTRQorK0lORk9fRE9D X1RSVUUKKytQT1NUR1JFU1FMX0RJUlMKKytIQVZFX1BPU1RHUkVTUUxfRkFMU0UKKytIQVZFX1BP U1RHUkVTUUxfVFJVRQorK1BPU1RHUkVTUUxfTERGTEFHUworK1BPU1RHUkVTUUxfQ0ZMQUdTCisr UE9TVEdSRVNRTF9WRVJTSU9OCisrUEdfQ09ORklHCisrT1JBQ0xFX0RJUlMKKytIQVZFX09SQUNM RV9GQUxTRQorK0hBVkVfT1JBQ0xFX1RSVUUKKytPUkFDTEVfT0NJX0xERkxBR1MKKytPUkFDTEVf T0NJX0NGTEFHUworK09SQUNMRV9PQ0lfVkVSU0lPTgorK01ZU1FMX0RJUlMKKytIQVZFX01ZU1FM X0ZBTFNFCisrSEFWRV9NWVNRTF9UUlVFCisrTVlTUUxfTERGTEFHUworK01ZU1FMX0NGTEFHUwor K01ZU1FMX1ZFUlNJT04KKytNWVNRTF9DT05GSUcKKytCT09TVF9WRVJTSU9OCisrQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIKKytCT09TVF9SRUdFWF9MSUIKKytCT09TVF9EQVRFX1RJTUVf TElCCisrQk9PU1RfU0lHTkFMU19MSUIKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIKKytCT09T VF9TRVJJQUxJWkFUSU9OX0xJQgorK0JPT1NUX0lPU1RSRUFNU19MSUIKKytCT09TVF9USFJFQURf TElCCisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQgorK0JPT1NUX0ZJTEVTWVNURU1fTElCCisr Qk9PU1RfTElCUworK0JPT1NUX0NGTEFHUworK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRF9UUlVFCisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRAorK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0UKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RS VUUKKytTT0NJX0hFQURFUlNfQlVSSUVECisrU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NP Q0lfSEVBREVSU19CVVJJRURfVFJVRQorK0xJQlRPT0wKKythY19jdF9GNzcKKytGRkxBR1MKKytG NzcKKytDUFAKKytOTUVESVQKKytEU1lNVVRJTAorK1JBTkxJQgorK0FSCisrRUNITworK0xOX1MK KytFR1JFUAorK0dSRVAKKytTRUQKKythbV9fZmFzdGRlcENDX0ZBTFNFCisrYW1fX2Zhc3RkZXBD Q19UUlVFCisrQ0NERVBNT0RFCisrYWNfY3RfQ0MKKytDRkxBR1MKKytDQworK0NYWENQUAorK2Ft X19mYXN0ZGVwQ1hYX0ZBTFNFCisrYW1fX2Zhc3RkZXBDWFhfVFJVRQorK0NYWERFUE1PREUKKytB TURFUEJBQ0tTTEFTSAorK0FNREVQX0ZBTFNFCisrQU1ERVBfVFJVRQorK2FtX19xdW90ZQorK2Ft X19pbmNsdWRlCisrREVQRElSCisrT0JKRVhUCisrRVhFRVhUCisrYWNfY3RfQ1hYCisrQ1BQRkxB R1MKKytMREZMQUdTCisrQ1hYRkxBR1MKKytDWFgKKytob3N0X29zCisraG9zdF92ZW5kb3IKKyto b3N0X2NwdQorK2hvc3QKKytidWlsZF9vcworK2J1aWxkX3ZlbmRvcgorK2J1aWxkX2NwdQorK2J1 aWxkCisrVVBMT0FEX0NPTU1BTkQKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTgorK1JQTV9SRUxF QVNFCisrSEFWRV9DUFBVTklUX0ZBTFNFCisrSEFWRV9DUFBVTklUX1RSVUUKKytDUFBVTklUX1ZF UlNJT04KKytDUFBVTklUX0xJQlMKKytDUFBVTklUX0NGTEFHUworK0NQUFVOSVRfQ09ORklHCisr YW1fX3VudGFyCisrYW1fX3RhcgorK0FNVEFSCisrYW1fX2xlYWRpbmdfZG90CisrU0VUX01BS0UK KytBV0sKKytta2Rpcl9wCisrTUtESVJfUAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTQorK1NUUklQ CisraW5zdGFsbF9zaAorK01BS0VJTkZPCisrQVVUT0hFQURFUgorK0FVVE9NQUtFCisrQVVUT0NP TkYKKytBQ0xPQ0FMCisrVkVSU0lPTgorK1BBQ0tBR0UKKytDWUdQQVRIX1cKKythbV9faXNyYwor K0lOU1RBTExfREFUQQorK0lOU1RBTExfU0NSSVBUCisrSU5TVEFMTF9QUk9HUkFNCisrdGFyZ2V0 X2FsaWFzCisraG9zdF9hbGlhcworK2J1aWxkX2FsaWFzCisrTElCUworK0VDSE9fVAorK0VDSE9f TgorK0VDSE9fQworK0RFRlMKKyttYW5kaXIKKytsb2NhbGVkaXIKKytsaWJkaXIKKytwc2Rpcgor K3BkZmRpcgorK2R2aWRpcgorK2h0bWxkaXIKKytpbmZvZGlyCisrZG9jZGlyCisrb2xkaW5jbHVk ZWRpcgorK2luY2x1ZGVkaXIKKytsb2NhbHN0YXRlZGlyCisrc2hhcmVkc3RhdGVkaXIKKytzeXNj b25mZGlyCisrZGF0YWRpcgorK2RhdGFyb290ZGlyCisrbGliZXhlY2RpcgorK3NiaW5kaXIKKyti aW5kaXIKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lCisrcHJlZml4CisrZXhlY19wcmVmaXgKKytQ QUNLQUdFX0JVR1JFUE9SVAorK1BBQ0tBR0VfU1RSSU5HCisrUEFDS0FHRV9WRVJTSU9OCisrUEFD S0FHRV9UQVJOQU1FCisrUEFDS0FHRV9OQU1FCisrUEFUSF9TRVBBUkFUT1IKKytTSEVMTCcKKyth Y19zdWJzdF9maWxlcz0nJworK2FjX3VzZXJfb3B0cz0nCisrZW5hYmxlX29wdGlvbl9jaGVja2lu ZworK3dpdGhfY3BwdW5pdF9wcmVmaXgKKyt3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXgKKytlbmFi bGVfc2hhcmVkCisrZW5hYmxlX3N0YXRpYworK2VuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nCisr ZW5hYmxlX2Zhc3RfaW5zdGFsbAorK3dpdGhfZ251X2xkCisrZW5hYmxlX2xpYnRvb2xfbG9jawor K3dpdGhfcGljCisrd2l0aF90YWdzCisrZW5hYmxlX2V4Y2VwdGlvbnMKKytlbmFibGVfaW5mb19k b2MKKytlbmFibGVfaHRtbF9kb2MKKyt3aXRoX2RvY2RpcgorK2VuYWJsZV9idXJyaWVkX2hlYWRl cnMKKytlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzCisrZW5hYmxlX3Bvc3RncmVzcWxfYnVy cmllZF9oZWFkZXJzCisrd2l0aF9ib29zdAorK2VuYWJsZV9iYWNrZW5kX215c3FsCisrd2l0aF9t eXNxbAorK2VuYWJsZV9iYWNrZW5kX29yYWNsZQorK3dpdGhfb3JhY2xlCisrd2l0aF9vcmFjbGVf aW5jbHVkZQorK3dpdGhfb3JhY2xlX2xpYgorK2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwKKyt3 aXRoX3Bvc3RncmVzcWwKKysnCisrICAgICAgYWNfcHJlY2lvdXNfdmFycz0nYnVpbGRfYWxpYXMK Kytob3N0X2FsaWFzCisrdGFyZ2V0X2FsaWFzCisrQ1hYCisrQ1hYRkxBR1MKKytMREZMQUdTCisr TElCUworK0NQUEZMQUdTCisrQ0NDCisrQ1hYQ1BQCisrQ0MKKytDRkxBR1MKKytDUFAKKytGNzcK KytGRkxBR1MnCisrCisrCisrIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRp b25zLgorK2FjX2luaXRfaGVscD0KKythY19pbml0X3ZlcnNpb249ZmFsc2UKKythY191bnJlY29n bml6ZWRfb3B0cz0KKythY191bnJlY29nbml6ZWRfc2VwPQorKyMgVGhlIHZhcmlhYmxlcyBoYXZl IHRoZSBzYW1lIG5hbWVzIGFzIHRoZSBvcHRpb25zLCB3aXRoCisrIyBkYXNoZXMgY2hhbmdlZCB0 byB1bmRlcmxpbmVzLgorK2NhY2hlX2ZpbGU9L2Rldi9udWxsCisrZXhlY19wcmVmaXg9Tk9ORQor K25vX2NyZWF0ZT0KKytub19yZWN1cnNpb249CisrcHJlZml4PU5PTkUKKytwcm9ncmFtX3ByZWZp eD1OT05FCisrcHJvZ3JhbV9zdWZmaXg9Tk9ORQorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9cyx4 LHgsCisrc2lsZW50PQorK3NpdGU9Cisrc3JjZGlyPQorK3ZlcmJvc2U9CisreF9pbmNsdWRlcz1O T05FCisreF9saWJyYXJpZXM9Tk9ORQorKworKyMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRp b25zLgorKyMgVGhlc2UgYXJlIGxlZnQgdW5leHBhbmRlZCBzbyB1c2VycyBjYW4gIm1ha2UgaW5z dGFsbCBleGVjX3ByZWZpeD0vZm9vIgorKyMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJl IHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNfcHJlZml4CisrIyBieSBkZWZhdWx0IHdpbGwg YWN0dWFsbHkgY2hhbmdlLgorKyMgVXNlIGJyYWNlcyBpbnN0ZWFkIG9mIHBhcmVucyBiZWNhdXNl IHNoLCBwZXJsLCBldGMuIGFsc28gYWNjZXB0IHRoZW0uCisrIyAoVGhlIGxpc3QgZm9sbG93cyB0 aGUgc2FtZSBvcmRlciBhcyB0aGUgR05VIENvZGluZyBTdGFuZGFyZHMuKQorK2JpbmRpcj0nJHtl eGVjX3ByZWZpeH0vYmluJworK3NiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCisrbGliZXhl Y2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKKytkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3No YXJlJworK2RhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9JworK3N5c2NvbmZkaXI9JyR7cHJlZml4fS9l dGMnCisrc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCisrbG9jYWxzdGF0ZWRpcj0nJHtw cmVmaXh9L3ZhcicKKytpbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKKytvbGRpbmNsdWRl ZGlyPScvdXNyL2luY2x1ZGUnCisrZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdF X1RBUk5BTUV9JworK2luZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCisraHRtbGRpcj0nJHtk b2NkaXJ9JworK2R2aWRpcj0nJHtkb2NkaXJ9JworK3BkZmRpcj0nJHtkb2NkaXJ9JworK3BzZGly PScke2RvY2Rpcn0nCisrbGliZGlyPScke2V4ZWNfcHJlZml4fS9saWInCisrbG9jYWxlZGlyPSck e2RhdGFyb290ZGlyfS9sb2NhbGUnCisrbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCisrCisr YWNfcHJldj0KKythY19kYXNoZGFzaD0KKytmb3IgYWNfb3B0aW9uCisrZG8KKysgICMgSWYgdGhl IHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgorKyAgaWYgdGVz dCAtbiAiJGFjX3ByZXYiOyB0aGVuCisrICAgIGV2YWwgJGFjX3ByZXY9XCRhY19vcHRpb24KKysg ICAgYWNfcHJldj0KKysgICAgY29udGludWUKKysgIGZpCisrCisrICBjYXNlICRhY19vcHRpb24g aW4KKysgICo9KikJYWNfb3B0YXJnPWBleHByICJYJGFjX29wdGlvbiIgOiAnW149XSo9XCguKlwp J2AgOzsKKysgICopCWFjX29wdGFyZz15ZXMgOzsKKysgIGVzYWMKKysKKysgICMgQWNjZXB0IHRo ZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2Ug dHlwb3MuCisrCisrICBjYXNlICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KKysgIC0tKQorKyAg ICBhY19kYXNoZGFzaD15ZXMgOzsKKysKKysgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkg fCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCisrICAgIGFjX3ByZXY9YmluZGlyIDs7CisrICAtYmlu ZGlyPSogfCAtLWJpbmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1i aT0qKQorKyAgICBiaW5kaXI9JGFjX29wdGFyZyA7OworKworKyAgLWJ1aWxkIHwgLS1idWlsZCB8 IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKKysgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OworKyAg LWJ1aWxkPSogfCAtLWJ1aWxkPSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSopCisrICAg IGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKKysKKysgIC1jYWNoZS1maWxlIHwgLS1jYWNoZS1m aWxlIHwgLS1jYWNoZS1maWwgfCAtLWNhY2hlLWZpIFwKKysgIHwgLS1jYWNoZS1mIHwgLS1jYWNo ZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQorKyAgICBhY19wcmV2 PWNhY2hlX2ZpbGUgOzsKKysgIC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8IC0tY2Fj aGUtZmlsPSogfCAtLWNhY2hlLWZpPSogXAorKyAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSog fCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKKysgICAg Y2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7CisrCisrICAtLWNvbmZpZy1jYWNoZSB8IC1DKQorKyAg ICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OworKworKyAgLWRhdGFkaXIgfCAtLWRhdGFkaXIg fCAtLWRhdGFkaSB8IC0tZGF0YWQpCisrICAgIGFjX3ByZXY9ZGF0YWRpciA7OworKyAgLWRhdGFk aXI9KiB8IC0tZGF0YWRpcj0qIHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KikKKysgICAgZGF0YWRp cj0kYWNfb3B0YXJnIDs7CisrCisrICAtZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGlyIHwgLS1k YXRhcm9vdGRpIHwgLS1kYXRhcm9vdGQgfCAtLWRhdGFyb290IFwKKysgIHwgLS1kYXRhcm9vIHwg LS1kYXRhcm8gfCAtLWRhdGFyKQorKyAgICBhY19wcmV2PWRhdGFyb290ZGlyIDs7CisrICAtZGF0 YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaT0qIHwgLS1kYXRhcm9v dGQ9KiBcCisrICB8IC0tZGF0YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89KiB8IC0t ZGF0YXI9KikKKysgICAgZGF0YXJvb3RkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWRpc2FibGUt KiB8IC0tZGlzYWJsZS0qKQorKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAn eC0qZGlzYWJsZS1cKC4qXCknYAorKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFs aWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisrICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipb Xi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisrICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKKysgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0 CisrICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0v Xy9nJ2AKKysgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCisrICAgICAgKiIKKysiZW5hYmxlXyRh Y191c2Vyb3B0IgorKyIqKSA7OworKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNf dW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0tZGlzYWJsZS0kYWNfdXNlcm9w dF9vcmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKKysgICAgZXNhYworKyAgICBl dmFsIGVuYWJsZV8kYWNfdXNlcm9wdD1ubyA7OworKworKyAgLWRvY2RpciB8IC0tZG9jZGlyIHwg LS1kb2NkaSB8IC0tZG9jIHwgLS1kbykKKysgICAgYWNfcHJldj1kb2NkaXIgOzsKKysgIC1kb2Nk aXI9KiB8IC0tZG9jZGlyPSogfCAtLWRvY2RpPSogfCAtLWRvYz0qIHwgLS1kbz0qKQorKyAgICBk b2NkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWR2aWRpciB8IC0tZHZpZGlyIHwgLS1kdmlkaSB8 IC0tZHZpZCB8IC0tZHZpIHwgLS1kdikKKysgICAgYWNfcHJldj1kdmlkaXIgOzsKKysgIC1kdmlk aXI9KiB8IC0tZHZpZGlyPSogfCAtLWR2aWRpPSogfCAtLWR2aWQ9KiB8IC0tZHZpPSogfCAtLWR2 PSopCisrICAgIGR2aWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtZW5hYmxlLSogfCAtLWVuYWJs ZS0qKQorKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwo W149XSpcKSdgCisrICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2 YXJpYWJsZSBuYW1lcy4KKysgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19j cl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX3VzZXJvcHQiID4mMgorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKKysgICAgYWNf dXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAorKyAg ICBjYXNlICRhY191c2VyX29wdHMgaW4KKysgICAgICAqIgorKyJlbmFibGVfJGFjX3VzZXJvcHQi CisrIiopIDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6 ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS1lbmFibGUtJGFjX3VzZXJvcHRfb3JpZyIKKysJ IGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7CisrICAgIGVzYWMKKysgICAgZXZhbCBlbmFibGVf JGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKKysKKysgIC1leGVjLXByZWZpeCB8IC0tZXhlY19w cmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1leGVjLXByZWZpIFwKKysgIHwgLS1leGVjLXByZWYg fCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMtIFwKKysgIHwgLS1l eGVjIHwgLS1leGUgfCAtLWV4KQorKyAgICBhY19wcmV2PWV4ZWNfcHJlZml4IDs7CisrICAtZXhl Yy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1w cmVmaT0qIFwKKysgIHwgLS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0q IHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCisrICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0t ZXg9KikKKysgICAgZXhlY19wcmVmaXg9JGFjX29wdGFyZyA7OworKworKyAgLWdhcyB8IC0tZ2Fz IHwgLS1nYSB8IC0tZykKKysgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCisrICAgIHdp dGhfZ2FzPXllcyA7OworKworKyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkK KysgICAgYWNfaW5pdF9oZWxwPWxvbmcgOzsKKysgIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1o ZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKKysgICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7Owor KyAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAtLWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQorKyAg ICBhY19pbml0X2hlbHA9c2hvcnQgOzsKKysKKysgIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAt LWhvKQorKyAgICBhY19wcmV2PWhvc3RfYWxpYXMgOzsKKysgIC1ob3N0PSogfCAtLWhvc3Q9KiB8 IC0taG9zPSogfCAtLWhvPSopCisrICAgIGhvc3RfYWxpYXM9JGFjX29wdGFyZyA7OworKworKyAg LWh0bWxkaXIgfCAtLWh0bWxkaXIgfCAtLWh0bWxkaSB8IC0taHRtbGQgfCAtLWh0bWwgfCAtLWh0 bSB8IC0taHQpCisrICAgIGFjX3ByZXY9aHRtbGRpciA7OworKyAgLWh0bWxkaXI9KiB8IC0taHRt bGRpcj0qIHwgLS1odG1sZGk9KiB8IC0taHRtbGQ9KiB8IC0taHRtbD0qIHwgLS1odG09KiBcCisr ICB8IC0taHQ9KikKKysgICAgaHRtbGRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtaW5jbHVkZWRp ciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBc CisrICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQorKyAgICBhY19wcmV2 PWluY2x1ZGVkaXIgOzsKKysgIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5j bHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCisrICB8IC0taW5jbHVkPSog fCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCisrICAgIGluY2x1ZGVkaXI9JGFjX29w dGFyZyA7OworKworKyAgLWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2Qg fCAtLWluZm8gfCAtLWluZikKKysgICAgYWNfcHJldj1pbmZvZGlyIDs7CisrICAtaW5mb2Rpcj0q IHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWlu Zj0qKQorKyAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1saWJkaXIgfCAtLWxpYmRp ciB8IC0tbGliZGkgfCAtLWxpYmQpCisrICAgIGFjX3ByZXY9bGliZGlyIDs7CisrICAtbGliZGly PSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0qIHwgLS1saWJkPSopCisrICAgIGxpYmRpcj0kYWNf b3B0YXJnIDs7CisrCisrICAtbGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhlY2Rp IHwgLS1saWJleGVjZCB8IC0tbGliZXhlYyBcCisrICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0t bGliZSkKKysgICAgYWNfcHJldj1saWJleGVjZGlyIDs7CisrICAtbGliZXhlY2Rpcj0qIHwgLS1s aWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVjPSog XAorKyAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCisrICAgIGxpYmV4ZWNk aXI9JGFjX29wdGFyZyA7OworKworKyAgLWxvY2FsZWRpciB8IC0tbG9jYWxlZGlyIHwgLS1sb2Nh bGVkaSB8IC0tbG9jYWxlZCB8IC0tbG9jYWxlKQorKyAgICBhY19wcmV2PWxvY2FsZWRpciA7Owor KyAgLWxvY2FsZWRpcj0qIHwgLS1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGk9KiB8IC0tbG9jYWxl ZD0qIHwgLS1sb2NhbGU9KikKKysgICAgbG9jYWxlZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1s b2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fs c3RhdGVkIFwKKysgIHwgLS1sb2NhbHN0YXRlIHwgLS1sb2NhbHN0YXQgfCAtLWxvY2Fsc3RhIHwg LS1sb2NhbHN0IHwgLS1sb2NhbHMpCisrICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7OworKyAg LWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8 IC0tbG9jYWxzdGF0ZWQ9KiBcCisrICB8IC0tbG9jYWxzdGF0ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8 IC0tbG9jYWxzdGE9KiB8IC0tbG9jYWxzdD0qIHwgLS1sb2NhbHM9KikKKysgICAgbG9jYWxzdGF0 ZWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtbWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwg LS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1tKQorKyAgICBhY19wcmV2PW1hbmRpciA7OworKyAg LW1hbmRpcj0qIHwgLS1tYW5kaXI9KiB8IC0tbWFuZGk9KiB8IC0tbWFuZD0qIHwgLS1tYW49KiB8 IC0tbWE9KiB8IC0tbT0qKQorKyAgICBtYW5kaXI9JGFjX29wdGFyZyA7OworKworKyAgLW5mcCB8 IC0tbmZwIHwgLS1uZikKKysgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KKysgICAg d2l0aF9mcD1ubyA7OworKworKyAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVh dCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKKysgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQor KyAgICBub19jcmVhdGU9eWVzIDs7CisrCisrICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNp b24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKKysgIHwgLS1uby1yZWN1cnMgfCAt LW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKQorKyAg ICBub19yZWN1cnNpb249eWVzIDs7CisrCisrICAtb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVk ZWRpciB8IC0tb2xkaW5jbHVkZWRpIHwgLS1vbGRpbmNsdWRlZCBcCisrICB8IC0tb2xkaW5jbHVk ZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKKysg IHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKKysgICAgYWNfcHJldj1v bGRpbmNsdWRlZGlyIDs7CisrICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGlyPSog fCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRlZD0qIFwKKysgIHwgLS1vbGRpbmNsdWRl PSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGlu Yz0qIFwKKysgIHwgLS1vbGRpbj0qIHwgLS1vbGRpPSogfCAtLW9sZD0qIHwgLS1vbD0qIHwgLS1v PSopCisrICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXByZWZpeCB8IC0t cHJlZml4IHwgLS1wcmVmaSB8IC0tcHJlZiB8IC0tcHJlIHwgLS1wciB8IC0tcCkKKysgICAgYWNf cHJldj1wcmVmaXggOzsKKysgIC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAt LXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9KikKKysgICAgcHJlZml4PSRhY19vcHRh cmcgOzsKKysKKysgIC1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dy YW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCisrICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dy YW0tcHIgfCAtLXByb2dyYW0tcCkKKysgICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OworKyAg LXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9 KiBcCisrICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0t cHI9KiB8IC0tcHJvZ3JhbS1wPSopCisrICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsK KysKKysgIC1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3Vm ZmkgfCAtLXByb2dyYW0tc3VmZiBcCisrICB8IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0tc3Ug fCAtLXByb2dyYW0tcykKKysgICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OworKyAgLXByb2dy YW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZmk9KiBcCisr ICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9KiB8 IC0tcHJvZ3JhbS1zPSopCisrICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRhcmcgOzsKKysKKysg IC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKKysg IHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKKysg IHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS0gXAorKyAgfCAt LXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKKysgIHwgLS1wcm9ncmFt LXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zIHwgLS1w cm9ncmFtLXRyYW4gXAorKyAgfCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3Jh bS10KQorKyAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKKysgIC1wcm9ncmFt LXRyYW5zZm9ybS1uYW1lPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiBcCisrICB8IC0t cHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAorKyAg fCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAorKyAg fCAtLXByb2dyYW0tdHJhbnNmb3JtPSogfCAtLXByb2dyYW0tdHJhbnNmb3I9KiBcCisrICB8IC0t cHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJhbnNmPSogXAorKyAgfCAtLXByb2dyYW0t dHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSogXAorKyAgfCAtLXByb2dyLXRyYT0qIHwgLS1wcm9n cmFtLXRyPSogfCAtLXByb2dyYW0tdD0qKQorKyAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRh Y19vcHRhcmcgOzsKKysKKysgIC1wZGZkaXIgfCAtLXBkZmRpciB8IC0tcGRmZGkgfCAtLXBkZmQg fCAtLXBkZiB8IC0tcGQpCisrICAgIGFjX3ByZXY9cGRmZGlyIDs7CisrICAtcGRmZGlyPSogfCAt LXBkZmRpcj0qIHwgLS1wZGZkaT0qIHwgLS1wZGZkPSogfCAtLXBkZj0qIHwgLS1wZD0qKQorKyAg ICBwZGZkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXBzZGlyIHwgLS1wc2RpciB8IC0tcHNkaSB8 IC0tcHNkIHwgLS1wcykKKysgICAgYWNfcHJldj1wc2RpciA7OworKyAgLXBzZGlyPSogfCAtLXBz ZGlyPSogfCAtLXBzZGk9KiB8IC0tcHNkPSogfCAtLXBzPSopCisrICAgIHBzZGlyPSRhY19vcHRh cmcgOzsKKysKKysgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1x dSB8IC0tcSBcCisrICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAt LXNpbCkKKysgICAgc2lsZW50PXllcyA7OworKworKyAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAt LXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCisrICAgIGFjX3ByZXY9 c2JpbmRpciA7OworKyAgLXNiaW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8IC0t c2JpbmQ9KiB8IC0tc2Jpbj0qIFwKKysgIHwgLS1zYmk9KiB8IC0tc2I9KikKKysgICAgc2JpbmRp cj0kYWNfb3B0YXJnIDs7CisrCisrICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGly IHwgLS1zaGFyZWRzdGF0ZWRpIFwKKysgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRl IHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAorKyAgfCAtLXNoYXJlZHN0IHwgLS1zaGFy ZWRzIHwgLS1zaGFyZWQgfCAtLXNoYXJlIHwgLS1zaGFyIFwKKysgIHwgLS1zaGEgfCAtLXNoKQor KyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7CisrICAtc2hhcmVkc3RhdGVkaXI9KiB8IC0t c2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaT0qIFwKKysgIHwgLS1zaGFyZWRzdGF0 ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBc CisrICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9 KiB8IC0tc2hhcj0qIFwKKysgIHwgLS1zaGE9KiB8IC0tc2g9KikKKysgICAgc2hhcmVkc3RhdGVk aXI9JGFjX29wdGFyZyA7OworKworKyAgLXNpdGUgfCAtLXNpdGUgfCAtLXNpdCkKKysgICAgYWNf cHJldj1zaXRlIDs7CisrICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQorKyAgICBzaXRl PSRhY19vcHRhcmcgOzsKKysKKysgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNy Y2QgfCAtLXNyYyB8IC0tc3IpCisrICAgIGFjX3ByZXY9c3JjZGlyIDs7CisrICAtc3JjZGlyPSog fCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQor KyAgICBzcmNkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZk aXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAorKyAgfCAtLXN5c2Nv biB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0tc3kpCisrICAgIGFjX3ByZXY9c3lzY29u ZmRpciA7OworKyAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGk9 KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKKysgIHwgLS1zeXNjb249KiB8IC0tc3lz Y289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9KikKKysgICAgc3lzY29uZmRpcj0kYWNf b3B0YXJnIDs7CisrCisrICAtdGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwg LS10YXIgfCAtLXRhIHwgLS10KQorKyAgICBhY19wcmV2PXRhcmdldF9hbGlhcyA7OworKyAgLXRh cmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0t dGE9KiB8IC0tdD0qKQorKyAgICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7OworKworKyAgLXYg fCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKKysg ICAgdmVyYm9zZT15ZXMgOzsKKysKKysgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8g fCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCisrICAgIGFjX2luaXRfdmVyc2lvbj06IDs7CisrCisr ICAtd2l0aC0qIHwgLS13aXRoLSopCisrICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9u IiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCisrICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5v dCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKysgICAgZXhwciAieCRhY191c2Vyb3B0IiA6 ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiID4mMgor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3Vz ZXJvcHQKKysgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9b LSsuXS9fL2cnYAorKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KKysgICAgICAqIgorKyJ3aXRo XyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIk YWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0td2l0aC0kYWNfdXNlcm9w dF9vcmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKKysgICAgZXNhYworKyAgICBl dmFsIHdpdGhfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKKysKKysgIC13aXRob3V0LSogfCAt LXdpdGhvdXQtKikKKysgICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndp dGhvdXQtXCguKlwpJ2AKKysgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNo ZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5f JGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIgPiYyCisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9CisrICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAorKyAg ICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydg CisrICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgorKyAgICAgICoiCisrIndpdGhfJGFjX3VzZXJv cHQiCisrIiopIDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29n bml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS13aXRob3V0LSRhY191c2Vyb3B0X29yaWci CisrCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OworKyAgICBlc2FjCisrICAgIGV2YWwgd2l0 aF8kYWNfdXNlcm9wdD1ubyA7OworKworKyAgLS14KQorKyAgICAjIE9ic29sZXRlOyB1c2UgLS13 aXRoLXguCisrICAgIHdpdGhfeD15ZXMgOzsKKysKKysgIC14LWluY2x1ZGVzIHwgLS14LWluY2x1 ZGVzIHwgLS14LWluY2x1ZGUgfCAtLXgtaW5jbHVkIHwgLS14LWluY2x1IFwKKysgIHwgLS14LWlu Y2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCisrICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7 OworKyAgLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGU9KiB8IC0t eC1pbmNsdWQ9KiB8IC0teC1pbmNsdT0qIFwKKysgIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8 IC0teC1pbj0qIHwgLS14LWk9KikKKysgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7CisrCisr ICAteC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJh cmkgXAorKyAgfCAtLXgtbGlicmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwg LS14LWxpIHwgLS14LWwpCisrICAgIGFjX3ByZXY9eF9saWJyYXJpZXMgOzsKKysgIC14LWxpYnJh cmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0q IFwKKysgIHwgLS14LWxpYnJhcj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxp Yj0qIHwgLS14LWxpPSogfCAtLXgtbD0qKQorKyAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7 CisrCisrICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlv bjogJGFjX29wdGlvbgorK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+ JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgOzsKKysKKysgICo9KikKKysg ICAgYWNfZW52dmFyPWBleHByICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAorKyAgICAj IFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisr ICAgIGV4cHIgIngkYWNfZW52dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwg JiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5h bWU6ICRhY19lbnZ2YXIiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBl dmFsICRhY19lbnZ2YXI9XCRhY19vcHRhcmcKKysgICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKKysK KysgICopCisrICAgICMgRklYTUU6IHNob3VsZCBiZSByZW1vdmVkIGluIGF1dG9jb25mIDMuMC4K KysgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwg LS1ob3N0LCAtLXRhcmdldCIgPiYyCisrICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5f JGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKKysgICAgOiAke2J1aWxk X2FsaWFzPSRhY19vcHRpb259ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlh cz0kYWNfb3B0aW9ufQorKyAgICA7OworKworKyAgZXNhYworIGRvbmUKKyAKKy1pZiBbICR0Y2xf Zm91bmQgLWVxIDAgXQorLXRoZW4KKy0gICAgICAgIGVjaG8gJ05PVCBmb3VuZC4nCistICAgICAg ICBlY2hvICdJcyB0aGUgVGNsIGluc3RhbGxlZD8nCistICAgICAgICBleGl0CisraWYgdGVzdCAt biAiJGFjX3ByZXYiOyB0aGVuCisrICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNlZCAn cy9fLy0vZydgCisrICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50 IHRvICRhY19vcHRpb24iID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisr CisraWYgdGVzdCAtbiAiJGFjX3VucmVjb2duaXplZF9vcHRzIjsgdGhlbgorKyAgY2FzZSAkZW5h YmxlX29wdGlvbl9jaGVja2luZyBpbgorKyAgICBubykgOzsKKysgICAgZmF0YWwpIHsgJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVk X29wdHMiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKyAgICAqKSAgICAg JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJl Y29nbml6ZWRfb3B0cyIgPiYyIDs7CisrICBlc2FjCisrZmkKKysKKysjIENoZWNrIGFsbCBkaXJl Y3RvcnkgYXJndW1lbnRzIGZvciBjb25zaXN0ZW5jeS4KKytmb3IgYWNfdmFyIGluCWV4ZWNfcHJl Zml4IHByZWZpeCBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFyb290ZGlyIFwKKysJCWRh dGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1ZGVkaXIg XAorKwkJb2xkaW5jbHVkZWRpciBkb2NkaXIgaW5mb2RpciBodG1sZGlyIGR2aWRpciBwZGZkaXIg cHNkaXIgXAorKwkJbGliZGlyIGxvY2FsZWRpciBtYW5kaXIKKytkbworKyAgZXZhbCBhY192YWw9 XCQkYWNfdmFyCisrICAjIFJlbW92ZSB0cmFpbGluZyBzbGFzaGVzLgorKyAgY2FzZSAkYWNfdmFs IGluCisrICAgICovICkKKysgICAgICBhY192YWw9YGV4cHIgIlgkYWNfdmFsIiA6ICdYXCguKlte L11cKScgXHwgIlgkYWNfdmFsIiA6ICdYXCguKlwpJ2AKKysgICAgICBldmFsICRhY192YXI9XCRh Y192YWw7OworKyAgZXNhYworKyAgIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgZGlyZWN0b3J5 IG5hbWVzLgorKyAgY2FzZSAkYWNfdmFsIGluCisrICAgIFtcXC8kXSogfCA/OltcXC9dKiApICBj b250aW51ZTs7CisrICAgIE5PTkUgfCAnJyApIGNhc2UgJGFjX3ZhciBpbiAqcHJlZml4ICkgY29u dGludWU7OyBlc2FjOzsKKysgIGVzYWMKKysgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGV4 cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwi ID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2RvbmUKKysKKysjIFRoZXJlIG1p Z2h0IGJlIHBlb3BsZSB3aG8gZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBgJGhv c3QnCisrIyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCisrIyBGSVhN RTogVG8gcmVtb3ZlIHNvbWUgZGF5LgorK2J1aWxkPSRidWlsZF9hbGlhcworK2hvc3Q9JGhvc3Rf YWxpYXMKKyt0YXJnZXQ9JHRhcmdldF9hbGlhcworKworKyMgRklYTUU6IFRvIHJlbW92ZSBzb21l IGRheS4KKytpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiICE9IHg7IHRoZW4KKysgIGlmIHRlc3QgIngk YnVpbGRfYWxpYXMiID0geDsgdGhlbgorKyAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKKysgICAg JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVp bGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KKysgICAgSWYgYSBjcm9zcyBjb21waWxlciBpcyBk ZXRlY3RlZCB0aGVuIGNyb3NzIGNvbXBpbGUgbW9kZSB3aWxsIGJlIHVzZWQuIiA+JjIKKysgIGVs aWYgdGVzdCAieCRidWlsZF9hbGlhcyIgIT0gIngkaG9zdF9hbGlhcyI7IHRoZW4KKysgICAgY3Jv c3NfY29tcGlsaW5nPXllcworKyAgZmkKKytmaQorKworK2FjX3Rvb2xfcHJlZml4PQorK3Rlc3Qg LW4gIiRob3N0X2FsaWFzIiAmJiBhY190b29sX3ByZWZpeD0kaG9zdF9hbGlhcy0KKysKKyt0ZXN0 ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9udWxsCisrCisrCisrYWNfcHdkPWBwd2Rg ICYmIHRlc3QgLW4gIiRhY19wd2QiICYmCisrYWNfbHNfZGk9YGxzIC1kaSAuYCAmJgorK2FjX3B3 ZF9sc19kaT1gY2QgIiRhY19wd2QiICYmIGxzIC1kaSAuYCB8fAorKyAgeyAkYXNfZWNobyAiJGFz X21lOiBlcnJvcjogd29ya2luZyBkaXJlY3RvcnkgY2Fubm90IGJlIGRldGVybWluZWQiID4mMgor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK3Rlc3QgIlgkYWNfbHNfZGkiID0gIlgkYWNf cHdkX2xzX2RpIiB8fAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogcHdkIGRvZXMgbm90 IHJlcG9ydCBuYW1lIG9mIHdvcmtpbmcgZGlyZWN0b3J5IiA+JjIKKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKysKKysKKysjIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24g d2FzIG5vdCBzcGVjaWZpZWQuCisraWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KKysgIGFjX3Ny Y2Rpcl9kZWZhdWx0ZWQ9eWVzCisrICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhp cyBzY3JpcHQsIHRoZW4gdGhlIHBhcmVudCBkaXJlY3RvcnkuCisrICBhY19jb25mZGlyPWAkYXNf ZGlybmFtZSAtLSAiJGFzX215c2VsZiIgfHwKKyskYXNfZXhwciBYIiRhc19teXNlbGYiIDogJ1hc KC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRhc19teXNlbGYiIDogJ1hcKC8v XClbXi9dJyBcfCBcCisrCSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRh c19teXNlbGYiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFz X215c2VsZiIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewor KwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJ ICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8v XDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysgIHNyY2Rpcj0kYWNfY29uZmRpcgorKyAg aWYgdGVzdCAhIC1yICIkc3JjZGlyLyRhY191bmlxdWVfZmlsZSI7IHRoZW4KKysgICAgc3JjZGly PS4uCisrICBmaQorK2Vsc2UKKysgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9bm8KKytmaQorK2lmIHRl c3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCisrICB0ZXN0ICIkYWNfc3Jj ZGlyX2RlZmF1bHRlZCIgPSB5ZXMgJiYgc3JjZGlyPSIkYWNfY29uZmRpciBvciAuLiIKKysgIHsg JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVf ZmlsZSkgaW4gJHNyY2RpciIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkK KythY19tc2c9InNvdXJjZXMgYXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMg bm90IHdvcmsiCisrYWNfYWJzX2NvbmZkaXI9YCgKKysJY2QgIiRzcmNkaXIiICYmIHRlc3QgLXIg Ii4vJGFjX3VuaXF1ZV9maWxlIiB8fCB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfbXNn IiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysJcHdkKWAKKysjIFdoZW4gYnVp bGRpbmcgaW4gcGxhY2UsIHNldCBzcmNkaXI9LgorK2lmIHRlc3QgIiRhY19hYnNfY29uZmRpciIg PSAiJGFjX3B3ZCI7IHRoZW4KKysgIHNyY2Rpcj0uCisrZmkKKysjIFJlbW92ZSB1bm5lY2Vzc2Fy eSB0cmFpbGluZyBzbGFzaGVzIGZyb20gc3JjZGlyLgorKyMgRG91YmxlIHNsYXNoZXMgaW4gZmls ZSBuYW1lcyBpbiBvYmplY3QgZmlsZSBkZWJ1Z2dpbmcgaW5mbworKyMgbWVzcyB1cCBNLXggZ2Ri IGluIEVtYWNzLgorK2Nhc2UgJHNyY2RpciBpbgorKyovKSBzcmNkaXI9YGV4cHIgIlgkc3JjZGly IiA6ICdYXCguKlteL11cKScgXHwgIlgkc3JjZGlyIiA6ICdYXCguKlwpJ2A7OworK2VzYWMKKytm b3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBkbworKyAgZXZhbCBhY19lbnZfJHthY192 YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQorKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3ZhbHVl PVwkJHthY192YXJ9CisrICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0PVwkeyR7YWNfdmFy fStzZXR9CisrICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWU9XCQke2FjX3Zhcn0KKytk b25lCisrCisrIworKyMgUmVwb3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KKysjCisraWYgdGVzdCAi JGFjX2luaXRfaGVscCIgPSAibG9uZyI7IHRoZW4KKysgICMgT21pdCBzb21lIGludGVybmFsIG9y IG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgorKyAgIyBU aGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNo LgorKyAgY2F0IDw8X0FDRU9GCisrXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgU09DSSAzLjAuMCB0 byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCisrCisrVXNhZ2U6ICQwIFtPUFRJT05d Li4uIFtWQVI9VkFMVUVdLi4uCisrCisrVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlhYmxlcyAo ZS5nLiwgQ0MsIENGTEFHUy4uLiksIHNwZWNpZnkgdGhlbSBhcworK1ZBUj1WQUxVRS4gIFNlZSBi ZWxvdyBmb3IgZGVzY3JpcHRpb25zIG9mIHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMuCisr CisrRGVmYXVsdHMgZm9yIHRoZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMuCisr CisrQ29uZmlndXJhdGlvbjoKKysgIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkgdGhp cyBoZWxwIGFuZCBleGl0CisrICAgICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9wdGlv bnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlCisrICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBk aXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKKysgIC1W LCAtLXZlcnNpb24gICAgICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhp dAorKyAgLXEsIC0tcXVpZXQsIC0tc2lsZW50ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcuLi4n IG1lc3NhZ2VzCisrICAgICAgLS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMg aW4gRklMRSBbZGlzYWJsZWRdCisrICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBmb3Ig XGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJworKyAgLW4sIC0tbm8tY3JlYXRlICAgICAgICAg ZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKKysgICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZp bmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQorKworK0luc3Rh bGxhdGlvbiBkaXJlY3RvcmllczoKKysgIC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3RhbGwg YXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGluIFBSRUZJWAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgWyRhY19kZWZhdWx0X3ByZWZpeF0KKysgIC0tZXhlYy1wcmVmaXg9RVBSRUZJ WCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBbUFJFRklYXQorKworK0J5IGRlZmF1bHQsIFxgbWFrZSBp bnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgorK1xgJGFjX2RlZmF1bHRfcHJl Zml4L2JpbicsIFxgJGFjX2RlZmF1bHRfcHJlZml4L2xpYicgZXRjLiAgWW91IGNhbiBzcGVjaWZ5 CisrYW4gaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFuIFxgJGFjX2RlZmF1bHRfcHJlZml4 JyB1c2luZyBcYC0tcHJlZml4JywKKytmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgor KworK0ZvciBiZXR0ZXIgY29udHJvbCwgdXNlIHRoZSBvcHRpb25zIGJlbG93LgorKworK0ZpbmUg dHVuaW5nIG9mIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6CisrICAtLWJpbmRpcj1ESVIg ICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KKysgIC0tc2JpbmRpcj1E SVIgICAgICAgICAgIHN5c3RlbSBhZG1pbiBleGVjdXRhYmxlcyBbRVBSRUZJWC9zYmluXQorKyAg LS1saWJleGVjZGlyPURJUiAgICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBbRVBSRUZJWC9saWJl eGVjXQorKyAgLS1zeXNjb25mZGlyPURJUiAgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5l IGRhdGEgW1BSRUZJWC9ldGNdCisrICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxl IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQorKyAgLS1sb2NhbHN0 YXRlZGlyPURJUiAgICAgbW9kaWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvdmFy XQorKyAgLS1saWJkaXI9RElSICAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJF RklYL2xpYl0KKysgIC0taW5jbHVkZWRpcj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVG SVgvaW5jbHVkZV0KKysgIC0tb2xkaW5jbHVkZWRpcj1ESVIgICAgIEMgaGVhZGVyIGZpbGVzIGZv ciBub24tZ2NjIFsvdXNyL2luY2x1ZGVdCisrICAtLWRhdGFyb290ZGlyPURJUiAgICAgICByZWFk LW9ubHkgYXJjaC4taW5kZXBlbmRlbnQgZGF0YSByb290IFtQUkVGSVgvc2hhcmVdCisrICAtLWRh dGFkaXI9RElSICAgICAgICAgICByZWFkLW9ubHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRh dGEgW0RBVEFST09URElSXQorKyAgLS1pbmZvZGlyPURJUiAgICAgICAgICAgaW5mbyBkb2N1bWVu dGF0aW9uIFtEQVRBUk9PVERJUi9pbmZvXQorKyAgLS1sb2NhbGVkaXI9RElSICAgICAgICAgbG9j YWxlLWRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUi9sb2NhbGVdCisrICAtLW1hbmRpcj1ESVIg ICAgICAgICAgICBtYW4gZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RESVIvbWFuXQorKyAgLS1kb2Nk aXI9RElSICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiByb290IFtEQVRBUk9PVERJUi9kb2Mvc29j aV0KKysgIC0taHRtbGRpcj1ESVIgICAgICAgICAgIGh0bWwgZG9jdW1lbnRhdGlvbiBbRE9DRElS XQorKyAgLS1kdmlkaXI9RElSICAgICAgICAgICAgZHZpIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0K KysgIC0tcGRmZGlyPURJUiAgICAgICAgICAgIHBkZiBkb2N1bWVudGF0aW9uIFtET0NESVJdCisr ICAtLXBzZGlyPURJUiAgICAgICAgICAgICBwcyBkb2N1bWVudGF0aW9uIFtET0NESVJdCisrX0FD RU9GCisrCisrICBjYXQgPDxcX0FDRU9GCisrCisrUHJvZ3JhbSBuYW1lczoKKysgIC0tcHJvZ3Jh bS1wcmVmaXg9UFJFRklYICAgICAgICAgICAgcHJlcGVuZCBQUkVGSVggdG8gaW5zdGFsbGVkIHBy b2dyYW0gbmFtZXMKKysgIC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYICAgICAgICAgICAgYXBwZW5k IFNVRkZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcworKyAgLS1wcm9ncmFtLXRyYW5zZm9y bS1uYW1lPVBST0dSQU0gICBydW4gc2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0gbmFt ZXMKKysKKytTeXN0ZW0gdHlwZXM6CisrICAtLWJ1aWxkPUJVSUxEICAgICBjb25maWd1cmUgZm9y IGJ1aWxkaW5nIG9uIEJVSUxEIFtndWVzc2VkXQorKyAgLS1ob3N0PUhPU1QgICAgICAgY3Jvc3Mt Y29tcGlsZSB0byBidWlsZCBwcm9ncmFtcyB0byBydW4gb24gSE9TVCBbQlVJTERdCisrX0FDRU9G CisrZmkKKysKKytpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgorKyAgY2FzZSAkYWNf aW5pdF9oZWxwIGluCisrICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRp b24gb2YgU09DSSAzLjAuMDoiOzsKKysgICBlc2FjCisrICBjYXQgPDxcX0FDRU9GCisrCisrT3B0 aW9uYWwgRmVhdHVyZXM6CisrICAtLWRpc2FibGUtb3B0aW9uLWNoZWNraW5nICBpZ25vcmUgdW5y ZWNvZ25pemVkIC0tZW5hYmxlLy0td2l0aCBvcHRpb25zCisrICAtLWRpc2FibGUtRkVBVFVSRSAg ICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8p CisrICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCisr ICAtLWVuYWJsZS1zaGFyZWRbPVBLR1NdICBidWlsZCBzaGFyZWQgbGlicmFyaWVzIFtkZWZhdWx0 PW5vXQorKyAgLS1lbmFibGUtc3RhdGljWz1QS0dTXSAgYnVpbGQgc3RhdGljIGxpYnJhcmllcyBb ZGVmYXVsdD15ZXNdCisrICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVw IG9uZS10aW1lIGJ1aWxkCisrICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90 IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9ycworKyAgLS1lbmFibGUtZmFzdC1pbnN0 YWxsWz1QS0dTXQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemUgZm9yIGZhc3Qg aW5zdGFsbGF0aW9uIFtkZWZhdWx0PXllc10KKysgIC0tZGlzYWJsZS1saWJ0b29sLWxvY2sgIGF2 b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcykKKysgIC0tZW5hYmxlLWV4 Y2VwdGlvbnMgICAgIGVuYWJsZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hhbmlzbQorKyAgLS1k aXNhYmxlLWluZm8tZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEluZm8gZG9jdW1lbnRhdGlvbgor KyAgLS1kaXNhYmxlLWh0bWwtZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRh dGlvbgorKyAgLS1lbmFibGUtYnVycmllZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmNsdWRlIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZQorKyAg LS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAgICAgICAg ICBpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5CisrICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUKKysgIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmll ZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIFBvc3RHcmVTUUwg aGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3RvcnkKKysgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdHVyZQorKyAgLS1lbmFibGUtYmFja2VuZC1teXNxbCAgYnVpbGQtaW4gTXlTUUwgYmFj a2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQorKyAgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgYnVp bGQtaW4gT1JBQ0xFIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KKysgIC0tZW5hYmxlLWJh Y2tlbmQtcG9zdGdyZXNxbAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQtaW4gUG9z dGdyZVNRTCBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9dCisrCisrT3B0aW9uYWwgUGFja2Fn ZXM6CisrICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KKysg IC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdp dGgtUEFDS0FHRT1ubykKKysgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hl cmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKQorKyAgLS13aXRoLWNwcHVuaXQtZXhl Yy1wcmVmaXg9UEZYICBFeGVjIHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0 aW9uYWwpCisrICAtLXdpdGgtZ251LWxkICAgICAgICAgICBhc3N1bWUgdGhlIEMgY29tcGlsZXIg dXNlcyBHTlUgbGQgW2RlZmF1bHQ9bm9dCisrICAtLXdpdGgtcGljICAgICAgICAgICAgICB0cnkg dG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBbZGVmYXVsdD11c2UKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvdGhdCisrICAtLXdpdGgtdGFnc1s9VEFHU10gICAgICBpbmNsdWRl IGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgW2F1dG9tYXRpY10KKysgIC0td2l0aC1kb2NkaXI9 RElSICAgICAgIHNldCBkb2N1bWVudGF0aW9uIGRpcmVjdG9yeSB0byBESVIKKysgIC0td2l0aC1i b29zdD1ESVIgICAgICAgIHVzZSBib29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSBy b290CisrICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkgZm9yIGJvb3N0IGxpYnJh cnkgKG9wdGlvbmFsKQorKyAgLS13aXRoLW15c3FsPVtBUkddICAgICAgdXNlIE15U1FMIGNsaWVu dCBsaWJyYXJ5IFtkZWZhdWx0PXllc10sIG9wdGlvbmFsbHkKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIHNwZWNpZnkgcGF0aCB0byBteXNxbF9jb25maWcKKysgIC0td2l0aC1vcmFjbGU9W0RJ Ul0gICAgIHVzZSBPcmFjbGUgT0NJIEFQSSBmcm9tIGdpdmVuIHBhdGggdG8gT3JhY2xlIGhvbWUK KysgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeQorKyAgLS13aXRoLW9yYWNsZS1p bmNsdWRlPVtESVJdCisrICAgICAgICAgICAgICAgICAgICAgICAgICB1c2UgT3JhY2xlIE9DSSBB UEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGgKKysgIC0td2l0aC1vcmFjbGUtbGliPVtESVJdIHVz ZSBPcmFjbGUgT0NJIEFQSSBsaWJyYXJpZXMgZnJvbSBnaXZlbiBwYXRoCisrICAtLXdpdGgtcG9z dGdyZXNxbD1bQVJHXSB1c2UgUG9zdGdyZVNRTCBsaWJyYXJ5IFtkZWZhdWx0PXllc10sIG9wdGlv bmFsbHkKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgcGF0aCB0byBwZ19jb25m aWcKKysKKytTb21lIGluZmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxlczoKKysgIENYWCAg ICAgICAgIEMrKyBjb21waWxlciBjb21tYW5kCisrICBDWFhGTEFHUyAgICBDKysgY29tcGlsZXIg ZmxhZ3MKKysgIExERkxBR1MgICAgIGxpbmtlciBmbGFncywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5 b3UgaGF2ZSBsaWJyYXJpZXMgaW4gYQorKyAgICAgICAgICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0 b3J5IDxsaWIgZGlyPgorKyAgTElCUyAgICAgICAgbGlicmFyaWVzIHRvIHBhc3MgdG8gdGhlIGxp bmtlciwgZS5nLiAtbDxsaWJyYXJ5PgorKyAgQ1BQRkxBR1MgICAgQy9DKysvT2JqZWN0aXZlIEMg cHJlcHJvY2Vzc29yIGZsYWdzLCBlLmcuIC1JPGluY2x1ZGUgZGlyPiBpZgorKyAgICAgICAgICAg ICAgeW91IGhhdmUgaGVhZGVycyBpbiBhIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBk aXI+CisrICBDWFhDUFAgICAgICBDKysgcHJlcHJvY2Vzc29yCisrICBDQyAgICAgICAgICBDIGNv bXBpbGVyIGNvbW1hbmQKKysgIENGTEFHUyAgICAgIEMgY29tcGlsZXIgZmxhZ3MKKysgIENQUCAg ICAgICAgIEMgcHJlcHJvY2Vzc29yCisrICBGNzcgICAgICAgICBGb3J0cmFuIDc3IGNvbXBpbGVy IGNvbW1hbmQKKysgIEZGTEFHUyAgICAgIEZvcnRyYW4gNzcgY29tcGlsZXIgZmxhZ3MKKysKKytV c2UgdGhlc2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZp Z3VyZScgb3IgdG8gaGVscAorK2l0IHRvIGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRo IG5vbnN0YW5kYXJkIG5hbWVzL2xvY2F0aW9ucy4KKysKKytSZXBvcnQgYnVncyB0byA8bXNvYmN6 YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4KKytfQUNFT0YKKythY19zdGF0dXM9JD8KKytmaQor KworK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KKysgICMgSWYg dGhlcmUgYXJlIHN1YmRpcnMsIHJlcG9ydCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCisrICBmb3Ig YWNfZGlyIGluIDogJGFjX3N1YmRpcnNfYWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBj b250aW51ZQorKyAgICB0ZXN0IC1kICIkYWNfZGlyIiB8fAorKyAgICAgIHsgY2QgIiRzcmNkaXIi ICYmIGFjX3B3ZD1gcHdkYCAmJiBzcmNkaXI9LiAmJiB0ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAor KyAgICAgIGNvbnRpbnVlCisrICAgIGFjX2J1aWxkZGlyPS4KKysKKytjYXNlICIkYWNfZGlyIiBp bgorKy4pIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRf cHJlZml4PSA7OworKyopCisrICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwg c2VkICdzfF5cLltcXC9dfHwnYAorKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRh Y19kaXJfc3VmZml4LgorKyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJf c3VmZml4IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCisrICBjYXNlICRhY190b3Bf YnVpbGRkaXJfc3ViIGluCisrICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWls ZF9wcmVmaXg9IDs7CisrICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGly X3N1Yi8gOzsKKysgIGVzYWMgOzsKKytlc2FjCisrYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdk CisrYWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAorKyMgZm9yIGJhY2t3YXJk IGNvbXBhdGliaWxpdHk6CisrYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4Cisr CisrY2FzZSAkc3JjZGlyIGluCisrICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisr ICAgIGFjX3NyY2Rpcj0uCisrICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIK KysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OworKyAgW1xcL10qIHwgPzpbXFwvXSog KSAgIyBBYnNvbHV0ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4 OworKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNy Y2RpciA7OworKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JGFjX3RvcF9i dWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNf dG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8k c3JjZGlyIDs7CisrZXNhYworK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rp cl9zdWZmaXgKKysKKysgICAgY2QgIiRhY19kaXIiIHx8IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51 ZTsgfQorKyAgICAjIENoZWNrIGZvciBndWVzdGVkIGNvbmZpZ3VyZS4KKysgICAgaWYgdGVzdCAt ZiAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251IjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAg ICAkU0hFTEwgIiRhY19zcmNkaXIvY29uZmlndXJlLmdudSIgLS1oZWxwPXJlY3Vyc2l2ZQorKyAg ICBlbGlmIHRlc3QgLWYgIiRhY19zcmNkaXIvY29uZmlndXJlIjsgdGhlbgorKyAgICAgIGVjaG8g JiYKKysgICAgICAkU0hFTEwgIiRhY19zcmNkaXIvY29uZmlndXJlIiAtLWhlbHA9cmVjdXJzaXZl CisrICAgIGVsc2UKKysgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1 cmF0aW9uIGluZm9ybWF0aW9uIGlzIGluICRhY19kaXIiID4mMgorKyAgICBmaSB8fCBhY19zdGF0 dXM9JD8KKysgICAgY2QgIiRhY19wd2QiIHx8IHsgYWNfc3RhdHVzPSQ/OyBicmVhazsgfQorKyAg ZG9uZQorIGZpCisgCistZWNobyAnJworLWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBw YXJzZS1wYXJhbWV0ZXJzLnRjbAorLQorLWVjaG8gJycKKy1lY2hvICdDb25maWd1cmUgZG9uZS4n CistZWNobyAnWWVzLCBpdCB3YXMgc2hvcnQuJworLWVjaG8gJycKKy1lY2hvICdZb3UgY2FuIG5v dyBydW4gbWFrZS4nCisrdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVz CisraWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgorKyAgY2F0IDw8XF9BQ0VPRgorK1NPQ0kgY29u ZmlndXJlIDMuMC4wCisrZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzCisrCisrQ29weXJp Z2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLAorKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKytnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisrCisrQ29weXJpZ2h0 IChDKSAyMDA0LTIwMDkgTWFjaWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdl Lm5ldD4KKytfQUNFT0YKKysgIGV4aXQKKytmaQorK2NhdCA+Y29uZmlnLmxvZyA8PF9BQ0VPRgor K1RoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdo aWxlCisrcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1h a2VzIGEgbWlzdGFrZS4KKysKKytJdCB3YXMgY3JlYXRlZCBieSBTT0NJICRhc19tZSAzLjAuMCwg d2hpY2ggd2FzCisrZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLiAgSW52b2NhdGlvbiBj b21tYW5kIGxpbmUgd2FzCisrCisrICAkICQwICRACisrCisrX0FDRU9GCisrZXhlYyA1Pj5jb25m aWcubG9nCisreworK2NhdCA8PF9BU1VOQU1FCisrIyMgLS0tLS0tLS0tICMjCisrIyMgUGxhdGZv cm0uICMjCisrIyMgLS0tLS0tLS0tICMjCisrCisraG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVu YW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKKyt1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+ L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rl di9udWxsIHx8IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9u dWxsIHx8IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxs IHx8IGVjaG8gdW5rbm93bmAKKysKKysvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5h bWUgLXApIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKysvYmluL3VuYW1lIC1YICAgICA9 IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKKysKKysv YmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAgICAg ICAgICB8fCBlY2hvIHVua25vd25gCisrL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9i aW4vYXJjaCAtaykgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvY29u dmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8 IGVjaG8gdW5rbm93bmAKKysvdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gYCgvdXNyL2Jpbi9ob3N0 aW5mbykgMj4vZGV2L251bGwgICAgICB8fCBlY2hvIHVua25vd25gCisrL2Jpbi9tYWNoaW5lICAg ICAgICAgICA9IGAoL2Jpbi9tYWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1 bmtub3duYAorKy91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+ L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKKysvYmluL3VuaXZlcnNlICAgICAgICAg ID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25g CisrCisrX0FTVU5BTUUKKysKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgJGFzX2VjaG8gIlBBVEg6ICRhc19kaXIiCisr ZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKyt9ID4mNQorKworK2NhdCA+JjUgPDxfQUNFT0YK KysKKysKKysjIyAtLS0tLS0tLS0tLSAjIworKyMjIENvcmUgdGVzdHMuICMjCisrIyMgLS0tLS0t LS0tLS0gIyMKKysKKytfQUNFT0YKKysKKysKKysjIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFu ZCBsaW5lLgorKyMgU3RyaXAgb3V0IC0tbm8tY3JlYXRlIGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0 aGV5IGRvIG5vdCBwaWxlIHVwLgorKyMgU3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9u J3Qgd2FudCB0byByZWNvcmQgaXQgZm9yIGZ1dHVyZSBydW5zLgorKyMgQWxzbyBxdW90ZSBhbnkg YXJncyBjb250YWluaW5nIHNoZWxsIG1ldGEtY2hhcmFjdGVycy4KKysjIE1ha2UgdHdvIHBhc3Nl cyB0byBhbGxvdyBmb3IgcHJvcGVyIGR1cGxpY2F0ZS1hcmd1bWVudCBzdXBwcmVzc2lvbi4KKyth Y19jb25maWd1cmVfYXJncz0KKythY19jb25maWd1cmVfYXJnczA9CisrYWNfY29uZmlndXJlX2Fy Z3MxPQorK2FjX211c3Rfa2VlcF9uZXh0PWZhbHNlCisrZm9yIGFjX3Bhc3MgaW4gMSAyCisrZG8K KysgIGZvciBhY19hcmcKKysgIGRvCisrICAgIGNhc2UgJGFjX2FyZyBpbgorKyAgICAtbm8tY3Jl YXRlIHwgLS1uby1jKiB8IC1uIHwgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tciopIGNvbnRpbnVlIDs7 CisrICAgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0t cSBcCisrICAgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2ls KQorKyAgICAgIGNvbnRpbnVlIDs7CisrICAgICpcJyopCisrICAgICAgYWNfYXJnPWAkYXNfZWNo byAiJGFjX2FyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNhYworKyAg ICBjYXNlICRhY19wYXNzIGluCisrICAgIDEpIGFjX2NvbmZpZ3VyZV9hcmdzMD0iJGFjX2NvbmZp Z3VyZV9hcmdzMCAnJGFjX2FyZyciIDs7CisrICAgIDIpCisrICAgICAgYWNfY29uZmlndXJlX2Fy Z3MxPSIkYWNfY29uZmlndXJlX2FyZ3MxICckYWNfYXJnJyIKKysgICAgICBpZiB0ZXN0ICRhY19t dXN0X2tlZXBfbmV4dCA9IHRydWU7IHRoZW4KKysJYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBH b3QgdmFsdWUsIGJhY2sgdG8gbm9ybWFsLgorKyAgICAgIGVsc2UKKysJY2FzZSAkYWNfYXJnIGlu CisrCSAgKj0qIHwgLS1jb25maWctY2FjaGUgfCAtQyB8IC1kaXNhYmxlLSogfCAtLWRpc2FibGUt KiBcCisrCSAgfCAtZW5hYmxlLSogfCAtLWVuYWJsZS0qIHwgLWdhcyB8IC0tZyogfCAtbmZwIHwg LS1uZiogXAorKwkgIHwgLXEgfCAtcXVpZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12 IHwgLXZlcmIqIFwKKysJICB8IC13aXRoLSogfCAtLXdpdGgtKiB8IC13aXRob3V0LSogfCAtLXdp dGhvdXQtKiB8IC0teCkKKysJICAgIGNhc2UgIiRhY19jb25maWd1cmVfYXJnczAgIiBpbgorKwkg ICAgICAiJGFjX2NvbmZpZ3VyZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7Owor KwkgICAgZXNhYworKwkgICAgOzsKKysJICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsK KysJZXNhYworKyAgICAgIGZpCisrICAgICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1 cmVfYXJncyAnJGFjX2FyZyciCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorK2RvbmUK KyskYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MwIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2Fy Z3MwK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMD07IGV4cG9ydCBhY19jb25m aWd1cmVfYXJnczA7IH0KKyskYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7 YWNfY29uZmlndXJlX2FyZ3MxK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07 IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczE7IH0KKysKKysjIFdoZW4gaW50ZXJydXB0ZWQgb3Ig ZXhpdCdkLCBjbGVhbnVwIHRlbXBvcmFyeSBmaWxlcywgYW5kIGNvbXBsZXRlCisrIyBjb25maWcu bG9nLiAgV2UgcmVtb3ZlIGNvbW1lbnRzIGJlY2F1c2UgYW55d2F5IHRoZSBxdW90ZXMgaW4gdGhl cmUKKysjIHdvdWxkIGNhdXNlIHByb2JsZW1zIG9yIGxvb2sgdWdseS4KKysjIFdBUk5JTkc6IFVz ZSAnXCcnIHRvIHJlcHJlc2VudCBhbiBhcG9zdHJvcGhlIHdpdGhpbiB0aGUgdHJhcC4KKysjIFdB Uk5JTkc6IERvIG5vdCBzdGFydCB0aGUgdHJhcCBjb2RlIHdpdGggYSBuZXdsaW5lLCBkdWUgdG8g YSBGcmVlQlNEIDQuMCBidWcuCisrdHJhcCAnZXhpdF9zdGF0dXM9JD8KKysgICMgU2F2ZSBpbnRv IGNvbmZpZy5sb2cgc29tZSBpbmZvcm1hdGlvbiB0aGF0IG1pZ2h0IGhlbHAgaW4gZGVidWdnaW5n LgorKyAgeworKyAgICBlY2hvCisrCisrICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0t LS0tLS0tICMjCisrIyMgQ2FjaGUgdmFyaWFibGVzLiAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0g IyMKKytfQVNCT1gKKysgICAgZWNobworKyAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRp bmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorKygKKysgIGZvciBh Y192YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ1wnJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAt OV9dKlwpPS4qL1wxL3AnXCcnYDsgZG8KKysgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAg IGNhc2UgJGFjX3ZhbCBpbiAjKAorKyAgICAqJHthc19ubH0qKQorKyAgICAgIGNhc2UgJGFjX3Zh ciBpbiAjKAorKyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEg bmV3bGluZSIgPiYyO30gOzsKKysgICAgICBlc2FjCisrICAgICAgY2FzZSAkYWNfdmFyIGluICMo CisrICAgICAgXyB8IElGUyB8IGFzX25sKSA7OyAjKAorKyAgICAgIEJBU0hfQVJHViB8IEJBU0hf U09VUkNFKSBldmFsICRhY192YXI9IDs7ICMoCisrICAgICAgKikgJGFzX3Vuc2V0ICRhY192YXIg OzsKKysgICAgICBlc2FjIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysgIChzZXQpIDI+JjEgfAor KyAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9J1wnJyAnXCcnOyBzZXQpIDI+JjFgIGluICMoCisr ICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKKysgICAgICBzZWQgLW4gXAorKwkicy8nXCcnLydc JydcXFxcJ1wnJydcJycvZzsKKysJICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2Ny X2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSdcJydcXDInXCcnL3AiCisrICAgICAgOzsgIygKKysg ICAgKikKKysgICAgICBzZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51 bV0qPS9wIgorKyAgICAgIDs7CisrICAgIGVzYWMgfAorKyAgICBzb3J0CisrKQorKyAgICBlY2hv CisrCisrICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE91 dHB1dCB2YXJpYWJsZXMuICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysg ICAgZWNobworKyAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF92YXJzCisrICAgIGRvCisrICAg ICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAgICAgY2FzZSAkYWNfdmFsIGluCisrICAgICAg KlwnXCcnKikgYWNfdmFsPWAkYXNfZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxc XFxcXFwnXCcnJ1wnJy9nImA7OworKyAgICAgIGVzYWMKKysgICAgICAkYXNfZWNobyAiJGFjX3Zh cj0nXCcnJGFjX3ZhbCdcJyciCisrICAgIGRvbmUgfCBzb3J0CisrICAgIGVjaG8KKysKKysgICAg aWYgdGVzdCAtbiAiJGFjX3N1YnN0X2ZpbGVzIjsgdGhlbgorKyAgICAgIGNhdCA8PFxfQVNCT1gK KysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgRmlsZSBzdWJzdGl0dXRpb25zLiAjIwor KyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgICBlY2hvCisrICAgICAg Zm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKKysgICAgICBkbworKwlldmFsIGFjX3ZhbD1c JCRhY192YXIKKysJY2FzZSAkYWNfdmFsIGluCisrCSpcJ1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8g IiRhY192YWwiIHwgc2VkICJzLydcJycvJ1wnJ1xcXFxcXFxcJ1wnJydcJycvZyJgOzsKKysJZXNh YworKwkkYXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyciCisrICAgICAgZG9uZSB8IHNv cnQKKysgICAgICBlY2hvCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsg dGhlbgorKyAgICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLSAjIworKyMjIGNvbmZk ZWZzLmguICMjCisrIyMgLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgICBlY2hvCisrICAg ICAgY2F0IGNvbmZkZWZzLmgKKysgICAgICBlY2hvCisrICAgIGZpCisrICAgIHRlc3QgIiRhY19z aWduYWwiICE9IDAgJiYKKysgICAgICAkYXNfZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRh Y19zaWduYWwiCisrICAgICRhc19lY2hvICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgorKyAg fSA+JjUKKysgIHJtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiAmJgorKyAgICBybSAt ZiAtciBjb25mdGVzdCogY29uZmRlZnMqIGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCisrICAg IGV4aXQgJGV4aXRfc3RhdHVzCisrJyAwCisrZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRv CisrICB0cmFwICdhY19zaWduYWw9JyRhY19zaWduYWwnOyB7IChleGl0IDEpOyBleGl0IDE7IH0n ICRhY19zaWduYWwKKytkb25lCisrYWNfc2lnbmFsPTAKKysKKysjIGNvbmZkZWZzLmggYXZvaWRz IE9TIGNvbW1hbmQgbGluZSBsZW5ndGggbGltaXRzIHRoYXQgREVGUyBjYW4gZXhjZWVkLgorK3Jt IC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVmcy5oCisrCisrIyBQcmVkZWZpbmVkIHByZXByb2Nlc3Nv ciB2YXJpYWJsZXMuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFD S0FHRV9OQU1FICIkUEFDS0FHRV9OQU1FIgorK19BQ0VPRgorKworKworK2NhdCA+PmNvbmZkZWZz LmggPDxfQUNFT0YKKysjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIK KytfQUNFT0YKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIiRQQUNLQUdFX1ZFUlNJT04iCisrX0FDRU9GCisrCisrCisrY2F0ID4+Y29u ZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklO RyIKKytfQUNFT0YKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiJFBBQ0tBR0VfQlVHUkVQT1JUIgorK19BQ0VPRgorKworKworKyMg TGV0IHRoZSBzaXRlIGZpbGUgc2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdh bnRzIHRvLgorKyMgUHJlZmVyIGFuIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0 aWNhbGx5IHNlbGVjdGVkIG9uZXMuCisrYWNfc2l0ZV9maWxlMT1OT05FCisrYWNfc2l0ZV9maWxl Mj1OT05FCisraWYgdGVzdCAtbiAiJENPTkZJR19TSVRFIjsgdGhlbgorKyAgYWNfc2l0ZV9maWxl MT0kQ09ORklHX1NJVEUKKytlbGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgorKyAg YWNfc2l0ZV9maWxlMT0kcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlCisrICBhY19zaXRlX2ZpbGUy PSRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlCisrZWxzZQorKyAgYWNfc2l0ZV9maWxlMT0kYWNfZGVm YXVsdF9wcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUKKysgIGFjX3NpdGVfZmlsZTI9JGFjX2RlZmF1 bHRfcHJlZml4L2V0Yy9jb25maWcuc2l0ZQorK2ZpCisrZm9yIGFjX3NpdGVfZmlsZSBpbiAiJGFj X3NpdGVfZmlsZTEiICIkYWNfc2l0ZV9maWxlMiIKKytkbworKyAgdGVzdCAieCRhY19zaXRlX2Zp bGUiID0geE5PTkUgJiYgY29udGludWUKKysgIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0 aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0 ICRhY19zaXRlX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3Jp cHQgJGFjX3NpdGVfZmlsZSIgPiY2O30KKysgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmls ZSIgPiY1CisrICAgIC4gIiRhY19zaXRlX2ZpbGUiCisrICBmaQorK2RvbmUKKysKKytpZiB0ZXN0 IC1yICIkY2FjaGVfZmlsZSI7IHRoZW4KKysgICMgU29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwg ZmFpbCB0byBzb3VyY2UgL2Rldi9udWxsIChzcGVjaWFsCisrICAjIGZpbGVzIGFjdHVhbGx5KSwg c28gd2UgYXZvaWQgZG9pbmcgdGhhdC4KKysgIGlmIHRlc3QgLWYgIiRjYWNoZV9maWxlIjsgdGhl bgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBjYWNoZSAkY2FjaGVf ZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIg PiY2O30KKysgICAgY2FzZSAkY2FjaGVfZmlsZSBpbgorKyAgICAgIFtcXC9dKiB8ID86W1xcL10q ICkgLiAiJGNhY2hlX2ZpbGUiOzsKKysgICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuICIu LyRjYWNoZV9maWxlIjs7CisrICAgIGVzYWMKKysgIGZpCisrZWxzZQorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgID4kY2FjaGVf ZmlsZQorK2ZpCisrCisrIyBDaGVjayB0aGF0IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQg aW4gdGhlIGNhY2hlIGhhdmUga2VwdCB0aGUgc2FtZQorKyMgdmFsdWUuCisrYWNfY2FjaGVfY29y cnVwdGVkPWZhbHNlCisrZm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KKysgIGV2 YWwgYWNfb2xkX3NldD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0CisrICBldmFsIGFjX25ld19z ZXQ9XCRhY19lbnZfJHthY192YXJ9X3NldAorKyAgZXZhbCBhY19vbGRfdmFsPVwkYWNfY3ZfZW52 XyR7YWNfdmFyfV92YWx1ZQorKyAgZXZhbCBhY19uZXdfdmFsPVwkYWNfZW52XyR7YWNfdmFyfV92 YWx1ZQorKyAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3X3NldCBpbgorKyAgICBzZXQsKQorKyAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0 IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhl IHByZXZpb3VzIHJ1biIgPiYyO30KKysgICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OworKyAg ICAsc2V0KQorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNf dmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+ JjI7fQorKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7CisrICAgICwpOzsKKysgICAgKikK KysgICAgICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCisr CSMgZGlmZmVyZW5jZXMgaW4gd2hpdGVzcGFjZSBkbyBub3QgbGVhZCB0byBmYWlsdXJlLgorKwlh Y19vbGRfdmFsX3c9YGVjaG8geCAkYWNfb2xkX3ZhbGAKKysJYWNfbmV3X3ZhbF93PWBlY2hvIHgg JGFjX25ld192YWxgCisrCWlmIHRlc3QgIiRhY19vbGRfdmFsX3ciICE9ICIkYWNfbmV3X3ZhbF93 IjsgdGhlbgorKwkgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFy JyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1 bjoiID4mMjt9CisrCSAgYWNfY2FjaGVfY29ycnVwdGVkPToKKysJZWxzZQorKwkgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiB3YXJuaW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMg aW4gXGAkYWNfdmFyJyBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogd2FybmluZzogaWdub3Jpbmcgd2hpdGVzcGFjZSBjaGFuZ2VzIGluIFxgJGFjX3Zhcicg c2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9CisrCSAgZXZhbCAkYWNfdmFyPVwkYWNfb2xk X3ZhbAorKwlmaQorKwl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6 ICBcYCRhY19vbGRfdmFsJyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6 ICBcYCRhY19vbGRfdmFsJyIgPiYyO30KKysJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICAg Y3VycmVudCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4mNQorKyRhc19lY2hvICIkYXNfbWU6ICAg Y3VycmVudCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4mMjt9CisrICAgICAgZmk7OworKyAgZXNh YworKyAgIyBQYXNzIHByZWNpb3VzIHZhcmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgorKyAgaWYg dGVzdCAiJGFjX25ld19zZXQiID0gc2V0OyB0aGVuCisrICAgIGNhc2UgJGFjX25ld192YWwgaW4K KysgICAgKlwnKikgYWNfYXJnPSRhY192YXI9YCRhc19lY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQg InMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192 YWwgOzsKKysgICAgZXNhYworKyAgICBjYXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KKysg ICAgICAqIiAnJGFjX2FyZycgIiopIDs7ICMgQXZvaWQgZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5z dXJlcyBhY2N1cmFjeS4KKysgICAgICAqKSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3Vy ZV9hcmdzICckYWNfYXJnJyIgOzsKKysgICAgZXNhYworKyAgZmkKKytkb25lCisraWYgJGFjX2Nh Y2hlX2NvcnJ1cHRlZDsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFj X3B3ZCc6IiA+JjI7fQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjaGFu Z2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29t cHJvbWlzZSB0aGUgYnVpbGQiID4mMjt9CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBh bmQgc3RhcnQgb3ZlciIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2Ug ZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9 CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyth Y19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRD RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBj b25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQor KworKworK2FjX2NvbmZpZ19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMgc29jaS9jb25maWcu aCIKKysKKysKKythY19hdXhfZGlyPQorK2ZvciBhY19kaXIgaW4gY29uZmlnICIkc3JjZGlyIi9j b25maWc7IGRvCisrICBpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwtc2giOyB0aGVuCisrICAg IGFjX2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0 YWxsLXNoIC1jIgorKyAgICBicmVhaworKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwu c2giOyB0aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIk YWNfYXV4X2Rpci9pbnN0YWxsLnNoIC1jIgorKyAgICBicmVhaworKyAgZWxpZiB0ZXN0IC1mICIk YWNfZGlyL3NodG9vbCI7IHRoZW4KKysgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCisrICAgIGFjX2lu c3RhbGxfc2g9IiRhY19hdXhfZGlyL3NodG9vbCBpbnN0YWxsIC1jIgorKyAgICBicmVhaworKyAg ZmkKKytkb25lCisraWYgdGVzdCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCisrICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0 YWxsLnNoIGluIGNvbmZpZyBcIiRzcmNkaXJcIi9jb25maWciID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gY29uZmln IFwiJHNyY2RpclwiL2NvbmZpZyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K KytmaQorKworKyMgVGhlc2UgdGhyZWUgdmFyaWFibGVzIGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVu c3VwcG9ydGVkLAorKyMgYW5kIGFyZSBpbnRlbmRlZCB0byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1 cmUgQXV0b2NvbmYgcmVsZWFzZS4KKysjIFRoZXkgY2FuIGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMg aWYgYSBidWlsZGVyJ3Mgc291cmNlIHRyZWUgaXMgaW4gYSBkaXJlY3RvcnkKKysjIHdob3NlIGZ1 bGwgbmFtZSBjb250YWlucyB1bnVzdWFsIGNoYXJhY3RlcnMuCisrYWNfY29uZmlnX2d1ZXNzPSIk U0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMg dmFyLgorK2FjX2NvbmZpZ19zdWI9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAgIyBQ bGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgorK2FjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhf ZGlyL2NvbmZpZ3VyZSIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KKysKKysKKythbV9f YXBpX3ZlcnNpb249JzEuMTAnCisrCisrIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBX ZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCisrIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdv b2QgYXMgYW5vdGhlci4gIEJ1dCBhdm9pZCB0aGUgYnJva2VuIG9yCisrIyBpbmNvbXBhdGlibGUg dmVyc2lvbnM6CisrIyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKKysjIFN1 bk9TIC91c3IvZXRjL2luc3RhbGwKKysjIElSSVggL3NiaW4vaW5zdGFsbAorKyMgQUlYIC9iaW4v aW5zdGFsbAorKyMgQW1pZ2FPUyAvQy9pbnN0YWxsLCB3aGljaCBpbnN0YWxscyBib290YmxvY2tz IG9uIGZsb3BweSBkaXNjcworKyMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9l c24ndCB3b3JrIHdpdGhvdXQgYSAtZyBmbGFnCisrIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFs bCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBhcmdzCisrIyBTVlI0IC91c3IvdWNiL2lu c3RhbGwsIHdoaWNoIHRyaWVzIHRvIHVzZSB0aGUgbm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgor KyMgT1MvMidzIHN5c3RlbSBpbnN0YWxsLCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVu dCBzZW1hbnRpYworKyMgLi9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRl ZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgorKyMgUmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMg dGhhdCBjYW5ub3QgaW5zdGFsbCBtdWx0aXBsZSBmaWxlcy4KKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAiID4mNjsg fQorK2lmIHRlc3QgLXogIiRJTlNUQUxMIjsgdGhlbgorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9p bnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICAjIEFjY291bnQgZm9yIHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5n IHNsYXNoZXMgaW4gUEFUSCBlbGVtZW50cy4KKytjYXNlICRhc19kaXIvIGluCisrICAuLyB8IC4v LyB8IC9jQy8qIHwgXAorKyAgL2V0Yy8qIHwgL3Vzci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3Ni aW4vKiB8IC91c3IvYWZzd3MvYmluLyogfCBcCisrICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwg PzpcXC9PUzJcXC9JTlNUQUxMXFwvKiB8IFwKKysgIC91c3IvdWNiLyogKSA7OworKyAgKikKKysg ICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFs bC4KKysgICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxs cyBzdHVmZiBhcyByb290CisrICAgICMgYnkgZGVmYXVsdC4KKysgICAgZm9yIGFjX3Byb2cgaW4g Z2luc3RhbGwgc2NvaW5zdCBpbnN0YWxsOyBkbworKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKwlpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3Byb2ckYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNf ZXhlY19leHQiOyB9OyB0aGVuCisrCSAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJ ICAgIGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxs IDI+JjE7IHRoZW4KKysJICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxl IGNhbGxpbmcgY29udmVudGlvbi4KKysJICAgIDoKKysJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBp bnN0YWxsICYmCisrCSAgICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4 dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFs bCBzY3JpcHQgdXNlZCBieSBIUCBwd3BsdXMtLWRvbid0IHVzZS4KKysJICAgIDoKKysJICBlbHNl CisrCSAgICBybSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysJ ICAgIGVjaG8gb25lID4gY29uZnRlc3Qub25lCisrCSAgICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3 bworKwkgICAgbWtkaXIgY29uZnRlc3QuZGlyCisrCSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRh Y19leGVjX2V4dCIgLWMgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3Qu ZGlyIiAmJgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 LnR3byAmJgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC5vbmUgJiYKKysJ ICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRlc3QudHdvCisrCSAgICB0aGVuCisrCSAg ICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIK KysJICAgICAgYnJlYWsgMworKwkgICAgZmkKKysJICBmaQorKwlmaQorKyAgICAgIGRvbmUKKysg ICAgZG9uZQorKyAgICA7OworK2VzYWMKKysKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKwor K3JtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgorKworK2ZpCisr ICBpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgICBJ TlNUQUxMPSRhY19jdl9wYXRoX2luc3RhbGwKKysgIGVsc2UKKysgICAgIyBBcyBhIGxhc3QgcmVz b3J0LCB1c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQorKyAgICAjIHZh bHVlIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3 aWxsCisrICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQg ZGlyZWN0b3J5IGlzCisrICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRp dmUgbmFtZS4KKysgICAgSU5TVEFMTD0kYWNfaW5zdGFsbF9zaAorKyAgZmkKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKKyskYXNfZWNobyAi JElOU1RBTEwiID4mNjsgfQorKworKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlz aGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4KKysjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xv c2UgYnJhY2UgZW5kcyB0aGUgdmFyaWFibGUgc3Vic3RpdHV0aW9uLgorK3Rlc3QgLXogIiRJTlNU QUxMX1BST0dSQU0iICYmIElOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16 ICIkSU5TVEFMTF9TQ1JJUFQiICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JworKworK3Rl c3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQn CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQg ZW52aXJvbm1lbnQgaXMgc2FuZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBi dWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uICIgPiY2OyB9CisrIyBKdXN0IGluIGNhc2UKKytz bGVlcCAxCisrZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCisrIyBEbyBgc2V0JyBpbiBh IHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncworKyMgYXJn dW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkg YQorKyMgc3ltbGluazsgc29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9k IHRpbWUgb2Ygc3ltbGlua3MKKysjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9m IHRoZSBzeW1saW5rJ3MgY29udGFpbmluZworKyMgZGlyZWN0b3J5KS4KKytpZiAoCisrICAgc2V0 IFggYGxzIC1MdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAK KysgICBpZiB0ZXN0ICIkKiIgPSAiWCI7IHRoZW4KKysgICAgICAjIC1MIGRpZG4ndCB3b3JrLgor KyAgICAgIHNldCBYIGBscyAtdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAorKyAg IGZpCisrICAgcm0gLWYgY29uZnRlc3QuZmlsZQorKyAgIGlmIHRlc3QgIiQqIiAhPSAiWCAkc3Jj ZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJCoiICE9ICJY IGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJZiBu ZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBl bgorKyAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0 IGluaGVyaXRzIGEKKysgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVu dC4gIFRoaXMgaGFzIGFjdHVhbGx5CisrICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0g Y291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgorKyAgICAgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhl cmUgaXMgbm90IGEgYnJva2VuCisrYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0 aGVyZSBpcyBub3QgYSBicm9rZW4KKythbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgIGZpCisrCisrICAgdGVzdCAiJDIiID0g Y29uZnRlc3QuZmlsZQorKyAgICkKKyt0aGVuCisrICAgIyBPay4KKysgICA6CisrZWxzZQorKyAg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBuZXdseSBjcmVhdGVkIGZpbGUg aXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKKytDaGVjayB5b3VyIHN5c3RlbSBjbG9j ayIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBv bGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+ JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKyt0 ZXN0ICIkcHJvZ3JhbV9wcmVmaXgiICE9IE5PTkUgJiYKKysgIHByb2dyYW1fdHJhbnNmb3JtX25h bWU9InMmXiYkcHJvZ3JhbV9wcmVmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMgVXNl IGEgZG91YmxlICQgc28gbWFrZSBpZ25vcmVzIGl0LgorK3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIg IT0gTk9ORSAmJgorKyAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZm aXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMgRG91YmxlIGFueSBcIG9yICQuCisrIyBC eSBkZWZhdWx0IHdhcyBgcyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KKythY19zY3JpcHQ9 J3MvW1xcJF0vJiYvZztzLztzLHgseCwkLy8nCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFz X2VjaG8gIiRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCisrCisr IyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAorK2FtX2F1eF9kaXI9YGNk ICRhY19hdXhfZGlyICYmIHB3ZGAKKysKKyt0ZXN0IHgiJHtNSVNTSU5HK3NldH0iID0geHNldCB8 fCBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKKysjIFVzZSBldmFsIHRv IGV4cGFuZCAkU0hFTEwKKytpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgorKyAg YW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIKKytlbHNlCisrICBhbV9taXNzaW5nX3J1 bj0KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNj cmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IFxgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiYyO30KKytmaQor KworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2Fm ZSBta2RpciAtcCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUg bWtkaXIgLXAuLi4gIiA+JjY7IH0KKytpZiB0ZXN0IC16ICIkTUtESVJfUCI7IHRoZW4KKysgIGlm IHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhf U0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2Jp bgorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgorKyAgZm9yIGFjX3Byb2cgaW4gbWtkaXIgZ21rZGlyOyBkbworKwkgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrCSAgIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf cHJvZyRhY19leGVjX2V4dCI7IH0gfHwgY29udGludWUKKysJICAgY2FzZSBgIiRhc19kaXIvJGFj X3Byb2ckYWNfZXhlY19leHQiIC0tdmVyc2lvbiAyPiYxYCBpbiAjKAorKwkgICAgICdta2RpciAo R05VIGNvcmV1dGlscykgJyogfCBcCisrCSAgICAgJ21rZGlyIChjb3JldXRpbHMpICcqIHwgXAor KwkgICAgICdta2RpciAoZmlsZXV0aWxzKSAnNC4xKikKKysJICAgICAgIGFjX2N2X3BhdGhfbWtk aXI9JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dAorKwkgICAgICAgYnJlYWsgMzs7CisrCSAg IGVzYWMKKysJIGRvbmUKKysgICAgICAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisr CisrZmkKKysKKysgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhl bgorKyAgICBNS0RJUl9QPSIkYWNfY3ZfcGF0aF9ta2RpciAtcCIKKysgIGVsc2UKKysgICAgIyBB cyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUg YQorKyAgICAjIHZhbHVlIGZvciBNS0RJUl9QIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJl Y2F1c2UgdGhhdCB3aWxsCisrICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNh Y2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCisrICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVl IGlzIGEgcmVsYXRpdmUgbmFtZS4KKysgICAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAu Ly0tdmVyc2lvbgorKyAgICBNS0RJUl9QPSIkYWNfaW5zdGFsbF9zaCAtZCIKKysgIGZpCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUtESVJfUCIgPiY1CisrJGFz X2VjaG8gIiRNS0RJUl9QIiA+JjY7IH0KKysKKytta2Rpcl9wPSIkTUtESVJfUCIKKytjYXNlICRt a2Rpcl9wIGluCisrICBbXFwvJF0qIHwgPzpbXFwvXSopIDs7CisrICAqLyopIG1rZGlyX3A9Ilwk KHRvcF9idWlsZGRpcikvJG1rZGlyX3AiIDs7CisrZXNhYworKworK2ZvciBhY19wcm9nIGluIGdh d2sgbWF3ayBuYXdrIGF3aworK2RvCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRh Y19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVt bXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4g IiRBV0siOyB0aGVuCisrICBhY19jdl9wcm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworK2ZpCisrZmkKKytBV0s9JGFjX2N2X3Byb2dfQVdLCisraWYgdGVzdCAtbiAiJEFX SyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBV0siID4m NQorKyRhc19lY2hvICIkQVdLIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKwor KworKyAgdGVzdCAtbiAiJEFXSyIgJiYgYnJlYWsKKytkb25lCisrCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSki ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQo TUFLRSkuLi4gIiA+JjY7IH0KKytzZXQgeCAke01BS0UtbWFrZX0KKythY19tYWtlPWAkYXNfZWNo byAiJDIiIHwgc2VkICdzLysvcC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKKytpZiB7IGFzX3Zh cj1hY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFy K3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgY2F0ID5jb25mdGVzdC5tYWtlIDw8XF9BQ0VPRgorK1NIRUxMID0gL2Jpbi9zaAor K2FsbDoKKysJQGVjaG8gJ0BAQCUlJT0kKE1BS0UpPUBAQCUlJScKKytfQUNFT0YKKysjIEdOVSBt YWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQg Y29uZnVzZSB1cy4KKytjYXNlIGAke01BS0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYv bnVsbGAgaW4KKysgICpAQEAlJSU9Pyo9QEBAJSUlKikKKysgICAgZXZhbCBhY19jdl9wcm9nX21h a2VfJHthY19tYWtlfV9zZXQ9eWVzOzsKKysgICopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtl XyR7YWNfbWFrZX1fc2V0PW5vOzsKKytlc2FjCisrcm0gLWYgY29uZnRlc3QubWFrZQorK2ZpCisr aWYgZXZhbCB0ZXN0IFwkYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVu CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19l Y2hvICJ5ZXMiID4mNjsgfQorKyAgU0VUX01BS0U9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICBT RVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0iCisrZmkKKysKKytybSAtcmYgLnRzdCAyPi9kZXYv bnVsbAorK21rZGlyIC50c3QgMj4vZGV2L251bGwKKytpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KKysg IGFtX19sZWFkaW5nX2RvdD0uCisrZWxzZQorKyAgYW1fX2xlYWRpbmdfZG90PV8KKytmaQorK3Jt ZGlyIC50c3QgMj4vZGV2L251bGwKKysKKytpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAh PSAiYHB3ZGAiOyB0aGVuCisrICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIp ICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAorKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCBy ZXBlYXRlZCAiLUkuIgorKyAgYW1fX2lzcmM9JyAtSSQoc3JjZGlyKScKKysgICMgdGVzdCB0byBz ZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAorKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2Nv bmZpZy5zdGF0dXM7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IHNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3Rj bGVhblwiIHRoZXJlIGZpcnN0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNl IGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhl cmUgZmlyc3QiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICBmaQorK2Zp CisrCisrIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCisraWYgdGVzdCAteiAiJENZR1BB VEhfVyI7IHRoZW4KKysgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYv bnVsbDsgdGhlbgorKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCisrICBlbHNlCisrICAgIENZ R1BBVEhfVz1lY2hvCisrICBmaQorK2ZpCisrCisrCisrIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9m IHRoZSBwYWNrYWdlLgorKyBQQUNLQUdFPSdzb2NpJworKyBWRVJTSU9OPSczLjAuMCcKKysKKysK KytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFICIkUEFDS0FHRSIK KytfQUNFT0YKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBWRVJT SU9OICIkVkVSU0lPTiIKKytfQUNFT0YKKysKKysjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMu CisrCisrQUNMT0NBTD0ke0FDTE9DQUwtIiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19h cGlfdmVyc2lvbn0ifQorKworKworK0FVVE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19y dW59YXV0b2NvbmYifQorKworKworK0FVVE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19y dW59YXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259In0KKysKKysKKytBVVRPSEVBREVSPSR7QVVU T0hFQURFUi0iJHthbV9taXNzaW5nX3J1bn1hdXRvaGVhZGVyIn0KKysKKysKKytNQUtFSU5GTz0k e01BS0VJTkZPLSIke2FtX21pc3NpbmdfcnVufW1ha2VpbmZvIn0KKysKKytpbnN0YWxsX3NoPSR7 aW5zdGFsbF9zaC0iXCQoU0hFTEwpICRhbV9hdXhfZGlyL2luc3RhbGwtc2gifQorKworKyMgSW5z dGFsbGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0 aGUgdXNlcgorKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1p Z2h0IG5vdCBiZSB0aGUgcmlnaHQKKysjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9u IGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCisrIyB3aWxsIGhvbm9yIHRoZSBgU1RS SVAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KKytpZiB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rv b2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rv b2xfcHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4K KytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICBhY19jdl9wcm9nX1NU UklQPSIkU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKyth c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFU SAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFj X2N2X3Byb2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCisrICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ZmkKKytmaQorK1NUUklQPSRhY19jdl9wcm9nX1NUUklQCisraWYgdGVzdCAtbiAiJFNUUklQIjsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFNUUklQIiA+JjUK KyskYXNfZWNobyAiJFNUUklQIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKwor KworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVuCisrICBhY19jdF9T VFJJUD0kU1RSSVAKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBzdHJpcDsgYWNf d29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3Rf U1RSSVAiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9 JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3Rf U1RSSVA9InN0cmlwIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUK Kytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9TVFJJUD0kYWNf Y3ZfcHJvZ19hY19jdF9TVFJJUAorK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1Cisr JGFzX2VjaG8gIiRhY19jdF9TVFJJUCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkK KysKKysgIGlmIHRlc3QgIngkYWNfY3RfU1RSSVAiID0geDsgdGhlbgorKyAgICBTVFJJUD0iOiIK KysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgor K3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3Nz IHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0 cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgU1RSSVA9 JGFjX2N0X1NUUklQCisrICBmaQorK2Vsc2UKKysgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIK KytmaQorKworK2ZpCisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAt cyIKKysKKysjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVt ICJhd2siIGlzIGJhZCBvbgorKyMgc29tZSBwbGF0Zm9ybXMuCisrIyBBbHdheXMgZGVmaW5lIEFN VEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorKworK0FNVEFSPSR7QU1UQVItIiR7YW1f bWlzc2luZ19ydW59dGFyIn0KKysKKythbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGly Iic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKKysKKysKKysKKysKKysKKysKKysKKysKKysj IENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtcHJlZml4IHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke3dpdGhfY3BwdW5pdF9wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdp dGhfY3BwdW5pdF9wcmVmaXg7IGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iJHdpdGh2YWwiCisrZWxz ZQorKyAgY3BwdW5pdF9jb25maWdfcHJlZml4PSIiCisrZmkKKysKKysKKysjIENoZWNrIHdoZXRo ZXIgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXggd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0 aF9jcHB1bml0X2V4ZWNfcHJlZml4K3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRo X2NwcHVuaXRfZXhlY19wcmVmaXg7IGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZh bCIKKytlbHNlCisrICBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iIgorK2ZpCisrCisrCisr ICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KKysgICAg IGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9 JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NP TkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5p dF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkK KysgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNw cHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0 X2NvbmZpZ19wcmVmaXgiCisrICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0g eHNldCA7IHRoZW4KKysgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVm aXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysKKysgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiY3BwdW5pdC1jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBjcHB1bml0LWNvbmZpZzsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3Qg IiR7YWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRDUFBVTklUX0NPTkZJRyBpbgor KyAgW1xcL10qIHwgPzpbXFwvXSopCisrICBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSIkQ1BQ VU5JVF9DT05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRo LgorKyAgOzsKKysgICopCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisr ZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcGF0 aF9DUFBVTklUX0NPTkZJRyIgJiYgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0ibm8iCisrICA7 OworK2VzYWMKKytmaQorK0NQUFVOSVRfQ09ORklHPSRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklH CisraWYgdGVzdCAtbiAiJENQUFVOSVRfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJENQUFVOSVRfQ09ORklHIiA+JjUKKyskYXNfZWNobyAiJENQ UFVOSVRfQ09ORklHIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAg Y3BwdW5pdF92ZXJzaW9uX21pbj0xLjEwCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yIENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWlu IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNw cHVuaXRfdmVyc2lvbl9taW4uLi4gIiA+JjY7IH0KKysgIG5vX2NwcHVuaXQ9IiIKKysgIGlmIHRl c3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAg bm9fY3BwdW5pdD15ZXMKKysgIGVsc2UKKysgICAgQ1BQVU5JVF9DRkxBR1M9YCRDUFBVTklUX0NP TkZJRyAtLWNmbGFnc2AKKysgICAgQ1BQVU5JVF9MSUJTPWAkQ1BQVU5JVF9DT05GSUcgLS1saWJz YAorKyAgICBDUFBVTklUX1ZFUlNJT049YCRDUFBVTklUX0NPTkZJRyAtLXZlcnNpb25gCisrCisr ICAgIGNwcHVuaXRfbWFqb3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAg ICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCisr ICAgIGNwcHVuaXRfbWlub3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAg ICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wyLydgCisr ICAgIGNwcHVuaXRfbWljcm9fdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAg ICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wzLydgCisr CisrICAgIGNwcHVuaXRfbWFqb3JfbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAor KyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydg CisrICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWFqb3JfbWlufSIgPSAieCIgOyB0aGVuCisrICAg ICAgIGNwcHVuaXRfbWFqb3JfbWluPTAKKysgICAgZmkKKysKKysgICAgY3BwdW5pdF9taW5vcl9t aW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChb MC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3Bw dW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9taW5vcl9taW49 MAorKyAgICBmaQorKworKyAgICBjcHB1bml0X21pY3JvX21pbj1gZWNobyAkY3BwdW5pdF92ZXJz aW9uX21pbiB8IFwKKysgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChb MC05XSpcKS9cMy8nYAorKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21pbn0iID0gIngi IDsgdGhlbgorKyAgICAgICBjcHB1bml0X21pY3JvX21pbj0wCisrICAgIGZpCisrCisrICAgIGNw cHVuaXRfdmVyc2lvbl9wcm9wZXI9YGV4cHIgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVy c2lvbiBcPiAkY3BwdW5pdF9tYWpvcl9taW4gXHwgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3Jf dmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWlu b3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9taW5vcl9taW4gXHwgXAorKyAgICAgICAgJGNwcHVuaXRf bWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVu aXRfbWlub3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9taW5vcl9taW4gXCYgXAorKyAgICAgICAgJGNw cHVuaXRfbWljcm9fdmVyc2lvbiBcPj0gJGNwcHVuaXRfbWljcm9fbWluIGAKKysKKysgICAgaWYg dGVzdCAiJGNwcHVuaXRfdmVyc2lvbl9wcm9wZXIiID0gIjEiIDsgdGhlbgorKyAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjcHB1bml0X21ham9yX3ZlcnNpb24uJGNw cHVuaXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNyb192ZXJzaW9uIiA+JjUKKyskYXNfZWNo byAiJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0 X21pY3JvX3ZlcnNpb24iID4mNjsgfQorKyAgICBlbHNlCisrICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAg ICAgbm9fY3BwdW5pdD15ZXMKKysgICAgZmkKKysgIGZpCisrCisrICBpZiB0ZXN0ICJ4JG5vX2Nw cHVuaXQiID0geCA7IHRoZW4KKysgICAgIDoKKysgIGVsc2UKKysgICAgIENQUFVOSVRfQ0ZMQUdT PSIiCisrICAgICBDUFBVTklUX0xJQlM9IiIKKysgICAgIDoKKysgIGZpCisrCisrCisrCisrCisr CisrIGlmIHRlc3QgIngkQ1BQVU5JVF9MSUJTIiAhPSB4OyB0aGVuCisrICBIQVZFX0NQUFVOSVRf VFJVRT0KKysgIEhBVkVfQ1BQVU5JVF9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX0NQUFVOSVRf VFJVRT0nIycKKysgIEhBVkVfQ1BQVU5JVF9GQUxTRT0KKytmaQorKworKworKyMgUlBNIHJlbGVh c2UgbnVtYmVyCisrUlBNX1JFTEVBU0U9IjYiCisrCisrCisrIyBTaGFyZWQgbGlicmFyeSB2ZXJz aW9uaW5nCisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT049IjM6MDowIgorKyMgICAgICAgICAgICAg ICAgICAgICAgICB8IHwgfAorKyMgICAgICAgICAgICAgICAgICstLS0tLS0rIHwgKy0tLSsKKysj ICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8CisrIyAgICAgICAgICAgICAgY3VycmVu dDpyZXZpc2lvbjphZ2UKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8CisrIyAg ICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMg aGF2ZSBiZWVuIGFkZGVkOworKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHNl dCB0byB6ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuCisrIyAgICAgICAgICAgICAgICAgfCAg ICAgICAgfCAgICAgICAgcmVtb3ZlZCBvciBjaGFuZ2VkCisrIyAgICAgICAgICAgICAgICAgfCAg ICAgICAgKy0gaW5jcmVtZW50IGlmIHNvdXJjZSBjb2RlIGhhcyBjaGFuZ2VkOworKyMgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgIHNldCB0byB6ZXJvIGlmIGN1cnJlbnQgaXMgaW5jcmVtZW50 ZWQKKysjICAgICAgICAgICAgICAgICArLSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJl ZW4gYWRkZWQsIHJlbW92ZWQKKysjICAgICAgICAgICAgICAgICAgICBvciBjaGFuZ2VkCisrCisr CisrIyBVcGxvYWQgY29tbWFuZCBmb3IgU291cmNlRm9yZ2UKKytVUExPQURfQ09NTUFORD0ibmNm dHBwdXQgLXYgdXBsb2FkLnNvdXJjZWZvcmdlLm5ldCAvaW5jb21pbmciCisrCisrCisrIyBDaGVj ayBmb3IgaG9zdCBhbmQgZGlzYWJsZSBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGluIFdpbmRv d3MKKysjIE1ha2Ugc3VyZSB3ZSBjYW4gcnVuIGNvbmZpZy5zdWIuCisrJFNIRUxMICIkYWNfYXV4 X2Rpci9jb25maWcuc3ViIiBzdW40ID4vZGV2L251bGwgMj4mMSB8fAorKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gJFNIRUxMICRhY19hdXhfZGlyL2Nv bmZpZy5zdWIiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuICRTSEVM TCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0 ZW0gdHlwZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2J1aWxkK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2J1aWxkX2FsaWFzPSRidWls ZF9hbGlhcworK3Rlc3QgIngkYWNfYnVpbGRfYWxpYXMiID0geCAmJgorKyAgYWNfYnVpbGRfYWxp YXM9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzImAKKyt0ZXN0ICJ4JGFjX2J1aWxk X2FsaWFzIiA9IHggJiYKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj YW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3Bl Y2lmeSBvbmUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrYWNfY3ZfYnVp bGQ9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGFjX2J1aWxkX2FsaWFzYCB8fAor KyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRTSEVMTCAkYWNfYXV4X2Rp ci9jb25maWcuc3ViICRhY19idWlsZF9hbGlhcyBmYWlsZWQiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMg ZmFpbGVkIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKKyskYXNf ZWNobyAiJGFjX2N2X2J1aWxkIiA+JjY7IH0KKytjYXNlICRhY19jdl9idWlsZCBpbgorKyotKi0q KSA7OworKyopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHZh bHVlIG9mIGNhbm9uaWNhbCBidWlsZCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu dmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGJ1aWxkIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTs7CisrZXNhYworK2J1aWxkPSRhY19jdl9idWlsZAorK2FjX3NhdmVfSUZTPSRJ RlM7IElGUz0nLScKKytzZXQgeCAkYWNfY3ZfYnVpbGQKKytzaGlmdAorK2J1aWxkX2NwdT0kMQor K2J1aWxkX3ZlbmRvcj0kMgorK3NoaWZ0OyBzaGlmdAorKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBj aGFyYWN0ZXIgb2YgSUZTIGlzIHVzZWQgdG8gY3JlYXRlICQqLAorKyMgZXhjZXB0IHdpdGggb2xk IHNoZWxsczoKKytidWlsZF9vcz0kKgorK0lGUz0kYWNfc2F2ZV9JRlMKKytjYXNlICRidWlsZF9v cyBpbiAqXCAqKSBidWlsZF9vcz1gZWNobyAiJGJ1aWxkX29zIiB8IHNlZCAncy8gLy0vZydgOzsg ZXNhYworKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3N0IHN5 c3RlbSB0eXBlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgIngkaG9zdF9hbGlh cyIgPSB4OyB0aGVuCisrICBhY19jdl9ob3N0PSRhY19jdl9idWlsZAorK2Vsc2UKKysgIGFjX2N2 X2hvc3Q9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGhvc3RfYWxpYXNgIHx8Cisr ICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9k aXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQi ID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKKyskYXNfZWNo byAiJGFjX2N2X2hvc3QiID4mNjsgfQorK2Nhc2UgJGFjX2N2X2hvc3QgaW4KKysqLSotKikgOzsK KysqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBv ZiBjYW5vbmljYWwgaG9zdCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQg dmFsdWUgb2YgY2Fub25pY2FsIGhvc3QiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9OzsKKytlc2FjCisraG9zdD0kYWNfY3ZfaG9zdAorK2FjX3NhdmVfSUZTPSRJRlM7IElGUz0n LScKKytzZXQgeCAkYWNfY3ZfaG9zdAorK3NoaWZ0CisraG9zdF9jcHU9JDEKKytob3N0X3ZlbmRv cj0kMgorK3NoaWZ0OyBzaGlmdAorKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2Yg SUZTIGlzIHVzZWQgdG8gY3JlYXRlICQqLAorKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKKyto b3N0X29zPSQqCisrSUZTPSRhY19zYXZlX0lGUworK2Nhc2UgJGhvc3Rfb3MgaW4gKlwgKikgaG9z dF9vcz1gZWNobyAiJGhvc3Rfb3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCisrCisrCisrY2Fz ZSAkaG9zdCBpbgorKyAgKi0qLW1zZG9zKiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMyKiB8ICot Ki1jeWd3aW4qIHwgKi0qLXdpbmRvd3MqKQorKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt c2hhcmVkIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zaGFyZWQrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0K KysgICAgY2FzZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsK KysgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8gOzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hh cmVkPW5vCisrICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxs IHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsg SUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZh bDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0 aGVuCisrCSAgZW5hYmxlX3NoYXJlZD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZT PSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNhYworK2Vsc2UKKysgIGVuYWJsZV9z aGFyZWQ9bm8KKytmaQorKworKworKworKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3Rh dGljIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRo ZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysg ICAgY2FzZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKKysg ICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKKysgICAgKikKKysgICAgIGVuYWJsZV9zdGF0aWM9 bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhl IGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBk bworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4K KysJICBlbmFibGVfc3RhdGljPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRs dF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX3N0YXRp Yz15ZXMKKytmaQorKworKworKyAgICA7OworKyAgKikKKysgICAgIyBDaGVjayB3aGV0aGVyIC0t ZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0i ID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRl ZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9 eWVzIDs7CisrICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7CisrICAgICopCisrICAgICAgZW5h YmxlX3NoYXJlZD1ubworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2Ug dXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0i JElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRl bmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAi WCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAg ICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBl bmFibGVfc2hhcmVkPXllcworK2ZpCisrCisrCisrICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJs ZS1zdGF0aWMgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX3N0YXRpYytzZXR9IiA9IHNl dDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1kZWZhdWx0 fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7 OworKyAgICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0 YXRpYz1ubworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFs bCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7 IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2 YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsg dGhlbgorKwkgIGVuYWJsZV9zdGF0aWM9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElG Uz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVf c3RhdGljPW5vCisrZmkKKysKKysKKysKKysgICAgOzsKKytlc2FjCisrCisrIyBDaGVja3MgZm9y IHByb2dyYW1zCisrc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgorK2FjX2V4dD1jcHAKKythY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lm IHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBD WFg9JENDQworKyAgZWxzZQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVu CisrICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZD QyBLQ0MgUkNDIHhsQ19yIHhsQworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3Jk PSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHthY19jdl9wcm9nX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgYWNf Y3ZfcHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfQ1hYPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+ JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysKKytmaQorK2ZpCisrQ1hYPSRhY19jdl9wcm9nX0NYWAorK2lmIHRlc3QgLW4gIiRDWFgiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUKKysk YXNfZWNobyAiJENYWCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysg ICAgdGVzdCAtbiAiJENYWCIgJiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRD WFgiOyB0aGVuCisrICBhY19jdF9DWFg9JENYWAorKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBn cHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKKytkbworKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wcm9nX2FjX2N0X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgor KyAgYWNfY3ZfcHJvZ19hY19jdF9DWFg9IiRhY19jdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKysg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNf c2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAor K2lmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3RfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0NYWCIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9D WFgiICYmIGJyZWFrCisrZG9uZQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DWFgiID0geDsgdGhl bgorKyAgICBDWFg9ImcrKyIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRh Y190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7Owor K2VzYWMKKysgICAgQ1hYPSRhY19jdF9DWFgKKysgIGZpCisrZmkKKysKKysgIGZpCisrZmkKKysj IFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24iID4mNQor K3NldCBYICRhY19jb21waWxlCisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19jb21w aWxlciAtLXZlcnNpb24gPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9 JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1 CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKworK2NhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKythY19jbGVhbl9maWxlc19zYXZlPSRhY19j bGVhbl9maWxlcworK2FjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgYS5vdXQgYS5vdXQu ZFNZTSBhLmV4ZSBiLm91dCIKKysjIFRyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZSB3aXRob3V0 IC1vIGZpcnN0LCBkaXNyZWdhcmQgYS5vdXQuCisrIyBJdCB3aWxsIGhlbHAgdXMgZGlhZ25vc2Ug YnJva2VuIGNvbXBpbGVycywgYW5kIGZpbmRpbmcgb3V0IGFuIGludHVpdGlvbgorKyMgb2YgZXhl ZXh0LgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBp bGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gIiA+JjY7IH0KKyth Y19saW5rX2RlZmF1bHQ9YCRhc19lY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25mdGVz dFteIF0qLy8nYAorKworKyMgVGhlIHBvc3NpYmxlIG91dHB1dCBmaWxlczoKKythY19maWxlcz0i YS5vdXQgY29uZnRlc3QuZXhlIGNvbmZ0ZXN0IGEuZXhlIGFfb3V0LmV4ZSBiLm91dCBjb25mdGVz dC4qIgorKworK2FjX3JtZmlsZXM9CisrZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzCisrZG8KKysg IGNhc2UgJGFjX2ZpbGUgaW4KKysgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5k IHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lN IHwgKi5vIHwgKi5vYmogKSA7OworKyAgICAqICkgYWNfcm1maWxlcz0iJGFjX3JtZmlsZXMgJGFj X2ZpbGUiOzsKKysgIGVzYWMKKytkb25lCisrcm0gLWYgJGFjX3JtZmlsZXMKKysKKytpZiB7IChh Y190cnk9IiRhY19saW5rX2RlZmF1bHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIk YWNfbGlua19kZWZhdWx0IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH07IHRoZW4KKysgICMgQXV0b2NvbmYtMi4xMyBjb3VsZCBzZXQgdGhlIGFjX2N2X2V4ZWV4dCB2 YXJpYWJsZSB0byBgbm8nLgorKyMgU28gaWdub3JlIGEgdmFsdWUgb2YgYG5vJywgb3RoZXJ3aXNl IHRoaXMgd291bGQgbGVhZCB0byBgRVhFRVhUID0gbm8nCisrIyBpbiBhIE1ha2VmaWxlLiAgV2Ug c2hvdWxkIG5vdCBvdmVycmlkZSBhY19jdl9leGVleHQgaWYgaXQgd2FzIGNhY2hlZCwKKysjIHNv IHRoYXQgdGhlIHVzZXIgY2FuIHNob3J0LWNpcmN1aXQgdGhpcyB0ZXN0IGZvciBjb21waWxlcnMg dW5rbm93biB0bworKyMgQXV0b2NvbmYuCisrZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzICcnCisr ZG8KKysgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQorKyAgY2FzZSAkYWNfZmlsZSBp bgorKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZ TSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiAp CisrCTs7CisrICAgIFthYl0ub3V0ICkKKysJIyBXZSBmb3VuZCB0aGUgZGVmYXVsdCBleGVjdXRh YmxlLCBidXQgZXhlZXh0PScnIGlzIG1vc3QKKysJIyBjZXJ0YWlubHkgcmlnaHQuCisrCWJyZWFr OzsKKysgICAgKi4qICkKKysgICAgICAgIGlmIHRlc3QgIiR7YWNfY3ZfZXhlZXh0K3NldH0iID0g c2V0ICYmIHRlc3QgIiRhY19jdl9leGVleHQiICE9IG5vOworKwl0aGVuIDo7IGVsc2UKKysJICAg YWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCisrCWZpCisr CSMgV2Ugc2V0IGFjX2N2X2V4ZWV4dCBoZXJlIGJlY2F1c2UgdGhlIGxhdGVyIHRlc3QgZm9yIGl0 IGlzIG5vdAorKwkjIHNhZmU6IGNyb3NzIGNvbXBpbGVycyBtYXkgbm90IGFkZCB0aGUgc3VmZml4 IGlmIGdpdmVuIGFuIGAtbycKKysJIyBhcmd1bWVudCwgc28gd2UgbWF5IG5lZWQgdG8ga25vdyBp dCBhdCB0aGF0IHBvaW50IGFscmVhZHkuCisrCSMgRXZlbiBpZiB0aGlzIHNlY3Rpb24gbG9va3Mg Y3J1ZnR5OiBpdCBoYXMgdGhlIGFkdmFudGFnZSBvZgorKwkjIGFjdHVhbGx5IHdvcmtpbmcuCisr CWJyZWFrOzsKKysgICAgKiApCisrCWJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrdGVzdCAiJGFj X2N2X2V4ZWV4dCIgPSBubyAmJiBhY19jdl9leGVleHQ9CisrCisrZWxzZQorKyAgYWNfZmlsZT0n JworK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2ZpbGUi ID4mNQorKyRhc19lY2hvICIkYWNfZmlsZSIgPiY2OyB9CisraWYgdGVzdCAteiAiJGFjX2ZpbGUi OyB0aGVuCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IEMrKyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCisrU2Vl IFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBDKysgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworK1NlZSBcYGNv bmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgNzcpOyBleGl0 IDc3OyB9OyB9OyB9CisrZmkKKysKKythY19leGVleHQ9JGFjX2N2X2V4ZWV4dAorKworKyMgQ2hl Y2sgdGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElm IG5vdCwgZWl0aGVyCisrIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21w aWxlLgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBD KysgY29tcGlsZXIgd29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhl IEMrKyBjb21waWxlciB3b3Jrcy4uLiAiID4mNjsgfQorKyMgRklYTUU6IFRoZXNlIGNyb3NzIGNv bXBpbGVyIGhhY2tzIHNob3VsZCBiZSByZW1vdmVkIGZvciBBdXRvY29uZiAzLjAKKysjIElmIG5v dCBjcm9zcyBjb21waWxpbmcsIGNoZWNrIHRoYXQgd2UgY2FuIHJ1biBhIHNpbXBsZSBwcm9ncmFt LgorK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IHllczsgdGhlbgorKyAgaWYgeyBhY190 cnk9Jy4vJGFjX2ZpbGUnCisrICB7IChjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY190 cnkiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgor KyAgICBjcm9zc19jb21waWxpbmc9bm8KKysgIGVsc2UKKysgICAgaWYgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSBtYXliZTsgdGhlbgorKwljcm9zc19jb21waWxpbmc9eWVzCisrICAgIGVsc2UK KysJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gQysrIGNvbXBpbGVk IHByb2dyYW1zLgorK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3Qn LgorK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3JhbXMuCisrSWYgeW91 IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCisrU2VlIFxgY29uZmlnLmxv ZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 OyB9CisrICAgIGZpCisrICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysKKytybSAtZiAtciBhLm91 dCBhLm91dC5kU1lNIGEuZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAorK2FjX2NsZWFu X2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisrIyBDaGVjayB0aGF0IHRoZSBjb21waWxlciBw cm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKKysjIHRoZSBj b21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4u ICIgPiY2OyB9CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2Nv bXBpbGluZyIgPiY1CisrJGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmciID4mNjsgfQorKworK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFi bGVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVz Li4uICIgPiY2OyB9CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH07IHRoZW4KKysgICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0 JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQorKyMgY2F0Y2ggYGNvbmZ0ZXN0LmV4 ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAorKyMgd29y ayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3b24n dCB3aXRoCisrIyBgcm0nLgorK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBj b25mdGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisrICBjYXNl ICRhY19maWxlIGluCisrICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICou cGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICou byB8ICoub2JqICkgOzsKKysgICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIg OiAnW14uXSpcKFwuLipcKSdgCisrCSAgYnJlYWs7OworKyAgICAqICkgYnJlYWs7OworKyAgZXNh YworK2RvbmUKKytlbHNlCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog aW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19w d2QnOiIgPiYyO30KKyt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90 IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluawor K1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3Qg Y29tcGlsZSBhbmQgbGluaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+ JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrcm0gLWYgY29u ZnRlc3QkYWNfY3ZfZXhlZXh0CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGFjX2N2X2V4ZWV4dCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9leGVleHQiID4mNjsgfQorKwor K3JtIC1mIGNvbmZ0ZXN0LiRhY19leHQKKytFWEVFWFQ9JGFjX2N2X2V4ZWV4dAorK2FjX2V4ZWV4 dD0kRVhFRVhUCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZm aXggb2Ygb2JqZWN0IGZpbGVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4 IG9mIG9iamVjdCBmaWxlcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zfb2JqZXh0K3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFp biAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC5vIGNvbmZ0ZXN0Lm9iagorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+JjUKKysgIGFjX3N0YXR1cz0k PworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICBmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5v IGNvbmZ0ZXN0Lm9iaiBjb25mdGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNv bnRpbnVlOworKyAgY2FzZSAkYWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwg Ki50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5p bmYgfCAqLmRTWU0gKSA7OworKyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6 ICcuKlwuXCguKlwpJ2AKKysgICAgICAgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog aW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxl CisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5u b3QgY29tcGlsZQorK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3Qu JGFjX2N2X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X29i amV4dCIgPiY2OyB9CisrT0JKRVhUPSRhY19jdl9vYmpleHQKKythY19vYmpleHQ9JE9CSkVYVAor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2lu ZyB0aGUgR05VIEMrKyBjb21waWxlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X2N4eF9jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYgX19HTlVDX18K KysgICAgICAgY2hva2UgbWUKKysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytf QUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJfZ251PXllcworK2Vs c2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGlsZXJfZ251PW5vCisr ZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKythY19jdl9jeHhfY29tcGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUKKysK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jeHhfY29t cGlsZXJfZ251IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNjsg fQorK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR1hYPXllcworK2Vs c2UKKysgIEdYWD0KKytmaQorK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9CisrYWNf c2F2ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgd2hldGhlciAkQ1hYIGFjY2VwdHMgLWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX2N4eF9nK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcK KysgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCisrICAgYWNfY3ZfcHJvZ19jeHhfZz1ubworKyAg IENYWEZMQUdTPSItZyIKKysgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9Cisr X0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2Nv bXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisr ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29u ZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5l cnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJy b3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCisr ZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlDWFhGTEFHUz0iIgorKyAgICAg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFp biAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29i amV4dDsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJ YWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZworKwkgQ1hYRkxBR1M9 Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4g ICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytp bnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9wcm9nX2N4eF9nPXllcworK2Vsc2UKKysgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Cisr ZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9m bGFnCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJv Z19jeHhfZyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wcm9nX2N4eF9nIiA+JjY7IH0KKytpZiB0 ZXN0ICIkYWNfdGVzdF9DWFhGTEFHUyIgPSBzZXQ7IHRoZW4KKysgIENYWEZMQUdTPSRhY19zYXZl X0NYWEZMQUdTCisrZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2N4eF9nID0geWVzOyB0aGVuCisrICBp ZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBDWFhGTEFHUz0iLWcgLU8yIgorKyAgZWxz ZQorKyAgICBDWFhGTEFHUz0iLWciCisrICBmaQorK2Vsc2UKKysgIGlmIHRlc3QgIiRHWFgiID0g eWVzOyB0aGVuCisrICAgIENYWEZMQUdTPSItTzIiCisrICBlbHNlCisrICAgIENYWEZMQUdTPQor KyAgZmkKKytmaQorK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2Nf Y29tcGlsZXJfZ251CisrREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgorKworK2FjX2Nv bmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBkZXBmaWxlcyIKKysKKysKKythbV9t YWtlPSR7TUFLRS1tYWtlfQorK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKythbV9fZG9pdDoKKysJ QGVjaG8gZG9uZQorKy5QSE9OWTogYW1fX2RvaXQKKytFTkQKKysjIElmIHdlIGRvbid0IGZpbmQg YW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQg YnkgJGFtX21ha2UiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNs dWRlIHVzZWQgYnkgJGFtX21ha2UuLi4gIiA+JjY7IH0KKythbV9faW5jbHVkZT0iIyIKKythbV9f cXVvdGU9CisrX2FtX3Jlc3VsdD1ub25lCisrIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5j bHVkZS4KKytlY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCisrIyBXZSBncmVwIG91dCBg RW50ZXJpbmcgZGlyZWN0b3J5JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5JworKyMgbWVzc2FnZXMg d2hpY2ggY2FuIG9jY3VyIGlmIGB3JyBlbmRzIHVwIGluIE1BS0VGTEFHUy4KKysjIEluIHBhcnRp Y3VsYXIgd2UgZG9uJ3QgbG9vayBhdCBgXm1ha2U6JyBiZWNhdXNlIEdOVSBtYWtlIG1pZ2h0Cisr IyBiZSBpbnZva2VkIHVuZGVyIHNvbWUgb3RoZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4g d2hpY2gKKysjIGNhc2UgaXQgcHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4K KytpZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbCB8IGdyZXAgLXYg J2luZyBkaXJlY3RvcnknYCIgPSAiZG9uZSI7IHRoZW4KKysgICBhbV9faW5jbHVkZT1pbmNsdWRl CisrICAgYW1fX3F1b3RlPQorKyAgIF9hbV9yZXN1bHQ9R05VCisrZmkKKysjIE5vdyB0cnkgQlNE IG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVu CisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorKyAgIGlmIHRlc3QgImAk YW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCIgPSAiZG9uZSI7IHRoZW4KKysgICAg ICBhbV9faW5jbHVkZT0uaW5jbHVkZQorKyAgICAgIGFtX19xdW90ZT0iXCIiCisrICAgICAgX2Ft X3Jlc3VsdD1CU0QKKysgICBmaQorK2ZpCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJF9hbV9yZXN1bHQiID4mNQorKyRhc19lY2hvICIkX2FtX3Jlc3VsdCIgPiY2 OyB9Cisrcm0gLWYgY29uZmluYyBjb25mbWYKKysKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt ZGVwZW5kZW5jeS10cmFja2luZyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfZGVwZW5k ZW5jeV90cmFja2luZytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfZGVw ZW5kZW5jeV90cmFja2luZzsKKytmaQorKworK2lmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lf dHJhY2tpbmciICE9IHhubzsgdGhlbgorKyAgYW1fZGVwY29tcD0iJGFjX2F1eF9kaXIvZGVwY29t cCIKKysgIEFNREVQQkFDS1NMQVNIPSdcJworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVu ZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgorKyAgQU1ERVBfVFJVRT0KKysgIEFNREVQX0ZB TFNFPScjJworK2Vsc2UKKysgIEFNREVQX1RSVUU9JyMnCisrICBBTURFUF9GQUxTRT0KKytmaQor KworKworKworK2RlcGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlzdD0KKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHthbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUr c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhl bgorKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndp c2Ugd2UgY2FuIGVuZCB1cAorKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBr bm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKKysgICMgaW5zdGFuY2UgaXQgd2FzIHJl cG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCisrICAjIG1ha2lu ZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUg b3V0cHV0CisrICAjIGluIEQnLgorKyAgbWtkaXIgY29uZnRlc3QuZGlyCisrICAjIENvcHkgZGVw Y29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdy ZQorKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KKysgIGNwICIkYW1fZGVwY29tcCIg Y29uZnRlc3QuZGlyCisrICBjZCBjb25mdGVzdC5kaXIKKysgICMgV2Ugd2lsbCBidWlsZCBvYmpl Y3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQorKyAgIyBpdCBo ZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFu Y2UKKysgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRl cGVuZGVuY2llcyBhcyBhCisrICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUND IHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KKysgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5 IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAorKyAgIyBkaXJlY3Rvcnku CisrICBta2RpciBzdWIKKysKKysgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlw ZT1ub25lCisrICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhlbgorKyAgICAg YW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uICdzL14jKlwoW2EtekEtWjAtOV0qXCkpJC9cMS9wJyA8 IC4vZGVwY29tcGAKKysgIGZpCisrICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsg ZG8KKysgICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNl IHNvbWUgY29tcGlsZXJzCisrICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlz dHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKKysgICAgIyB3ZSBzaG91bGQgbm90IGNob29z ZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgorKyAgICAjCisrICAg ICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUg Y29tcGlsZXIgbWF5CisrICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcg d2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCisrICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0 IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVyLgorKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKKysgICAg Zm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCisrICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3Qn JGknLmgiJyA+PiBzdWIvY29uZnRlc3QuYworKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRz dCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCisrICAgICAgIyBTb2xhcmlz IDgncyB7L3Vzcix9L2Jpbi9zaC4KKysgICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKKysgICAg ZG9uZQorKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3Qu UG8ke2FtX19xdW90ZX0iID4gY29uZm1mCisrCisrICAgIGNhc2UgJGRlcG1vZGUgaW4KKysgICAg bm9zaWRlZWZmZWN0KQorKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5v dCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAorKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4g ZXhwbGljaXRseSByZXF1ZXN0ZWQKKysgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5 X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KKysJY29udGludWUKKysgICAgICBlbHNlCisrCWJyZWFr CisrICAgICAgZmkKKysgICAgICA7OworKyAgICBub25lKSBicmVhayA7OworKyAgICBlc2FjCisr ICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRh c2htc3Rkb3V0IgorKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMr KyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQorKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQg d2UgbmVlZCB0byBkZXRlY3QgdGhpcy4KKysgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCisrICAg ICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99 IFwKKysgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRl c3QuVFBvIFwKKysgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0 ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+L2Rldi9udWxsIDI+ Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0 LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIv Y29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdGVz dC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAg ICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAg ICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlz c3VlIHdhcm5pbmdzCisrICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBT byB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKKysgICAgICAjIHRoYXQgc2F5cyBhbiBv cHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KKysgICAgICAjIFdoZW4gZ2l2ZW4g LU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorKyAgICAgICMgICBpY2M6IENv bW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVx dWlyZWQKKysgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgorKyAgICAg ICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVk CisrICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8CisrICAg ICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIDo7IGVsc2UKKysgICAgICAgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJf dHlwZT0kZGVwbW9kZQorKyAgICAgICAgYnJlYWsKKysgICAgICBmaQorKyAgICBmaQorKyAgZG9u ZQorKworKyAgY2QgLi4KKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKytlbHNlCisrICBhbV9jdl9D WFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorK2ZpCisrCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlIiA+JjUKKyskYXNfZWNobyAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZSIgPiY2OyB9CisrQ1hYREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DWFhfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGUKKysKKysgaWYKKysgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lf dHJhY2tpbmciICE9IHhubyBcCisrICAmJiB0ZXN0ICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKysgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9CisrICBh bV9fZmFzdGRlcENYWF9GQUxTRT0nIycKKytlbHNlCisrICBhbV9fZmFzdGRlcENYWF9UUlVFPScj JworKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9CisrZmkKKysKKysKKythY19leHQ9Y3BwCisrYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHBy ZXByb2Nlc3NvciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysr IHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRDWFhDUFAiOyB0aGVuCisr ICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1hYQ1BQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVj YXVzZSBDWFhDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKKysgICAgZm9yIENYWENQUCBpbiAiJENY WCAtRSIgIi9saWIvY3BwIgorKyAgICBkbworKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKKytm b3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhl YWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAj IHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMu aD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGlt aXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRo ZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2Vy LAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBj YXRjaCB0aGlzIGNhc2UuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysj IGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNF T0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4 X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysKKysgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250 aW51ZQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysg ICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVu dCBoZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQu aD4KKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgIyBCcm9rZW46IHN1Y2Nl c3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysKKysgICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06Cisr YnJlYWsKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisr ZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmlu ZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0 CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKysgICAgZG9uZQor KyAgICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrCisrZmkKKysgIENYWENQUD0kYWNfY3Zf cHJvZ19DWFhDUFAKKytlbHNlCisrICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrZmkKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYQ1BQIiA+JjUKKyskYXNfZWNo byAiJENYWENQUCIgPiY2OyB9CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJl cHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhh dCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNo IGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0 Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3Rz IGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1F IHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBq dXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2Fz ZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVm IF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNz ZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFj X3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJu X2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysK KytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mg b24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysg ICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgor K2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJl cHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlk IGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKwor KyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhaworK2ZpCisr Cisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBCZWNh dXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNr aXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJl cHJvY19vazsgdGhlbgorKyAgOgorK2Vsc2UKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBDKysgcHJlcHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1Nl ZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogQysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sK KytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKysgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH07IH0KKytmaQorKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRD UFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21w aWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrQ1hYRkxBR1M9IiRzYXZlX0NYWEZM QUdTIgorKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9n cmFtIChmYXN0ZXIpLAorKyMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBC dXQgYXZvaWQgdGhlIGJyb2tlbiBvcgorKyMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgorKyMgU3lz ViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCisrIyBTdW5PUyAvdXNyL2V0Yy9pbnN0 YWxsCisrIyBJUklYIC9zYmluL2luc3RhbGwKKysjIEFJWCAvYmluL2luc3RhbGwKKysjIEFtaWdh T1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MK KysjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0 IGEgLWcgZmxhZworKyMgQUZTIC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdoaWNoIG1pc2hhbmRs ZXMgbm9uZXhpc3RlbnQgYXJncworKyMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmll cyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKKysjIE9TLzIncyBzeXN0ZW0g aW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMKKysjIC4v aW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4v aW5zdGFsbC5zaC4KKysjIFJlamVjdCBpbnN0YWxsIHByb2dyYW1zIHRoYXQgY2Fubm90IGluc3Rh bGwgbXVsdGlwbGUgZmlsZXMuCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gIiA+JjY7IH0KKytpZiB0ZXN0IC16ICIk SU5TVEFMTCI7IHRoZW4KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEgg ZWxlbWVudHMuCisrY2FzZSAkYXNfZGlyLyBpbgorKyAgLi8gfCAuLy8gfCAvY0MvKiB8IFwKKysg IC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dz L2Jpbi8qIHwgXAorKyAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFM TFxcLyogfCBcCisrICAvdXNyL3VjYi8qICkgOzsKKysgICopCisrICAgICMgT1NGMSBhbmQgU0NP IE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCisrICAgICMgRG9uJ3Qg dXNlIGluc3RhbGxic2QgZnJvbSBPU0Ygc2luY2UgaXQgaW5zdGFsbHMgc3R1ZmYgYXMgcm9vdAor KyAgICAjIGJ5IGRlZmF1bHQuCisrICAgIGZvciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3Qg aW5zdGFsbDsgZG8KKysgICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysJaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgorKwkgIGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisrCSAgICBncmVwIGRzcG1zZyAi JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAg ICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRp b24uCisrCSAgICA6CisrCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgorKwkgICAg Z3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4m MTsgdGhlbgorKwkgICAgIyBwcm9ncmFtLXNwZWNpZmljIGluc3RhbGwgc2NyaXB0IHVzZWQgYnkg SFAgcHdwbHVzLS1kb24ndCB1c2UuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgcm0gLXJmIGNv bmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCisrCSAgICBlY2hvIG9uZSA+IGNv bmZ0ZXN0Lm9uZQorKwkgICAgZWNobyB0d28gPiBjb25mdGVzdC50d28KKysJICAgIG1rZGlyIGNv bmZ0ZXN0LmRpcgorKwkgICAgaWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC1jIGNv bmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gImBwd2RgL2NvbmZ0ZXN0LmRpciIgJiYKKysJICAgICAg dGVzdCAtcyBjb25mdGVzdC5vbmUgJiYgdGVzdCAtcyBjb25mdGVzdC50d28gJiYKKysJICAgICAg dGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRlc3Qub25lICYmCisrCSAgICAgIHRlc3QgLXMgY29u ZnRlc3QuZGlyL2NvbmZ0ZXN0LnR3bworKwkgICAgdGhlbgorKwkgICAgICBhY19jdl9wYXRoX2lu c3RhbGw9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQgLWMiCisrCSAgICAgIGJyZWFrIDMK KysJICAgIGZpCisrCSAgZmkKKysJZmkKKysgICAgICBkb25lCisrICAgIGRvbmUKKysgICAgOzsK Kytlc2FjCisrCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytybSAtcmYgY29uZnRlc3Qu b25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysKKytmaQorKyAgaWYgdGVzdCAiJHthY19j dl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICAgSU5TVEFMTD0kYWNfY3ZfcGF0 aF9pbnN0YWxsCisrICBlbHNlCisrICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93 IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKKysgICAgIyB2YWx1ZSBmb3IgSU5TVEFMTCB3 aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAorKyAgICAjIGJyZWFr IG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcworKyAg ICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCisrICAgIElO U1RBTEw9JGFjX2luc3RhbGxfc2gKKysgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1CisrJGFzX2VjaG8gIiRJTlNUQUxMIiA+JjY7IH0K KysKKysjIFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hhbmRsZXMgYnJhY2VzIGlu ICR7dmFyLXZhbH0uCisrIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhl IHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KKyt0ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJ TlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCisrCisrdGVzdCAteiAiJElOU1RBTExfU0NSSVBU IiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5TVEFMTF9E QVRBIiAmJiBJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0JworKworKyMgQ2hlY2sgd2hl dGhlciAtLWVuYWJsZS1mYXN0LWluc3RhbGwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxl X2Zhc3RfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfZmFz dF9pbnN0YWxsOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4K KysgICAgeWVzKSBlbmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OworKyAgICBubykgZW5hYmxlX2Zh c3RfaW5zdGFsbD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8K KysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNv bW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7 SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwor KwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJ ICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9 IiRsdF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX2Zh c3RfaW5zdGFsbD15ZXMKKytmaQorKworKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxl cl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4 IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4 fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15 ICR7YWNfdG9vbF9wcmVmaXh9Z2NjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlm IHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9J RlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3By ZWZpeH1nY2MiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2Rv bmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisr aWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJENDIiA+JjUKKyskYXNfZWNobyAiJENDIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVuCisr ICBhY19jdF9DQz0kQ0MKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZ2NjOyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7 IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMK KysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgorKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19z YXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lm IHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9Cisr ZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRh c19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQ0MiID0geDsg dGhlbgorKyAgICBDQz0iIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFj X3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJl Zml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7Cisr ZXNhYworKyAgICBDQz0kYWNfY3RfQ0MKKysgIGZpCisrZWxzZQorKyAgQ0M9IiRhY19jdl9wcm9n X0NDIgorK2ZpCisrCisraWYgdGVzdCAteiAiJENDIjsgdGhlbgorKyAgICAgICAgICBpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29y ZCBvZiAiJHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19D Qz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwor KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9w cm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWNjIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAy CisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytD Qz0kYWNfY3ZfcHJvZ19DQworK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9 CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQor KyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgIGZpCisrZmkKKytpZiB0ZXN0IC16 ICIkQ0MiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgY2M7IGFjX3dvcmQ9 JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3Zf cHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisr ICBhY19wcm9nX3JlamVjdGVkPW5vCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KKysgICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMK KysgICAgICAgY29udGludWUKKysgICAgIGZpCisrICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgorKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19z YXZlX0lGUworKworK2lmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KKysgICMg V2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBp dC4KKysgIHNldCBkdW1teSAkYWNfY3ZfcHJvZ19DQworKyAgc2hpZnQKKysgIGlmIHRlc3QgJCMg IT0gMDsgdGhlbgorKyAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhl IGJvZ3VzIG9uZS4KKysgICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNv IHRoZSBib2dvbiB3aWxsIGJlIGNob3NlbgorKyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBq dXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KKysgICAgc2hpZnQKKysg ICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCisrICBmaQorK2Zp CisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNo byAiJENDIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYg dGVzdCAteiAiJENDIjsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhl bgorKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCisrICBkbworKyAgICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7 IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgor KyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K KytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19k aXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgorKyAgICBhY19jdl9wcm9nX0NDPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9J RlMKKysKKytmaQorK2ZpCisrQ0M9JGFjX2N2X3Byb2dfQ0MKKytpZiB0ZXN0IC1uICIkQ0MiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQorKyRh c19lY2hvICIkQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAg IHRlc3QgLW4gIiRDQyIgJiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDQyI7 IHRoZW4KKysgIGFjX2N0X0NDPSRDQworKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCisrZG8KKysg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisr ICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19wcm9nIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworK2ZpCisrZmkKKythY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lmIHRl c3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdF9DQyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19l Y2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYgYnJl YWsKKytkb25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KKysgICAgQ0M9 IiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBp bgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ0M9 JGFjX2N0X0NDCisrICBmaQorK2ZpCisrCisrZmkKKysKKysKKyt0ZXN0IC16ICIkQ0MiICYmIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91 bmQgaW4gXCRQQVRICisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQor KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQg aW4gXCRQQVRICisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrCisrIyBQcm92aWRlIHNvbWUgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgorKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbiIgPiY1Cisrc2V0IFggJGFjX2NvbXBpbGUKKyth Y19jb21waWxlcj0kMgorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiCisr Y2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIp IDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisreyAoYWNfdHJ5PSIk YWNfY29tcGlsZXIgLXYgPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGVyIC12ID4mNSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 CisreyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLVYgPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2NvbXBpbGVyIC1WID4mNSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrI2lm bmRlZiBfX0dOVUNfXworKyAgICAgICBjaG9rZSBtZQorKyNlbmRpZgorKworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJf Z251PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGls ZXJfZ251PW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKythY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGls ZXJfZ251CisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3ZfY19jb21waWxlcl9nbnUiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfY19jb21waWxlcl9nbnUi ID4mNjsgfQorK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR0NDPXll cworK2Vsc2UKKysgIEdDQz0KKytmaQorK2FjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0KKyth Y19zYXZlX0NGTEFHUz0kQ0ZMQUdTCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgJENDIGFjY2VwdHMgLWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgJENDIGFjY2VwdHMgLWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2df Y2NfZytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBhY19zYXZlX2Nfd2Vycm9yX2ZsYWc9JGFjX2Nfd2Vycm9yX2ZsYWcKKysgICBhY19j X3dlcnJvcl9mbGFnPXllcworKyAgIGFjX2N2X3Byb2dfY2NfZz1ubworKyAgIENGTEFHUz0iLWci CisrICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQK KyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2Ug IigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAg YWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj X29iamV4dDsgdGhlbgorKyAgYWNfY3ZfcHJvZ19jY19nPXllcworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJQ0ZMQUdTPSIiCisrICAgICAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgOgorK2Vs c2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY193ZXJyb3JfZmxhZz0kYWNf c2F2ZV9jX3dlcnJvcl9mbGFnCisrCSBDRkxBR1M9Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3Zf cHJvZ19jY19nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytm aQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICBhY19jX3dlcnJvcl9m bGFnPSRhY19zYXZlX2Nfd2Vycm9yX2ZsYWcKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJv Z19jY19nIiA+JjY7IH0KKytpZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCisr ICBDRkxBR1M9JGFjX3NhdmVfQ0ZMQUdTCisrZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5 ZXM7IHRoZW4KKysgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIENGTEFHUz0iLWcg LU8yIgorKyAgZWxzZQorKyAgICBDRkxBR1M9Ii1nIgorKyAgZmkKKytlbHNlCisrICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBDRkxBR1M9Ii1PMiIKKysgIGVsc2UKKysgICAgQ0ZM QUdTPQorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJENDIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X3Byb2dfY2NfYzg5K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2N2X3Byb2dfY2NfYzg5PW5vCisrYWNfc2F2ZV9D Qz0kQ0MKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAg Ki8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNs dWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CisrI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisrLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRl c3RzIGFyZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLworK3N0cnVjdCBi dWYgeyBpbnQgeDsgfTsKKytGSUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qg c3RhdCAqLCBpbnQpOworK3N0YXRpYyBjaGFyICplIChwLCBpKQorKyAgICAgY2hhciAqKnA7Cisr ICAgICBpbnQgaTsKKyt7CisrICByZXR1cm4gcFtpXTsKKyt9Cisrc3RhdGljIGNoYXIgKmYgKGNo YXIgKiAoKmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoqcCwgLi4uKQorK3sKKysgIGNoYXIgKnM7 CisrICB2YV9saXN0IHY7CisrICB2YV9zdGFydCAodixwKTsKKysgIHMgPSBnIChwLCB2YV9hcmcg KHYsaW50KSk7CisrICB2YV9lbmQgKHYpOworKyAgcmV0dXJuIHM7CisrfQorKworKy8qIE9TRiA0 LjAgQ29tcGFxIGNjIGlzIHNvbWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQg aGFzCisrICAgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhl eCBjaGFyYWN0ZXIgY29uc3RhbnRzLgorKyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3Ig dW5mb3J0dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAorKyAgIGFzICd4Jy4g IFRoZSBmb2xsb3dpbmcgaW5kdWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBn ZXQKKysgICBwcm9wZXIgQU5TSSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBj b21lcyBvdXQgdHJ1ZSwgZm9yIGFuCisrICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVj ZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCisrICAgdGhhdCdzIHRy dWUgb25seSB3aXRoIC1zdGQuICAqLworK2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/ IDEgOiAtMV07CisrCisrLyogSUJNIEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1 bHQsIGJ1dCBpdCByZXBsYWNlcyBtYWNybyBwYXJhbWV0ZXJzCisrICAgaW5zaWRlIHN0cmluZ3Mg YW5kIGNoYXJhY3RlciBjb25zdGFudHMuICAqLworKyNkZWZpbmUgRk9PKHgpICd4JworK2ludCB4 bGM2X2NjX2FycmF5W0ZPTyhhKSA9PSAneCcgPyAxIDogLTFdOworKworK2ludCB0ZXN0IChpbnQg aSwgZG91YmxlIHgpOworK3N0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9OworK3N0cnVjdCBz MiB7aW50ICgqZikgKGRvdWJsZSBhKTt9OworK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwg RklMRSAqKCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwor K2ludCBhcmdjOworK2NoYXIgKiphcmd2OworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGYg KGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwor KyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2ZvciBhY19hcmcgaW4gJycgLXFsYW5n bHZsPWV4dGM4OSAtcWxhbmdsdmw9YW5zaSAtc3RkIFwKKysJLUFlICItQWEgLURfSFBVWF9TT1VS Q0UiICItWGMgLURfX0VYVEVOU0lPTlNfXyIKKytkbworKyAgQ0M9IiRhY19zYXZlX0NDICRhY19h cmciCisrICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY2NfYzg5PSRhY19hcmcK KytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0CisrICB0ZXN0ICJ4JGFjX2N2X3By b2dfY2NfYzg5IiAhPSAieG5vIiAmJiBicmVhaworK2RvbmUKKytybSAtZiBjb25mdGVzdC4kYWNf ZXh0CisrQ0M9JGFjX3NhdmVfQ0MKKysKKytmaQorKyMgQUNfQ0FDSEVfVkFMCisrY2FzZSAieCRh Y19jdl9wcm9nX2NjX2M4OSIgaW4KKysgIHgpCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vbmUgbmVlZGVkIiA+JjUKKyskYXNfZWNobyAibm9uZSBuZWVkZWQiID4m NjsgfSA7OworKyAgeG5vKQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiB1bnN1cHBvcnRlZCIgPiY1CisrJGFzX2VjaG8gInVuc3VwcG9ydGVkIiA+JjY7IH0gOzsKKysg ICopCisrICAgIENDPSIkQ0MgJGFjX2N2X3Byb2dfY2NfYzg5IgorKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19jODkiID4mNQorKyRhc19lY2hv ICIkYWNfY3ZfcHJvZ19jY19jODkiID4mNjsgfSA7OworK2VzYWMKKysKKysKKythY19leHQ9Ywor K2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRh Y19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2RlcGNj PSIkQ0MiICAgYW1fY29tcGlsZXJfbGlzdD0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIk QU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisrICAjIFdlIG1ha2Ug YSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVw CisrICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5l dmVyIHJlbW92ZS4gIEZvcgorKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBI UC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKKysgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBu YW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKysgICMgaW4g RCcuCisrICBta2RpciBjb25mdGVzdC5kaXIKKysgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBi ZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisrICAjIHVzaW5nIGEg cmVsYXRpdmUgZGlyZWN0b3J5LgorKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKKysg IGNkIGNvbmZ0ZXN0LmRpcgorKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVu Y2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCisrICAjIGl0IGhlbHBzIHRvIGRldGVjdCBp bmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorKyAgIyBib3RoIFRy dTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEK KysgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRl cGVuZGVuY2llcyBpbgorKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2ls bCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0CisrICAjIGRpcmVjdG9yeS4KKysgIG1rZGlyIHN1Ygor KworKyAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorKyAgaWYgdGVz dCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KKysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9 YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCisrICBm aQorKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAg YSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwor KyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAo d2l0aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUg d2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVj cmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAg ICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21t YW5kIGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBj b21waWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQg NSA2OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2Nv bmZ0ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9u bHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4v c2guCisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAi JHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+ IGNvbmZtZgorKworKyAgICBjYXNlICRkZXBtb2RlIGluCisrICAgIG5vc2lkZWVmZmVjdCkKKysg ICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3Qs IHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVz dGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVz OyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAg ICAgOzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAgICAjIFdlIGNoZWNrIHdp dGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAg IyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBu b3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0 IHRoaXMuCisrICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAorKyAgICAgICBzb3VyY2U9c3ViL2Nv bmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCisrICAgICAgIGRlcGZp bGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAg ICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBz dWIvY29uZnRlc3QuYyBcCisrICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgor KyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAy PiYxICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rl di9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3Vi L2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgJHtNQUtFLW1ha2V9IC1z IC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgIyBpY2MgZG9lc24ndCBj aG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncworKyAg ICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIg Zm9yIGFueSBtZXNzYWdlCisrICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVk IG9yIG5vdCBzdXBwb3J0ZWQuCisrICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQg Ny4xIGNvbXBsYWluIHRodXNseToKKysgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2Fybmlu ZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCisrICAgICAgIyBU aGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKKysgICAgICAjICAgaWNjOiBDb21tYW5k IGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAorKyAgICAgIGlmIChncmVw ICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAorKyAgICAgICAgICBncmVwICdub3Qg c3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisr ICAgICAgICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQorKyAg ICAgICAgYnJlYWsKKysgICAgICBmaQorKyAgICBmaQorKyAgZG9uZQorKworKyAgY2QgLi4KKysg IHJtIC1yZiBjb25mdGVzdC5kaXIKKytlbHNlCisrICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZT1ub25lCisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1CisrJGFz X2VjaG8gIiRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9CisrQ0NE RVBNT0RFPWRlcG1vZGU9JGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCisrCisr IGlmCisrICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAorKyAg JiYgdGVzdCAiJGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRo ZW4KKysgIGFtX19mYXN0ZGVwQ0NfVFJVRT0KKysgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCisr ZWxzZQorKyAgYW1fX2Zhc3RkZXBDQ19UUlVFPScjJworKyAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0K KytmaQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBz ZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9TRUQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBw YXRoIGFuZCB0ZXN0IGZvciBzZWQgYW5kIGdzZWQuCisrIyBUaGVuIHVzZSB0aGF0IGxpc3Qgb2Yg c2VkJ3MgYXMgb25lcyB0byB0ZXN0IGZvciB0cnVuY2F0aW9uLgorK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0k YXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgbHRf YWNfcHJvZyBpbiBzZWQgZ3NlZDsgZG8KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICAgICAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRs dF9hY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRsdF9hY19wcm9n JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICAgICAgbHRfYWNfc2VkX2xpc3Q9IiRsdF9hY19z ZWRfbGlzdCAkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIGZpCisrICAg IGRvbmUKKysgIGRvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworK2x0X2FjX21heD0wCisr bHRfYWNfY291bnQ9MAorKyMgQWRkIC91c3IveHBnNC9iaW4vc2VkIGFzIGl0IGlzIHR5cGljYWxs eSBmb3VuZCBvbiBTb2xhcmlzCisrIyBhbG9uZyB3aXRoIC9iaW4vc2VkIHRoYXQgdHJ1bmNhdGVz IG91dHB1dC4KKytmb3IgbHRfYWNfc2VkIGluICRsdF9hY19zZWRfbGlzdCAvdXNyL3hwZzQvYmlu L3NlZDsgZG8KKysgIHRlc3QgISAtZiAkbHRfYWNfc2VkICYmIGNvbnRpbnVlCisrICBjYXQgL2Rl di9udWxsID4gY29uZnRlc3QuaW4KKysgIGx0X2FjX2NvdW50PTAKKysgIGVjaG8gJEVDSE9fTiAi MDEyMzQ1Njc4OSRFQ0hPX0MiID5jb25mdGVzdC5pbgorKyAgIyBDaGVjayBmb3IgR05VIHNlZCBh bmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgorKyAgaWYgIiRsdF9hY19zZWQiIC0tdmVyc2lv biAyPiYxIDwgL2Rldi9udWxsIHwgZ3JlcCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBs dF9jdl9wYXRoX1NFRD0kbHRfYWNfc2VkCisrICAgIGJyZWFrCisrICBmaQorKyAgd2hpbGUgdHJ1 ZTsgZG8KKysgICAgY2F0IGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LmluID5jb25mdGVzdC50bXAKKysg ICAgbXYgY29uZnRlc3QudG1wIGNvbmZ0ZXN0LmluCisrICAgIGNwIGNvbmZ0ZXN0LmluIGNvbmZ0 ZXN0Lm5sCisrICAgIGVjaG8gPj5jb25mdGVzdC5ubAorKyAgICAkbHRfYWNfc2VkIC1lICdzL2Ek Ly8nIDwgY29uZnRlc3QubmwgPmNvbmZ0ZXN0Lm91dCB8fCBicmVhaworKyAgICBjbXAgLXMgY29u ZnRlc3Qub3V0IGNvbmZ0ZXN0Lm5sIHx8IGJyZWFrCisrICAgICMgMTAwMDAgY2hhcnMgYXMgaW5w dXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAorKyAgICB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgMTAg JiYgYnJlYWsKKysgICAgbHRfYWNfY291bnQ9YGV4cHIgJGx0X2FjX2NvdW50ICsgMWAKKysgICAg aWYgdGVzdCAkbHRfYWNfY291bnQgLWd0ICRsdF9hY19tYXg7IHRoZW4KKysgICAgICBsdF9hY19t YXg9JGx0X2FjX2NvdW50CisrICAgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAorKyAgICBm aQorKyAgZG9uZQorK2RvbmUKKysKKytmaQorKworK1NFRD0kbHRfY3ZfcGF0aF9TRUQKKysKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkU0VEIiA+JjUKKyskYXNfZWNobyAi JFNFRCIgPiY2OyB9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX0dSRVArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJEdSRVAiOyB0 aGVuCisrICBhY19wYXRoX0dSRVBfZm91bmQ9ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1 c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRI X1NFUEFSQVRPUi91c3IveHBnNC9iaW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIGdyZXAgZ2dyZXA7 IGRvCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbworKyAgICAgIGFjX3BhdGhfR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIK KysgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX0dSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRo X0dSRVAiOyB9IHx8IGNvbnRpbnVlCisrIyBDaGVjayBmb3IgR05VIGFjX3BhdGhfR1JFUCBhbmQg c2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0dS RVAKKytjYXNlIGAiJGFjX3BhdGhfR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCisrKkdOVSopCisr ICBhY19jdl9wYXRoX0dSRVA9IiRhY19wYXRoX0dSRVAiIGFjX3BhdGhfR1JFUF9mb3VuZD06OzsK KysqKQorKyAgYWNfY291bnQ9MAorKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3Qu aW4iCisrICB3aGlsZSA6CisrICBkbworKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3Qu aW4iID4iY29uZnRlc3QudG1wIgorKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4i CisrICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgorKyAgICAkYXNfZWNobyAnR1JF UCcgPj4gImNvbmZ0ZXN0Lm5sIgorKyAgICAiJGFjX3BhdGhfR1JFUCIgLWUgJ0dSRVAkJyAtZSAn LShjYW5ub3QgbWF0Y2gpLScgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYv bnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9k ZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFg CisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfR1JFUF9tYXgtMH07IHRoZW4K KysgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBh IGJldHRlciBvbmUKKysgICAgICBhY19jdl9wYXRoX0dSRVA9IiRhY19wYXRoX0dSRVAiCisrICAg ICAgYWNfcGF0aF9HUkVQX21heD0kYWNfY291bnQKKysgICAgZmkKKysgICAgIyAxMCooMl4xMCkg Y2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAorKyAgICB0ZXN0ICRhY19jb3Vu dCAtZ3QgMTAgJiYgYnJlYWsKKysgIGRvbmUKKysgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0 LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OworK2VzYWMKKysKKysgICAgICAkYWNfcGF0 aF9HUkVQX2ZvdW5kICYmIGJyZWFrIDMKKysgICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9HUkVQIjsgdGhlbgorKyAg ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBncmVw IGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgZ3JlcCBjb3VsZCBiZSBm b3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICBmaQorK2Vsc2UKKysgIGFjX2N2X3BhdGhfR1JFUD0k R1JFUAorK2ZpCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfcGF0aF9HUkVQIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X3BhdGhfR1JFUCIgPiY2OyB9 CisrIEdSRVA9IiRhY19jdl9wYXRoX0dSRVAiCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGVncmVwLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX0VHUkVQK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIGVj aG8gYSB8ICRHUkVQIC1FICcoYXxiKScgPi9kZXYvbnVsbCAyPiYxCisrICAgdGhlbiBhY19jdl9w YXRoX0VHUkVQPSIkR1JFUCAtRSIKKysgICBlbHNlCisrICAgICBpZiB0ZXN0IC16ICIkRUdSRVAi OyB0aGVuCisrICBhY19wYXRoX0VHUkVQX2ZvdW5kPWZhbHNlCisrICAjIExvb3AgdGhyb3VnaCB0 aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAorKyAgYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgk UEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluCisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfcHJvZyBpbiBlZ3JlcDsg ZG8KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCisrICAgICAgYWNfcGF0aF9FR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIK KysgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX0VHUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0 aF9FR1JFUCI7IH0gfHwgY29udGludWUKKysjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9FR1JFUCBh bmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRo X0VHUkVQCisrY2FzZSBgIiRhY19wYXRoX0VHUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KKysqR05V KikKKysgIGFjX2N2X3BhdGhfRUdSRVA9IiRhY19wYXRoX0VHUkVQIiBhY19wYXRoX0VHUkVQX2Zv dW5kPTo7OworKyopCisrICBhY19jb3VudD0wCisrICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJj b25mdGVzdC5pbiIKKysgIHdoaWxlIDoKKysgIGRvCisrICAgIGNhdCAiY29uZnRlc3QuaW4iICJj b25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCisrICAgIG12ICJjb25mdGVzdC50bXAiICJjb25m dGVzdC5pbiIKKysgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCisrICAgICRhc19l Y2hvICdFR1JFUCcgPj4gImNvbmZ0ZXN0Lm5sIgorKyAgICAiJGFjX3BhdGhfRUdSRVAiICdFR1JF UCQnIDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsK KysgICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8 fCBicmVhaworKyAgICBhY19jb3VudD1gZXhwciAkYWNfY291bnQgKyAxYAorKyAgICBpZiB0ZXN0 ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX0VHUkVQX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVz dCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQor KyAgICAgIGFjX2N2X3BhdGhfRUdSRVA9IiRhY19wYXRoX0VHUkVQIgorKyAgICAgIGFjX3BhdGhf RUdSRVBfbWF4PSRhY19jb3VudAorKyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBp bnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAm JiBicmVhaworKyAgZG9uZQorKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0 ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7CisrZXNhYworKworKyAgICAgICRhY19wYXRoX0VHUkVQX2Zv dW5kICYmIGJyZWFrIDMKKysgICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVf SUZTCisrICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9FR1JFUCI7IHRoZW4KKysgICAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQg YmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBp biAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9CisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrICBmaQorK2Vsc2UKKysgIGFjX2N2X3BhdGhfRUdSRVA9JEVHUkVQ CisrZmkKKysKKysgICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX2N2X3BhdGhfRUdSRVAiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9FR1JFUCIg PiY2OyB9CisrIEVHUkVQPSIkYWNfY3ZfcGF0aF9FR1JFUCIKKysKKysKKysKKysjIENoZWNrIHdo ZXRoZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2dudV9sZCtz ZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFs IiA9IG5vIHx8IHdpdGhfZ251X2xkPXllcworK2Vsc2UKKysgIHdpdGhfZ251X2xkPW5vCisrZmkK KysKKythY19wcm9nPWxkCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICMgQ2hlY2sg aWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQyIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDLi4uICIgPiY2OyB9CisrICBjYXNlICRo b3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJy aWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50 LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAgIGFjX3By b2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysgIGNhc2Ug JGFjX3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtcXC9dKiB8 ID86W1xcL10qKQorKyAgICAgIHJlX2RpcmVsdD0nL1teL11bXi9dKi9cLlwuLycKKysgICAgICAj IENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKKysgICAgICBhY19wcm9nPWBlY2hvICRh Y19wcm9nfCAkU0VEICdzJVxcXFwlLyVnJ2AKKysgICAgICB3aGlsZSBlY2hvICRhY19wcm9nIHwg Z3JlcCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KKysJYWNfcHJvZz1gZWNobyAk YWNfcHJvZ3wgJFNFRCAicyUkcmVfZGlyZWx0JS8lImAKKysgICAgICBkb25lCisrICAgICAgdGVz dCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ciCisrICAgICAgOzsKKysgICIiKQorKyAgICAjIElm IGl0IGZhaWxzLCB0aGVuIHByZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4KKysgICAgYWNfcHJv Zz1sZAorKyAgICA7OworKyAgKikKKysgICAgIyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFy Y2ggZm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRILgorKyAgICB3aXRoX2dudV9sZD11bmtub3duCisr ICAgIDs7CisrICBlc2FjCisrZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEdOVSBsZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEdOVSBsZC4uLiAiID4mNjsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igbm9uLUdOVSBsZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQuLi4gIiA+JjY7IH0KKytmaQorK2lm IHRlc3QgIiR7bHRfY3ZfcGF0aF9MRCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisrICBsdF9z YXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGZvciBhY19kaXIgaW4gJFBB VEg7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAm JiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1m ICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX0xE PSIkYWNfZGlyLyRhY19wcm9nIgorKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFt IGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKysgICAgICAjIGJ1dCBhcHBh cmVudGx5IHNvbWUgdmFyaWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgorKyAgICAgICMg QnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgor KyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKyAg ICAgICpHTlUqIHwgKid3aXRoIEJGRCcqKQorKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYm IGJyZWFrCisrCTs7CisrICAgICAgKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYg YnJlYWsKKysJOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9z YXZlX2lmcyIKKytlbHNlCisrICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorK2ZpCisrZmkKKysKKytMRD0iJGx0X2N2X3Bh dGhfTEQiCisraWYgdGVzdCAtbiAiJExEIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJExEIiA+JjUKKyskYXNfZWNobyAiJExEIiA+JjY7IH0KKytlbHNlCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8g Im5vIiA+JjY7IH0KKytmaQorK3Rlc3QgLXogIiRMRCIgJiYgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgi ID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZC4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgIyBJJ2QgcmF0aGVyIHVzZSAt LXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12 LgorK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251bGxgIGluCisrKkdOVSogfCAqJ3dpdGggQkZE JyopCisrICBsdF9jdl9wcm9nX2dudV9sZD15ZXMKKysgIDs7CisrKikKKysgIGx0X2N2X3Byb2df Z251X2xkPW5vCisrICA7OworK2VzYWMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2dudV9sZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9n X2dudV9sZCIgPiY2OyB9Cisrd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCisrCisrCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJl bG9hZCBvYmplY3QgZmlsZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkTEQgb3B0 aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2 X2xkX3JlbG9hZF9mbGFnK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X2xkX3JlbG9hZF9mbGFnPSctcicKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY1 CisrJGFzX2VjaG8gIiRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY2OyB9CisrcmVsb2FkX2ZsYWc9 JGx0X2N2X2xkX3JlbG9hZF9mbGFnCisrY2FzZSAkcmVsb2FkX2ZsYWcgaW4KKysiIiB8ICIgIiop IDs7CisrKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7CisrZXNhYworK3JlbG9hZF9j bWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKytjYXNlICRob3N0 X29zIGluCisrICBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAg ICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91 dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZWxzZQorKyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVs b2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZmkKKysgICAgOzsKKytlc2Fj CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBCU0QtY29tcGF0 aWJsZSBubSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEJTRC1jb21wYXRpYmxlIG5t Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX05NK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRO TSI7IHRoZW4KKysgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorKyAgbHRfY3Zf cGF0aF9OTT0iJE5NIgorK2Vsc2UKKysgIGx0X25tX3RvX2NoZWNrPSIke2FjX3Rvb2xfcHJlZml4 fW5tIgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IiAmJiB0ZXN0ICIkYnVpbGQiID0g IiRob3N0IjsgdGhlbgorKyAgICBsdF9ubV90b19jaGVjaz0iJGx0X25tX3RvX2NoZWNrIG5tIgor KyAgZmkKKysgIGZvciBsdF90bXBfbm0gaW4gJGx0X25tX3RvX2NoZWNrOyBkbworKyAgICBsdF9z YXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgICAgZm9yIGFjX2RpciBpbiAk UEFUSCAvdXNyL2Njcy9iaW4vZWxmIC91c3IvY2NzL2JpbiAvdXNyL3VjYiAvYmluOyBkbworKyAg ICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rp cj0uCisrICAgICAgdG1wX25tPSIkYWNfZGlyLyRsdF90bXBfbm0iCisrICAgICAgaWYgdGVzdCAt ZiAiJHRtcF9ubSIgfHwgdGVzdCAtZiAiJHRtcF9ubSRhY19leGVleHQiIDsgdGhlbgorKwkjIENo ZWNrIHRvIHNlZSBpZiB0aGUgbm0gYWNjZXB0cyBhIEJTRC1jb21wYXQgZmxhZy4KKysJIyBBZGRp bmcgdGhlIGBzZWQgMXEnIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBIUC1VWCwgd2hpY2gg c2F5czoKKysJIyAgIG5tOiB1bmtub3duIG9wdGlvbiAiQiIgaWdub3JlZAorKwkjIFRydTY0J3Mg bm0gY29tcGxhaW5zIHRoYXQgL2Rldi9udWxsIGlzIGFuIGludmFsaWQgb2JqZWN0IGZpbGUKKysJ Y2FzZSBgIiR0bXBfbm0iIC1CIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisrCSovZGV2 L251bGwqIHwgKidJbnZhbGlkIGZpbGUgb3Igb2JqZWN0IHR5cGUnKikKKysJICBsdF9jdl9wYXRo X05NPSIkdG1wX25tIC1CIgorKwkgIGJyZWFrCisrCSAgOzsKKysJKikKKysJICBjYXNlIGAiJHRt cF9ubSIgLXAgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KKysJICAqL2Rldi9udWxsKikK KysJICAgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLXAiCisrCSAgICBicmVhaworKwkgICAgOzsK KysJICAqKQorKwkgICAgbHRfY3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAj IGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQKKysJICAgIGNvbnRpbnVlICMgc28gdGhhdCB3ZSBj YW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3VwcG9ydHMgQlNEIGZsYWdzCisrCSAgICA7OworKwkg IGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgZG9uZQorKyAgICBJRlM9IiRs dF9zYXZlX2lmcyIKKysgIGRvbmUKKysgIHRlc3QgLXogIiRsdF9jdl9wYXRoX05NIiAmJiBsdF9j dl9wYXRoX05NPW5tCisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRsdF9jdl9wYXRoX05NIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3BhdGhfTk0iID4mNjsg fQorK05NPSIkbHRfY3ZfcGF0aF9OTSIKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciBsbiAtcyB3b3Jrcy4uLiAiID4mNjsgfQorK0xOX1M9JGFzX2xuX3MKKytpZiB0ZXN0 ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vLCB1c2luZyAkTE5fUyIgPiY1CisrJGFz X2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2OyB9CisrZmkKKysKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVz IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBs aWJyYXJpZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckTUFHSUNfQ01EJworK2x0X2N2X2ZpbGVfbWFn aWNfdGVzdF9maWxlPQorK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJworKyMg TmVlZCB0byBzZXQgdGhlIHByZWNlZGluZyB2YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1zIHRoYXQg c3VwcG9ydAorKyMgaW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2llcy4KKysjICdub25lJyAtLSBkZXBl bmRlbmNpZXMgbm90IHN1cHBvcnRlZC4KKysjIGB1bmtub3duJyAtLSBzYW1lIGFzIG5vbmUsIGJ1 dCBkb2N1bWVudHMgdGhhdCB3ZSByZWFsbHkgZG9uJ3Qga25vdy4KKysjICdwYXNzX2FsbCcgLS0g YWxsIGRlcGVuZGVuY2llcyBwYXNzZWQgd2l0aCBubyBjaGVja3MuCisrIyAndGVzdF9jb21waWxl JyAtLSBjaGVjayBieSBtYWtpbmcgdGVzdCBwcm9ncmFtLgorKyMgJ2ZpbGVfbWFnaWMgW1tyZWdl eF1dJyAtLSBjaGVjayBieSBsb29raW5nIGZvciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgKKysjIHdo aWNoIHJlc3BvbmRzIHRvIHRoZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVuZGVk IHJlZ2V4LgorKyMgSWYgeW91IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBzeXN0 ZW0gYW5kIHlvdSdyZSBub3Qgc3VyZQorKyMgd2hldGhlciBgcGFzc19hbGwnIHdpbGwgKmFsd2F5 cyogd29yaywgeW91IHByb2JhYmx5IHdhbnQgdGhpcyBvbmUuCisrCisrY2FzZSAkaG9zdF9vcyBp bgorK2FpeFs0LTldKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisr ICA7OworKworK2Jlb3MqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK KysgIDs7CisrCisrYnNkaVs0NV0qKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2Zp bGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1p YyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy91c3IvYmluL2ZpbGUgLUwnCisrICBs dF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vc2hsaWIvbGliYy5zbworKyAgOzsKKysKKytjeWd3 aW4qKQorKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGlzIGEgc2hlbGwgZnVuY3Rpb24gZGVmaW5lZCBp biBsdG1haW4uc2gKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54 ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVu Y193aW4zMl9saWJpZCcKKysgIDs7CisrCisrbWluZ3cqIHwgcHczMiopCisrICAjIEJhc2UgTVNZ Uy9NaW5HVyBkbyBub3QgcHJvdmlkZSB0aGUgJ2ZpbGUnIGNvbW1hbmQgbmVlZGVkIGJ5CisrICAj IGZ1bmNfd2luMzJfbGliaWQgc2hlbGwgZnVuY3Rpb24sIHNvIHVzZSBhIHdlYWtlciB0ZXN0IGJh c2VkIG9uICdvYmpkdW1wJywKKysgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBs ZSBiZWNhdXNlIHdlIGFyZSBjcm9zcy1jb21waWxpbmcuCisrICBpZiAoIGZpbGUgLyApID4vZGV2 L251bGwgMj4mMTsgdGhlbgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJworKyAgICBsdF9jdl9maWxlX21hZ2lj X2NtZD0nZnVuY193aW4zMl9saWJpZCcKKysgIGVsc2UKKysgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGVpKi1pMzg2KC4qYXJjaGl0ZWN0dXJl OiBpMzg2KT8nCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKysgIGZp CisrICA7OworKworK2RhcndpbiogfCByaGFwc29keSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytmcmVlYnNkKiB8IGRyYWdvbmZseSopCisrICBp ZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhl bgorKyAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICBpKjg2ICkKKysgICAgICAjIE5vdCBzdXJl IHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgorKyAg ICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAu CisrICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8 T3BlbkJTRHxEcmFnb25GbHkpL2lbMy05XTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJl ZCBsaWJyYXJ5JworKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKysg ICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipg CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD1wYXNzX2FsbAorKyAgZmkKKysgIDs7CisrCisrZ251KikKKysgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2hwdXgxMC4yMCogfCBocHV4MTEq KQorKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgY2FzZSAkaG9zdF9j cHUgaW4KKysgIGlhNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxl IC0gSUE2NCcKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMy L2xpYmMuc28KKysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hh cmVkIG9iamVjdCBmaWxlIC0gUEEtUklTQyBbMC05XS5bMC05XScKKysgICAgbHRfY3ZfZmlsZV9t YWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCisrICAgIDs7CisrICAqKQor KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1b MC05XXxQQS1SSVNDWzAtOV0uWzAtOV0pIHNoYXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxl X21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7 OworKworK2ludGVyaXhbMy05XSopCisrICAjIFBJQyBjb2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4 IDMueCwgdGhhdCdzIHdoeSB8XC5hIG5vdCB8X3BpY1wuYSBoZXJlCisrICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb3xcLmEpJCcKKysgIDs7 CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJExEIGluCisrICAq LTMyfCoiLTMyICIpIGxpYm1hZ2ljPTMyLWJpdDs7CisrICAqLW4zMnwqIi1uMzIgIikgbGlibWFn aWM9TjMyOzsKKysgICotNjR8KiItNjQgIikgbGlibWFnaWM9NjQtYml0OzsKKysgICopIGxpYm1h Z2ljPW5ldmVyLW1hdGNoOzsKKysgIGVzYWMKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PXBhc3NfYWxsCisrICA7OworKworKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCog fCBrKmJzZCotZ251KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysg IDs7CisrCisrbmV0YnNkKikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBf X0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xfcGljXC5hKSQn CisrICBlbHNlCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJu IC9saWJbXi9dKyhcLnNvfF9waWNcLmEpJCcKKysgIGZpCisrICA7OworKworK25ld29zNiopCisr ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSot Yml0IFtNTF1TQiAoZXhlY3V0YWJsZXxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxlX21hZ2lj X2NtZD0vdXNyL2Jpbi9maWxlCisrICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xp Yi9saWJubHMuc28KKysgIDs7CisrCisrbnRvLXFueCopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD11bmtub3duCisrICA7OworKworK29wZW5ic2QqKQorKyAgaWYgdGVzdCAteiAiYGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3Mt JGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlsw LTldK3xcLnNvfF9waWNcLmEpJCcKKysgIGVsc2UKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfF9waWNc LmEpJCcKKysgIGZpCisrICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3Jkb3MqKQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrc29sYXJpcyopCisr ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytzeXN2NCB8 IHN5c3Y0LjMqKQorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgIG1vdG9yb2xhKQorKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0 IFtNTF1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYikgTVswLTldWzAtOV0qIFZlcnNpb24g WzAtOV0nCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xp YmMuc28qYAorKyAgICA7OworKyAgbmNyKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD1wYXNzX2FsbAorKyAgICA7OworKyAgc2VxdWVudCkKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19j bWQ9Jy9iaW4vZmlsZScKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTE1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIg KScKKysgICAgOzsKKysgIHNuaSkKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmls ZScKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9ImZpbGVfbWFnaWMgRUxGIFswLTld WzAtOV0qLWJpdCBbTE1dU0IgZHluYW1pYyBsaWIiCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVz dF9maWxlPS9saWIvbGliYy5zbworKyAgICA7OworKyAgc2llbWVucykKKysgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHBjKQorKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysK KytzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwg c3lzdjQqdXcyKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7 OworK2VzYWMKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZCIgPiY2OyB9CisrZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNf Y21kCisrZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisr dGVzdCAteiAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11 bmtub3duCisrCisrCisrCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVz ZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mg d2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFH UyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4K Kytjb21waWxlcj0kQ0MKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGlidG9vbC1s b2NrIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBz ZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2xpYnRvb2xfbG9jazsKKytmaQorKworK3Rl c3QgIngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9 eWVzCisrCisrIyBTb21lIGZsYWdzIG5lZWQgdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgY29tcGls ZXIgb3IgbGlua2VyIGZvciBnb29kCisrIyBsaWJ0b29sIHN1cHBvcnQuCisrY2FzZSAkaG9zdCBp bgorK2lhNjQtKi1ocHV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4K KysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiB7IChldmFsIGVjaG8g IiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21w aWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorKyAg ICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisrICAgICpFTEYt MzIqKQorKyAgICAgIEhQVVhfSUE2NF9NT0RFPSIzMiIKKysgICAgICA7OworKyAgICAqRUxGLTY0 KikKKysgICAgICBIUFVYX0lBNjRfTU9ERT0iNjQiCisrICAgICAgOzsKKysgICAgZXNhYworKyAg ZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrKi0qLWlyaXg2KikKKysgICMgRmluZCBv dXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJyNsaW5lIDU1NjkgImNvbmZpZ3Vy ZSInID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVO TzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAg YWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICBpZiB0ZXN0ICIkbHRf Y3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCisrICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29u ZnRlc3QuJGFjX29iamV4dGAgaW4KKysgICAgKjMyLWJpdCopCisrICAgICAgTEQ9IiR7TEQtbGR9 IC1tZWxmMzJic21pcCIKKysgICAgICA7OworKyAgICAqTjMyKikKKysgICAgICBMRD0iJHtMRC1s ZH0gLW1lbGYzMmJtaXBuMzIiCisrICAgICAgOzsKKysgICAgKjY0LWJpdCopCisrICAgICAgTEQ9 IiR7TEQtbGR9IC1tZWxmNjRibWlwIgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICBlbHNlCisr ICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysgICAgKjMy LWJpdCopCisrICAgICAgTEQ9IiR7TEQtbGR9IC0zMiIKKysgICAgICA7OworKyAgICAqTjMyKikK KysgICAgICBMRD0iJHtMRC1sZH0gLW4zMiIKKysgICAgICA7OworKyAgICAqNjQtYml0KikKKysg ICAgICBMRD0iJHtMRC1sZH0gLTY0IgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICBmaQorKyAg ZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJlZWJzZCotZ251 fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCisrczM5MCot KmxpbnV4KnxzcGFyYyotKmxpbnV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1 c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiB7IChldmFs IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRh Y19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhl bgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisrICAgICozMi1iaXQq KQorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkK KysgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2X2Zic2QiCisrICAgICAgICAgIDs7 CisrICAgICAgICB4ODZfNjQtKmxpbnV4KikKKysgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVs Zl9pMzg2IgorKyAgICAgICAgICA7OworKyAgICAgICAgcHBjNjQtKmxpbnV4Knxwb3dlcnBjNjQt KmxpbnV4KikKKysgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMycHBjbGludXgiCisrICAg ICAgICAgIDs7CisrICAgICAgICBzMzkweC0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmX3MzOTAiCisrICAgICAgICAgIDs7CisrICAgICAgICBzcGFyYzY0LSpsaW51eCop CisrICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGYzMl9zcGFyYyIKKysgICAgICAgICAgOzsK KysgICAgICBlc2FjCisrICAgICAgOzsKKysgICAgKjY0LWJpdCopCisrICAgICAgbGlic3VmZj02 NAorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkK KysgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKKysgICAgICAgICAg OzsKKysgICAgICAgIHg4Nl82NC0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0g ZWxmX3g4Nl82NCIKKysgICAgICAgICAgOzsKKysgICAgICAgIHBwYyotKmxpbnV4Knxwb3dlcnBj Ki0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrICAgICAg ICAgIDs7CisrICAgICAgICBzMzkwKi0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0g LW0gZWxmNjRfczM5MCIKKysgICAgICAgICAgOzsKKysgICAgICAgIHNwYXJjKi0qbGludXgqKQor KyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiCisrICAgICAgICAgIDs7Cisr ICAgICAgZXNhYworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRl c3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisrICAjIE9uIFNDTyBPcGVuU2VydmVyIDUs IHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCisrICBTQVZFX0NG TEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1i ZWxmIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5l ZWRzIC1iZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9jY19uZWVkc19iZWxmK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGFjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMg JENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251 CisrCisrICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKwor K2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisr cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190 cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dl cnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0 aGVuCisrICBsdF9jdl9jY19uZWVkc19iZWxmPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysKKysJbHRfY3ZfY2NfbmVlZHNfYmVsZj1ubworK2ZpCisrCisrcm0gLXJmIGNv bmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj b25mdGVzdC4kYWNfZXh0CisrICAgICBhY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X2NjX25lZWRzX2JlbGYiID4mNQorKyRhc19lY2hvICIkbHRfY3Zf Y2NfbmVlZHNfYmVsZiIgPiY2OyB9CisrICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25lZWRzX2JlbGYi ICE9IHgieWVzIjsgdGhlbgorKyAgICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIuOC4wLCBlZ2Nz IDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKKysgICAgQ0ZMQUdTPSIkU0FWRV9DRkxB R1MiCisrICBmaQorKyAgOzsKKytzcGFyYyotKnNvbGFyaXMqKQorKyAgIyBGaW5kIG91dCB3aGlj aCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQK KysgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4m NQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9OyB0aGVuCisrICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4K KysgICAgKjY0LWJpdCopCisrICAgICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4KKysgICAg ICB5ZXMqKSBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiIDs7CisrICAgICAgKikKKysgICAg ICAgIGlmICR7TEQtbGR9IC02NCAtciAtbyBjb25mdGVzdDIubyBjb25mdGVzdC5vID4vZGV2L251 bGwgMj4mMTsgdGhlbgorKwkgIExEPSIke0xELWxkfSAtNjQiCisrCWZpCisrCTs7CisrICAgICAg ZXNhYworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisr ICA7OworKworKworK2VzYWMKKysKKytuZWVkX2xvY2tzPSIkZW5hYmxlX2xpYnRvb2xfbG9jayIK KysKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBp bGVyX2dudQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcnVu IHRoZSBDIHByZXByb2Nlc3NvciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1 biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KKysjIE9uIFN1bnMsIHNvbWV0aW1lcyAk Q1BQIG5hbWVzIGEgZGlyZWN0b3J5LgorK2lmIHRlc3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRD UFAiOyB0aGVuCisrICBDUFA9CisrZmkKKytpZiB0ZXN0IC16ICIkQ1BQIjsgdGhlbgorKyAgaWYg dGVzdCAiJHthY19jdl9wcm9nX0NQUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1BQ IG5lZWRzIHRvIGJlIGV4cGFuZGVkCisrICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAt dHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCisrICAgIGRvCisrICAgICAgYWNfcHJlcHJvY19v az1mYWxzZQorK2ZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAj IFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGds aWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVy IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQor KyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisr ICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVy J3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMg aGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+Cisr I2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJy b3IKKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0Lgor K2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAor KworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4 aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlz dGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0 IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0 IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRl c3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBzdWNj ZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9Ogor K2JyZWFrCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKwor K2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5p bmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4 dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisrICBicmVhaworK2ZpCisrCisrICAgIGRvbmUK KysgICAgYWNfY3ZfcHJvZ19DUFA9JENQUAorKworK2ZpCisrICBDUFA9JGFjX2N2X3Byb2dfQ1BQ CisrZWxzZQorKyAgYWNfY3ZfcHJvZ19DUFA9JENQUAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJENQUCIgPiY1CisrJGFzX2VjaG8gIiRDUFAiID4mNjsgfQorK2Fj X3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMK KytkbworKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25m aWd1cmluZyBnbGliYworKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisr ICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5l ZCwgc2luY2UKKysgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29t cGlsZXJzLgorKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRo ZSBjb21waWxlcidzIHBhcnNlciwKKysgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXgg ZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgorKyAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUgPGxp bWl0cy5oPgorKyNlbHNlCisrIyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5kaWYKKysJCSAgICAg U3ludGF4IGVycm9yCisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRh Y19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisr ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRh Y19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewor KwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgOgorK2Vsc2UK KysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICMgQnJva2VuOiBmYWlscyBvbiB2YWxp ZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hl dGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93Lgor KyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisr X0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8 YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRl c3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEK KysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICAjIEJy b2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVw cm9jX29rPToKKyticmVhaworK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxT RSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorKyAgOgorK2Vsc2UKKysgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWls cyBzYW5pdHkgY2hlY2sKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxz IHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrYWNfZXh0PWMKKyth Y19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMg PiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVk ZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPHN0cmluZy5oPgorKyNpbmNsdWRlIDxmbG9hdC5oPgor KworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G Cisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUi CisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkK KysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKysKKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKyAg IyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBB TlNJLgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4g ICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5j bHVkZSA8c3RyaW5nLmg+CisrCisrX0FDRU9GCisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIpIDI+JjUgfAorKyAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhl bgorKyAgOgorK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25m dGVzdCoKKysKKytmaQorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVu CisrICAjIElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5 IHRvIEFOU0kuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVm cy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KyNpbmNsdWRlIDxzdGRsaWIuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsg dGhlbgorKyAgOgorK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBj b25mdGVzdCoKKysKKytmaQorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0 aGVuCisrICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3Jv cyB1bmxlc3MgdXNpbmcgLWFuc2kuCisrICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll czsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrI2luY2x1ZGUgPGN0eXBlLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNp ZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAyMCkKKysjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0g KGMpICYmIChjKSA8PSAneicpCisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdB JyArICgoYykgLSAnYScpIDogKGMpKQorKyNlbHNlCisrIyBkZWZpbmUgSVNMT1dFUihjKSBcCisr CQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAorKwkJICAgICB8fCAoJ2onIDw9IChj KSAmJiAoYykgPD0gJ3InKSBcCisrCQkgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicp KQorKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykp CisrI2VuZGlmCisrCisrI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkg JiYgKGYpKSkKKytpbnQKKyttYWluICgpCisreworKyAgaW50IGk7CisrICBmb3IgKGkgPSAwOyBp IDwgMjU2OyBpKyspCisrICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKKysJ fHwgdG91cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCisrICAgICAgcmV0dXJuIDI7CisrICByZXR1 cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikg Mj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4v Y29uZnRlc3QkYWNfZXhlZXh0JworKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIk YWNfdHJ5IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRo ZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRo IHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrKCBl eGl0ICRhY19zdGF0dXMgKQorK2FjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtcmYgY29u ZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBi Yi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAorK2ZpCisrCisrCisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJf c3RkYyIgPiY2OyB9CisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysK KytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKKytf QUNFT0YKKysKKytmaQorKworKyMgT24gSVJJWCA1LjMsIHN5cy90eXBlcyBhbmQgaW50dHlwZXMu aCBhcmUgY29uZmxpY3RpbmcuCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrZm9yIGFjX2hl YWRlciBpbiBzeXMvdHlwZXMuaCBzeXMvc3RhdC5oIHN0ZGxpYi5oIHN0cmluZy5oIG1lbW9yeS5o IHN0cmluZ3MuaCBcCisrCQkgIGludHR5cGVzLmggc3RkaW50LmggdW5pc3RkLmgKKytkbworK2Fz X2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9z aGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9Cisr aWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwi ID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyRhY19pbmNsdWRl c19kZWZhdWx0CisrCisrI2luY2x1ZGUgPCRhY19oZWFkZXI+CisrX0FDRU9GCisrcm0gLWYgY29u ZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgk YWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19z dGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisr ICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCisrICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19IZWFkZXI9bm8iCisrZmkKKysKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQorKwkJICRh c19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFs PWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwi J2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGNhdCA+PmNvbmZk ZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRh c190cl9jcHBgIDEKKytfQUNFT0YKKysKKytmaQorKworK2RvbmUKKysKKysKKysKKytmb3IgYWNf aGVhZGVyIGluIGRsZmNuLmgKKytkbworK2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hl YWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVy OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9CisraWYgeyBhc192 YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0Ijsg fTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytmaQorK2FjX3Jlcz1gZXZh bCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisr CSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUK KyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrZWxzZQorKyAgIyBJcyB0aGUgaGVhZGVyIGNv bXBpbGFibGU/CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFk ZXIgdXNhYmlsaXR5IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJp bGl0eS4uLiAiID4mNjsgfQorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrJGFjX2luY2x1ZGVzX2RlZmF1bHQKKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytfQUNF T0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh ZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2hlYWRlcl9jb21waWxlcj1ubwor K2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdC4kYWNfZXh0CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hl YWRlcl9jb21waWxlciIgPiY1CisrJGFzX2VjaG8gIiRhY19oZWFkZXJfY29tcGlsZXIiID4mNjsg fQorKworKyMgSXMgdGhlIGhlYWRlciBwcmVzZW50PworK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyAkYWNfaGVhZGVyIHByZXNlbmNlLi4uICIgPiY2OyB9CisrY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytfQUNFT0YK KytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIx CisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY19wcmVw cm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgorKyAgICAgICB9OyB0aGVuCisrICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICBhY19oZWFkZXJfcHJlcHJvYz1ubworK2Zp CisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorKyRhc19lY2hv ICIkYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQorKworKyMgU28/ICBXaGF0IGFib3V0IHRoaXMg aGVhZGVyPworK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFj X2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KKysgIHllczpubzogKQorKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBp bGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3Rl ZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIn cyByZXN1bHQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHBy b2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CisrICAgIGFjX2hlYWRl cl9wcmVwcm9jPXllcworKyAgICA7OworKyAgbm86eWVzOiogKQorKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJl IGNvbXBpbGVkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBw cmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3Npbmcg cHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAk YWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+ JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRl cjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4m Mjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVy OiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlByZXNl bnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVw cm9jZXNzb3IncyByZXN1bHQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19o ZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQor KyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogaW4g dGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29t cGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mMjt9CisrICAgICggY2F0IDw8XF9BU0JPWAor KyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKyMj IFJlcG9ydCB0aGlzIHRvIG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCAjIworKyMjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworK19BU0JPWAor KyAgICAgKSB8IHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgorKyAgICA7Owor K2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFk ZXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9 CisraWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0 fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBldmFsICIkYXNfYWNfSGVhZGVyPVwkYWNfaGVhZGVyX3ByZXByb2MiCisrZmkKKythY19y ZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KKysJCSAkYXNfZWNobyAiJGFzX3Zh bCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3Jl cyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorKworK2ZpCisrYXNfdmFsPWBldmFs ICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysg ICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGNhdCA+PmNvbmZkZWZzLmgg PDxfQUNFT0YKKysjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9j cHBgIDEKKytfQUNFT0YKKysKKytmaQorKworK2RvbmUKKysKKysKKysKKytpZiB0ZXN0IC1uICIk Q1hYIiAmJiAoIHRlc3QgIlgkQ1hYIiAhPSAiWG5vIiAmJgorKyAgICAoICh0ZXN0ICJYJENYWCIg PSAiWGcrKyIgJiYgYGcrKyAtdiA+L2Rldi9udWxsIDI+JjFgICkgfHwKKysgICAgKHRlc3QgIlgk Q1hYIiAhPSAiWGcrKyIpKSkgOyB0aGVuCisrICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK KythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3NvciIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3Nv ci4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRDWFhDUFAiOyB0aGVuCisrICBpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfQ1hYQ1BQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAg bmVlZHMgdG8gYmUgZXhwYW5kZWQKKysgICAgZm9yIENYWENQUCBpbiAiJENYWCAtRSIgIi9saWIv Y3BwIgorKyAgICBkbworKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4X3By ZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRo YXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVz aCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2Vy dC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0 cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAt RSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3Qg anVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNh c2UuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAg Ki8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRl ZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFz c2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7IChh Y190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAg KGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19z dGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisr ICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fy bl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK KysgICAgICAgfTsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisr Cisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtz IG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCisr ICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YK KytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIx CisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3By ZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxp ZCBpbnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysK KysgICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytmaQor KworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMgQmVj YXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBz a2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFjX3By ZXByb2Nfb2s7IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKysgICAgZG9uZQorKyAgICBhY19jdl9w cm9nX0NYWENQUD0kQ1hYQ1BQCisrCisrZmkKKysgIENYWENQUD0kYWNfY3ZfcHJvZ19DWFhDUFAK KytlbHNlCisrICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYQ1BQIiA+JjUKKyskYXNfZWNobyAiJENYWENQUCIg PiY2OyB9CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2Zs YWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRo IGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBp bGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1RE Q19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJl ZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNv ZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2gg Y3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgor K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisr IyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2Vu ZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2Nw cCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nw cCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rl di9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0 aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9r ZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNl cy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRl dGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3Ry eT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZh bCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1 cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJt IC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2Zs YWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAg ICAgICB9OyB0aGVuCisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2Nv bnRpbnVlCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBQYXNzZXMg Ym90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhaworK2ZpCisrCisrcm0gLWYgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBicmVh aycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisrcm0g LWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsgdGhl bgorKyAgOgorK2Vsc2UKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBp biBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3 ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDKysgcHJl cHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5s b2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysr IHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKKytTZWUgXGBjb25m aWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH07IH0KKytmaQorKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworK2ZpCisrCisrCisrYWNfZXh0PWYK KythY19jb21waWxlPSckRjc3IC1jICRGRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJEY3NyAtbyBjb25mdGVzdCRhY19leGVleHQgJEZGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2Y3N19jb21waWxl cl9nbnUKKytpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJv ZyBpbiBnNzcgeGxmIGY3NyBmcnQgcGdmNzcgY2Y3NyBmb3J0NzcgZmwzMiBhZjc3IHhsZjkwIGY5 MCBwZ2Y5MCBwZ2hwZiBlcGNmOTAgZ2ZvcnRyYW4gZzk1IHhsZjk1IGY5NSBmb3J0IGlmb3J0IGlm YyBlZmMgcGdmOTUgbGY5NSBmdG4KKysgIGRvCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29y ZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29y ZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19GNzcrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJEY3NyI7IHRoZW4KKysgIGFj X2N2X3Byb2dfRjc3PSIkRjc3IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytl bHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIg aW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgor KyAgICBhY19jdl9wcm9nX0Y3Nz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisrICAgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg PiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZT CisrCisrZmkKKytmaQorK0Y3Nz0kYWNfY3ZfcHJvZ19GNzcKKytpZiB0ZXN0IC1uICIkRjc3Ijsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJEY3NyIgPiY1Cisr JGFzX2VjaG8gIiRGNzciID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisr ICAgIHRlc3QgLW4gIiRGNzciICYmIGJyZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIk Rjc3IjsgdGhlbgorKyAgYWNfY3RfRjc3PSRGNzcKKysgIGZvciBhY19wcm9nIGluIGc3NyB4bGYg Zjc3IGZydCBwZ2Y3NyBjZjc3IGZvcnQ3NyBmbDMyIGFmNzcgeGxmOTAgZjkwIHBnZjkwIHBnaHBm IGVwY2Y5MCBnZm9ydHJhbiBnOTUgeGxmOTUgZjk1IGZvcnQgaWZvcnQgaWZjIGVmYyBwZ2Y5NSBs Zjk1IGZ0bgorK2RvCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwg c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3By b2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfRjc3K3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRh Y19jdF9GNzciOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0Y3Nz0iJGFjX2N0X0Y3NyIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0k YXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9G Nzc9IiRhY19wcm9nIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUK Kytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9GNzc9JGFjX2N2 X3Byb2dfYWNfY3RfRjc3CisraWYgdGVzdCAtbiAiJGFjX2N0X0Y3NyI7IHRoZW4KKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9GNzciID4mNQorKyRhc19lY2hv ICIkYWNfY3RfRjc3IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAg dGVzdCAtbiAiJGFjX2N0X0Y3NyIgJiYgYnJlYWsKKytkb25lCisrCisrICBpZiB0ZXN0ICJ4JGFj X2N0X0Y3NyIgPSB4OyB0aGVuCisrICAgIEY3Nz0iIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9z c19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGgg aG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9z cyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93 YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBGNzc9JGFjX2N0X0Y3NworKyAgZmkKKytmaQorKwor KworKyMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KKyskYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBGb3J0cmFuIDc3IGNvbXBpbGVyIHZl cnNpb24iID4mNQorK3NldCBYICRhY19jb21waWxlCisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190 cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8K KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1Cisr ICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBp bGVyIC1WID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAt ViA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3JtIC1m IGEub3V0CisrCisrIyBJZiB3ZSBkb24ndCB1c2UgYC5GJyBhcyBleHRlbnNpb24sIHRoZSBwcmVw cm9jZXNzb3IgaXMgbm90IHJ1biBvbiB0aGUKKysjIGlucHV0IGZpbGUuICAoTm90ZSB0aGF0IHRo aXMgb25seSBuZWVkcyB0byB3b3JrIGZvciBHTlUgY29tcGlsZXJzLikKKythY19zYXZlX2V4dD0k YWNfZXh0CisrYWNfZXh0PUYKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg d2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBGb3J0cmFuIDc3IGNvbXBpbGVyIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEZvcnRyYW4g NzcgY29tcGlsZXIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2Y3N19jb21waWxlcl9n bnUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrICAgICAgcHJvZ3JhbSBtYWlu CisrI2lmbmRlZiBfX0dOVUNfXworKyAgICAgICBjaG9rZSBtZQorKyNlbmRpZgorKworKyAgICAg IGVuZAorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9 IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUi KSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29u ZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19m Nzdfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jb21waWxlcl9nbnU9 eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jb21waWxlcl9n bnU9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAorK2FjX2N2X2Y3N19jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVy X2dudQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2 X2Y3N19jb21waWxlcl9nbnUiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfZjc3X2NvbXBpbGVyX2du dSIgPiY2OyB9CisrYWNfZXh0PSRhY19zYXZlX2V4dAorK2FjX3Rlc3RfRkZMQUdTPSR7RkZMQUdT K3NldH0KKythY19zYXZlX0ZGTEFHUz0kRkZMQUdTCisrRkZMQUdTPQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRGNzcgYWNjZXB0cyAtZyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAkRjc3IGFjY2VwdHMgLWcuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfZjc3X2crc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgRkZMQUdTPS1nCisrY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrICAgICAgcHJvZ3JhbSBtYWluCisrCisrICAgICAgZW5kCisrX0FD RU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIg PiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Y3N193ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfZjc3X2c9eWVzCisrZWxz ZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9wcm9nX2Y3N19nPW5vCisr ZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdl9wcm9nX2Y3N19nIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X3Byb2dfZjc3X2ciID4m NjsgfQorK2lmIHRlc3QgIiRhY190ZXN0X0ZGTEFHUyIgPSBzZXQ7IHRoZW4KKysgIEZGTEFHUz0k YWNfc2F2ZV9GRkxBR1MKKytlbGlmIHRlc3QgJGFjX2N2X3Byb2dfZjc3X2cgPSB5ZXM7IHRoZW4K KysgIGlmIHRlc3QgIngkYWNfY3ZfZjc3X2NvbXBpbGVyX2dudSIgPSB4eWVzOyB0aGVuCisrICAg IEZGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAgICBGRkxBR1M9Ii1nIgorKyAgZmkKKytlbHNl CisrICBpZiB0ZXN0ICJ4JGFjX2N2X2Y3N19jb21waWxlcl9nbnUiID0geHllczsgdGhlbgorKyAg ICBGRkxBR1M9Ii1PMiIKKysgIGVsc2UKKysgICAgRkZMQUdTPQorKyAgZmkKKytmaQorKworK2lm IHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgRzc3PXllcworK2Vsc2UKKysg IEc3Nz0KKytmaQorK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2Nf Y29tcGlsZXJfZ251CisrCisrCisrCisrIyBBdXRvY29uZiAyLjEzJ3MgQUNfT0JKRVhUIGFuZCBB Q19FWEVFWFQgbWFjcm9zIG9ubHkgd29ya3MgZm9yIEMgY29tcGlsZXJzIQorKyMgZmluZCB0aGUg bWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5l IGFyZ3VtZW50cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3Ro IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2 X3N5c19tYXhfY21kX2xlbitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICAgIGk9MAorKyAgdGVzdHN0cmluZz0iQUJDRCIKKysKKysgIGNh c2UgJGJ1aWxkX29zIGluCisrICBtc2Rvc2RqZ3BwKikKKysgICAgIyBPbiBESkdQUCwgdGhpcyB0 ZXN0IGNhbiBibG93IHVwIHByZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYworKyAg ICAjIChhbnkgc2luZ2xlIGFyZ3VtZW50IGV4Y2VlZGluZyAyMDAwIGJ5dGVzIGNhdXNlcyBhIGJ1 ZmZlciBvdmVycnVuCisrICAgICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYgaXQg d2VyZSBmaXhlZCwgdGhlIHJlc3VsdCBvZiB0aGlzCisrICAgICMgY2hlY2sgd291bGQgYmUgbGFy Z2VyIHRoYW4gaXQgc2hvdWxkIGJlLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTIyODg7 ICAgICMgMTJLIGlzIGFib3V0IHJpZ2h0CisrICAgIDs7CisrCisrICBnbnUqKQorKyAgICAjIFVu ZGVyIEdOVSBIdXJkLCB0aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUgaXMK KysgICAgIyBubyBsaW1pdCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMu CisrICAgICMgTGlidG9vbCB3aWxsIGludGVycHJldCAtMSBhcyBubyBsaW1pdCB3aGF0c29ldmVy CisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMTsKKysgICAgOzsKKysKKysgIGN5Z3dpbiog fCBtaW5ndyopCisrICAgICMgT24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93cyB1cCAtLSBpdCBz dWNjZWVkcywgYnV0IHRha2VzCisrICAgICMgYWJvdXQgNSBtaW51dGVzIGFzIHRoZSB0ZXN0c3Ry aW5nIGdyb3dzIGV4cG9uZW50aWFsbHkuCisrICAgICMgV29yc2UsIHNpbmNlIDl4L01FIGFyZSBu b3QgcHJlLWVtcHRpdmVseSBtdWx0aXRhc2tpbmcsCisrICAgICMgeW91IGVuZCB1cCB3aXRoIGEg ImZyb3plbiIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UKKysgICAgIyB0aGUg dGVzdCBldmVudHVhbGx5IHN1Y2NlZWRzICh3aXRoIGEgbWF4IGxpbmUgbGVuZ3RoIG9mIDI1Nmsp LgorKyAgICAjIEluc3RlYWQsIGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBtaW5pbXVtIGxpbmVs ZW5ndGggcmVwb3J0ZWQgYnkKKysgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6 IDgxOTIgKG9uIE5ULzJLL1hQKS4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7Cisr ICAgIDs7CisrCisrICBhbWlnYW9zKikKKysgICAgIyBPbiBBbWlnYU9TIHdpdGggcGRrc2gsIHRo aXMgdGVzdCB0YWtlcyBob3VycywgbGl0ZXJhbGx5LgorKyAgICAjIFNvIHdlIGp1c3QgcHVudCBh bmQgdXNlIGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTkyLgorKyAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIG5ldGJzZCogfCBmcmVlYnNkKiB8IG9wZW5i c2QqIHwgZGFyd2luKiB8IGRyYWdvbmZseSopCisrICAgICMgVGhpcyBoYXMgYmVlbiBhcm91bmQg c2luY2UgMzg2QlNELCBhdCBsZWFzdC4gIExpa2VseSBmdXJ0aGVyLgorKyAgICBpZiB0ZXN0IC14 IC9zYmluL3N5c2N0bDsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3NiaW4v c3lzY3RsIC1uIGtlcm4uYXJnbWF4YAorKyAgICBlbGlmIHRlc3QgLXggL3Vzci9zYmluL3N5c2N0 bDsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3Vzci9zYmluL3N5c2N0bCAt biBrZXJuLmFyZ21heGAKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj02 NTUzNgkjIHVzYWJsZSBkZWZhdWx0IGZvciBhbGwgQlNEcworKyAgICBmaQorKyAgICAjIEFuZCBh ZGQgYSBzYWZldHkgem9uZQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2 X3N5c19tYXhfY21kX2xlbiBcLyA0YAorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIg JGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICA7OworKworKyAgaW50ZXJpeCopCisr ICAgICMgV2Uga25vdyB0aGUgdmFsdWUgMjYyMTQ0IGFuZCBoYXJkY29kZSBpdCB3aXRoIGEgc2Fm ZXR5IHpvbmUgKGxpa2UgQlNEKQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTk2NjA4Cisr ICAgIDs7CisrCisrICBvc2YqKQorKyAgICAjIERyLiBIYW5zIEVra2VoYXJkIFBsZXNzZXIgcmVw b3J0cyBzZWVpbmcgYSBrZXJuZWwgcGFuaWMgcnVubmluZyBjb25maWd1cmUKKysgICAgIyBkdWUg dG8gdGhpcyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAxIG9uIFRydTY0LiBJ dCBpcyBub3QKKysgICAgIyBuaWNlIHRvIGNhdXNlIGtlcm5lbCBwYW5pY3Mgc28gbGV0cyBhdm9p ZCB0aGUgbG9vcCBiZWxvdy4KKysgICAgIyBGaXJzdCBzZXQgYSByZWFzb25hYmxlIGRlZmF1bHQu CisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xNjM4NAorKyAgICAjCisrICAgIGlmIHRlc3Qg LXggL3NiaW4vc3lzY29uZmlnOyB0aGVuCisrICAgICAgY2FzZSBgL3NiaW4vc3lzY29uZmlnIC1x IHByb2MgZXhlY19kaXNhYmxlX2FyZ19saW1pdGAgaW4KKysgICAgICAgICoxKikgbHRfY3Zfc3lz X21heF9jbWRfbGVuPS0xIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgICA7OworKyAgc2Nv My4ydjUqKQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTAyNDAwCisrICAgIDs7CisrICBz eXN2NSogfCBzY281djYqIHwgc3lzdjQuMnV3MiopCisrICAgIGthcmdtYXg9YGdyZXAgQVJHX01B WCAvZXRjL2NvbmYvY2YuZC9zdHVuZSAyPi9kZXYvbnVsbGAKKysgICAgaWYgdGVzdCAtbiAiJGth cmdtYXgiOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBlY2hvICRrYXJnbWF4 IHwgc2VkICdzLy4qWyAJXS8vJ2AKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj0zMjc2OAorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPWAoZ2V0Y29uZiBBUkdfTUFYKSAyPiAvZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4g IiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKKysgICAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICBlbHNl CisrICAgICAgU0hFTEw9JHtTSEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0KKysgICAgICB3 aGlsZSAodGVzdCAiWCJgJFNIRUxMICQwIC0tZmFsbGJhY2stZWNobyAiWCR0ZXN0c3RyaW5nIiAy Pi9kZXYvbnVsbGAgXAorKwkgICAgICAgPSAiWFgkdGVzdHN0cmluZyIpID4vZGV2L251bGwgMj4m MSAmJgorKwkgICAgICBuZXdfcmVzdWx0PWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYx YCAmJgorKwkgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49JG5ld19yZXN1bHQgJiYKKysJICAg ICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCisrICAgICAgZG8KKysg ICAgICAgIGk9YGV4cHIgJGkgKyAxYAorKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0 ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQg YSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFj ayBvbiBtYXNzaXZlCisrICAgICAgIyBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJl Zm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlIGxpbmtlci4KKysgICAgICAjIEl0IGFwcGVhcnMgYXMg dGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyAyYAorKyAgICBmaQorKyAgICA7Owor KyAgZXNhYworKworK2ZpCisrCisraWYgdGVzdCAtbiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIDsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3N5c19t YXhfY21kX2xlbiIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vbmUiID4m NQorKyRhc19lY2hvICJub25lIiA+JjY7IH0KKytmaQorKworKworKworKworKworKyMgQ2hlY2sg Zm9yIGNvbW1hbmQgdG8gZ3JhYiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3lt Ym9sIGZyb20gbm0uCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGNvbW1h bmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxl ciBvYmplY3QuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3BpcGUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKworKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0 IGEgZmV3IG9sZCBzeXN0ZW1zLgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291 bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVz Y3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tCQ0RFR1JTVF0nCisr CisrIyBSZWdleHAgdG8gbWF0Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3Rs eSBmcm9tIEMuCisrc3ltcGF0PSdcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKScKKysKKysjIFRy YW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0 aW9uCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eLiAu KiBcKC4qXCkkL2V4dGVybiBpbnQgXDE7L3AnIgorKworKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3Rl ZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcworK2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChb XiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKGx0X3B0cikgMH0sL3AnIC1lICdzL14kc3ltY29kZSBc KFteIF0qXCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9LC9wJyIKKysKKysj IERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKyth aXgqKQorKyAgc3ltY29kZT0nW0JDRFRdJworKyAgOzsKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiopCisrICBzeW1jb2RlPSdbQUJDREdJU1RXXScKKysgIDs7CisraHB1eCopICMgSXRzIGxpbmtl ciBkaXN0aW5ndWlzaGVzIGRhdGEgZnJvbSBjb2RlIHN5bWJvbHMKKysgIGlmIHRlc3QgIiRob3N0 X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgIHN5bWNvZGU9J1tBQkNERUdSU1RdJworKyAgZmkKKysg IGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCgu KlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRl cm4gY2hhciBcMTsvcCciCisrICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRk cmVzcz0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xcXCJcMVxcXCIsIChsdF9wdHIp IDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKFteIF0qXCkkLyAge1wiXDJcIiwg KGx0X3B0cikgXCZcMn0sL3AnIgorKyAgOzsKKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysgICAgc3ltY29kZT0nW0FCQ0RHSVJTVFdd JworKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15U IC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipc KSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xcXCJcMVxcXCIs IChsdF9wdHIpIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKFteIF0qXCkkLyAg e1wiXDJcIiwgKGx0X3B0cikgXCZcMn0sL3AnIgorKyAgZmkKKysgIDs7CisraXJpeCogfCBub25z dG9wdXgqKQorKyAgc3ltY29kZT0nW0JDREVHUlNUXScKKysgIDs7Cisrb3NmKikKKysgIHN5bWNv ZGU9J1tCQ0RFR1FSU1RdJworKyAgOzsKKytzb2xhcmlzKikKKysgIHN5bWNvZGU9J1tCRFJUXScK KysgIDs7Cisrc2NvMy4ydjUqKQorKyAgc3ltY29kZT0nW0RUXScKKysgIDs7Cisrc3lzdjQuMnV3 MiopCisrICBzeW1jb2RlPSdbRFRdJworKyAgOzsKKytzeXN2NSogfCBzY281djYqIHwgdW5peHdh cmUqIHwgT3BlblVOSVgqKQorKyAgc3ltY29kZT0nW0FCRFRdJworKyAgOzsKKytzeXN2NCkKKysg IHN5bWNvZGU9J1tERk5TVFVdJworKyAgOzsKKytlc2FjCisrCisrIyBIYW5kbGUgQ1JMRiBpbiBt aW5ndyB0b29sIGNoYWluCisrb3B0X2NyPQorK2Nhc2UgJGJ1aWxkX29zIGluCisrbWluZ3cqKQor KyAgb3B0X2NyPWBlY2hvICd4XHswLDFcfScgfCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4g cmVnZXhwCisrICA7OworK2VzYWMKKysKKysjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB1 c2UgaXRzIHN0YW5kYXJkIHN5bWJvbCBjb2Rlcy4KKytjYXNlIGAkTk0gLVYgMj4mMWAgaW4KKysq R05VKiB8ICond2l0aCBCRkQnKikKKysgIHN5bWNvZGU9J1tBQkNER0lSU1RXXScgOzsKKytlc2Fj CisrCisrIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcmNvcmUsIHRoZW4gd2l0aCBpdC4KKytm b3IgYWNfc3ltcHJmeCBpbiAiIiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBz eW1wYXQsIGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgorKyAg c3lteGZybT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3JpdGUgdGhlIHJhdyBh bmQgQyBpZGVudGlmaWVycy4KKysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAt biAtZSAncy9eLipbIAldXCgkc3ltY29kZSRzeW1jb2RlKlwpWyAJXVsgCV0qJGFjX3N5bXByZngk c3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisrCisrICAjIENoZWNrIHRvIHNlZSB0aGF0IHRo ZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KKysgIHBpcGVfd29ya3M9bm8KKysKKysgIHJtIC1mIGNv bmZ0ZXN0KgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgorKyNpZmRlZiBfX2NwbHVz cGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorK2NoYXIgbm1fdGVzdF92YXI7Cisrdm9pZCBu bV90ZXN0X2Z1bmMoKXt9CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorK2ludCBt YWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9CisrRU9GCisr CisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+ JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfTsgdGhlbgorKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KKysg ICAgbmxpc3Q9Y29uZnRlc3Qubm0KKysgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVO TzogXCIkTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf cGlwZSBcPiAkbmxpc3RcIiIpID4mNQorKyAgKGV2YWwgJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQg XHwgJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0KSAyPiY1CisrICBhY19z dGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zICIkbmxpc3QiOyB0aGVuCisr ICAgICAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KKysgICAgICBp ZiBzb3J0ICIkbmxpc3QiIHwgdW5pcSA+ICIkbmxpc3QiVDsgdGhlbgorKwltdiAtZiAiJG5saXN0 IlQgIiRubGlzdCIKKysgICAgICBlbHNlCisrCXJtIC1mICIkbmxpc3QiVAorKyAgICAgIGZpCisr CisrICAgICAgIyBNYWtlIHN1cmUgdGhhdCB3ZSBzbmFnZ2VkIGFsbCB0aGUgc3ltYm9scyB3ZSBu ZWVkLgorKyAgICAgIGlmIGdyZXAgJyBubV90ZXN0X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7 IHRoZW4KKysJaWYgZ3JlcCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRo ZW4KKysJICBjYXQgPDxFT0YgPiBjb25mdGVzdC4kYWNfZXh0CisrI2lmZGVmIF9fY3BsdXNwbHVz CisrZXh0ZXJuICJDIiB7CisrI2VuZGlmCisrCisrRU9GCisrCSAgIyBOb3cgZ2VuZXJhdGUgdGhl IHN5bWJvbCBmaWxlLgorKwkgIGV2YWwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVj bCInIDwgIiRubGlzdCIgfCBncmVwIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKKysKKysJ ICBjYXQgPDxFT0YgPj4gY29uZnRlc3QuJGFjX2V4dAorKyNpZiBkZWZpbmVkIChfX1NURENfXykg JiYgX19TVERDX18KKysjIGRlZmluZSBsdF9wdHJfdCB2b2lkICoKKysjZWxzZQorKyMgZGVmaW5l IGx0X3B0cl90IGNoYXIgKgorKyMgZGVmaW5lIGNvbnN0CisrI2VuZGlmCisrCisrLyogVGhlIG1h cHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICovCisrY29uc3Qgc3RydWN0 IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICBsdF9wdHJfdCBhZGRyZXNzOworK30KKytsdF9w cmVsb2FkZWRfc3ltYm9sc1tdID0KKyt7CisrRU9GCisrCSAgJFNFRCAicy9eJHN5bWNvZGUkc3lt Y29kZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAobHRfcHRyX3QpIFwmXDJ9LC8iIDwgIiRu bGlzdCIgfCBncmVwIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dAorKwkgIGNhdCA8PFxFT0Yg Pj4gY29uZnRlc3QuJGFjX2V4dAorKyAgezAsIChsdF9wdHJfdCkgMH0KKyt9OworKworKyNpZmRl ZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWYKKytFT0YKKysJICAjIE5vdyB0cnkgbGlua2luZyB0 aGUgdHdvIGZpbGVzLgorKwkgIG12IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRzdG0uJGFjX29i amV4dAorKwkgIGx0X3NhdmVfTElCUz0iJExJQlMiCisrCSAgbHRfc2F2ZV9DRkxBR1M9IiRDRkxB R1MiCisrCSAgTElCUz0iY29uZnRzdG0uJGFjX29iamV4dCIKKysJICBDRkxBR1M9IiRDRkxBR1Mk bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWciCisrCSAgaWYgeyAoZXZhbCBlY2hvICIk YXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisrICAoZXZhbCAkYWNfbGluaykgMj4m NQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVz dCR7YWNfZXhlZXh0fTsgdGhlbgorKwkgICAgcGlwZV93b3Jrcz15ZXMKKysJICBmaQorKwkgIExJ QlM9IiRsdF9zYXZlX0xJQlMiCisrCSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCisrCWVsc2UK KysJICBlY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JjUKKysJZmkK KysgICAgICBlbHNlCisrCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIg PiY1CisrICAgICAgZmkKKysgICAgZWxzZQorKyAgICAgIGVjaG8gImNhbm5vdCBydW4gJGx0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiID4mNQorKyAgICBmaQorKyAgZWxzZQorKyAgICBlY2hv ICIkcHJvZ25hbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorKyAgICBjYXQgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCisrCisrICAj IERvIG5vdCB1c2UgdGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCisrICBp ZiB0ZXN0ICIkcGlwZV93b3JrcyIgPSB5ZXM7IHRoZW4KKysgICAgYnJlYWsKKysgIGVsc2UKKysg ICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0KKysgIGZpCisrZG9uZQorKworK2ZpCisr CisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrICBs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0KKytmaQorK2lmIHRlc3QgLXogIiRsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNs IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogZmFpbGVkIiA+ JjUKKyskYXNfZWNobyAiZmFpbGVkIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBvayIgPiY1CisrJGFzX2VjaG8gIm9rIiA+JjY7IH0KKytmaQor KworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igb2JqZGlyIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3Igb2JqZGlyLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHtsdF9jdl9vYmpkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgcm0gLWYgLmxpYnMgMj4vZGV2L251bGwKKytta2RpciAubGlicyAy Pi9kZXYvbnVsbAorK2lmIHRlc3QgLWQgLmxpYnM7IHRoZW4KKysgIGx0X2N2X29iamRpcj0ubGli cworK2Vsc2UKKysgICMgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0IGJlZ2lu IHdpdGggYSBkb3QuCisrICBsdF9jdl9vYmpkaXI9X2xpYnMKKytmaQorK3JtZGlyIC5saWJzIDI+ L2Rldi9udWxsCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRf Y3Zfb2JqZGlyIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X29iamRpciIgPiY2OyB9Cisrb2JqZGly PSRsdF9jdl9vYmpkaXIKKysKKysKKysKKysKKysKKytjYXNlICRob3N0X29zIGluCisrYWl4Myop CisrICAjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBw cm9ncmFtLiAgRm9yIHNvbWUKKysgICMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFN RVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcworKyAgIyB2YW5pc2ggaW4gYSBw dWZmIG9mIHNtb2tlLgorKyAgaWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0 OyB0aGVuCisrICAgIENPTExFQ1RfTkFNRVM9CisrICAgIGV4cG9ydCBDT0xMRUNUX05BTUVTCisr ICBmaQorKyAgOzsKKytlc2FjCisrCisrIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMg ZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcworKyMgbWV0YWNoYXJhY3RlcnMg dGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCisrWHNl ZD0nc2VkIC1lIDFzL15YLy8nCisrc2VkX3F1b3RlX3N1YnN0PSdzL1woW1xcIlxcYCRcXFxcXVwp L1xcXDEvZycKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUg cmVmZXJlbmNlcy4KKytkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbXFwiXFxgXFxcXF1cKS9cXFwx L2cnCisrCisrIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2Nh cGVkIHNoZWxsIHZhcmlhYmxlIGluIGEKKysjIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcu CisrZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKKysKKysj IFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQg ZXhwcmVzc2lvbnMKKytub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKKysKKysjIENvbnN0YW50 czoKKytybT0icm0gLWYiCisrCisrIyBHbG9iYWwgdmFyaWFibGVzOgorK2RlZmF1bHRfb2ZpbGU9 bGlidG9vbAorK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCisrCisrIyBBbGwga25vd24gbGlua2VycyBy ZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCisr IyB3aGljaCBuZWVkcyAnLmxpYicpLgorK2xpYmV4dD1hCisrbHRtYWluPSIkYWNfYXV4X2Rpci9s dG1haW4uc2giCisrb2ZpbGU9IiRkZWZhdWx0X29maWxlIgorK3dpdGhfZ251X2xkPSIkbHRfY3Zf cHJvZ19nbnVfbGQiCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWFyIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3By ZWZpeH1hcjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BUitzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQVIi OyB0aGVuCisrICBhY19jdl9wcm9nX0FSPSIkQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisr Zm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVj dXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi OyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQVI9IiR7YWNfdG9vbF9wcmVmaXh9YXIiCisrICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrZmkKKytmaQorK0FSPSRhY19jdl9wcm9nX0FSCisraWYgdGVzdCAtbiAiJEFS IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJEFSIiA+JjUK KyskYXNfZWNobyAiJEFSIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKwor K2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQVIiOyB0aGVuCisrICBhY19jdF9BUj0kQVIK KysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBhcjsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19hY19jdF9BUitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCisrICBhY19jdl9w cm9nX2FjX2N0X0FSPSIkYWNfY3RfQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9ImFyIgorKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBi cmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisr ZmkKKythY19jdF9BUj0kYWNfY3ZfcHJvZ19hY19jdF9BUgorK2lmIHRlc3QgLW4gIiRhY19jdF9B UiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9B UiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9BUiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9 CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQVIiID0geDsgdGhlbgorKyAgICBBUj0iZmFs c2UiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQg aW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBj cm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIEFS PSRhY19jdF9BUgorKyAgZmkKKytlbHNlCisrICBBUj0iJGFjX2N2X3Byb2dfQVIiCisrZmkKKysK KytpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1yYW5saWI7 IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfUkFOTElCK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRSQU5MSUIi OyB0aGVuCisrICBhY19jdl9wcm9nX1JBTkxJQj0iJFJBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19SQU5MSUI9IiR7YWNfdG9vbF9wcmVm aXh9cmFubGliIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytk b25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytSQU5MSUI9JGFjX2N2X3Byb2df UkFOTElCCisraWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRSQU5MSUIiID4mNQorKyRhc19lY2hvICIkUkFOTElCIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFj X2N2X3Byb2dfUkFOTElCIjsgdGhlbgorKyAgYWNfY3RfUkFOTElCPSRSQU5MSUIKKysgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgcmFubGliOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX2FjX2N0X1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgorKyAg YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9IiRhY19jdF9SQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIi CisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X1JBTkxJQj0kYWNfY3ZfcHJvZ19hY19j dF9SQU5MSUIKKytpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1JBTkxJQiIgPiY1CisrJGFzX2VjaG8g IiRhY19jdF9SQU5MSUIiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBp ZiB0ZXN0ICJ4JGFjX2N0X1JBTkxJQiIgPSB4OyB0aGVuCisrICAgIFJBTkxJQj0iOiIKKysgIGVs c2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczop CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xz IG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgUkFOTElCPSRhY19j dF9SQU5MSUIKKysgIGZpCisrZWxzZQorKyAgUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCisr ZmkKKysKKytpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3Qg dGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0 cmlwOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRTVFJJ UCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZp eH1zdHJpcCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9u ZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2dfU1RS SVAKKytpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkU1RSSVAiID4mNQorKyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQorK2Vs c2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJv Z19TVFJJUCI7IHRoZW4KKysgIGFjX2N0X1NUUklQPSRTVFJJUAorKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NU UklQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNf Y3RfU1RSSVA9IiRhY19jdF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu CisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCisrICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ZmkKKytmaQorK2FjX2N0X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQCisraWYgdGVzdCAt biAiJGFjX2N0X1NUUklQIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGFjX2N0X1NUUklQIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7IH0K KytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Cisr JGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIg PSB4OyB0aGVuCisrICAgIFNUUklQPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21w aWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0 cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29s cyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9 eWVzIDs7CisrZXNhYworKyAgICBTVFJJUD0kYWNfY3RfU1RSSVAKKysgIGZpCisrZWxzZQorKyAg U1RSSVA9IiRhY19jdl9wcm9nX1NUUklQIgorK2ZpCisrCisrCisrb2xkX0NDPSIkQ0MiCisrb2xk X0NGTEFHUz0iJENGTEFHUyIKKysKKysjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZh cmlhYmxlcworK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKKyt0ZXN0IC16ICIkQVJfRkxBR1MiICYm IEFSX0ZMQUdTPWNydQorK3Rlc3QgLXogIiRBUyIgJiYgQVM9YXMKKyt0ZXN0IC16ICIkQ0MiICYm IENDPWNjCisrdGVzdCAteiAiJExUQ0MiICYmIExUQ0M9JENDCisrdGVzdCAteiAiJExUQ0ZMQUdT IiAmJiBMVENGTEFHUz0kQ0ZMQUdTCisrdGVzdCAteiAiJERMTFRPT0wiICYmIERMTFRPT0w9ZGxs dG9vbAorK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKKyt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0i bG4gLXMiCisrdGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUKKyt0ZXN0IC16 ICIkTk0iICYmIE5NPW5tCisrdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK3Rlc3QgLXogIiRP QkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKyt0ZXN0IC16ICIkUkFOTElCIiAmJiBSQU5MSUI9 OgorK3Rlc3QgLXogIiRTVFJJUCIgJiYgU1RSSVA9OgorK3Rlc3QgLXogIiRhY19vYmpleHQiICYm IGFjX29iamV4dD1vCisrCisrIyBEZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRlIG9sZC1zdHls ZSBzdGF0aWMgYXJjaGl2ZXMuCisrb2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9GTEFHUyAkb2xk bGliJG9sZG9ianMnCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xkbGliJwor K29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9CisrCisraWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4K KysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIG9wZW5ic2QqKQorKyAgICBvbGRfcG9zdGluc3RhbGxf Y21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgorKyAgICA7 OworKyAgKikKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21k c35cJFJBTkxJQiBcJG9sZGxpYiIKKysgICAgOzsKKysgIGVzYWMKKysgIG9sZF9hcmNoaXZlX2Nt ZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xkbGliIgorK2ZpCisrCisrZm9yIGNj X3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCisrICBjYXNlICRjY190ZW1wIGluCisrICAgIGNvbXBp bGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsKKysgICAgZGlz dGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKysgICAgXC0q KSA7OworKyAgICAqKSBicmVhazs7CisrICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkZWNo byAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUi YAorKworKworKyMgT25seSBwZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNr IG1ldGhvZCByZXF1aXJlcyBpdAorK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrZmls ZV9tYWdpYyopCisrICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0 aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJHthY190 b29sX3ByZWZpeH1maWxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJHthY190b29s X3ByZWZpeH1maWxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX01BR0lDX0NN RCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBjYXNlICRNQUdJQ19DTUQgaW4KKytbXFwvKl0gfCAgPzpbXFwvXSopCisrICBsdF9jdl9w YXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3Qgd2l0aCBhIHBhdGguCisrICA7OworKyopCisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lD X0NNRCIKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgYWNf ZHVtbXk9Ii91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgiCisrICBmb3IgYWNfZGlyIGluICRh Y19kdW1teTsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIHRlc3QgLXogIiRhY19k aXIiICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4 fWZpbGU7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8ke2FjX3Rv b2xfcHJlZml4fWZpbGUiCisrICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxl IjsgdGhlbgorKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorKwkiZmlsZV9tYWdpYyAi KikKKysJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDog ImZpbGVfbWFnaWMgXCguKlwpImAKKysJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NN RCIKKysJICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+ IC9kZXYvbnVsbCB8CisrCSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVs bDsgdGhlbgorKwkgICAgOgorKwkgIGVsc2UKKysJICAgIGNhdCA8PEVPRiAxPiYyCisrCisrKioq IFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJh cmllcywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29s IGNhbm5vdCByZWNvZ25pemUuCisrKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBm YWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCisrKioqIGFzIHN1Y2guICBUaGlzIHdp bGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0CisrKioqIGRl cGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBs aWJ0b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2Js ZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2Js ZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KKysqKiogYnVnLWxpYnRvb2xAZ251 Lm9yZworKworK0VPRgorKwkgIGZpIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGJyZWFr CisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgIE1BR0lDX0NNRD0i JGx0X3NhdmVfTUFHSUNfQ01EIgorKyAgOzsKKytlc2FjCisrZmkKKysKKytNQUdJQ19DTUQ9IiRs dF9jdl9wYXRoX01BR0lDX0NNRCIKKytpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CisrJGFz X2VjaG8gIiRNQUdJQ19DTUQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr aWYgdGVzdCAteiAiJGx0X2N2X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgorKyAgaWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIGZpbGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBmaWxlLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRNQUdJ Q19DTUQgaW4KKytbXFwvKl0gfCAgPzpbXFwvXSopCisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0i JE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGgu CisrICA7OworKyopCisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3Nh dmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgYWNfZHVtbXk9Ii91c3IvYmlu JFBBVEhfU0VQQVJBVE9SJFBBVEgiCisrICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KKysg ICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0u CisrICAgIGlmIHRlc3QgLWYgJGFjX2Rpci9maWxlOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9N QUdJQ19DTUQ9IiRhY19kaXIvZmlsZSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190 ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJmaWxl X21hZ2ljICIqKQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21l dGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhf TUFHSUNfQ01EIgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0 X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4g L2Rldi9udWxsOyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8RU9GIDE+JjIK KysKKysqKiogV2FybmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFy ZWQgbGlicmFyaWVzLAorKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0 IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KKysqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRv b2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMKKysqKiogYXMgc3VjaC4g IFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQK KysqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0 aCBzdWNoIGxpYnRvb2wKKysqKiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRo aXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91CisrKioqIG1heSB3YW50IHRvIHJlcG9ydCB0 aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bworKyoqKiBidWctbGli dG9vbEBnbnUub3JnCisrCisrRU9GCisrCSAgZmkgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAg ICAgYnJlYWsKKysgICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgTUFH SUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCisrICA7OworK2VzYWMKKytmaQorKworK01BR0lD X0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUFHSUNfQ01EIiA+ JjUKKyskYXNfZWNobyAiJE1BR0lDX0NNRCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9Cisr ZmkKKysKKysgIGVsc2UKKysgICAgTUFHSUNfQ01EPToKKysgIGZpCisrZmkKKysKKysgIGZpCisr ICA7OworK2VzYWMKKysKKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgcmhhcHNvZHkqIHwg ZGFyd2luKikKKysgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29s X3ByZWZpeH1kc3ltdXRpbDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19EU1lNVVRJTCtzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC1uICIkRFNZTVVUSUwiOyB0aGVuCisrICBhY19jdl9wcm9nX0RTWU1VVElMPSIkRFNZ TVVUSUwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfRFNZTVVUSUw9IiR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWwiCisrICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ZmkKKytmaQorK0RTWU1VVElMPSRhY19jdl9wcm9nX0RTWU1VVElMCisraWYgdGVzdCAtbiAiJERT WU1VVElMIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJERT WU1VVElMIiA+JjUKKyskYXNfZWNobyAiJERTWU1VVElMIiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfRFNZTVVUSUwi OyB0aGVuCisrICBhY19jdF9EU1lNVVRJTD0kRFNZTVVUSUwKKysgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiZHN5bXV0aWwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgorK3NldCBkdW1teSBkc3ltdXRpbDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19j dF9EU1lNVVRJTCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCisrICBhY19j dl9wcm9nX2FjX2N0X0RTWU1VVElMPSIkYWNfY3RfRFNZTVVUSUwiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUw9ImRzeW11 dGlsIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisr SUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9EU1lNVVRJTD0kYWNfY3ZfcHJv Z19hY19jdF9EU1lNVVRJTAorK2lmIHRlc3QgLW4gIiRhY19jdF9EU1lNVVRJTCI7IHRoZW4KKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9EU1lNVVRJTCIgPiY1 CisrJGFzX2VjaG8gIiRhY19jdF9EU1lNVVRJTCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9 CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfRFNZTVVUSUwiID0geDsgdGhlbgorKyAgICBE U1lNVVRJTD0iOiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29s X3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMK KysgICAgRFNZTVVUSUw9JGFjX2N0X0RTWU1VVElMCisrICBmaQorK2Vsc2UKKysgIERTWU1VVElM PSIkYWNfY3ZfcHJvZ19EU1lNVVRJTCIKKytmaQorKworKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9v bF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9v bF9wcmVmaXh9bm1lZGl0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4K KytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1ubWVkaXQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2 X3Byb2dfTk1FRElUK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiROTUVESVQiOyB0aGVuCisrICBhY19jdl9wcm9n X05NRURJVD0iJE5NRURJVCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxz ZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGlu ICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysg ICAgYWNfY3ZfcHJvZ19OTUVESVQ9IiR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0IgorKyAgICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lG UworKworK2ZpCisrZmkKKytOTUVESVQ9JGFjX2N2X3Byb2dfTk1FRElUCisraWYgdGVzdCAtbiAi JE5NRURJVCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRO TUVESVQiID4mNQorKyRhc19lY2hvICIkTk1FRElUIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfTk1FRElUIjsgdGhl bgorKyAgYWNfY3RfTk1FRElUPSROTUVESVQKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAibm1lZGl0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQg ZHVtbXkgbm1lZGl0OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X05NRURJVCtzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC1uICIkYWNfY3RfTk1FRElUIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9OTUVE SVQ9IiRhY19jdF9OTUVESVQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUPSJubWVkaXQiCisrICAgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAg IGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkK KytmaQorK2FjX2N0X05NRURJVD0kYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQKKytpZiB0ZXN0IC1u ICIkYWNfY3RfTk1FRElUIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGFjX2N0X05NRURJVCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9OTUVESVQiID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X05NRURJ VCIgPSB4OyB0aGVuCisrICAgIE5NRURJVD0iOiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3Nf Y29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3Mg dG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2Fy bmVkPXllcyA7OworK2VzYWMKKysgICAgTk1FRElUPSRhY19jdF9OTUVESVQKKysgIGZpCisrZWxz ZQorKyAgTk1FRElUPSIkYWNfY3ZfcHJvZ19OTUVESVQiCisrZmkKKysKKysKKysgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIg ZmxhZyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtl ciBmbGFnLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9k K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9bm8KKysgICAgICBpZiB0ZXN0IC16ICIke0xU X01VTFRJX01PRFVMRX0iOyB0aGVuCisrICAgIyBCeSBkZWZhdWx0IHdlIHdpbGwgYWRkIHRoZSAt c2luZ2xlX21vZHVsZSBmbGFnLiBZb3UgY2FuIG92ZXJyaWRlCisrICAgIyBieSBlaXRoZXIgc2V0 dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTFRfTVVMVElfTU9EVUxFCisrICAgIyBub24t ZW1wdHkgYXQgY29uZmlndXJlIHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxlIHRvIHRo ZQorKyAgICMgbGluayBmbGFncy4KKysgICBlY2hvICJpbnQgZm9vKHZvaWQpe3JldHVybiAxO30i ID4gY29uZnRlc3QuYworKyAgICRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVz dC5keWxpYiBcCisrICAgICAtZHluYW1pY2xpYiAke3dsfS1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0 LmMKKysgICBpZiB0ZXN0IC1mIGxpYmNvbmZ0ZXN0LmR5bGliOyB0aGVuCisrICAgICBsdF9jdl9h cHBsZV9jY19zaW5nbGVfbW9kPXllcworKyAgICAgcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgor KyAgIGZpCisrICAgcm0gY29uZnRlc3QuYworKyAgICAgIGZpCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA+JjY7IH0KKysgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0 IGxpbmtlciBmbGFnIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgLWV4cG9ydGVkX3N5 bWJvbHNfbGlzdCBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfbGRf ZXhwb3J0ZWRfc3ltYm9sc19saXN0K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1u bworKyAgICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUworKyAgICAgIGVjaG8gIl9tYWluIiA+IGNv bmZ0ZXN0LnN5bQorKyAgICAgIExERkxBR1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3ltYm9s c19saXN0LGNvbmZ0ZXN0LnN5bSIKKysgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4g MDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l eGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJ IHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9 eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlsdF9jdl9sZF9leHBv cnRlZF9zeW1ib2xzX2xpc3Q9bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2Nv bmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAor KyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA+JjUKKysk YXNfZWNobyAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPiY2OyB9CisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEyM10pCisrICAgICAg X2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7 OworKyAgICBkYXJ3aW4xLiopCisrICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0t ZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7CisrICAgIGRh cndpbiopCisrICAgICAgIyBpZiBydW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRoZSBkZXBsb3lt ZW50IHRhcmdldCBkZWZhdWx0cworKyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24sIGlmIG9uIHg4 NiwgYW5kIDEwLjQsIHRoZSBkZXBsb3ltZW50CisrICAgICAgIyB0YXJnZXQgZGVmYXVsdHMgdG8g MTAuNC4gRG9uJ3QgeW91IGxvdmUgaXQ/CisrICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5U X1RBUkdFVC0xMC4wfSwkaG9zdCBpbgorKyAgIDEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFy d2luWzkxXSopCisrICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVk ICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisrICAgMTAuWzAxMl0qKQorKyAgICAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3ds fXN1cHByZXNzJyA7OworKyAgIDEwLiopCisrICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0n JHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAg ICA7OworKyAgZXNhYworKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIg PSAieWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUn CisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Qi ID0gInllcyI7IHRoZW4KKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0 ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0n CisrICAgIGVsc2UKKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSJ+JE5NRURJVCAtcyBcJG91 dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gXCR7bGlifSIKKysgICAgZmkK KysgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0 aWw9In4kRFNZTVVUSUwgXCRsaWIgfHwgOiIKKysgICAgZWxzZQorKyAgICAgIF9sdF9kc3ltdXRp bD0KKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysKKysKKytlbmFibGVfZGxvcGVuPW5vCisr ZW5hYmxlX3dpbjMyX2RsbD1ubworKworKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1saWJ0b29s LWxvY2sgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2xpYnRvb2xfbG9jaytzZXR9IiA9 IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfbGlidG9vbF9sb2NrOworK2ZpCisrCisr dGVzdCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9j az15ZXMKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLXBpYyB3YXMgZ2l2ZW4uCisraWYg dGVzdCAiJHt3aXRoX3BpYytzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9waWM7 IHBpY19tb2RlPSIkd2l0aHZhbCIKKytlbHNlCisrICBwaWNfbW9kZT1kZWZhdWx0CisrZmkKKysK Kyt0ZXN0IC16ICIkcGljX21vZGUiICYmIHBpY19tb2RlPWRlZmF1bHQKKysKKysjIFVzZSBDIGZv ciB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIGluIHRoZSBsaWJ0b29sIHNjcmlwdAorK3RhZ25h bWU9CisrbHRfc2F2ZV9DQz0iJENDIgorK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFH UycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9n bnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24g Zm9yIEMgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNp b24gZm9yIGNvbXBpbGVkIEMgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrb2JqZXh0PSRvYmpl eHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3Np bXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysjIENv ZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3Rf Y29kZT0naW50IG1haW4oKXtyZXR1cm4oMCk7fScKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIg d2FzIHNwZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8g QyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0k e0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworKworKworKyMgc2F2ZSB3YXJuaW5ncy9i b2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRh Y19leHQKKytldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7 IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBj b25mdGVzdC5lcnJgCisrJHJtIGNvbmZ0ZXN0KgorKworK2FjX291dGZpbGU9Y29uZnRlc3QuJGFj X29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNf ZXh0CisrZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0 LmVycmAKKyskcm0gLXIgY29uZnRlc3QqCisrCisrCisrCisrbHRfcHJvZ19jb21waWxlcl9ub19i dWlsdGluX2ZsYWc9CisrCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIGx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPScgLWZuby1idWlsdGluJworKworKworK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1y dHRpIC1mbm8tZXhjZXB0aW9ucyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBp bGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2df Y29tcGlsZXJfcnR0aV9leGNlcHRpb25zPW5vCisrICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19v YmpleHQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0 LiRhY19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSItZm5vLXJ0dGkgLWZuby1leGNlcHRpb25z IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxB R1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25m dGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBp dHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRo IGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNv cnJlY3RseS4KKysgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0 byBhdm9pZCBjb25mdXNpbmcgc2VkLgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxl IiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFn IDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6 OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hv ICJcIlwkYXNfbWU6ODE3NTogJGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29t cGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6ODE3OTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisr ICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBp ZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdz IG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KKysgICAgICRlY2hvICJYJF9sdF9jb21waWxl cl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRT RUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIg Pi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0 aW9ucz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAkcm0gY29uZnRlc3QqCisrCisrZmkKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9y dHRpX2V4Y2VwdGlvbnMiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRp X2V4Y2VwdGlvbnMiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9y dHRpX2V4Y2VwdGlvbnMiID0geHllczsgdGhlbgorKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1 aWx0aW5fZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIC1mbm8tcnR0aSAt Zm5vLWV4Y2VwdGlvbnMiCisrZWxzZQorKyAgICA6CisrZmkKKysKKytmaQorKworK2x0X3Byb2df Y29tcGlsZXJfd2w9CisrbHRfcHJvZ19jb21waWxlcl9waWM9CisrbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkY29t cGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAiID4mNjsgfQorKworKyAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcK KysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCisrCisrICAgIGNhc2UgJGhv c3Rfb3MgaW4KKysgICAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBw b3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMn CisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICAjIEZJWE1F OiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNvZGUgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcywg YnV0CisrICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBi dWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCisrICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KKysgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0 b3JlLWE0JworKyAgICAgIDs7CisrCisrICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9u c3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVm YXVsdCBmb3IgdGhlc2UgT1Nlcy4KKysgICAgICA7OworKworKyAgICBtaW5ndyogfCBjeWd3aW4q IHwgcHczMiogfCBvczIqKQorKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJj ZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKysgICAgICAjIGJ1aWx0IGZvciBp bmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUp LgorKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwg bmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKKysgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQp IGxpYnJhcmllcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCisr ICAgICAgOzsKKysKKysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisrICAgICAgIyBDb21tb24gc3ltYm9scyBub3Qg YWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSct Zm5vLWNvbW1vbicKKysgICAgICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAgICAgICMg SW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUu CisrICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRp bWUuCisrICAgICAgOzsKKysKKysgICAgbXNkb3NkamdwcCopCisrICAgICAgIyBKdXN0IGJlY2F1 c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJp ZXMKKysgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0uCisrICAgICAg bHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZW5hYmxlX3NoYXJl ZD1ubworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91 c3IvbmVjOyB0aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPS1LY29uZm9ybV9waWMKKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZh dWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAorKyAgICAgICMgbm90IGZv ciBQQSBIUC1VWC4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQqfGlh NjQqKQorKwkjICtaIHRoZSBkZWZhdWx0CisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICAq KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKKysgICAgICA7OworKyAgICBl c2FjCisrICBlbHNlCisrICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2Vy IGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KKysgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICBhaXgqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAg aWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJIyBBSVggNSBub3cgc3VwcG9ydHMg SUE2NCBwcm9jZXNzb3IKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAg ICAgIGVsc2UKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ibnNvIC1iSTovbGliL3N5c2Nh bGxzLmV4cCcKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgICAgZGFyd2luKikKKysgICAgICAg ICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAgICMgQ29tbW9u IHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysgICAgICAgICB4bGMqKQorKyAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJf cGljPSctcW5vY29tbW9uJworKyAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisr ICAgICAgICAgOzsKKysgICAgICAgZXNhYworKyAgICAgICA7OworKworKyAgICBtaW5ndyogfCBj eWd3aW4qIHwgcHczMiogfCBvczIqKQorKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhl IHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKysgICAgICAjIGJ1aWx0 IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4 YW1wbGUpLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCisrICAg ICAgOzsKKysKKysgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAgICAgbHRfcHJv Z19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2 NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVgu CisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyAr WiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPScr WicKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgIyBJcyB0aGVyZSBhIGJldHRlciBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/CisrICAgICAg bHRfcHJvZ19jb21waWxlcl9zdGF0aWM9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworKyAgICAgIDs7 CisrCisrICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAgbHRfcHJvZ19j b21waWxlcl93bD0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1 bHQuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAgICAg IDs7CisrCisrICAgIG5ld3NvczYpCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElD JworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICA7Owor KworKyAgICBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu CisrICAgICAgaWNjKiB8IGVjYyopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0 X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1z dGF0aWMnCisrICAgICAgICA7OworKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdm OTUqKQorKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50 aXVtIGdjYyBjb21waWxlciwKKysJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkK KysJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1m cGljJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgICA7Owor KyAgICAgIGNjYyopCisrICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICAg ICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCisrICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nLW5vbl9zaGFyZWQnCisrICAgICAgICA7OworKyAgICAgICopCisrICAgICAgICBjYXNl IGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJKlN1blwgQyopCisrCSAgIyBTdW4gQyA1LjkK KysJICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrCSAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9Jy1Cc3RhdGljJworKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCSAgOzsK KysJKlN1blwgRiopCisrCSAgIyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29nbml6 ZWQgZmxhZ3MgdG8gdGhlIGxpbmtlcgorKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycK KysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrCSAgbHRfcHJvZ19jb21w aWxlcl93bD0nJworKwkgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsK KysKKysgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf d2w9Jy1XbCwnCisrICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCisrICAgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHJkb3Mq KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKKysgICAgICA7 OworKworKyAgICBzb2xhcmlzKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMn CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQorKwlsdF9wcm9nX2Nv bXBpbGVyX3dsPSctUW9wdGlvbiBsZCAnOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVy X3dsPSctV2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJworKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfcGljPSctUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0 YXRpYycKKysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyop CisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBp bGVyX3BpYz0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGlj JworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3Iv bmVjIDt0aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctS2NvbmZvcm1fcGljJworKwlsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKwor KyAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgq KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRp YycKKysgICAgICA7OworKworKyAgICB1bmljb3MqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf d2w9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisr ICAgICAgOzsKKysKKysgICAgdXRzNCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1w aWMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7 CisrCisrICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5v CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkbHRfcHJvZ19jb21waWxlcl9waWMiID4mNQorKyRhc19lY2hvICIkbHRf cHJvZ19jb21waWxlcl9waWMiID4mNjsgfQorKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0 aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2Nv bXBpbGVyX3BpYyI7IHRoZW4KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpYyB3b3JrcyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2Nv bXBpbGVyX3BpYyB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21w aWxlcl9waWNfd29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3M9bm8KKysgIGFj X291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGls ZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRs dF9wcm9nX2NvbXBpbGVyX3BpYyAtRFBJQyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhl ciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9y ZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAg IyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNo ZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBz byB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJl ZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9j b21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7 MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRl c3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxl cl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjg0NjU6ICRsdF9jb21waWxlXCIi ID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0 YXR1cz0kPworKyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjg0Njk6 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3Qg LXMgIiRhY19vdXRmaWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2Fy biBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5 IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisr ICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9k JyA+Y29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJy ID5jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBj b25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3Zf cHJvZ19jb21waWxlcl9waWNfd29ya3M9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJHJtIGNv bmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0 X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2df Y29tcGlsZXJfcGljX3dvcmtzIiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29t cGlsZXJfcGljX3dvcmtzIiA9IHh5ZXM7IHRoZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxl cl9waWMgaW4KKysgICAgICIiIHwgIiAiKikgOzsKKysgICAgICopIGx0X3Byb2dfY29tcGlsZXJf cGljPSIgJGx0X3Byb2dfY29tcGlsZXJfcGljIiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAg bHRfcHJvZ19jb21waWxlcl9waWM9CisrICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9z aGFyZWQ9bm8KKytmaQorKworK2ZpCisrY2FzZSAkaG9zdF9vcyBpbgorKyAgIyBGb3IgcGxhdGZv cm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6CisrICAq ZGpncHAqKQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KKysgICAgOzsKKysgICopCisrICAg IGx0X3Byb2dfY29tcGlsZXJfcGljPSIkbHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCisrICAg IDs7CisrZXNhYworKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcg YWN0dWFsbHkgd29ya3MuCisrIworK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgbHRfdG1w X3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBf c3RhdGljX2ZsYWcgd29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxl ciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcytzZXR9IiA9IHNldDsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2Nv bXBpbGVyX3N0YXRpY193b3Jrcz1ubworKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAg TERGTEFHUz0iJExERkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKKysgICBlY2hvICIkbHRfc2lt cGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNf bGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4K KysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBp ZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdz CisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBh bnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+ JjUKKysgICAgICAgJGVjaG8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAn L14kL2QnID4gY29uZnRlc3QuZXhwCisrICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25m dGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25m dGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJf c3RhdGljX3dvcmtzPXllcworKyAgICAgICBmaQorKyAgICAgZWxzZQorKyAgICAgICBsdF9jdl9w cm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAkcm0g LXIgY29uZnRlc3QqCisrICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRp Y193b3JrcyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr cyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr cyIgPSB4eWVzOyB0aGVuCisrICAgIDoKKytlbHNlCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljPQorK2ZpCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlm ICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2 X3Byb2dfY29tcGlsZXJfY19vPW5vCisrICAgJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisr ICAgbWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAorKyAgIGVj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKwor KyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKysgICAj IEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlh YmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwg b3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRv ZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxh ciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHku CisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6 LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBb XiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAnczokOiAk bHRfY29tcGlsZXJfZmxhZzonYAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo4NTY5OiAkbHRf Y29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5l cnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1CisrICAg ZWNobyAiJGFzX21lOjg1NzM6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRh Y19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAgdGhlbgor KyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24g aWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5n cworKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcv XiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0 L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9j b25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9k ZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15ZXMKKysgICAg IGZpCisrICAgZmkKKysgICBjaG1vZCB1K3cgLiAyPiY1CisrICAgJHJtIGNvbmZ0ZXN0KgorKyAg ICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBm b3IKKysgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KKysgICB0ZXN0IC1kIG91dC9paV9maWxl cyAmJiAkcm0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisrICAgJHJtIG91 dC8qICYmIHJtZGlyIG91dAorKyAgIGNkIC4uCisrICAgcm1kaXIgY29uZnRlc3QKKysgICAkcm0g Y29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk bHRfY3ZfcHJvZ19jb21waWxlcl9jX28iID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21w aWxlcl9jX28iID4mNjsgfQorKworKworK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIKKytpZiB0ZXN0 ICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX28iID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9 IG5vOyB0aGVuCisrICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3Mg cHJvdmlkZWQgYnkgdGhlIHVzZXIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQorKyAgaGFy ZF9saW5rcz15ZXMKKysgICRybSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3Qu YiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5hCisrICBs biBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBsbiBjb25m dGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQorKyRhc19lY2hv ICIkaGFyZF9saW5rcyIgPiY2OyB9CisrICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsgdGhl bgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGAkQ0MnIGRvZXMg bm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAt bycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KKysgICAgbmVlZF9sb2Nrcz13 YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorKworK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgk TEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJh cmllcy4uLiAiID4mNjsgfQorKworKyAgcnVucGF0aF92YXI9CisrICBhbGxvd191bmRlZmluZWRf ZmxhZz0KKysgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9bm8KKysgIGFyY2hp dmVfY21kcz0KKysgIGFyY2hpdmVfZXhwc3ltX2NtZHM9CisrICBvbGRfYXJjaGl2ZV9Gcm9tX25l d19jbWRzPQorKyAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9CisrICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9CisrICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysgIHRocmVhZF9z YWZlX2ZsYWdfc3BlYz0KKysgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9CisrICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkPQorKyAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KKysg IGhhcmRjb2RlX2RpcmVjdD1ubworKyAgaGFyZGNvZGVfbWludXNfTD1ubworKyAgaGFyZGNvZGVf c2hsaWJwYXRoX3Zhcj11bnN1cHBvcnRlZAorKyAgbGlua19hbGxfZGVwbGlicz11bmtub3duCisr ICBoYXJkY29kZV9hdXRvbWF0aWM9bm8KKysgIG1vZHVsZV9jbWRzPQorKyAgbW9kdWxlX2V4cHN5 bV9jbWRzPQorKyAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5vCisrICBleHBvcnRfc3ltYm9sc19j bWRzPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRT RUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAj IGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1i b2xzIHRvIGJlICphbHdheXMqCisrICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAorKyAg aW5jbHVkZV9leHBzeW1zPQorKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVk IHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUKKysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5 IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMg ZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1i b2xzIGBhJyBhbmQgYGJjJywKKysgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFp bnMgYGQnLgorKyAgZXhjbHVkZV9leHBzeW1zPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JB TF9fRltJRF1fLionCisrICAjIEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZh bGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5vdXQKKysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQg aW4gUElDIGNvZGUsIGJ1dCB0aGVpciBsaW5rZXJzIGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUg c3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fu bm90CisrICAjIHJlbHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRv IG5ldmVyIGluY2x1ZGUgaXQgaW4KKysgICMgcHJlbG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAj IEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJv bHMuCisrICBleHRyYWN0X2V4cHN5bXNfY21kcz0KKysgICMgSnVzdCBiZWluZyBwYXJhbm9pZCBh Ym91dCBlbnN1cmluZyB0aGF0IGNjX2Jhc2VuYW1lIGlzIHNldC4KKysgIGZvciBjY190ZW1wIGlu ICRjb21waWxlciIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltc XC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisrICAgIGRpc3RjYyB8ICpb XFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7CisrICAgIFwtKikgOzsKKysg ICAgKikgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2Nf dGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKKysKKysg IGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKysgICAgIyBG SVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGlt ZQorKyAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdl IGFyZSB1c2luZworKyAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAgICBpZiB0ZXN0ICIk R0NDIiAhPSB5ZXM7IHRoZW4KKysgICAgICB3aXRoX2dudV9sZD1ubworKyAgICBmaQorKyAgICA7 OworKyAgaW50ZXJpeCopCisrICAgICMgd2UganVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBh bmQgbm90IGM4OSAoPSBNU1ZDKyspCisrICAgIHdpdGhfZ251X2xkPXllcworKyAgICA7OworKyAg b3BlbmJzZCopCisrICAgIHdpdGhfZ251X2xkPW5vCisrICAgIDs7CisrICBlc2FjCisrCisrICBs ZF9zaGxpYnM9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAg ICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5 CisrICAgIHdsYXJjPScke3dsfScKKysKKysgICAgIyBTZXQgc29tZSBkZWZhdWx0cyBmb3IgR05V IGxkIHdpdGggc2hhcmVkIGxpYnJhcnkgc3VwcG9ydC4gVGhlc2UKKysgICAgIyBhcmUgcmVzZXQg bGF0ZXIgaWYgc2hhcmVkIGxpYnJhcmllcyBhcmUgbm90IHN1cHBvcnRlZC4gUHV0dGluZyB0aGVt CisrICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4K KysgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrICAgICMgYW5jaWVudCBHTlUgbGQgZGlk bid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KKysgICAgaWYgJExEIC0taGVscCAy PiYxIHwgZ3JlcCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKysJd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWM9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICci JHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrICAgICAgZWxzZQorKyAgCXdob2xlX2FyY2hp dmVfZmxhZ19zcGVjPQorKyAgICBmaQorKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8K KysgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgorKyAgICAgICpcIFswMV0uKiB8ICpc IDIuWzAtOV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKKysgICAg ICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJI Ny4zIC4uLgorKyAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9u aW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KKysgICAgICAqXCAyLjExLiopIDs7ICMgb3Ro ZXIgMi4xMSB2ZXJzaW9ucworKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMg OzsKKysgICAgZXNhYworKworKyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxp YnJhcmllcy4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXhbMy05XSopCisrICAgICAg IyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgorKyAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8RU9G IDE+JjIKKysKKysqKiogV2FybmluZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRvIHJl bGVhc2UgMi45LjEsIGlzIHJlcG9ydGVkCisrKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJseSBj cmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisrKioqIFRoZXJlZm9yZSwgbGlidG9vbCBp cyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisrKioqIHJlYWxs eSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIg UEFUSAorKyoqKiBzbyB0aGF0IGEgbm9uLUdOVSBsaW5rZXIgaXMgZm91bmQsIGFuZCB0aGVuIHJl c3RhcnQuCisrCisrRU9GCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikK KysgICAgICBhcmNoaXZlX2NtZHM9JyRybSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRlY2hvICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJh cnkuZGF0YX4kZWNobyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2Ey aXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRf b2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9u IiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAk bGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0z MiknCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAg IGhhcmRjb2RlX21pbnVzX0w9eWVzCisrCisrICAgICAgIyBTYW11ZWwgQS4gRmFsdm8gSUkgPGtj NXRqYUBkb2xwaGluLm9wZW5wcm9qZWN0cy5uZXQ+IHJlcG9ydHMKKysgICAgICAjIHRoYXQgdGhl IHNlbWFudGljcyBvZiBkeW5hbWljIGxpYnJhcmllcyBvbiBBbWlnYU9TLCBhdCBsZWFzdCB1cAor KyAgICAgICMgdG8gdmVyc2lvbiA0LCBpcyB0byBzaGFyZSBkYXRhIGFtb25nIG11bHRpcGxlIHBy b2dyYW1zIGxpbmtlZAorKyAgICAgICMgd2l0aCB0aGUgc2FtZSBkeW5hbWljIGxpYnJhcnkuICBT aW5jZSB0aGlzIGRvZXNuJ3QgbWF0Y2ggdGhlCisrICAgICAgIyBiZWhhdmlvciBvZiBzaGFyZWQg bGlicmFyaWVzIG9uIG90aGVyIHBsYXRmb3Jtcywgd2UgY2FuJ3QgdXNlCisrICAgICAgIyB0aGVt LgorKyAgICAgIGxkX3NobGlicz1ubworKyAgICAgIDs7CisrCisrICAgIGJlb3MqKQorKyAgICAg IGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+ IC9kZXYvbnVsbDsgdGhlbgorKwlhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKwkj IEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2Yg Z2NjCisrCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3Rp Z2F0aW9uLiAgRklYTUUKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisr ICAgICAgZWxzZQorKwlsZF9zaGxpYnM9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAg IGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKysgICAgICAjIF9MVF9BQ19UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKysgICAgICAj IGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11 bnN1cHBvcnRlZAorKyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz1ubworKyAgICAgIGVuYWJs ZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9eWVzCisrICAgICAgZXhwb3J0X3N5bWJvbHNf Y21kcz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAk U0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS8nXCcnIC1l ICdcJycvXltBSVRXXVsgXS9zLy4qWyBdLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5 bWJvbHMnCisrCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBvcnQn ID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxp bmtlciAkbGliJworKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAu ZGVmIGZpbGUgKDFzdCBsaW5lCisrCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3 aXNlLCBwcmVwZW5kLi4uCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2lmIHRlc3QgInhgJFNFRCAx cSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCisrCSAgY3AgJGV4cG9ydF9zeW1i b2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwllbHNlCisrCSAgZWNobyBFWFBPUlRT ID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCSAgY2F0ICRleHBvcnRfc3ltYm9scyA+ PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJZml+CisrCSRDQyAtc2hhcmVkICRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1Y bGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hs aWJzPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAg ICAgIGhhcmRjb2RlX2RpcmVjdD1ubworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJwor KyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysgICAgICAjIEhhY2s6 IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tl biBnY2MuCisrICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQg YW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQorKyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9j YXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysgICAg ICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdl IHBpY2sgYSByYW5kb20sCisrICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3 ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluaworKyAgICAgICMgdGltZS4gIE1v dmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgor KyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKKysgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1i b2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0t cmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0t aW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQy MTc3MjgwYCAtbyAkbGliJworKyAgICAgIDs7CisrCisrICAgIGdudSogfCBsaW51eCogfCBrKmJz ZCotZ251KQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRh cmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwl0bXBfYWRkZmxhZz0KKysJY2FzZSAk Y2NfYmFzZW5hbWUsJGhvc3RfY3B1IGluCisrCXBnY2MqKQkJCQkjIFBvcnRsYW5kIEdyb3VwIEMg Y29tcGlsZXIKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hp dmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYm IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8g XCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgIHRtcF9h ZGRmbGFnPScgJHBpY19mbGFnJworKwkgIDs7CisrCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJ IyBQb3J0bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKKysJICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNl XCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29u dmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9 LS1uby13aG9sZS1hcmNoaXZlJworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWlu JyA7OworKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJCSMgSW50ZWwgQyBjb21waWxlciBvbiBp YTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZv cnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRm bGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIElu dGVsIEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7Owor Kwllc2FjCisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikJCQkj IFN1biBDIDUuOQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJj aGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0 ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRj b252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUt YXJjaGl2ZScKKysJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CisrCSpTdW5cIEYqKQkJCSMgU3Vu IEZvcnRyYW4gOC4zCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkqKQorKwkgIHRtcF9z aGFyZWRmbGFnPSctc2hhcmVkJyA7OworKwllc2FjCisrCWFyY2hpdmVfY21kcz0nJENDICciJHRt cF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysJaWYgdGVzdCAkc3Vw cG9ydHNfYW5vbl92ZXJzaW9uaW5nID0geWVzOyB0aGVuCisrCSAgYXJjaGl2ZV9leHBzeW1fY21k cz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrICBj YXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXJ+CisrICAkZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXJ+CisrCSAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZs YWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52 ZXIgLW8gJGxpYicKKysJZmkKKysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZp CisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0n JExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicK KysJd2xhcmM9CisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk bGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAg IDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIGlmICRMRCAtdiAyPiYxIHwgZ3JlcCAnQkZE IDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCisrCWxkX3NobGlicz1ubworKwljYXQgPDxFT0YgMT4m MgorKworKyoqKiBXYXJuaW5nOiBUaGUgcmVsZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIg Y2Fubm90IHJlbGlhYmx5CisrKioqIGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNvbGFyaXMg c3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAorKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxp YnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKKysqKiogYmludXRp bHMgdG8gcmVsZWFzZSAyLjkuMSBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlm eQorKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBu YXRpdmUgbGlua2VyIGlzCisrKioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrRU9GCisr ICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4q IGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1z eW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwls ZF9zaGxpYnM9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMu MnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICAgICAgY2FzZSBgJExE IC12IDI+JjFgIGluCisrICAgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjFb MC01XS4qKQorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdh cm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNh biBub3QKKysqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3Rl bXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJp ZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRv IHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2Rp ZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUg bmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9F T0YKKysJOzsKKysJKikKKysJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRl ZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9J2B0ZXN0IC16ICIkU0NPQUJTUEFUSCIgJiYgZWNobyAke3dsfS1ycGF0aCwk bGliZGlyYCcKKysJICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxf bGliZGlyfS99JHNvbmFtZSAtbyAkbGliJworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxc JHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSwtcmV0YWluLXN5bWJvbHMt ZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBsZF9zaGxpYnM9 bm8KKysJICBmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBzdW5vczQq KQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxl IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICB3bGFyYz0K KysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj1ubworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwg Z3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFy Y2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAg ICA7OworKyAgICBlc2FjCisrCisrICAgIGlmIHRlc3QgIiRsZF9zaGxpYnMiID0gbm87IHRoZW4K KysgICAgICBydW5wYXRoX3Zhcj0KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQor KyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0KKysgICAgICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0KKysgICAgZmkKKysgIGVsc2UKKysgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2Ny aXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQorKyAgICBjYXNlICRo b3N0X29zIGluCisrICAgIGFpeDMqKQorKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3Vw cG9ydGVkCisrICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcworKyAgICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHM9JyRMRCAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JF fiRBUiAkQVJfRkxBR1MgJGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lJworKyAgICAgICMgTm90 ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRo ZXJlCisrICAgICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgorKyAgICAg IGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVz dCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhlbgorKwkjIE5laXRoZXIgZGlyZWN0 IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKKysJIyBi cm9rZW4gY29sbGVjdDIuCisrCWhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAorKyAgICAgIGZp CisrICAgICAgOzsKKysKKysgICAgYWl4WzQtOV0qKQorKyAgICAgIGlmIHRlc3QgIiRob3N0X2Nw dSIgPSBpYTY0OyB0aGVuCisrCSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxp bmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKKysJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNw ZWNpYWwuCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysJZXhwX3N5bV9mbGFnPSctQmV4 cG9ydCcKKysJbm9fZW50cnlfZmxhZz0iIgorKyAgICAgIGVsc2UKKysJIyBJZiB3ZSdyZSB1c2lu ZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisrCSMgLUMgbWVh bnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUg bm0KKysJaWYgJE5NIC1WIDI+JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrCSAg ZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdr ICdcJyd7IGlmICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQiKSB8fCAoXCQyID09ICJCIikp ICYmIChzdWJzdHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJDMgfSB9J1wnJyB8IHNvcnQg LXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrCWVsc2UKKysJICBleHBvcnRfc3ltYm9sc19jbWRzPSck Tk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkMiA9PSAi VCIpIHx8IChcJDIgPT0gIkQiKSB8fCAoXCQyID09ICJCIikpICYmIChzdWJzdHIoXCQzLDEsMSkg IT0gIi4iKSkgeyBwcmludCBcJDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMn CisrCWZpCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysKKysJIyBUZXN0IGlmIHdlIGFy ZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisrCSMgQUlYIHN0eWxl IGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKwkjIG5lZWQg dG8gZG8gcnVudGltZSBsaW5raW5nLgorKwljYXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0 LlsyM10uKnxhaXhbNS05XSopCisrCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrICAJ ICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJy dGwiKTsgdGhlbgorKyAgCSAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKyAgCSAgICBi cmVhaworKyAgCSAgZmkKKysJICBkb25lCisrCSAgOzsKKysJZXNhYworKworKwlleHBfc3ltX2Zs YWc9Jy1iZXhwb3J0JworKwlub19lbnRyeV9mbGFnPSctYm5vZW50cnknCisrICAgICAgZmkKKysK KysgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1 aWx0LCBBSVggbGQgY2FuCisrICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJs ZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5CisrICAgICAgIyBvciBwcm9ncmFt IHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KKysg ICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0 aGF0IGlzIG5vdAorKyAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwt YmJpZ3RvYyB0byBMREZMQUdTLgorKworKyAgICAgIGFyY2hpdmVfY21kcz0nJworKyAgICAgIGhh cmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6Jwor KyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKKysJ IyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNr CisrCSMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwor KwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKKysJICBp ZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJiBcCisrICAJICAgc3RyaW5ncyAiJGNvbGxlY3Qy bmFtZSIgfCBncmVwIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAorKwkgIHRoZW4KKysgIAkg ICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorKyAgCSAgOgorKwkgIGVsc2UKKysgIAkgICMg V2UgaGF2ZSBvbGQgY29sbGVjdDIKKysgIAkgIGhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAor KyAgCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1 bmluc3RhbGxlZAorKyAgCSAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBT ZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKKysgIAkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJl bGlua2luZworKyAgCSAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgIAkgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgIAkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9 CisrCSAgZmkKKysJICA7OworKwllc2FjCisrCXNoYXJlZF9mbGFnPSctc2hhcmVkJworKwlpZiB0 ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICBzaGFyZWRfZmxh Zz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKKysJZmkKKysgICAgICBlbHNlCisrCSMgbm90IHVz aW5nIGdjYworKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgCSMgVmlzdWFs QWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNl CisrICAJIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoK KysJICBzaGFyZWRfZmxhZz0nLUcnCisrCWVsc2UKKysJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50 aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkg IGVsc2UKKysJICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCisrCSAgZmkKKysJZmkKKysg ICAgICBmaQorKworKyAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBv cnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAorKyAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0 IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCisrICAg ICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcworKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRo ZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKKysJIyAtYmVyb2sgd2lsbCBs aW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwlh bGxvd191bmRlZmluZWRfZmxhZz0nLWJlcm9rJworKyAgICAgICAjIERldGVybWluZSB0aGUgZGVm YXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJs ZS4KKysgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsg dGhlbgorKworK2x0X2FpeF9saWJwYXRoX3NlZD0nCisrICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdz LywvXiQvIHsKKysJL14wLyB7CisrCSAgICBzL14wICAqXCguKlwpJC9cMS8KKysJICAgIHAKKysJ fQorKyAgICB9JworK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9k ZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorKyMgQ2hlY2sgZm9y IGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KKytpZiB0ZXN0IC16 ICIkYWl4X2xpYnBhdGgiOyB0aGVuCisrICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVz dCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2Vk ImAKKytmaQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKwor K3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRo ZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQorKworKyAgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgor KwlhcmNoaXZlX2V4cHN5bV9jbWRzPSJcJENDIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk bGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdz IGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBlY2hvICIk e3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5 bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgICBlbHNlCisrCWlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCisrCSAgYWxsb3dfdW5kZWZpbmVk X2ZsYWc9Ii16IG5vZGVmcyIKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJcJENDICRzaGFyZWRf ZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3 bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKwllbHNlCisr CSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQg aW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29u ZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5l cjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkg dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhl ZXh0CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1w b3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQv XDEvCisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVz dCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2Vk ImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhp bmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1 bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0 X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisr ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIk YWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysJ IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4 X2xpYnBhdGgiCisrCSAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRp bWUgbG9hZGluZyBmbGFncywKKysJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwg YnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCSAgbm9fdW5kZWZpbmVkX2ZsYWc9 JyAke3dsfS1iZXJub3RvaycKKysJICBhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWJlcm9r JworKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVj dHMgZnJvbSBhcmNoaXZlcworKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSckY29udmVuaWVu Y2UnCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9eWVzCisrCSAgIyBUaGlzIGlzIHNpbWlsYXIg dG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KKysJ ICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAk QVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGly LyRzb25hbWUnCisrCWZpCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikK KysgICAgICBhcmNoaXZlX2NtZHM9JyRybSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRlY2hvICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJh cnkuZGF0YX4kZWNobyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2Ey aXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRf b2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9u IiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAk bGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0z MiknCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAg IGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBkaWZmZXJl bnQgc2VtYW50aWNzIG9uIHRoZSBHTlUgbGQgc2VjdGlvbgorKyAgICAgIGxkX3NobGlicz1ubwor KyAgICAgIDs7CisrCisrICAgIGJzZGlbNDVdKikKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFn X3NwZWM9LXJkeW5hbWljCisrICAgICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3 MzIqKQorKyAgICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRo YXQgd2UgYXJlIHVzaW5nCisrICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgICAj IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRo ZXJlIGlzCisrICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPScgJworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3Vw cG9ydGVkCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBm aWxlcy4KKysgICAgICBsaWJleHQ9bGliCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5k bGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCisrICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAg ICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAg IGFyY2hpdmVfY21kcz0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGBlY2hv ICIkZGVwbGlicyIgfCAkU0VEIC1lICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtu YW1lcz0nCisrICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5s aWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KKysgICAgICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19j bWRzPSd0cnVlJworKyAgICAgICMgRklYTUU6IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0 aGUgbGliIHByb2dyYW0uCisrICAgICAgb2xkX2FyY2hpdmVfY21kcz0nbGliIC1PVVQ6JG9sZGxp YiRvbGRvYmpzJG9sZF9kZXBsaWJzJworKyAgICAgIGZpeF9zcmNmaWxlX3BhdGg9J2BjeWdwYXRo IC13ICIkc3JjZmlsZSJgJworKyAgICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXM9eWVzCisrICAgICAgOzsKKysKKysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICBj YXNlICRob3N0X29zIGluCisrICAgICAgICByaGFwc29keSogfCBkYXJ3aW4xLlswMTJdKQorKyAg ICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVz cycKKysgICAgICAgICA7OworKyAgICAgICAqKSAjIERhcndpbiAxLjMgb24KKysgICAgICAgICBp ZiB0ZXN0IC16ICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfSA7IHRoZW4KKysgICAgICAgICAg IGFsbG93X3VuZGVmaW5lZF9mbGFnPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmlu ZWQgJHt3bH1zdXBwcmVzcycKKysgICAgICAgICBlbHNlCisrICAgICAgICAgICBjYXNlICR7TUFD T1NYX0RFUExPWU1FTlRfVEFSR0VUfSBpbgorKyAgICAgICAgICAgICAxMC5bMDEyXSkKKysgICAg ICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3 bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCisrICAgICAgICAgICAgICAgOzsKKysgICAgICAg ICAgICAgMTAuKikKKysgICAgICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nJHt3bH0t dW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnCisrICAgICAgICAgICAgICAgOzsKKysgICAg ICAgICAgIGVzYWMKKysgICAgICAgICBmaQorKyAgICAgICAgIDs7CisrICAgICAgZXNhYworKyAg ICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vCisr ICAgICAgaGFyZGNvZGVfYXV0b21hdGljPXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXI9dW5zdXBwb3J0ZWQKKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJworKyAgICAg IGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIDsgdGhlbgor KyAgICAJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCisrICAgICAgICBhcmNoaXZlX2Nt ZHM9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxp Ym9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wk c29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisr ICAgICAgICBtb2R1bGVfY21kcz0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGli IC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0 aWx9IgorKyAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0ic2VkICdzLF4sXywnIDwgXCRleHBv cnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5c JENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpz IFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFt ZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9 JHtfbHRfZHN5bXV0aWx9IgorKyAgICAgICAgbW9kdWxlX2V4cHN5bV9jbWRzPSJzZWQgLWUgJ3Ms XixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5 bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxl IFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3lt c30ke19sdF9kc3ltdXRpbH0iCisrICAgIGVsc2UKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgorKyAgICAgICAgeGxjKikKKysgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNo bycKKysgICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1p bnN0YWxsX25hbWUgJHt3bH1gZWNobyAkcnBhdGgvJHNvbmFtZWAgJHhsY3ZlcnN0cmluZycKKysg ICAgICAgICBtb2R1bGVfY21kcz0nJENDICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliIC1i dW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgICAgICMgRG9u J3QgZml4IHRoaXMgYnkgdXNpbmcgdGhlIGxkIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgZmxhZywg aXQgZG9lc24ndCBleGlzdCBpbiBvbGRlciBkYXJ3aW4gbGRzCisrICAgICAgICAgYXJjaGl2ZV9l eHBzeW1fY21kcz0nc2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCgu LipcKSxfJiwiIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1z eW1ib2xzLmV4cHN5bX4kQ0MgLXFta3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7 d2x9JHJwYXRoLyRzb25hbWUgJHhsY3ZlcnN0cmluZ35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIv JHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCisrICAgICAgICAgIG1vZHVsZV9leHBz eW1fY21kcz0nc2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipc KSxfJiwiIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1i b2xzLmV4cHN5bX4kQ0MgJGFsbG93X3VuZGVmaW5lZF9mbGFnICAtbyAkbGliIC1idW5kbGUgJGxp Ym9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3N+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JworKyAgICAgICAgICA7OworKyAgICAgICAq KQorKyAgICAgICAgIGxkX3NobGlicz1ubworKyAgICAgICAgICA7OworKyAgICAgIGVzYWMKKysg ICAgZmkKKysgICAgICA7OworKworKyAgICBkZ3V4KikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgIGZyZWVic2QxKikKKysg ICAgICBsZF9zaGxpYnM9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMi4yLlswMTJd IGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IKKysg ICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0 IGFuIGV4cGxpY2l0IGMrK3J0MC5vCisrICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFu ZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQorKyAgICAjIGV4 dHJhIHNwYWNlKS4KKysgICAgZnJlZWJzZDIuMiopCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQg LUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91c3Iv bGliL2MrK3J0MC5vJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRp cicKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lv bnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KKysgICAgZnJlZWJzZDIq KQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrICAg ICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v CisrICAgICAgOzsKKysKKysgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2MgLXNo YXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgorKyAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSop CisrICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSct UiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX3No bGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBocHV4OSopCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckcm0gJG91dHB1dF9vYmpkaXIv JHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz fnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGliJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckcm0gJG91dHB1dF9v YmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysg ICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0k bGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKyAgICAgIGhhcmRj b2RlX2RpcmVjdD15ZXMKKysKKysgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkg aW4gdGhlIHNlYXJjaCBQQVRILAorKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9u IG9mIHRoZSBsaWJyYXJ5LgorKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJworKyAgICAgIDs7CisrCisrICAgIGhwdXgx MCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsg dGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29u YW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRMRCAtYiAr aCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g bm87IHRoZW4KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJk aXInCisrCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKworKwloYXJkY29kZV9kaXJlY3Q9 eWVzCisrCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysKKysJIyBoYXJkY29k ZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJIyBidXQgYXMgdGhl IGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCWhhcmRjb2RlX21pbnVzX0w9eWVz CisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBocHV4MTEqKQorKyAgICAgIGlmIHRlc3Qg IiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJY2FzZSAkaG9zdF9j cHUgaW4KKysJaHBwYSo2NCopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfSto ICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysJICA7OworKwlpYTY0KikKKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0Mg LXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxf bGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7 CisrCWVzYWMKKysgICAgICBlbHNlCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQor KwkgIGFyY2hpdmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQqKQorKwkgIGFy Y2hpdmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJw YXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7Cisr CSopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0gbm87IHRoZW4KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0r YiAke3dsfSRsaWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKworKwljYXNl ICRob3N0X2NwdSBpbgorKwlocHBhKjY0KnxpYTY0KikKKysJICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX2xkPScrYiAkbGliZGlyJworKwkgIGhhcmRjb2RlX2RpcmVjdD1ubworKwkgIGhhcmRj b2RlX3NobGlicGF0aF92YXI9bm8KKysJICA7OworKwkqKQorKwkgIGhhcmRjb2RlX2RpcmVjdD15 ZXMKKysJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisrCisrCSAgIyBoYXJk Y29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAjIGJ1dCBh cyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBoYXJkY29kZV9taW51 c19MPXllcworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGly aXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0 ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisr ICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBl Y2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGQ9Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3I9OgorKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICAgICAgOzsKKysK KysgICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAg X19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxl IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKKysgICAg ICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisrICAgICAgZmkKKysgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXll cworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBu ZXdzb3M2KQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15 ZXMKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRs aWJkaXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgIG9wZW5ic2QqKQorKyAgICAg IGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCisrCWhhcmRjb2RlX2RpcmVjdD15 ZXMKKysJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9j cHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICBhcmNoaXZlX2NtZHM9JyRDQyAt c2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMt ZmlsZSwkZXhwb3J0X3N5bWJvbHMnCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3 bH0tcnBhdGgsJGxpYmRpcicKKysJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUn CisrCWVsc2UKKysJICBjYXNlICRob3N0X29zIGluCisrCSAgIG9wZW5ic2RbMDFdLiogfCBvcGVu YnNkMi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCisrCSAgICAgYXJjaGl2ZV9jbWRzPSckTEQg LUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKKysJICAgICA7OworKwkg ICAqKQorKwkgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICAgOzsKKysJICBlc2FjCisr ICAgICAgICBmaQorKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBvczIqKQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1M JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9taW51c19MPXllcworKyAgICAgIGFsbG93X3VuZGVm aW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgYXJjaGl2ZV9jbWRzPSckZWNobyAiTElCUkFS WSAkbGlibmFtZSBJTklUSU5TVEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRl Y2hvICJERVNDUklQVElPTiBcIiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZn4kZWNobyBEQVRBID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiIFNJ TkdMRSBOT05TSEFSRUQiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyBFWFBP UlRTID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYn CisrICAgICAgb2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kcz0nZW14aW1wIC1vICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIDs7Cisr CisrICAgIG9zZjMqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFsbG93 X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJYXJj aGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1u ICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2Ag JHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKKysgICAgICBlbHNlCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91 bnJlc29sdmVkIFwqJworKwlhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11 cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysg ICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7 d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysgICAgICA7 OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9m IC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhbGxvd191 bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1l IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZl cnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYicKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBh dGggJHt3bH0kbGliZGlyJworKyAgICAgIGVsc2UKKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAt ZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCWFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1tc3ltIC1z b25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24g JHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9u cyAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRf c3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4g JGxpYi5leHA7IGRvbmU7IGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRMRCAtc2hhcmVk JHthbGxvd191bmRlZmluZWRfZmxhZ30gLWlucHV0ICRsaWIuZXhwICRsaW5rZXJfZmxhZ3MgJGxp Ym9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBl Y2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JHJtICRsaWIuZXhwJworKworKwkjIEJvdGggYyBh bmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCWhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgOzsKKysKKysgICAgc29sYXJpcyopCisrICAgICAg bm9fdW5kZWZpbmVkX2ZsYWc9JyAteiB0ZXh0JworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCisrCXdsYXJjPScke3dsfScKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3ds fS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5j YXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJENDIC1zaGFyZWQgJHt3bH0t TSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRybSAkbGliLmV4cCcKKysgICAgICBlbHNlCisrCXdsYXJj PScnCisrCWFyY2hpdmVfY21kcz0nJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCWFyY2hpdmVf ZXhwc3ltX2NtZHM9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3lt Ym9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDog KjsgfTsiID4+ICRsaWIuZXhwfgorKyAgCSRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1N ICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzfiRybSAkbGliLmV4cCcKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9Jy1SJGxpYmRpcicKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAg ICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAt NV0uKikgOzsKKysgICAgICAqKQorKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5l IGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAorKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlu a2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNh cmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgorKyAJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJp cyAyLjYgKG1heWJlIDIuNS4xPykKKysJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJICB3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVu Y2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworKwllbHNlCisrCSAgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWM9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3Qn CisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisr ICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9y IiA9IHhzZXF1ZW50OyB0aGVuCisrCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJl Y2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KKysJIyBmaWxlcyB0aGF0IG1ha2UgLmlu aXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCisrCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9 LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysg ICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc3RhdGlj IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBmaQorKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICBoYXJkY29k ZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBoYXJkY29k ZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQpCisrICAgICAgY2Fz ZSAkaG9zdF92ZW5kb3IgaW4KKysJc25pKQorKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIGhhcmRj b2RlX2RpcmVjdD15ZXMgIyBpcyB0aGlzIHJlYWxseSB0cnVlPz8/CisrCTs7CisrCXNpZW1lbnMp CisrCSAgIyMgTEQgaXMgbGQgaXQgbWFrZXMgYSBQTEFNTElCCisrCSAgIyMgQ0MganVzdCBtYWtl cyBhIEdyb3NzTW9kdWxlLgorKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICByZWxvYWRfY21kcz0nJENDIC1yIC1vICRv dXRwdXQkcmVsb2FkX29ianMnCisrCSAgaGFyZGNvZGVfZGlyZWN0PW5vCisrICAgICAgICA7Owor Kwltb3Rvcm9sYSkKKysJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBoYXJkY29kZV9kaXJlY3Q9bm8g I01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxpZQorKwk7 OworKyAgICAgIGVzYWMKKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrICAgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0LjMqKQor KyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K KysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9Jy1CZXhwb3J0JworKyAgICAgIDs7Cisr CisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCWFy Y2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrCXJ1bnBhdGhfdmFy PUxEX1JVTl9QQVRICisrCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcworKwlsZF9zaGxpYnM9eWVz CisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5J WCogfCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAu WzAyNF0qKQorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPScke3dsfS16LHRleHQnCisrICAgICAg YXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v CisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKworKyAgICAgIGlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZl X2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3lt X2NtZHM9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKyAgICAg ICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1 c2Ugd2UgZG8gbm90CisrICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVz ZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bworKyAgICAgICMgYWx3YXlzIGJlIHVucmVz b2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorKyAgICAgICMg ZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16 IHRleHQKKysgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xz IGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKKysgICAgICAjIGFzIC16IGRlZnMuCisrICAgICAg bm9fdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosdGV4dCcKKysgICAgICBhbGxvd191bmRlZmluZWRf ZmxhZz0nJHt3bH0teixub2RlZnMnCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysg ICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0nYHRlc3QgLXogIiRTQ09BQlNQQVRIIiAmJiBlY2hvICR7d2x9LVIsJGxpYmRpcmAn CisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKKysgICAgICBsaW5rX2FsbF9k ZXBsaWJzPXllcworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmV4cG9y dCcKKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1oLFwk e1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNo YXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6 KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0t aCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJEND IC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDor JHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICB1dHM0KikKKysgICAg ICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRs aWJkaXInCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisr ICAgICopCisrICAgICAgbGRfc2hsaWJzPW5vCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkK KysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hsaWJzIiA+JjUK KyskYXNfZWNobyAiJGxkX3NobGlicyIgPiY2OyB9CisrdGVzdCAiJGxkX3NobGlicyIgPSBubyAm JiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrIworKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5 IGxpbmsgbGliYz8KKysjCisrY2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgaW4KKyt4fHh5 ZXMpCisrICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVkCisrICBhcmNoaXZlX2NtZHNfbmVl ZF9sYz15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KKysgICAgKid+Jyop CisrICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQg c2VxdWVuY2VzLgorKyAgICAgIDs7CisrICAgICckQ0MgJyopCisrICAgICAgIyBUZXN0IHdoZXRo ZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQor KyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFs cmVhZHkgcGFzc2VzIC1sYworKyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1s Z2NjLgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4iID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4m NjsgfQorKyAgICAgICRybSBjb25mdGVzdCoKKysgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICAgICBpZiB7IChldmFsIGVj aG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19j b21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAyPmNvbmZ0 ZXN0LmVycjsgdGhlbgorKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsaWI9Y29u ZnRlc3QKKysgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAorKyAgICAgICAgZGVw bGlicz0KKysgICAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsCisrCXBpY19mbGFnPSRsdF9w cm9nX2NvbXBpbGVyX3BpYworKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKKysgICAgICAgIGxp bmtlcl9mbGFncz0tdgorKyAgICAgICAgdmVyc3RyaW5nPQorKyAgICAgICAgb3V0cHV0X29iamRp cj0uCisrICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsdF9zYXZlX2FsbG93X3Vu ZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZworKyAgICAgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWc9CisrICAgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh cmNoaXZlX2NtZHMgMlw+XCYxIFx8IGdyZXAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwi IikgPiY1CisrICAoZXZhbCAkYXJjaGl2ZV9jbWRzIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBc Pi9kZXYvbnVsbCAyXD5cJjEpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMp OyB9CisrICAgICAgICB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysgICAgICAg IGVsc2UKKysJICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKKysgICAgICAgIGZpCisrICAgICAg ICBhbGxvd191bmRlZmluZWRfZmxhZz0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworKyAg ICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgIGZpCisrICAg ICAgJHJtIGNvbmZ0ZXN0KgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgPiY1CisrJGFzX2VjaG8gIiRhcmNoaXZlX2NtZHNf bmVlZF9sYyIgPiY2OyB9CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIDs7CisrZXNh YworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtl ciBjaGFyYWN0ZXJpc3RpY3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlu a2VyIGNoYXJhY3RlcmlzdGljcy4uLiAiID4mNjsgfQorK2xpYnJhcnlfbmFtZXNfc3BlYz0KKyts aWJuYW1lX3NwZWM9J2xpYiRuYW1lJworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28i CisrcG9zdGluc3RhbGxfY21kcz0KKytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9 CisrZmluaXNoX2V2YWw9Cisrc2hsaWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9dW5rbm93bgorK3ZlcnNpb25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGxkLnNvIgorK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgor KworK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisrICAg IGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8sL0xSLyIgOzsKKysgICAgKikgbHRf YXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKKysgIGVzYWMKKysgIGx0X3NlYXJjaF9wYXRoX3Nw ZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBhd2sgJGx0X2F3a19hcmcgfCAkU0VEIC1lICJz L15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisrICBpZiBlY2hvICIkbHRfc2VhcmNoX3Bh dGhfc3BlYyIgfCBncmVwICc7JyA+L2Rldi9udWxsIDsgdGhlbgorKyAgICAjIGlmIHRoZSBwYXRo IGNvbnRhaW5zICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCisrICAg ICMgb3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUu ICI6IikgLSBpdCBpcworKyAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBh dGhuYW1lIGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKKysgICAgIyBva2F5IGluIHRoZSBy ZWFsIHdvcmxkIHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCisr ICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRT RUQgLWUgJ3MvOy8gL2cnYAorKyAgZWxzZQorKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWBlY2hv ICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9n ImAKKysgIGZpCisrICAjIE9rLCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNw YWNlcywgd2UgY2FuIHN0ZXAgdGhyb3VnaCBpdAorKyAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBp ZiBuZWNlc3NhcnkuCisrICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0KKysgIGx0X211bHRp X29zX2Rpcj1gJENDICRDUFBGTEFHUyAkQ0ZMQUdTICRMREZMQUdTIC1wcmludC1tdWx0aS1vcy1k aXJlY3RvcnkgMj4vZGV2L251bGxgCisrICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJjaF9w YXRoX3NwZWM7IGRvCisrICAgIGlmIHRlc3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3Nf ZGlyIjsgdGhlbgorKyAgICAgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0 X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiCisrICAgIGVs c2UKKysgICAgICB0ZXN0IC1kICIkbHRfc3lzX3BhdGgiICYmIFwKKysJbHRfdG1wX2x0X3NlYXJj aF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgiCisr ICAgIGZpCisrICBkb25lCisrICBsdF9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICRsdF90bXBfbHRf c2VhcmNoX3BhdGhfc3BlYyB8IGF3ayAnCisrQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30gewor KyAgbHRfZm9vPSIiOworKyAgbHRfY291bnQ9MDsKKysgIGZvciAobHRfaSA9IE5GOyBsdF9pID4g MDsgbHRfaS0tKSB7CisrICAgIGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKysg ICAgICBpZiAoJGx0X2kgPT0gIi4uIikgeworKyAgICAgICAgbHRfY291bnQrKzsKKysgICAgICB9 IGVsc2UgeworKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsKKysgICAgICAgICAgbHRfZm9v PSIvIiAkbHRfaSBsdF9mb287CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBsdF9jb3Vu dC0tOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgfQorKyAgfQorKyAgaWYgKGx0X2ZvbyAh PSAiIikgeyBsdF9mcmVxW2x0X2Zvb10rKzsgfQorKyAgaWYgKGx0X2ZyZXFbbHRfZm9vXSA9PSAx KSB7IHByaW50IGx0X2ZvbzsgfQorK30nYAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBl Y2hvICRsdF9zZWFyY2hfcGF0aF9zcGVjYAorK2Vsc2UKKysgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL2xpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKKytmaQorK25lZWRfbGliX3ByZWZp eD11bmtub3duCisraGFyZGNvZGVfaW50b19saWJzPW5vCisrCisrIyB3aGVuIHlvdSBzZXQgbmVl ZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9u CisrIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCisrbmVlZF92ZXJzaW9uPXVu a25vd24KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrCisr ICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9y IHZlcnNpb24gdG8gdGhlIG5hbWUuCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgOzsKKysKKythaXhbNC05XSopCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgorKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0Mg dXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAg IyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQg d2l0aAorKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVy YXRlZCBsaWJyYXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQg bGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3Rz IG9mIEdDQyBwcmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0 IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCisrICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVD X18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScKKysJICAg ZWNobyAnIHllcyAnCisrCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgZ3JlcCB5 ZXMgPiAvZGV2L251bGw7IHRoZW4KKysJOgorKyAgICAgIGVsc2UKKysJY2FuX2J1aWxkX3NoYXJl ZD1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICAjIEFJWCAob24gUG93 ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBo YXJkY29kZSBjb3JyZWN0CisrICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkg d2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KKysgICAgIyBjb2xsZWN0Miwgc28gYWRk aXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KKysgICAgaWYgdGVzdCAiJGFp eF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgIyBJZiB1c2luZyBydW4g dGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCisrICAg ICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNl IGFyZSBub3QKKysgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICAgIGVsc2UKKysgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVu c2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgorKyAgICAgICMgYW5kIGxh dGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgorKyAgICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJworKyAgICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICAgIGZpCisrICAgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAgZmkKKysgIDs7CisrCisrYW1p Z2FvcyopCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFt ZS5hJworKyAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMv bGlicy4KKysgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5 IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydz JV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJtIC9zeXMvbGlicy8k e2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIg JHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGli bmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAgOzsKKysKKytiZW9zKikKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAor KyAgOzsKKysKKytic2RpWzQ1XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfdmVy c2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDov c2JpbiIgbGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9s aWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgorKyAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICMgdGhl IGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIgYW5kCisr ICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1 dCBsZXQgdXMgYWxsb3cKKysgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9n cmFtcworKyAgOzsKKysKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICB2ZXJzaW9uX3R5 cGU9d2luZG93cworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX3ZlcnNpb249bm8KKysg IG5lZWRfbGliX3ByZWZpeD1ubworKworKyAgY2FzZSAkR0NDLCRob3N0X29zIGluCisrICB5ZXMs Y3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiopCisrICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikv Li4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9m aWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAn XCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7ZWNobyBcJGRsbmFtZSdcJydgfgorKyAg ICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KKysgICAgICB0ZXN0IC1kIFwk ZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KKysgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRs bmFtZSBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZScK KysgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZp bGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgorKyAg ICAgICAkcm0gXCRkbHBhdGgnCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK KysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBjeWd3aW4qKQorKyAgICAgICMgQ3lnd2lu IERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIHNvbmFtZV9z cGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8gJHtyZWxl YXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIC9saWIvdzMyYXBpIC9saWIg L3Vzci9sb2NhbC9saWIiCisrICAgICAgOzsKKysgICAgbWluZ3cqKQorKyAgICAgICMgTWluR1cg RExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4CisrICAgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZp eH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1w cmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJh cmllczovLyIgLWUgInMsPS8sLyxnImAKKysgICAgICBpZiBlY2hvICIkc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjIiB8IGdyZXAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVuCisrICAgICAg ICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkK KysgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2Mg cHJpbnRzIGl0cyBzZWFyY2gKKysgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5k IHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUKKysgICAgICAgICMgZHJpdmUg bGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhl bSwKKysgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRo ZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKKysgICAgICAgICMgd2hpY2ggd291bGRuJ3QgdW5kZXJz dGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KKysgICAgICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsv IC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVj aG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJB VE9SLyAvZyJgCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBwdzMyKikKKysgICAgICAjIHB3 MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKysgICAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hv ICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4 dH0nCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7OworKworKyAgKikKKysgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5d Ly0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCisrICAgIDs7Cisr ICBlc2FjCisrICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJworKyAgIyBGSVhNRTogZmly c3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlz IGluCisrICBzaGxpYnBhdGhfdmFyPVBBVEgKKysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5 KikKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgorKyAgdmVyc2lvbl90eXBlPWRh cndpbgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3ZlcnN1ZmZpeH0kc2hhcmVkX2V4 dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFy ZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hh cmVkX2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGlicGF0 aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9 IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJworKworKyAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbG9jYWwvbGliIgorKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWIn CisrICA7OworKworK2RndXgqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9w cmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNf bGlua2VyPW5vCisrICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29u Rmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysg ICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNy L2Jpbi9vYmpmb3JtYXQ7IHRoZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRg CisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFsxMjNdKikgb2Jq Zm9ybWF0PWFvdXQgOzsKKysgICAgKikgb2JqZm9ybWF0PWVsZiA7OworKyAgICBlc2FjCisrICBm aQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAorKyAgY2FzZSAkdmVyc2lvbl90 eXBlIGluCisrICAgIGZyZWVic2QtZWxmKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgICBuZWVkX3Zl cnNpb249bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBmcmVl YnNkLSopCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisr ICAgICAgbmVlZF92ZXJzaW9uPXllcworKyAgICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgZnJlZWJzZDIqKQor KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIDs7CisrICBmcmVlYnNk My5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVi c2QzLlsyLTldKiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwKKysgIGZyZWVic2Q0LlswLTVdIHwg ZnJlZWJzZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICAgIDs7CisrICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5CisrICAgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXll cworKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytnbnUqKQorKyAgdmVyc2lvbl90eXBlPWxp bnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3No YXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQor KyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28g dGhhdCBkbGQuc2wgcmVmdXNlcyB0bworKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMu CisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIHNocmV4dF9j bWRzPScuc28nCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5r ZXI9IiRob3N0X29zIGRsZC5zbyIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIg aXMgc3BlY2lmaWVkLgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgaWYgdGVzdCAiWCRIUFVY X0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCisr ICAgIGVsc2UKKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2 NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCisrICAgIGZpCisrICAgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgICBocHBhKjY0 KikKKysgICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrICAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgorKyAgICAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICisr ICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBp cyBzcGVjaWZpZWQuCisrICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCisrICAg ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisr ICAgICA7OworKyAgICopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGR5bmFtaWNfbGlu a2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAorKyAg ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFi bGUgU0hMSUJfUEFUSAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgOzsKKysgIGVzYWMKKysg ICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJl IG1vZGUgNTU1LgorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCisrICA7Owor KworK2ludGVyaXhbMy05XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGR5bmFt aWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytpcml4NSogfCBpcml4Niog fCBub25zdG9wdXgqKQorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBub25zdG9wdXgqKSB2ZXJz aW9uX3R5cGU9bm9uc3RvcHV4IDs7CisrICAgICopCisrCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2du dV9sZCIgPSB5ZXM7IHRoZW4KKysJCXZlcnNpb25fdHlwZT1saW51eAorKwllbHNlCisrCQl2ZXJz aW9uX3R5cGU9aXJpeAorKwlmaSA7OworKyAgZXNhYworKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICBjYXNlICRob3N0X29zIGluCisrICBpcml4NSogfCBub25zdG9wdXgq KQorKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9CisrICAgIDs7CisrICAqKQorKyAgICBjYXNlICRM RCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECisr ICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCisrICAgICAg bGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OworKyAgICAqLW4zMnwqIi1uMzIg InwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQorKyAgICAgIGxpYnN1ZmY9MzIg c2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OworKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRi bWlwfCoiLW1lbGY2NGJtaXAgIikKKysgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJt YWdpYz02NC1iaXQ7OworKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVy LW1hdGNoOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD1ubworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xp YiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9y IExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgorK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQq IHwgbGludXgqY29mZiopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKysjIFRoaXMg bXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSkKKysgIHZlcnNpb25fdHlw ZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmln IC1uICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3Rh bGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVk ZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5h YmxlZC4KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHts aWJzdWZmfSIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3Vm Zn0gL2xpYiR7bGlic3VmZn0iCisrCisrICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRv IHRoZSBzZWFyY2ggcGF0aAorKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KKysg ICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0 YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBw cmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4q Ly87L15bIAldKmh3Y2FwWyAJXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAv IC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAorKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKKysgIGZpCisrCisr ICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBs aWJyYXJpZXMgb24KKysgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVk IHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKKysgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2lu Y2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAorKyAgIyBtb3N0IHBvd2Vy cGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKKysg ICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92 ZWQsIGFuZCB3ZQorKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBp biB1c2UuCisrICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJworKyAgOzsKKysKKytu ZXRic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9f RUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4JworKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNv bmZpZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQu c28nCisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGR5bmFtaWNfbGlua2Vy PSdOZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCisrICA7OworKworK25ld3NvczYpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIDs7CisrCisrbnRvLXFueCopCisrICB2ZXJz aW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKytvcGVuYnNkKikKKysg IHZlcnNpb25fdHlwZT1zdW5vcworKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3Iv bGliIgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2Yg T3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCisrICBjYXNl ICRob3N0X29zIGluCisrICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopIG5lZWRfdmVyc2lv bj15ZXMgOzsKKysgICAgKikgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF92ZXJzaW9uPW5v ICA7OworKyAgZXNhYworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJk aXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgaWYgdGVzdCAteiAiYGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3Mt JGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQorKwlzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQorKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytvczIqKQorKyAg bGlibmFtZV9zcGVjPSckbmFtZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAk bGlibmFtZS5hJworKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAgc2hsaWJwYXRo X3Zhcj1MSUJQQVRICisrICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIHZlcnNp b25fdHlwZT1vc2YKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9j bXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorKyAgOzsKKysK KytyZG9zKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFyaXMqKQorKyAg dmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lv bj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxl CisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysKKytzdW5vczQq KQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRj b25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g eWVzOyB0aGVuCisrICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5lZWRfdmVyc2lv bj15ZXMKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25fdHlwZT1saW51 eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKKysgICAgICBydW5wYXRoX3Zh cj1MRF9SVU5fUEFUSAorKyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAgICAgbmVlZF9saWJf cHJlZml4PW5vCisrICAgICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAgbmVlZF9saWJfcHJl Zml4PW5vCisrICAgICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPW5vCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3Iv bGliIC91c3IvY2NzL2xpYicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2NCpN UCopCisrICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNpb25fdHlwZT1saW51 eAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3Vm Zml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKKysgICAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKworK3N5c3Y1KiB8IHNj bzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQor KyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5l ZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSB5ZXM7IHRoZW4KKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xp YiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCisrICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgZWxzZQorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc2NvMy4ydjUqKQorKyAg ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IC9saWIiCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0nL3Vzci9saWInCisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4 CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg OzsKKysKKysqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYworK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1CisrJGFzX2Vj aG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9CisrdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5v ICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2Vh cmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMiCisrZmkKKysKKytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRs dF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0i JHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgorK2ZpCisrCisrc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKysKKyt2YXJpYWJs ZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCisr aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5r PSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BB VEggTElCUkFSWV9QQVRIIgorK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8g cHJvZ3JhbXMuLi4gIiA+JjY7IH0KKytoYXJkY29kZV9hY3Rpb249CisraWYgdGVzdCAtbiAiJGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiIHx8IFwKKysgICB0ZXN0IC1uICIkcnVucGF0aF92YXIi IHx8IFwKKysgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSAiWHllcyIgOyB0aGVuCisr CisrICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3RhbnQgZGlyZWN0b3JpZXMuCisrICBpZiB0 ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSBubyAmJgorKyAgICAgIyBJZiB0aGUgb25seSBtZWNo YW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQorKyAgICAgIyBo YXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQg bGlicmFyeQorKyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8t YmUtaW5zdGFsbGVkIG9uZQorKyAgICAgIyMgdGVzdCAiJF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf c2hsaWJwYXRoX3ZhciwgKSIgIT0gbm8gJiYKKysgICAgIHRlc3QgIiRoYXJkY29kZV9taW51c19M IiAhPSBubzsgdGhlbgorKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9y YXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgorKyAgICBoYXJkY29kZV9hY3Rpb249cmVsaW5rCisrICBl bHNlCisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhh cmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbj1pbW1lZGlhdGUK KysgIGZpCisrZWxzZQorKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ug d2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKKysgICMgZGlyZWN0b3JpZXMuCisrICBoYXJk Y29kZV9hY3Rpb249dW5zdXBwb3J0ZWQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb24iID4mNQorKyRhc19lY2hvICIkaGFyZGNvZGVfYWN0 aW9uIiA+JjY7IH0KKysKKytpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluazsgdGhl bgorKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisrICBlbmFibGVfZmFz dF9pbnN0YWxsPW5vCisrZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9 IHllcyB8fAorKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KKysgICMgRmFz dCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1u ZWVkbGVzcworK2ZpCisrCisrc3RyaXBsaWI9Cisrb2xkX3N0cmlwbGliPQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMg cG9zc2libGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxp YnJhcmllcyBpcyBwb3NzaWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgLW4gIiRTVFJJUCIgJiYg JFNUUklQIC1WIDI+JjEgfCBncmVwICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRoZW4KKysgIHRl c3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtZGVi dWciCisrICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11 bm5lZWRlZCIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1 CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrZWxzZQorKyMgRklYTUUgLSBpbnNlcnQgc29tZSBy ZWFsIHRlc3RzLCBob3N0X29zIGlzbid0IHJlYWxseSBnb29kIGVub3VnaAorKyAgY2FzZSAkaG9z dF9vcyBpbgorKyAgIGRhcndpbiopCisrICAgICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVu CisrICAgICAgICAgc3RyaXBsaWI9IiRTVFJJUCAteCIKKysgICAgICAgICBvbGRfc3RyaXBsaWI9 IiRTVFJJUCAtUyIKKysgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgICAgICBlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKyAgICAgICA7OworKyAgICopCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgOzsKKysg IGVzYWMKKytmaQorKworK2lmIHRlc3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgor KyAgZW5hYmxlX2Rsb3Blbj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgor KyAgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duCisrZWxzZQorKyAgbHRfY3ZfZGxv cGVuPW5vCisrICBsdF9jdl9kbG9wZW5fbGlicz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysg IGJlb3MqKQorKyAgICBsdF9jdl9kbG9wZW49ImxvYWRfYWRkX29uIgorKyAgICBsdF9jdl9kbG9w ZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7CisrCisrICBtaW5n dyogfCBwdzMyKikKKysgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKysgICAgbHRfY3Zf ZGxvcGVuX2xpYnM9CisrICAgOzsKKysKKysgIGN5Z3dpbiopCisrICAgIGx0X2N2X2Rsb3Blbj0i ZGxvcGVuIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICA7OworKworKyAgZGFyd2luKikK KysgICMgaWYgbGliZGwgaXMgaW5zdGFsbGVkIHdlIG5lZWQgdG8gbGluayBhZ2FpbnN0IGl0Cisr ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1s ZGwiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2 ZV9MSUJTPSRMSUJTCisrTElCUz0iLWxkbCAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2Nw bHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIGRsb3BlbiAoKTsKKytpbnQKKytt YWluICgpCisreworK3JldHVybiBkbG9wZW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9Cisr X0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytp ZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAg ICAgICB9OyB0aGVuCisrICBhY19jdl9saWJfZGxfZGxvcGVuPXllcworK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubworK2ZpCisrCisr cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbF9k bG9wZW4iID4mNQorKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9CisraWYg dGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbgorKyAgbHRfY3ZfZGxv cGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgorK2Vsc2UKKysKKysgICAgbHRf Y3ZfZGxvcGVuPSJkeWxkIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxv cGVuX3NlbGY9eWVzCisrCisrZmkKKysKKysgICA7OworKworKyAgKikKKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzaGxfbG9hZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIHNobF9sb2FkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9m dW5jX3NobF9sb2FkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZk ZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAor K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICov CisrLyogRGVmaW5lIHNobF9sb2FkIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxs aW1pdHMuaD4gZGVjbGFyZXMgc2hsX2xvYWQuCisrICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8 bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCisrI2RlZmluZSBzaGxfbG9hZCBp bm5vY3VvdXNfc2hsX2xvYWQKKysKKysvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisrICAgIHdoaWNoIGNhbiBjb25m bGljdCB3aXRoIGNoYXIgc2hsX2xvYWQgKCk7IGJlbG93LgorKyAgICBQcmVmZXIgPGxpbWl0cy5o PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAgIDxsaW1p dHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCisrCisrI2lm ZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8 YXNzZXJ0Lmg+CisrI2VuZGlmCisrCisrI3VuZGVmIHNobF9sb2FkCisrCisrLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNo YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBz aGxfbG9hZCAoKTsKKysvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0 aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCisrICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lT LiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisrICAgIHNvbWV0aGluZyBzdGFy dGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworKyNpZiBk ZWZpbmVkIF9fc3R1Yl9zaGxfbG9hZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3NobF9sb2FkCisrY2hv a2UgbWUKKysjZW5kaWYKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBzaGxfbG9hZCAo KTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19l eGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190 ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2Z1bmNf c2hsX2xvYWQ9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19j dl9mdW5jX3NobF9sb2FkPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25m dGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX3NobF9s b2FkIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2Z1bmNfc2hsX2xvYWQiID4mNjsgfQorK2lmIHRl c3QgIngkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Bl bj0ic2hsX2xvYWQiCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciBzaGxfbG9hZCBpbiAtbGRsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IHNobF9sb2FkIGluIC1sZGxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJfZGxk X3NobF9sb2FkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbGRsZCAg JExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4g ICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysv KiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4K KysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQg c3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5k aWYKKytjaGFyIHNobF9sb2FkICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIHNobF9s b2FkICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkg JGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3Zf bGliX2RsZF9zaGxfbG9hZD15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCWFjX2N2X2xpYl9kbGRfc2hsX2xvYWQ9bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5k U1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjUKKysk YXNfZWNobyAiJGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID4mNjsgfQorK2lmIHRlc3QgIngkYWNf Y3ZfbGliX2RsZF9zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0ic2hs X2xvYWQiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCIKKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsb3BlbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIGRsb3Blbi4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfZnVuY19kbG9w ZW4rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysvKiBEZWZp bmUgZGxvcGVuIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVj bGFyZXMgZGxvcGVuLgorKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNs YXJlcyBnZXR0aW1lb2ZkYXkuICAqLworKyNkZWZpbmUgZGxvcGVuIGlubm9jdW91c19kbG9wZW4K KysKKysvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVs bHkgZmV3IHByb3RvdHlwZXMsCisrICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZGxv cGVuICgpOyBiZWxvdy4KKysgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBf X1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9u IGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLworKworKyNpZmRlZiBfX1NURENfXworKyMgaW5j bHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgor KworKyN1bmRlZiBkbG9wZW4KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVz cGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIGRsb3BlbiAoKTsKKysvKiBUaGUgR05V IEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRz CisrICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFj dHVhbGx5IG5hbWVkCisrICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9y bWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworKyNpZiBkZWZpbmVkIF9fc3R1Yl9kbG9wZW4gfHwg ZGVmaW5lZCBfX3N0dWJfX19kbG9wZW4KKytjaG9rZSBtZQorKyNlbmRpZgorKworK2ludAorK21h aW4gKCkKKyt7CisrcmV0dXJuIGRsb3BlbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytf QUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lm IHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNf bGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNh dCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAi JGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAg ICAgIH07IHRoZW4KKysgIGFjX2N2X2Z1bmNfZGxvcGVuPXllcworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfZnVuY19kbG9wZW49bm8KKytmaQorKworK3JtIC1y ZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVl eHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGFjX2N2X2Z1bmNfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2Z1bmNfZGxv cGVuIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfZGxvcGVuIiA9IHgiInllczsgdGhl bgorKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9saWJfZGxfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSIt bGRsICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVm cy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVy cm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw ZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3 b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgor KyNlbmRpZgorK2NoYXIgZGxvcGVuICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGRs b3BlbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi CisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIx CisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJ ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2 X2xpYl9kbF9kbG9wZW49eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKwor KwlhY19jdl9saWJfZGxfZGxvcGVuPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBh OF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY1CisrJGFzX2VjaG8g IiRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbF9k bG9wZW4iID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxv cGVuX2xpYnM9Ii1sZGwiCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBkbG9wZW4gaW4gLWxzdmxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgZGxvcGVuIGluIC1sc3ZsZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfbGliX3N2 bGRfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbHN2bGQg ICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmgu ICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisr LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2Vu ZGlmCisrY2hhciBkbG9wZW4gKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxvcGVu ICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfbGli X3N2bGRfZGxvcGVuPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJ YWNfY3ZfbGliX3N2bGRfZGxvcGVuPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBh OF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA+JjUKKyskYXNfZWNo byAiJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJf c3ZsZF9kbG9wZW4iID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRf Y3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCIKKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxkIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgZGxkX2xpbmsgaW4gLWxkbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X2xpYl9kbGRfZGxkX2xpbmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJ QlM9Ii1sZGxkICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lk IGFuIGVycm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1 cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3Rv dHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJu ICJDIgorKyNlbmRpZgorK2NoYXIgZGxkX2xpbmsgKCk7CisraW50CisrbWFpbiAoKQorK3sKKyty ZXR1cm4gZGxkX2xpbmsgKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9 IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNh YworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNv bmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3Qu ZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g eWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVu CisrICBhY19jdl9saWJfZGxkX2RsZF9saW5rPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysKKysJYWNfY3ZfbGliX2RsZF9kbGRfbGluaz1ubworK2ZpCisrCisrcm0gLXJm IGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbGRfZGxkX2xp bmsiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY2OyB9CisraWYg dGVzdCAieCRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA9IHgiInllczsgdGhlbgorKyAgbHRfY3Zf ZGxvcGVuPSJkbGRfbGluayIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIgorK2ZpCisrCisrCisr ZmkKKysKKysKKytmaQorKworKworK2ZpCisrCisrCisrZmkKKysKKysKKytmaQorKworKyAgICA7 OworKyAgZXNhYworKworKyAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgor KyAgICBlbmFibGVfZGxvcGVuPXllcworKyAgZWxzZQorKyAgICBlbmFibGVfZGxvcGVuPW5vCisr ICBmaQorKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuIGluCisrICBkbG9wZW4pCisrICAgIHNhdmVf Q1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgdGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIg PSB4eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNOX0giCisrCisrICAgIHNh dmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwg TERGTEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIKKysKKysgICAg c2F2ZV9MSUJTPSIkTElCUyIKKysgICAgTElCUz0iJGx0X2N2X2Rsb3Blbl9saWJzICRMSUJTIgor KworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBhIHBy b2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHts dF9jdl9kbG9wZW5fc2VsZitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICAJICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsg dGhlbiA6CisrICBsdF9jdl9kbG9wZW5fc2VsZj1jcm9zcworK2Vsc2UKKysgIGx0X2RsdW5rbm93 bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKKysgIGx0X3N0YXR1cz0k bHRfZGx1bmtub3duCisrICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCisrI2xpbmUgMTA5 NzEgImNvbmZpZ3VyZSIKKysjaW5jbHVkZSAiY29uZmRlZnMuaCIKKysKKysjaWYgSEFWRV9ETEZD Tl9ICisrI2luY2x1ZGUgPGRsZmNuLmg+CisrI2VuZGlmCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+ CisrCisrI2lmZGVmIFJUTERfR0xPQkFMCisrIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dM T0JBTAorKyNlbHNlCisrIyAgaWZkZWYgRExfR0xPQkFMCisrIyAgICBkZWZpbmUgTFRfRExHTE9C QUwJCURMX0dMT0JBTAorKyMgIGVsc2UKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAorKyMg IGVuZGlmCisrI2VuZGlmCisrCisrLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9P Ul9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQorKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90 IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KKysjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKKysj ICBpZmRlZiBSVExEX0xBWlkKKysjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xB WlkKKysjICBlbHNlCisrIyAgICBpZmRlZiBETF9MQVpZCisrIyAgICAgIGRlZmluZSBMVF9ETExB WllfT1JfTk9XCQlETF9MQVpZCisrIyAgICBlbHNlCisrIyAgICAgIGlmZGVmIFJUTERfTk9XCisr IyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKKysjICAgICAgZWxzZQor KyMgICAgICAgIGlmZGVmIERMX05PVworKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9O T1cJRExfTk9XCisrIyAgICAgICAgZWxzZQorKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9P Ul9OT1cJMAorKyMgICAgICAgIGVuZGlmCisrIyAgICAgIGVuZGlmCisrIyAgICBlbmRpZgorKyMg IGVuZGlmCisrI2VuZGlmCisrCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB2b2lk IGV4aXQgKGludCk7CisrI2VuZGlmCisrCisrdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQorK2lu dCBtYWluICgpCisreworKyAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRf RExMQVpZX09SX05PVyk7CisrICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsKKysKKysgIGlm IChzZWxmKQorKyAgICB7CisrICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBz dGF0dXMgPSAkbHRfZGxub191c2NvcmU7CisrICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9m bm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKKysgICAgICAvKiBkbGNsb3NlIChz ZWxmKTsgKi8KKysgICAgfQorKyAgZWxzZQorKyAgICBwdXRzIChkbGVycm9yICgpKTsKKysKKysg ICAgZXhpdCAoc3RhdHVzKTsKKyt9CisrRU9GCisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTok TElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBh Y19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19l eGVleHR9IDI+L2Rldi9udWxsOyB0aGVuCisrICAgICguL2NvbmZ0ZXN0OyBleGl0OyApID4mNSAy Pi9kZXYvbnVsbAorKyAgICBsdF9zdGF0dXM9JD8KKysgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgor KyAgICAgIHgkbHRfZGxub191c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXllcyA7OworKyAgICAg IHgkbHRfZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzIDs7CisrICAgICAgeCRs dF9kbHVua25vd258eCopIGx0X2N2X2Rsb3Blbl9zZWxmPW5vIDs7CisrICAgIGVzYWMKKysgIGVs c2UgOgorKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAorKyAgICBsdF9jdl9kbG9wZW5fc2VsZj1u bworKyAgZmkKKytmaQorK3JtIC1mciBjb25mdGVzdCoKKysKKysKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZiIgPiY1CisrJGFzX2Vj aG8gIiRsdF9jdl9kbG9wZW5fc2VsZiIgPiY2OyB9CisrCisrICAgIGlmIHRlc3QgIngkbHRfY3Zf ZGxvcGVuX3NlbGYiID0geHllczsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3ds IGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgorKyAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGEgc3RhdGlj YWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZiIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBp dHNlbGYuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYytz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICAJICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICBsdF9jdl9k bG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MKKytlbHNlCisrICBsdF9kbHVua25vd249MDsgbHRfZGxu b191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCisrICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93 bgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgorKyNsaW5lIDExMDcxICJjb25maWd1 cmUiCisrI2luY2x1ZGUgImNvbmZkZWZzLmgiCisrCisrI2lmIEhBVkVfRExGQ05fSAorKyNpbmNs dWRlIDxkbGZjbi5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxzdGRpby5oPgorKworKyNpZmRl ZiBSVExEX0dMT0JBTAorKyMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwKKysjZWxz ZQorKyMgIGlmZGVmIERMX0dMT0JBTAorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9C QUwKKysjICBlbHNlCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCTAKKysjICBlbmRpZgorKyNl bmRpZgorKworKy8qIFdlIG1heSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRo ZSBjb21tYW5kIGxpbmUgaWYgd2UKKysgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNv bWUgcGxhdGZvcm0uICovCisrI2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCisrIyAgaWZkZWYgUlRM RF9MQVpZCisrIyAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCisrIyAgZWxz ZQorKyMgICAgaWZkZWYgRExfTEFaWQorKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJ RExfTEFaWQorKyMgICAgZWxzZQorKyMgICAgICBpZmRlZiBSVExEX05PVworKyMgICAgICAgIGRl ZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCisrIyAgICAgIGVsc2UKKysjICAgICAgICBp ZmRlZiBETF9OT1cKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURMX05PVwor KyMgICAgICAgIGVsc2UKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCTAKKysj ICAgICAgICBlbmRpZgorKyMgICAgICBlbmRpZgorKyMgICAgZW5kaWYKKysjICBlbmRpZgorKyNl bmRpZgorKworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQp OworKyNlbmRpZgorKworK3ZvaWQgZm5vcmQoKSB7IGludCBpPTQyO30KKytpbnQgbWFpbiAoKQor K3sKKysgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9O T1cpOworKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247CisrCisrICBpZiAoc2VsZikKKysg ICAgeworKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0 X2Rsbm9fdXNjb3JlOworKyAgICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3Rh dHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisrICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCisr ICAgIH0KKysgIGVsc2UKKysgICAgcHV0cyAoZGxlcnJvciAoKSk7CisrCisrICAgIGV4aXQgKHN0 YXR1cyk7CisrfQorK0VPRgorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIk YWNfbGlua1wiIikgPiY1CisrICAoZXZhbCAkYWNfbGluaykgMj4mNQorKyAgYWNfc3RhdHVzPSQ/ CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9k ZXYvbnVsbDsgdGhlbgorKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JjUgMj4vZGV2L251bGwK KysgICAgbHRfc3RhdHVzPSQ/CisrICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KKysgICAgICB4JGx0 X2Rsbm9fdXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7CisrICAgICAgeCRs dF9kbG5lZWRfdXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7CisrICAgICAg eCRsdF9kbHVua25vd258eCopIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubyA7OworKyAgICBl c2FjCisrICBlbHNlIDoKKysgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKKysgICAgbHRfY3ZfZGxv cGVuX3NlbGZfc3RhdGljPW5vCisrICBmaQorK2ZpCisrcm0gLWZyIGNvbmZ0ZXN0KgorKworKwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2Rsb3Blbl9z ZWxmX3N0YXRpYyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMiID4m NjsgfQorKyAgICBmaQorKworKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCisrICAgIExE RkxBR1M9IiRzYXZlX0xERkxBR1MiCisrICAgIExJQlM9IiRzYXZlX0xJQlMiCisrICAgIDs7Cisr ICBlc2FjCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgorKyAgeWVzfG5vKSBlbmFi bGVfZGxvcGVuX3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7CisrICAqKSBlbmFibGVfZGxvcGVu X3NlbGY9dW5rbm93biA7OworKyAgZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZf c3RhdGljIGluCisrICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rs b3Blbl9zZWxmX3N0YXRpYyA7OworKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtu b3duIDs7CisrICBlc2FjCisrZmkKKysKKysKKysjIFJlcG9ydCB3aGljaCBsaWJyYXJ5IHR5cGVz IHdpbGwgYWN0dWFsbHkgYmUgYnVpbHQKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+ JjY7IH0KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkY2FuX2J1aWxkX3No YXJlZCIgPiY1CisrJGFzX2VjaG8gIiRjYW5fYnVpbGRfc2hhcmVkIiA+JjY7IH0KKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQg bGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNo YXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KKyt0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAi bm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KKysKKysjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBh bmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysjIGFyZSBh bGwgYnVpbHQgZnJvbSBQSUMuCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysgIGlmIHRlc3QgLW4g IiRSQU5MSUIiOyB0aGVuCisrICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJ QiBcJGxpYiIKKysgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJworKyAgZmkKKysg IDs7CisrCisrYWl4WzQtOV0qKQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRl c3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorKyAgICB0ZXN0ICIkZW5h YmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgZmkKKysgICAgOzsKKytl c2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9zaGFyZWQi ID4mNQorKyRhc19lY2hvICIkZW5hYmxlX3NoYXJlZCIgPiY2OyB9CisrCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmll cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGli cmFyaWVzLi4uICIgPiY2OyB9CisrIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3Ig ZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCisrdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVu YWJsZV9zdGF0aWM9eWVzCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVu YWJsZV9zdGF0aWMiID4mNQorKyRhc19lY2hvICIkZW5hYmxlX3N0YXRpYyIgPiY2OyB9CisrCisr IyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxkIG9ubHkgZmlyZSB3aGVuIGJvb3RzdHJhcHBpbmcgdGhl CisrIyBsaWJ0b29sIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIHlvdSBmb3Jnb3QgdG8gc2hpcCBs dG1haW4uc2gKKysjIHdpdGggeW91ciBwYWNrYWdlLCBhbmQgeW91IHdpbGwgZ2V0IGNvbXBsYWlu dHMgdGhhdCB0aGVyZSBhcmUKKysjIG5vIHJ1bGVzIHRvIGdlbmVyYXRlIGx0bWFpbi5zaC4KKytp ZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhlbgorKyAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24g enNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91ciBjb21tYW5kcyB0aHJvdWdo CisrICAjIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCisrICBpZiB0ZXN0IC1uICIke1pT SF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorKyAgZmkK KysgICMgTm93IHF1b3RlIGFsbCB0aGUgdGhpbmdzIHRoYXQgbWF5IGNvbnRhaW4gbWV0YWNoYXJh Y3RlcnMgd2hpbGUgYmVpbmcKKysgICMgY2FyZWZ1bCBub3QgdG8gb3ZlcnF1b3RlIHRoZSBBQ19T VUJTVGVkIHZhbHVlcy4gIFdlIHRha2UgY29waWVzIG9mIHRoZQorKyAgIyB2YXJpYWJsZXMgYW5k IHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdlbmVyYXRpb24gb2YgdGhlIGxpYnRvb2wgc2NyaXB0Lgor KyAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBvbGRfQ0ZMQUdTIEFSIEFSX0ZMQUdTIEVHUkVQIFJB TkxJQiBMTl9TIExUQ0MgTFRDRkxBR1MgTk0gXAorKyAgICBTRUQgU0hFTEwgU1RSSVAgXAorKyAg ICBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19zcGVjIHNvbmFtZV9zcGVjIGV4dHJhY3RfZXhw c3ltc19jbWRzIFwKKysgICAgb2xkX3N0cmlwbGliIHN0cmlwbGliIGZpbGVfbWFnaWNfY21kIGZp bmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwKKysgICAgZGVwbGlic19jaGVja19tZXRob2QgcmVsb2Fk X2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9sb2NrcyBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGUgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wgXAorKyAgICBsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCisrICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCisrICAgIG9sZF9wb3N0aW5z dGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgXAorKyAgICBjb21waWxlciBcCisrICAg IENDIFwKKysgICAgTEQgXAorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsIFwKKysgICAgbHRfcHJv Z19jb21waWxlcl9waWMgXAorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyBcCisrICAgIGx0 X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIFwKKysgICAgZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjIFwKKysgICAgdGhyZWFkX3NhZmVfZmxhZ19zcGVjIFwKKysgICAgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMgXAorKyAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzIFwK KysgICAgb2xkX2FyY2hpdmVfY21kcyBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMg XAorKyAgICBwcmVkZXBfb2JqZWN0cyBcCisrICAgIHBvc3RkZXBfb2JqZWN0cyBcCisrICAgIHBy ZWRlcHMgXAorKyAgICBwb3N0ZGVwcyBcCisrICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCBc CisrICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycyBcCisrICAgIGFyY2hpdmVfY21kcyBcCisr ICAgIGFyY2hpdmVfZXhwc3ltX2NtZHMgXAorKyAgICBwb3N0aW5zdGFsbF9jbWRzIFwKKysgICAg cG9zdHVuaW5zdGFsbF9jbWRzIFwKKysgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMg XAorKyAgICBhbGxvd191bmRlZmluZWRfZmxhZyBcCisrICAgIG5vX3VuZGVmaW5lZF9mbGFnIFwK KysgICAgZXhwb3J0X3N5bWJvbHNfY21kcyBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMgXAorKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIFwKKysgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciBcCisrICAgIGhhcmRjb2RlX2F1dG9tYXRpYyBcCisrICAgIG1vZHVs ZV9jbWRzIFwKKysgICAgbW9kdWxlX2V4cHN5bV9jbWRzIFwKKysgICAgbHRfY3ZfcHJvZ19jb21w aWxlcl9jX28gXAorKyAgICBmaXhfc3JjZmlsZV9wYXRoIFwKKysgICAgZXhjbHVkZV9leHBzeW1z IFwKKysgICAgaW5jbHVkZV9leHBzeW1zOyBkbworKworKyAgICBjYXNlICR2YXIgaW4KKysgICAg b2xkX2FyY2hpdmVfY21kcyB8IFwKKysgICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyB8IFwK KysgICAgYXJjaGl2ZV9jbWRzIHwgXAorKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzIHwgXAorKyAg ICBtb2R1bGVfY21kcyB8IFwKKysgICAgbW9kdWxlX2V4cHN5bV9jbWRzIHwgXAorKyAgICBvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyB8IFwKKysgICAgZXhwb3J0X3N5bWJvbHNfY21kcyB8 IFwKKysgICAgZXh0cmFjdF9leHBzeW1zX2NtZHMgfCByZWxvYWRfY21kcyB8IGZpbmlzaF9jbWRz IHwgXAorKyAgICBwb3N0aW5zdGFsbF9jbWRzIHwgcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAorKyAg ICBvbGRfcG9zdGluc3RhbGxfY21kcyB8IG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgfCBcCisrICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyB8IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjKQor KyAgICAgICMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KKysgICAgICBldmFs ICJsdF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkZG91Ymxl X3F1b3RlX3N1YnN0XCIgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiIC1lIFwiXCRkZWxheV92YXJp YWJsZV9zdWJzdFwiXGBcXFwiIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgZXZhbCAibHRf JHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJHNlZF9xdW90ZV9z dWJzdFwiXGBcXFwiIgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysKKysgIGNhc2Ug JGx0X2VjaG8gaW4KKysgIConXCQwIC0tZmFsbGJhY2stZWNobyInKQorKyAgICBsdF9lY2hvPWAk ZWNobyAiWCRsdF9lY2hvIiB8ICRYc2VkIC1lICdzL1xcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8i JC8kMCAtLWZhbGxiYWNrLWVjaG8iLydgCisrICAgIDs7CisrICBlc2FjCisrCisrY2ZnZmlsZT0i JHtvZmlsZX1UIgorKyAgdHJhcCAiJHJtIFwiJGNmZ2ZpbGVcIjsgZXhpdCAxIiAxIDIgMTUKKysg ICRybSAtZiAiJGNmZ2ZpbGUiCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRp bmcgJG9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyAkb2ZpbGUiID4mNjt9 CisrCisrICBjYXQgPDxfX0VPRl9fID4+ICIkY2ZnZmlsZSIKKysjISAkU0hFTEwKKysKKysjIGAk ZWNobyAiJGNmZ2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBs aWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBHZW5lcmF0ZWQgYXV0b21hdGlj YWxseSBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFICRWRVJTSU9OJFRJTUVTVEFNUCkKKysjIE5P VEU6IENoYW5nZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFp bi5zaC4KKysjCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKKysjIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdO VSBMaWJ0b29sOgorKyMgT3JpZ2luYWxseSBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUu YWkubWl0LmVkdT4sIDE5OTYKKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLCBidXQKKysjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9u LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEw LTEzMDEsIFVTQS4KKysjCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBw YXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0 IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUg c2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0 IHByb2dyYW0uCisrCisrIyBBIHNlZCBwcm9ncmFtIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0 cHV0LgorK1NFRD0kbHRfU0VECisrCisrIyBTZWQgdGhhdCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVu dGFsbHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlrZSAtbi4KKytYc2VkPSIkU0VEIC1l IDFzL15YLy8iCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUg dGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0 IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworKyMgVGhlIG5hbWVz IG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0Lgor K2F2YWlsYWJsZV90YWdzPQorKworKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHCisrCisrIyBM aWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4v ZGV2L251bGwgfCBzZWQgMXFgOgorKworKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hl bGwgc2NyaXB0cy4KKytTSEVMTD0kbHRfU0hFTEwKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1 aWxkIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVk CisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1aWxk X29sZF9saWJzPSRlbmFibGVfc3RhdGljCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxj IGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0k YXJjaGl2ZV9jbWRzX25lZWRfbGMKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNo YXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMKKythbGxvd19saWJ0b29sX2xp YnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXMKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlv bi4KKytmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3RhbGwKKysKKysjIFRoZSBob3N0IHN5 c3RlbS4KKytob3N0X2FsaWFzPSRob3N0X2FsaWFzCisraG9zdD0kaG9zdAorK2hvc3Rfb3M9JGhv c3Rfb3MKKysKKysjIFRoZSBidWlsZCBzeXN0ZW0uCisrYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFz CisrYnVpbGQ9JGJ1aWxkCisrYnVpbGRfb3M9JGJ1aWxkX29zCisrCisrIyBBbiBlY2hvIHByb2dy YW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCisrZWNobz0kbHRfZWNobwor KworKyMgVGhlIGFyY2hpdmVyLgorK0FSPSRsdF9BUgorK0FSX0ZMQUdTPSRsdF9BUl9GTEFHUwor KworKyMgQSBDIGNvbXBpbGVyLgorK0xUQ0M9JGx0X0xUQ0MKKysKKysjIExUQ0MgY29tcGlsZXIg ZmxhZ3MuCisrTFRDRkxBR1M9JGx0X0xUQ0ZMQUdTCisrCisrIyBBIGxhbmd1YWdlLXNwZWNpZmlj IGNvbXBpbGVyLgorK0NDPSRsdF9jb21waWxlcgorKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBH TlUgQyBjb21waWxlcj8KKyt3aXRoX2djYz0kR0NDCisrCisrIyBBbiBFUkUgbWF0Y2hlci4KKytF R1JFUD0kbHRfRUdSRVAKKysKKysjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMu CisrTEQ9JGx0X0xECisrCisrIyBXaGV0aGVyIHdlIG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgor K0xOX1M9JGx0X0xOX1MKKysKKysjIEEgQlNELWNvbXBhdGlibGUgbm0gcHJvZ3JhbS4KKytOTT0k bHRfTk0KKysKKysjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtCisrU1RSSVA9JGx0X1NUUklQ CisrCisrIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVn aW5zICJmaWxlIgorK01BR0lDX0NNRD0kTUFHSUNfQ01ECisrCisrIyBVc2VkIG9uIGN5Z3dpbjog RExMIGNyZWF0aW9uIHByb2dyYW0uCisrRExMVE9PTD0iJERMTFRPT0wiCisrCisrIyBVc2VkIG9u IGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KKytPQkpEVU1QPSIkT0JKRFVNUCIKKysKKysjIFVzZWQg b24gY3lnd2luOiBhc3NlbWJsZXIuCisrQVM9IiRBUyIKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBk aXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9 JG9iamRpcgorKworKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KKyty ZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKKytyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMK KysKKysjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCisr d2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2wKKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9y bWFsbHkgIm8iKS4KKytvYmpleHQ9IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJjaGl2ZSBzdWZm aXggKG5vcm1hbGx5ICJhIikuCisrbGliZXh0PSIkbGliZXh0IgorKworKyMgU2hhcmVkIGxpYnJh cnkgc3VmZml4IChub3JtYWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycK KysKKysjIEV4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9IiRl eGVleHQiCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJy YXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljCisrcGljX21v ZGU9JHBpY19tb2RlCisrCisrIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1h bmQ/CisrbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgorKworKyMgRG9lcyBjb21w aWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPworK2NvbXBpbGVy X2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX28KKysKKysjIE11c3Qgd2UgbG9jayBmaWxl cyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPworK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKKysK KysjIERvIHdlIG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/CisrbmVlZF9saWJfcHJl Zml4PSRuZWVkX2xpYl9wcmVmaXgKKysKKysjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJy YXJpZXM/CisrbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KKysKKysjIFdoZXRoZXIgZGxvcGVu IGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgorKworKyMgV2hl dGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmPSRlbmFi bGVfZGxvcGVuX3NlbGYKKysKKysjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2Vk IHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9w ZW5fc2VsZl9zdGF0aWMKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxp bmtpbmcuCisrbGlua19zdGF0aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWMKKysK KysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVp bHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZworKworKyMgQ29t cGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KKytleHBvcnRfZHluYW1pY19m bGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYworKworKyMgQ29tcGlsZXIgZmxh ZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3do b2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYworKworKyMg Q29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2FmZSBvYmplY3RzLgorK3RocmVhZF9z YWZlX2ZsYWdfc3BlYz0kbHRfdGhyZWFkX3NhZmVfZmxhZ19zcGVjCisrCisrIyBMaWJyYXJ5IHZl cnNpb25pbmcgdHlwZS4KKyt2ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQorKworKyMgRm9ybWF0 IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCisrbGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMK KysKKysjIExpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25l LCB0aGUgcmVzdCBhcmUgbGlua3MuCisrIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0 aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FLgorK2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGli cmFyeV9uYW1lc19zcGVjCisrCisrIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYg ZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4KKytzb25hbWVfc3BlYz0kbHRfc29uYW1lX3Nw ZWMKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYW4gb2xkLXN0eWxl IGFyY2hpdmUuCisrUkFOTElCPSRsdF9SQU5MSUIKKytvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRf YXJjaGl2ZV9jbWRzCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9j bWRzCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwor KworKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4K KytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRz CisrCisrIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0 ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9 JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRv IGJ1aWxkIGFuZCBpbnN0YWxsIGEgc2hhcmVkIGFyY2hpdmUuCisrYXJjaGl2ZV9jbWRzPSRsdF9h cmNoaXZlX2NtZHMKKythcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRz CisrcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21kcworK3Bvc3R1bmluc3RhbGxf Y21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxk IGEgbG9hZGFibGUgbW9kdWxlIChhc3N1bWVkIHNhbWUgYXMgYWJvdmUgaWYgZW1wdHkpCisrbW9k dWxlX2NtZHM9JGx0X21vZHVsZV9jbWRzCisrbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVf ZXhwc3ltX2NtZHMKKysKKysjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KKytvbGRfc3Ry aXBsaWI9JGx0X29sZF9zdHJpcGxpYgorK3N0cmlwbGliPSRsdF9zdHJpcGxpYgorKworKyMgRGVw ZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3Jl YXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2Jq ZWN0cworKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5n IGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3Rz PSRsdF9wb3N0ZGVwX29iamVjdHMKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUg dGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4K KytwcmVkZXBzPSRsdF9wcmVkZXBzCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIg dGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4K Kytwb3N0ZGVwcz0kbHRfcG9zdGRlcHMKKysKKysjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBi eSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxpYnJhcnkKKytjb21w aWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycworKworKyMg VGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3 aGVuIGxpbmtpbmcKKysjIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGgKKysKKysjIE1ldGhvZCB0byBjaGVjayB3 aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgorK2RlcGxpYnNf Y2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAorKworKyMgQ29tbWFuZCB0byB1 c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgorK2ZpbGVfbWFnaWNf Y21kPSRsdF9maWxlX21hZ2ljX2NtZAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGli cmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZp bmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCisrCisrIyBGbGFnIHRoYXQgZm9yY2Vz IG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmlu ZWRfZmxhZworKworKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkg aW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgorK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21k cworKworKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBi ZSBldmFsZWQgYnV0IG5vdCBzaG93bi4KKytmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKKysK KysjIFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5 bWJvbHMgYW5kIEMgbmFtZXMuCisrZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF9waXBlCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHBy b3BlciBDIGRlY2xhcmF0aW9uCisrZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKKysKKysjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5t IGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpcgorK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCisrCisrIyBU aGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCisrcnVucGF0 aF92YXI9JHJ1bnBhdGhfdmFyCisrCisrIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBwYXRo IHZhcmlhYmxlLgorK3NobGlicGF0aF92YXI9JHNobGlicGF0aF92YXIKKysKKysjIElzIHNobGli cGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8K KytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aAorKworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4 ZWN1dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb24KKysKKysjIFdoZXRo ZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCisraGFy ZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKKysKKysjIEZsYWcgdG8gaGFyZGNv ZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKysjIFRoaXMgbXVzdCB3 b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCisraGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYworKworKyMgSWYgbGQgaXMgdXNl ZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50bworKyMgYSBiaW5h cnkgZHVyaW5nIGxpbmtpbmcuIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcwor KyMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGQKKysKKysjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAtcnBh dGggZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgorK2hhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IKKysKKysjIFNldCB0byB5ZXMgaWYg dXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBE SVIgaW50byB0aGUKKysjIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfZGlyZWN0PSRoYXJk Y29kZV9kaXJlY3QKKysKKysjIFNldCB0byB5ZXMgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVy aW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQorKyMgcmVzdWx0aW5nIGJpbmFyeS4K KytoYXJkY29kZV9taW51c19MPSRoYXJkY29kZV9taW51c19MCisrCisrIyBTZXQgdG8geWVzIGlm IHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50 bworKyMgdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhcgorKworKyMgU2V0IHRvIHllcyBpZiBidWlsZGluZyBhIHNoYXJl ZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUiBpbnRvIHRoZSBsaWJyYXJ5Cisr IyBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQgYWdh aW5zdCBpdC4KKytoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpYworKworKyMg VmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVy IHNjcmlwdHMgYW5kCisrIyByZXN0b3JlZCBhdCByZWxpbmsgdGltZS4KKyt2YXJpYWJsZXNfc2F2 ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIgorKworKyMgV2hldGhl ciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kg bGlicmFyaWVzLgorK2xpbmtfYWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnMKKysKKysjIENv bXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcworK3N5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrCisrIyBSdW4tdGlt ZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcworK3N5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYworKworKyMgRml4IHRoZSBzaGVs bCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KKytmaXhfc3JjZmlsZV9wYXRo PSRsdF9maXhfc3JjZmlsZV9wYXRoCisrCisrIyBTZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5bWJv bHMgYXJlIHJlcXVpcmVkLgorK2Fsd2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9z eW1ib2xzCisrCisrIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgorK2V4 cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHMKKysKKysjIFRoZSBjb21t YW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFy Y2hpdmUuCisrZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19jbWRzCisr CisrIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBz eW1ib2xzLgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zCisrCisrIyBTeW1i b2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCisraW5jbHVkZV9leHBzeW1zPSRsdF9p bmNsdWRlX2V4cHN5bXMKKysKKysjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKKysKKytfX0VPRl9f CisrCisrCisrICBjYXNlICRob3N0X29zIGluCisrICBhaXgzKikKKysgICAgY2F0IDw8XEVPRiA+ PiAiJGNmZ2ZpbGUiCisrCisrIyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBH Q0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21lCisrIyByZWFzb24sIGlmIHdlIHNldCB0aGUg Q09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCisrIyB2YW5p c2ggaW4gYSBwdWZmIG9mIHNtb2tlLgorK2lmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIg IT0gWHNldDsgdGhlbgorKyAgQ09MTEVDVF9OQU1FUz0KKysgIGV4cG9ydCBDT0xMRUNUX05BTUVT CisrZmkKKytFT0YKKysgICAgOzsKKysgIGVzYWMKKysKKysgICMgV2UgdXNlIHNlZCBpbnN0ZWFk IG9mIGNhdCBiZWNhdXNlIGJhc2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBpZgorKyAgIyBpZiBm aW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRlcyBp bgorKyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVzIHRvIENSL0xGLiAg VGhpcyBiYXNoIHByb2JsZW0KKysgICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwgYnV0IHdoeSBub3Qg cnVuIG9uIG9sZCB2ZXJzaW9ucyB0b28/CisrICBzZWQgJyRxJyAiJGx0bWFpbiIgPj4gIiRjZmdm aWxlIiB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorKworKyAgbXYgLWYgIiRjZmdmaWxl IiAiJG9maWxlIiB8fCBcCisrICAgIChybSAtZiAiJG9maWxlIiAmJiBjcCAiJGNmZ2ZpbGUiICIk b2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZSIpCisrICBjaG1vZCAreCAiJG9maWxlIgorKworK2Vs c2UKKysgICMgSWYgdGhlcmUgaXMgbm8gTWFrZWZpbGUgeWV0LCB3ZSByZWx5IG9uIGEgbWFrZSBy dWxlIHRvIGV4ZWN1dGUKKysgICMgYGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrJyB0byByZXJ1biB0 aGVzZSB0ZXN0cyBhbmQgY3JlYXRlIHRoZQorKyAgIyBsaWJ0b29sIHNjcmlwdCB0aGVuLgorKyAg bHRtYWluX2luPWBlY2hvICRsdG1haW4gfCBzZWQgLWUgJ3MvXC5zaCQvLmluLydgCisrICBpZiB0 ZXN0IC1mICIkbHRtYWluX2luIjsgdGhlbgorKyAgICB0ZXN0IC1mIE1ha2VmaWxlICYmIG1ha2Ug IiRsdG1haW4iCisrICBmaQorK2ZpCisrCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQ UEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKytDQz0iJGx0X3NhdmVfQ0MiCisrCisr CisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC10YWdzIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dp dGhfdGFncytzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF90YWdzOyB0YWduYW1l cz0iJHdpdGh2YWwiCisrZmkKKysKKysKKytpZiB0ZXN0IC1mICIkbHRtYWluIiAmJiB0ZXN0IC1u ICIkdGFnbmFtZXMiOyB0aGVuCisrICBpZiB0ZXN0ICEgLWYgIiR7b2ZpbGV9IjsgdGhlbgorKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogb3V0cHV0IGZpbGUgXGAkb2Zp bGUnIGRvZXMgbm90IGV4aXN0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBvdXRw dXQgZmlsZSBcYCRvZmlsZScgZG9lcyBub3QgZXhpc3QiID4mMjt9CisrICBmaQorKworKyAgaWYg dGVzdCAteiAiJExUQ0MiOyB0aGVuCisrICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25m aWcgfCBncmVwICdeTFRDQz0nYCIKKysgICAgaWYgdGVzdCAteiAiJExUQ0MiOyB0aGVuCisrICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG91dHB1dCBmaWxlIFxgJG9m aWxlJyBkb2VzIG5vdCBsb29rIGxpa2UgYSBsaWJ0b29sIHNjcmlwdCIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogb3V0cHV0IGZpbGUgXGAkb2ZpbGUnIGRvZXMgbm90IGxvb2sgbGlr ZSBhIGxpYnRvb2wgc2NyaXB0IiA+JjI7fQorKyAgICBlbHNlCisrICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIFxgTFRDQz0kTFRDQycsIGV4dHJhY3RlZCBm cm9tIFxgJG9maWxlJyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgXGBM VENDPSRMVENDJywgZXh0cmFjdGVkIGZyb20gXGAkb2ZpbGUnIiA+JjI7fQorKyAgICBmaQorKyAg ZmkKKysgIGlmIHRlc3QgLXogIiRMVENGTEFHUyI7IHRoZW4KKysgICAgZXZhbCAiYCRTSEVMTCAk e29maWxlfSAtLWNvbmZpZyB8IGdyZXAgJ15MVENGTEFHUz0nYCIKKysgIGZpCisrCisrICAjIEV4 dHJhY3QgbGlzdCBvZiBhdmFpbGFibGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIGluICRvZmlsZS4K KysgICMgTm90ZSB0aGF0IHRoaXMgYXNzdW1lcyB0aGUgZW50aXJlIGxpc3QgaXMgb24gb25lIGxp bmUuCisrICBhdmFpbGFibGVfdGFncz1gZ3JlcCAiXmF2YWlsYWJsZV90YWdzPSIgIiR7b2ZpbGV9 IiB8ICRTRUQgLWUgJ3MvYXZhaWxhYmxlX3RhZ3M9XCguKiRcKS9cMS8nIC1lICdzL1wiLy9nJ2AK KysKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgor KyAgZm9yIHRhZ25hbWUgaW4gJHRhZ25hbWVzOyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIK KysgICAgIyBDaGVjayB3aGV0aGVyIHRhZ25hbWUgY29udGFpbnMgb25seSB2YWxpZCBjaGFyYWN0 ZXJzCisrICAgIGNhc2UgYCRlY2hvICJYJHRhZ25hbWUiIHwgJFhzZWQgLWUgJ3M6Wy1fQUJDREVG R0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejEyMzQ1Njc4OTAs L106OmcnYCBpbgorKyAgICAiIikgOzsKKysgICAgKikgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBpbnZhbGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGludmFsaWQgdGFnIG5hbWU6ICR0YWduYW1lIiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKwk7OworKyAgICBlc2FjCisrCisrICAgIGlmIGdyZXAg Il4jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lJCIgPCAiJHtvZmlsZX0i ID4gL2Rldi9udWxsCisrICAgIHRoZW4KKysgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogdGFnIG5hbWUgXCIkdGFnbmFtZVwiIGFscmVhZHkgZXhpc3RzIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogdGFnIG5hbWUgXCIkdGFnbmFtZVwiIGFscmVhZHkgZXhp c3RzIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBmaQorKworKyAg ICAjIFVwZGF0ZSB0aGUgbGlzdCBvZiBhdmFpbGFibGUgdGFncy4KKysgICAgaWYgdGVzdCAtbiAi JHRhZ25hbWUiOyB0aGVuCisrICAgICAgZWNobyBhcHBlbmRpbmcgY29uZmlndXJhdGlvbiB0YWcg XCIkdGFnbmFtZVwiIHRvICRvZmlsZQorKworKyAgICAgIGNhc2UgJHRhZ25hbWUgaW4KKysgICAg ICBDWFgpCisrCWlmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYm CisrCSAgICAoICh0ZXN0ICJYJENYWCIgPSAiWGcrKyIgJiYgYGcrKyAtdiA+L2Rldi9udWxsIDI+ JjFgICkgfHwKKysJICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgorKwkgIGFj X2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQorKworKworKworKworK2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubworK2Fs bG93X3VuZGVmaW5lZF9mbGFnX0NYWD0KKythbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPW5vCisr YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9CisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0K KytoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 CisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFg9CisraGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcl9DWFg9CisraGFyZGNvZGVfbWludXNfTF9DWFg9bm8KKytoYXJkY29kZV9zaGxpYnBh dGhfdmFyX0NYWD11bnN1cHBvcnRlZAorK2hhcmRjb2RlX2F1dG9tYXRpY19DWFg9bm8KKyttb2R1 bGVfY21kc19DWFg9CisrbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0KKytsaW5rX2FsbF9kZXBsaWJz X0NYWD11bmtub3duCisrb2xkX2FyY2hpdmVfY21kc19DWFg9JG9sZF9hcmNoaXZlX2NtZHMKKytu b191bmRlZmluZWRfZmxhZ19DWFg9Cisrd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQorK2Vu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYPW5vCisrCisrIyBEZXBlbmRlbmNp ZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKKytw cmVkZXBfb2JqZWN0c19DWFg9CisrcG9zdGRlcF9vYmplY3RzX0NYWD0KKytwcmVkZXBzX0NYWD0K Kytwb3N0ZGVwc19DWFg9CisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0KKytjb21waWxl cl9saWJfc2VhcmNoX2RpcnNfQ1hYPQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBD KysgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jcHAKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lv biBmb3IgY29tcGlsZWQgQysrIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK29iamV4dF9DWFg9 JG9iamV4dAorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisr bHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKwor KyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtf dGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltdKSB7IHJldHVybigwKTsgfScKKysKKysj IGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBz dXJlICRDQyBpcyBzZXQuCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVz ZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mg d2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFH UyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4K Kytjb21waWxlcj0kQ0MKKysKKysKKysjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2lt cGxlIHRlc3QgY29kZQorK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFj X2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRl c3QuZXJyCisrX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRy bSBjb25mdGVzdCoKKysKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIk bHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19s aW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVy cgorK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCisrJHJtIC1yIGNv bmZ0ZXN0KgorKworKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1 bWVudHMuCisrbHRfc2F2ZV9DQz0kQ0MKKytsdF9zYXZlX0xEPSRMRAorK2x0X3NhdmVfR0NDPSRH Q0MKKytHQ0M9JEdYWAorK2x0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCisrbHRfc2F2 ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECisraWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9s ZGN4eCtzZXR9IjsgdGhlbgorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xk Y3h4CisrZWxzZQorKyAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCisrZmkKKytpZiB0ZXN0 IC1uICIke2x0X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KKysgIGx0X2N2X3BhdGhfTEQ9JGx0 X2N2X3BhdGhfTERDWFgKKytlbHNlCisrICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAorK2ZpCisr dGVzdCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKKytDQz0ke0NYWC0iYysrIn0KKytj b21waWxlcj0kQ0MKKytjb21waWxlcl9DWFg9JENDCisrZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVy IiI7IGRvCisrICBjYXNlICRjY190ZW1wIGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxl IHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNj IHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVh azs7CisrICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRY c2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorKworKworKyMgV2UgZG9u J3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3ZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhl CisrIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVseQorK2lmIHRlc3QgIiRHWFgiID0geWVzOyB0 aGVuCisrICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9JyAtZm5vLWJ1aWx0 aW4nCisrZWxzZQorKyAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYPQorK2Zp CisrCisraWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICMgU2V0IHVwIGRlZmF1bHQgR05V IEMrKyBjb25maWd1cmF0aW9uCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbnUtbGQg d2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KKysg IHdpdGh2YWw9JHdpdGhfZ251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9s ZD15ZXMKKytlbHNlCisrICB3aXRoX2dudV9sZD1ubworK2ZpCisrCisrYWNfcHJvZz1sZAorK2lm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1u YW1lPWxkIGdpdmVzIGEgcGF0aC4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgbGQgdXNlZCBieSAkQ0MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBs ZCB1c2VkIGJ5ICRDQy4uLiAiID4mNjsgfQorKyAgY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1pbmd3 KikKKysgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVw c2V0cyBtaW5ndworKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUg fCB0ciAtZCAnXDAxNSdgIDs7CisrICAqKQorKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9n LW5hbWU9bGQpIDI+JjVgIDs7CisrICBlc2FjCisrICBjYXNlICRhY19wcm9nIGluCisrICAgICMg QWNjZXB0IGFic29sdXRlIHBhdGhzLgorKyAgICBbXFwvXSogfCA/OltcXC9dKikKKysgICAgICBy ZV9kaXJlbHQ9Jy9bXi9dW14vXSovXC5cLi8nCisrICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBh dGhuYW1lIG9mIGxkCisrICAgICAgYWNfcHJvZz1gZWNobyAkYWNfcHJvZ3wgJFNFRCAncyVcXFxc JS8lZydgCisrICAgICAgd2hpbGUgZWNobyAkYWNfcHJvZyB8IGdyZXAgIiRyZV9kaXJlbHQiID4g L2Rldi9udWxsIDI+JjE7IGRvCisrCWFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8ICRTRUQgInMlJHJl X2RpcmVsdCUvJSJgCisrICAgICAgZG9uZQorKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRh Y19wcm9nIgorKyAgICAgIDs7CisrICAiIikKKysgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0 ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCisrICAgIGFjX3Byb2c9bGQKKysgICAgOzsKKysgICop CisrICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQg aW4gUEFUSC4KKysgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgorKyAgICA7OworKyAgZXNhYworK2Vs aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciBHTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBHTlUgbGQuLi4gIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9CisrZmkKKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhf TEQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAteiAiJExEIjsgdGhlbgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworKyAgICBJRlM9IiRs dF9zYXZlX2lmcyIKKysgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgaWYg dGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRh Y19leGVleHQiOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIK KysgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0 aGVyIHVzZSAtLXZlcnNpb24sCisrICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRz IG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KKysgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2Fz IHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KKysgICAgICBjYXNlIGAiJGx0X2N2 X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysgICAgICAqR05VKiB8ICond2l0aCBC RkQnKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworKwk7OworKyAgICAg ICopCisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisrCTs7CisrICAgICAg ZXNhYworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrZWxzZQorKyAg bHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRo IGEgcGF0aC4KKytmaQorK2ZpCisrCisrTEQ9IiRsdF9jdl9wYXRoX0xEIgorK2lmIHRlc3QgLW4g IiRMRCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRMRCIg PiY1CisrJGFzX2VjaG8gIiRMRCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKyt0 ZXN0IC16ICIkTEQiICYmIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBh Y2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IG5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjI7fQorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBp ZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg aWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X3Byb2dfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBh cHBhcmVudGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KKytjYXNlIGAkTEQgLXYgMj4m MSA8L2Rldi9udWxsYCBpbgorKypHTlUqIHwgKid3aXRoIEJGRCcqKQorKyAgbHRfY3ZfcHJvZ19n bnVfbGQ9eWVzCisrICA7OworKyopCisrICBsdF9jdl9wcm9nX2dudV9sZD1ubworKyAgOzsKKytl c2FjCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJv Z19nbnVfbGQiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNjsgfQorK3dp dGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAorKworKworKworKyAgIyBDaGVjayBpZiBHTlUg QysrIHVzZXMgR05VIGxkIGFzIHRoZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2UgdGhlCisrICAj IGFyY2hpdmluZyBjb21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVpbmcgdXNl ZC4KKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAtbyAkbGliJworKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRh aW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKworKyAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKKysg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwor KworKyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBi ZSBlbXB0eQorKyAgICAjIFhYWCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0 Y2YtY3h4LCBidXQgSSBuZWVkIHRvCisrICAgICMgICAgIGludmVzdGlnYXRlIGl0IGEgbGl0dGxl IGJpdCBtb3JlLiAoTU0pCisrICAgIHdsYXJjPScke3dsfScKKysKKysgICAgIyBhbmNpZW50IEdO VSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorKyAgICBpZiBldmFs ICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRgIC0taGVscCAyPiYxIiB8IFwKKysJZ3JlcCAnbm8t d2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlY19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJj IictLW5vLXdob2xlLWFyY2hpdmUnCisrICAgIGVsc2UKKysgICAgICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlY19DWFg9CisrICAgIGZpCisrICBlbHNlCisrICAgIHdpdGhfZ251X2xkPW5vCisrICAg IHdsYXJjPQorKworKyAgICAjIEEgZ2VuZXJpYyBhbmQgdmVyeSBzaW1wbGUgZGVmYXVsdCBzaGFy ZWQgbGlicmFyeSBjcmVhdGlvbgorKyAgICAjIGNvbW1hbmQgZm9yIEdOVSBDKysgZm9yIHRoZSBj YXNlIHdoZXJlIGl0IHVzZXMgdGhlIG5hdGl2ZQorKyAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBH TlUgbGQuICBJZiBwb3NzaWJsZSwgdGhpcyBzZXR0aW5nIHNob3VsZAorKyAgICAjIG92ZXJyaWRk ZW4gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG5hdGl2ZSBsaW5rZXIgZmVhdHVyZXMgb24KKysg ICAgIyB0aGUgcGxhdGZvcm0gaXQgaXMgYmVpbmcgdXNlZCBvbi4KKysgICAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJworKyAgZmkKKysK KysgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRo YXQgbGlzdHMKKysgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgorKyAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4k b2JqZXh0IDI+JjEgfCBncmVwICJcLUwiJworKworK2Vsc2UKKysgIEdYWD1ubworKyAgd2l0aF9n bnVfbGQ9bm8KKysgIHdsYXJjPQorK2ZpCisrCisrIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlw dGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGljcworK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2Vy ICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxp YnJhcmllcy4uLiAiID4mNjsgfQorK2xkX3NobGlic19DWFg9eWVzCisrY2FzZSAkaG9zdF9vcyBp bgorKyAgYWl4MyopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKyAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgIDs7CisrICBhaXhbNC05XSopCisrICAg IGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICAgIyBPbiBJQTY0LCB0aGUg bGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorKyAg ICAgICMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKyAgICAgIGFpeF91c2VfcnVudGlt ZWxpbmtpbmc9bm8KKysgICAgICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JworKyAgICAgIG5vX2Vu dHJ5X2ZsYWc9IiIKKysgICAgZWxzZQorKyAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8K KysKKysgICAgICAjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2lu ZyBvciBub3JtYWwKKysgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21l d2hlcmUgaW4gTERGTEFHUywgd2UKKysgICAgICAjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5n LgorKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFpeFs1LTld KikKKysJZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAgY2FzZSAkbGRfZmxhZyBpbgor KwkgICotYnJ0bCopCisrCSAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKwkgICAgYnJl YWsKKysJICAgIDs7CisrCSAgZXNhYworKwlkb25lCisrCTs7CisrICAgICAgZXNhYworKworKyAg ICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCisrICAgICAgbm9fZW50cnlfZmxhZz0nLWJub2Vu dHJ5JworKyAgICBmaQorKworKyAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVk IG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCisrICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVh dGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorKyAgICAj IG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFs LXRvYyB0bworKyAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNl cyB3aGVyZSB0aGF0IGlzIG5vdAorKyAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFk ZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJwor KyAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0NYWD0nOicKKysgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrCisrICAgIGlmIHRl c3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJd fGFpeDQuWzAxMl0uKikKKysgICAgICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0 LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKKysgICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVj dDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQt cHJvZy1uYW1lPWNvbGxlY3QyYAorKwlpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJiBcCisr CSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2 L251bGwKKysJdGhlbgorKwkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorKwkgIDoKKysJ ZWxzZQorKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKKysJICBoYXJkY29kZV9kaXJlY3RfQ1hY PXVuc3VwcG9ydGVkCisrCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmll cyB3aGVuIHRoZSB1bmluc3RhbGxlZAorKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBs aWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCisrCSAgIyB0byB1bnN1cHBvcnRlZCBm b3JjZXMgcmVsaW5raW5nCisrCSAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzCisrCSAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1MJGxpYmRpcicKKysJICBoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yX0NYWD0KKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgc2hhcmVkX2Zs YWc9Jy1zaGFyZWQnCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0g eWVzOyB0aGVuCisrCXNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKyAgICAg IGZpCisrICAgIGVsc2UKKysgICAgICAjIG5vdCB1c2luZyBnY2MKKysgICAgICBpZiB0ZXN0ICIk aG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZv ciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQorKwkjIGNob2tlcyBvbiAtV2wsLUcu IFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwlzaGFyZWRfZmxhZz0nLUcnCisrICAg ICAgZWxzZQorKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4K KysJICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKKysJZWxzZQorKwkgIHNoYXJlZF9mbGFnPScke3ds fS1iTTpTUkUnCisrCWZpCisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgIyBJdCBzZWVtcyB0 aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAg ICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Yg c3ltYm9scyB0byBleHBvcnQuCisrICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9eWVzCisr ICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAg ICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFn cyAoLWJydGwpLAorKyAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQg bWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysgICAgICBhbGxvd191bmRlZmluZWRfZmxh Z19DWFg9Jy1iZXJvaycKKysgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZy b20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysgICAgICBjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YK KytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkK Kyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJ ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKytsdF9h aXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9e MC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScKKyth aXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VE IC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmpl Y3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRo IjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+ L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRl c3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRo PSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysKKysgICAgICBh cmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0iXCRDQyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg JGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFn cyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gZWNobyAi JHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9z eW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKKysgICAgIGVsc2UKKysgICAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwloYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCisrCWFsbG93X3VuZGVm aW5lZF9mbGFnX0NYWD0iLXogbm9kZWZzIgorKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0iXCRD QyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBs aWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIK KysgICAgICBlbHNlCisrCSMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUg dmFsdWUgZW5jb2RlZCBpbiBhbiBlbXB0eSBleGVjdXRhYmxlLgorKwljYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7 CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVz PSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0g LWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQg JiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3gg Y29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9z ZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAg cy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1g ZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRf YWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlk bid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAg YWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwg JFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9j b25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK KytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjov bGliIjsgZmkKKysKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJsaWJw YXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcg dGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCisrCSMgLWJlcm9rIHdpbGwgbGluayB3 aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJbm9fdW5k ZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tYmVybm90b2snCisrCWFsbG93X3VuZGVmaW5lZF9mbGFn X0NYWD0nICR7d2x9LWJlcm9rJworKwkjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBp bnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKysJd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNfQ1hYPSckY29udmVuaWVuY2UnCisrCWFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKKysJ IyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hh cmVkIGxpYnJhcmllcy4KKysJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9m bGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1i bm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191 bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxl YXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysgICAgICBmaQorKyAgICBmaQorKyAgICA7 OworKworKyAgYmVvcyopCisrICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9y dGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgIGFsbG93X3VuZGVm aW5lZF9mbGFnX0NYWD11bnN1cHBvcnRlZAorKyAgICAgICMgSm9zZXBoIEJlY2tlbmJhY2ggPGpy YjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MKKysgICAgICAjIHN1cHBvcnQg LS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCisr ICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgICBlbHNl CisrICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICBmaQorKyAgICA7OworKworKyAgY2hvcnVz KikKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAqKQorKwkjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJbGRfc2hsaWJzX0NYWD1ubworKwk7Owor KyAgICBlc2FjCisrICAgIDs7CisrCisrICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICAg ICMgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCBDWFgpIGlzIGFjdHVh bGx5IG1lYW5pbmdsZXNzLAorKyAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBE TExzLgorKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwkbGliZGlyJworKyAg ICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9dW5zdXBwb3J0ZWQKKysgICAgYWx3YXlzX2V4cG9y dF9zeW1ib2xzX0NYWD1ubworKyAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVz X0NYWD15ZXMKKysKKysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBvcnQn ID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQg LW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFi bGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwor KyAgICAgICMgSWYgdGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmls ZSAoMXN0IGxpbmUKKysgICAgICAjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lz ZSwgcHJlcGVuZC4uLgorKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdpZiB0ZXN0ICJ4 YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorKwljcCAkZXhwb3J0 X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrICAgICAgZWxzZQorKwllY2hv IEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJY2F0ICRleHBvcnRfc3lt Ym9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysgICAgICBmaX4KKysgICAgICAk Q0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2Ug LVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisrICAgIGVsc2UKKysgICAgICBs ZF9zaGxpYnNfQ1hYPW5vCisrICAgIGZpCisrICA7OworKyAgICAgIGRhcndpbiogfCByaGFwc29k eSopCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrICAgICAgaGFyZGNvZGVf ZGlyZWN0X0NYWD1ubworKyAgICAgIGhhcmRjb2RlX2F1dG9tYXRpY19DWFg9eWVzCisrICAgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0ZWQKKysgICAgICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19DWFg9JycKKysgICAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKKysg ICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIK KysgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyA7IHRoZW4KKysgICAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0nZWNobycKKysgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSJcJENDIC1keW5hbWlj bGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBc JGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmlu ZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIG1vZHVsZV9jbWRz X0NYWD0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJv YmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4g XCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNs aWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwk Y29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5n ICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRp bH0iCisrICAgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0ic2VkIC1lICdzLF4sXywnIDwgXCRl eHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5 bX5cJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMg XCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5 bXV0aWx9IgorKyAgICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiAhPSAi eWVzIjsgdGhlbgorKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0iXCRDQyAtciAta2VlcF9wcml2 YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0Mg LWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rl ci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNv bmFtZSBcJHZlcnN0cmluZyR7X2x0X2RzeW11dGlsfSIKKysgICAgICAgIGFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2Jq ZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRl cm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWlj bGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRl cGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2 ZXJzdHJpbmcke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIGZp CisrICAgICAgZWxzZQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICB4bGMq KQorKyAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKyAgICAgICAgICBh cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXFta3Nocm9iaiAke3dsfS1zaW5nbGVfbW9kdWxlICRhbGxv d191bmRlZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1pbnN0YWxsX25hbWUgJHt3bH1gZWNobyAkcnBhdGgvJHNvbmFtZWAgJHhsY3ZlcnN0 cmluZycKKysgICAgICAgICAgbW9kdWxlX2NtZHNfQ1hYPSckQ0MgJGFsbG93X3VuZGVmaW5lZF9m bGFnIC1vICRsaWIgLWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFncycKKysg ICAgICAgICAgIyBEb24ndCBmaXggdGhpcyBieSB1c2luZyB0aGUgbGQgLWV4cG9ydGVkX3N5bWJv bHNfbGlzdCBmbGFnLCBpdCBkb2Vzbid0IGV4aXN0IGluIG9sZGVyIGRhcndpbiBsZHMKKysgICAg ICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3NlZCAtZSAicywjLiosLCIgLWUgInMsXlsg ICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRf b2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDIC1xbWtzaHJvYmogJHt3bH0tc2lu Z2xlX21vZHVsZSAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9JHJwYXRoLyRzb25hbWUg JHhsY3ZlcnN0cmluZ35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xz LmV4cHN5bSAke2xpYn0nCisrICAgICAgICAgIG1vZHVsZV9leHBzeW1fY21kc19DWFg9J3NlZCAt ZSAicywjLiosLCIgLWUgInMsXlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBv cnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JEND ICRhbGxvd191bmRlZmluZWRfZmxhZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJz JGNvbXBpbGVyX2ZsYWdzfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltICR7bGlifScKKysgICAgICAgICAgOzsKKysgICAgICAgKikKKysgICAgICAgICBs ZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIGZpCisr ICAgICAgICA7OworKworKyAgZGd1eCopCisrICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAg ICAgZWMrKyopCisrCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAor KwlsZF9zaGxpYnNfQ1hYPW5vCisrCTs7CisrICAgICAgZ2hjeCopCisrCSMgR3JlZW4gSGlsbHMg QysrIENvbXBpbGVyCisrCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAorKwlsZF9zaGxpYnNfQ1hYPW5vCisrCTs7CisrICAgICAgKikKKysJIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysg ICAgZXNhYworKyAgICA7OworKyAgZnJlZWJzZFsxMl0qKQorKyAgICAjIEMrKyBzaGFyZWQgbGli cmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVmb3JlIHN3aXRjaCB0byBFTEYK KysgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICA7OworKyAgZnJlZWJzZC1lbGYqKQorKyAgICBh cmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysgICAgOzsKKysgIGZyZWVic2QqIHwgZHJhZ29u Zmx5KikKKysgICAgIyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQg d2l0aCBzdGFuZGFyZCBFTEYKKysgICAgIyBjb252ZW50aW9ucworKyAgICBsZF9zaGxpYnNfQ1hY PXllcworKyAgICA7OworKyAgZ251KikKKysgICAgOzsKKysgIGhwdXg5KikKKysgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LUUnCisrICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCisrICAgIGhhcmRj b2RlX21pbnVzX0xfQ1hYPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCSMgYnV0 IGFzIHRoZSBkZWZhdWx0CisrCQkJCSMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCisrICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgIENDKikKKysgICAgICAjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAg ICAgOzsKKysgICAgYUNDKikKKysgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckcm0gJG91dHB1dF9v YmpkaXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0 cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg PSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAjIENvbW1h bmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisr ICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAg IworKyAgICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0 aGlzIGNvbXBpbGVyIGZyb20KKysgICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2Jq ZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKyAgICAgICMgZnJvbSB0aGUgb3V0 cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysgICAg ICAjIGRlcGVuZGVuY2llcy4KKysgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgZ3JlcCAiWy1d TCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3Qu JG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6 Ijs7ZXNhYzsgZG9uZTsgZWNobyAkbGlzdCcKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIGlm IHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckcm0g JG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn c350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYicKKysgICAgICBlbHNlCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAg ICBmaQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGhwdXgxMCp8aHB1eDExKikK KysgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgorKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfStiICR7d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysg ICAgICBocHBhKjY0KnxpYTY0KikgOzsKKysgICAgICAqKQorKwlleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfQ1hYPScke3dsfS1FJworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgIGZpCisr ICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgIGhwcGEqNjQqfGlhNjQqKQorKyAgICAgIGhhcmRj b2RlX2RpcmVjdF9DWFg9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwor KyAgICAgIDs7CisrICAgICopCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKKysgICAg ICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkJ CQkJICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKKysJCQkJCSAgICAgICMgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgIENDKikKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0CisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysgICAgICBhQ0MqKQorKwljYXNl ICRob3N0X2NwdSBpbgorKwlocHBhKjY0KikKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIg JHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCop CisrCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJZXNhYworKwkjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz CisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJl IHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJIworKwkjIFRoZXJl IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9t CisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0 byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQg aW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRlbmNpZXMuCisrCW91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpl eHQgMj4mMSkgfCBncmVwICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBj YXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7 OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCisrCTs7CisrICAg ICAgKikKKysJaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysJICBpZiB0ZXN0ICR3aXRoX2du dV9sZCA9IG5vOyB0aGVuCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgaHBwYSo2NCop CisrCSAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAk e3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgOzsKKysJICAg IGlhNjQqKQorKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIg LWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgICAgIDs7CisrCSAgICAqKQorKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hY PSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgOzsKKysJ ICAgIGVzYWMKKysJICBmaQorKwllbHNlCisrCSAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCSAgbGRfc2hsaWJzX0NYWD1ubworKwlmaQorKwk7OworKyAgICBl c2FjCisrICAgIDs7CisrICBpbnRlcml4WzMtOV0qKQorKyAgICBoYXJkY29kZV9kaXJlY3RfQ1hY PW5vCisrICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKyAgICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJworKyAgICAjIEhhY2s6IE9uIEludGVyaXggMy54 LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCisrICAgICMg SW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4 MTAwMDAwMDAgYnkKKysgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxp Y3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorKyAgICAjIGNvbnN1bWluZyBhbmQgZnJh Z21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCisrICAg ICMgMjU2IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZG RkMwMDAwIGF0IGxpbmsKKysgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBh bHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisrICAgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0taCwkc29uYW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYg LyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisrICAgIGFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8k c29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwk b3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JB TkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAg ICA7OworKyAgaXJpeDUqIHwgaXJpeDYqKQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAg ICAgIENDKikKKysJIyBTR0kgQysrCisrCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1h bGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJIyBBcmNoaXZlcyBjb250 YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSMgIkNDIC1h ciIsIHdoZXJlICJDQyIgaXMgdGhlIElSSVggQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkjIG5l Y2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQK KysJIyBpbiB0aGUgYXJjaGl2ZS4KKysJb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtYXIgLVdS LC11IC1vICRvbGRsaWIgJG9sZG9ianMnCisrCTs7CisrICAgICAgKikKKysJaWYgdGVzdCAiJEdY WCIgPSB5ZXM7IHRoZW4KKysJICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJ ICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3ds fS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3ds fSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCSAgZWxzZQorKwkgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNl dF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgLW8gJGxpYicKKysJICBmaQorKwlmaQorKwlsaW5r X2FsbF9kZXBsaWJzX0NYWD15ZXMKKysJOzsKKysgICAgZXNhYworKyAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrICAgIDs7CisrICBsaW51eCogfCBrKmJzZCotZ251 KQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIEtDQyopCisrCSMgS3VjayBhbmQg QXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKKysKKysJIyBLQ0Mgd2lsbCBvbmx5 IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkjIGVuZHMgd2l0 aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSMg dG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisrCWFyY2hp dmVfY21kc19DWFg9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1wo W14oKTAtOUEtWmEtent9XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRT RUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAk c29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCWFyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFte KCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VE IC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNv bmFtZSAtbyBcJHRlbXBsaWIgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJv bHM7IG12IFwkdGVtcGxpYiAkbGliJworKwkjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJp ZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBz aGFyZWQgbGlicmFyeS4KKysJIworKwkjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5 IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5 c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUg b3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJ IyBkZXBlbmRlbmNpZXMuCisrCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJEND ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+ JjEgfCBncmVwICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBm b3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0i JGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsg ZWNobyAkbGlzdCcKKysKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1y cGF0aCwkbGliZGlyJworKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhw b3J0LWR5bmFtaWMnCisrCisrCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVz IG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMg dGhlIEtBSSBDKysgY29tcGlsZXIuCisrCW9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0 aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJOzsKKysgICAgICBpY3BjKikKKysJIyBJbnRlbCBD KysKKysJd2l0aF9nbnVfbGQ9eWVzCisrCSMgdmVyc2lvbiA4LjAgYW5kIGFib3ZlIG9mIGljcGMg Y2hva2Ugb24gbXVsdGlwbHkgZGVmaW5lZCBzeW1ib2xzCisrCSMgaWYgd2UgYWRkICRwcmVkZXBf b2JqZWN0cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywgaG93ZXZlciA3LjEgYW5kCisrCSMgZWFybGll ciBkbyBub3QgYWRkIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCisrCWNhc2UgYCRDQyAtViAyPiYx YCBpbgorKwkqIlZlcnNpb24gNy4iKikKKysgIAkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgCSAgYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAt byAkbGliJworKwkgIDs7CisrCSopICAjIFZlcnNpb24gOC4wIG9yIG5ld2VyCisrCSAgdG1wX2lk eW49CisrCSAgY2FzZSAkaG9zdF9jcHUgaW4KKysJICAgIGlhNjQqKSB0bXBfaWR5bj0nIC1pX2R5 bmFtaWMnOzsKKysJICBlc2FjCisrICAJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCci JHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAt c2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0 X3N5bWJvbHMgLW8gJGxpYicKKysJICA7OworKwllc2FjCisrCWFyY2hpdmVfY21kc19uZWVkX2xj X0NYWD1ubworKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxp YmRpcicKKysJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5h bWljJworKwl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZl JGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwk7OworKyAgICAgIHBnQ0Mq IHwgcGdjcHAqKQorKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKKysJYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIC1vICRsaWInCisrICAJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAk e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisr CisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBhdGggJHt3bH0kbGli ZGlyJworKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFt aWMnCisrCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVg Zm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5l d19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIk bmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKyAgICAgICAgOzsK KysgICAgICBjeHgqKQorKwkjIENvbXBhcSBDKysKKysJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWFyY2hp dmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgIC1vICRsaWIgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5 bWJvbHMnCisrCisrCXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCWhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKKysJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cl9DWFg9OgorKworKwkjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3Nl IG91dHB1dCB0aGF0IGxpc3RzCisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBm aWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFy eS4KKysJIworKwkjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQg dGhpcyBjb21waWxlciBmcm9tCisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3Qg ZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRo YXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRlbmNp ZXMuCisrCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENG TEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwICJsZCJgOyB0ZW1wbGlzdD1gZWNo byAkdGVtcGxpc3QgfCAkU0VEICJzL1woXi4qbGQuKlwpXCggLipsZCAuKiRcKS9cMS8iYDsgbGlz dD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQp IGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7 IGRvbmU7IGVjaG8gJGxpc3QnCisrCTs7CisrICAgICAgKikKKysJY2FzZSBgJENDIC1WIDI+JjEg fCBzZWQgNXFgIGluCisrCSpTdW5cIEMqKQorKwkgICMgU3VuIEMrKyA1LjkKKysJICBub191bmRl ZmluZWRfZmxhZ19DWFg9JyAtemRlZnMnCisrCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HJHth bGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRz b25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRl eHBvcnRfc3ltYm9scycKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGli ZGlyJworKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hp dmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVz dCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29u dlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFy Y2hpdmUnCisrCisrCSAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgorKwkg ICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRf ZXh0IDI+JjEKKysJICAjIHdvdWxkIGJlIGJldHRlci4KKysJICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0nZWNobycKKysKKysJICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxl cyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0 aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1 cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAjIGluIHRoZSBhcmNo aXZlLgorKwkgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRv YmpzJworKwkgIDs7CisrCWVzYWMKKysJOzsKKysgICAgZXNhYworKyAgICA7OworKyAgbHlueG9z KikKKysgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAg IGxkX3NobGlic19DWFg9bm8KKysgICAgOzsKKysgIG04OGsqKQorKyAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgbGRfc2hsaWJzX0NYWD1ubworKyAg ICA7OworKyAgbXZzKikKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBjeHgqKQor KwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJbGRfc2hsaWJz X0NYWD1ubworKwk7OworKyAgICAgICopCisrCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAorKwlsZF9zaGxpYnNfQ1hYPW5vCisrCTs7CisrICAgIGVzYWMKKysgICAg OzsKKysgIG5ldGJzZCopCisrICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBf X0VMRl9fID4vZGV2L251bGw7IHRoZW4KKysgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckTEQgLUJz aGFyZWFibGUgIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGxpbmtlcl9mbGFncycKKysgICAgICB3bGFyYz0KKysgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVj dF9DWFg9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysgICAgZmkK KysgICAgIyBXb3JrYXJvdW5kIHNvbWUgYnJva2VuIHByZS0xLjUgdG9vbGNoYWlucworKyAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4k b2JqZXh0IDI+JjEgfCBncmVwIGNvbmZ0ZXN0LiRvYmpleHQgfCAkU0VEIC1lICJzOi1sZ2NjIC1s YyAtbGdjYzo6IicKKysgICAgOzsKKysgIG9wZW5ic2QyKikKKysgICAgIyBDKysgc2hhcmVkIGxp YnJhcmllcyBhcmUgZmFpcmx5IGJyb2tlbgorKyAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgIDs7 CisrICBvcGVuYnNkKikKKysgICAgaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4K KysgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXJfQ1hYPW5vCisrICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19m bGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAtbyAkbGliJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Q1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKyAgICAgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxG X18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2Nw dSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NY WD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlLCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWNf Q1hYPScke3dsfS1FJworKwl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFyYyInLS13 aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisr ICAgICAgZmkKKysgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysgICAgZWxz ZQorKyAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgZmkKKysgICAgOzsKKysgIG9zZjMqKQor KyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIEtDQyopCisrCSMgS3VjayBhbmQgQXNz b2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKKysKKysJIyBLQ0Mgd2lsbCBvbmx5IGNy ZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkjIGVuZHMgd2l0aCAi LnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSMgdG8g aXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisrCWFyY2hpdmVf Y21kc19DWFg9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14o KTAtOUEtWmEtent9XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQg LWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29u YW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCisrCWhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKwloYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yX0NYWD06CisrCisrCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZp bGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIg aXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisrCW9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJz dGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysKKysJOzsKKysgICAgICBSQ0MqKQorKwkjIFJh dGlvbmFsIEMrKyAyLjQuMQorKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKKysJbGRfc2hsaWJzX0NYWD1ubworKwk7OworKyAgICAgIGN4eCopCisrCWFsbG93X3Vu ZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFy Y2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7 d2x9LXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysJaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9DWFg9OgorKworKwkjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJi b3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVj dCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGli cmFyeS4KKysJIworKwkjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZl bnQgdGhpcyBjb21waWxlciBmcm9tCisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmpl Y3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNv IHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRl bmNpZXMuCisrCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQg JENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwICJsZCIgfCBncmVwIC12ICJs ZDoiYDsgdGVtcGxpc3Q9YGVjaG8gJHRlbXBsaXN0IHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4q bGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGlu IGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0 PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCisrCTs7CisrICAgICAgKikKKysJ aWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisr CSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3 bH1cKicKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxv d191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3Ry aW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtbyAkbGliJworKworKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9 OgorKworKwkgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0 cHV0IHRoYXQgbGlzdHMKKysJICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmls ZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFy eS4KKysJICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBj b25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwICJcLUwiJworKworKwllbHNlCisrCSAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgbGRfc2hsaWJzX0NYWD1u bworKwlmaQorKwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICBvc2Y0KiB8IG9zZjUqKQorKyAg ICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIEtDQyopCisrCSMgS3VjayBhbmQgQXNzb2Np YXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKKysKKysJIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0 ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkjIGVuZHMgd2l0aCAiLnNv IiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSMgdG8gaXRz IHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisrCWFyY2hpdmVfY21k c19DWFg9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAt OUEtWmEtent9XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUg InMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1l IC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCisrCWhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yX0NYWD06CisrCisrCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVz IG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkjIHRoZSBLQUkgQysrIGNvbXBpbGVyLgorKwlvbGRf YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCTs7CisrICAgICAg UkNDKikKKysJIyBSYXRpb25hbCBDKysgMi40LjEKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysgICAgICBjeHgq KQorKwlhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisr CWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNo byAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZm9y IGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0 ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgorKwkgIGVjaG8gIi1oaWRkZW4iPj4g JGxpYi5leHB+CisrCSAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz IC1tc3ltIC1zb25hbWUgJHNvbmFtZSAtV2wsLWlucHV0IC1XbCwkbGliLmV4cCAgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uCSR2ZXJzdHJpbmdgIC11cGRhdGVfcmVn aXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KKysJICAkcm0gJGxp Yi5leHAnCisrCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRp cicKKysJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkjIENvbW1hbmRzIHRv IG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSMgd2hh dCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hl bgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJIworKwkjIFRoZXJlIGRvZXNuJ3Qg YXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSMgZXhw bGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0 aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQg aW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRlbmNpZXMuCisrCW91dHB1dF92ZXJib3NlX2xpbmtf Y21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+ JjEgfCBncmVwICJsZCIgfCBncmVwIC12ICJsZDoiYDsgdGVtcGxpc3Q9YGVjaG8gJHRlbXBsaXN0 IHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHog aW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0 ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8g JGxpc3QnCisrCTs7CisrICAgICAgKikKKysJaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScg JHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm JiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJ ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGly JworKwkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKKysKKysJICAjIENvbW1hbmRz IHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAg IyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNl ZCB3aGVuCisrCSAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYx IHwgZ3JlcCAiXC1MIicKKysKKysJZWxzZQorKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysr IGxpYnJhcnkgc3VwcG9ydAorKwkgIGxkX3NobGlic19DWFg9bm8KKysJZmkKKysJOzsKKysgICAg ZXNhYworKyAgICA7OworKyAgcHNvcyopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysr IGxpYnJhcnkgc3VwcG9ydAorKyAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgIDs7CisrICBzdW5v czQqKQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIENDKikKKysJIyBTdW4gQysr IDQueAorKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJbGRf c2hsaWJzX0NYWD1ubworKwk7OworKyAgICAgIGxjYyopCisrCSMgTHVjaWQKKysJIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCWxkX3NobGlic19DWFg9bm8KKysJ OzsKKysgICAgICAqKQorKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKKysJbGRfc2hsaWJzX0NYWD1ubworKwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICBzb2xh cmlzKikKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBDQyopCisrCSMgU3VuIEMr KyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysgICAgICAgIGFyY2hpdmVfY21kc19uZWVk X2xjX0NYWD15ZXMKKysJbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgLXpkZWZzJworKwlhcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAgLWgkc29uYW1lIC1vICRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJGVjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSRDQyAt RyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICAke3dsfS1NICR7d2x9JGxpYi5leHAgLWgkc29uYW1l IC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzfiRybSAkbGliLmV4cCcKKysKKysJaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19DWFg9Jy1SJGxpYmRpcicKKysJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8K KysJY2FzZSAkaG9zdF9vcyBpbgorKwkgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0u KikgOzsKKysJICAqKQorKwkgICAgIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBh bmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKKysJICAgICMgYnV0IHVuZGVyc3RhbmRzIGAteiBs aW5rZXJfZmxhZycuCisrCSAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUg Mi41LjE/KQorKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScteiBhbGxleHRyYWN0 JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworKwkgICAgOzsKKysJZXNhYworKwlsaW5r X2FsbF9kZXBsaWJzX0NYWD15ZXMKKysKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8n CisrCisrCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3Jl YXRlZCB1c2luZworKwkjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21w aWxlci4gIFRoaXMgaXMKKysJIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0 ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCisrCSMgaW4gdGhlIGFyY2hpdmUuCisrCW9sZF9hcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJworKwk7OworKyAgICAgIGdj eCopCisrCSMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCWFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysJIyBU aGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCisrCW9s ZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xk b2JqcycKKysJOzsKKysgICAgICAqKQorKwkjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlz IGxpbmtlcgorKwlpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g bm87IHRoZW4KKysJICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS16ICR7d2x9ZGVmcycK KysJICBpZiAkQ0MgLS12ZXJzaW9uIHwgZ3JlcCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVu CisrCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxBR1Mg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgYXJjaGl2ZV9leHBz eW1fY21kc19DWFg9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3lt Ym9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDog KjsgfTsiID4+ICRsaWIuZXhwfgorKwkJJENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHds JGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJworKworKwkgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgIG91 dHB1dF92ZXJib3NlX2xpbmtfY21kPSIkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRv YmpleHQgMj4mMSB8IGdyZXAgXCJcLUxcIiIKKysJICBlbHNlCisrCSAgICAjIGcrKyAyLjcgYXBw ZWFycyB0byByZXF1aXJlIGAtRycgTk9UIGAtc2hhcmVkJyBvbiB0aGlzCisrCSAgICAjIHBsYXRm b3JtLgorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICBhcmNoaXZlX2V4cHN5 bV9jbWRzX0NYWD0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1i b2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAq OyB9OyIgPj4gJGxpYi5leHB+CisrCQkkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5l eHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJworKworKwkgICAgIyBDb21tYW5kcyB0 byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAg IyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNl ZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSIkQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEg fCBncmVwIFwiXC1MXCIiCisrCSAgZmkKKysKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nJHt3bH0tUiAkd2wkbGliZGlyJworKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICBzb2xh cmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7CisrCSAgKikKKysJICAgIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2Ug JHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworKwkgICAgOzsKKysJICBlc2FjCisrCWZpCisr CTs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8 IHN5c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0 XSopCisrICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teix0ZXh0JworKyAgICBhcmNo aXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9 bm8KKysgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKworKyAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgIENDKikKKysJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LWgs JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9s cyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCisrCTs7CisrICAgICAgKikKKysJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhw b3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJworKwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICBzeXN2NSogfCBzY28z LjJ2NSogfCBzY281djYqKQorKyAgICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMg d2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAorKyAgICAjIGxpbmsgd2l0aCAtbGMs IGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisrICAg ICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFy eSB3b3VsZAorKyAgICAjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcg R05VIGxkIHdlIHVzZSAteiB0ZXh0CisrICAgICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNv bWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKyAgICAjIGFzIC16IGRl ZnMuCisrICAgICMgRm9yIHNlY3VyaXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRl ZCB0aGF0IHlvdSBhbHdheXMKKysgICAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWluZyBz aGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKKysgICAgIyBEVF9SVU5QQVRIIHRhZyBm cm9tIGV4ZWN1dGFibGVzIGFuZCBsaWJyYXJpZXMuICBCdXQgZG9pbmcgc28KKysgICAgIyByZXF1 aXJlcyB0aGF0IHlvdSBjb21waWxlIGV2ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEgcGFpbi4K KysgICAgIyBTbyB0aGF0IGJlaGF2aW91ciBpcyBvbmx5IGVuYWJsZWQgaWYgU0NPQUJTUEFUSCBp cyBzZXQgdG8gYQorKyAgICAjIG5vbi1lbXB0eSB2YWx1ZSBpbiB0aGUgZW52aXJvbm1lbnQuICBN b3N0IGxpa2VseSBvbmx5IHVzZWZ1bCBmb3IKKysgICAgIyBjcmVhdGluZyBvZmZpY2lhbCBkaXN0 cmlidXRpb25zIG9mIHBhY2thZ2VzLgorKyAgICAjIFRoaXMgaXMgYSBoYWNrIHVudGlsIGxpYnRv b2wgb2ZmaWNpYWxseSBzdXBwb3J0cyBhYnNvbHV0ZSBwYXRoCisrICAgICMgbmFtZXMgZm9yIHNo YXJlZCBsaWJyYXJpZXMuCisrICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teix0ZXh0 JworKyAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosbm9kZWZzJworKyAgICBh cmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9D WFg9bm8KKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9J2B0ZXN0IC16ICIkU0NP QUJTUEFUSCIgJiYgZWNobyAke3dsfS1SLCRsaWJkaXJgJworKyAgICBoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yX0NYWD0nOicKKysgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrICAgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUJleHBvcnQnCisrICAgIHJ1bnBhdGhf dmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBD QyopCisrCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7 aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LUJleHBv cnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRp cn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisr CTs7CisrICAgICAgKikKKysJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0taCxc JHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRD QyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJT UEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIHRhbmRlbSop CisrICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgTkNDKikKKysJIyBOb25TdG9wLVVY IE5DQyAzLjIwCisrCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAor KwlsZF9zaGxpYnNfQ1hYPW5vCisrCTs7CisrICAgICAgKikKKysJIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysgICAg ZXNhYworKyAgICA7OworKyAgdnh3b3JrcyopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgIDs7CisrICAq KQorKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAg bGRfc2hsaWJzX0NYWD1ubworKyAgICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNf Q1hYIiA+JjY7IH0KKyt0ZXN0ICIkbGRfc2hsaWJzX0NYWCIgPSBubyAmJiBjYW5fYnVpbGRfc2hh cmVkPW5vCisrCisrR0NDX0NYWD0iJEdYWCIKKytMRF9DWFg9IiRMRCIKKysKKytjYXQgPiBjb25m dGVzdC4kYWNfZXh0IDw8RU9GCisrY2xhc3MgRm9vCisreworK3B1YmxpYzoKKysgIEZvbyAodm9p ZCkgeyBhID0gMDsgfQorK3ByaXZhdGU6CisrICBpbnQgYTsKKyt9OworK0VPRgorKworK2lmIHsg KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorKyAgKGV2 YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 OyB0aGVuCisrICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5l Y2Vzc2FyeQorKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCisrCisr ICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUg YmVmb3JlCisrICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmlsZS4KKysgIHByZV90ZXN0X29iamVj dF9kZXBzX2RvbmU9bm8KKysKKysgICMgVGhlIGAqJyBpbiB0aGUgY2FzZSBtYXRjaGVzIGZvciBh cmNoaXRlY3R1cmVzIHRoYXQgdXNlIGBjYXNlJyBpbgorKyAgIyAkb3V0cHV0X3ZlcmJvc2VfY21k IGNhbiB0cmlnZ2VyIGdsb2IgZXhwYW5zaW9uIGR1cmluZyB0aGUgbG9vcAorKyAgIyBldmFsIHdp dGhvdXQgdGhpcyBzdWJzdGl0dXRpb24uCisrICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1gJGVj aG8gIlgkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQiIHwgJFhzZWQgLWUgIiRub19nbG9iX3N1YnN0 ImAKKysKKysgIGZvciBwIGluIGBldmFsICRvdXRwdXRfdmVyYm9zZV9saW5rX2NtZGA7IGRvCisr ICAgIGNhc2UgJHAgaW4KKysKKysgICAgLUwqIHwgLVIqIHwgLWwqKQorKyAgICAgICAjIFNvbWUg Y29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgorKyAg ICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCisrICAgICAgIGlmIHRlc3QgJHAgPSAiLUwiIFwKKysJ ICB8fCB0ZXN0ICRwID0gIi1SIjsgdGhlbgorKwkgcHJldj0kcAorKwkgY29udGludWUKKysgICAg ICAgZWxzZQorKwkgcHJldj0KKysgICAgICAgZmkKKysKKysgICAgICAgaWYgdGVzdCAiJHByZV90 ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKysJIGNhc2UgJHAgaW4KKysJIC1MKiB8 IC1SKikKKysJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3VsZCBjb21l IGFmdGVyIHRob3NlCisrCSAgICMgcHJvdmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRlcHMgYWxy ZWFkeSBjb21lIGFmdGVyIHRoZQorKwkgICAjIHVzZXIgc3VwcGxpZWQgbGlicyBzbyB0aGVyZSBp cyBubyBuZWVkIHRvIHByb2Nlc3MgdGhlbS4KKysJICAgaWYgdGVzdCAteiAiJGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aF9DWFgiOyB0aGVuCisrCSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRo X0NYWD0iJHtwcmV2fSR7cH0iCisrCSAgIGVsc2UKKysJICAgICBjb21waWxlcl9saWJfc2VhcmNo X3BhdGhfQ1hYPSIke2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFh9ICR7cHJldn0ke3B9Igor KwkgICBmaQorKwkgICA7OworKwkgIyBUaGUgIi1sIiBjYXNlIHdvdWxkIG5ldmVyIGNvbWUgYmVm b3JlIHRoZSBvYmplY3QgYmVpbmcKKysJICMgbGlua2VkLCBzbyBkb24ndCBib3RoZXIgaGFuZGxp bmcgdGhpcyBjYXNlLgorKwkgZXNhYworKyAgICAgICBlbHNlCisrCSBpZiB0ZXN0IC16ICIkcG9z dGRlcHNfQ1hYIjsgdGhlbgorKwkgICBwb3N0ZGVwc19DWFg9IiR7cHJldn0ke3B9IgorKwkgZWxz ZQorKwkgICBwb3N0ZGVwc19DWFg9IiR7cG9zdGRlcHNfQ1hYfSAke3ByZXZ9JHtwfSIKKysJIGZp CisrICAgICAgIGZpCisrICAgICAgIDs7CisrCisrICAgICouJG9iamV4dCkKKysgICAgICAgIyBU aGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmplY3QgZmlsZSBvbmx5IHNob3dzIHVwCisrICAg ICAgICMgb25jZSBpbiB0aGUgY29tcGlsZXIgb3V0cHV0LgorKyAgICAgICBpZiB0ZXN0ICIkcCIg PSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4KKysJIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9 eWVzCisrCSBjb250aW51ZQorKyAgICAgICBmaQorKworKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rl c3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgorKwkgaWYgdGVzdCAteiAiJHByZWRlcF9v YmplY3RzX0NYWCI7IHRoZW4KKysJICAgcHJlZGVwX29iamVjdHNfQ1hYPSIkcCIKKysJIGVsc2UK KysJICAgcHJlZGVwX29iamVjdHNfQ1hYPSIkcHJlZGVwX29iamVjdHNfQ1hYICRwIgorKwkgZmkK KysgICAgICAgZWxzZQorKwkgaWYgdGVzdCAteiAiJHBvc3RkZXBfb2JqZWN0c19DWFgiOyB0aGVu CisrCSAgIHBvc3RkZXBfb2JqZWN0c19DWFg9IiRwIgorKwkgZWxzZQorKwkgICBwb3N0ZGVwX29i amVjdHNfQ1hYPSIkcG9zdGRlcF9vYmplY3RzX0NYWCAkcCIKKysJIGZpCisrICAgICAgIGZpCisr ICAgICAgIDs7CisrCisrICAgICopIDs7ICMgSWdub3JlIHRoZSByZXN0LgorKworKyAgICBlc2Fj CisrICBkb25lCisrCisrICAjIENsZWFuIHVwLgorKyAgcm0gLWYgYS5vdXQgYS5leGUKKytlbHNl CisrICBlY2hvICJsaWJ0b29sLm00OiBlcnJvcjogcHJvYmxlbSBjb21waWxpbmcgQ1hYIHRlc3Qg cHJvZ3JhbSIKKytmaQorKworKyRybSAtZiBjb25mZXN0LiRvYmpleHQKKysKKytjb21waWxlcl9s aWJfc2VhcmNoX2RpcnNfQ1hYPQorK2lmIHRlc3QgLW4gIiRjb21waWxlcl9saWJfc2VhcmNoX3Bh dGhfQ1hYIjsgdGhlbgorKyAgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD1gZWNobyAiICR7 Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWH0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1l ICdzIV4gISEnYAorK2ZpCisrCisrIyBQT1JUTUU6IG92ZXJyaWRlIGFib3ZlIHRlc3Qgb24gc3lz dGVtcyB3aGVyZSBpdCBpcyBicm9rZW4KKytjYXNlICRob3N0X29zIGluCisraW50ZXJpeFszLTld KikKKysgICMgSW50ZXJpeCAzLjUgaW5zdGFsbHMgY29tcGxldGVseSBob3NlZCAubGEgZmlsZXMg Zm9yIEMrKywgc28gcmF0aGVyIHRoYW4KKysgICMgaGFjayBhbGwgYXJvdW5kIGl0LCBsZXQncyBq dXN0IHRydXN0ICJnKysiIHRvIERUUlQuCisrICBwcmVkZXBfb2JqZWN0c19DWFg9CisrICBwb3N0 ZGVwX29iamVjdHNfQ1hYPQorKyAgcG9zdGRlcHNfQ1hYPQorKyAgOzsKKysKKytsaW51eCopCisr ICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysgICpTdW5cIEMqKQorKyAgICAjIFN1 biBDKysgNS45CisrICAgICMKKysgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBz dGxwb3J0NCBsaWJyYXJ5IGlzCisrICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGli cmFyeS4gQXZvaWQgc3BlY2lmeWluZworKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIEln bm9yZSBsaWJDcnVuIGFzCisrICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4K KysgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KKysgICAgKiIgLWxpYnJhcnk9c3RscG9y dDQgIiopCisrICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCisrICAgICAgOzsKKysgICAg ZXNhYworKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgor KyAgICAgIHBvc3RkZXBzX0NYWD0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBm aQorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCisrICBDQyopCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcg c3RscG9ydDQgbGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxp YnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJ Z25vcmUgbGliQ3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQu CisrICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBv cnQ0ICIqKQorKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAg IGVzYWMKKysKKysgICAgIyBBZGRpbmcgdGhpcyByZXF1aXJlcyBhIGtub3duLWdvb2Qgc2V0dXAg b2Ygc2hhcmVkIGxpYnJhcmllcyBmb3IKKysgICAgIyBTdW4gY29tcGlsZXIgdmVyc2lvbnMgYmVm b3JlIDUuNiwgZWxzZSBQSUMgb2JqZWN0cyBmcm9tIGFuIG9sZAorKyAgICAjIGFyY2hpdmUgd2ls bCBiZSBsaW5rZWQgaW50byB0aGUgb3V0cHV0LCBsZWFkaW5nIHRvIHN1YnRsZSBidWdzLgorKyAg ICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorKyAgICAgIHBv c3RkZXBzX0NYWD0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7 OworKyAgZXNhYworKyAgOzsKKytlc2FjCisrCisrY2FzZSAiICRwb3N0ZGVwc19DWFggIiBpbgor KyoiIC1sYyAiKikgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vIDs7CisrZXNhYworKworK2x0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYPQorK2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KKytsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAi ID4mNjsgfQorKworKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwg ZXRjLgorKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgbHRfcHJvZ19jb21waWxl cl93bF9DWFg9Jy1XbCwnCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRp YycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJ WCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgor KwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgYW1pZ2Fv cyopCisrICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxk IHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxh ZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICMgbGlr ZSBgLW02ODA0MCcuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctbTY4MDIwIC1y ZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgOzsKKysgICAgYmVvcyogfCBp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAg ICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorKyAgICAgIDs7CisrICAg IG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiopCisrICAgICAgIyBUaGlzIGhhY2sgaXMg c28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAg ICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3lt Ym9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25v cmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQorKyAgICAgICMgKC0tZGlz YWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSctRERMTF9FWFBPUlQnCisrICAgICAgOzsKKysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikK KysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisrICAgICAgIyBD b21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcworKyAgICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nLWZuby1jb21tb24nCisrICAgICAgOzsKKysgICAgKmRqZ3Bw KikKKysgICAgICAjIERKR1BQIGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBh bGwKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrICAgICAgOzsKKysgICAgaW50 ZXJpeFszLTldKikKKysgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25z IGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hh cmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAgICAgIDs7CisrICAgIHN5c3Y0Kk1QKikKKysg ICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0tS2NvbmZvcm1fcGljCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBocHV4KikKKysgICAg ICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBi dXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4K KysgICAgICBocHBhKjY0KnxpYTY0KikKKysJOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKyAgICAq KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCisrICAgICAgOzsKKysg ICAgZXNhYworKyAgZWxzZQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4WzQtOV0q KQorKwkjIEFsbCBBSVggY29kZSBpcyBQSUMuCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCisrCSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwllbHNlCisrCSAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfQ1hYPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisrCWZpCisr CTs7CisrICAgICAgY2hvcnVzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJY3hjaDY4KikK KysJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICMgX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgQ1hYKT0iLS1ub19hdXRvX2luc3RhbnRpYXRpb24gLXUgX19t YWluIC11IF9fcHJlbWFpbiAtdSBfYWJvcnQgLXIgJENPT0xfRElSL2xpYi9saWJPcmIuYSAkTVZN RV9ESVIvbGliL0NDL2xpYkMuYSAkTVZNRV9ESVIvbGliL2NsYXNzaXgvbGliY3gucy5hIgorKwkg IDs7CisrCWVzYWMKKysJOzsKKysgICAgICAgZGFyd2luKikKKysgICAgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisrICAgICAgICAgIyBDb21tb24gc3ltYm9scyBu b3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcworKyAgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCisrICAgICAgICAgICB4bGMqKQorKyAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSctcW5vY29tbW9uJworKyAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1X bCwnCisrICAgICAgICAgICA7OworKyAgICAgICAgIGVzYWMKKysgICAgICAgOzsKKysgICAgICBk Z3V4KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBlYysrKikKKysJICAgIGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICA7OworKwkgIGdoY3gqKQorKwkgICAgIyBH cmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0n LXBpYycKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBm cmVlYnNkKiB8IGRyYWdvbmZseSopCisrCSMgRnJlZUJTRCB1c2VzIEdOVSBDKysKKysJOzsKKysg ICAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4K KysJICBDQyopCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrCSAgICBp ZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKysJICAgICAgbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYPScrWicKKysJICAgIGZpCisrCSAgICA7OworKwkgIGFDQyopCisrCSAgICBsdF9w cm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkg ICAgaHBwYSo2NCp8aWE2NCopCisrCSAgICAgICMgK1ogdGhlIGRlZmF1bHQKKysJICAgICAgOzsK KysJICAgICopCisrCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCisrCSAgICAg IDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7 CisrICAgICAgaW50ZXJpeCopCisrCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3VhbCBD KysgKG5vIHNoYXJlZCBsaWJzKQorKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/CisrCTs7 CisrICAgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysJY2FzZSAkY2NfYmFzZW5h bWUgaW4KKysJICBDQyopCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJ ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCisrCSAgICAjIEND IHBpYyBmbGFnIC1LUElDIGlzIHRoZSBkZWZhdWx0LgorKwkgICAgOzsKKysJICAqKQorKwkgICAg OzsKKysJZXNhYworKwk7OworKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrCWNhc2UgJGNj X2Jhc2VuYW1lIGluCisrCSAgS0NDKikKKysJICAgICMgS0FJIEMrKyBDb21waWxlcgorKwkgICAg bHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy0tYmFja2VuZCAtV2wsJworKwkgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPSctZlBJQycKKysJICAgIDs7CisrCSAgaWNwYyogfCBlY3BjKikKKysJ ICAgICMgSW50ZWwgQysrCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJ ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCisrCSAgICA7OworKwkgIHBnQ0MqIHwgcGdjcHAqKQor KwkgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIuCisrCSAgICBsdF9wcm9nX2NvbXBp bGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZwaWMn CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgOzsK KysJICBjeHgqKQorKwkgICAgIyBDb21wYXEgQysrCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElD IGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4 IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisrCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFg9CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25f c2hhcmVkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQg NXFgIGluCisrCSAgICAqU3VuXCBDKikKKysJICAgICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0n LVFvcHRpb24gbGQgJworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYwor Kwk7OworKyAgICAgIGx5bnhvcyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7CisrICAgICAg bXZzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYPSctVyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikKKysJICAg IDs7CisrCWVzYWMKKysJOzsKKysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgIG9zZjMqIHwg b3NmNCogfCBvc2Y1KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBLQ0MqKQorKwkgICAg bHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy0tYmFja2VuZCAtV2wsJworKwkgICAgOzsKKysJICBS Q0MqKQorKwkgICAgIyBSYXRpb25hbCBDKysgMi40LjEKKysJICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0nLXBpYycKKysJICAgIDs7CisrCSAgY3h4KikKKysJICAgICMgRGlnaXRhbC9Db21w YXEgQysrCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgICMgTWFr ZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEK KysJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KKysJ ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0NYWD0nLW5vbl9zaGFyZWQnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2Fj CisrCTs7CisrICAgICAgcHNvcyopCisrCTs7CisrICAgICAgc29sYXJpcyopCisrCWNhc2UgJGNj X2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50 ZXJsaW5lIEMrKworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKKysJICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3dsX0NYWD0nLVFvcHRpb24gbGQgJworKwkgICAgOzsKKysJICBnY3gqKQorKwkgICAg IyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLVBJQycKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAg ICBzdW5vczQqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgICMgU3Vu IEMrKyA0LngKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKKysJICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrCSAgICA7OworKwkgIGxjYyop CisrCSAgICAjIEx1Y2lkCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCisr CSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgdGFuZGVtKikK KysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBOQ0MqKQorKwkgICAgIyBOb25TdG9wLVVYIE5D QyAzLjIwCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgOzsK KysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJl KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2VuYW1l IGluCisrCSAgQ0MqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgbHRfcHJvZ19jb21waWxl cl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICB2 eHdvcmtzKikKKysJOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9z aGFyZWRfQ1hYPW5vCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgPiY1CisrJGFz X2VjaG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiID4mNjsgfQorKworKyMKKysjIENoZWNr IHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3Qg LW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiOyB0aGVuCisrCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGls ZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3b3Jrcy4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3By b2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWD1ubworKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVz dC4kYWNfZXh0CisrICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WCAtRFBJQyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxh c3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmlu ZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2Nv bXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAg ICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQg d29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFy aWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNf Y29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGls ZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVy X2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2 YWwgZWNobyAiXCJcJGFzX21lOjEzNDgwOiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwg IiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgIGVjaG8gIiRhc19tZToxMzQ4NDogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUi OyB0aGVuCisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhl IG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJl IHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KKysgICAgICRlY2hvICJYJF9s dF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAK KysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgor KyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25m dGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3Bp Y193b3Jrc19DWFg9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJHJtIGNvbmZ0ZXN0KgorKwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29t cGlsZXJfcGljX3dvcmtzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVy X3BpY193b3Jrc19DWFgiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxl cl9waWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRoZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYIGluCisrICAgICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9IiAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIiA7OworKyAgICAgZXNhYwor K2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorKyAgICAgbHRfcHJvZ19jb21w aWxlcl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1ubworK2ZpCisrCisrZmkKKytjYXNlICRob3N0X29z IGluCisrICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBp cyBtZWFuaW5nbGVzczoKKysgICpkamdwcCopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0KKysgICAgOzsKKysgICopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0iJGx0X3By b2dfY29tcGlsZXJfcGljX0NYWCAtRFBJQyIKKysgICAgOzsKKytlc2FjCisrCisrIworKyMgQ2hl Y2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKysjCisrd2w9 JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0NYWFwiCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtz IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0 X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJv Z19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGlj X3dvcmtzX0NYWD1ubworKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgTERGTEFHUz0i JExERkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtf dGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNv bmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMg VGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVj b2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBp ZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3Jz IHRvIHRoZSBjb25maWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAg ICAgJGVjaG8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4g Y29uZnRlc3QuZXhwCisrICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIg PmNvbmZ0ZXN0LmVyMgorKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIg Pi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dv cmtzX0NYWD15ZXMKKysgICAgICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgbHRfY3ZfcHJvZ19j b21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRybSAt ciBjb25mdGVzdCoKKysgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGlj X3dvcmtzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193 b3Jrc19DWFgiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0 aWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRoZW4KKysgICAgOgorK2Vsc2UKKysgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfQ1hYPQorK2ZpCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBm aWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGls ZXJfY19vX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9bm8KKysgICAkcm0gLXIg Y29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0 CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIg PiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0 ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRl ciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBj b250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhh dCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVn aW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hv IHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGls ZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxh ZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcm OjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNo byAiXCJcJGFzX21lOjEzNTg0OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9j b21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91 dC9jb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjEzNTg4OiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVz dDIuJGFjX29iamV4dAorKyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdh cm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNh eSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9i b2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorKyAgICAg JFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIK KysgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0 LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJv Z19jb21waWxlcl9jX29fQ1hYPXllcworKyAgICAgZmkKKysgICBmaQorKyAgIGNobW9kIHUrdyAu IDI+JjUKKysgICAkcm0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3Jl YXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlh dGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRybSBvdXQvaWlfZmlsZXMvKiAmJiBy bWRpciBvdXQvaWlfZmlsZXMKKysgICAkcm0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4K KysgICBybWRpciBjb25mdGVzdAorKyAgICRybSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgi ID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjY7IH0KKysK KysKKytoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCisraWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGls ZXJfY19vX0NYWCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KKysgICMg ZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUg dXNlcgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBs b2NrIHdpdGggaGFyZCBsaW5rcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2Fu IGxvY2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9CisrICBoYXJkX2xpbmtzPXllcworKyAg JHJtIGNvbmZ0ZXN0KgorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYm IGhhcmRfbGlua3M9bm8KKysgIHRvdWNoIGNvbmZ0ZXN0LmEKKysgIGxuIGNvbmZ0ZXN0LmEgY29u ZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3Qu YiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1CisrJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+ JjY7IH0KKysgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCisrICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1j IC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1q JyBtYXkgYmUgdW5zYWZlIiA+JjI7fQorKyAgICBuZWVkX2xvY2tzPXdhcm4KKysgIGZpCisrZWxz ZQorKyAgbmVlZF9sb2Nrcz1ubworK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hh cmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9 CisrCisrICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1 bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4WzQtOV0q KQorKyAgICAjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAi LUMiIG9wdGlvbi4KKysgICAgIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFu cyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQorKyAgICBpZiAkTk0gLVYgMj4mMSB8IGdyZXAg J0dOVScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0n JE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkMiA9PSAi VCIpIHx8IChcJDIgPT0gIkQiKSB8fCAoXCQyID09ICJCIikpICYmIChzdWJzdHIoXCQzLDEsMSkg IT0gIi4iKSkgeyBwcmludCBcJDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMn CisrICAgIGVsc2UKKysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NIC1CQ3BnICRs aWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQy ID09ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9ICIuIikpIHsg cHJpbnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgICBmaQor KyAgICA7OworKyAgcHczMiopCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSIkbHRkbGxf Y21kcyIKKysgIDs7CisrICBjeWd3aW4qIHwgbWluZ3cqKQorKyAgICBleHBvcnRfc3ltYm9sc19j bWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUg fCAkU0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS87L14u KlsgXV9fbm1fXy9zL14uKlsgXV9fbm1fX1woW14gXSpcKVsgXVteIF0qL1wxIERBVEEvOy9eSVsg XS9kOy9eW0FJVFddWyBdL3MvLipbIF0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3lt Ym9scycKKysgIDs7CisrICAqKQorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRs aWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4q IC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsKKysgIGVzYWMK KysgIGV4Y2x1ZGVfZXhwc3ltc19DWFg9J19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19G W0lEXV8uKicKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hs aWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KKyt0ZXN0ICIk bGRfc2hsaWJzX0NYWCIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrIworKyMgRG8g d2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KKysjCisrY2FzZSAieCRhcmNoaXZlX2Nt ZHNfbmVlZF9sY19DWFgiIGluCisreHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBh ZGRlZAorKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcworKworKyAgaWYgdGVzdCAiJGVu YWJsZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2Ug JGFyY2hpdmVfY21kc19DWFggaW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhNRTogd2UgbWF5 IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAgICAgIDs7Cisr ICAgICckQ0MgJyopCisrICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0 bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVtcywgLWxnY2Mg aGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYworKyAgICAg ICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRs eSBsaW5rZWQgaW4iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3Vs ZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4mNjsgfQorKyAgICAgICRybSBjb25mdGVz dCoKKysgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0 LiRhY19leHQKKysKKysgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh Y19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0 dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAg c29uYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsaWI9Y29uZnRlc3QKKysgICAgICAgIGxpYm9ianM9 Y29uZnRlc3QuJGFjX29iamV4dAorKyAgICAgICAgZGVwbGlicz0KKysgICAgICAgIHdsPSRsdF9w cm9nX2NvbXBpbGVyX3dsX0NYWAorKwlwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY CisrICAgICAgICBjb21waWxlcl9mbGFncz0tdgorKyAgICAgICAgbGlua2VyX2ZsYWdzPS12Cisr ICAgICAgICB2ZXJzdHJpbmc9CisrICAgICAgICBvdXRwdXRfb2JqZGlyPS4KKysgICAgICAgIGxp Ym5hbWU9Y29uZnRlc3QKKysgICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFs bG93X3VuZGVmaW5lZF9mbGFnX0NYWAorKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hY PQorKyAgICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYXJjaGl2ZV9j bWRzX0NYWCAyXD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIiKSA+ JjUKKysgIChldmFsICRhcmNoaXZlX2NtZHNfQ1hYIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBc Pi9kZXYvbnVsbCAyXD5cJjEpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMp OyB9CisrICAgICAgICB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrICAg ICAgICBlbHNlCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcworKyAgICAgICAgZmkK KysgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0kbHRfc2F2ZV9hbGxvd191bmRlZmlu ZWRfZmxhZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAg ICAgIGZpCisrICAgICAgJHJtIGNvbmZ0ZXN0KgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiID4mNQorKyRhc19lY2hv ICIkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiA+JjY7IH0KKysgICAgICA7OworKyAgICBlc2Fj CisrICBmaQorKyAgOzsKKytlc2FjCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9CisrbGli cmFyeV9uYW1lc19zcGVjPQorK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCisrc29uYW1lX3NwZWM9 Cisrc2hyZXh0X2NtZHM9Ii5zbyIKKytwb3N0aW5zdGFsbF9jbWRzPQorK3Bvc3R1bmluc3RhbGxf Y21kcz0KKytmaW5pc2hfY21kcz0KKytmaW5pc2hfZXZhbD0KKytzaGxpYnBhdGhfdmFyPQorK3No bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCisrdmVyc2lvbl90eXBlPW5vbmUKKytk eW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9Ii9saWIgL3Vzci9saWIiCisrCisrbmVlZF9saWJfcHJlZml4PXVua25vd24KKytoYXJkY29k ZV9pbnRvX2xpYnM9bm8KKysKKysjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1h a2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KKysjIGZsYWdzIHRvIGJlIGxl ZnQgd2l0aG91dCBhcmd1bWVudHMKKytuZWVkX3ZlcnNpb249dW5rbm93bgorKworK2Nhc2UgJGhv c3Rfb3MgaW4KKythaXgzKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJu YW1lLmEnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysKKysgICMgQUlYIDMgaGFzIG5vIHZl cnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFt ZS4KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICA7OworKworK2FpeFs0LTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUg c3VwcG9ydHMgSUE2NAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIGVsc2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxl Y3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxp YnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxp bmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysg ICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMg Zml4ZWQgaW4KKysgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMu MC4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0 LlswMV0uKikKKysgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19f ID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJworKwkgICBlY2hvICcgeWVzICcKKysJICAg ZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCBncmVwIHllcyA+IC9kZXYvbnVsbDsgdGhl bgorKwk6CisrICAgICAgZWxzZQorKwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZmkKKysg ICAgICA7OworKyAgICBlc2FjCisrICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9u aW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKKysg ICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25p bmcgc3VwcG9ydCB0bworKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBi ZSB1c2VmdWwgaW4gZnV0dXJlLgorKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2lu ZyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJ WCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KKysgICAgICAjIGluc3RlYWQgb2YgbGli PG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAorKyAgICAgICMg dHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAg ZWxzZQorKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGli cmFyaWVzIHRocm91Z2ggQUlYNC4yCisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90 IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCisrICAgICAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysgICAgc2hsaWJw YXRoX3Zhcj1MSUJQQVRICisrICBmaQorKyAgOzsKKysKKythbWlnYW9zKikKKysgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisrICAjIENyZWF0ZSAk e2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAgZmluaXNoX2V2 YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBs aWJuYW1lPWAkZWNobyAiWCRsaWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhs aWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkcm0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5 LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFy eS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8 fCBleGl0IDE7IGRvbmUnCisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBs ZC5zbyIKKysgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKworK2JzZGlbNDVd KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGli ZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGli IC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3No bGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25m IGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9saWIg KC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworKyAg IyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKworK2N5 Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJl eHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5v CisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3 KiB8IHllcyxwdzMyKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScK KysgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3Rh bGxfY21kcworKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2Zp bGV9YH4KKysgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jh c2VfZmlsZX0nXCcnaTtlY2hvIFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxkaXI9JGRlc3RkaXIv YGRpcm5hbWUgXCRkbHBhdGhgfgorKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBc JGRsZGlyfgorKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFt ZX4KKysgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lJworKyAgICBwb3N0dW5pbnN0YWxs X2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdc JydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRybSBcJGRscGF0aCcK KysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJl Zml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFt ZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9b Ll0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysg ICAgICA7OworKyAgICBtaW5ndyopCisrICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25h bCAnbGliJyBwcmVmaXgKKysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVs ZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisr ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwg Z3JlcCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9Lywv LGciYAorKyAgICAgIGlmIGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3JlcCAn O1tjLXpDLVpdOi8nID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9i YWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBn Y2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAor KyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJz LiBXZSBjYW4gaGFuZGxlIHRoZQorKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmls ZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3Bl Y2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpk dW1wLAorKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQg cGF0aC4gQWhoLgorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAorKyAgICAgIGVsc2UK KysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgICAgICBm aQorKyAgICAgIDs7CisrICAgIHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHBy ZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8g JHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQg LWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICA7OworKyAg ICBlc2FjCisrICAgIDs7CisrCisrICAqKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0k e3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFtaWNf bGlua2VyPSdXaW4zMiBsZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNo IC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0aF92 YXI9UEFUSAorKyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19saW5r ZXI9IiRob3N0X29zIGR5bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xpYl9w cmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7dmVyc3VmZml4fSRzaGFyZWRfZXh0ICR7bGlibmFtZX0ke3JlbGVh c2V9JHttYWpvcn0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllf UEFUSAorKyAgc2hyZXh0X2NtZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8 fCBlY2hvIC5keWxpYmAnCisrCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9s b2NhbC9saWIgL2xpYiAvdXNyL2xpYicKKysgIDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9uX3R5 cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNo YXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisr ZnJlZWJzZDEqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCogfCBk cmFnb25mbHkqKQorKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0 aGV5IGltcGxlbWVudCBhIG5ldworKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRo aXMuCisrICBpZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpmb3Jt YXQ9YC91c3IvYmluL29iamZvcm1hdGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgor KyAgICBmcmVlYnNkWzEyM10qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9 ZWxmIDs7CisrICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9y bWF0CisrICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJl ZF9leHR9JworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1u bworKyAgICAgIDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3No YXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsK KysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0 X29zIGluCisrICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJz PXllcworKyAgICA7OworKyAgZnJlZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0qIHwg XAorKyAgZnJlZWJzZDQuWzAtNV0gfCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEuMSB8 IGZyZWVic2RlbGY0LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisr ICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24s IGFuZCBEcmFnb25GbHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAg ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2du dSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkq IHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0 byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsg YWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisr ICBpYTY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJz PXllcworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hw dXgzMiAvdXNyL2xvY2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkK KysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl YworKyAgICA7OworKyAgIGhwcGEqNjQqKQorKyAgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBk bGQuc2wiCisrICAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQg d2UgaGFuZGxlIFNITElCX1BBVEgKKysgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KKysgICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKKysgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNy L2Njcy9saWIvcGEyMF82NCIKKysgICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgIDs7CisrICAgKikKKysgICAgc2hyZXh0X2NtZHM9 Jy5zbCcKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJw YXRoX3Zhcj1TSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAj ICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgICA7OworKyAgZXNhYworKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxl c3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdj aG1vZCA1NTUgJGxpYicKKysgIDs7CisrCisraW50ZXJpeFszLTldKikKKysgIHZlcnNpb25fdHlw ZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJworKyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEgKFBF LCBsaWtlIEVMRiknCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7 OworKworK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRob3N0X29zIGlu CisrICAgIG5vbnN0b3B1eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKKysgICAgKikKKysJ aWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKwkJdmVyc2lvbl90eXBl PWxpbnV4CisrCWVsc2UKKysJCXZlcnNpb25fdHlwZT1pcml4CisrCWZpIDs7CisrICBlc2FjCisr ICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIGNhc2UgJGhvc3Rfb3MgaW4K KysgIGlyaXg1KiB8IG5vbnN0b3B1eCopCisrICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KKysgICAg OzsKKysgICopCisrICAgIGNhc2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUgb2Yg dGhlc2Ugc3dpdGNoZXMgdG8gTEQKKysgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiIt bWVsZjMyYnNtaXAgIikKKysgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJp dDs7CisrICAgICotbjMyfCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMy ICIpCisrICAgICAgbGlic3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7CisrICAg ICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQorKyAgICAgIGxpYnN1 ZmY9NjQgc2hsaWJzdWZmPTY0IGxpYm1hZ2ljPTY0LWJpdDs7CisrICAgICopIGxpYnN1ZmY9IHNo bGlic3VmZj0gbGlibWFnaWM9bmV2ZXItbWF0Y2g7OworKyAgICBlc2FjCisrICAgIDs7CisrICBl c2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAorKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3Vm Zn0iCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9s aWIke2xpYnN1ZmZ9IgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKysjIE5v IHNoYXJlZCBsaWIgc3VwcG9ydCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCisrbGlu dXgqb2xkbGQqIHwgbGludXgqYW91dCogfCBsaW51eCpjb2ZmKikKKysgIGR5bmFtaWNfbGlua2Vy PW5vCisrICA7OworKworKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJz ZCotZ251KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9 IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICMgVGhp cyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgorKyAgIyBT b21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisrICAj IGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwor KyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGli c3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysKKysgICMgQXBwZW5k IGxkLnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCisrICBpZiB0ZXN0IC1mIC9l dGMvbGQuc28uY29uZjsgdGhlbgorKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7 IHN5c3RlbShzcHJpbnRmKCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcJDIpKTsgc2tp cCA9IDE7IH0geyBpZiAoIXNraXApIHByaW50IFwkMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5z by5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsgCV0qaHdjYXBbIAldL2Q7cy9bOiwJXS8gL2c7 cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0 X2xkX2V4dHJhIgorKyAgZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNv LjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNl IE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBH TlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21w aWxlcnMsCisrICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlu a2luZyB0aGVzZSBkYXlzIGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hh cmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xp bnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGlu dXggbGQuc28nCisrICA7OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxG X18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgIGZpbmlzaF9jbWRzPSdQ QVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisrICAgIGR5bmFtaWNfbGlu a2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKKysgIGVsc2UKKysgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScK KysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKKysgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCisrICBmaQorKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrbmV3c29zNikKKysg IHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsK KysKKytudG8tcW54KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4 PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisr ICA7OworKworK29wZW5ic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMg U29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2 ZXJzaW9uZWQgbGlicy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9w ZW5ic2QzLjMuKikgbmVlZF92ZXJzaW9uPXllcyA7OworKyAgICAqKSAgICAgICAgICAgICAgICAg ICAgICAgICBuZWVkX3ZlcnNpb249bm8gIDs7CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDov c2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxG X19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7 IHRoZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVu YnNkMi5bODldLiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7OworKyAg ICAgICopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysgICAgICBl c2FjCisrICBlbHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGZp CisrICA7OworKworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hyZXh0X2Nt ZHM9Ii5kbGwiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtlcj0nT1Mv MiBsZC5leGUnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3NmMyogfCBv c2Y0KiB8IG9zZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIg L3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAv dmFyL3NobGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysg IDs7CisrCisrc29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBs aWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRs aWInCisrICA7OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFU SD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGlm IHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJlZml4PW5v CisrICBmaQorKyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMq KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAgc25pKQor KyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmxhcmdlZHlu c3ltJworKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsKKysgICAgc2ll bWVucykKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBtb3Rvcm9s YSkKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysg ICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAgIDs7CisrICBl c2FjCisrICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4K KysgICAgdmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5h bWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVk X2V4dH0uJG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgZmkK KysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9w ZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9s aWIgL2xpYicKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBlbHNlCisr ICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJworKyAg ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4K KysgICAgICBzY28zLjJ2NSopCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKKysgIDs7CisrCisrdXRzNCop CisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworKyopCisrICBkeW5hbWljX2xpbmtlcj1ubwor KyAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGR5bmFt aWNfbGlua2VyIiA+JjUKKyskYXNfZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+JjY7IH0KKyt0ZXN0 ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK2lmIHRl c3QgIiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3N5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworK3N5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytp ZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisrZmkK KysKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjIgorKworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBh dGhfdmFyICRydW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgdmFy aWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0Nf RVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0 aHMgaW50byBwcm9ncmFtcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGhhcmRj b2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcy4uLiAiID4mNjsgfQorK2hhcmRjb2RlX2Fj dGlvbl9DWFg9CisraWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIiB8 fCBcCisrICAgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyX0NYWCIgfHwgXAorKyAgIHRlc3QgIlgkaGFy ZGNvZGVfYXV0b21hdGljX0NYWCIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdlIGNhbiBoYXJk Y29kZSBub24tZXhpc3RhbnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGly ZWN0X0NYWCIgIT0gbm8gJiYKKysgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lk IGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxpbmss IG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysgICAg ICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBv bmUKKysgICAgICMjIHRlc3QgIiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs IENYWCkiICE9IG5vICYmCisrICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTF9DWFgiICE9IG5v OyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGli cmFyeSBkaXJlY3RvcnkuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9cmVsaW5rCisrICBlbHNl CisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRj b2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9aW1tZWRpYXRl CisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNl IHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgaGFy ZGNvZGVfYWN0aW9uX0NYWD11bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNQorKyRhc19lY2hvICIkaGFy ZGNvZGVfYWN0aW9uX0NYWCIgPiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbl9D WFgiID0gcmVsaW5rOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKytlbGlmIHRlc3QgIiRzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGgiID0geWVzIHx8CisrICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSBu bzsgdGhlbgorKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5CisrICBlbmFi bGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCisrZmkKKysKKysKKysjIFRoZSBlbHNlIGNsYXVzZSBz aG91bGQgb25seSBmaXJlIHdoZW4gYm9vdHN0cmFwcGluZyB0aGUKKysjIGxpYnRvb2wgZGlzdHJp YnV0aW9uLCBvdGhlcndpc2UgeW91IGZvcmdvdCB0byBzaGlwIGx0bWFpbi5zaAorKyMgd2l0aCB5 b3VyIHBhY2thZ2UsIGFuZCB5b3Ugd2lsbCBnZXQgY29tcGxhaW50cyB0aGF0IHRoZXJlIGFyZQor KyMgbm8gcnVsZXMgdG8gZ2VuZXJhdGUgbHRtYWluLnNoLgorK2lmIHRlc3QgLWYgIiRsdG1haW4i OyB0aGVuCisrICAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9w dGlvbnMgd2hpY2ggYWxsb3cgb3VyIGNvbW1hbmRzIHRocm91Z2gKKysgICMgd2l0aG91dCByZW1v dmFsIG9mIFwgZXNjYXBlcy4KKysgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0 aGVuCisrICAgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrICBmaQorKyAgIyBOb3cgcXVvdGUgYWxs IHRoZSB0aGluZ3MgdGhhdCBtYXkgY29udGFpbiBtZXRhY2hhcmFjdGVycyB3aGlsZSBiZWluZwor KyAgIyBjYXJlZnVsIG5vdCB0byBvdmVycXVvdGUgdGhlIEFDX1NVQlNUZWQgdmFsdWVzLiAgV2Ug dGFrZSBjb3BpZXMgb2YgdGhlCisrICAjIHZhcmlhYmxlcyBhbmQgcXVvdGUgdGhlIGNvcGllcyBm b3IgZ2VuZXJhdGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQuCisrICBmb3IgdmFyIGluIGVjaG8g b2xkX0NDIG9sZF9DRkxBR1MgQVIgQVJfRkxBR1MgRUdSRVAgUkFOTElCIExOX1MgTFRDQyBMVENG TEFHUyBOTSBcCisrICAgIFNFRCBTSEVMTCBTVFJJUCBcCisrICAgIGxpYm5hbWVfc3BlYyBsaWJy YXJ5X25hbWVzX3NwZWMgc29uYW1lX3NwZWMgZXh0cmFjdF9leHBzeW1zX2NtZHMgXAorKyAgICBv bGRfc3RyaXBsaWIgc3RyaXBsaWIgZmlsZV9tYWdpY19jbWQgZmluaXNoX2NtZHMgZmluaXNoX2V2 YWwgXAorKyAgICBkZXBsaWJzX2NoZWNrX21ldGhvZCByZWxvYWRfZmxhZyByZWxvYWRfY21kcyBu ZWVkX2xvY2tzIFwKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF90b19jZGVjbCBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NfbmFtZV9hZGRyZXNzIFwKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjIFwKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgb2xkX3Bvc3R1 bmluc3RhbGxfY21kcyBcCisrICAgIGNvbXBpbGVyX0NYWCBcCisrICAgIENDX0NYWCBcCisrICAg IExEX0NYWCBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIFwKKysgICAgbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYIFwKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYIFwKKysg ICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYIFwKKysgICAgZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjX0NYWCBcCisrICAgIHRocmVhZF9zYWZlX2ZsYWdfc3BlY19DWFggXAor KyAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFggXAorKyAgICBlbmFibGVfc2hhcmVkX3dp dGhfc3RhdGljX3J1bnRpbWVzX0NYWCBcCisrICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYIFwKKysg ICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFggXAorKyAgICBwcmVkZXBfb2JqZWN0c19D WFggXAorKyAgICBwb3N0ZGVwX29iamVjdHNfQ1hYIFwKKysgICAgcHJlZGVwc19DWFggXAorKyAg ICBwb3N0ZGVwc19DWFggXAorKyAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIFwKKysg ICAgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWCBcCisrICAgIGFyY2hpdmVfY21kc19DWFgg XAorKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWCBcCisrICAgIHBvc3RpbnN0YWxsX2NtZHNf Q1hYIFwKKysgICAgcG9zdHVuaW5zdGFsbF9jbWRzX0NYWCBcCisrICAgIG9sZF9hcmNoaXZlX2Zy b21fZXhwc3ltc19jbWRzX0NYWCBcCisrICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWCBcCisr ICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWCBcCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hY IFwKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFggXAorKyAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkX0NYWCBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf Q1hYIFwKKysgICAgaGFyZGNvZGVfYXV0b21hdGljX0NYWCBcCisrICAgIG1vZHVsZV9jbWRzX0NY WCBcCisrICAgIG1vZHVsZV9leHBzeW1fY21kc19DWFggXAorKyAgICBsdF9jdl9wcm9nX2NvbXBp bGVyX2Nfb19DWFggXAorKyAgICBmaXhfc3JjZmlsZV9wYXRoX0NYWCBcCisrICAgIGV4Y2x1ZGVf ZXhwc3ltc19DWFggXAorKyAgICBpbmNsdWRlX2V4cHN5bXNfQ1hYOyBkbworKworKyAgICBjYXNl ICR2YXIgaW4KKysgICAgb2xkX2FyY2hpdmVfY21kc19DWFggfCBcCisrICAgIG9sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHNfQ1hYIHwgXAorKyAgICBhcmNoaXZlX2NtZHNfQ1hYIHwgXAorKyAgICBh cmNoaXZlX2V4cHN5bV9jbWRzX0NYWCB8IFwKKysgICAgbW9kdWxlX2NtZHNfQ1hYIHwgXAorKyAg ICBtb2R1bGVfZXhwc3ltX2NtZHNfQ1hYIHwgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kc19DWFggfCBcCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYIHwgXAorKyAgICBl eHRyYWN0X2V4cHN5bXNfY21kcyB8IHJlbG9hZF9jbWRzIHwgZmluaXNoX2NtZHMgfCBcCisrICAg IHBvc3RpbnN0YWxsX2NtZHMgfCBwb3N0dW5pbnN0YWxsX2NtZHMgfCBcCisrICAgIG9sZF9wb3N0 aW5zdGFsbF9jbWRzIHwgb2xkX3Bvc3R1bmluc3RhbGxfY21kcyB8IFwKKysgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIHwgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMpCisrICAgICAgIyBE b3VibGUtcXVvdGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgorKyAgICAgIGV2YWwgImx0XyR2YXI9 XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1lIFwiXCRkb3VibGVfcXVvdGVfc3Vi c3RcIiAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCIgLWUgXCJcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0 XCJcYFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJsdF8kdmFyPVxcXCJc YFwkZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCJcYFxc XCIiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgY2FzZSAkbHRfZWNobyBp bgorKyAgKidcJDAgLS1mYWxsYmFjay1lY2hvIicpCisrICAgIGx0X2VjaG89YCRlY2hvICJYJGx0 X2VjaG8iIHwgJFhzZWQgLWUgJ3MvXFxcXFxcXCQwIC0tZmFsbGJhY2stZWNobyIkLyQwIC0tZmFs bGJhY2stZWNobyIvJ2AKKysgICAgOzsKKysgIGVzYWMKKysKKytjZmdmaWxlPSIkb2ZpbGUiCisr CisrICBjYXQgPDxfX0VPRl9fID4+ICIkY2ZnZmlsZSIKKysjICMjIyBCRUdJTiBMSUJUT09MIFRB RyBDT05GSUc6ICR0YWduYW1lCisrCisrIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3Qg YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgorKworKyMgU2hl bGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KKytTSEVMTD0kbHRfU0hFTEwK KysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRf bGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWls ZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCisrCisr IyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVz LgorK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYCisrCisr IyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGli cyBhcmUgc3RhdGljCisrYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRl bmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWAorKworKyMgV2hldGhlciBvciBu b3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uLgorK2Zhc3RfaW5zdGFsbD0kZW5h YmxlX2Zhc3RfaW5zdGFsbAorKworKyMgVGhlIGhvc3Qgc3lzdGVtLgorK2hvc3RfYWxpYXM9JGhv c3RfYWxpYXMKKytob3N0PSRob3N0CisraG9zdF9vcz0kaG9zdF9vcworKworKyMgVGhlIGJ1aWxk IHN5c3RlbS4KKytidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKKytidWlsZD0kYnVpbGQKKytidWls ZF9vcz0kYnVpbGRfb3MKKysKKysjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVy cHJldCBiYWNrc2xhc2hlcy4KKytlY2hvPSRsdF9lY2hvCisrCisrIyBUaGUgYXJjaGl2ZXIuCisr QVI9JGx0X0FSCisrQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCisrCisrIyBBIEMgY29tcGlsZXIuCisr TFRDQz0kbHRfTFRDQworKworKyMgTFRDQyBjb21waWxlciBmbGFncy4KKytMVENGTEFHUz0kbHRf TFRDRkxBR1MKKysKKysjIEEgbGFuZ3VhZ2Utc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9JGx0X2Nv bXBpbGVyX0NYWAorKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgQyBjb21waWxlcj8KKyt3 aXRoX2djYz0kR0NDX0NYWAorKworKyMgQW4gRVJFIG1hdGNoZXIuCisrRUdSRVA9JGx0X0VHUkVQ CisrCisrIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgorK0xEPSRsdF9MRF9D WFgKKysKKysjIFdoZXRoZXIgd2UgbmVlZCBoYXJkIG9yIHNvZnQgbGlua3MuCisrTE5fUz0kbHRf TE5fUworKworKyMgQSBCU0QtY29tcGF0aWJsZSBubSBwcm9ncmFtLgorK05NPSRsdF9OTQorKwor KyMgQSBzeW1ib2wgc3RyaXBwaW5nIHByb2dyYW0KKytTVFJJUD0kbHRfU1RSSVAKKysKKysjIFVz ZWQgdG8gZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgImZpbGUi CisrTUFHSUNfQ01EPSRNQUdJQ19DTUQKKysKKysjIFVzZWQgb24gY3lnd2luOiBETEwgY3JlYXRp b24gcHJvZ3JhbS4KKytETExUT09MPSIkRExMVE9PTCIKKysKKysjIFVzZWQgb24gY3lnd2luOiBv YmplY3QgZHVtcGVyLgorK09CSkRVTVA9IiRPQkpEVU1QIgorKworKyMgVXNlZCBvbiBjeWd3aW46 IGFzc2VtYmxlci4KKytBUz0iJEFTIgorKworKyMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0 aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzLgorK29iamRpcj0kb2JqZGlyCisr CisrIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLgorK3JlbG9hZF9mbGFn PSRsdF9yZWxvYWRfZmxhZworK3JlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kcworKworKyMgSG93 IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlci4KKyt3bD0kbHRfbHRf cHJvZ19jb21waWxlcl93bF9DWFgKKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkg Im8iKS4KKytvYmpleHQ9IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5v cm1hbGx5ICJhIikuCisrbGliZXh0PSIkbGliZXh0IgorKworKyMgU2hhcmVkIGxpYnJhcnkgc3Vm Zml4IChub3JtYWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKKysKKysj IEV4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9IiRleGVleHQi CisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9i amVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWAorK3BpY19tb2Rl PSRwaWNfbW9kZQorKworKyMgV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5k PworK21heF9jbWRfbGVuPSRsdF9jdl9zeXNfbWF4X2NtZF9sZW4KKysKKysjIERvZXMgY29tcGls ZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KKytjb21waWxlcl9j X289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWAorKworKyMgTXVzdCB3ZSBsb2NrIGZp bGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24/CisrbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2Nrcwor KworKyMgRG8gd2UgbmVlZCB0aGUgbGliIHByZWZpeCBmb3IgbW9kdWxlcz8KKytuZWVkX2xpYl9w cmVmaXg9JG5lZWRfbGliX3ByZWZpeAorKworKyMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxp YnJhcmllcz8KKytuZWVkX3ZlcnNpb249JG5lZWRfdmVyc2lvbgorKworKyMgV2hldGhlciBkbG9w ZW4gaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zdXBwb3J0PSRlbmFibGVfZGxvcGVuCisrCisrIyBX aGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCisrZGxvcGVuX3NlbGY9JGVu YWJsZV9kbG9wZW5fc2VsZgorKworKyMgV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBsaW5r ZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmX3N0YXRpYz0kZW5hYmxlX2Rs b3Blbl9zZWxmX3N0YXRpYworKworKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMg bGlua2luZy4KKytsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19D WFgKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisr bm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFgK KysKKysjIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCisrZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYCisrCisr IyBDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20g YXJjaGl2ZXMuCisrd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JGx0X3dob2xlX2FyY2hpdmVfZmxh Z19zcGVjX0NYWAorKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2FmZSBv YmplY3RzLgorK3RocmVhZF9zYWZlX2ZsYWdfc3BlYz0kbHRfdGhyZWFkX3NhZmVfZmxhZ19zcGVj X0NYWAorKworKyMgTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGUuCisrdmVyc2lvbl90eXBlPSR2ZXJz aW9uX3R5cGUKKysKKysjIEZvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgorK2xpYm5hbWVf c3BlYz0kbHRfbGlibmFtZV9zcGVjCisrCisrIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJz dCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgorKyMgVGhlIGxhc3Qg bmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRS4KKytsaWJy YXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNfc3BlYworKworKyMgVGhlIGNvZGVkIG5h bWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCisrc29u YW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFu ZCBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgorK1JBTkxJQj0kbHRfUkFOTElCCisrb2xk X2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kc19DWFgKKytvbGRfcG9zdGluc3RhbGxf Y21kcz0kbHRfb2xkX3Bvc3RpbnN0YWxsX2NtZHMKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPSRs dF9vbGRfcG9zdHVuaW5zdGFsbF9jbWRzCisrCisrIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hp dmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0 X29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hYCisrCisrIyBDcmVhdGUgYSB0ZW1wb3Jhcnkg b2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisr b2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhwc3lt c19jbWRzX0NYWAorKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhIHNo YXJlZCBhcmNoaXZlLgorK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzX0NYWAorK2FyY2hp dmVfZXhwc3ltX2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYCisrcG9zdGluc3RhbGxf Y21kcz0kbHRfcG9zdGluc3RhbGxfY21kcworK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVu aW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9k dWxlIChhc3N1bWVkIHNhbWUgYXMgYWJvdmUgaWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0X21v ZHVsZV9jbWRzX0NYWAorK21vZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRz X0NYWAorKworKyMgQ29tbWFuZHMgdG8gc3RyaXAgbGlicmFyaWVzLgorK29sZF9zdHJpcGxpYj0k bHRfb2xkX3N0cmlwbGliCisrc3RyaXBsaWI9JGx0X3N0cmlwbGliCisrCisrIyBEZXBlbmRlbmNp ZXMgdG8gcGxhY2UgYmVmb3JlIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQor KyMgc2hhcmVkIGxpYnJhcnkuCisrcHJlZGVwX29iamVjdHM9JGx0X3ByZWRlcF9vYmplY3RzX0NY WAorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxp bmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3RzPSRs dF9wb3N0ZGVwX29iamVjdHNfQ1hYCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3Jl IHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJhcnku CisrcHJlZGVwcz0kbHRfcHJlZGVwc19DWFgKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBh ZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJy YXJ5LgorK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwc19DWFgKKysKKysjIFRoZSBkaXJlY3RvcmllcyBz ZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxpYnJh cnkKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGly c19DWFgKKysKKysjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0 aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWAorKworKyMg TWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVkIG9i amVjdHMuCisrZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisr CisrIyBDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09IGZpbGVfbWFn aWMuCisrZmlsZV9tYWdpY19jbWQ9JGx0X2ZpbGVfbWFnaWNfY21kCisrCisrIyBGbGFnIHRoYXQg YWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBiZSBidWls dC4KKythbGxvd191bmRlZmluZWRfZmxhZz0kbHRfYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYCisr CisrIyBGbGFnIHRoYXQgZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5l ZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZ19DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8g ZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4KKytm aW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBhIHNp bmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dCBub3Qgc2hvd24uCisrZmluaXNo X2V2YWw9JGx0X2ZpbmlzaF9ldmFsCisrCisrIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHBy b2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgorK2dsb2JhbF9zeW1i b2xfcGlwZT0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZQorKworKyMgVHJhbnNmb3Jt IHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbgorK2dsb2JhbF9zeW1i b2xfdG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCisrCisrIyBU cmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIKKytnbG9i YWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzcworKworKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcnVudGlt ZSBwYXRoIHZhcmlhYmxlLgorK3J1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgorKworKyMgVGhpcyBp cyB0aGUgc2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4KKytzaGxpYnBhdGhfdmFyPSRzaGxp YnBhdGhfdmFyCisrCisrIyBJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNv ZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/Cisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKKysKKysjIEhvdyB0byBoYXJkY29kZSBhIHNoYXJl ZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgorK2hhcmRjb2RlX2FjdGlvbj0kaGFy ZGNvZGVfYWN0aW9uX0NYWAorKworKyMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFy eSBwYXRocyBpbnRvIGxpYnJhcmllcy4KKytoYXJkY29kZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2lu dG9fbGlicworKworKyMgRmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1 cmluZyBsaW5raW5nLgorKyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5v dCBleGlzdC4KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWAorKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8g aGFyZGNvZGUgXCRsaWJkaXIgaW50bworKyMgYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuIFRoaXMg bXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcworKyMgbm90IGV4aXN0LgorK2hhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hY CisrCisrIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBhIHNlcGFy YXRlZCBhcmd1bWVudC4KKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yX0NYWAorKworKyMgU2V0IHRvIHllcyBpZiB1c2luZyBESVIvbGliTkFN RSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQorKyMg cmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdF9DWFgK KysKKysjIFNldCB0byB5ZXMgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcg aGFyZGNvZGVzIERJUiBpbnRvIHRoZQorKyMgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9t aW51c19MPSRoYXJkY29kZV9taW51c19MX0NYWAorKworKyMgU2V0IHRvIHllcyBpZiB1c2luZyBT SExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8KKysjIHRo ZSByZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3No bGlicGF0aF92YXJfQ1hYCisrCisrIyBTZXQgdG8geWVzIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxp YnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSIGludG8gdGhlIGxpYnJhcnkKKysjIGFu ZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZCBhZ2FpbnN0 IGl0LgorK2hhcmRjb2RlX2F1dG9tYXRpYz0kaGFyZGNvZGVfYXV0b21hdGljX0NYWAorKworKyMg VmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVy IHNjcmlwdHMgYW5kCisrIyByZXN0b3JlZCBhdCByZWxpbmsgdGltZS4KKyt2YXJpYWJsZXNfc2F2 ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIgorKworKyMgV2hldGhl ciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kg bGlicmFyaWVzLgorK2xpbmtfYWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfQ1hYCisrCisr IyBDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKKytzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKworKyMgUnVu LXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKKytzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKKysKKysjIEZpeCB0aGUg c2hlbGwgdmFyaWFibGUgXCRzcmNmaWxlIGZvciB0aGUgY29tcGlsZXIuCisrZml4X3NyY2ZpbGVf cGF0aD0kbHRfZml4X3NyY2ZpbGVfcGF0aAorKworKyMgU2V0IHRvIHllcyBpZiBleHBvcnRlZCBz eW1ib2xzIGFyZSByZXF1aXJlZC4KKythbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBv cnRfc3ltYm9sc19DWFgKKysKKysjIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJv bHMuCisrZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kc19DWFgKKysK KysjIFRoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9t IGEgc2hhcmVkIGFyY2hpdmUuCisrZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhw c3ltc19jbWRzCisrCisrIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhl IHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1z X0NYWAorKworKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgorK2luY2x1 ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zX0NYWAorKworKyMgIyMjIEVORCBMSUJUT09M IFRBRyBDT05GSUc6ICR0YWduYW1lCisrCisrX19FT0ZfXworKworKworK2Vsc2UKKysgICMgSWYg dGhlcmUgaXMgbm8gTWFrZWZpbGUgeWV0LCB3ZSByZWx5IG9uIGEgbWFrZSBydWxlIHRvIGV4ZWN1 dGUKKysgICMgYGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrJyB0byByZXJ1biB0aGVzZSB0ZXN0cyBh bmQgY3JlYXRlIHRoZQorKyAgIyBsaWJ0b29sIHNjcmlwdCB0aGVuLgorKyAgbHRtYWluX2luPWBl Y2hvICRsdG1haW4gfCBzZWQgLWUgJ3MvXC5zaCQvLmluLydgCisrICBpZiB0ZXN0IC1mICIkbHRt YWluX2luIjsgdGhlbgorKyAgICB0ZXN0IC1mIE1ha2VmaWxlICYmIG1ha2UgIiRsdG1haW4iCisr ICBmaQorK2ZpCisrCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK KythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY19jb21waWxlcl9nbnUKKysKKytDQz0kbHRfc2F2ZV9DQworK0xEQ1hYPSRMRAorK0xEPSRs dF9zYXZlX0xECisrR0NDPSRsdF9zYXZlX0dDQworK3dpdGhfZ251X2xkY3h4PSR3aXRoX2dudV9s ZAorK3dpdGhfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251X2xkCisrbHRfY3ZfcGF0aF9MRENYWD0k bHRfY3ZfcGF0aF9MRAorK2x0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAorK2x0X2N2X3By b2dfZ251X2xkY3h4PSRsdF9jdl9wcm9nX2dudV9sZAorK2x0X2N2X3Byb2dfZ251X2xkPSRsdF9z YXZlX3dpdGhfZ251X2xkCisrCisrCWVsc2UKKysJICB0YWduYW1lPSIiCisrCWZpCisrCTs7Cisr CisrICAgICAgRjc3KQorKwlpZiB0ZXN0IC1uICIkRjc3IiAmJiB0ZXN0ICJYJEY3NyIgIT0gIlhu byI7IHRoZW4KKysKKythY19leHQ9ZgorK2FjX2NvbXBpbGU9JyRGNzcgLWMgJEZGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckRjc3IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk RkZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfZjc3X2NvbXBpbGVyX2dudQorKworKworK2FyY2hpdmVfY21kc19uZWVkX2xj X0Y3Nz1ubworK2FsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0KKythbHdheXNfZXhwb3J0X3N5bWJv bHNfRjc3PW5vCisrYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9CisrZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjX0Y3Nz0KKytoYXJkY29kZV9kaXJlY3RfRjc3PW5vCisraGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19GNzc9CisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9GNzc9CisraGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvcl9GNzc9CisraGFyZGNvZGVfbWludXNfTF9GNzc9bm8KKytoYXJk Y29kZV9hdXRvbWF0aWNfRjc3PW5vCisrbW9kdWxlX2NtZHNfRjc3PQorK21vZHVsZV9leHBzeW1f Y21kc19GNzc9CisrbGlua19hbGxfZGVwbGlic19GNzc9dW5rbm93bgorK29sZF9hcmNoaXZlX2Nt ZHNfRjc3PSRvbGRfYXJjaGl2ZV9jbWRzCisrbm9fdW5kZWZpbmVkX2ZsYWdfRjc3PQorK3dob2xl X2FyY2hpdmVfZmxhZ19zcGVjX0Y3Nz0KKytlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp bWVzX0Y3Nz1ubworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmNzcgdGVzdCBzb3Vy Y2VzLgorK2FjX2V4dD1mCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVk IGY3NyB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytvYmpleHRfRjc3PSRvYmpleHQKKysKKysj IENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZT0iXAorKyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAg ICAgIGVuZAorKyIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwor K2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAorKyAgICAgIHByb2dyYW0gdAorKyAgICAgIGVu ZAorKyIKKysKKysjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlv bnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBz cGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29t cGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENG TEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MKKysKKysKKysjIHNhdmUgd2FybmluZ3MvYm9pbGVy cGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4 dAorK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0 CisrZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRl c3QuZXJyYAorKyRybSBjb25mdGVzdCoKKysKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpl eHQKKytlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAor K2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcg PmNvbmZ0ZXN0LmVycgorK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJg CisrJHJtIC1yIGNvbmZ0ZXN0KgorKworKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmd1bWVudHMuCisrbHRfc2F2ZV9DQz0iJENDIgorK0NDPSR7Rjc3LSJmNzcifQor K2NvbXBpbGVyPSRDQworK2NvbXBpbGVyX0Y3Nz0kQ0MKKytmb3IgY2NfdGVtcCBpbiAkY29tcGls ZXIiIjsgZG8KKysgIGNhc2UgJGNjX3RlbXAgaW4KKysgICAgY29tcGlsZSB8ICpbXFwvXWNvbXBp bGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0 Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OworKyAgICBcLSopIDs7CisrICAgICopIGJy ZWFrOzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3RlbXAiIHwg JFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCisrCisrCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVk IGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0 cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGNhbl9idWlsZF9zaGFyZWQiID4mNQorKyRhc19lY2hvICIkY2FuX2J1aWxk X3NoYXJlZCIgPiY2OyB9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrdGVz dCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisrIyBP biBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1l IG5hbWVzcGFjZSwgYW5kCisrIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorK2Nhc2UgJGhvc3Rf b3MgaW4KKythaXgzKikKKysgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVf c3RhdGljPW5vCisrICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICBhcmNoaXZlX2Nt ZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisrICAgIHBvc3RpbnN0YWxsX2NtZHM9 JyRSQU5MSUIgJGxpYicKKysgIGZpCisrICA7OworK2FpeFs0LTldKikKKysgIGlmIHRlc3QgIiRo b3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7 IHRoZW4KKysgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9 bm8KKysgIGZpCisrICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkZW5hYmxlX3NoYXJlZCIgPiY1CisrJGFzX2VjaG8gIiRlbmFibGVfc2hhcmVkIiA+JjY7 IH0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBi dWlsZCBzdGF0aWMgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KKysjIE1ha2Ugc3VyZSBlaXRo ZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKyt0ZXN0ICIkZW5hYmxl X3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkZW5hYmxlX3N0YXRpYyIgPiY1CisrJGFzX2VjaG8gIiRlbmFibGVf c3RhdGljIiA+JjY7IH0KKysKKytHQ0NfRjc3PSIkRzc3IgorK0xEX0Y3Nz0iJExEIgorKworK2x0 X3Byb2dfY29tcGlsZXJfd2xfRjc3PQorK2x0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0KKytsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAi ID4mNjsgfQorKworKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgbHRfcHJvZ19j b21waWxlcl93bF9GNzc9Jy1XbCwnCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0n LXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrICAgICAg IyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCWx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKwor KyAgICBhbWlnYW9zKikKKysgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNv ZGUgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcywgYnV0CisrICAgICAgIyBhZGRpbmcgdGhlIGAt bTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCisr ICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9 Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKKysgICAgICA7OworKwor KyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQq IHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisr ICAgICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKikKKysgICAg ICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVy IGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQg c2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRo ZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxl CisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1ERExMX0VYUE9SVCcKKysgICAgICA7OworKworKyAgICBk YXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMg cGxhdGZvcm0KKysgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElC IGZpbGVzCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctZm5vLWNvbW1vbicKKysg ICAgICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAgICAgICMgSW50ZXJpeCAzLnggZ2Nj IC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCisrICAgICAgIyBJbnN0 ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisrICAgICAgOzsK KysKKysgICAgbXNkb3NkamdwcCopCisrICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBk b2Vzbid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKKysgICAgICAjIG9u IHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0uCisrICAgICAgbHRfcHJvZ19jb21waWxl cl9jYW5fYnVpbGRfc2hhcmVkX0Y3Nz1ubworKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAg ICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhl bgorKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisr ICAgICAgOzsKKysKKysgICAgaHB1eCopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9y IElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0CisrICAgICAgIyBub3QgZm9yIFBBIEhQ LVVYLgorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgaHBwYSo2NCp8aWE2NCopCisr CSMgK1ogdGhlIGRlZmF1bHQKKysJOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3Bp Y19GNzc9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICAqKQor KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLWZQSUMnCisrICAgICAgOzsKKysgICAg ZXNhYworKyAgZWxzZQorKyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtl ciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCisrICAgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgYWl4KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKKysg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBw b3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3Rh dGljJworKyAgICAgIGVsc2UKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctYm5zbyAt Ykk6L2xpYi9zeXNjYWxscy5leHAnCisrICAgICAgZmkKKysgICAgICA7OworKyAgICAgIGRhcndp biopCisrICAgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisrICAg ICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAg ICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgeGxjKikKKysgICAgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1xbm9jb21tb24nCisrICAgICAgICAgbHRfcHJvZ19jb21w aWxlcl93bF9GNzc9Jy1XbCwnCisrICAgICAgICAgOzsKKysgICAgICAgZXNhYworKyAgICAgICA7 OworKworKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqKQorKyAgICAgICMgVGhp cyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMg YmVpbmcKKysgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQg ZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0Y3Nz0nLURETExfRVhQT1JUJworKyAgICAgIDs7CisrCisrICAgIGhwdXg5KiB8IGhwdXgxMCog fCBocHV4MTEqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJworKyAgICAg ICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1 dAorKyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgor KyAgICAgIGhwcGEqNjQqfGlhNjQqKQorKwkjICtaIHRoZSBkZWZhdWx0CisrCTs7CisrICAgICAg KikKKysJbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PScrWicKKysJOzsKKysgICAgICBlc2FjCisr ICAgICAgIyBJcyB0aGVyZSBhIGJldHRlciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdv cmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Rjc3PScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysgICAgICA7OworKworKyAgICBpcml4NSogfCBp cml4NiogfCBub25zdG9wdXgqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2ws JworKyAgICAgICMgUElDICh3aXRoIC1LUElDKSBpcyB0aGUgZGVmYXVsdC4KKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAg IG5ld3NvczYpCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctS1BJQycKKysgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisr ICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICBpY2MqIHwgZWNjKikKKysJbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCisrCWx0 X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLUtQSUMnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0Y3Nz0nLXN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5 MCogfCBwZ2Y5NSopCisrICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCog dGhlIFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAorKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBw cm9qZWN0KQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKKysJbHRfcHJvZ19jb21w aWxlcl9waWNfRjc3PSctZnBpYycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctQnN0 YXRpYycKKysgICAgICAgIDs7CisrICAgICAgY2NjKikKKysgICAgICAgIGx0X3Byb2dfY29tcGls ZXJfd2xfRjc3PSctV2wsJworKyAgICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCisrICAg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1ub25fc2hhcmVkJworKyAgICAgICAg OzsKKysgICAgICAqKQorKyAgICAgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisr CSpTdW5cIEMqKQorKwkgICMgU3VuIEMgNS45CisrCSAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3 PSctS1BJQycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKwkg IGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJworKwkgIDs7CisrCSpTdW5cIEYqKQorKwkg ICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBs aW5rZXIKKysJICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1LUElDJworKwkgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCisrCSAgbHRfcHJvZ19jb21waWxlcl93bF9G Nzc9JycKKysJICA7OworKwllc2FjCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisr ICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3 Nz0nLVdsLCcKKysgICAgICAjIEFsbCBPU0YvMSBjb2RlIGlzIFBJQy4KKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHJk b3MqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLW5vbl9zaGFyZWQnCisr ICAgICAgOzsKKysKKysgICAgc29sYXJpcyopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Rjc3PSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGlj JworKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgZjc3KiB8IGY5MCogfCBmOTUq KQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVFvcHRpb24gbGQgJzs7CisrICAgICAgKikK KysJbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnOzsKKysgICAgICBlc2FjCisrICAgICAg OzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVFv cHRpb24gbGQgJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLVBJQycKKysgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisr ICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKikKKysgICAgICBsdF9wcm9nX2NvbXBp bGVyX3dsX0Y3Nz0nLVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1LUElD JworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCisrICAgICAg OzsKKysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4K KysJbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctS2NvbmZvcm1fcGljJworKwlsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikK KysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKKysgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpY19GNzc9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3 Nz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgdW5pY29zKikKKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWls ZF9zaGFyZWRfRjc3PW5vCisrICAgICAgOzsKKysKKysgICAgdXRzNCopCisrICAgICAgbHRfcHJv Z19jb21waWxlcl9waWNfRjc3PSctcGljJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0Y3Nz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBsdF9wcm9nX2Nv bXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfRjc3PW5vCisrICAgICAgOzsKKysgICAgZXNhYworKyAg ZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfcHJvZ19jb21w aWxlcl9waWNfRjc3IiA+JjUKKyskYXNfZWNobyAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyIg PiY2OyB9CisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxs eSB3b3Jrcy4KKysjCisraWYgdGVzdCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyI7IHRo ZW4KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVy IFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzcgd29ya3MiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWNf Rjc3IHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3Bp Y193b3Jrc19GNzcrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfRjc3PW5vCisrICBh Y19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSIk bHRfcHJvZ19jb21waWxlcl9waWNfRjc3IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVy ICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3Jl IGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAj IE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hl cyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNv IHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBvcHRpb24gaXMgcmVm ZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgorKyAgIGx0X2Nv bXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHsw LDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVz dFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVy X2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTUxNjk6ICRsdF9jb21waWxlXCIi ID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0 YXR1cz0kPworKyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE1MTcz OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0 IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdh cm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNh eSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0Lgor KyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQv ZCcgPmNvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVy ciA+Y29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYg Y29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2 X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0Y3Nz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAk cm0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfRjc3IiA+JjUKKyskYXNfZWNobyAiJGx0 X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0Y3NyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRs dF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19GNzciID0geHllczsgdGhlbgorKyAgICBjYXNl ICRsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzcgaW4KKysgICAgICIiIHwgIiAiKikgOzsKKysgICAg ICopIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0iICRsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzci IDs7CisrICAgICBlc2FjCisrZWxzZQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Cisr ICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfRjc3PW5vCisrZmkKKysKKytm aQorK2Nhc2UgJGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3Vw cG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAgKmRqZ3BwKikKKysgICAgbHRfcHJv Z19jb21waWxlcl9waWNfRjc3PQorKyAgICA7OworKyAgKikKKysgICAgbHRfcHJvZ19jb21waWxl cl9waWNfRjc3PSIkbHRfcHJvZ19jb21waWxlcl9waWNfRjc3IgorKyAgICA7OworK2VzYWMKKysK KysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtz LgorKyMKKyt3bD0kbHRfcHJvZ19jb21waWxlcl93bF9GNzcgZXZhbCBsdF90bXBfc3RhdGljX2Zs YWc9XCIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3XCIKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGlj X2ZsYWcgd29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdGF0 aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHtsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19GNzcrc2V0fSIgPSBzZXQ7IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3NfRjc3PW5vCisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysg ICBMREZMQUdTPSIkTERGTEFHUyAkbHRfdG1wX3N0YXRpY19mbGFnIgorKyAgIGVjaG8gIiRsdF9z aW1wbGVfbGlua190ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGlmIChldmFsICRh Y19saW5rIDI+Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhl bgorKyAgICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9u IGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2Fybmlu Z3MKKysgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICMgQXBwZW5k IGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCisrICAgICAgIGNhdCBjb25mdGVzdC5lcnIg MT4mNQorKyAgICAgICAkZWNobyAiWCRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1l ICcvXiQvZCcgPiBjb25mdGVzdC5leHAKKysgICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNv bmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNv bmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgICAgbHRfY3ZfcHJvZ19jb21waWxl cl9zdGF0aWNfd29ya3NfRjc3PXllcworKyAgICAgICBmaQorKyAgICAgZWxzZQorKyAgICAgICBs dF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19GNzc9eWVzCisrICAgICBmaQorKyAgIGZp CisrICAgJHJtIC1yIGNvbmZ0ZXN0KgorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3NfRjc3IiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGls ZXJfc3RhdGljX3dvcmtzX0Y3NyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2Nv bXBpbGVyX3N0YXRpY193b3Jrc19GNzciID0geHllczsgdGhlbgorKyAgICA6CisrZWxzZQorKyAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9CisrZmkKKysKKysKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUu JGFjX29iamV4dCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBv cnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3Zf cHJvZ19jb21waWxlcl9jX29fRjc3K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3Nz1ubwor KyAgICRybSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAorKyAgIG1rZGlyIGNvbmZ0ZXN0CisrICAg Y2QgY29uZnRlc3QKKysgICBta2RpciBvdXQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICBsdF9jb21waWxlcl9mbGFnPSIt byBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCisrICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRo ZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKysgICAjICgyKSBiZWZv cmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorKyAg ICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFz aGVzIGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwg c28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgorKyAgIGx0X2NvbXBpbGU9YGVjaG8g IiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9j b21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29t cGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysg ICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTUyNzM6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAo ZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8K KysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6MTUyNzc6IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMg b3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIg Y2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysg ICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJGVjaG8gIlgkX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3Qu ZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2Nv bmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBv dXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAg ICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19GNzc9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAg Y2htb2QgdSt3IC4gMj4mNQorKyAgICRybSBjb25mdGVzdCoKKysgICAjIFNHSSBDKysgY29tcGls ZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCisrICAgIyB0ZW1wbGF0 ZSBpbnN0YW50aWF0aW9uCisrICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJHJtIG91dC9paV9m aWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcworKyAgICRybSBvdXQvKiAmJiBybWRpciBvdXQK KysgICBjZCAuLgorKyAgIHJtZGlyIGNvbmZ0ZXN0CisrICAgJHJtIGNvbmZ0ZXN0KgorKworK2Zp CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGls ZXJfY19vX0Y3NyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19GNzci ID4mNjsgfQorKworKworK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIKKytpZiB0ZXN0ICIkbHRfY3Zf cHJvZ19jb21waWxlcl9jX29fRjc3IiA9IG5vICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsg dGhlbgorKyAgIyBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3Zp ZGVkIGJ5IHRoZSB1c2VyCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg aWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MuLi4gIiA+JjY7IH0KKysgIGhhcmRfbGlu a3M9eWVzCisrICAkcm0gY29uZnRlc3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4v ZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29u ZnRlc3QuYSBjb25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3Qu YSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkX2xpbmtzIiA+JjUKKyskYXNfZWNobyAiJGhh cmRfbGlua3MiID4mNjsgfQorKyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KKysg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBz dXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBz byBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mMjt9CisrICAgIG5lZWRfbG9ja3M9d2Fybgor KyAgZmkKKytlbHNlCisrICBuZWVkX2xvY2tzPW5vCisrZmkKKysKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBz dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMu Li4gIiA+JjY7IH0KKysKKysgIHJ1bnBhdGhfdmFyPQorKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Rjc3PQorKyAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19GNzc9bm8KKysgIGFy Y2hpdmVfY21kc19GNzc9CisrICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0KKysgIG9sZF9hcmNo aXZlX0Zyb21fbmV3X2NtZHNfRjc3PQorKyAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNf Rjc3PQorKyAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0KKysgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjX0Y3Nz0KKysgIHRocmVhZF9zYWZlX2ZsYWdfc3BlY19GNzc9CisrICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0KKysgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRf Rjc3PQorKyAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzc9CisrICBoYXJkY29kZV9kaXJl Y3RfRjc3PW5vCisrICBoYXJkY29kZV9taW51c19MX0Y3Nz1ubworKyAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcl9GNzc9dW5zdXBwb3J0ZWQKKysgIGxpbmtfYWxsX2RlcGxpYnNfRjc3PXVua25vd24K KysgIGhhcmRjb2RlX2F1dG9tYXRpY19GNzc9bm8KKysgIG1vZHVsZV9jbWRzX0Y3Nz0KKysgIG1v ZHVsZV9leHBzeW1fY21kc19GNzc9CisrICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PW5vCisr ICBleHBvcnRfc3ltYm9sc19jbWRzX0Y3Nz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRn bG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4g JGV4cG9ydF9zeW1ib2xzJworKyAgIyBpbmNsdWRlX2V4cHN5bXMgc2hvdWxkIGJlIGEgbGlzdCBv ZiBzcGFjZS1zZXBhcmF0ZWQgc3ltYm9scyB0byBiZSAqYWx3YXlzKgorKyAgIyBpbmNsdWRlZCBp biB0aGUgc3ltYm9sIGxpc3QKKysgIGluY2x1ZGVfZXhwc3ltc19GNzc9CisrICAjIGV4Y2x1ZGVf ZXhwc3ltcyBjYW4gYmUgYW4gZXh0ZW5kZWQgcmVnZXhwIG9mIHN5bWJvbHMgdG8gZXhjbHVkZQor KyAgIyBpdCB3aWxsIGJlIHdyYXBwZWQgYnkgYCAoJyBhbmQgYCkkJywgc28gb25lIG11c3Qgbm90 IG1hdGNoIGJlZ2lubmluZyBvcgorKyAgIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBhfGJjfC4q ZC4qJyB3aWxsIGV4Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMnLAorKyAgIyBhcyB3ZWxs IGFzIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyBgZCcuCisrICBleGNsdWRlX2V4cHN5bXNfRjc3 PSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCisrICAjIEFsdGhvdWdo IF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5v dXQKKysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQgaW4gUElDIGNvZGUsIGJ1dCB0aGVpciBsaW5r ZXJzIGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJl bmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisrICAjIHJlbHkgb24gdGhpcyBzeW1i b2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KKysgICMg cHJlbG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAjIEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5p dGlhbGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCisrICBleHRyYWN0X2V4cHN5bXNfY21k cz0KKysgICMgSnVzdCBiZWluZyBwYXJhbm9pZCBhYm91dCBlbnN1cmluZyB0aGF0IGNjX2Jhc2Vu YW1lIGlzIHNldC4KKysgIGZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbworKyAgY2FzZSAk Y2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwv XWNjYWNoZSApIDs7CisrICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwv XXB1cmlmeSApIDs7CisrICAgIFwtKikgOzsKKysgICAgKikgYnJlYWs7OworKyAgZXNhYworK2Rv bmUKKytjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScg LWUgInMlXiRob3N0X2FsaWFzLSUlImAKKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dp biogfCBtaW5ndyogfCBwdzMyKikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24n dCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90IHVzaW5nIGdj Yywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAjIE1pY3Jvc29m dCBWaXN1YWwgQysrLgorKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKysgICAgICB3 aXRoX2dudV9sZD1ubworKyAgICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisrICAgICMgd2Ug anVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZDKyspCisrICAg IHdpdGhfZ251X2xkPXllcworKyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdpdGhfZ251X2xk PW5vCisrICAgIDs7CisrICBlc2FjCisrCisrICBsZF9zaGxpYnNfRjc3PXllcworKyAgaWYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5z IExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorKyAgICB3bGFyYz0nJHt3bH0nCisr CisrICAgICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5 IHN1cHBvcnQuIFRoZXNlCisrICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJp ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQorKyAgICAjIGhlcmUgYWxsb3dzIHRo ZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3NhcnkuCisrICAgIHJ1bnBhdGhfdmFyPUxEX1JV Tl9QQVRICisrICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS0tcnBhdGgg JHt3bH0kbGliZGlyJworKyAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3PScke3dsfS0t ZXhwb3J0LWR5bmFtaWMnCisrICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13 aG9sZS1hcmNoaXZlIGV0LiBhbC4KKysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnbm8t d2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKysJd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNfRjc3PSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1u by13aG9sZS1hcmNoaXZlJworKyAgICAgIGVsc2UKKysgIAl3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y19GNzc9CisrICAgIGZpCisrICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubworKyAgICBj YXNlIGAkTEQgLXYgMj4vZGV2L251bGxgIGluCisrICAgICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05 XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQorKyAgICAgICpcIDIu MTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4u CisrICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVz IDs7ICMgTWFuZHJha2UgOC4yIC4uLgorKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhlciAyLjEx IHZlcnNpb25zCisrICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworKyAg ICBlc2FjCisrCisrICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz LgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeFszLTldKikKKysgICAgICAjIE9uIEFJ WC9QUEMsIHRoZSBHTlUgbGlua2VyIGlzIHZlcnkgYnJva2VuCisrICAgICAgaWYgdGVzdCAiJGhv c3RfY3B1IiAhPSBpYTY0OyB0aGVuCisrCWxkX3NobGlic19GNzc9bm8KKysJY2F0IDw8RU9GIDE+ JjIKKysKKysqKiogV2FybmluZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVh c2UgMi45LjEsIGlzIHJlcG9ydGVkCisrKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJseSBjcmVh dGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisrKioqIFRoZXJlZm9yZSwgbGlidG9vbCBpcyBk aXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisrKioqIHJlYWxseSBj YXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFU SAorKyoqKiBzbyB0aGF0IGEgbm9uLUdOVSBsaW5rZXIgaXMgZm91bmQsIGFuZCB0aGVuIHJlc3Rh cnQuCisrCisrRU9GCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysg ICAgICBhcmNoaXZlX2NtZHNfRjc3PSckcm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0 YX4kZWNobyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJy YXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9h Mml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0 X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lv biIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIg JGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAt MzIpJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSctTCRsaWJkaXInCisr ICAgICAgaGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCisrCisrICAgICAgIyBTYW11ZWwgQS4gRmFs dm8gSUkgPGtjNXRqYUBkb2xwaGluLm9wZW5wcm9qZWN0cy5uZXQ+IHJlcG9ydHMKKysgICAgICAj IHRoYXQgdGhlIHNlbWFudGljcyBvZiBkeW5hbWljIGxpYnJhcmllcyBvbiBBbWlnYU9TLCBhdCBs ZWFzdCB1cAorKyAgICAgICMgdG8gdmVyc2lvbiA0LCBpcyB0byBzaGFyZSBkYXRhIGFtb25nIG11 bHRpcGxlIHByb2dyYW1zIGxpbmtlZAorKyAgICAgICMgd2l0aCB0aGUgc2FtZSBkeW5hbWljIGxp YnJhcnkuICBTaW5jZSB0aGlzIGRvZXNuJ3QgbWF0Y2ggdGhlCisrICAgICAgIyBiZWhhdmlvciBv ZiBzaGFyZWQgbGlicmFyaWVzIG9uIG90aGVyIHBsYXRmb3Jtcywgd2UgY2FuJ3QgdXNlCisrICAg ICAgIyB0aGVtLgorKyAgICAgIGxkX3NobGlic19GNzc9bm8KKysgICAgICA7OworKworKyAgICBi ZW9zKikKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJn ZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3 PXVuc3VwcG9ydGVkCisrCSMgSm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMg c29tZSByZWxlYXNlcyBvZiBnY2MKKysJIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNl cnZlcyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQorKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0Mg LW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnNfRjc3PW5vCisrICAg ICAgZmkKKysgICAgICA7OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICAg ICAgIyBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsIEY3NykgaXMgYWN0 dWFsbHkgbWVhbmluZ2xlc3MsCisrICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBm b3IgRExMcy4KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLUwkbGliZGly JworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz11bnN1cHBvcnRlZAorKyAgICAgIGFs d2F5c19leHBvcnRfc3ltYm9sc19GNzc9bm8KKysgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3Rh dGljX3J1bnRpbWVzX0Y3Nz15ZXMKKysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0Y3Nz0nJE5N ICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdc JycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS8nXCcnIC1lICdcJycvXltB SVRXXVsgXS9zLy4qWyBdLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisr CisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBvcnQnID4gL2Rldi9u dWxsOyB0aGVuCisrICAgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3ds fS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIg JGxpYicKKysJIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBm aWxlICgxc3QgbGluZQorKwkjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwg cHJlcGVuZC4uLgorKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0naWYgdGVzdCAieGAkU0VEIDFx ICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKysJICBjcCAkZXhwb3J0X3N5bWJv bHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWVsc2UKKysJICBlY2hvIEVYUE9SVFMg PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwlmaX4KKysJJENDIC1zaGFyZWQgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5kZWYgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhs aW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxp YnNfRjc3PW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQor KyAgICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyX0Y3Nz1ubworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS1y cGF0aCwkbGliZGlyJworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9JyR7d2x9 LUUnCisrICAgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElD IGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKyAgICAgICMgSW5zdGVhZCwgc2hhcmVkIGxpYnJh cmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKKysgICAgICAj IGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93 IHZlcnkgbWVtb3J5CisrICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3Mu ICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKyAgICAgICMgMjU2IEtpQi1hbGln bmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsK KysgICAgICAjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1v cmUgc2JyaygyKSBzcGFjZS4KKysgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFt ZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIx NDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3 PSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4 cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29i amRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0g JSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICAgIDs7Cisr CisrICAgIGdudSogfCBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAgIGlmICRMRCAtLWhlbHAg Mj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhl bgorKwl0bXBfYWRkZmxhZz0KKysJY2FzZSAkY2NfYmFzZW5hbWUsJGhvc3RfY3B1IGluCisrCXBn Y2MqKQkJCQkjIFBvcnRsYW5kIEdyb3VwIEMgY29tcGlsZXIKKysJICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlY19GNzc9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5j ZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2Nv bnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3ds fS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKKysJICA7 OworKwlwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBm OTAgY29tcGlsZXJzCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PScke3dsfS0td2hv bGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRj b252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25l OyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisr CSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7CisrCWVjYyosaWE2NCogfCBp Y2MqLGlhNjQqKQkJIyBJbnRlbCBDIGNvbXBpbGVyIG9uIGlhNjQKKysJICB0bXBfYWRkZmxhZz0n IC1pX2R5bmFtaWMnIDs7CisrCWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9y dHJhbiBjb21waWxlciBvbiBpYTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zv cl9tYWluJyA7OworKwlpZmMqIHwgaWZvcnQqKQkJCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlcgor KwkgIHRtcF9hZGRmbGFnPScgLW5vZm9yX21haW4nIDs7CisrCWVzYWMKKysJY2FzZSBgJENDIC1W IDI+JjEgfCBzZWQgNXFgIGluCisrCSpTdW5cIEMqKQkJCSMgU3VuIEMgNS45CisrCSAgd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWNfRjc3PScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVu Y2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8 fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hv IFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBf c2hhcmVkZmxhZz0nLUcnIDs7CisrCSpTdW5cIEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCisrCSAg dG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkqKQorKwkgIHRtcF9zaGFyZWRmbGFnPSctc2hhcmVk JyA7OworKwllc2FjCisrCWFyY2hpdmVfY21kc19GNzc9JyRDQyAnIiR0bXBfc2hhcmVkZmxhZyIi JHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCisrCWlmIHRlc3QgJHN1cHBvcnRzX2Fub25fdmVy c2lvbmluZyA9IHllczsgdGhlbgorKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckZWNobyAi eyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysgIGNhdCAkZXhwb3J0 X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLnZlcn4KKysgICRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLnZlcn4KKysJICAkQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS12ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGli JworKwlmaQorKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzX0Y3Nz1ubworKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUg LSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kc19GNzc9JyRM RCAtQnNoYXJlYWJsZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCisr CXdsYXJjPQorKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0 YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBmaQor KyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIGlmICRMRCAtdiAyPiYxIHwgZ3Jl cCAnQkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCisrCWxkX3NobGlic19GNzc9bm8KKysJY2F0 IDw8RU9GIDE+JjIKKysKKysqKiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBH TlUgbGlua2VyIGNhbm5vdCByZWxpYWJseQorKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBv biBTb2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5n IHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisr KioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBp cyB0byBtb2RpZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28g dGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0Lgor KworK0VPRgorKyAgICAgIGVsaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQg dGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kc19GNzc9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFy ZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWIn CisrICAgICAgZWxzZQorKwlsZF9zaGxpYnNfRjc3PW5vCisrICAgICAgZmkKKysgICAgICA7Owor KworKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVO SVgqKQorKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgorKyAgICAgICAgKlwgWzAxXS4qIHwg KlwgMi5bMC05XS4qIHwgKlwgMi4xWzAtNV0uKikKKysJbGRfc2hsaWJzX0Y3Nz1ubworKwljYXQg PDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogUmVsZWFzZXMgb2YgdGhlIEdOVSBsaW5r ZXIgcHJpb3IgdG8gMi4xNi45MS4wLjMgY2FuIG5vdAorKyoqKiByZWxpYWJseSBjcmVhdGUgc2hh cmVkIGxpYnJhcmllcyBvbiBTQ08gc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAorKyoqKiBp cyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBn cmFkZSBHTlUKKysqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjE2LjkxLjAuMyBvciBuZXdlci4g IEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIg Y29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisrKioqIHVzZWQsIGFu ZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VPRgorKwk7OworKwkqKQorKwkgIGlmICRMRCAtLWhl bHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsg dGhlbgorKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9J2B0ZXN0IC16ICIkU0NP QUJTUEFUSCIgJiYgZWNobyAke3dsfS1ycGF0aCwkbGliZGlyYCcKKysJICAgIGFyY2hpdmVfY21k c19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxp YicKKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lLFwke1NDT0FCU1BBVEg6KyR7aW5z dGFsbF9saWJkaXJ9L30kc29uYW1lLC1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKwkgIGVsc2UKKysJICAgIGxkX3NobGlic19GNzc9bm8KKysJICBmaQorKwk7 OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBzdW5vczQqKQorKyAgICAgIGFyY2hp dmVfY21kc19GNzc9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnNoYXJlYWJsZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgd2xhcmM9CisrICAgICAgaGFy ZGNvZGVfZGlyZWN0X0Y3Nz15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1u bworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3Jl cCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFyY2hp dmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRz X0Y3Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnNfRjc3PW5vCisrICAgICAg ZmkKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIGlmIHRlc3QgIiRsZF9zaGxpYnNfRjc3 IiA9IG5vOyB0aGVuCisrICAgICAgcnVucGF0aF92YXI9CisrICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19GNzc9CisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0KKysg ICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9CisrICAgIGZpCisrICBlbHNlCisrICAg ICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtlciAo bm90IEdOVSBsZCkKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgzKikKKysgICAgICBh bGxvd191bmRlZmluZWRfZmxhZ19GNzc9dW5zdXBwb3J0ZWQKKysgICAgICBhbHdheXNfZXhwb3J0 X3N5bWJvbHNfRjc3PXllcworKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckTEQgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1i RTokZXhwb3J0X3N5bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdTICRsaWIg JG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysgICAgICAjIE5vdGU6IHRoaXMgbGlua2VyIGhhcmRj b2RlcyB0aGUgZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQorKyAgICAgICMgYXJlIG5v IGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieSAtTC4KKysgICAgICBoYXJkY29kZV9taW51c19MX0Y3 Nz15ZXMKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJvZ19j b21waWxlcl9zdGF0aWMiOyB0aGVuCisrCSMgTmVpdGhlciBkaXJlY3QgaGFyZGNvZGluZyBub3Ig c3RhdGljIGxpbmtpbmcgaXMgc3VwcG9ydGVkIHdpdGggYQorKwkjIGJyb2tlbiBjb2xsZWN0Mi4K KysJaGFyZGNvZGVfZGlyZWN0X0Y3Nz11bnN1cHBvcnRlZAorKyAgICAgIGZpCisrICAgICAgOzsK KysKKysgICAgYWl4WzQtOV0qKQorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCisrCSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVm YXVsdCwgc28gd2UgZG9uJ3QKKysJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisrCWFp eF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysJbm9f ZW50cnlfZmxhZz0iIgorKyAgICAgIGVsc2UKKysJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRo ZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisrCSMgLUMgbWVhbnMgZGVtYW5nbGUg dG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysJaWYgJE5N IC1WIDI+JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgZXhwb3J0X3N5bWJv bHNfY21kc19GNzc9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBp ZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQyID09ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAoc3Vi c3RyKFwkMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4 cG9ydF9zeW1ib2xzJworKwllbHNlCisrCSAgZXhwb3J0X3N5bWJvbHNfY21kc19GNzc9JyROTSAt QkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQyID09ICJUIikg fHwgKFwkMiA9PSAiRCIpIHx8IChcJDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJDMsMSwxKSAhPSAi LiIpKSB7IHByaW50IFwkMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysJ ZmkKKysJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKworKwkjIFRlc3QgaWYgd2UgYXJlIHRy eWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKKysJIyBBSVggc3R5bGUgbGlu a2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCisrCSMgbmVlZCB0byBk byBydW50aW1lIGxpbmtpbmcuCisrCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIz XS4qfGFpeFs1LTldKikKKysJICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KKysgIAkgIGlm ICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0bCIp OyB0aGVuCisrICAJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisrICAJICAgIGJyZWFr CisrICAJICBmaQorKwkgIGRvbmUKKysJICA7OworKwllc2FjCisrCisrCWV4cF9zeW1fZmxhZz0n LWJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKKysgICAgICBmaQorKworKyAg ICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQs IEFJWCBsZCBjYW4KKysgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9m IGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKKysgICAgICAjIG9yIHByb2dyYW0gcmVz dWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAg ICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQg aXMgbm90CisrICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmln dG9jIHRvIExERkxBR1MuCisrCisrICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJworKyAgICAgIGhh cmRjb2RlX2RpcmVjdF9GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9G Nzc9JzonCisrICAgICAgbGlua19hbGxfZGVwbGlic19GNzc9eWVzCisrCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQu WzAxMl0uKikKKysJIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dl ciwgdGhlIGNoZWNrCisrCSMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsg dW5kZXIgNC4zKworKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xs ZWN0MmAKKysJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJiBcCisrICAJICAgc3RyaW5n cyAiJGNvbGxlY3QybmFtZSIgfCBncmVwIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAorKwkg IHRoZW4KKysgIAkgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorKyAgCSAgOgorKwkgIGVs c2UKKysgIAkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKKysgIAkgIGhhcmRjb2RlX2RpcmVjdF9G Nzc9dW5zdXBwb3J0ZWQKKysgIAkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJy YXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKKysgIAkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGlu IHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCisrICAJICAjIHRvIHVuc3Vw cG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKKysgIAkgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcwor KyAgCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKKysgIAkgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PQorKwkgIGZpCisrCSAgOzsKKysJZXNhYworKwlz aGFyZWRfZmxhZz0nLXNoYXJlZCcKKysJaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmci ID0geWVzOyB0aGVuCisrCSAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCisr CWZpCisrICAgICAgZWxzZQorKwkjIG5vdCB1c2luZyBnY2MKKysJaWYgdGVzdCAiJGhvc3RfY3B1 IiA9IGlhNjQ7IHRoZW4KKysgIAkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVgg NUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQorKyAgCSMgY2hva2VzIG9uIC1XbCwtRy4gVGhl IGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6CisrCSAgc2hhcmVkX2ZsYWc9Jy1HJworKwllbHNl CisrCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAg ICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKKysJICBlbHNlCisrCSAgICBzaGFyZWRfZmxhZz0nJHt3 bH0tYk06U1JFJworKwkgIGZpCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIEl0IHNlZW1z IHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysg ICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0 IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgorKyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19GNzc9 eWVzCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVu CisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBm bGFncyAoLWJydGwpLAorKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1h eSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0n LWJlcm9rJworKyAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhl IHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysgICAgICAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrICAgICAgcHJvZ3JhbSBtYWluCisrCisrICAgICAgZW5k CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK KytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisr ICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3Qg LXogIiRhY19mNzdfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisr ICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0 CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0 IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEv CisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRh Y19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAK KysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcu CisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAg LUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2Fp eF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4 X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6 JyIkYWl4X2xpYnBhdGgiCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSJcJENDIicgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9m bGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30i ICE9ICJ4IjsgdGhlbiBlY2hvICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6 OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFn IgorKyAgICAgICBlbHNlCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjov bGliJworKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0iLXogbm9kZWZzIgorKwkgIGFyY2hp dmVfZXhwc3ltX2NtZHNfRjc3PSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21w aWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1f ZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVs dCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4K KysJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKyAgICAgIHByb2dyYW0gbWFpbgor KworKyAgICAgIGVuZAorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfZjc3X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsK KysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrCisrbHRfYWl4X2xpYnBhdGhfc2VkPScK KysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMvXjAg ICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAg LUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9s aWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBm aW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9s aWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQg LW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2ZpCisrZWxzZQorKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQorKworKworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRl c3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisraWYg dGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7 IGZpCisrCisrCSBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tYmxpYnBhdGg6 JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRo ZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICMgLWJlcm9rIHdpbGwgbGluayB3 aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICBub191 bmRlZmluZWRfZmxhZ19GNzc9JyAke3dsfS1iZXJub3RvaycKKysJICBhbGxvd191bmRlZmluZWRf ZmxhZ19GNzc9JyAke3dsfS1iZXJvaycKKysJICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1 bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKysJICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY19GNzc9JyRjb252ZW5pZW5jZScKKysJICBhcmNoaXZlX2NtZHNfbmVlZF9sY19G Nzc9eWVzCisrCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1 aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0i XCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRk ZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5 bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJworKwlmaQorKyAgICAg IGZpCisrICAgICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgYXJjaGl2ZV9jbWRzX0Y3 Nz0nJHJtICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTkFN RSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVm aW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNo byAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kZWNobyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGly L2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxp Yn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKKysgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX21pbnVz X0xfRjc3PXllcworKyAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgZGlmZmVyZW50IHNlbWFudGlj cyBvbiB0aGUgR05VIGxkIHNlY3Rpb24KKysgICAgICBsZF9zaGxpYnNfRjc3PW5vCisrICAgICAg OzsKKysKKysgICAgYnNkaVs0NV0qKQorKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19G Nzc9LXJkeW5hbWljCisrICAgICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIq KQorKyAgICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQg d2UgYXJlIHVzaW5nCisrICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgICAjIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJl IGlzCisrICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0Y3Nz0nICcKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9 dW5zdXBwb3J0ZWQKKysgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90 IC5hIGZpbGVzLgorKyAgICAgIGxpYmV4dD1saWIKKysgICAgICAjIFRlbGwgbHRtYWluIHRvIG1h a2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KKysgICAgICBzaHJleHRfY21kcz0iLmRsbCIK KysgICAgICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisr ICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2Zs YWdzIGBlY2hvICIkZGVwbGlicyIgfCAkU0VEIC1lICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAt ZGxsfmxpbmtuYW1lcz0nCisrICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBi dWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KKysgICAgICBvbGRfYXJjaGl2ZV9G cm9tX25ld19jbWRzX0Y3Nz0ndHJ1ZScKKysgICAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1 c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgorKyAgICAgIG9sZF9hcmNoaXZlX2NtZHNfRjc3 PSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCisrICAgICAgZml4X3NyY2Zp bGVfcGF0aF9GNzc9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJworKyAgICAgIGVuYWJsZV9zaGFy ZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfRjc3PXllcworKyAgICAgIDs7CisrCisrICAgIGRhcndp biogfCByaGFwc29keSopCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgICAgcmhhcHNv ZHkqIHwgZGFyd2luMS5bMDEyXSkKKysgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9 JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJworKyAgICAgICAgIDs7CisrICAgICAgICop ICMgRGFyd2luIDEuMyBvbgorKyAgICAgICAgIGlmIHRlc3QgLXogJHtNQUNPU1hfREVQTE9ZTUVO VF9UQVJHRVR9IDsgdGhlbgorKyAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PSck e3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycKKysgICAg ICAgICBlbHNlCisrICAgICAgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfSBp bgorKyAgICAgICAgICAgICAxMC5bMDEyXSkKKysgICAgICAgICAgICAgICBhbGxvd191bmRlZmlu ZWRfZmxhZ19GNzc9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1 cHByZXNzJworKyAgICAgICAgICAgICAgIDs7CisrICAgICAgICAgICAgIDEwLiopCisrICAgICAg ICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS11bmRlZmluZWQgJHt3bH1k eW5hbWljX2xvb2t1cCcKKysgICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgZXNhYworKyAg ICAgICAgIGZpCisrICAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgYXJjaGl2ZV9jbWRz X25lZWRfbGNfRjc3PW5vCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz1ubworKyAgICAgIGhh cmRjb2RlX2F1dG9tYXRpY19GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9G Nzc9dW5zdXBwb3J0ZWQKKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9JycKKysg ICAgICBsaW5rX2FsbF9kZXBsaWJzX0Y3Nz15ZXMKKysgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMg OyB0aGVuCisrICAgIAlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysgICAgICAgIGFy Y2hpdmVfY21kc19GNzc9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAt byBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFt ZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9k c3ltdXRpbH0iCisrICAgICAgICBtb2R1bGVfY21kc19GNzc9IlwkQ0MgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyR7X2x0X2RzeW11dGlsfSIKKysgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSJz ZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5h bWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxh ZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxf bmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7 X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgICAgICBtb2R1bGVfZXhw c3ltX2NtZHNfRjc3PSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRw dXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgIGVsc2UKKysg ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgeGxjKikKKysgICAgICAgICBvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysgICAgICAgICBhcmNoaXZlX2NtZHNfRjc3PSck Q0MgLXFta3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8gJHJwYXRo LyRzb25hbWVgICR4bGN2ZXJzdHJpbmcnCisrICAgICAgICAgbW9kdWxlX2NtZHNfRjc3PSckQ0Mg JGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgLWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRj b21waWxlcl9mbGFncycKKysgICAgICAgICAgIyBEb24ndCBmaXggdGhpcyBieSB1c2luZyB0aGUg bGQgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBmbGFnLCBpdCBkb2Vzbid0IGV4aXN0IGluIG9sZGVy IGRhcndpbiBsZHMKKysgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nc2VkIC1lICJz LCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9ydF9z eW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0MgLXFt a3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9JHJwYXRoLyRzb25hbWUgJHhs Y3ZlcnN0cmluZ35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4 cHN5bSAke2xpYn0nCisrICAgICAgICAgIG1vZHVsZV9leHBzeW1fY21kc19GNzc9J3NlZCAtZSAi cywjLiosLCIgLWUgInMsXlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRf c3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDICRh bGxvd191bmRlZmluZWRfZmxhZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNv bXBpbGVyX2ZsYWdzfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMu ZXhwc3ltICR7bGlifScKKysgICAgICAgICAgOzsKKysgICAgICAgKikKKysgICAgICAgICBsZF9z aGxpYnNfRjc3PW5vCisrICAgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgICAg IDs7CisrCisrICAgIGRndXgqKQorKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyAtaCAk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXJfRjc3PW5vCisrICAgICAgOzsKKysKKysgICAgZnJlZWJzZDEqKQorKyAg ICAgIGxkX3NobGlic19GNzc9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMi4yLlsw MTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IK KysgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwg YnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCisrICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcs IGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQorKyAgICAj IGV4dHJhIHNwYWNlKS4KKysgICAgZnJlZWJzZDIuMiopCisrICAgICAgYXJjaGl2ZV9jbWRzX0Y3 Nz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cyAvdXNyL2xpYi9jKytydDAubycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3 Nz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVu YXRlbHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1 cmUuCisrICAgIGZyZWVic2QyKikKKysgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUJzaGFy ZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhh cmRjb2RlX2RpcmVjdF9GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCisr ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KKysgICAgICA7OworKworKyAgICAj IEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJy YXJpZXMuCisrICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgICBhcmNoaXZlX2NtZHNf Rjc3PSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGlyJworKyAg ICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cl9GNzc9bm8KKysgICAgICA7OworKworKyAgICBocHV4OSopCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJHJtICRvdXRwdXRfb2JqZGlyLyRz b25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350 ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYicKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kc19GNzc9JyRybSAkb3V0cHV0 X29iamRpci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9v YmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwor KyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9K2Ig JHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PToKKysg ICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcworKworKyAgICAgICMgaGFyZGNvZGVfbWludXNf TDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrICAgICAgIyBidXQgYXMgdGhlIGRl ZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrICAgICAgaGFyZGNvZGVfbWludXNfTF9G Nzc9eWVzCisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tRScKKysg ICAgICA7OworKworKyAgICBocHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1h ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFy ZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRp ciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNl CisrCWFyY2hpdmVfY21kc19GNzc9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRp ciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysg ICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19GNzc9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwloYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yX0Y3Nz06CisrCisrCWhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCisrCWV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlY19GNzc9JyR7d2x9LUUnCisrCisrCSMgaGFyZGNvZGVfbWludXNfTDog Tm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCSMgYnV0IGFzIHRoZSBkZWZhdWx0IGxv Y2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwloYXJkY29kZV9taW51c19MX0Y3Nz15ZXMKKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgIGhwdXgxMSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwljYXNlICRob3N0X2NwdSBpbgor KwlocHBhKjY0KikKKysJICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAke3dsfStoICR7 d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJ ICA7OworKwlpYTY0KikKKysJICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAke3dsfSto ICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQorKwkgIGFyY2hpdmVfY21kc19GNzc9 JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5z dGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisr CSAgOzsKKysJZXNhYworKyAgICAgIGVsc2UKKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2 NCopCisrCSAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQq KQorKwkgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3ds fStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysJICA7OworKwkqKQorKwkgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtYiAke3dsfStoICR7 d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAg ICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwloYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0Y3Nz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfRjc3PToKKysKKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCp8aWE2NCop CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9GNzc9JytiICRsaWJkaXInCisrCSAg aGFyZGNvZGVfZGlyZWN0X0Y3Nz1ubworKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5v CisrCSAgOzsKKysJKikKKysJICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcworKwkgIGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlY19GNzc9JyR7d2x9LUUnCisrCisrCSAgIyBoYXJkY29kZV9taW51c19M OiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAjIGJ1dCBhcyB0aGUgZGVmYXVs dCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBoYXJkY29kZV9taW51c19MX0Y3Nz15ZXMK KysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpcml4NSogfCBp cml4NiogfCBub25zdG9wdXgqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisr CWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm JiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAg ICBlbHNlCisrCWFyY2hpdmVfY21kc19GNzc9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBl Y2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGRfRjc3PSctcnBhdGggJGxpYmRpcicKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfRjc3PScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvcl9GNzc9OgorKyAgICAgIGxpbmtfYWxsX2RlcGxpYnNfRjc3PXll cworKyAgICAgIDs7CisrCisrICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHNf Rjc3PSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJyAgIyBhLm91dAorKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1zaGFy ZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisr ICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGly JworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcl9GNzc9bm8KKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGFyY2hp dmVfY21kc19GNzc9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKKysgICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcworKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisr ICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzc9OgorKyAgICAgIGhhcmRjb2RlX3No bGlicGF0aF92YXJfRjc3PW5vCisrICAgICAgOzsKKysKKysgICAgb3BlbmJzZCopCisrICAgICAg aWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKysJaGFyZGNvZGVfZGlyZWN0X0Y3 Nz15ZXMKKysJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KKysJaWYgdGVzdCAteiAiYGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3Mt JGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrCSAgYXJjaGl2ZV9jbWRz X0Y3Nz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJworKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t cmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCisrCSAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19GNzc9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tRScKKysJZWxzZQorKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJ ICAgb3BlbmJzZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAtN10uKikKKysJ ICAgICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Rjc3PSctUiRsaWJkaXInCisrCSAgICAgOzsKKysJICAgKikKKysJICAgICBhcmNoaXZlX2NtZHNf Rjc3PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCisrCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9 LXJwYXRoLCRsaWJkaXInCisrCSAgICAgOzsKKysJICBlc2FjCisrICAgICAgICBmaQorKyAgICAg IGVsc2UKKysJbGRfc2hsaWJzX0Y3Nz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAg b3MyKikKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLUwkbGliZGlyJwor KyAgICAgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9m bGFnX0Y3Nz11bnN1cHBvcnRlZAorKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRlY2hvICJMSUJS QVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ JGVjaG8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmfiRlY2hvIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvICIg U0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvIEVY UE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAk b3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRl ZicKKysgICAgICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzX0Y3Nz0nZW14aW1wIC1vICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAg IDs7CisrCisrICAgIG9zZjMqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisr CWFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9 XConCisrCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh Z30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRz b25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3 bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9 L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJYWxsb3dfdW5kZWZpbmVkX2Zs YWdfRjc3PScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQg LXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRf dmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0Y3Nz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JfRjc3PToKKysgICAgICA7OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkj IGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgorKwlhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9JyAke3dsfS1l eHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJl ZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRh dGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwor KwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGly JworKyAgICAgIGVsc2UKKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScgLWV4cGVjdF91bnJl c29sdmVkIFwqJworKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAk c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3Ry aW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3lt Ym9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxp Yi5leHA7IGRvbmU7IGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRMRCAtc2hhcmVkJHth bGxvd191bmRlZmluZWRfZmxhZ30gLWlucHV0ICRsaWIuZXhwICRsaW5rZXJfZmxhZ3MgJGxpYm9i anMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hv IC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRp cn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JHJtICRsaWIuZXhwJworKworKwkjIEJvdGggYyBhbmQg Y3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCWhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfRjc3PSctcnBhdGggJGxpYmRpcicKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3JfRjc3PToKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysg ICAgICBub191bmRlZmluZWRfZmxhZ19GNzc9JyAteiB0ZXh0JworKyAgICAgIGlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCisrCXdsYXJjPScke3dsfScKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJEND IC1zaGFyZWQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckZWNobyAieyBnbG9i YWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9c MTsvIiA+PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAk Q0MgLXNoYXJlZCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJworKyAg ICAgIGVsc2UKKysJd2xhcmM9JycKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1HJHthbGxvd191 bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckZWNobyAieyBnbG9iYWw6IiA+ ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+ PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysgIAkkTEQgLUck e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kcm0gJGxpYi5leHAnCisrICAgICAgZmkKKysg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGlyJworKyAgICAgIGhh cmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKKysgICAgICAqKQorKwkj IFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRp b25zLAorKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRz IGl0IHdpdGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9y ZGVyLgorKyAJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKysJ aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19G Nzc9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZh dWx0ZXh0cmFjdCcKKysJZWxzZQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3Nz0nLXog YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKysJZmkKKysJOzsKKysg ICAgICBlc2FjCisrICAgICAgbGlua19hbGxfZGVwbGlic19GNzc9eWVzCisrICAgICAgOzsKKysK KysgICAgc3Vub3M0KikKKysgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50 OyB0aGVuCisrCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhy b3dzIGluIHNvbWUgZXh0cmEgLm8KKysJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5p IHNlY3Rpb25zIHdvcmsuCisrCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtRyAke3dsfS1oICRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxz ZQorKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKKysgICAgICBoYXJkY29k ZV9kaXJlY3RfRjc3PXllcworKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcworKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQp CisrICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysJc25pKQorKwkgIGFyY2hpdmVfY21kc19G Nzc9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycKKysJICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/ Pz8KKysJOzsKKysJc2llbWVucykKKysJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIK KysJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCisrCSAgYXJjaGl2ZV9jbWRzX0Y3 Nz0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBy ZWxvYWRfY21kc19GNzc9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworKwkgIGhhcmRj b2RlX2RpcmVjdF9GNzc9bm8KKysgICAgICAgIDs7CisrCW1vdG9yb2xhKQorKwkgIGFyY2hpdmVf Y21kc19GNzc9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKKysJICBoYXJkY29kZV9kaXJlY3RfRjc3PW5vICNNb3Rvcm9sYSBtYW51YWwg c2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKKysJOzsKKysgICAgICBlc2FjCisr ICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXJfRjc3PW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQuMyopCisrICAgICAgYXJjaGl2 ZV9jbWRzX0Y3Nz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCisrICAg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0nLUJleHBvcnQnCisrICAgICAgOzsKKysK KysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJYXJj aGl2ZV9jbWRzX0Y3Nz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubworKwlydW5w YXRoX3Zhcj1MRF9SVU5fUEFUSAorKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKKysJbGRfc2hs aWJzX0Y3Nz15ZXMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBz eXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCB1bml4d2FyZTcqIHwg c2NvMy4ydjUuMC5bMDI0XSopCisrICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS16 LHRleHQnCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfRjc3PW5vCisrICAgICAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgn CisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzX0Y3 Nz0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQg JHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9j bWRzX0Y3Nz0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRDQyAtRyAke3ds fS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAg ICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKyAgICAgICMgTm90ZTogV2UgY2FuIE5P VCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisrICAg ICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2Vk IGZyb20gbGliYyB0bworKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5z IGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3Rs eS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKKysgICAgICAjIHRo b3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2 eS1oYW5kZWQKKysgICAgICAjIGFzIC16IGRlZnMuCisrICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdf Rjc3PScke3dsfS16LHRleHQnCisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScke3ds fS16LG5vZGVmcycKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9bm8KKysgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfRjc3PSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGly YCcKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz0nOicKKysgICAgICBsaW5r X2FsbF9kZXBsaWJzX0Y3Nz15ZXMKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3 PScke3dsfS1CZXhwb3J0JworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0Mg LXNoYXJlZCAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4 cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMg JHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCWFyY2hp dmVfY21kc19GNzc9JyRDQyAtRyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJk aXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9z eW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysg ICAgICA7OworKworKyAgICB1dHM0KikKKysgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUcg LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKKysgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAg bGRfc2hsaWJzX0Y3Nz1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19GNzciID4mNQorKyRhc19l Y2hvICIkbGRfc2hsaWJzX0Y3NyIgPiY2OyB9CisrdGVzdCAiJGxkX3NobGlic19GNzciID0gbm8g JiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworKyMKKysjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRs eSBsaW5rIGxpYmM/CisrIworK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNfRjc3IiBpbgor K3h8eHllcykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKysgIGFyY2hpdmVfY21k c19uZWVkX2xjX0Y3Nz15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAm JiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRhcmNoaXZlX2NtZHNfRjc3IGlu CisrICAgIConficqKQorKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBt dWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysgICAgICA7OworKyAgICAnJENDICcqKQorKyAgICAg ICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNp bmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAt bGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKKysgICAgICAjIHRvIGxkLCBkb24ndCBhZGQg LWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5r ZWQgaW4uLi4gIiA+JjY7IH0KKysgICAgICAkcm0gY29uZnRlc3QqCisrICAgICAgZWNobyAiJGx0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgICAg aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Cisr ICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4KKysgICAgICAgIHNvbmFtZT1jb25mdGVzdAorKyAg ICAgICAgbGliPWNvbmZ0ZXN0CisrICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQK KysgICAgICAgIGRlcGxpYnM9CisrICAgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bF9GNzcK KysJcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NworKyAgICAgICAgY29tcGlsZXJf ZmxhZ3M9LXYKKysgICAgICAgIGxpbmtlcl9mbGFncz0tdgorKyAgICAgICAgdmVyc3RyaW5nPQor KyAgICAgICAgb3V0cHV0X29iamRpcj0uCisrICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0CisrICAg ICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZ19G NzcKKysgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0KKysgICAgICAgIGlmIHsgKGV2 YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFyY2hpdmVfY21kc19GNzcgMlw+XCYxIFx8IGdy ZXAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1CisrICAoZXZhbCAkYXJjaGl2 ZV9jbWRzX0Y3NyAyXD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAy PiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKyAgICAgICAgdGhlbgor KwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3Nz1ubworKyAgICAgICAgZWxzZQorKwkgIGFyY2hp dmVfY21kc19uZWVkX2xjX0Y3Nz15ZXMKKysgICAgICAgIGZpCisrICAgICAgICBhbGxvd191bmRl ZmluZWRfZmxhZ19GNzc9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysgICAgICBlbHNl CisrICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAgICBmaQorKyAgICAgICRybSBj b25mdGVzdCoKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJj aGl2ZV9jbWRzX25lZWRfbGNfRjc3IiA+JjUKKyskYXNfZWNobyAiJGFyY2hpdmVfY21kc19uZWVk X2xjX0Y3NyIgPiY2OyB9CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIDs7CisrZXNh YworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtl ciBjaGFyYWN0ZXJpc3RpY3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlu a2VyIGNoYXJhY3RlcmlzdGljcy4uLiAiID4mNjsgfQorK2xpYnJhcnlfbmFtZXNfc3BlYz0KKyts aWJuYW1lX3NwZWM9J2xpYiRuYW1lJworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28i CisrcG9zdGluc3RhbGxfY21kcz0KKytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9 CisrZmluaXNoX2V2YWw9Cisrc2hsaWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9dW5rbm93bgorK3ZlcnNpb25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGxkLnNvIgorK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgor KworK25lZWRfbGliX3ByZWZpeD11bmtub3duCisraGFyZGNvZGVfaW50b19saWJzPW5vCisrCisr IyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3Qg Y2F1c2UgLXNldF92ZXJzaW9uCisrIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRz CisrbmVlZF92ZXJzaW9uPXVua25vd24KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisr ICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJworKyAgc2hsaWJwYXRo X3Zhcj1MSUJQQVRICisrCisrICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNv IHdlIGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgOzsKKysKKythaXhb NC05XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg bmVlZF92ZXJzaW9uPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIk aG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNl CisrICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4g aW1wb3J0IGZpbGUKKysgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0 IGZpbGUgd291bGQgc3RhcnQgd2l0aAorKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291 bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywg YWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2 ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCisrICAgICAgaWYg eyBlY2hvICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5P Ul9fID49IDk3KScKKysJICAgZWNobyAnIHllcyAnCisrCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAk e0NDfSAtRSAtIHwgZ3JlcCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KKysJOgorKyAgICAgIGVsc2UK KysJY2FuX2J1aWxkX3NoYXJlZD1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYwor KyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJy ZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0CisrICAgICMgc29uYW1lIGludG8gZXhl Y3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KKysgICAg IyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4K KysgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAg ICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2Ug bGliPG5hbWU+LnNvCisrICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9w bGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKKysgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBs aWJyYXJpZXMuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIGVsc2UKKysgICAgICAjIFdlIHBy ZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQu MgorKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5r aW5nLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAk bGlibmFtZS5hJworKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCisrICAgIGZpCisrICAgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAg ZmkKKysgIDs7CisrCisrYW1pZ2FvcyopCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1l Lml4bGlicmFyeSAkbGlibmFtZS5hJworKyAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnku YSBlbnRyaWVzIGluIC9zeXMvbGlicy4KKysgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAk bGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJGVjaG8gIlgkbGli IiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRl c3QgJHJtIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9s aWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAm JiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAg OzsKKysKKytiZW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0nCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhf dmFyPUxJQlJBUllfUEFUSAorKyAgOzsKKysKKytic2RpWzQ1XSopCisrICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2Nt ZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAv dXNyL2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGli IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xv Y2FsL2xpYiIKKysgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3Iv Y29udHJpYi9saWIgYW5kCisrICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsg dG8gL3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKKysgICMgbGlidG9vbCB0byBoYXJkLWNv ZGUgdGhlc2UgaW50byBwcm9ncmFtcworKyAgOzsKKysKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiopCisrICB2ZXJzaW9uX3R5cGU9d2luZG93cworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBu ZWVkX3ZlcnNpb249bm8KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKworKyAgY2FzZSAkR0NDLCRo b3N0X29zIGluCisrICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiopCisrICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3Rh bGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGlu c3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRo PWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7ZWNobyBc JGRsbmFtZSdcJydgfgorKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4K KysgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KKysgICAgICAkaW5z dGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgY2htb2QgYSt4 IFwkZGxkaXIvJGRsbmFtZScKKysgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxM IDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbHBhdGg9 JGRpci9cJGRsZGxsfgorKyAgICAgICAkcm0gXCRkbHBhdGgnCisrICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBjeWd3aW4q KQorKyAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGli JworKyAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIv Y3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9 JHtzaGFyZWRfZXh0fScKKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli IC9saWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICAgICAgOzsKKysgICAgbWluZ3cq KQorKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4CisrICAg ICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9b Ll0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8 ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKKysgICAgICBpZiBlY2hv ICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IGdyZXAgJztbYy16Qy1aXTovJyA+L2Rldi9u dWxsOyB0aGVuCisrICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1h dCBQQVRIIHByaW50ZWQgYnkKKysgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5p bmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKKysgICAgICAgICMgcGF0aCB3aXRo IDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUK KysgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0 aGVtKSwgc28gbGVhdmUgdGhlbSwKKysgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBw YXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKKysgICAgICAgICMgd2hp Y2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KKysgICAgICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl YyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9YGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAg LWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBw dzMyKikKKysgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xp YicKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUg J3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVy c3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7OworKwor KyAgKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNl fSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFt ZS5saWInCisrICAgIDs7CisrICBlc2FjCisrICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhl JworKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5 IHRoZSBleGVjdXRhYmxlIGlzIGluCisrICBzaGxpYnBhdGhfdmFyPVBBVEgKKysgIDs7CisrCisr ZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgor KyAgdmVyc2lvbl90eXBlPWRhcndpbgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3Zl cnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3Zl cnN1ZmZpeH0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9l eHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4dF9jbWRz PSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJworKwor KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9s aWInCisrICA7OworKworK2RndXgqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xp Yl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFt aWNfbGlua2VyPW5vCisrICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJh Z29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcK KysgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAv dXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3Jt YXRgCisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFsxMjNdKikg b2JqZm9ybWF0PWFvdXQgOzsKKysgICAgKikgb2JqZm9ybWF0PWVsZiA7OworKyAgICBlc2FjCisr ICBmaQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAorKyAgY2FzZSAkdmVyc2lv bl90eXBlIGluCisrICAgIGZyZWVic2QtZWxmKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgICBuZWVk X3ZlcnNpb249bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBm cmVlYnNkLSopCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgn CisrICAgICAgbmVlZF92ZXJzaW9uPXllcworKyAgICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgZnJlZWJzZDIq KQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIDs7CisrICBmcmVl YnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZy ZWVic2QzLlsyLTldKiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwKKysgIGZyZWVic2Q0LlswLTVd IHwgZnJlZWJzZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCisr ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCisrICAgIDs7CisrICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5CisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJz PXllcworKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytnbnUqKQorKyAgdmVyc2lvbl90eXBl PWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0k e3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEq KQorKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24g c28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bworKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lv bnMuCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIHNocmV4 dF9jbWRzPScuc28nCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19s aW5rZXI9IiRob3N0X29zIGRsZC5zbyIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2 YXIgaXMgc3BlY2lmaWVkLgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgaWYgdGVzdCAiWCRI UFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIi CisrICAgIGVsc2UKKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hw dXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCisrICAgIGZpCisrICAgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgICBocHBh KjY0KikKKysgICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgorKyAgICAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRI CisrICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZh ciBpcyBzcGVjaWZpZWQuCisrICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCisr ICAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj CisrICAgICA7OworKyAgICopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGR5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAor KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBl bmFibGUgU0hMSUJfUEFUSAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgOzsKKysgIGVzYWMK KysgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMg YXJlIG1vZGUgNTU1LgorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCisrICA7 OworKworK2ludGVyaXhbMy05XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGR5 bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJworKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytpcml4NSogfCBpcml4 NiogfCBub25zdG9wdXgqKQorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBub25zdG9wdXgqKSB2 ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7CisrICAgICopCisrCWlmIHRlc3QgIiRsdF9jdl9wcm9n X2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJCXZlcnNpb25fdHlwZT1saW51eAorKwllbHNlCisrCQl2 ZXJzaW9uX3R5cGU9aXJpeAorKwlmaSA7OworKyAgZXNhYworKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCisrICBjYXNlICRob3N0X29zIGluCisrICBpcml4NSogfCBub25zdG9w dXgqKQorKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9CisrICAgIDs7CisrICAqKQorKyAgICBjYXNl ICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExE CisrICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCisrICAg ICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OworKyAgICAqLW4zMnwqIi1u MzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQorKyAgICAgIGxpYnN1ZmY9 MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OworKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxm NjRibWlwfCoiLW1lbGY2NGJtaXAgIikKKysgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBs aWJtYWdpYz02NC1iaXQ7OworKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5l dmVyLW1hdGNoOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD1ubworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0g L2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrIyBObyBzaGFyZWQgbGliIHN1cHBvcnQg Zm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgorK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFv dXQqIHwgbGludXgqY29mZiopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKysjIFRo aXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSkKKysgIHZlcnNpb25f dHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29u ZmlnIC1uICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2lu c3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBu ZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUg ZW5hYmxlZC4KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGli JHtsaWJzdWZmfSIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGli c3VmZn0gL2xpYiR7bGlic3VmZn0iCisrCisrICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRz IHRvIHRoZSBzZWFyY2ggcGF0aAorKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4K KysgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2Qg L2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lw KSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3Mv Iy4qLy87L15bIAldKmh3Y2FwWyAJXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBd KiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAorKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKKysgIGZpCisr CisrICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJl ZCBsaWJyYXJpZXMgb24KKysgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9y dGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKKysgICMgR05VIGR5bmFtaWMgbGlua2VyLiAg U2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAorKyAgIyBtb3N0IHBv d2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQK KysgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJl bW92ZWQsIGFuZCB3ZQorKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBp cyBpbiB1c2UuCisrICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJworKyAgOzsKKysK KytuZXRic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgIG5lZWRfdmVyc2lvbj1ubworKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVw IF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4JworKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBs ZGNvbmZpZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkg bGQuc28nCisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGR5bmFtaWNfbGlu a2VyPSdOZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICA7OworKworK25ld3NvczYpCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIDs7CisrCisrbnRvLXFueCopCisrICB2 ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9u PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKytvcGVuYnNkKikK KysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91 c3IvbGliIgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMg b2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCisrICBj YXNlICRob3N0X29zIGluCisrICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopIG5lZWRfdmVy c2lvbj15ZXMgOzsKKysgICAgKikgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF92ZXJzaW9u PW5vICA7OworKyAgZXNhYworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRs aWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgaWYgdGVzdCAteiAi YGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rf b3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhv c3Rfb3MgaW4KKysgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQorKwlzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQorKyAgICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytvczIqKQor KyAgbGlibmFtZV9zcGVjPSckbmFtZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0 fSAkbGlibmFtZS5hJworKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAgc2hsaWJw YXRoX3Zhcj1MSUJQQVRICisrICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIHZl cnNpb25fdHlwZT1vc2YKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xp Yi9jbXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysgIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorKyAgOzsK KysKKytyZG9zKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFyaXMqKQor KyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVy c2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRh YmxlCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysKKytzdW5v czQqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIg bGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0geWVzOyB0aGVuCisrICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5lZWRfdmVy c2lvbj15ZXMKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25fdHlwZT1s aW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBleHBv cnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKKysgICAgICBydW5wYXRo X3Zhcj1MRF9SVU5fUEFUSAorKyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAgICAgbmVlZF9s aWJfcHJlZml4PW5vCisrICAgICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAgbmVlZF9saWJf cHJlZml4PW5vCisrICAgICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91 c3IvbGliIC91c3IvY2NzL2xpYicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2 NCpNUCopCisrICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNpb25fdHlwZT1s aW51eAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVy c3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKKysgICAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKworK3N5c3Y1KiB8 IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIq KQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9s ZCIgPSB5ZXM7IHRoZW4KKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2Fs L2xpYiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCisrICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgZWxzZQorKyAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKKysgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc2NvMy4ydjUqKQor KyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIC9saWIiCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0nL3Vzci9saWInCisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90eXBlPWxp bnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgOzsKKysKKysqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYworK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1CisrJGFz X2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9CisrdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9 IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJf c2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMiCisrZmkKKysKKytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisraWYgdGVzdCAiJHtsdF9jdl9zeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgorK2ZpCisrCisrc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKysKKyt2YXJp YWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIi CisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVs aW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVS X1BBVEggTElCUkFSWV9QQVRIIgorK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGlu dG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KKytoYXJkY29kZV9hY3Rpb25fRjc3PQorK2lmIHRlc3Qg LW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3NyIgfHwgXAorKyAgIHRlc3QgLW4gIiRy dW5wYXRoX3Zhcl9GNzciIHx8IFwKKysgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpY19GNzci ID0gIlh5ZXMiIDsgdGhlbgorKworKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0YW50IGRp cmVjdG9yaWVzLgorKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9GNzciICE9IG5vICYmCisr ICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGli cGF0aF92YXIsIHdlCisrICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQg bGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5CisrICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJl IGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCisrICAgICAjIyB0ZXN0ICIk X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCBGNzcpIiAhPSBubyAmJgorKyAg ICAgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0xfRjc3IiAhPSBubzsgdGhlbgorKyAgICAjIExpbmtp bmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgorKyAg ICBoYXJkY29kZV9hY3Rpb25fRjc3PXJlbGluaworKyAgZWxzZQorKyAgICAjIFdlIGNhbiBsaW5r IHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJz LgorKyAgICBoYXJkY29kZV9hY3Rpb25fRjc3PWltbWVkaWF0ZQorKyAgZmkKKytlbHNlCisrICAj IFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29k ZSBleGlzdGluZworKyAgIyBkaXJlY3Rvcmllcy4KKysgIGhhcmRjb2RlX2FjdGlvbl9GNzc9dW5z dXBwb3J0ZWQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJk Y29kZV9hY3Rpb25fRjc3IiA+JjUKKyskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9GNzciID4m NjsgfQorKworK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fRjc3IiA9IHJlbGluazsgdGhlbgor KyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisrICBlbmFibGVfZmFzdF9p bnN0YWxsPW5vCisrZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHll cyB8fAorKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KKysgICMgRmFzdCBp bnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVk bGVzcworK2ZpCisrCisrCisrIyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxkIG9ubHkgZmlyZSB3aGVu IGJvb3RzdHJhcHBpbmcgdGhlCisrIyBsaWJ0b29sIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIHlv dSBmb3Jnb3QgdG8gc2hpcCBsdG1haW4uc2gKKysjIHdpdGggeW91ciBwYWNrYWdlLCBhbmQgeW91 IHdpbGwgZ2V0IGNvbXBsYWludHMgdGhhdCB0aGVyZSBhcmUKKysjIG5vIHJ1bGVzIHRvIGdlbmVy YXRlIGx0bWFpbi5zaC4KKytpZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhlbgorKyAgIyBTZWUgaWYg d2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91 ciBjb21tYW5kcyB0aHJvdWdoCisrICAjIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCisr ICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgICBzZXRvcHQgTk9f R0xPQl9TVUJTVAorKyAgZmkKKysgICMgTm93IHF1b3RlIGFsbCB0aGUgdGhpbmdzIHRoYXQgbWF5 IGNvbnRhaW4gbWV0YWNoYXJhY3RlcnMgd2hpbGUgYmVpbmcKKysgICMgY2FyZWZ1bCBub3QgdG8g b3ZlcnF1b3RlIHRoZSBBQ19TVUJTVGVkIHZhbHVlcy4gIFdlIHRha2UgY29waWVzIG9mIHRoZQor KyAgIyB2YXJpYWJsZXMgYW5kIHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdlbmVyYXRpb24gb2YgdGhl IGxpYnRvb2wgc2NyaXB0LgorKyAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBvbGRfQ0ZMQUdTIEFS IEFSX0ZMQUdTIEVHUkVQIFJBTkxJQiBMTl9TIExUQ0MgTFRDRkxBR1MgTk0gXAorKyAgICBTRUQg U0hFTEwgU1RSSVAgXAorKyAgICBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19zcGVjIHNvbmFt ZV9zcGVjIGV4dHJhY3RfZXhwc3ltc19jbWRzIFwKKysgICAgb2xkX3N0cmlwbGliIHN0cmlwbGli IGZpbGVfbWFnaWNfY21kIGZpbmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwKKysgICAgZGVwbGlic19j aGVja19tZXRob2QgcmVsb2FkX2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9sb2NrcyBcCisrICAgIGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2Rl Y2wgXAorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCisr ICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBc CisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgXAorKyAg ICBjb21waWxlcl9GNzcgXAorKyAgICBDQ19GNzcgXAorKyAgICBMRF9GNzcgXAorKyAgICBsdF9w cm9nX2NvbXBpbGVyX3dsX0Y3NyBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyBcCisr ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3NyBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJf bm9fYnVpbHRpbl9mbGFnX0Y3NyBcCisrICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzcg XAorKyAgICB0aHJlYWRfc2FmZV9mbGFnX3NwZWNfRjc3IFwKKysgICAgd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWNfRjc3IFwKKysgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19G NzcgXAorKyAgICBvbGRfYXJjaGl2ZV9jbWRzX0Y3NyBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHNfRjc3IFwKKysgICAgcHJlZGVwX29iamVjdHNfRjc3IFwKKysgICAgcG9zdGRlcF9v YmplY3RzX0Y3NyBcCisrICAgIHByZWRlcHNfRjc3IFwKKysgICAgcG9zdGRlcHNfRjc3IFwKKysg ICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0Y3NyBcCisrICAgIGNvbXBpbGVyX2xpYl9zZWFy Y2hfZGlyc19GNzcgXAorKyAgICBhcmNoaXZlX2NtZHNfRjc3IFwKKysgICAgYXJjaGl2ZV9leHBz eW1fY21kc19GNzcgXAorKyAgICBwb3N0aW5zdGFsbF9jbWRzX0Y3NyBcCisrICAgIHBvc3R1bmlu c3RhbGxfY21kc19GNzcgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19GNzcg XAorKyAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzcgXAorKyAgICBub191bmRlZmluZWRfZmxh Z19GNzcgXAorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0Y3NyBcCisrICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfRjc3IFwKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9G NzcgXAorKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3NyBcCisrICAgIGhhcmRjb2Rl X2F1dG9tYXRpY19GNzcgXAorKyAgICBtb2R1bGVfY21kc19GNzcgXAorKyAgICBtb2R1bGVfZXhw c3ltX2NtZHNfRjc3IFwKKysgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRjc3IFwKKysgICAg Zml4X3NyY2ZpbGVfcGF0aF9GNzcgXAorKyAgICBleGNsdWRlX2V4cHN5bXNfRjc3IFwKKysgICAg aW5jbHVkZV9leHBzeW1zX0Y3NzsgZG8KKysKKysgICAgY2FzZSAkdmFyIGluCisrICAgIG9sZF9h cmNoaXZlX2NtZHNfRjc3IHwgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0Y3NyB8 IFwKKysgICAgYXJjaGl2ZV9jbWRzX0Y3NyB8IFwKKysgICAgYXJjaGl2ZV9leHBzeW1fY21kc19G NzcgfCBcCisrICAgIG1vZHVsZV9jbWRzX0Y3NyB8IFwKKysgICAgbW9kdWxlX2V4cHN5bV9jbWRz X0Y3NyB8IFwKKysgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfRjc3IHwgXAorKyAg ICBleHBvcnRfc3ltYm9sc19jbWRzX0Y3NyB8IFwKKysgICAgZXh0cmFjdF9leHBzeW1zX2NtZHMg fCByZWxvYWRfY21kcyB8IGZpbmlzaF9jbWRzIHwgXAorKyAgICBwb3N0aW5zdGFsbF9jbWRzIHwg cG9zdHVuaW5zdGFsbF9jbWRzIHwgXAorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyB8IG9sZF9w b3N0dW5pbnN0YWxsX2NtZHMgfCBcCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyB8IHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjKQorKyAgICAgICMgRG91YmxlLXF1b3RlIGRvdWJsZS1l dmFsZWQgc3RyaW5ncy4KKysgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2 YXJcIiB8IFwkWHNlZCAtZSBcIlwkZG91YmxlX3F1b3RlX3N1YnN0XCIgLWUgXCJcJHNlZF9xdW90 ZV9zdWJzdFwiIC1lIFwiXCRkZWxheV92YXJpYWJsZV9zdWJzdFwiXGBcXFwiIgorKyAgICAgIDs7 CisrICAgICopCisrICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIg fCBcJFhzZWQgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiXGBcXFwiIgorKyAgICAgIDs7CisrICAg IGVzYWMKKysgIGRvbmUKKysKKysgIGNhc2UgJGx0X2VjaG8gaW4KKysgIConXCQwIC0tZmFsbGJh Y2stZWNobyInKQorKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRYc2VkIC1lICdz L1xcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8iJC8kMCAtLWZhbGxiYWNrLWVjaG8iLydgCisrICAg IDs7CisrICBlc2FjCisrCisrY2ZnZmlsZT0iJG9maWxlIgorKworKyAgY2F0IDw8X19FT0ZfXyA+ PiAiJGNmZ2ZpbGUiCisrIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQor KworKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUg LW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKKysKKysjIFNoZWxsIHRvIHVzZSB3aGVuIGludm9r aW5nIHNoZWxsIHNjcmlwdHMuCisrU0hFTEw9JGx0X1NIRUxMCisrCisrIyBXaGV0aGVyIG9yIG5v dCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxl X3NoYXJlZAorKworKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4K KytidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRpYworKworKyMgV2hldGhlciBvciBub3QgdG8g YWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0b29sX25l ZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3NworKworKyMgV2hldGhlciBvciBub3QgdG8g ZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYworK2FsbG93 X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0 YXRpY19ydW50aW1lc19GNzcKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBm YXN0IGluc3RhbGxhdGlvbi4KKytmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3RhbGwKKysK KysjIFRoZSBob3N0IHN5c3RlbS4KKytob3N0X2FsaWFzPSRob3N0X2FsaWFzCisraG9zdD0kaG9z dAorK2hvc3Rfb3M9JGhvc3Rfb3MKKysKKysjIFRoZSBidWlsZCBzeXN0ZW0uCisrYnVpbGRfYWxp YXM9JGJ1aWxkX2FsaWFzCisrYnVpbGQ9JGJ1aWxkCisrYnVpbGRfb3M9JGJ1aWxkX29zCisrCisr IyBBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCisr ZWNobz0kbHRfZWNobworKworKyMgVGhlIGFyY2hpdmVyLgorK0FSPSRsdF9BUgorK0FSX0ZMQUdT PSRsdF9BUl9GTEFHUworKworKyMgQSBDIGNvbXBpbGVyLgorK0xUQ0M9JGx0X0xUQ0MKKysKKysj IExUQ0MgY29tcGlsZXIgZmxhZ3MuCisrTFRDRkxBR1M9JGx0X0xUQ0ZMQUdTCisrCisrIyBBIGxh bmd1YWdlLXNwZWNpZmljIGNvbXBpbGVyLgorK0NDPSRsdF9jb21waWxlcl9GNzcKKysKKysjIElz IHRoZSBjb21waWxlciB0aGUgR05VIEMgY29tcGlsZXI/Cisrd2l0aF9nY2M9JEdDQ19GNzcKKysK KysjIEFuIEVSRSBtYXRjaGVyLgorK0VHUkVQPSRsdF9FR1JFUAorKworKyMgVGhlIGxpbmtlciB1 c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KKytMRD0kbHRfTERfRjc3CisrCisrIyBXaGV0aGVyIHdl IG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgorK0xOX1M9JGx0X0xOX1MKKysKKysjIEEgQlNELWNv bXBhdGlibGUgbm0gcHJvZ3JhbS4KKytOTT0kbHRfTk0KKysKKysjIEEgc3ltYm9sIHN0cmlwcGlu ZyBwcm9ncmFtCisrU1RSSVA9JGx0X1NUUklQCisrCisrIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFy aWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgorK01BR0lDX0NNRD0kTUFHSUNf Q01ECisrCisrIyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCisrRExMVE9P TD0iJERMTFRPT0wiCisrCisrIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KKytPQkpE VU1QPSIkT0JKRFVNUCIKKysKKysjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCisrQVM9IiRB UyIKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3Jh cnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9JG9iamRpcgorKworKyMgSG93IHRvIGNyZWF0ZSBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KKytyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKKyty ZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKKysKKysjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZs YWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCisrd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfRjc3 CisrCisrIyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCisrb2JqZXh0PSIkYWNf b2JqZXh0IgorKworKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgorK2xpYmV4 dD0iJGxpYmV4dCIKKysKKysjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIp LgorK3NocmV4dF9jbWRzPSckc2hyZXh0X2NtZHMnCisrCisrIyBFeGVjdXRhYmxlIGZpbGUgc3Vm Zml4IChub3JtYWxseSAiIikuCisrZXhlZXh0PSIkZXhlZXh0IgorKworKyMgQWRkaXRpb25hbCBj b21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgorK3BpY19mbGFnPSRs dF9sdF9wcm9nX2NvbXBpbGVyX3BpY19GNzcKKytwaWNfbW9kZT0kcGljX21vZGUKKysKKysjIFdo YXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KKyttYXhfY21kX2xlbj0kbHRf Y3Zfc3lzX21heF9jbWRfbGVuCisrCisrIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1 cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CisrY29tcGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfb19GNzcKKysKKysjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBp bGF0aW9uPworK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKKysKKysjIERvIHdlIG5lZWQgdGhl IGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/CisrbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVm aXgKKysKKysjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/CisrbmVlZF92ZXJz aW9uPSRuZWVkX3ZlcnNpb24KKysKKysjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KKytk bG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgorKworKyMgV2hldGhlciBkbG9wZW4gb2YgcHJv Z3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKKysK KysjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBv cnRlZC4KKytkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKKysK KysjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCisrbGlua19zdGF0 aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3CisrCisrIyBDb21waWxlciBm bGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgorK25vX2J1aWx0aW5fZmxhZz0kbHRf bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfRjc3CisrCisrIyBDb21waWxlciBmbGFn IHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgorK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0k bHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3NworKworKyMgQ29tcGlsZXIgZmxhZyB0byBn ZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzcKKysKKysjIENv bXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KKyt0aHJlYWRfc2Fm ZV9mbGFnX3NwZWM9JGx0X3RocmVhZF9zYWZlX2ZsYWdfc3BlY19GNzcKKysKKysjIExpYnJhcnkg dmVyc2lvbmluZyB0eXBlLgorK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCisrCisrIyBGb3Jt YXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeC4KKytsaWJuYW1lX3NwZWM9JGx0X2xpYm5hbWVfc3Bl YworKworKyMgTGlzdCBvZiBhcmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBv bmUsIHRoZSByZXN0IGFyZSBsaW5rcy4KKysjIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0 IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUUuCisrbGlicmFyeV9uYW1lc19zcGVjPSRsdF9s aWJyYXJ5X25hbWVzX3NwZWMKKysKKysjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBp ZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lLgorK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVf c3BlYworKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhbiBvbGQtc3R5 bGUgYXJjaGl2ZS4KKytSQU5MSUI9JGx0X1JBTkxJQgorK29sZF9hcmNoaXZlX2NtZHM9JGx0X29s ZF9hcmNoaXZlX2NtZHNfRjc3Cisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5z dGFsbF9jbWRzCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxf Y21kcworKworKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJj aGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25l d19jbWRzX0Y3NworKworKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRv IGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19GNzcKKysKKysjIENv bW1hbmRzIHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYSBzaGFyZWQgYXJjaGl2ZS4KKythcmNo aXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kc19GNzcKKythcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9h cmNoaXZlX2V4cHN5bV9jbWRzX0Y3NworK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0YWxs X2NtZHMKKytwb3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcworKworKyMg Q29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1lZCBzYW1lIGFz IGFib3ZlIGlmIGVtcHR5KQorK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19GNzcKKyttb2R1 bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kc19GNzcKKysKKysjIENvbW1hbmRz IHRvIHN0cmlwIGxpYnJhcmllcy4KKytvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgorK3N0 cmlwbGliPSRsdF9zdHJpcGxpYgorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0 aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5Lgor K3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19GNzcKKysKKysjIERlcGVuZGVuY2ll cyB0byBwbGFjZSBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysj IHNoYXJlZCBsaWJyYXJ5LgorK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzX0Y3 NworKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBs aW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcHM9JGx0X3ByZWRl cHNfRjc3CisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVp bmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4KKytwb3N0ZGVwcz0kbHRf cG9zdGRlcHNfRjc3CisrCisrIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21w aWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkCisrIyBsaWJyYXJ5CisrY29tcGlsZXJfbGliX3Nl YXJjaF9kaXJzPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfRjc3CisrCisrIyBUaGUgbGli cmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlu a2luZworKyMgYSBzaGFyZWQgbGlicmFyeS4KKytjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9JGx0 X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9GNzcKKysKKysjIE1ldGhvZCB0byBjaGVjayB3aGV0 aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgorK2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAorKworKyMgQ29tbWFuZCB0byB1c2Ug d2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgorK2ZpbGVfbWFnaWNfY21k PSRsdF9maWxlX21hZ2ljX2NtZAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFy aWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVk X2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX0Y3NworKworKyMgRmxhZyB0aGF0IGZvcmNl cyBubyB1bmRlZmluZWQgc3ltYm9scy4KKytub191bmRlZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZp bmVkX2ZsYWdfRjc3CisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGli cmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkuCisrZmluaXNoX2NtZHM9JGx0X2Zpbmlz aF9jbWRzCisrCisrIyBTYW1lIGFzIGFib3ZlLCBidXQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50 IHRvIGJlIGV2YWxlZCBidXQgbm90IHNob3duLgorK2ZpbmlzaF9ldmFsPSRsdF9maW5pc2hfZXZh bAorKworKyMgVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiBy YXcgc3ltYm9scyBhbmQgQyBuYW1lcy4KKytnbG9iYWxfc3ltYm9sX3BpcGU9JGx0X2x0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3BpcGUKKysKKysjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGlu IGEgcHJvcGVyIEMgZGVjbGFyYXRpb24KKytnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRsdF9sdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbAorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQg b2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyCisrZ2xvYmFsX3N5bWJvbF90b19jX25hbWVf YWRkcmVzcz0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MKKysK KysjIFRoaXMgaXMgdGhlIHNoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZS4KKyty dW5wYXRoX3Zhcj0kcnVucGF0aF92YXIKKysKKysjIFRoaXMgaXMgdGhlIHNoYXJlZCBsaWJyYXJ5 IHBhdGggdmFyaWFibGUuCisrc2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3ZhcgorKworKyMgSXMg c2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5IHNlYXJjaCBw YXRoPworK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0kc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoCisrCisrIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8g YW4gZXhlY3V0YWJsZS4KKytoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbl9GNzcKKysK KysjIFdoZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJp ZXMuCisraGFyZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKKysKKysjIEZsYWcg dG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKysjIFRo aXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCisraGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzcKKysKKysj IElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGlu dG8KKysjIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwk bGliZGlyIGRvZXMKKysjIG5vdCBleGlzdC4KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xk PSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0Y3NworKworKyMgV2hldGhlciB3ZSBu ZWVkIGEgc2luZ2xlIC1ycGF0aCBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCisraGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzcK KysKKysjIFNldCB0byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmlu ZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKKysjIHJlc3VsdGluZyBiaW5hcnkuCisr aGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfRjc3CisrCisrIyBTZXQgdG8geWVzIGlm IHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0 aGUKKysjIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWlu dXNfTF9GNzcKKysKKysjIFNldCB0byB5ZXMgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVy aW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvCisrIyB0aGUgcmVzdWx0aW5nIGJpbmFyeS4K KytoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3NworKwor KyMgU2V0IHRvIHllcyBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkg aGFyZGNvZGVzIERJUiBpbnRvIHRoZSBsaWJyYXJ5CisrIyBhbmQgYWxsIHN1YnNlcXVlbnQgbGli cmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRv bWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19GNzcKKysKKysjIFZhcmlhYmxlcyB3aG9zZSB2YWx1 ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAorKyMgcmVz dG9yZWQgYXQgcmVsaW5rIHRpbWUuCisrdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJp YWJsZXNfc2F2ZWRfZm9yX3JlbGluayIKKysKKysjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsg YSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KKytsaW5rX2Fs bF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzX0Y3NworKworKyMgQ29tcGlsZS10aW1lIHN5c3Rl bSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzCisrc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRs dF9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysKKysjIFJ1bi10aW1lIHN5c3RlbSBzZWFyY2gg cGF0aCBmb3IgbGlicmFyaWVzCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjCisrCisrIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3Jj ZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgorK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxl X3BhdGgKKysKKysjIFNldCB0byB5ZXMgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQu CisrYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3CisrCisr IyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgorK2V4cG9ydF9zeW1ib2xz X2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHNfRjc3CisrCisrIyBUaGUgY29tbWFuZHMgdG8g ZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgor K2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcworKworKyMgU3lt Ym9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4K KytleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19GNzcKKysKKysjIFN5bWJvbHMg dGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZC4KKytpbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1 ZGVfZXhwc3ltc19GNzcKKysKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFt ZQorKworK19fRU9GX18KKysKKysKKytlbHNlCisrICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxl IHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCisrICAjIGBjb25maWcuc3Rh dHVzIC0tcmVjaGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKKysgICMg bGlidG9vbCBzY3JpcHQgdGhlbi4KKysgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1l ICdzL1wuc2gkLy5pbi8nYAorKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KKysgICAg dGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgorKyAgZmkKKytmaQorKworKworK2Fj X2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Cisr CisrQ0M9IiRsdF9zYXZlX0NDIgorKworKwllbHNlCisrCSAgdGFnbmFtZT0iIgorKwlmaQorKwk7 OworKworKyAgICAgIEdDSikKKysJaWYgdGVzdCAtbiAiJEdDSiIgJiYgdGVzdCAiWCRHQ0oiICE9 ICJYbm8iOyB0aGVuCisrCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEphdmEgdGVz dCBzb3VyY2VzLgorK2FjX2V4dD1qYXZhCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9y IGNvbXBpbGVkIEphdmEgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrb2JqZXh0X0dDSj0kb2Jq ZXh0CisrCisrIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKytsdF9z aW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImNsYXNzIGZvbyB7fSIKKysKKysjIENvZGUgdG8gYmUg dXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0ncHVi bGljIGNsYXNzIGNvbmZ0ZXN0IHsgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJn dikge307IH0nCisrCisrIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3Vy YXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorKworKyMgSWYgbm8gQyBjb21waWxlciB3 YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCisrTFRDQz0ke0xUQ0MtIiRDQyJ9CisrCisrIyBJZiBubyBD IGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgorK0xUQ0ZMQUdTPSR7 TFRDRkxBR1MtIiRDRkxBR1MifQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmd1bWVudHMuCisrY29tcGlsZXI9JENDCisrCisrCisrIyBzYXZlIHdhcm5pbmdzL2Jv aWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19v YmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFj X2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsg L14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNv bmZ0ZXN0LmVycmAKKyskcm0gY29uZnRlc3QqCisrCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19l eHQKKytldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICor L2QnID5jb25mdGVzdC5lcnIKKytfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3Qu ZXJyYAorKyRybSAtciBjb25mdGVzdCoKKysKKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJndW1lbnRzLgorK2x0X3NhdmVfQ0M9IiRDQyIKKytDQz0ke0dDSi0iZ2Nq In0KKytjb21waWxlcj0kQ0MKKytjb21waWxlcl9HQ0o9JENDCisrZm9yIGNjX3RlbXAgaW4gJGNv bXBpbGVyIiI7IGRvCisrICBjYXNlICRjY190ZW1wIGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11j b21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9d ZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAq KSBicmVhazs7CisrICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1w IiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorKworKworKyMg R0NKIGRpZCBub3QgZXhpc3QgYXQgdGhlIHRpbWUgR0NDIGRpZG4ndCBpbXBsaWNpdGx5IGxpbmsg bGliYyBpbi4KKythcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0o9bm8KKysKKytvbGRfYXJjaGl2ZV9j bWRzX0dDSj0kb2xkX2FyY2hpdmVfY21kcworKworKworK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVp bHRpbl9mbGFnX0dDSj0KKysKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgbHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfR0NKPScgLWZuby1idWlsdGluJworKworKworK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMg LWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYg JGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2 X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPW5vCisrICBhY19vdXRmaWxlPWNvbmZ0ZXN0 LiRhY19vYmpleHQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNv bmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSItZm5vLXJ0dGkgLWZuby1leGNl cHRpb25zIgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFz dCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5n ICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29t cGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAg IyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3 b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJp YWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19j b21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxl cl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJf ZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZh bCBlY2hvICJcIlwkYXNfbWU6MTc0OTA6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAi JGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBj b25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE3NDk0OiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7 IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUg b3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUg d2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorKyAgICAgJGVjaG8gIlgkX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAor KyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisr ICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0 ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0 aV9leGNlcHRpb25zPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRybSBjb25mdGVzdCoKKysK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2Nv bXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBp bGVyX3J0dGlfZXhjZXB0aW9ucyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2Nv bXBpbGVyX3J0dGlfZXhjZXB0aW9ucyIgPSB4eWVzOyB0aGVuCisrICAgIGx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnX0dDSj0iJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFn X0dDSiAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgorK2Vsc2UKKysgICAgOgorK2ZpCisrCisr ZmkKKysKKytsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0KKytsdF9wcm9nX2NvbXBpbGVyX3BpY19H Q0o9CisrbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPQorKworK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVj ZSBQSUMuLi4gIiA+JjY7IH0KKysKKysgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAg IGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJworKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19HQ0o9Jy1zdGF0aWMnCisrCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgq KQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3Nvcgor KwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFz dCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICMgYWRk aW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcg YmV0dGVyLAorKyAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgbHRfcHJvZ19jb21waWxl cl9waWNfR0NKPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAg ICAgOzsKKysKKysgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3Nm MyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVz ZSBPU2VzLgorKyAgICAgIDs7CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9z MiopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRl bGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBh IGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBB bHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9y IG9sZC1zdHlsZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisr CisrICAgICAgOzsKKysKKysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICAjIFBJQyBp cyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisrICAgICAgIyBDb21tb24gc3ltYm9scyBu b3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0dDSj0nLWZuby1jb21tb24nCisrICAgICAgOzsKKysKKysgICAgaW50ZXJpeFszLTldKikKKysg ICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tl biBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBh dCBydW50aW1lLgorKyAgICAgIDs7CisrCisrICAgIG1zZG9zZGpncHAqKQorKyAgICAgICMgSnVz dCBiZWNhdXNlIHdlIHVzZSBHQ0MgZG9lc24ndCBtZWFuIHdlIHN1ZGRlbmx5IGdldCBzaGFyZWQg bGlicmFyaWVzCisrICAgICAgIyBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgor KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9HQ0o9bm8KKysgICAgICBl bmFibGVfc2hhcmVkPW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlm IHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPS1LY29u Zm9ybV9waWMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGhwdXgqKQorKyAgICAgICMg UElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAor KyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAg ICAgIGhwcGEqNjQqfGlhNjQqKQorKwkjICtaIHRoZSBkZWZhdWx0CisrCTs7CisrICAgICAgKikK KysJbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctZlBJQycKKysJOzsKKysgICAgICBlc2FjCisr ICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1m UElDJworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGVsc2UKKysgICAgIyBQT1JUTUUgQ2hlY2sg Zm9yIGZsYWcgdG8gcGFzcyBsaW5rZXIgZmxhZ3MgdGhyb3VnaCB0aGUgc3lzdGVtIGNvbXBpbGVy LgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeCopCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl93bF9HQ0o9Jy1XbCwnCisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRo ZW4KKysJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKKysgICAgICBlbHNlCisrCWx0X3Byb2dfY29tcGls ZXJfc3RhdGljX0dDSj0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJworKyAgICAgIGZpCisr ICAgICAgOzsKKysgICAgICBkYXJ3aW4qKQorKyAgICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQg b24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBp biBNSF9EWUxJQiBmaWxlcworKyAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAg IHhsYyopCisrICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctcW5vY29tbW9uJwor KyAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJworKyAgICAgICAgIDs7Cisr ICAgICAgIGVzYWMKKysgICAgICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIq IHwgb3MyKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBj YW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9u IGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysKKysg ICAgICA7OworKworKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBm b3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEg SFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikK KysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJf cGljX0dDSj0nK1onCisrCTs7CisrICAgICAgZXNhYworKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0 ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIEND PworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nJHt3bH0tYSAke3dsfWFyY2hp dmUnCisrICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAt S1BJQykgaXMgdGhlIGRlZmF1bHQuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NK PSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0dDSj0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfR0NKPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBsaW51eCogfCBrKmJzZCotZ251 KQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgaWNjKiB8IGVjYyopCisrCWx0 X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJworKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9 Jy1LUElDJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1zdGF0aWMnCisrICAgICAg ICA7OworKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQorKyAgICAgICAg IyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxl ciwKKysJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKKysJbHRfcHJvZ19jb21w aWxlcl93bF9HQ0o9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLWZwaWMnCisr CWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0aWMnCisrICAgICAgICA7OworKyAg ICAgIGNjYyopCisrICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcKKysgICAg ICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfR0NKPSctbm9uX3NoYXJlZCcKKysgICAgICAgIDs7CisrICAgICAgKikKKysgICAgICAg IGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikKKysJICAjIFN1biBD IDUuOQorKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLUtQSUMnCisrCSAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dD Sj0nLVdsLCcKKysJICA7OworKwkqU3VuXCBGKikKKysJICAjIFN1biBGb3J0cmFuIDguMyBwYXNz ZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCisrCSAgbHRfcHJvZ19jb21w aWxlcl9waWNfR0NKPSctS1BJQycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1C c3RhdGljJworKwkgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPScnCisrCSAgOzsKKysJZXNhYwor Kwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBvc2YzKiB8IG9zZjQqIHwgb3Nm NSopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCisrICAgICAgIyBBbGwg T1NGLzEgY29kZSBpcyBQSUMuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSct bm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICByZG9zKikKKysgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19HQ0o9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHNvbGFy aXMqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLUtQSUMnCisrICAgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKKysgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKKysJbHRfcHJvZ19jb21waWxlcl93 bF9HQ0o9Jy1Rb3B0aW9uIGxkICc7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfd2xf R0NKPSctV2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1Rb3B0aW9uIGxkICcKKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1QSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfR0NKPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIq IHwgc3lzdjQuMyopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19HQ0o9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikK KysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGlj X0dDSj0nLUtjb25mb3JtX3BpYycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0 YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8 IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrICAgICAgbHRfcHJvZ19jb21waWxl cl93bF9HQ0o9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctS1BJQycK KysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1Cc3RhdGljJworKyAgICAgIDs7 CisrCisrICAgIHVuaWNvcyopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwn CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0dDSj1ubworKyAgICAg IDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLXBp YycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1Cc3RhdGljJworKyAgICAg IDs7CisrCisrICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVk X0dDSj1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiIgPiY1CisrJGFz X2VjaG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oiID4mNjsgfQorKworKyMKKysjIENoZWNr IHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3Qg LW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oiOyB0aGVuCisrCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21w aWxlcl9waWNfR0NKIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGls ZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiB3b3Jrcy4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfR0NKK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3By b2dfY29tcGlsZXJfcGljX3dvcmtzX0dDSj1ubworKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVz dC4kYWNfZXh0CisrICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0dD SiIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZM QUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29u ZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUg aXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0 aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBj b3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUg dG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGls ZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxh ZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcm OjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNo byAiXCJcJGFzX21lOjE3NzgwOiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9j b21waWxlIiAyPmNvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgIGVjaG8gIiRhc19tZToxNzc4NDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVu CisrICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlv biBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5p bmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KKysgICAgICRlY2hvICJYJF9sdF9jb21w aWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKysgICAg ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAg aWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5l cjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jr c19HQ0o9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJHJtIGNvbmZ0ZXN0KgorKworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJf cGljX3dvcmtzX0dDSiIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193 b3Jrc19HQ0oiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNf d29ya3NfR0NKIiA9IHh5ZXM7IHRoZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWNf R0NKIGluCisrICAgICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19HQ0o9IiAkbHRfcHJvZ19jb21waWxlcl9waWNfR0NKIiA7OworKyAgICAgZXNhYworK2Vsc2UK KysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPQorKyAgICAgbHRfcHJvZ19jb21waWxlcl9j YW5fYnVpbGRfc2hhcmVkX0dDSj1ubworK2ZpCisrCisrZmkKKytjYXNlICRob3N0X29zIGluCisr ICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFu aW5nbGVzczoKKysgICpkamdwcCopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0KKysg ICAgOzsKKysgICopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0iJGx0X3Byb2dfY29t cGlsZXJfcGljX0dDSiIKKysgICAgOzsKKytlc2FjCisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBz dXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKysjCisrd2w9JGx0X3Byb2dfY29t cGlsZXJfd2xfR0NKIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJf c3RhdGljX0dDSlwiCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRj b21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNf ZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3NfR0NKK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSj1u bworKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgTERGTEFHUz0iJExERkxBR1MgJGx0 X3RtcF9zdGF0aWNfZmxhZyIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+ IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikg JiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBj YW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAg ICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNv bmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25m aWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAgICAgJGVjaG8gIlgk X2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhw CisrICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVy MgorKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsg dGhlbgorKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSj15ZXMK KysgICAgICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0 aWNfd29ya3NfR0NKPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRybSAtciBjb25mdGVzdCoK KysgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSiIg PiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19HQ0oiID4m NjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfR0NK IiA9IHh5ZXM7IHRoZW4KKysgICAgOgorK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfR0NKPQorK2ZpCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpl eHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSitz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0o9bm8KKysgICAkcm0gLXIgY29uZnRlc3QgMj4v ZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIg b3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4k YWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2Jq ZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAq RkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJj b25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGls ZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3 aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3Jr IGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwK KysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisr ICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAg IC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21l OjE3ODg0OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91 dC9jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5l cnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE3ODg4OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg ICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4 dAorKyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9y ZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVy ZSBhcmUgd2FybmluZ3MKKysgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIg fCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7 IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKKysgICAgIGlmIHRl c3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29u ZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9j X29fR0NKPXllcworKyAgICAgZmkKKysgICBmaQorKyAgIGNobW9kIHUrdyAuIDI+JjUKKysgICAk cm0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9y eSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRl c3QgLWQgb3V0L2lpX2ZpbGVzICYmICRybSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlf ZmlsZXMKKysgICAkcm0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICBybWRpciBj b25mdGVzdAorKyAgICRybSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0oiID4mNQorKyRhc19l Y2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fR0NKIiA+JjY7IH0KKysKKysKKytoYXJkX2xp bmtzPSJub3R0ZXN0ZWQiCisraWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSiIg PSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KKysgICMgZG8gbm90IG92ZXJ3 cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgorKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFy ZCBsaW5rcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBo YXJkIGxpbmtzLi4uICIgPiY2OyB9CisrICBoYXJkX2xpbmtzPXllcworKyAgJHJtIGNvbmZ0ZXN0 KgorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9 bm8KKysgIHRvdWNoIGNvbmZ0ZXN0LmEKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1 IHx8IGhhcmRfbGlua3M9bm8KKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVs bCAmJiBoYXJkX2xpbmtzPW5vCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkaGFyZF9saW5rcyIgPiY1CisrJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KKysgIGlm IHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBt YWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBc YCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5z YWZlIiA+JjI7fQorKyAgICBuZWVkX2xvY2tzPXdhcm4KKysgIGZpCisrZWxzZQorKyAgbmVlZF9s b2Nrcz1ubworK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdo ZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmll cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtl ciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrCisrICBydW5w YXRoX3Zhcj0KKysgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0KKysgIGVuYWJsZV9zaGFyZWRf d2l0aF9zdGF0aWNfcnVudGltZXNfR0NKPW5vCisrICBhcmNoaXZlX2NtZHNfR0NKPQorKyAgYXJj aGl2ZV9leHBzeW1fY21kc19HQ0o9CisrICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzX0dDSj0K KysgIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0dDSj0KKysgIGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlY19HQ0o9CisrICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9CisrICB0aHJl YWRfc2FmZV9mbGFnX3NwZWNfR0NKPQorKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9 CisrICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0dDSj0KKysgIGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3JfR0NKPQorKyAgaGFyZGNvZGVfZGlyZWN0X0dDSj1ubworKyAgaGFyZGNvZGVf bWludXNfTF9HQ0o9bm8KKysgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPXVuc3VwcG9ydGVk CisrICBsaW5rX2FsbF9kZXBsaWJzX0dDSj11bmtub3duCisrICBoYXJkY29kZV9hdXRvbWF0aWNf R0NKPW5vCisrICBtb2R1bGVfY21kc19HQ0o9CisrICBtb2R1bGVfZXhwc3ltX2NtZHNfR0NKPQor KyAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0dDSj1ubworKyAgZXhwb3J0X3N5bWJvbHNfY21kc19H Q0o9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNF RCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgICMg aW5jbHVkZV9leHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJv bHMgdG8gYmUgKmFsd2F5cyoKKysgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0CisrICBp bmNsdWRlX2V4cHN5bXNfR0NKPQorKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVu ZGVkIHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUKKysgICMgaXQgd2lsbCBiZSB3cmFwcGVk IGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKKysg ICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBz eW1ib2xzIGBhJyBhbmQgYGJjJywKKysgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRoYXQgY29u dGFpbnMgYGQnLgorKyAgZXhjbHVkZV9leHBzeW1zX0dDSj0nX0dMT0JBTF9PRkZTRVRfVEFCTEVf fF9HTE9CQUxfX0ZbSURdXy4qJworKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8g aXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0CisrICAjIHBsYXRmb3JtcyAoYWIp dXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKKysg ICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBj b2RlIGNhbm5vdAorKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkg ZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCisrICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVz LgorKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlv biBzeW1ib2xzLgorKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9CisrICAjIEp1c3QgYmVpbmcgcGFy YW5vaWQgYWJvdXQgZW5zdXJpbmcgdGhhdCBjY19iYXNlbmFtZSBpcyBzZXQuCisrICBmb3IgY2Nf dGVtcCBpbiAkY29tcGlsZXIiIjsgZG8KKysgIGNhc2UgJGNjX3RlbXAgaW4KKysgICAgY29tcGls ZSB8ICpbXFwvXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OworKyAgICBkaXN0 Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OworKyAgICBcLSop IDs7CisrICAgICopIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFzZW5hbWU9YCRlY2hv ICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJg CisrCisrICBjYXNlICRob3N0X29zIGluCisrICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisr ICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29v b25nIHRpbWUKKysgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUg dGhhdCB3ZSBhcmUgdXNpbmcKKysgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgaWYg dGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgZmkK KysgICAgOzsKKysgIGludGVyaXgqKQorKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBp cyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQorKyAgICB3aXRoX2dudV9sZD15ZXMKKysgICAg OzsKKysgIG9wZW5ic2QqKQorKyAgICB3aXRoX2dudV9sZD1ubworKyAgICA7OworKyAgZXNhYwor KworKyAgbGRfc2hsaWJzX0dDSj15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7 IHRoZW4KKysgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91 bGQgYmUgZW1wdHkKKysgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAjIFNldCBzb21lIGRlZmF1 bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorKyAgICAj IGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQ dXR0aW5nIHRoZW0KKysgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYg bmVjZXNzYXJ5LgorKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKyAgICAj IGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisr ICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9u dWxsOyB0aGVuCisrCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0iJHdsYXJjIictLXdob2xl LWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAg ICBlbHNlCisrICAJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NKPQorKyAgICBmaQorKyAgICBz dXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KKysgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxs YCBpbgorKyAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMTAuKikgOzsgIyBj YXRjaCB2ZXJzaW9ucyA8IDIuMTEKKysgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNf YW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgorKyAgICAgICpcIDIuMTEuOTIuMC4x MlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4K KysgICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucworKyAgICAgICopIHN1 cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKKysgICAgZXNhYworKworKyAgICAjIFNlZSBp ZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4KKysgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICBhaXhbMy05XSopCisrICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBp cyB2ZXJ5IGJyb2tlbgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgor KwlsZF9zaGxpYnNfR0NKPW5vCisrCWNhdCA8PEVPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRo ZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAor KyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24g QUlYLgorKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJp ZXMgc3VwcG9ydC4gIElmIHlvdQorKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmll cywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKKysqKiogc28gdGhhdCBhIG5vbi1H TlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK0VPRgorKyAgICAgIGZp CisrICAgICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0n JHJtICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTkFNRSAk bGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5l IExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAi I2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0 YX4kZWNobyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2Ey aXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4o Y2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKKysgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX21pbnVzX0xf R0NKPXllcworKworKyAgICAgICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5v cGVucHJvamVjdHMubmV0PiByZXBvcnRzCisrICAgICAgIyB0aGF0IHRoZSBzZW1hbnRpY3Mgb2Yg ZHluYW1pYyBsaWJyYXJpZXMgb24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKKysgICAgICAjIHRvIHZl cnNpb24gNCwgaXMgdG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQK KysgICAgICAjIHdpdGggdGhlIHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vz bid0IG1hdGNoIHRoZQorKyAgICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJhcmllcyBvbiBv dGhlciBwbGF0Zm9ybXMsIHdlIGNhbid0IHVzZQorKyAgICAgICMgdGhlbS4KKysgICAgICBsZF9z aGxpYnNfR0NKPW5vCisrICAgICAgOzsKKysKKysgICAgYmVvcyopCisrICAgICAgaWYgJExEIC0t aGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxs OyB0aGVuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj11bnN1cHBvcnRlZAorKwkjIEpvc2Vw aCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisr CSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9u LiAgRklYTUUKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAg ICAgIGVsc2UKKysJbGRfc2hsaWJzX0dDSj1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQorKyAgICAgICMgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCBHQ0opIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAg ICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9Jy1MJGxpYmRpcicKKysgICAgICBhbGxvd191bmRlZmlu ZWRfZmxhZ19HQ0o9dW5zdXBwb3J0ZWQKKysgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfR0NK PW5vCisrICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19HQ0o9eWVzCisr ICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19HQ0o9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2Ug fCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBd XChbXiBdKlwpL1wxIERBVEEvJ1wnJyAtZSAnXCcnL15bQUlUV11bIF0vcy8uKlsgXS8vJ1wnJyB8 IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKworKyAgICAgIGlmICRMRCAtLWhlbHAg Mj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgYXJj aGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJh c2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisrCSMgSWYgdGhlIGV4cG9y dC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKKysJIyBpcyBF WFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKysJYXJjaGl2ZV9l eHBzeW1fY21kc19HQ0o9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhF WFBPUlRTOyB0aGVuCisrCSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZGVmOworKwllbHNlCisrCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5kZWY7CisrCSAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1l LmRlZjsKKysJZml+CisrCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxp bmtlciAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzX0dDSj1ubworKyAgICAgIGZpCisr ICAgICAgOzsKKysKKysgICAgaW50ZXJpeFszLTldKikKKysgICAgICBoYXJkY29kZV9kaXJlY3Rf R0NKPW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysgICAgICBl eHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKPScke3dsfS1FJworKyAgICAgICMgSGFjazogT24g SW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdj Yy4KKysgICAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBp bWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVk IGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorKyAgICAgICMg Y29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGlj ayBhIHJhbmRvbSwKKysgICAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4g MHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrICAgICAgIyB0aW1lLiAgTW92aW5n IHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisrICAg ICAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKKysgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nc2VkICJzLF4sXywiICRleHBvcnRf c3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19m bGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3 bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3 bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsg MTM0MjE3NzI4MGAgLW8gJGxpYicKKysgICAgICA7OworKworKyAgICBnbnUqIHwgbGludXgqIHwg aypic2QqLWdudSkKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRl ZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJdG1wX2FkZGZsYWc9CisrCWNh c2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91 cCBDIGNvbXBpbGVyCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NKPScke3dsfS0td2hv bGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRj b252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25l OyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisr CSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCisrCSAgOzsKKysJcGdmNzcqIHwgcGdmOTAqIHwg cGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycworKwkgIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4g JGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5j ZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmll bmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19m bGFnIC1Nbm9tYWluJyA7OworKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJCSMgSW50ZWwgQyBj b21waWxlciBvbiBpYTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwllZmMq LGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAor KwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlm b3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zv cl9tYWluJyA7OworKwllc2FjCisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkq U3VuXCBDKikJCQkjIFN1biBDIDUuOQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0n JHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZl bmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5l d19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAg JHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkq U3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsK KysJKikKKysJICB0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcgOzsKKysJZXNhYworKwlhcmNoaXZl X2NtZHNfR0NKPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JworKworKwlpZiB0ZXN0ICRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7IHRoZW4KKysJ ICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXJ+CisrICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1wo LipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrICAkZWNobyAibG9j YWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgJENDICciJHRt cF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0k b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKysJZmkKKysgICAgICBlbHNlCisr CWxkX3NobGlic19HQ0o9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIG5ldGJzZCop CisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYv bnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJworKwl3bGFyYz0KKysgICAgICBlbHNlCisr CWFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5 bV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4 cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzb2xh cmlzKikKKysgICAgICBpZiAkTEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAyXC44JyA+IC9kZXYvbnVs bDsgdGhlbgorKwlsZF9zaGxpYnNfR0NKPW5vCisrCWNhdCA8PEVPRiAxPiYyCisrCisrKioqIFdh cm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFi bHkKKysqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhl cmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBv cnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0byByZWxlYXNl IDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIg UEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIg aXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KKysKKytFT0YKKysgICAgICBlbGlmICRM RCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYv bnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJ YXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hs aWJzX0dDSj1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgc2NvMy4y djUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKysgICAgICBjYXNlIGAkTEQg LXYgMj4mMWAgaW4KKysgICAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMVsw LTVdLiopCisrCWxkX3NobGlic19HQ0o9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioq IFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4z IGNhbiBub3QKKysqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5 c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJy YXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxz IHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBt b2RpZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0 aGUgbmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19M VF9FT0YKKysJOzsKKysJKikKKysJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBv cnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfR0NKPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0t cnBhdGgsJGxpYmRpcmAnCisrCSAgICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lLFwke1NDT0FCU1BBVEg6 KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWInCisrCSAgICBhcmNoaXZlX2V4cHN5 bV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSwt cmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICBlbHNlCisr CSAgICBsZF9zaGxpYnNfR0NKPW5vCisrCSAgZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAg OzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckTEQgLWFzc2Vy dCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCisr ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7OworKworKyAgICAq KQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6 LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJl ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAg IGVsc2UKKysJbGRfc2hsaWJzX0dDSj1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNh YworKworKyAgICBpZiB0ZXN0ICIkbGRfc2hsaWJzX0dDSiIgPSBubzsgdGhlbgorKyAgICAgIHJ1 bnBhdGhfdmFyPQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPQorKyAgICAg IGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HQ0o9CisrICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNfR0NKPQorKyAgICBmaQorKyAgZWxzZQorKyAgICAjIFBPUlRNRSBmaWxsIGluIGEgZGVz Y3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQpCisrICAgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgICAgYWl4MyopCisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NK PXVuc3VwcG9ydGVkCisrICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0dDSj15ZXMKKysgICAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEy IC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUn CisrICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGlu IExJQlBBVEggaWYgdGhlcmUKKysgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQg YnkgLUwuCisrICAgICAgaGFyZGNvZGVfbWludXNfTF9HQ0o9eWVzCisrICAgICAgaWYgdGVzdCAi JEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhlbgor KwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBv cnRlZCB3aXRoIGEKKysJIyBicm9rZW4gY29sbGVjdDIuCisrCWhhcmRjb2RlX2RpcmVjdF9HQ0o9 dW5zdXBwb3J0ZWQKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFpeFs0LTldKikKKysg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIE9uIElBNjQsIHRoZSBs aW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisrCSMg aGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5v CisrCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9IiIKKysgICAgICBl bHNlCisrCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICIt QyIgb3B0aW9uLgorKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRv bid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrCWlmICROTSAtViAyPiYxIHwgZ3JlcCAnR05VJyA+ IC9kZXYvbnVsbDsgdGhlbgorKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKPSckTk0gLUJwZyAk bGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQyID09ICJUIikgfHwgKFwk MiA9PSAiRCIpIHx8IChcJDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJDMsMSwxKSAhPSAiLiIpKSB7 IHByaW50IFwkMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysJZWxzZQor KwkgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmll bmNlIHwgYXdrICdcJyd7IGlmICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQiKSB8fCAoXCQy ID09ICJCIikpICYmIChzdWJzdHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJDMgfSB9J1wn JyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2VfcnVudGltZWxp bmtpbmc9bm8KKysKKysJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxp bmtpbmcgb3Igbm9ybWFsCisrCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3 aGVyZSBpbiBMREZMQUdTLCB3ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgorKwlj YXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSopCisrCSAgZm9y IGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrICAJICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0 bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgorKyAgCSAgICBhaXhfdXNl X3J1bnRpbWVsaW5raW5nPXllcworKyAgCSAgICBicmVhaworKyAgCSAgZmkKKysJICBkb25lCisr CSAgOzsKKysJZXNhYworKworKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JworKwlub19lbnRyeV9m bGFnPSctYm5vZW50cnknCisrICAgICAgZmkKKysKKysgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0 YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCisrICAgICAgIyBo YXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcg YSBsaWJyYXJ5CisrICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVy ZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KKysgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3Ig ZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAorKyAgICAgICMgZW5vdWdo IHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgorKworKyAg ICAgIGFyY2hpdmVfY21kc19HQ0o9JycKKysgICAgICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcwor KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR0NKPSc6JworKyAgICAgIGxpbmtfYWxs X2RlcGxpYnNfR0NKPXllcworKworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisr CWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCisrCSMgV2Ugb25seSB3 YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93 IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJICBjb2xsZWN0 Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAtZiAi JGNvbGxlY3QybmFtZSIgJiYgXAorKyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3Jl cCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVuCisrICAJICAjIFdlIGhhdmUg cmV3b3JrZWQgY29sbGVjdDIKKysgIAkgIDoKKysJICBlbHNlCisrICAJICAjIFdlIGhhdmUgb2xk IGNvbGxlY3QyCisrICAJICBoYXJkY29kZV9kaXJlY3RfR0NKPXVuc3VwcG9ydGVkCisrICAJICAj IEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFs bGVkCisrICAJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcg aGFyZGNvZGVfbWludXNfTAorKyAgCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5n CisrICAJICBoYXJkY29kZV9taW51c19MX0dDSj15ZXMKKysgIAkgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfR0NKPSctTCRsaWJkaXInCisrICAJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0dDSj0KKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisr CWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgIHNoYXJl ZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKwlmaQorKyAgICAgIGVsc2UKKysJIyBu b3QgdXNpbmcgZ2NjCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAJIyBW aXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJl bGVhc2UKKysgIAkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3Jy ZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcn CisrCSAgZWxzZQorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJICBmaQorKwlm aQorKyAgICAgIGZpCisrCisrICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90 IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgIyB1bmRlcnNjb3JlIChfKSwg c28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4K KysgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfR0NKPXllcworKyAgICAgIGlmIHRlc3QgIiRh aXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkjIFdhcm5pbmcgLSB3aXRob3V0 IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKKysJIyAtYmVy b2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJy YXJ5LgorKwlhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9Jy1iZXJvaycKKysgICAgICAgIyBEZXRl cm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVt cHR5IGV4ZWN1dGFibGUuCisrICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFs ICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEK KysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVz dCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisr ICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0 CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0 IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEv CisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRh Y19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAK KysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcu CisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAg LUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2Fp eF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4 X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6 JyIkYWl4X2xpYnBhdGgiCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSJcJENDIicgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9m bGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30i ICE9ICJ4IjsgdGhlbiBlY2hvICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6 OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFn IgorKyAgICAgICBlbHNlCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjov bGliJworKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0iLXogbm9kZWZzIgorKwkgIGFyY2hp dmVfZXhwc3ltX2NtZHNfR0NKPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21w aWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1f ZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVs dCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4K KysJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50Cisr bWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFj X2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisr ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRl c3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIg PiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2Zs YWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBj b25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMg fHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysK KytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7 CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAg fScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwg fCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJp dCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9s aWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhl ZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkK KytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYg Y29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9s aWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysJIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfR0NKPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorKwkgICMgV2Fy bmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCisr CSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJy b2tlbiBsaWJyYXJ5LgorKwkgIG5vX3VuZGVmaW5lZF9mbGFnX0dDSj0nICR7d2x9LWJlcm5vdG9r JworKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0nICR7d2x9LWJlcm9rJworKwkgICMgRXhw b3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNo aXZlcworKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0nJGNvbnZlbmllbmNlJworKwkg IGFyY2hpdmVfY21kc19uZWVkX2xjX0dDSj15ZXMKKysJICAjIFRoaXMgaXMgc2ltaWxhciB0byBo b3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgorKwkgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfR0NKPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAk QVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGly LyRzb25hbWUnCisrCWZpCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikK KysgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckcm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kZWNobyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhs aWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRp ci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0 cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZp c2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRs aWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFy eSAtMzIpJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctTCRsaWJkaXIn CisrICAgICAgaGFyZGNvZGVfbWludXNfTF9HQ0o9eWVzCisrICAgICAgIyBzZWUgY29tbWVudCBh Ym91dCBkaWZmZXJlbnQgc2VtYW50aWNzIG9uIHRoZSBHTlUgbGQgc2VjdGlvbgorKyAgICAgIGxk X3NobGlic19HQ0o9bm8KKysgICAgICA7OworKworKyAgICBic2RpWzQ1XSopCisrICAgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0tcmR5bmFtaWMKKysgICAgICA7OworKworKyAgICBj eWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdl IGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKKysgICAgICAjIE1pY3Jvc29mdCBW aXN1YWwgQysrLgorKyAgICAgICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxs eSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMKKysgICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBE TExzLgorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScgJworKyAgICAgIGFs bG93X3VuZGVmaW5lZF9mbGFnX0dDSj11bnN1cHBvcnRlZAorKyAgICAgICMgVGVsbCBsdG1haW4g dG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCisrICAgICAgbGliZXh0PWxpYgorKyAg ICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgorKyAg ICAgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgICAgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVz IGhlcmUgaXMgYSBiYWQgaGFjay4KKysgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLW8gJGxp YiAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgYGVjaG8gIiRkZXBsaWJzIiB8ICRTRUQgLWUgJ1wn J3MvIC1sYyQvLydcJydgIC1saW5rIC1kbGx+bGlua25hbWVzPScKKysgICAgICAjIFRoZSBsaW5r ZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGJ1aWxkIGEgLmxpYiBmaWxlIGlmIHdlIGJ1aWxkIGEgRExM LgorKyAgICAgIG9sZF9hcmNoaXZlX0Zyb21fbmV3X2NtZHNfR0NKPSd0cnVlJworKyAgICAgICMg RklYTUU6IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCisrICAg ICAgb2xkX2FyY2hpdmVfY21kc19HQ0o9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVw bGlicycKKysgICAgICBmaXhfc3JjZmlsZV9wYXRoX0dDSj0nYGN5Z3BhdGggLXcgIiRzcmNmaWxl ImAnCisrICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19HQ0o9eWVzCisr ICAgICAgOzsKKysKKysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICBjYXNlICRob3N0 X29zIGluCisrICAgICAgICByaGFwc29keSogfCBkYXJ3aW4xLlswMTJdKQorKyAgICAgICAgIGFs bG93X3VuZGVmaW5lZF9mbGFnX0dDSj0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCisr ICAgICAgICAgOzsKKysgICAgICAgKikgIyBEYXJ3aW4gMS4zIG9uCisrICAgICAgICAgaWYgdGVz dCAteiAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH0gOyB0aGVuCisrICAgICAgICAgICBhbGxv d191bmRlZmluZWRfZmxhZ19HQ0o9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5l ZCAke3dsfXN1cHByZXNzJworKyAgICAgICAgIGVsc2UKKysgICAgICAgICAgIGNhc2UgJHtNQUNP U1hfREVQTE9ZTUVOVF9UQVJHRVR9IGluCisrICAgICAgICAgICAgIDEwLlswMTJdKQorKyAgICAg ICAgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0nJHt3bH0tZmxhdF9uYW1lc3BhY2Ug JHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCisrICAgICAgICAgICAgICAgOzsKKysgICAg ICAgICAgICAgMTAuKikKKysgICAgICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9 JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJworKyAgICAgICAgICAgICAgIDs7 CisrICAgICAgICAgICBlc2FjCisrICAgICAgICAgZmkKKysgICAgICAgICA7OworKyAgICAgIGVz YWMKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0o9bm8KKysgICAgICBoYXJkY29kZV9k aXJlY3RfR0NKPW5vCisrICAgICAgaGFyZGNvZGVfYXV0b21hdGljX0dDSj15ZXMKKysgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj11bnN1cHBvcnRlZAorKyAgICAgIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0dDSj0nJworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnNfR0NKPXllcworKyAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllcyA7IHRoZW4KKysgICAgCW91dHB1dF92ZXJib3NlX2xpbmtf Y21kPSdlY2hvJworKyAgICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0iXCRDQyAtZHluYW1pY2xpYiBc JGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21w aWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9s dF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKysgICAgICAgIG1vZHVsZV9jbWRzX0dD Sj0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpz IFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgICAgYXJj aGl2ZV9leHBzeW1fY21kc19HQ0o9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBc JG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xp YiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRj b21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcg JHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGls fSIKKysgICAgICAgIG1vZHVsZV9leHBzeW1fY21kc19HQ0o9InNlZCAtZSAncyxeLF8sJyA8IFwk ZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBz eW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpz IFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2Rz eW11dGlsfSIKKysgICAgZWxzZQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAg ICB4bGMqKQorKyAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKyAgICAg ICAgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxh ZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxs X25hbWUgJHt3bH1gZWNobyAkcnBhdGgvJHNvbmFtZWAgJHhsY3ZlcnN0cmluZycKKysgICAgICAg ICBtb2R1bGVfY21kc19HQ0o9JyRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAtYnVu ZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgICAgICAjIERvbid0 IGZpeCB0aGlzIGJ5IHVzaW5nIHRoZSBsZCAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGZsYWcsIGl0 IGRvZXNuJ3QgZXhpc3QgaW4gb2xkZXIgZGFyd2luIGxkcworKyAgICAgICAgIGFyY2hpdmVfZXhw c3ltX2NtZHNfR0NKPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5c KC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9 LXN5bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUg JHt3bH0kcnBhdGgvJHNvbmFtZSAkeGxjdmVyc3RyaW5nfm5tZWRpdCAtcyAkb3V0cHV0X29iamRp ci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKysgICAgICAgICAgbW9kdWxlX2V4 cHN5bV9jbWRzX0dDSj0nc2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxe XCguLipcKSxfJiwiIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1l fS1zeW1ib2xzLmV4cHN5bX4kQ0MgJGFsbG93X3VuZGVmaW5lZF9mbGFnICAtbyAkbGliIC1idW5k bGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3N+bm1lZGl0IC1zICRvdXRwdXRfb2Jq ZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JworKyAgICAgICAgICA7OworKyAg ICAgICAqKQorKyAgICAgICAgIGxkX3NobGlic19HQ0o9bm8KKysgICAgICAgICAgOzsKKysgICAg ICBlc2FjCisrICAgIGZpCisrICAgICAgOzsKKysKKysgICAgZGd1eCopCisrICAgICAgYXJjaGl2 ZV9jbWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctTCRs aWJkaXInCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7Owor KworKyAgICBmcmVlYnNkMSopCisrICAgICAgbGRfc2hsaWJzX0dDSj1ubworKyAgICAgIDs7Cisr CisrICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8g dG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgorKyAgICAjIHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMg ZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4gZXhwbGljaXQgYysrcnQwLm8KKysgICAgIyBk b2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBj b3N0IG9mIGEgbGl0dGxlCisrICAgICMgZXh0cmEgc3BhY2UpLgorKyAgICBmcmVlYnNkMi4yKikK KysgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJworKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGly ZWN0X0dDSj15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubworKyAgICAg IDs7CisrCisrICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAy IGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KKysgICAgZnJlZWJzZDIqKQorKyAgICAgIGFyY2hp dmVfY21kc19HQ0o9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKKysgICAgICBoYXJk Y29kZV9taW51c19MX0dDSj15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1u bworKyAgICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1z aGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KKysgICAgZnJlZWJzZCogfCBkcmFnb25mbHkq KQorKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfR0NKPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKKysgICAg ICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubworKyAgICAgIDs7CisrCisrICAgIGhwdXg5 KikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHNfR0NK PSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7 d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIg fHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGVsc2UKKysJYXJjaGl2 ZV9jbWRzX0dDSj0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxs X2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWInCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0dDSj0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcl9HQ0o9OgorKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCisrCisr ICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwK KysgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysg ICAgICBoYXJkY29kZV9taW51c19MX0dDSj15ZXMKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfR0NKPScke3dsfS1FJworKyAgICAgIDs7CisrCisrICAgIGhwdXgxMCopCisrICAgICAg aWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwlhcmNo aXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3ds fStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1iICtoICRz b25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsg dGhlbgorKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0rYiAke3dsfSRsaWJk aXInCisrCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR0NKPToKKysKKysJaGFyZGNvZGVfZGly ZWN0X0dDSj15ZXMKKysJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3bH0tRScKKysK KysJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJ IyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCWhhcmRjb2Rl X21pbnVzX0xfR0NKPXllcworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgaHB1eDExKikK KysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVu CisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIGFyY2hpdmVfY21kc19HQ0o9 JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQqKQorKwkgIGFyY2hpdmVfY21kc19H Q0o9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRo IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSop CisrCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRz b25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZWxzZQorKwljYXNl ICRob3N0X2NwdSBpbgorKwlocHBhKjY0KikKKysJICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLWIg JHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCisrCSAgOzsKKysJaWE2NCopCisrCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1iICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRz X0dDSj0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9s aWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsK KysJZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0 aGVuCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfStiICR7d2x9JGxpYmRp cicKKysJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9OgorKworKwljYXNlICRob3N0X2Nw dSBpbgorKwlocHBhKjY0KnxpYTY0KikKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xk X0dDSj0nK2IgJGxpYmRpcicKKysJICBoYXJkY29kZV9kaXJlY3RfR0NKPW5vCisrCSAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysJICA7OworKwkqKQorKwkgIGhhcmRjb2RlX2RpcmVj dF9HQ0o9eWVzCisrCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3bH0tRScKKysK KysJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAor KwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwkgIGhh cmRjb2RlX21pbnVzX0xfR0NKPXllcworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAg IDs7CisrCisrICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVy c3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xv Y2F0aW9ucyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9HQ0o9Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZp CisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LXJwYXRoICR7d2x9 JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSj06CisrICAgICAg bGlua19hbGxfZGVwbGlic19HQ0o9eWVzCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysg ICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxs OyB0aGVuCisrCWFyY2hpdmVfY21kc19HQ0o9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0CisrICAgICAgZWxzZQorKwlhcmNo aXZlX2NtZHNfR0NKPSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnICAgICAgIyBFTEYKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfR0NKPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMK KysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubworKyAgICAgIDs7CisrCisrICAg IG5ld3NvczYpCisrICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2Rp cmVjdF9HQ0o9eWVzCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9 LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dD Sj06CisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7OworKwor KyAgICBvcGVuYnNkKikKKysgICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhl bgorKwloYXJkY29kZV9kaXJlY3RfR0NKPXllcworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dD Sj1ubworKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxG X19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7 IHRoZW4KKysJICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgYXJjaGl2ZV9leHBzeW1f Y21kc19HQ0o9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9s cycKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tcnBhdGgsJGxpYmRp cicKKysJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKPScke3dsfS1FJworKwllbHNlCisr CSAgY2FzZSAkaG9zdF9vcyBpbgorKwkgICBvcGVuYnNkWzAxXS4qIHwgb3BlbmJzZDIuWzAtN10g fCBvcGVuYnNkMi5bMC03XS4qKQorKwkgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRMRCAtQnNoYXJl YWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9Jy1SJGxpYmRpcicKKysJICAgICA7OworKwkgICAq KQorKwkgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgICA7OworKwkgIGVz YWMKKysgICAgICAgIGZpCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnNfR0NKPW5vCisrICAgICAg ZmkKKysgICAgICA7OworKworKyAgICBvczIqKQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfR0NKPSctTCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbWludXNfTF9HQ0o9eWVzCisr ICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPXVuc3VwcG9ydGVkCisrICAgICAgYXJjaGl2 ZV9jbWRzX0dDSj0nJGVjaG8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gREFUQSA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JGVjaG8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JGVjaG8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5k ZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpk bGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIG9sZF9hcmNoaXZlX0Zyb21fbmV3X2Nt ZHNfR0NKPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWYnCisrICAgICAgOzsKKysKKysgICAgb3NmMyopCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScgJHt3bH0t ZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFy ZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNo byAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3Ry eSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZWxz ZQorKwlhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisr CWFyY2hpdmVfY21kc19HQ0o9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0 cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBmaQorKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9OgorKyAgICAgIDs7Cisr CisrICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1z eW0gZmxhZworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFsbG93X3VuZGVm aW5lZF9mbGFnX0dDSj0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hp dmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3ds fSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSck e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgZWxzZQorKwlhbGxvd191bmRlZmluZWRf ZmxhZ19HQ0o9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCWFyY2hpdmVfY21kc19HQ0o9JyRM RCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVj aG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9J2Zv ciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9y dGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgZWNobyAiLWhpZGRlbiI+PiAkbGli LmV4cH4KKysJJExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaW5wdXQgJGxpYi5l eHAgJGxpbmtlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3Qg LW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVf cmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kcm0gJGxpYi5l eHAnCisrCisrCSMgQm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0 bHkKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9Jy1ycGF0aCAkbGliZGlyJworKyAg ICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9OgorKyAgICAgIDs7 CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0dDSj0nIC16IHRl eHQnCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJd2xhcmM9JyR7d2x9Jwor KwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1f Y21kc19HQ0o9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9s cyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsg fTsiID4+ICRsaWIuZXhwfgorKwkgICRDQyAtc2hhcmVkICR7d2x9LU0gJHt3bH0kbGliLmV4cCAk e3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFnc34kcm0gJGxpYi5leHAnCisrICAgICAgZWxzZQorKwl3bGFyYz0nJworKwlhcmNoaXZlX2Nt ZHNfR0NKPSckTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kc19H Q0o9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRT RUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ ICRsaWIuZXhwfgorKyAgCSRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhw IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRybSAk bGliLmV4cCcKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NK PSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAg ICBjYXNlICRob3N0X29zIGluCisrICAgICAgc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01 XS4qKSA7OworKyAgICAgICopCisrCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUg YW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCisrCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5r ZXJfZmxhZycuICBHQ0MgZGlzY2FyZHMgaXQgd2l0aG91dCBgJHdsJywKKysJIyBidXQgaXMgY2Fy ZWZ1bCBlbm91Z2ggbm90IHRvIHJlb3JkZXIuCisrIAkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlz IDIuNiAobWF5YmUgMi41LjE/KQorKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwkgIHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVu aWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworKwllbHNlCisrCSAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWNfR0NKPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRl eHRyYWN0JworKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBsaW5rX2FsbF9kZXBsaWJz X0dDSj15ZXMKKysgICAgICA7OworKworKyAgICBzdW5vczQqKQorKyAgICAgIGlmIHRlc3QgIngk aG9zdF92ZW5kb3IiID0geHNlcXVlbnQ7IHRoZW4KKysJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIg c2VxdWVudCwgYmVjYXVzZSBpdCB0aHJvd3MgaW4gc29tZSBleHRyYSAubworKwkjIGZpbGVzIHRo YXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkgc2VjdGlvbnMgd29yay4KKysJYXJjaGl2ZV9jbWRzX0dD Sj0nJENDIC1HICR7d2x9LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kc19HQ0o9JyRMRCAtYXNzZXJ0 IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwk bGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCisrICAgICAgaGFyZGNvZGVf bWludXNfTF9HQ0o9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysg ICAgICA7OworKworKyAgICBzeXN2NCkKKysgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgorKwlz bmkpCisrCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVz ICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PworKwk7OworKwlzaWVtZW5zKQorKwkgICMjIExEIGlz IGxkIGl0IG1ha2VzIGEgUExBTUxJQgorKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVs ZS4KKysJICBhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJworKwkgIHJlbG9hZF9jbWRzX0dDSj0nJENDIC1yIC1vICRvdXRwdXQk cmVsb2FkX29ianMnCisrCSAgaGFyZGNvZGVfZGlyZWN0X0dDSj1ubworKyAgICAgICAgOzsKKysJ bW90b3JvbGEpCisrCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIGhhcmRjb2RlX2RpcmVjdF9H Q0o9bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxp ZQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisr ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7OworKworKyAgICBz eXN2NC4zKikKKysgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUcgLWggJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKPSct QmV4cG9ydCcKKysgICAgICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAt ZCAvdXNyL25lYzsgdGhlbgorKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUcgLWggJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCWhhcmRjb2RlX3NobGli cGF0aF92YXJfR0NKPW5vCisrCXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCWhhcmRjb2RlX3J1 bnBhdGhfdmFyPXllcworKwlsZF9zaGxpYnNfR0NKPXllcworKyAgICAgIGZpCisrICAgICAgOzsK KysKKysgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAx XS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKKysgICAgICBub191bmRl ZmluZWRfZmxhZ19HQ0o9JyR7d2x9LXosdGV4dCcKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Y19HQ0o9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubworKyAgICAgIHJ1 bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgorKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3lt X2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisr ICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5 bV9jbWRzX0dDSj0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgs JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCisr ICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwg YmVjYXVzZSB3ZSBkbyBub3QKKysgICAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxk IGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisrICAgICAgIyBhbHdheXMgYmUg dW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCisrICAg ICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1 c2UgLXogdGV4dAorKyAgICAgICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5 bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKyAgICAgICMgYXMgLXogZGVmcy4KKysg ICAgICBub191bmRlZmluZWRfZmxhZ19HQ0o9JyR7d2x9LXosdGV4dCcKKysgICAgICBhbGxvd191 bmRlZmluZWRfZmxhZ19HQ0o9JyR7d2x9LXosbm9kZWZzJworKyAgICAgIGFyY2hpdmVfY21kc19u ZWVkX2xjX0dDSj1ubworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCisrICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9J2B0ZXN0IC16ICIkU0NPQUJTUEFUSCIg JiYgZWNobyAke3dsfS1SLCRsaWJkaXJgJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfR0NKPSc6JworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnNfR0NKPXllcworKyAgICAgIGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LUJleHBvcnQnCisrICAgICAgcnVucGF0aF92 YXI9J0xEX1JVTl9QQVRIJworKworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisr CWFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtp bnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAke3dsfS1C ZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9s aWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1HICR7d2x9LWgsXCR7U0NP QUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckQ0MgLUcg JHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2lu c3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIGFy Y2hpdmVfY21kc19HQ0o9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0n LUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCisrICAgICAg OzsKKysKKysgICAgKikKKysgICAgICBsZF9zaGxpYnNfR0NKPW5vCisrICAgICAgOzsKKysgICAg ZXNhYworKyAgZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRf c2hsaWJzX0dDSiIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNfR0NKIiA+JjY7IH0KKyt0ZXN0 ICIkbGRfc2hsaWJzX0dDSiIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrIworKyMg RG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KKysjCisrY2FzZSAieCRhcmNoaXZl X2NtZHNfbmVlZF9sY19HQ0oiIGluCisreHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBi ZSBhZGRlZAorKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKPXllcworKworKyAgaWYgdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNh c2UgJGFyY2hpdmVfY21kc19HQ0ogaW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhNRTogd2Ug bWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAgICAgIDs7 CisrICAgICckQ0MgJyopCisrICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxp Y2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVtcywgLWxn Y2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYworKyAg ICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGlj aXRseSBsaW5rZWQgaW4iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNo b3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4mNjsgfQorKyAgICAgICRybSBjb25m dGVzdCoKKysgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0 ZXN0LiRhY19leHQKKysKKysgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19z dGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAg ICAgc29uYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsaWI9Y29uZnRlc3QKKysgICAgICAgIGxpYm9i anM9Y29uZnRlc3QuJGFjX29iamV4dAorKyAgICAgICAgZGVwbGlicz0KKysgICAgICAgIHdsPSRs dF9wcm9nX2NvbXBpbGVyX3dsX0dDSgorKwlwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9waWNf R0NKCisrICAgICAgICBjb21waWxlcl9mbGFncz0tdgorKyAgICAgICAgbGlua2VyX2ZsYWdzPS12 CisrICAgICAgICB2ZXJzdHJpbmc9CisrICAgICAgICBvdXRwdXRfb2JqZGlyPS4KKysgICAgICAg IGxpYm5hbWU9Y29uZnRlc3QKKysgICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 JGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSgorKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf R0NKPQorKyAgICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYXJjaGl2 ZV9jbWRzX0dDSiAyXD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIi KSA+JjUKKysgIChldmFsICRhcmNoaXZlX2NtZHNfR0NKIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBc IiBcPi9kZXYvbnVsbCAyXD5cJjEpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9CisrICAgICAgICB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKPW5vCisr ICAgICAgICBlbHNlCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKPXllcworKyAgICAgICAg ZmkKKysgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0kbHRfc2F2ZV9hbGxvd191bmRl ZmluZWRfZmxhZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQor KyAgICAgIGZpCisrICAgICAgJHJtIGNvbmZ0ZXN0KgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0oiID4mNQorKyRhc19l Y2hvICIkYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKIiA+JjY7IH0KKysgICAgICA7OworKyAgICBl c2FjCisrICBmaQorKyAgOzsKKytlc2FjCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9Cisr bGlicmFyeV9uYW1lc19zcGVjPQorK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCisrc29uYW1lX3Nw ZWM9Cisrc2hyZXh0X2NtZHM9Ii5zbyIKKytwb3N0aW5zdGFsbF9jbWRzPQorK3Bvc3R1bmluc3Rh bGxfY21kcz0KKytmaW5pc2hfY21kcz0KKytmaW5pc2hfZXZhbD0KKytzaGxpYnBhdGhfdmFyPQor K3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCisrdmVyc2lvbl90eXBlPW5vbmUK KytkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWM9Ii9saWIgL3Vzci9saWIiCisrCisrbmVlZF9saWJfcHJlZml4PXVua25vd24KKytoYXJk Y29kZV9pbnRvX2xpYnM9bm8KKysKKysjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8s IG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KKysjIGZsYWdzIHRvIGJl IGxlZnQgd2l0aG91dCBhcmd1bWVudHMKKytuZWVkX3ZlcnNpb249dW5rbm93bgorKworK2Nhc2Ug JGhvc3Rfb3MgaW4KKythaXgzKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRs aWJuYW1lLmEnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysKKysgICMgQUlYIDMgaGFzIG5v IHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUg bmFtZS4KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCisrICA7OworKworK2FpeFs0LTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAg bmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlY IDUgc3VwcG9ydHMgSUE2NAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKKysgIGVsc2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNv bGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNl IGxpYnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhl IGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8K KysgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3 YXMgZml4ZWQgaW4KKysgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRv IDMuMC4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBh aXg0LlswMV0uKikKKysgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05V Q19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJworKwkgICBlY2hvICcgeWVzICcKKysJ ICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCBncmVwIHllcyA+IC9kZXYvbnVsbDsg dGhlbgorKwk6CisrICAgICAgZWxzZQorKwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZmkK KysgICAgICA7OworKyAgICBlc2FjCisrICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJz aW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QK KysgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNp b25pbmcgc3VwcG9ydCB0bworKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNh biBiZSB1c2VmdWwgaW4gZnV0dXJlLgorKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9u IEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KKysgICAgICAjIGluc3RlYWQgb2Yg bGliPG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAorKyAgICAg ICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg ICAgZWxzZQorKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQg bGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUg bm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCisrICAgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysgICAgc2hs aWJwYXRoX3Zhcj1MSUJQQVRICisrICBmaQorKyAgOzsKKysKKythbWlnYW9zKikKKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisrICAjIENyZWF0 ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAgZmluaXNo X2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBk byBsaWJuYW1lPWAkZWNobyAiWCRsaWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1woW14vXSpcKVwu aXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkcm0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJy YXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGli cmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnku YSB8fCBleGl0IDE7IGRvbmUnCisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9v cyBsZC5zbyIKKysgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKworK2JzZGlb NDVdKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAk bGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIv bGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0i L3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5j b25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9s aWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdwor KyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKwor K2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBz aHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4 PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1p bmd3KiB8IHllcyxwdzMyKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwu YScKKysgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGlu c3RhbGxfY21kcworKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwk e2ZpbGV9YH4KKysgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wk e2Jhc2VfZmlsZX0nXCcnaTtlY2hvIFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxkaXI9JGRlc3Rk aXIvYGRpcm5hbWUgXCRkbHBhdGhgfgorKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAt cCBcJGRsZGlyfgorKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRs bmFtZX4KKysgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lJworKyAgICBwb3N0dW5pbnN0 YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFt ZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRybSBcJGRscGF0 aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRo b3N0X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5Zycg cHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGli bmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAn cy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIK KysgICAgICA7OworKyAgICBtaW5ndyopCisrICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRp b25hbCAnbGliJyBwcmVmaXgKKysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7 cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0n CisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJz IHwgZ3JlcCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9 LywvLGciYAorKyAgICAgIGlmIGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3Jl cCAnO1tjLXpDLVpdOi8nID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBw cm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5n dyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJj aAorKyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0 ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQorKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4g ZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBl c3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBv YmpkdW1wLAorKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZp ZWQgcGF0aC4gQWhoLgorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIk c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAorKyAgICAgIGVs c2UKKysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgICAg ICBmaQorKyAgICAgIDs7CisrICAgIHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcn IHByZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVj aG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRT RUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICA7Owor KyAgICBlc2FjCisrICAgIDs7CisrCisrICAqKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZp eH0ke3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFt aWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2Vh cmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0 aF92YXI9UEFUSAorKyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19s aW5rZXI9IiRob3N0X29zIGR5bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xp Yl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7dmVyc3VmZml4fSRzaGFyZWRfZXh0ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJB UllfUEFUSAorKyAgc2hyZXh0X2NtZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5z byB8fCBlY2hvIC5keWxpYmAnCisrCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vz ci9sb2NhbC9saWIgL2xpYiAvdXNyL2xpYicKKysgIDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7Cisr CisrZnJlZWJzZDEqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCog fCBkcmFnb25mbHkqKQorKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9p ZiB0aGV5IGltcGxlbWVudCBhIG5ldworKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0 IHRoaXMuCisrICBpZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpm b3JtYXQ9YC91c3IvYmluL29iamZvcm1hdGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICBmcmVlYnNkWzEyM10qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3Jt YXQ9ZWxmIDs7CisrICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2Jq Zm9ybWF0CisrICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAg ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZp eD1ubworKyAgICAgIDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUk e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAg OzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRo b3N0X29zIGluCisrICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisr ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19s aWJzPXllcworKyAgICA7OworKyAgZnJlZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0q IHwgXAorKyAgZnJlZWJzZDQuWzAtNV0gfCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEu MSB8IGZyZWVic2RlbGY0LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v CisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYg b24sIGFuZCBEcmFnb25GbHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwor KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKwor K2dudSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg bmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1 eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGlu ZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxp bmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGlu CisrICBpYTY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19s aWJzPXllcworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGli L2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAg ZmkKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYworKyAgICA7OworKyAgIGhwcGEqNjQqKQorKyAgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysg ICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9v cyBkbGQuc2wiCisrICAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91 bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKKysgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KKysgICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKKysgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAv dXNyL2Njcy9saWIvcGEyMF82NCIKKysgICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgIDs7CisrICAgKikKKysgICAgc2hyZXh0X2Nt ZHM9Jy5zbCcKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hs aWJwYXRoX3Zhcj1TSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u byAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgICA7OworKyAgZXNhYworKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1 bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRz PSdjaG1vZCA1NTUgJGxpYicKKysgIDs7CisrCisraW50ZXJpeFszLTldKikKKysgIHZlcnNpb25f dHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJworKyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEg KFBFLCBsaWtlIEVMRiknCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisr ICA7OworKworK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRob3N0X29z IGluCisrICAgIG5vbnN0b3B1eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKKysgICAgKikK KysJaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKwkJdmVyc2lvbl90 eXBlPWxpbnV4CisrCWVsc2UKKysJCXZlcnNpb25fdHlwZT1pcml4CisrCWZpIDs7CisrICBlc2Fj CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgIGlyaXg1KiB8IG5vbnN0b3B1eCopCisrICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KKysg ICAgOzsKKysgICopCisrICAgIGNhc2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUg b2YgdGhlc2Ugc3dpdGNoZXMgdG8gTEQKKysgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8 KiItbWVsZjMyYnNtaXAgIikKKysgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMy LWJpdDs7CisrICAgICotbjMyfCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlw bjMyICIpCisrICAgICAgbGlic3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7Cisr ICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQorKyAgICAgIGxp YnN1ZmY9NjQgc2hsaWJzdWZmPTY0IGxpYm1hZ2ljPTY0LWJpdDs7CisrICAgICopIGxpYnN1ZmY9 IHNobGlic3VmZj0gbGlibWFnaWM9bmV2ZXItbWF0Y2g7OworKyAgICBlc2FjCisrICAgIDs7Cisr ICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAorKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGli c3VmZn0iCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9 IC9saWIke2xpYnN1ZmZ9IgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKysj IE5vIHNoYXJlZCBsaWIgc3VwcG9ydCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCisr bGludXgqb2xkbGQqIHwgbGludXgqYW91dCogfCBsaW51eCpjb2ZmKikKKysgIGR5bmFtaWNfbGlu a2VyPW5vCisrICA7OworKworKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBr KmJzZCotZ251KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BB VEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICMg VGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgorKyAg IyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisr ICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgorKyAgaGFyZGNvZGVfaW50b19saWJzPXll cworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7 bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysKKysgICMgQXBw ZW5kIGxkLnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCisrICBpZiB0ZXN0IC1m IC9ldGMvbGQuc28uY29uZjsgdGhlbgorKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUg LyB7IHN5c3RlbShzcHJpbnRmKCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcJDIpKTsg c2tpcCA9IDE7IH0geyBpZiAoIXNraXApIHByaW50IFwkMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9s ZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsgCV0qaHdjYXBbIAldL2Q7cy9bOiwJXS8g L2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMg JGx0X2xkX2V4dHJhIgorKyAgZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xk LnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNh dXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAg IyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBj b21waWxlcnMsCisrICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMg bGlua2luZyB0aGVzZSBkYXlzIGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUt c2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05V L0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUv TGludXggbGQuc28nCisrICA7OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9f RUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgIGZpbmlzaF9jbWRz PSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisrICAgIGR5bmFtaWNf bGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKKysgIGVsc2UKKysgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0 fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKKysgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCisrICBmaQorKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrbmV3c29zNikK KysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAg OzsKKysKKytudG8tcW54KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJl Zml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz CisrICA7OworKworK29wZW5ic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg ICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVl ZCB2ZXJzaW9uZWQgbGlicy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8 IG9wZW5ic2QzLjMuKikgbmVlZF92ZXJzaW9uPXllcyA7OworKyAgICAqKSAgICAgICAgICAgICAg ICAgICAgICAgICBuZWVkX3ZlcnNpb249bm8gIDs7CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFU SDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9f RUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJw YyI7IHRoZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLls4OV0gfCBv cGVuYnNkMi5bODldLiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7Owor KyAgICAgICopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysgICAg ICBlc2FjCisrICBlbHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysg IGZpCisrICA7OworKworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hyZXh0 X2NtZHM9Ii5kbGwiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtlcj0n T1MvMiBsZC5leGUnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3NmMyog fCBvc2Y0KiB8IG9zZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJlZml4 PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hs aWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xp YiAvdmFyL3NobGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9bm8K KysgIDs7CisrCisrc29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVubGVz cyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4 ICRsaWInCisrICA7OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0n UEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysg IGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJlZml4 PW5vCisrICBmaQorKyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0 LjMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAgc25p KQorKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmxhcmdl ZHluc3ltJworKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsKKysgICAg c2llbWVucykKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBtb3Rv cm9sYSkKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNpb249bm8K KysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAgIDs7Cisr ICBlc2FjCisrICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3Ro ZW4KKysgICAgdmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxp Ym5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hh cmVkX2V4dH0uJG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg ZmkKKysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8 IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKysg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwor KyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vz ci9saWIgL2xpYicKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBlbHNl CisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJwor KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgICBzY28zLjJ2NSopCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKKysJOzsKKysgICAgZXNhYworKyAgZmkK KysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKKysgIDs7CisrCisrdXRz NCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworKyopCisrICBkeW5hbWljX2xpbmtlcj1u bworKyAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGR5 bmFtaWNfbGlua2VyIiA+JjUKKyskYXNfZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+JjY7IH0KKyt0 ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK2lm IHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3N5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworK3N5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIK KytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3N5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisr ZmkKKysKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjIgorKworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxp YnBhdGhfdmFyICRydW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAg dmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBH Q0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkg cGF0aHMgaW50byBwcm9ncmFtcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGhh cmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcy4uLiAiID4mNjsgfQorK2hhcmRjb2Rl X2FjdGlvbl9HQ0o9CisraWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NK IiB8fCBcCisrICAgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyX0dDSiIgfHwgXAorKyAgIHRlc3QgIlgk aGFyZGNvZGVfYXV0b21hdGljX0dDSiIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdlIGNhbiBo YXJkY29kZSBub24tZXhpc3RhbnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFyZGNvZGVf ZGlyZWN0X0dDSiIgIT0gbm8gJiYKKysgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2 b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxp bmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysg ICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxl ZCBvbmUKKysgICAgICMjIHRlc3QgIiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsIEdDSikiICE9IG5vICYmCisrICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTF9HQ0oiICE9 IG5vOyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3Jhcnkg bGlicmFyeSBkaXJlY3RvcnkuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9HQ0o9cmVsaW5rCisrICBl bHNlCisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhh cmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9HQ0o9aW1tZWRp YXRlCisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBl bHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAg aGFyZGNvZGVfYWN0aW9uX0dDSj11bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGhhcmRjb2RlX2FjdGlvbl9HQ0oiID4mNQorKyRhc19lY2hvICIk aGFyZGNvZGVfYWN0aW9uX0dDSiIgPiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlv bl9HQ0oiID0gcmVsaW5rOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBw b3J0ZWQKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKytlbGlmIHRlc3QgIiRzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzIHx8CisrICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIg PSBubzsgdGhlbgorKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5CisrICBl bmFibGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCisrZmkKKysKKysKKysjIFRoZSBlbHNlIGNsYXVz ZSBzaG91bGQgb25seSBmaXJlIHdoZW4gYm9vdHN0cmFwcGluZyB0aGUKKysjIGxpYnRvb2wgZGlz dHJpYnV0aW9uLCBvdGhlcndpc2UgeW91IGZvcmdvdCB0byBzaGlwIGx0bWFpbi5zaAorKyMgd2l0 aCB5b3VyIHBhY2thZ2UsIGFuZCB5b3Ugd2lsbCBnZXQgY29tcGxhaW50cyB0aGF0IHRoZXJlIGFy ZQorKyMgbm8gcnVsZXMgdG8gZ2VuZXJhdGUgbHRtYWluLnNoLgorK2lmIHRlc3QgLWYgIiRsdG1h aW4iOyB0aGVuCisrICAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhl IG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyIGNvbW1hbmRzIHRocm91Z2gKKysgICMgd2l0aG91dCBy ZW1vdmFsIG9mIFwgZXNjYXBlcy4KKysgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIg OyB0aGVuCisrICAgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrICBmaQorKyAgIyBOb3cgcXVvdGUg YWxsIHRoZSB0aGluZ3MgdGhhdCBtYXkgY29udGFpbiBtZXRhY2hhcmFjdGVycyB3aGlsZSBiZWlu ZworKyAgIyBjYXJlZnVsIG5vdCB0byBvdmVycXVvdGUgdGhlIEFDX1NVQlNUZWQgdmFsdWVzLiAg V2UgdGFrZSBjb3BpZXMgb2YgdGhlCisrICAjIHZhcmlhYmxlcyBhbmQgcXVvdGUgdGhlIGNvcGll cyBmb3IgZ2VuZXJhdGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQuCisrICBmb3IgdmFyIGluIGVj aG8gb2xkX0NDIG9sZF9DRkxBR1MgQVIgQVJfRkxBR1MgRUdSRVAgUkFOTElCIExOX1MgTFRDQyBM VENGTEFHUyBOTSBcCisrICAgIFNFRCBTSEVMTCBTVFJJUCBcCisrICAgIGxpYm5hbWVfc3BlYyBs aWJyYXJ5X25hbWVzX3NwZWMgc29uYW1lX3NwZWMgZXh0cmFjdF9leHBzeW1zX2NtZHMgXAorKyAg ICBvbGRfc3RyaXBsaWIgc3RyaXBsaWIgZmlsZV9tYWdpY19jbWQgZmluaXNoX2NtZHMgZmluaXNo X2V2YWwgXAorKyAgICBkZXBsaWJzX2NoZWNrX21ldGhvZCByZWxvYWRfZmxhZyByZWxvYWRfY21k cyBuZWVkX2xvY2tzIFwKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NfbmFtZV9hZGRyZXNzIFwKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjIFwKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgb2xkX3Bv c3R1bmluc3RhbGxfY21kcyBcCisrICAgIGNvbXBpbGVyX0dDSiBcCisrICAgIENDX0dDSiBcCisr ICAgIExEX0dDSiBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKIFwKKysgICAgbHRfcHJv Z19jb21waWxlcl9waWNfR0NKIFwKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKIFwK KysgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfR0NKIFwKKysgICAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0dDSiBcCisrICAgIHRocmVhZF9zYWZlX2ZsYWdfc3BlY19HQ0og XAorKyAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0ogXAorKyAgICBlbmFibGVfc2hhcmVk X3dpdGhfc3RhdGljX3J1bnRpbWVzX0dDSiBcCisrICAgIG9sZF9hcmNoaXZlX2NtZHNfR0NKIFwK KysgICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19HQ0ogXAorKyAgICBwcmVkZXBfb2JqZWN0 c19HQ0ogXAorKyAgICBwb3N0ZGVwX29iamVjdHNfR0NKIFwKKysgICAgcHJlZGVwc19HQ0ogXAor KyAgICBwb3N0ZGVwc19HQ0ogXAorKyAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfR0NKIFwK KysgICAgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0dDSiBcCisrICAgIGFyY2hpdmVfY21kc19H Q0ogXAorKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSiBcCisrICAgIHBvc3RpbnN0YWxsX2Nt ZHNfR0NKIFwKKysgICAgcG9zdHVuaW5zdGFsbF9jbWRzX0dDSiBcCisrICAgIG9sZF9hcmNoaXZl X2Zyb21fZXhwc3ltc19jbWRzX0dDSiBcCisrICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSiBc CisrICAgIG5vX3VuZGVmaW5lZF9mbGFnX0dDSiBcCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNf R0NKIFwKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0ogXAorKyAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkX0dDSiBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfR0NKIFwKKysgICAgaGFyZGNvZGVfYXV0b21hdGljX0dDSiBcCisrICAgIG1vZHVsZV9jbWRz X0dDSiBcCisrICAgIG1vZHVsZV9leHBzeW1fY21kc19HQ0ogXAorKyAgICBsdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfb19HQ0ogXAorKyAgICBmaXhfc3JjZmlsZV9wYXRoX0dDSiBcCisrICAgIGV4Y2x1 ZGVfZXhwc3ltc19HQ0ogXAorKyAgICBpbmNsdWRlX2V4cHN5bXNfR0NKOyBkbworKworKyAgICBj YXNlICR2YXIgaW4KKysgICAgb2xkX2FyY2hpdmVfY21kc19HQ0ogfCBcCisrICAgIG9sZF9hcmNo aXZlX2Zyb21fbmV3X2NtZHNfR0NKIHwgXAorKyAgICBhcmNoaXZlX2NtZHNfR0NKIHwgXAorKyAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSiB8IFwKKysgICAgbW9kdWxlX2NtZHNfR0NKIHwgXAor KyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfR0NKIHwgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4 cHN5bXNfY21kc19HQ0ogfCBcCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKIHwgXAorKyAg ICBleHRyYWN0X2V4cHN5bXNfY21kcyB8IHJlbG9hZF9jbWRzIHwgZmluaXNoX2NtZHMgfCBcCisr ICAgIHBvc3RpbnN0YWxsX2NtZHMgfCBwb3N0dW5pbnN0YWxsX2NtZHMgfCBcCisrICAgIG9sZF9w b3N0aW5zdGFsbF9jbWRzIHwgb2xkX3Bvc3R1bmluc3RhbGxfY21kcyB8IFwKKysgICAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjIHwgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMpCisrICAgICAg IyBEb3VibGUtcXVvdGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgorKyAgICAgIGV2YWwgImx0XyR2 YXI9XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1lIFwiXCRkb3VibGVfcXVvdGVf c3Vic3RcIiAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCIgLWUgXCJcJGRlbGF5X3ZhcmlhYmxlX3N1 YnN0XCJcYFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJsdF8kdmFyPVxc XCJcYFwkZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCJc YFxcXCIiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgY2FzZSAkbHRfZWNo byBpbgorKyAgKidcJDAgLS1mYWxsYmFjay1lY2hvIicpCisrICAgIGx0X2VjaG89YCRlY2hvICJY JGx0X2VjaG8iIHwgJFhzZWQgLWUgJ3MvXFxcXFxcXCQwIC0tZmFsbGJhY2stZWNobyIkLyQwIC0t ZmFsbGJhY2stZWNobyIvJ2AKKysgICAgOzsKKysgIGVzYWMKKysKKytjZmdmaWxlPSIkb2ZpbGUi CisrCisrICBjYXQgPDxfX0VPRl9fID4+ICIkY2ZnZmlsZSIKKysjICMjIyBCRUdJTiBMSUJUT09M IFRBRyBDT05GSUc6ICR0YWduYW1lCisrCisrIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhv c3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgorKworKyMg U2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KKytTSEVMTD0kbHRfU0hF TEwKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVp bGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBi dWlsZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCisr CisrIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFy aWVzLgorK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKCisr CisrIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUg bGlicyBhcmUgc3RhdGljCisrYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVz PSRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0dDSgorKworKyMgV2hldGhlciBv ciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uLgorK2Zhc3RfaW5zdGFsbD0k ZW5hYmxlX2Zhc3RfaW5zdGFsbAorKworKyMgVGhlIGhvc3Qgc3lzdGVtLgorK2hvc3RfYWxpYXM9 JGhvc3RfYWxpYXMKKytob3N0PSRob3N0CisraG9zdF9vcz0kaG9zdF9vcworKworKyMgVGhlIGJ1 aWxkIHN5c3RlbS4KKytidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKKytidWlsZD0kYnVpbGQKKyti dWlsZF9vcz0kYnVpbGRfb3MKKysKKysjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGlu dGVycHJldCBiYWNrc2xhc2hlcy4KKytlY2hvPSRsdF9lY2hvCisrCisrIyBUaGUgYXJjaGl2ZXIu CisrQVI9JGx0X0FSCisrQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCisrCisrIyBBIEMgY29tcGlsZXIu CisrTFRDQz0kbHRfTFRDQworKworKyMgTFRDQyBjb21waWxlciBmbGFncy4KKytMVENGTEFHUz0k bHRfTFRDRkxBR1MKKysKKysjIEEgbGFuZ3VhZ2Utc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9JGx0 X2NvbXBpbGVyX0dDSgorKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgQyBjb21waWxlcj8K Kyt3aXRoX2djYz0kR0NDX0dDSgorKworKyMgQW4gRVJFIG1hdGNoZXIuCisrRUdSRVA9JGx0X0VH UkVQCisrCisrIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgorK0xEPSRsdF9M RF9HQ0oKKysKKysjIFdoZXRoZXIgd2UgbmVlZCBoYXJkIG9yIHNvZnQgbGlua3MuCisrTE5fUz0k bHRfTE5fUworKworKyMgQSBCU0QtY29tcGF0aWJsZSBubSBwcm9ncmFtLgorK05NPSRsdF9OTQor KworKyMgQSBzeW1ib2wgc3RyaXBwaW5nIHByb2dyYW0KKytTVFJJUD0kbHRfU1RSSVAKKysKKysj IFVzZWQgdG8gZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgImZp bGUiCisrTUFHSUNfQ01EPSRNQUdJQ19DTUQKKysKKysjIFVzZWQgb24gY3lnd2luOiBETEwgY3Jl YXRpb24gcHJvZ3JhbS4KKytETExUT09MPSIkRExMVE9PTCIKKysKKysjIFVzZWQgb24gY3lnd2lu OiBvYmplY3QgZHVtcGVyLgorK09CSkRVTVA9IiRPQkpEVU1QIgorKworKyMgVXNlZCBvbiBjeWd3 aW46IGFzc2VtYmxlci4KKytBUz0iJEFTIgorKworKyMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9y eSB0aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzLgorK29iamRpcj0kb2JqZGly CisrCisrIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLgorK3JlbG9hZF9m bGFnPSRsdF9yZWxvYWRfZmxhZworK3JlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kcworKworKyMg SG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlci4KKyt3bD0kbHRf bHRfcHJvZ19jb21waWxlcl93bF9HQ0oKKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFs bHkgIm8iKS4KKytvYmpleHQ9IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJjaGl2ZSBzdWZmaXgg KG5vcm1hbGx5ICJhIikuCisrbGliZXh0PSIkbGliZXh0IgorKworKyMgU2hhcmVkIGxpYnJhcnkg c3VmZml4IChub3JtYWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKKysK KysjIEV4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9IiRleGVl eHQiCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5 IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX0dDSgorK3BpY19t b2RlPSRwaWNfbW9kZQorKworKyMgV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21t YW5kPworK21heF9jbWRfbGVuPSRsdF9jdl9zeXNfbWF4X2NtZF9sZW4KKysKKysjIERvZXMgY29t cGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KKytjb21waWxl cl9jX289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSgorKworKyMgTXVzdCB3ZSBsb2Nr IGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24/CisrbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2Nr cworKworKyMgRG8gd2UgbmVlZCB0aGUgbGliIHByZWZpeCBmb3IgbW9kdWxlcz8KKytuZWVkX2xp Yl9wcmVmaXg9JG5lZWRfbGliX3ByZWZpeAorKworKyMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9y IGxpYnJhcmllcz8KKytuZWVkX3ZlcnNpb249JG5lZWRfdmVyc2lvbgorKworKyMgV2hldGhlciBk bG9wZW4gaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zdXBwb3J0PSRlbmFibGVfZGxvcGVuCisrCisr IyBXaGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCisrZGxvcGVuX3NlbGY9 JGVuYWJsZV9kbG9wZW5fc2VsZgorKworKyMgV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBs aW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmX3N0YXRpYz0kZW5hYmxl X2Rsb3Blbl9zZWxmX3N0YXRpYworKworKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFt aWMgbGlua2luZy4KKytsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19HQ0oKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMu Cisrbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19H Q0oKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCisrZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKCisr CisrIyBDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZy b20gYXJjaGl2ZXMuCisrd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JGx0X3dob2xlX2FyY2hpdmVf ZmxhZ19zcGVjX0dDSgorKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2Fm ZSBvYmplY3RzLgorK3RocmVhZF9zYWZlX2ZsYWdfc3BlYz0kbHRfdGhyZWFkX3NhZmVfZmxhZ19z cGVjX0dDSgorKworKyMgTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGUuCisrdmVyc2lvbl90eXBlPSR2 ZXJzaW9uX3R5cGUKKysKKysjIEZvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgorK2xpYm5h bWVfc3BlYz0kbHRfbGlibmFtZV9zcGVjCisrCisrIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBG aXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgorKyMgVGhlIGxh c3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRS4KKyts aWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNfc3BlYworKworKyMgVGhlIGNvZGVk IG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCisr c29uYW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxk IGFuZCBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgorK1JBTkxJQj0kbHRfUkFOTElCCisr b2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kc19HQ0oKKytvbGRfcG9zdGluc3Rh bGxfY21kcz0kbHRfb2xkX3Bvc3RpbnN0YWxsX2NtZHMKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRz PSRsdF9vbGRfcG9zdHVuaW5zdGFsbF9jbWRzCisrCisrIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFy Y2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9 JGx0X29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfR0NKCisrCisrIyBDcmVhdGUgYSB0ZW1wb3Jh cnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUu Cisrb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzX0dDSgorKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBh IHNoYXJlZCBhcmNoaXZlLgorK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzX0dDSgorK2Fy Y2hpdmVfZXhwc3ltX2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHNfR0NKCisrcG9zdGluc3Rh bGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21kcworK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9z dHVuaW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUg bW9kdWxlIChhc3N1bWVkIHNhbWUgYXMgYWJvdmUgaWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0 X21vZHVsZV9jbWRzX0dDSgorK21vZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9j bWRzX0dDSgorKworKyMgQ29tbWFuZHMgdG8gc3RyaXAgbGlicmFyaWVzLgorK29sZF9zdHJpcGxp Yj0kbHRfb2xkX3N0cmlwbGliCisrc3RyaXBsaWI9JGx0X3N0cmlwbGliCisrCisrIyBEZXBlbmRl bmNpZXMgdG8gcGxhY2UgYmVmb3JlIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUg YQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcHJlZGVwX29iamVjdHM9JGx0X3ByZWRlcF9vYmplY3Rz X0dDSgorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5n IGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3Rz PSRsdF9wb3N0ZGVwX29iamVjdHNfR0NKCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVm b3JlIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJh cnkuCisrcHJlZGVwcz0kbHRfcHJlZGVwc19HQ0oKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFj ZSBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBs aWJyYXJ5LgorK3Bvc3RkZXBzPSRsdF9wb3N0ZGVwc19HQ0oKKysKKysjIFRoZSBkaXJlY3Rvcmll cyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxp YnJhcnkKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hf ZGlyc19HQ0oKKysKKysjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBi eSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0dDSgorKwor KyMgTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVk IG9iamVjdHMuCisrZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2RlcGxpYnNfY2hlY2tfbWV0aG9k CisrCisrIyBDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09IGZpbGVf bWFnaWMuCisrZmlsZV9tYWdpY19jbWQ9JGx0X2ZpbGVfbWFnaWNfY21kCisrCisrIyBGbGFnIHRo YXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBiZSBi dWlsdC4KKythbGxvd191bmRlZmluZWRfZmxhZz0kbHRfYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NK CisrCisrIyBGbGFnIHRoYXQgZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVm aW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZ19HQ0oKKysKKysjIENvbW1hbmRzIHVzZWQg dG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4K KytmaW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBh IHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dCBub3Qgc2hvd24uCisrZmlu aXNoX2V2YWw9JGx0X2ZpbmlzaF9ldmFsCisrCisrIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5k IHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgorK2dsb2JhbF9z eW1ib2xfcGlwZT0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZQorKworKyMgVHJhbnNm b3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbgorK2dsb2JhbF9z eW1ib2xfdG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCisrCisr IyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIKKytn bG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzcworKworKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcnVu dGltZSBwYXRoIHZhcmlhYmxlLgorK3J1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgorKworKyMgVGhp cyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4KKytzaGxpYnBhdGhfdmFyPSRz aGxpYnBhdGhfdmFyCisrCisrIyBJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJk LWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/Cisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PSRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKKysKKysjIEhvdyB0byBoYXJkY29kZSBhIHNo YXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgorK2hhcmRjb2RlX2FjdGlvbj0k aGFyZGNvZGVfYWN0aW9uX0dDSgorKworKyMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGli cmFyeSBwYXRocyBpbnRvIGxpYnJhcmllcy4KKytoYXJkY29kZV9pbnRvX2xpYnM9JGhhcmRjb2Rl X2ludG9fbGlicworKworKyMgRmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5 IGR1cmluZyBsaW5raW5nLgorKyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2Vz IG5vdCBleGlzdC4KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0dDSgorKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcg dG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50bworKyMgYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuIFRo aXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcworKyMgbm90IGV4aXN0LgorK2hhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRf R0NKCisrCisrIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBhIHNl cGFyYXRlZCBhcmd1bWVudC4KKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0dDSgorKworKyMgU2V0IHRvIHllcyBpZiB1c2luZyBESVIvbGli TkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQor KyMgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdF9H Q0oKKysKKysjIFNldCB0byB5ZXMgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQorKyMgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29k ZV9taW51c19MPSRoYXJkY29kZV9taW51c19MX0dDSgorKworKyMgU2V0IHRvIHllcyBpZiB1c2lu ZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8KKysj IHRoZSByZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2Rl X3NobGlicGF0aF92YXJfR0NKCisrCisrIyBTZXQgdG8geWVzIGlmIGJ1aWxkaW5nIGEgc2hhcmVk IGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSIGludG8gdGhlIGxpYnJhcnkKKysj IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZCBhZ2Fp bnN0IGl0LgorK2hhcmRjb2RlX2F1dG9tYXRpYz0kaGFyZGNvZGVfYXV0b21hdGljX0dDSgorKwor KyMgVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFw cGVyIHNjcmlwdHMgYW5kCisrIyByZXN0b3JlZCBhdCByZWxpbmsgdGltZS4KKyt2YXJpYWJsZXNf c2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIgorKworKyMgV2hl dGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVu Y3kgbGlicmFyaWVzLgorK2xpbmtfYWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfR0NKCisr CisrIyBDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKKytzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKworKyMg UnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKKytzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKKysKKysjIEZpeCB0 aGUgc2hlbGwgdmFyaWFibGUgXCRzcmNmaWxlIGZvciB0aGUgY29tcGlsZXIuCisrZml4X3NyY2Zp bGVfcGF0aD0kbHRfZml4X3NyY2ZpbGVfcGF0aAorKworKyMgU2V0IHRvIHllcyBpZiBleHBvcnRl ZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KKythbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19l eHBvcnRfc3ltYm9sc19HQ0oKKysKKysjIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5 bWJvbHMuCisrZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kc19HQ0oK KysKKysjIFRoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBm cm9tIGEgc2hhcmVkIGFyY2hpdmUuCisrZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3Rf ZXhwc3ltc19jbWRzCisrCisrIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4g dGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBz eW1zX0dDSgorKworKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgorK2lu Y2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zX0dDSgorKworKyMgIyMjIEVORCBMSUJU T09MIFRBRyBDT05GSUc6ICR0YWduYW1lCisrCisrX19FT0ZfXworKworKworK2Vsc2UKKysgICMg SWYgdGhlcmUgaXMgbm8gTWFrZWZpbGUgeWV0LCB3ZSByZWx5IG9uIGEgbWFrZSBydWxlIHRvIGV4 ZWN1dGUKKysgICMgYGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrJyB0byByZXJ1biB0aGVzZSB0ZXN0 cyBhbmQgY3JlYXRlIHRoZQorKyAgIyBsaWJ0b29sIHNjcmlwdCB0aGVuLgorKyAgbHRtYWluX2lu PWBlY2hvICRsdG1haW4gfCBzZWQgLWUgJ3MvXC5zaCQvLmluLydgCisrICBpZiB0ZXN0IC1mICIk bHRtYWluX2luIjsgdGhlbgorKyAgICB0ZXN0IC1mIE1ha2VmaWxlICYmIG1ha2UgIiRsdG1haW4i CisrICBmaQorK2ZpCisrCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJwor K2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY19jb21waWxlcl9nbnUKKysKKytDQz0iJGx0X3NhdmVfQ0MiCisrCisrCWVsc2UKKysJ ICB0YWduYW1lPSIiCisrCWZpCisrCTs7CisrCisrICAgICAgUkMpCisrCisrCisrIyBTb3VyY2Ug ZmlsZSBleHRlbnNpb24gZm9yIFJDIHRlc3Qgc291cmNlcy4KKythY19leHQ9cmMKKysKKysjIE9i amVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgUkMgdGVzdCBzb3VyY2VzLgorK29iamV4 dD1vCisrb2JqZXh0X1JDPSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUg Y29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0nc2FtcGxlIE1FTlUg eyBNRU5VSVRFTSAiJlNvdXAiLCAxMDAsIENIRUNLRUQgfScKKysKKysjIENvZGUgdG8gYmUgdXNl ZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iJGx0X3Np bXBsZV9jb21waWxlX3Rlc3RfY29kZSIKKysKKysjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0 YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrCisrIyBJZiBu byBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0K KysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1Mu CisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MKKysKKysKKysjIHNh dmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorK2FjX291dGZpbGU9 Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUi ID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8 ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2NvbXBpbGVyX2JvaWxl cnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRybSBjb25mdGVzdCoKKysKKythY19vdXRmaWxl PWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+ Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VE ICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9saW5rZXJfYm9pbGVycGxhdGU9 YGNhdCBjb25mdGVzdC5lcnJgCisrJHJtIC1yIGNvbmZ0ZXN0KgorKworKworKyMgQWxsb3cgQ0Mg dG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrbHRfc2F2ZV9DQz0iJENDIgor K0NDPSR7UkMtIndpbmRyZXMifQorK2NvbXBpbGVyPSRDQworK2NvbXBpbGVyX1JDPSRDQworK2Zv ciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBj b21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisrICAg IGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7CisrICAg IFwtKikgOzsKKysgICAgKikgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytjY19iYXNlbmFtZT1g JGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFz LSUlImAKKysKKytsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19SQz15ZXMKKysKKysjIFRoZSBlbHNl IGNsYXVzZSBzaG91bGQgb25seSBmaXJlIHdoZW4gYm9vdHN0cmFwcGluZyB0aGUKKysjIGxpYnRv b2wgZGlzdHJpYnV0aW9uLCBvdGhlcndpc2UgeW91IGZvcmdvdCB0byBzaGlwIGx0bWFpbi5zaAor KyMgd2l0aCB5b3VyIHBhY2thZ2UsIGFuZCB5b3Ugd2lsbCBnZXQgY29tcGxhaW50cyB0aGF0IHRo ZXJlIGFyZQorKyMgbm8gcnVsZXMgdG8gZ2VuZXJhdGUgbHRtYWluLnNoLgorK2lmIHRlc3QgLWYg IiRsdG1haW4iOyB0aGVuCisrICAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBz ZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyIGNvbW1hbmRzIHRocm91Z2gKKysgICMgd2l0 aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcy4KKysgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04r c2V0fSIgOyB0aGVuCisrICAgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrICBmaQorKyAgIyBOb3cg cXVvdGUgYWxsIHRoZSB0aGluZ3MgdGhhdCBtYXkgY29udGFpbiBtZXRhY2hhcmFjdGVycyB3aGls ZSBiZWluZworKyAgIyBjYXJlZnVsIG5vdCB0byBvdmVycXVvdGUgdGhlIEFDX1NVQlNUZWQgdmFs dWVzLiAgV2UgdGFrZSBjb3BpZXMgb2YgdGhlCisrICAjIHZhcmlhYmxlcyBhbmQgcXVvdGUgdGhl IGNvcGllcyBmb3IgZ2VuZXJhdGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQuCisrICBmb3IgdmFy IGluIGVjaG8gb2xkX0NDIG9sZF9DRkxBR1MgQVIgQVJfRkxBR1MgRUdSRVAgUkFOTElCIExOX1Mg TFRDQyBMVENGTEFHUyBOTSBcCisrICAgIFNFRCBTSEVMTCBTVFJJUCBcCisrICAgIGxpYm5hbWVf c3BlYyBsaWJyYXJ5X25hbWVzX3NwZWMgc29uYW1lX3NwZWMgZXh0cmFjdF9leHBzeW1zX2NtZHMg XAorKyAgICBvbGRfc3RyaXBsaWIgc3RyaXBsaWIgZmlsZV9tYWdpY19jbWQgZmluaXNoX2NtZHMg ZmluaXNoX2V2YWwgXAorKyAgICBkZXBsaWJzX2NoZWNrX21ldGhvZCByZWxvYWRfZmxhZyByZWxv YWRfY21kcyBuZWVkX2xvY2tzIFwKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIFwKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIFwKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMg b2xkX3Bvc3R1bmluc3RhbGxfY21kcyBcCisrICAgIGNvbXBpbGVyX1JDIFwKKysgICAgQ0NfUkMg XAorKyAgICBMRF9SQyBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfUkMgXAorKyAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19SQyBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX1JDIFwK KysgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfUkMgXAorKyAgICBleHBvcnRf ZHluYW1pY19mbGFnX3NwZWNfUkMgXAorKyAgICB0aHJlYWRfc2FmZV9mbGFnX3NwZWNfUkMgXAor KyAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19SQyBcCisrICAgIGVuYWJsZV9zaGFyZWRfd2l0 aF9zdGF0aWNfcnVudGltZXNfUkMgXAorKyAgICBvbGRfYXJjaGl2ZV9jbWRzX1JDIFwKKysgICAg b2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19SQyBcCisrICAgIHByZWRlcF9vYmplY3RzX1JDIFwK KysgICAgcG9zdGRlcF9vYmplY3RzX1JDIFwKKysgICAgcHJlZGVwc19SQyBcCisrICAgIHBvc3Rk ZXBzX1JDIFwKKysgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX1JDIFwKKysgICAgY29tcGls ZXJfbGliX3NlYXJjaF9kaXJzX1JDIFwKKysgICAgYXJjaGl2ZV9jbWRzX1JDIFwKKysgICAgYXJj aGl2ZV9leHBzeW1fY21kc19SQyBcCisrICAgIHBvc3RpbnN0YWxsX2NtZHNfUkMgXAorKyAgICBw b3N0dW5pbnN0YWxsX2NtZHNfUkMgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k c19SQyBcCisrICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX1JDIFwKKysgICAgbm9fdW5kZWZpbmVk X2ZsYWdfUkMgXAorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX1JDIFwKKysgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19SQyBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRf UkMgXAorKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX1JDIFwKKysgICAgaGFyZGNvZGVf YXV0b21hdGljX1JDIFwKKysgICAgbW9kdWxlX2NtZHNfUkMgXAorKyAgICBtb2R1bGVfZXhwc3lt X2NtZHNfUkMgXAorKyAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19SQyBcCisrICAgIGZpeF9z cmNmaWxlX3BhdGhfUkMgXAorKyAgICBleGNsdWRlX2V4cHN5bXNfUkMgXAorKyAgICBpbmNsdWRl X2V4cHN5bXNfUkM7IGRvCisrCisrICAgIGNhc2UgJHZhciBpbgorKyAgICBvbGRfYXJjaGl2ZV9j bWRzX1JDIHwgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX1JDIHwgXAorKyAgICBh cmNoaXZlX2NtZHNfUkMgfCBcCisrICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfUkMgfCBcCisrICAg IG1vZHVsZV9jbWRzX1JDIHwgXAorKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfUkMgfCBcCisrICAg IG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX1JDIHwgXAorKyAgICBleHBvcnRfc3ltYm9s c19jbWRzX1JDIHwgXAorKyAgICBleHRyYWN0X2V4cHN5bXNfY21kcyB8IHJlbG9hZF9jbWRzIHwg ZmluaXNoX2NtZHMgfCBcCisrICAgIHBvc3RpbnN0YWxsX2NtZHMgfCBwb3N0dW5pbnN0YWxsX2Nt ZHMgfCBcCisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIHwgb2xkX3Bvc3R1bmluc3RhbGxfY21k cyB8IFwKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIHwgc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWMpCisrICAgICAgIyBEb3VibGUtcXVvdGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgor KyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1l IFwiXCRkb3VibGVfcXVvdGVfc3Vic3RcIiAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCIgLWUgXCJc JGRlbGF5X3ZhcmlhYmxlX3N1YnN0XCJcYFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAg ICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwk c2VkX3F1b3RlX3N1YnN0XCJcYFxcXCIiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQor KworKyAgY2FzZSAkbHRfZWNobyBpbgorKyAgKidcJDAgLS1mYWxsYmFjay1lY2hvIicpCisrICAg IGx0X2VjaG89YCRlY2hvICJYJGx0X2VjaG8iIHwgJFhzZWQgLWUgJ3MvXFxcXFxcXCQwIC0tZmFs bGJhY2stZWNobyIkLyQwIC0tZmFsbGJhY2stZWNobyIvJ2AKKysgICAgOzsKKysgIGVzYWMKKysK KytjZmdmaWxlPSIkb2ZpbGUiCisrCisrICBjYXQgPDxfX0VPRl9fID4+ICIkY2ZnZmlsZSIKKysj ICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lCisrCisrIyBMaWJ0b29sIHdh cyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwg fCBzZWQgMXFgOgorKworKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0 cy4KKytTSEVMTD0kbHRfU0hFTEwKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJl ZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCisrCisrIyBX aGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1aWxkX29sZF9saWJz PSRlbmFibGVfc3RhdGljCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWls ZGluZyBzaGFyZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kYXJjaGl2ZV9j bWRzX25lZWRfbGNfUkMKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBs aWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMKKythbGxvd19saWJ0b29sX2xpYnNfd2l0 aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfUkMK KysKKysjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbi4K KytmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3RhbGwKKysKKysjIFRoZSBob3N0IHN5c3Rl bS4KKytob3N0X2FsaWFzPSRob3N0X2FsaWFzCisraG9zdD0kaG9zdAorK2hvc3Rfb3M9JGhvc3Rf b3MKKysKKysjIFRoZSBidWlsZCBzeXN0ZW0uCisrYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCisr YnVpbGQ9JGJ1aWxkCisrYnVpbGRfb3M9JGJ1aWxkX29zCisrCisrIyBBbiBlY2hvIHByb2dyYW0g dGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCisrZWNobz0kbHRfZWNobworKwor KyMgVGhlIGFyY2hpdmVyLgorK0FSPSRsdF9BUgorK0FSX0ZMQUdTPSRsdF9BUl9GTEFHUworKwor KyMgQSBDIGNvbXBpbGVyLgorK0xUQ0M9JGx0X0xUQ0MKKysKKysjIExUQ0MgY29tcGlsZXIgZmxh Z3MuCisrTFRDRkxBR1M9JGx0X0xUQ0ZMQUdTCisrCisrIyBBIGxhbmd1YWdlLXNwZWNpZmljIGNv bXBpbGVyLgorK0NDPSRsdF9jb21waWxlcl9SQworKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBH TlUgQyBjb21waWxlcj8KKyt3aXRoX2djYz0kR0NDX1JDCisrCisrIyBBbiBFUkUgbWF0Y2hlci4K KytFR1JFUD0kbHRfRUdSRVAKKysKKysjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJp ZXMuCisrTEQ9JGx0X0xEX1JDCisrCisrIyBXaGV0aGVyIHdlIG5lZWQgaGFyZCBvciBzb2Z0IGxp bmtzLgorK0xOX1M9JGx0X0xOX1MKKysKKysjIEEgQlNELWNvbXBhdGlibGUgbm0gcHJvZ3JhbS4K KytOTT0kbHRfTk0KKysKKysjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtCisrU1RSSVA9JGx0 X1NUUklQCisrCisrIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19j bWQgYmVnaW5zICJmaWxlIgorK01BR0lDX0NNRD0kTUFHSUNfQ01ECisrCisrIyBVc2VkIG9uIGN5 Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCisrRExMVE9PTD0iJERMTFRPT0wiCisrCisrIyBV c2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KKytPQkpEVU1QPSIkT0JKRFVNUCIKKysKKysj IFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCisrQVM9IiRBUyIKKysKKysjIFRoZSBuYW1lIG9m IHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KKytv YmpkaXI9JG9iamRpcgorKworKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxl cy4KKytyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKKytyZWxvYWRfY21kcz0kbHRfcmVsb2Fk X2NtZHMKKysKKysjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGls ZXIuCisrd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfUkMKKysKKysjIE9iamVjdCBmaWxlIHN1 ZmZpeCAobm9ybWFsbHkgIm8iKS4KKytvYmpleHQ9IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJj aGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIikuCisrbGliZXh0PSIkbGliZXh0IgorKworKyMgU2hh cmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJl eHRfY21kcycKKysKKysjIEV4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytl eGVleHQ9IiRleGVleHQiCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWls ZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGlj X1JDCisrcGljX21vZGU9JHBpY19tb2RlCisrCisrIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0 aCBvZiBhIGNvbW1hbmQ/CisrbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgorKwor KyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25z PworK2NvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fUkMKKysKKysjIE11 c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPworK25lZWRfbG9ja3M9JGx0 X25lZWRfbG9ja3MKKysKKysjIERvIHdlIG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/ CisrbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKKysKKysjIERvIHdlIG5lZWQgYSB2 ZXJzaW9uIGZvciBsaWJyYXJpZXM/CisrbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KKysKKysj IFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rs b3BlbgorKworKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rs b3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKKysKKysjIFdoZXRoZXIgZGxvcGVuIG9mIHN0 YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc2VsZl9zdGF0 aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gcHJl dmVudCBkeW5hbWljIGxpbmtpbmcuCisrbGlua19zdGF0aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfUkMKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBm dW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0 aW5fZmxhZ19SQworKworKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVu cy4KKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19SQworKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJl Y3RseSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9h cmNoaXZlX2ZsYWdfc3BlY19SQworKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJl YWQtc2FmZSBvYmplY3RzLgorK3RocmVhZF9zYWZlX2ZsYWdfc3BlYz0kbHRfdGhyZWFkX3NhZmVf ZmxhZ19zcGVjX1JDCisrCisrIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KKyt2ZXJzaW9uX3R5 cGU9JHZlcnNpb25fdHlwZQorKworKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCisr bGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKKysKKysjIExpc3Qgb2YgYXJjaGl2ZSBuYW1l cy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCisrIyBU aGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1F LgorK2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCisrCisrIyBUaGUg Y29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFt ZS4KKytzb25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKKysKKysjIENvbW1hbmRzIHVzZWQgdG8g YnVpbGQgYW5kIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrUkFOTElCPSRsdF9SQU5M SUIKKytvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzX1JDCisrb2xkX3Bvc3Rp bnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCisrb2xkX3Bvc3R1bmluc3RhbGxf Y21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcworKworKyMgQ3JlYXRlIGFuIG9sZC1zdHls ZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX25ld19j bWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX1JDCisrCisrIyBDcmVhdGUgYSB0ZW1w b3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hp dmUuCisrb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21f ZXhwc3ltc19jbWRzX1JDCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxs IGEgc2hhcmVkIGFyY2hpdmUuCisrYXJjaGl2ZV9jbWRzPSRsdF9hcmNoaXZlX2NtZHNfUkMKKyth cmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzX1JDCisrcG9zdGluc3Rh bGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21kcworK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9z dHVuaW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUg bW9kdWxlIChhc3N1bWVkIHNhbWUgYXMgYWJvdmUgaWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0 X21vZHVsZV9jbWRzX1JDCisrbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2Nt ZHNfUkMKKysKKysjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KKytvbGRfc3RyaXBsaWI9 JGx0X29sZF9zdHJpcGxpYgorK3N0cmlwbGliPSRsdF9zdHJpcGxpYgorKworKyMgRGVwZW5kZW5j aWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEK KysjIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19S QworKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxp bmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3RzPSRs dF9wb3N0ZGVwX29iamVjdHNfUkMKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUg dGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4K KytwcmVkZXBzPSRsdF9wcmVkZXBzX1JDCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0 ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFy eS4KKytwb3N0ZGVwcz0kbHRfcG9zdGRlcHNfUkMKKysKKysjIFRoZSBkaXJlY3RvcmllcyBzZWFy Y2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxpYnJhcnkK Kytjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19S QworKworKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBj b21waWxlciB3aGVuIGxpbmtpbmcKKysjIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGhfUkMKKysKKysjIE1ldGhv ZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3Rz LgorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAorKworKyMg Q29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgor K2ZpbGVfbWFnaWNfY21kPSRsdF9maWxlX21hZ2ljX2NtZAorKworKyMgRmxhZyB0aGF0IGFsbG93 cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisr YWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX1JDCisrCisrIyBG bGFnIHRoYXQgZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFn PSRsdF9ub191bmRlZmluZWRfZmxhZ19SQworKworKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2gg YSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgorK2ZpbmlzaF9j bWRzPSRsdF9maW5pc2hfY21kcworKworKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGEgc2luZ2xlIHNj cmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0IG5vdCBzaG93bi4KKytmaW5pc2hfZXZhbD0k bHRfZmluaXNoX2V2YWwKKysKKysjIFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBh IGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMuCisrZ2xvYmFsX3N5bWJvbF9waXBl PSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91 dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9uCisrZ2xvYmFsX3N5bWJvbF90b19j ZGVjbD0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKKysKKysjIFRyYW5zZm9y bSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpcgorK2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFt ZV9hZGRyZXNzCisrCisrIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGgg dmFyaWFibGUuCisrcnVucGF0aF92YXI9JHJ1bnBhdGhfdmFyCisrCisrIyBUaGlzIGlzIHRoZSBz aGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgorK3NobGlicGF0aF92YXI9JHNobGlicGF0aF92 YXIKKysKKysjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGli cmFyeSBzZWFyY2ggcGF0aD8KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aAorKworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJh cnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9h Y3Rpb25fUkMKKysKKysjIFdoZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMg aW50byBsaWJyYXJpZXMuCisraGFyZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMK KysKKysjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlu a2luZy4KKysjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3Qu CisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19SQworKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUg XCRsaWJkaXIgaW50bworKyMgYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuIFRoaXMgbXVzdCB3b3Jr IGV2ZW4gaWYgXCRsaWJkaXIgZG9lcworKyMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfUkMKKysKKysjIFdo ZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAtcnBhdGggZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3Vt ZW50LgorK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3JfUkMKKysKKysjIFNldCB0byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9l eHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKKysjIHJlc3VsdGluZyBi aW5hcnkuCisraGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfUkMKKysKKysjIFNldCB0 byB5ZXMgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJ UiBpbnRvIHRoZQorKyMgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9taW51c19MPSRoYXJk Y29kZV9taW51c19MX1JDCisrCisrIyBTZXQgdG8geWVzIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9 RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50bworKyMgdGhlIHJlc3VsdGluZyBi aW5hcnkuCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9S QworKworKyMgU2V0IHRvIHllcyBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRp Y2FsbHkgaGFyZGNvZGVzIERJUiBpbnRvIHRoZSBsaWJyYXJ5CisrIyBhbmQgYWxsIHN1YnNlcXVl bnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KKytoYXJkY29k ZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19SQworKworKyMgVmFyaWFibGVzIHdob3Nl IHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCisr IyByZXN0b3JlZCBhdCByZWxpbmsgdGltZS4KKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0i JHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIgorKworKyMgV2hldGhlciBsaWJ0b29sIG11c3Qg bGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgorK2xp bmtfYWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfUkMKKysKKysjIENvbXBpbGUtdGltZSBz eXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcworK3N5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrCisrIyBSdW4tdGltZSBzeXN0ZW0gc2Vh cmNoIHBhdGggZm9yIGxpYnJhcmllcworK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9z eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYworKworKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBc JHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KKytmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3Jj ZmlsZV9wYXRoCisrCisrIyBTZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVp cmVkLgorK2Fsd2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzX1JDCisr CisrIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgorK2V4cG9ydF9zeW1i b2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHNfUkMKKysKKysjIFRoZSBjb21tYW5kcyB0 byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmUu CisrZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19jbWRzCisrCisrIyBT eW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xz LgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zX1JDCisrCisrIyBTeW1ib2xz IHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCisraW5jbHVkZV9leHBzeW1zPSRsdF9pbmNs dWRlX2V4cHN5bXNfUkMKKysKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFt ZQorKworK19fRU9GX18KKysKKysKKytlbHNlCisrICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxl IHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCisrICAjIGBjb25maWcuc3Rh dHVzIC0tcmVjaGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKKysgICMg bGlidG9vbCBzY3JpcHQgdGhlbi4KKysgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1l ICdzL1wuc2gkLy5pbi8nYAorKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KKysgICAg dGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgorKyAgZmkKKytmaQorKworKworK2Fj X2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Cisr CisrQ0M9IiRsdF9zYXZlX0NDIgorKworKwk7OworKworKyAgICAgICopCisrCXsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBVbnN1cHBvcnRlZCB0YWcgbmFtZTogJHRhZ25hbWUi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBVbnN1cHBvcnRlZCB0YWcgbmFtZTogJHRh Z25hbWUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCTs7CisrICAgICAg ZXNhYworKworKyAgICAgICMgQXBwZW5kIHRoZSBuZXcgdGFnIG5hbWUgdG8gdGhlIGxpc3Qgb2Yg YXZhaWxhYmxlIHRhZ3MuCisrICAgICAgaWYgdGVzdCAtbiAiJHRhZ25hbWUiIDsgdGhlbgorKyAg ICAgIGF2YWlsYWJsZV90YWdzPSIkYXZhaWxhYmxlX3RhZ3MgJHRhZ25hbWUiCisrICAgIGZpCisr ICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKysKKysgICMgTm93IHN1YnN0 aXR1dGUgdGhlIHVwZGF0ZWQgbGlzdCBvZiBhdmFpbGFibGUgdGFncy4KKysgIGlmIGV2YWwgInNl ZCAtZSAncy9eYXZhaWxhYmxlX3RhZ3M9LipcJC9hdmFpbGFibGVfdGFncz1cIiRhdmFpbGFibGVf dGFnc1wiLycgXCIkb2ZpbGVcIiA+IFwiJHtvZmlsZX1UXCIiOyB0aGVuCisrICAgIG12ICIke29m aWxlfVQiICIkb2ZpbGUiCisrICAgIGNobW9kICt4ICIkb2ZpbGUiCisrICBlbHNlCisrICAgIHJt IC1mICIke29maWxlfVQiCisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiB1bmFibGUgdG8gdXBkYXRlIGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ2dlZCBjb25maWd1cmF0aW9u cy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiB1bmFibGUgdG8gdXBkYXRlIGxpc3Qg b2YgYXZhaWxhYmxlIHRhZ2dlZCBjb25maWd1cmF0aW9ucy4iID4mMjt9CisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrICBmaQorK2ZpCisrCisrCisrCisrIyBUaGlzIGNhbiBiZSB1c2Vk IHRvIHJlYnVpbGQgbGlidG9vbCB3aGVuIG5lZWRlZAorK0xJQlRPT0xfREVQUz0iJGFjX2F1eF9k aXIvbHRtYWluLnNoIgorKworKyMgQWx3YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wuCisrTElCVE9P TD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCisrCisrIyBQcmV2ZW50IG11bHRp cGxlIGV4cGFuc2lvbgorKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3 aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxu IC1zIHdvcmtzLi4uICIgPiY2OyB9CisrTE5fUz0kYXNfbG5fcworK2lmIHRlc3QgIiRMTl9TIiA9 ICJsbiAtcyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHll cyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+JjUKKyskYXNfZWNobyAibm8s IHVzaW5nICRMTl9TIiA+JjY7IH0KKytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpLi4uICIg PiY2OyB9Cisrc2V0IHggJHtNQUtFLW1ha2V9CisrYWNfbWFrZT1gJGFzX2VjaG8gIiQyIiB8IHNl ZCAncy8rL3AvZzsgcy9bXmEtekEtWjAtOV9dL18vZydgCisraWYgeyBhc192YXI9YWNfY3ZfcHJv Z19tYWtlXyR7YWNfbWFrZX1fc2V0OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBz ZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNh dCA+Y29uZnRlc3QubWFrZSA8PFxfQUNFT0YKKytTSEVMTCA9IC9iaW4vc2gKKythbGw6CisrCUBl Y2hvICdAQEAlJSU9JChNQUtFKT1AQEAlJSUnCisrX0FDRU9GCisrIyBHTlUgbWFrZSBzb21ldGlt ZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRlcmluZy4uLiIsIHdoaWNoIHdvdWxkIGNvbmZ1c2UgdXMu CisrY2FzZSBgJHtNQUtFLW1ha2V9IC1mIGNvbmZ0ZXN0Lm1ha2UgMj4vZGV2L251bGxgIGluCisr ICAqQEBAJSUlPT8qPUBAQCUlJSopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFr ZX1fc2V0PXllczs7CisrICAqKQorKyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9 X3NldD1ubzs7CisrZXNhYworK3JtIC1mIGNvbmZ0ZXN0Lm1ha2UKKytmaQorK2lmIGV2YWwgdGVz dCBcJGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCA9IHllczsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+ JjY7IH0KKysgIFNFVF9NQUtFPQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgU0VUX01BS0U9Ik1B S0U9JHtNQUtFLW1ha2V9IgorK2ZpCisrCisrCisrIyBTZXQgZGVmYXVsdCBsYW5ndWFnZSB0byBD KysKKythY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKKysKKysKKysjIENoZWNrIGZvciBleGNlcHRpb25zIHN3aXRjaAor KyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1leGNlcHRpb25zIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke2VuYWJsZV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVu YWJsZV9leGNlcHRpb25zOworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBT T0NJX0VYQ0VQVElPTlMgMQorK19BQ0VPRgorKworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfZXhj ZXB0aW9ucyIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcworK3Rlc3QgIngkYXhfY3Zf Ym9vc3RfZGF0ZV90aW1lIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrCisrIyBD aGVjayBmb3IgaW5mbyBwYWdlcworKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1pbmZvLWRvYyB3 YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfaW5mb19kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4K KysgIGVuYWJsZXZhbD0kZW5hYmxlX2luZm9fZG9jOworK2ZpCisrCisrdGVzdCAieCRlbmFibGVf aW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5mb19kb2M9eWVzCisrCisrCisrIyBDaGVjayBm b3IgaHRtbC1kb2Mgc3dpdGNoCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWh0bWwtZG9jIHdh cyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9odG1sX2RvYytzZXR9IiA9IHNldDsgdGhlbgor KyAgZW5hYmxldmFsPSRlbmFibGVfaHRtbF9kb2M7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9o dG1sX2RvYyIgIT0geG5vICYmIGVuYWJsZV9odG1sX2RvYz15ZXMKKysKKysKKysjIFByb3ZpZGUg LS13aXRoLWRvY2RpcgorKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZG9jZGlyIHdhcyBnaXZl bi4KKytpZiB0ZXN0ICIke3dpdGhfZG9jZGlyK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFs PSR3aXRoX2RvY2RpcjsgRE9DX0RJUj0iJHdpdGh2YWwiCisrZWxzZQorKyAgRE9DX0RJUj0iIgor K2ZpCisrCisraWYgdGVzdCAieCRET0NfRElSIiAhPSB4OyB0aGVuCisrICBkb2NkaXI9IiRET0Nf RElSIgorK2Vsc2UKKysgIGRvY2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04i CisrZmkKKysKKysKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNP Q0kgaXRzZWxmKQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMgd2Fz IGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsg dGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVu YWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KKysg ICBlbHNlCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaQorK2Vsc2UK KysgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5vCisrZmkKKysKKysjIFRlbXBvcmFyeSwgZm9y IHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVz CisrIGlmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICBT T0NJX0hFQURFUlNfQlVSSUVEX1RSVUU9CisrICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScj JworK2Vsc2UKKysgIFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRT0nIycKKysgIFNPQ0lfSEVBREVS U19CVVJJRURfRkFMU0U9CisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hl YWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQg JENQUEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZv ciBNeVNRTCBjbGllbnQpCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQt aGVhZGVycyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9teXNxbF9idXJyaWVk X2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrCWVuYWJsZV9teXNx bF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisrCWVuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnM9eWVzCisrICAgZmkKKytlbHNlCisrICAgZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVy cz1ubworK2ZpCisrCisrIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRp b24KKytlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcworKyBpZiB0ZXN0ICJ4JGVuYWJs ZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRF9UUlVFPQorKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycK KytlbHNlCisrICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUU9JyMnCisrICBTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQorK2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVf bXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBGTEFHUz0iLURTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKKytmaQorKworKyMgQ2hlY2sgZm9yIGJ1 cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgUG9zdEdyZVNRTCBjbGllbnQpCisrIyBDaGVjayB3aGV0 aGVyIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KKytpZiB0 ZXN0ICIke2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhl bgorKyAgZW5hYmxldmFsPSRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0 ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRf aGVhZGVycz1ubworKyAgIGVsc2UKKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJz PXllcworKyAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVy cz1ubworK2ZpCisrCisrIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRp b24KKytlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrIGlmIHRlc3QgIngk ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgIFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPQorKyAgU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEX0ZBTFNFPScjJworK2Vsc2UKKysgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFRF9UUlVFPScjJworKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQor K2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMi ID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6 IGh0dHA6Ly93d3cuYm9vc3Qub3JnKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRo LWJvb3N0IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfYm9vc3Qrc2V0fSIgPSBzZXQ7IHRo ZW4KKysgIHdpdGh2YWw9JHdpdGhfYm9vc3Q7CisrICAgICAgICAgICAgICAgIGlmIHRlc3QgIiR3 aXRodmFsIiA9ICJubyI7IHRoZW4KKysJCSAgICAgICAgICAgIHdhbnRfYm9vc3Q9Im5vIgorKyAg ICAgICAgICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAg ICAgICAgICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCisrICAgICAgICAgICAgICAgICAgICBhY19i b29zdF9wYXRoPSIiCisrICAgICAgICAgICAgICAgIGVsc2UKKysJCQkgICAgICAgIHdhbnRfYm9v c3Q9InllcyIKKysgICAgICAgICAgICAJCWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFsIgorKwkJICAg ICAgICBmaQorKworK2Vsc2UKKysgIHdhbnRfYm9vc3Q9InllcyIKKytmaQorKworKworKyMgICAg QUNfQ0FOT05JQ0FMX0JVSUxECisrQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKKytCT09TVExJ Ql9NRFdfVkVSU0lPTj0iMV8zM18xIgorKworKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5 ZXMiOyB0aGVuCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXE9MS4zMworKwkJYm9vc3RfbGliX3Zl cnNpb25fcmVxX3Nob3J0ZW49YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFswLTld KlwuWzAtOV0qXCknYAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29z dF9saWJfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcKSdgCisrCQlib29zdF9saWJfdmVyc2lvbl9y ZXFfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0q XCknYAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGli X3ZlcnNpb25fcmVxIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKKysJCWlmIHRlc3Qg IngkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9v c3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NU X1ZFUlNJT049YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsg ICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lv bl9yZXFfc3ViX21pbm9yYAorKwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcS4uLiAiID4m NjsgfQorKwkJc3VjY2VlZGVkPW5vCisrCisrCQkJCQkJCQkJCWlmIHRlc3QgLWQgL2xpYjY0OyB0 aGVuCisrCQkJQk9PU1RfTElCRElSVFlQRT0ibGliNjQiCisrCQllbHNlCisrCQkJQk9PU1RfTElC RElSVFlQRT0ibGliIgorKwkJZmkKKysJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsg dGhlbgorKwkJCWlmIHRlc3QgIiRCT09TVF9MSUJESVJUWVBFIiA9PSAibGliNjQiOyB0aGVuCisr CQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIiAmJiB0ZXN0 IC1yICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSI7IHRoZW4KKysJICAgICAgICAg ICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisr CQkJCWVsc2UKKysgICAgICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3Bh dGgvbGliIgorKwkJCQlmaQorKwkJCWVsc2UKKysJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3Rf cGF0aC9saWIiCisrCQkJZmkKKysJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5j bHVkZSIKKysJCWVsc2UKKysJCQlmb3IgYWNfYm9vc3RfcGF0aF90bXAgaW4gL3VzciAvdXNyL2xv Y2FsIC9vcHQgL25hc3Rvb2xzL2Jvb3N0IDsgZG8KKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0 X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9p bmNsdWRlL2Jvb3N0IjsgdGhlbgorKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90 bXAvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3Bh dGhfdG1wL2luY2x1ZGUiCisrCQkJCQlicmVhazsKKysJCQkJZmkKKysJCQkJaWYgdGVzdCAtZCAi JGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0 IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURX X1ZFUlNJT04vYm9vc3QiOyB0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRo X3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3Rf cGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04iCisrCisrCQkJCQkJCQkJ CWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiICYmIHRlc3QgLXIgIiRhY19ib29z dF9wYXRoX3RtcC9saWIiICYmIHRlc3QgISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYjY0Ijsg dGhlbgorKwkJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIKKysJCQkJ CQllY2hvICJIYWNrOiAkQk9PU1RfTElCUyIKKysJCQkJCWZpCisrCQkJCQlicmVhazsKKysJCQkJ ZmkKKysJCQlkb25lCisrCQlmaQorKworKwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBGTEFHUyIKKysJ CUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKKysJCWV4cG9ydCBDUFBGTEFHUwor KworKwkJTERGTEFHU19TQVZFRD0iJExERkxBR1MiCisrCQlMREZMQUdTPSIkTERGTEFHUyAkQk9P U1RfTElCUyIKKysJCWV4cG9ydCBMREZMQUdTCisrCisrICAgICAJY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+ CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9C T09TVF9WRVJTSU9OCisrLy8gRXZlcnl0aGluZyBpcyBva2F5CisrI2Vsc2UKKysjICBlcnJvciBC b29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKKysjZW5kaWYKKysKKysKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5 PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxl IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKworKyAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIg PiY2OyB9CisrCQkgc3VjY2VlZGVkPXllcworKwkJIGZvdW5kX3N5c3RlbT15ZXMKKysgICAgICAg ICA6CisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKworK2ZpCisr Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0CisrCisrCQkJCQkJaWYgdGVzdCAieCRzdWNjZWVkZWQiICE9ICJ4eWVzIjsgdGhlbgor KwkJCV92ZXJzaW9uPTAKKysJCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4K KysgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElC RElSVFlQRSIKKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRh Y19ib29zdF9wYXRoIjsgdGhlbgorKwkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRo L2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYvbnVsbGA7IGRvCisrCQkJCQkJX3ZlcnNpb25fdG1wPWBl Y2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9v c3QtLy8nIHwgc2VkICdzL18vLi8nYAorKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3Rt cCBcPiAkX3ZlcnNpb25gCisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgor KwkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJZmkKKysJCQkJCQlWRVJTSU9O X1VOREVSU0NPUkU9YGVjaG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKKysJCQkJCQlCT09T VF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlND T1JFIgorKwkJCQkJZG9uZQorKwkJCQlmaQorKwkJCWVsc2UKKysJCQkJZm9yIGFjX2Jvb3N0X3Bh dGggaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgOyBkbworKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jv b3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgorKwkJCQkJCWZvciBp IGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBk bworKwkJCQkJCQlfdmVyc2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgj IyIgfCBzZWQgJ3MvXC9pbmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCisrCQkJCQkJ CVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCisrCQkJCQkJCWlmIHRl c3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90 bXAKKysJCQkJCQkJCWJlc3RfcGF0aD0kYWNfYm9vc3RfcGF0aAorKwkJCQkJCQlmaQorKwkJCQkJ CWRvbmUKKysJCQkJCWZpCisrCQkJCWRvbmUKKysKKysJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBl Y2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCisrCQkJCUJPT1NUX0NGTEFHUz0iLUkkYmVz dF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJQk9PU1RfTElC Uz0iLUwkYmVzdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKworKwkgICAgCQlpZiB0ZXN0ICJ4 JEJPT1NUX1JPT1QiICE9ICJ4IjsgdGhlbgorKwkJCQkJaWYgdGVzdCAtZCAiJEJPT1NUX1JPT1Qi ICYmIHRlc3QgLXIgIiRCT09TVF9ST09UIjsgdGhlbgorKwkJCQkJCXZlcnNpb25fZGlyPWBleHBy IC8vJEJPT1NUX1JPT1QgOiAnLiovXCguKlwpJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uPWBlY2hv ICR2ZXJzaW9uX2RpciB8IHNlZCAncy9ib29zdF8vLycgfCBzZWQgJ3MvXy8uL2cnYAorKwkJCQkJ CXN0YWdlX3ZlcnNpb25fc2hvcnRlbj1gZXhwciAkc3RhZ2VfdmVyc2lvbiA6ICdcKFswLTldKlwu WzAtOV0qXCknYAorKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJHN0YWdlX3ZlcnNpb25fc2hvcnRlbiBc Plw9ICRfdmVyc2lvbmAKKysJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCisr CQkJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBi b29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdl IHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY2O30K KysJCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRCT09TVF9ST09UIgorKwkJCQkJCQlCT09TVF9MSUJT PSItTCRCT09TVF9ST09UL3N0YWdlLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJCWZpCisrCQkJ CQlmaQorKwkgICAgCQlmaQorKwkJCWZpCisrCisrCQkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9P U1RfQ0ZMQUdTIgorKwkJCWV4cG9ydCBDUFBGTEFHUworKwkJCUxERkxBR1M9IiRMREZMQUdTICRC T09TVF9MSUJTIgorKwkJCWV4cG9ydCBMREZMQUdTCisrCisrICAgICAJCWNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24u aHBwPgorKworK2ludAorK21haW4gKCkKKyt7CisrCisrI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdB TlRfQk9PU1RfVkVSU0lPTgorKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQorKyNlbHNlCisrIyAgZXJy b3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCisrI2VuZGlmCisrCisrCisrICA7CisrICByZXR1 cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFj X3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29t cGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNh dCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAi JGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAg ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysKKysgICAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMgKCRfdmVyc2lvbikiID4mNQor KyRhc19lY2hvICJ5ZXMgKCRfdmVyc2lvbikiID4mNjsgfQorKwkJIHN1Y2NlZWRlZD15ZXMKKysg ICAgICAgICA6CisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKyAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vICgkX3ZlcnNpb24p IiA+JjUKKyskYXNfZWNobyAibm8gKCRfdmVyc2lvbikiID4mNjsgfQorKyAgICAgICAgIDoKKysK KytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuJGFjX2V4dAorKwkJZmkKKysKKysJCWlmIHRlc3QgIiRzdWNjZWVkZWQiICE9ICJ5ZXMi IDsgdGhlbgorKwkJCWlmIHRlc3QgIiRfdmVyc2lvbiIgPSAiMCIgOyB0aGVuCisrCQkJCXsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBi b29zdCBsaWJyYXJpZXMgKHZlcnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9y IGhpZ2hlcikuIElmIHlvdSBoYXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBp bnN0YWxsZWQpIHBsZWFzZSBzcGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50 IGFuZCBkbyBub3QgZ2l2ZSBhIFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBh cmUgc3VyZSB5b3UgaGF2ZSBib29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9u IG51bWJlciBsb29raW5nIGluIDxib29zdC92ZXJzaW9uLmhwcD4uIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogV2UgY291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2 ZXJzaW9uICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3Ug aGF2ZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ug c3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUg YSBQQVRIIHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUg Ym9vc3QgaW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBp biA8Ym9vc3QvdmVyc2lvbi5ocHA+LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KKysJCQllbHNlCisrCQkJCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAn WW91ciBib29zdCBsaWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBX ZSBuZWVkIGF0IGxlYXN0ICRib29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJyIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6ICdZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZl cnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3No b3J0ZW4nIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKwkJCWZpCisrCQll bHNlCisrCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVf Qk9PU1QgLyoqLworK19BQ0VPRgorKworKworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWls YWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVz eXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2 X2Jvb3N0X2ZpbGVzeXN0ZW0rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvZmlsZXN5 c3RlbS9wYXRoLmhwcD4KKytpbnQKKyttYWluICgpCisreworK3VzaW5nIG5hbWVzcGFjZSBib29z dDo6ZmlsZXN5c3RlbTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgg bXlfcGF0aCggImZvby9iYXIvZGF0YS50eHQiICk7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gMDsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT15ZXMKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09 bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAorKwkJIAkJICAgICAgICAJCQlhY19leHQ9Y3BwCisrYWNfY3BwPSck Q1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19l eGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9maWxl c3lzdGVtIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID4mNjsgfQor KwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCisrCisr Y2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfRklMRVNZU1RF TSAvKiovCisrX0FDRU9GCisrCisrCQkJCUJOPWJvb3N0X2ZpbGVzeXN0ZW0KKysJCQkJZm9yIGF4 X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0k Q0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19W RVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhf bGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xp YjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJT PSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1h aW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJ ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwg IiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJ ZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2Nv bmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAor K0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFs PSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAi JGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Cisr CQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7 IHRoZW4KKysgIEJPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX2ZpbGVzeXN0 ZW09InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX2ZpbGVzeXN0ZW09Im5vIgorK2ZpCisrCisr ICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhl bgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWlu c3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRp b25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSAgICAgICAgICAgICAg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJv b3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6cHJv Z3JhbV9vcHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0aW9u cyIpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICA7 CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAor K2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFs ICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5l cjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkg dGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4 X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucz1ubworK2ZpCisrCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 CisrCQkJICAgICAgICAgICAgICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29t cGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+ JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY2OyB9CisrCQkJ aWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KKysKKytj YXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9QUk9HUkFNX09Q VElPTlMgLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29zdF9wcm9ncmFtX29wdGlvbnMKKysJ CQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4t JENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJEND IGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTjsgZG8KKysJ CQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAk YXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwk YXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBc IlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0i LWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg eworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29u ZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVz IgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xp Yj1ubyIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysg ICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNr X2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWIn fQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9 CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRh c192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJ5 ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua19wcm9ncmFtX29wdGlvbnM9Im5vIgorK2ZpCisrCisr ICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyIiID0g InhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90 IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRo cmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfdGhyZWFkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2Nw cD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisr CQkJIENYWEZMQUdTX1NBVkU9JENYWEZMQUdTCisrCisrCQkJIGlmIHRlc3QgIngkYnVpbGRfb3Mi ID0gInhzb2xhcmlzIiA7IHRoZW4KKysgIAkJCQkgQ1hYRkxBR1M9Ii1wdGhyZWFkcyAkQ1hYRkxB R1MiCisrCQkJIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCisrCQkJ CSBDWFhGTEFHUz0iLW10aHJlYWRzICRDWFhGTEFHUyIKKysJCQkgZWxzZQorKwkJCQlDWFhGTEFH Uz0iLXB0aHJlYWQgJENYWEZMQUdTIgorKwkJCSBmaQorKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC90aHJlYWQvdGhyZWFkLmhw cD4KKytpbnQKKyttYWluICgpCisreworK2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21w aWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3Rf dGhyZWFkPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3Zf Ym9vc3RfdGhyZWFkPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgQ1hYRkxBR1M9JENYWEZMQUdTX1NB VkUKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwor K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfdGhyZWFkIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2 X2Jvb3N0X3RocmVhZCIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQi ID0gInh5ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAi eHNvbGFyaXMiIDsgdGhlbgorKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1Rf Q0ZMQUdTIgorKwkJCSAgIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVu CisrIAkJCQkgIEJPT1NUX0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCisrCQkJICAg ZWxzZQorKwkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKKysJCQkg ICBmaQorKworKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZF X0JPT1NUX1RIUkVBRCAvKiovCisrX0FDRU9GCisrCisrCQkJCUJOPWJvb3N0X3RocmVhZAorKwkJ CQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0k Q0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0Mg bGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisr CQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwg JGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFp biBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1s JGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3Qg XCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9 Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0k PworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1m IGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYm IHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNv bmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXll cyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19M aWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisr ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGli J30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsg fQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIk YXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09T VF9USFJFQURfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UK KysgIGxpbmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAi eCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkK KysJCQlmaQorKworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0 aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMg YXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9pb3N0cmVhbXMr c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJl YW0uaHBwPgorKwkJCQkJCQkJCQkJCSAjaW5jbHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFu Z2UuaHBwPgorKworK2ludAorK21haW4gKCkKKyt7Cisrc3RkOjpzdHJpbmcgIGlucHV0ID0gIkhl bGxvIFdvcmxkISI7CisrCQkJCQkJCQkJIG5hbWVzcGFjZSBpbyA9IGJvb3N0Ojppb3N0cmVhbXM7 CisrCQkJCQkJCQkJIGlvOjpmaWx0ZXJpbmdfaXN0cmVhbSAgaW4oYm9vc3Q6Om1ha2VfaXRlcmF0 b3JfcmFuZ2UoaW5wdXQpKTsKKysJCQkJCQkJCQkgcmV0dXJuIDA7CisrCisrICA7CisrICByZXR1 cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFj X3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29t cGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNh dCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAi JGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAg ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0 X2lvc3RyZWFtcz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4 X2N2X2Jvb3N0X2lvc3RyZWFtcz1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKyth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQor KworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jv b3N0X2lvc3RyZWFtcyIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9pb3N0cmVhbXMiID4m NjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVzIjsgdGhl bgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX0lP U1RSRUFNUyAvKiovCisrX0FDRU9GCisrCisrCQkJCUJOPWJvb3N0X2lvc3RyZWFtcworKwkJCQlm b3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0Mt cyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJ CSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFz X3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBp biAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJc JHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1s JGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29u ZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsK KysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIK KytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9 bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19s aWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30K KysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQor K2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNf dmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9J T1NUUkVBTVNfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UK KysgIGxpbmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAi eCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkK KysJCQlmaQorKworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0 aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGli cmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3Nl cmlhbGl6YXRpb24rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8ZnN0cmVhbT4KKysJCQkJCQkJ CQkJCQkgI2luY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9vYXJjaGl2ZS5ocHA+CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxib29z dC9hcmNoaXZlL3RleHRfaWFyY2hpdmUuaHBwPgorKworK2ludAorK21haW4gKCkKKyt7Cisrc3Rk OjpvZnN0cmVhbSBvZnMoImZpbGVuYW1lIik7CisrCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRl eHRfb2FyY2hpdmUgb2Eob2ZzKTsKKysJCQkJCQkJCQkgcmV0dXJuIDA7CisrCisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsg KGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNf Y29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysg IGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jv b3N0X3NlcmlhbGl6YXRpb249eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKwlheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNf ZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29z dF9zZXJpYWxpemF0aW9uIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3Nlcmlh bGl6YXRpb24iID0gInh5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YK KysjZGVmaW5lIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiAvKiovCisrX0FDRU9GCisrCisrCQkJ CUJOPWJvb3N0X3NlcmlhbGl6YXRpb24KKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAk Qk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1z IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAk Qk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMg JEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0k Qk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAi YWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFz X3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNr X2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQor K3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3Ry eT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytl c2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n IiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsg dGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0 ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25m dGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVz PWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AK KysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4m NQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyck YXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNf dmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xp YiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua190aHJlYWQ9Im5vIgor K2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgorKwkJCQlm b3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0Mt cyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJ CSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFz X3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBp biAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJc JHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1s JGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29u ZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsK KysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIK KytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9 bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19s aWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30K KysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQor K2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNf dmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9X U0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisr ZWxzZQorKyAgbGlua190aHJlYWQ9Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0 ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJ CQlmaQorKwkJCWZpCisrCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlz IGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rfc2lnbmFscytz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKyth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9zaWduYWwuaHBwPgorKworK2ludAorK21h aW4gKCkKKyt7CisrYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNh YworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9zaWduYWxz PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3Rf c2lnbmFscz1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NpZ25hbHMi ID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY2OyB9CisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZk ZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX1NJR05BTFMgLyoqLworK19BQ0VP RgorKworKwkJCQlCTj1ib29zdF9zaWduYWxzCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0k Q0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0Mt bXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1t Z3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1t dC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0Mt bXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2Vj aG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYg eyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0 IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19j aGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YK KytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21haW4g KCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G Cisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChh Y190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsi KSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29u ZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19j eHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBp bGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAg IH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3JtIC1yZiBj b25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQg Y29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2Fj X3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFs IidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVz IiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192YWw9 JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4 JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIi ICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytm aQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsg dGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFn YWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RGF0ZV9UaW1l IGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHtheF9jdl9ib29zdF9kYXRlX3RpbWUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysK KysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVk ZSA8Ym9vc3QvZGF0ZV90aW1lL2dyZWdvcmlhbi9ncmVnb3JpYW5fdHlwZXMuaHBwPgorKworK2lu dAorK21haW4gKCkKKyt7CisrdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUg ZCgyMDAyLEphbiwxMCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzCisrZWxzZQorKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9kYXRlX3RpbWU9bm8KKytmaQorKwor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9kYXRlX3RpbWUiID4mNQorKyRhc19lY2hvICIk YXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0 X2RhdGVfdGltZSIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VP RgorKyNkZWZpbmUgSEFWRV9CT09TVF9EQVRFX1RJTUUgLyoqLworK19BQ0VPRgorKworKwkJCQlC Tj1ib29zdF9kYXRlX3RpbWUKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJEND LW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3 LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1n dy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3Zf bGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0k YXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9z YXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKyty ZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFj X2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisr ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRl c3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIg PiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgor KyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFs ICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRh c19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNf TGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9 IHgiInllczsgdGhlbgorKyAgQk9PU1RfREFURV9USU1FX0xJQj0iLWwkYXhfbGliIiAgbGlua190 aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysg IAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiPSJubyIgPSAieG5vIjsgdGhl bgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWlu c3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFy eSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJv b3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YXhfY3ZfYm9vc3RfcmVnZXgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvcmVnZXgu aHBwPgorKworK2ludAorK21haW4gKCkKKyt7CisrYm9vc3Q6OnJlZ2V4IHIoKTsgcmV0dXJuIDA7 CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgor KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysg IChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25m dGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg eworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4K KysgIGF4X2N2X2Jvb3N0X3JlZ2V4PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysJYXhfY3ZfYm9vc3RfcmVnZXg9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9 Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh eF9jdl9ib29zdF9yZWdleCIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9yZWdleCIgPiY2 OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4KKysK KytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9SRUdFWCAv KiovCisrX0FDRU9GCisrCisrCQkJCUJOPWJvb3N0X3JlZ2V4CisrCQkJCWZvciBheF9saWIgaW4g JEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxp YiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRD Qy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xp Yj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2 OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0 fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElC UyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8K KytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2lu dAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9 CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK KytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisr ICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3Qg LXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisr ICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0 CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKwor K3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMK KytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hv ICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFs ICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBp ZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX1JFR0VYX0xJQj0iLWwk YXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0i bm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0g InhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90 IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVu aXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBh dmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9m cmFtZXdvcmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycK KythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3Qu aHBwPgorK2ludAorK21haW4gKCkKKyt7CisrdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9z dWl0ZTsKKysJCQkJCSAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVT VF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAwOworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29z dF91bml0X3Rlc3RfZnJhbWV3b3JrPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysJYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1ubworK2ZpCisrCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKyth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQorKyRhc19l Y2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9CisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA9ICJ4eWVzIjsgdGhlbgorKwor K2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUksgLyoqLworK19BQ0VPRgorKworKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFt ZXdvcmsKKysgICAgCQlzYXZlZF9sZGZsYWdzPSIke0xERkxBR1N9IgorKwkJCWZvciBheF9saWIg aW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrICAg ICAgICAgICAgICAgIExERkxBR1M9IiR7TERGTEFHU30gLWwkYXhfbGliIgorKyAgICAJCQl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpV bml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB0aGUg bmFtZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19l eHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKKysKKysgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+CisraW50 CisrbWFpbiAoKQorK3sKKyt1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNU X1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7CisrICA7CisrICByZXR1 cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRh Y19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRl c3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK KysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkg dGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3Qk YWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGxpbmtfdGhyZWFkPSJ5ZXMiCisrZWxzZQor KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlsaW5rX3RocmVhZD0ibm8iCisrZmkKKysK KytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3Qk YWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfdW5p dF90ZXN0X2ZyYW1ld29yayIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF91bml0X3Rlc3Rf ZnJhbWV3b3JrIiA+JjY7IH0KKysgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtzYXZlZF9sZGZs YWdzfSIKKysJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieHllcyI7IHRoZW4KKysg ICAgICAgICAgICAgICAgICAgIEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCPSItbCRheF9s aWIiCisrCisrCQkJCQlicmVhaworKwkJCQlmaQorKyAgICAgICAgICAgICAgZG9uZQorKwkJCSAg ICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCSAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4m Njt9CisrCQkJCWZpCisrCQkJZmkKKysJCWZpCisrICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdT X1NBVkVEIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCisrCWZpCisrCisrCisr CisrCisrCisrCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFj a2VuZCAoQyBjbGllbnQgQVBJKTogaHR0cDovL3d3dy5teXNxbC5vcmcKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtbXlzcWwgd2FzIGdpdmVuLgorK2lm IHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJs ZXZhbD0kZW5hYmxlX2JhY2tlbmRfbXlzcWw7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9teXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVu YWJsZV9iYWNrZW5kX215c3FsPXllcworKyAgICAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9iYWNr ZW5kX215c3FsPW5vCisrCisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215 c3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE1ZU1FMX0RJUlM9Im15c3FsIgorKyAgIE1ZU1FMX1JF UV9WRVJTSU9OPSIzLjAuMCIKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsIHdh cyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdp dGh2YWw9JHdpdGhfbXlzcWw7CisrCU1ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlzcWwvaW5jbHVk ZSIKKysgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KKysgICAgICAgICAg ICB3YW50X215c3FsPSJubyIKKysgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7 IHRoZW4KKysgICAgICAgICAgICB3YW50X215c3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAg ICAgICAgICAgd2FudF9teXNxbD0ieWVzIgorKyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0iJHdp dGh2YWwiCisrICAgICAgICBmaQorKworK2Vsc2UKKysgIHdhbnRfbXlzcWw9InllcyIKKysJTVlT UUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0IgorKworK2ZpCisrCisr CisrICAgIE1ZU1FMX0NGTEFHUz0iIgorKyAgICBNWVNRTF9MREZMQUdTPSIiCisrICAgIE1ZU1FM X1ZFUlNJT049IiIKKysKKysKKysgICAgaWYgdGVzdCAiJHdhbnRfbXlzcWwiID0gInllcyI7IHRo ZW4KKysKKysgICAgICAgIGlmIHRlc3QgLXogIiRNWVNRTF9DT05GSUciIC1vIHRlc3Q7IHRoZW4K KysgICAgICAgICAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm15c3FsX2NvbmZpZyIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IG15c3Fs X2NvbmZpZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9NWVNRTF9DT05GSUcrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAk TVlTUUxfQ09ORklHIGluCisrICBbXFwvXSogfCA/OltcXC9dKikKKysgIGFjX2N2X3BhdGhfTVlT UUxfQ09ORklHPSIkTVlTUUxfQ09ORklHIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dCB3aXRoIGEgcGF0aC4KKysgIDs7CisrICAqKQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZl X0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wYXRoX01ZU1FMX0NPTkZJRz0i JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIDs7CisrZXNh YworK2ZpCisrTVlTUUxfQ09ORklHPSRhY19jdl9wYXRoX01ZU1FMX0NPTkZJRworK2lmIHRlc3Qg LW4gIiRNWVNRTF9DT05GSUciOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkTVlTUUxfQ09ORklHIiA+JjUKKyskYXNfZWNobyAiJE1ZU1FMX0NPTkZJRyIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgICAgIGZpCisrCisrICAg ICAgICAgICAgICAgIGlmIHRlc3QgISAteCAiJE1ZU1FMX0NPTkZJRyI7IHRoZW4KKysgICAgICAg ICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJE1ZU1FMX0NPTkZJRyBk b2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogJE1ZU1FMX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBp cyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQorKyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0ibm8iCisrICAgICAgICAgICAgZm91bmRf bXlzcWw9Im5vIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRNWVNRTF9DT05G SUciICE9ICJubyI7IHRoZW4KKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBMb29rIGZv ciBNeVNRTCBDIEFQSSBoZWFkZXJzCisrICAgICAgICAgICAgIworKyAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3Rv cnkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9y eS4uLiAiID4mNjsgfQorKyAgICAgICAgICAgIE1ZU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBm b3IgbXlzcWxfaW5jX2RpciBpbiAkTVlTUUxfaW5jX2NoZWNrCisrICAgICAgICAgICAgZG8KKysg ICAgICAgICAgICAgICAgaWYgdGVzdCAtZCAiJG15c3FsX2luY19kaXIiIFwKKysgICAgICAgICAg ICAgICAgJiYgdGVzdCAtZiAiJG15c3FsX2luY19kaXIvbXlzcWwvbXlzcWwuaCIKKysgICAgICAg ICAgICAgICAgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgTVlTUUxfaW5jZGlyPSRteXNxbF9p bmNfZGlyCisrICAgICAgICAgICAgICAgICAgICBicmVhaworKyAgICAgICAgICAgICAgICBmaQor KyAgICAgICAgICAgIGRvbmUKKysKKysgICAgICAgICAgICBpZiB0ZXN0IC16ICIkTVlTUUxfaW5j ZGlyIgorKyAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAgeyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBNeVNRTCBpbmNsdWRlIGRpciBp biAnJE1ZU1FMX2luY19jaGVjayciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBEaWRu J3QgZmluZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICAgICAgICAgIGZpCisrCisrICAg ICAgICAgICAgY2FzZSAiJE1ZU1FMX2luY2RpciIgaW4KKysgICAgICAgICAgICAgICAgLyogKSA7 OworKyAgICAgICAgICAgICAgICAqICkgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBUaGUgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUg YW4gYWJzb2x1dGUgcGF0aC4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgTXlT UUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUg cGF0aC4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrICAgICAgICAg ICAgZXNhYworKworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRNWVNRTF9pbmNkaXIiID4mNQorKyRhc19lY2hvICIkTVlTUUxfaW5jZGlyIiA+JjY7IH0K KysKKysgICAgICAgICAgICBpZiB0ZXN0ICIkTVlTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUi OyB0aGVuCisrICAgICAgICAgICAgICBNWVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAgICBlbHNl CisrICAgICAgICAgICAgICBNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgorKyAgICAg ICAgICAgIGZpCisrCisrICAgICAgICAgICAgTVlTUUxfTERGTEFHUz0iYCRNWVNRTF9DT05GSUcg LS1saWJzYCIKKysKKysgICAgICAgICAgICBNWVNRTF9WRVJTSU9OPWAkTVlTUUxfQ09ORklHIC0t dmVyc2lvbmAKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFW RV9NWVNRTCAxCisrX0FDRU9GCisrCisrCisrICAgICAgICAgICAgZm91bmRfbXlzcWw9InllcyIK KysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBmb3VuZF9teXNxbD0ibm8iCisrICAgICAgICBm aQorKyAgICBmaQorKworKworKworKyAgICBteXNxbF92ZXJzaW9uX3JlcT0kTVlTUUxfUkVRX1ZF UlNJT04KKysKKysgICAgaWYgdGVzdCAiJGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlz cWxfdmVyc2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgaWYgTXlTUUwgdmVyc2lvbiBpcyA+PSAkbXlzcWxfdmVyc2lvbl9yZXEi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIE15U1FMIHZlcnNpb24gaXMgPj0gJG15c3Fs X3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9CisrCisrICAgICAgICAgICAgICAgICAgICAgICAgbXlz cWxfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0q XCknYAorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNp b25fcmVxIDogJ1swLTldKlwuXChbMC05XSpcKSdgCisrICAgICAgICBteXNxbF92ZXJzaW9uX3Jl cV9taWNybz1gZXhwciAkbXlzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAt OV0qXCknYAorKyAgICAgICAgaWYgdGVzdCAieCRteXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAi eCI7IHRoZW4KKysgICAgICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKKysgICAg ICAgIGZpCisrCisrICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJG15c3Fs X3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fcmVxX21pY3Jv YAorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG15c3FsX3ZlcnNpb25fbWFqb3I9YGV4cHIg JE1ZU1FMX1ZFUlNJT04gOiAnXChbMC05XSpcKSdgCisrICAgICAgICBteXNxbF92ZXJzaW9uX21p bm9yPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1swLTldKlwuXChbMC05XSpcKSdgCisrICAgICAg ICBteXNxbF92ZXJzaW9uX21pY3JvPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1swLTldKlwuWzAt OV0qXC5cKFswLTldKlwpJ2AKKysgICAgICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9taWNy byIgPSAieCI7IHRoZW4KKysgICAgICAgICAgICBteXNxbF92ZXJzaW9uX21pY3JvPSIwIgorKyAg ICAgICAgZmkKKysKKysgICAgICAgIG15c3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRteXNxbF92 ZXJzaW9uX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXCsgJG15c3FsX3ZlcnNpb25fbWlub3IgXCogMTAwMCBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcKyAkbXlzcWxfdmVyc2lvbl9taWNyb2AKKysKKysgICAgICAg IG15c3FsX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG15c3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJG15 c3FsX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAgIGlmIHRlc3QgIiRteXNxbF92ZXJzaW9u X2NoZWNrIiA9ICIxIjsgdGhlbgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrICAgICAgICBl bHNlCisrICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICBmaQorKyAgICBmaQorKworKwor KworKworKworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsg dGhlbgorKyAgSEFWRV9NWVNRTF9UUlVFPQorKyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKKytlbHNl CisrICBIQVZFX01ZU1FMX1RSVUU9JyMnCisrICBIQVZFX01ZU1FMX0ZBTFNFPQorK2ZpCisrCisr I01ZU1FMX0RJUlM9Im15c3FsIgorKworKworKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9y dCBmb3IgT3JhY2xlIGJhY2tlbmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgLS1l bmFibGUtYmFja2VuZC1vcmFjbGUgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tl bmRfb3JhY2xlK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5k X29yYWNsZTsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJs ZV9iYWNrZW5kX29yYWNsZT1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX29yYWNs ZT15ZXMKKysgICAgICBmaQorK2Vsc2UKKysgICBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KKysK KytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsg dGhlbgorKyAgIE9SQUNMRV9ESVJTPSJvcmFjbGUiCisrICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lP Tj0iOS4wIgorKworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtb3JhY2xlIHdhcyBnaXZl bi4KKytpZiB0ZXN0ICIke3dpdGhfb3JhY2xlK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFs PSR3aXRoX29yYWNsZTsKKysgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVu CisrICAgICAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgorKyAgICAgICAg ICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKKysgICAgICAgICAgICBlbHNl CisrICAgICAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgorKyAgICAgICAgICAgIGZpCisr ICAgICAgICBmaQorKworK2Vsc2UKKysKKysgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9N RSI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKKysg ICAgICAgIGVsc2UKKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgIGZp CisrCisrCisrZmkKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZS1pbmNs dWRlIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2luY2x1ZGUrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9ob21lX2lu Y2x1ZGVfZGlyPSIkd2l0aHZhbCIKKytlbHNlCisrICBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0i IgorKworK2ZpCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGliIHdhcyBn aXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhlbgorKyAg d2l0aHZhbD0kd2l0aF9vcmFjbGVfbGliOyBvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCIK KytlbHNlCisrICBvcmFjbGVfaG9tZV9saWJfZGlyPSIiCisrCisrZmkKKysKKysKKysgICAgT1JB Q0xFX09DSV9DRkxBR1M9IiIKKysgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIiCisrICAgIE9SQUNM RV9PQ0lfVkVSU0lPTj0iIgorKworKyAgICAgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9f cGF0aD0ibm8iCisrCisrICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCisr CisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xl X2hvbWVfZGlyIiAhPSAieWVzIjsgdGhlbgorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9y YWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9wdWJsaWMiCisrCisrICAg ICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rp ci9yZGJtcy9kZW1vIgorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9saWJfZGly PSIkb3JhY2xlX2hvbWVfZGlyL2xpYiIKKysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21l X2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRo PSJ5ZXMiCisrICAgICAgICBmaQorKworKyAgICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9p bmNsdWRlX2RpciIgLW8gLW4gIiRvcmFjbGVfaG9tZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAg ICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xl X2hvbWVfaW5jbHVkZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2lu Y2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiCisrICAgICAgICBlbGlmIHRlc3Qg IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdh bnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYg dGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9saWJf ZGlyIiAhPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xl X2hvbWVfbGliX2RpciIKKysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIi ID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVz IgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1 dF9ub19wYXRoIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogT3JhY2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUg cGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVkLiBcCisrUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVj dG9yaWVzIHVzaW5nIC0td2l0aC1vcmFjbGUgb3IgXAorKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBh bmQgLS13aXRoLW9yYWNsZS1saWIgb3B0aW9ucy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhh dmUgYmVlbiBwcm92aWRlZC4gXAorK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1 c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKKystLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0 aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+JjI7fQorKyAgICBmaQorKworKyAgICAgICAgICAgICAg ICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGly IjsgdGhlbgorKworKyAgICAgICAgc2F2ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgICAg IENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAg ICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAg ICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAg ICBmaQorKworKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4z Mi4KKysgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAgICAgICAqbWluZ3czMiogKSBX SU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKKysgICAg ICAgICAgICAqKSBXSU4zMj1ubyA7OworKyAgICAgICAgZXNhYworKworKyAgICAgICAgaWYgdGVz dCAiJFdJTjMyIiA9ICJubyIKKysgICAgICAgIHRoZW4KKysgICAgICAgICAgICBvY2lfbGlicz0i LWxjbG50c2ggLWxubnoxMSIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBvY2lfbGlicz0i LWxvY2kiCisrICAgICAgICBmaQorKworKyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1Mi CisrICAgICAgICBzYXZlZF9MSUJTPSIkTElCUyIKKysgICAgICAgIG9jaV9sZGZsYWdzPSItTCRv cmFjbGVfbGliX2RpciIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIK KysgICAgICAgIExJQlM9IiRMSUJTICRvY2lfbGlicyIKKysKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgT3Jh Y2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXIiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpci4u LiAiID4mNjsgfQorKworKyAgICAgICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysKKysgICAgICAgICAgICAvKiBjb25mZGVmcy5oLiAg Ki8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNs dWRlIDxvY2kuaD4KKytpbnQKKyttYWluICgpCisreworKworKyNpZiBkZWZpbmVkKE9DSV9NQUpP Ul9WRVJTSU9OKQorKyNpZiBPQ0lfTUFKT1JfVkVSU0lPTiA9PSAxMCAmJiBPQ0lfTUlOT1JfVkVS U0lPTiA9PSAyCisrLy8gT3JhY2xlIDEwLjIgZGV0ZWN0ZWQKKysjZW5kaWYKKysjZWxpZiBkZWZp bmVkKE9DSV9WN19TWU5UQVgpCisrLy8gT0ssIG9sZGVyIE9yYWNsZSBkZXRlY3RlZAorKy8vIFRP RE8gLSBtbG9za290OiBmaW5kIGJldHRlciBtYWNybyB0byBjaGVjayBmb3Igb2xkZXIgdmVyc2lv bnM7CisrI2Vsc2UKKysjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAorKyNl bmRpZgorKworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCisrCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9Ii1JJG9yYWNsZV9p bmNsdWRlX2RpciIKKysKKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVf ZGlyMiI7IHRoZW4KKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiRPUkFDTEVf T0NJX0NGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgorKyAgICAgICAgICAgIGZpCisrCisr ICAgICAgICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2 OyB9CisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKyAgICAgICAg ICAgIG9jaV9oZWFkZXJfZm91bmQ9Im5vIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vdCBmb3VuZCIgPiY1CisrJGFzX2VjaG8gIm5vdCBmb3VuZCIg PiY2OyB9CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91 bmQiID0gInllcyI7IHRoZW4KKysKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2Rp ciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGlu ICRvcmFjbGVfbGliX2Rpci4uLiAiID4mNjsgfQorKworKyAgICAgICAgICAgIGFjX2V4dD1jcHAK KythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQorKworKyAgICAgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKworKyAg ICAgICAgICAgICAgICAvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxvY2kuaD4KKytpbnQKKyttYWluICgp CisreworKworK09DSUVudiogZW52aCA9IDA7CisrT0NJRW52Q3JlYXRlKCZlbnZoLCBPQ0lfREVG QVVMVCwgMCwgMCwgMCwgMCwgMCwgMCk7CisraWYgKGVudmgpIE9DSUhhbmRsZUZyZWUoZW52aCwg T0NJX0hUWVBFX0VOVik7CisrCisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisr cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190 cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGlu ZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07 IHRoZW4KKysKKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxh Z3MgJG9jaV9saWJzIgorKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCisrICAg ICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1 CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQorKworKworKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJubyIKKysgICAgICAg ICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm90IGZvdW5kIiA+ JjUKKyskYXNfZWNobyAibm90IGZvdW5kIiA+JjY7IH0KKysKKysKKytmaQorKworK3JtIC1yZiBj b25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQg Y29uZnRlc3QuJGFjX2V4dAorKyAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKyAgICAgICAg ZmkKKysKKysgICAgICAgIENQUEZMQUdTPSIkc2F2ZWRfQ1BQRkxBR1MiCisrICAgICAgICBMREZM QUdTPSIkc2F2ZWRfTERGTEFHUyIKKysgICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgorKyAgICBm aQorKworKyAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXE9JE9SQUNMRV9PQ0lfUkVR X1ZFUlNJT04KKysKKysgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEg IiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwKKysgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNp b25fcmVxIjsgdGhlbgorKworKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3Jh Y2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg Z3JlcCAnI2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwv Ly8nYAorKworKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1 ZGVfZGlyL29jaS5oIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2Rl ZmluZS4qT0NJX01JTk9SX1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKwor KyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE9yYWNsZSBP Q0kgdmVyc2lvbiBpcyA+PSAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcS4u LiAiID4mNjsgfQorKworKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9y IiAtYSAtbiAkIm9yYWNsZV92ZXJzaW9uX21pbm9yIjsgdGhlbgorKworKyAgICAgICAgICAgIE9S QUNMRV9PQ0lfVkVSU0lPTj0iJG9yYWNsZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9t aW5vciIKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVy c2lvbl9yZXFfbWFqb3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AK KysgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92ZXJz aW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92 ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAw MDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xl X3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgICAgICAgICAgICAg b3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAw MDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJz aW9uX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9 YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVt YmVyYAorKyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7 IHRoZW4KKysgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysKKytjYXQgPj5jb25mZGVmcy5o IDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9PUkFDTEUgMQorK19BQ0VPRgorKworKyAgICAgICAg ICAgIGVsc2UKKysgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICAgICAgICAgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVS U0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IE9yYWNsZSAkT1JBQ0xFX09DSV9WRVJTSU9O IGZvdW5kLCBidXQgcmVxdWlyZWQgdmVyc2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICAgICAgICAgIGZpCisrICAgICAg ICBlbHNlCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgorKyAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiBPcmFjbGUgdmVyc2lvbiB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhh biAxMC4yIGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogT3Jh Y2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFp bGFibGUiID4mMjt9CisrICAgICAgICBmaQorKyAgICBmaQorKworKworKworKworKworK2ZpCisr IGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVf T1JBQ0xFX1RSVUU9CisrICBIQVZFX09SQUNMRV9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX09S QUNMRV9UUlVFPScjJworKyAgSEFWRV9PUkFDTEVfRkFMU0U9CisrZmkKKysKKysjT1JBQ0xFX0RJ UlM9Im9yYWNsZSIKKysKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3Rn cmVTUUwgYmFja2VuZAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1i YWNrZW5kLXBvc3RncmVzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRf cG9zdGdyZXNxbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2Vu ZF9wb3N0Z3Jlc3FsOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkg ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNr ZW5kX3Bvc3RncmVzcWw9eWVzCisrICAgICAgZmkKKytlbHNlCisrICAgZW5hYmxlX2JhY2tlbmRf cG9zdGdyZXNxbD1ubworKworK2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9w b3N0Z3Jlc3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIFBPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNx bCIKKysgICBQT1NUR1JFU1FMX1JFUV9WRVJTSU9OPSI3LjEuNCIKKysKKysKKysjIENoZWNrIHdo ZXRoZXIgLS13aXRoLXBvc3RncmVzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9wb3N0 Z3Jlc3FsK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX3Bvc3RncmVzcWw7Cisr CVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCisrICAgICAg ICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0 Z3Jlc3FsPSJubyIKKysgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4K KysgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAg ICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgICAgICBQR19DT05GSUc9IiR3 aXRodmFsIgorKyAgICAgICAgZmkKKysKKytlbHNlCisrICB3YW50X3Bvc3RncmVzcWw9InllcyIK KysJUE9TVEdSRVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiCisr CisrZmkKKysKKysKKysgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgUE9TVEdSRVNRTF9M REZMQUdTPSIiCisrICAgIFBPU1RHUkVTUUxfUE9TVEdSRVNRTD0iIgorKworKworKyAgICBpZiB0 ZXN0ICIkd2FudF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0 IC16ICIkUEdfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCisrICAgICAgICAgICAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICJwZ19jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSBwZ19jb25maWc7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Bh dGhfUEdfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGNhc2UgJFBHX0NPTkZJRyBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSop CisrICBhY19jdl9wYXRoX1BHX0NPTkZJRz0iJFBHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyAgKikKKysgIGFzX3NhdmVfSUZT PSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysg IElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlm IHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcGF0aF9Q R19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ICA7OworK2VzYWMKKytmaQorK1BHX0NPTkZJRz0kYWNfY3ZfcGF0aF9QR19DT05GSUcKKytpZiB0 ZXN0IC1uICIkUEdfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJFBHX0NPTkZJRyIgPiY1CisrJGFzX2VjaG8gIiRQR19DT05GSUciID4mNjsgfQor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKysk YXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgICAgICBmaQorKworKyAgICAgICAg aWYgdGVzdCAhIC14ICIkUEdfQ09ORklHIjsgdGhlbgorKyAgICAgICAgICAgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0 IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiAkUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZp bGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgICAgICAgICAgUEdf Q09ORklHPSJubyIKKysgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKKysgICAgICAg IGZpCisrCisrICAgICAgICBpZiB0ZXN0ICIkUEdfQ09ORklHIiAhPSAibm8iOyB0aGVuCisrICAg ICAgICAgICAgIworKyAgICAgICAgICAgICMgTG9vayBmb3IgUG9zdGdyZXNxbCBDIEFQSSBoZWFk ZXJzCisrICAgICAgICAgICAgIworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+ JjY7IH0KKysgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBmb3Ig cG9zdGdyZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjaworKyAgICAgICAgICAg IGRvCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwK KysgICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jl c19leHQuaCIKKysgICAgICAgICAgICAgICAgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgUE9T VEdSRVNRTF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAg YnJlYWsKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAg ICAgICAgaWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgorKyAgICAgICAgICAgIHRoZW4K KysgICAgICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERp ZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNf Y2hlY2snIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIFBv c3RncmVzcWwgaW5jbHVkZSBkaXIgaW4gJyRQT1NUR1JFU1FMX2luY19jaGVjayciID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgICAgICAgICAgZmkKKysKKysgICAgICAg ICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCisrICAgICAgICAgICAgICAgIC8qICkg OzsKKysgICAgICAgICAgICAgICAgKiApICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogVGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkgKCRQT1NUR1JFU1FMX2luY2Rp cikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IFRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIp IG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9IDs7CisrICAgICAgICAgICAgZXNhYworKworKyAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQT1NUR1JFU1FMX2luY2RpciIgPiY1CisrJGFzX2Vj aG8gIiRQT1NUR1JFU1FMX2luY2RpciIgPiY2OyB9CisrCisrICAgICAgICAgICAgaWYgdGVzdCAi JFBPU1RHUkVTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCisrICAgICAgICAgICAg ICBQT1NUR1JFU1FMX0NGTEFHUz0iIgorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAg IFBPU1RHUkVTUUxfQ0ZMQUdTPSItSSR7UE9TVEdSRVNRTF9pbmNkaXJ9IgorKyAgICAgICAgICAg IGZpCisrCisrICAgICAgICAgICAgUE9TVEdSRVNRTF9MREZMQUdTPSItTGAkUEdfQ09ORklHIC0t bGliZGlyYCAtbHBxIgorKworKyAgICAgICAgICAgIFBPU1RHUkVTUUxfVkVSU0lPTj1gJFBHX0NP TkZJRyAtLXZlcnNpb24gfCBzZWQgLWUgJ3MjUG9zdGdyZVNRTCAjIydgCisrCisrCisrY2F0ID4+ Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfUE9TVEdSRVNRTCAxCisrX0FDRU9G CisrCisrCisrICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgorKyAgICAgICAgZWxz ZQorKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysgICAg ZmkKKysKKysKKysKKysgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcT0kUE9TVEdSRVNRTF9SRVFf VkVSU0lPTgorKworKyAgICBpZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAt biAiJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBQb3N0 Z3JlU1FMIHZlcnNpb24gaXMgPj0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0K KysKKysgICAgICAgICAgICAgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9y PWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAorKyAgICAgICAg cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cV9taWNybz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwu XChbMC05XSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFf bWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9t aWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVx X251bWJlcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm9gCisrCisrICAgICAgICAgICAgICAg ICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21ham9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJ T04gOiAnXChbMC05XSpcKSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4 cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAg cG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAt OV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3Fs X3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJz aW9uX21pY3JvPSIwIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lv bl9udW1iZXI9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25f bWlub3IgXCogMTAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAk cG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvYAorKworKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9u X2NoZWNrPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxf dmVyc2lvbl9yZXFfbnVtYmVyYAorKyAgICAgICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lv bl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgICAgICAg ZWxzZQorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysK KysKKysKKysKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0g eHllczsgdGhlbgorKyAgSEFWRV9QT1NUR1JFU1FMX1RSVUU9CisrICBIQVZFX1BPU1RHUkVTUUxf RkFMU0U9JyMnCisrZWxzZQorKyAgSEFWRV9QT1NUR1JFU1FMX1RSVUU9JyMnCisrICBIQVZFX1BP U1RHUkVTUUxfRkFMU0U9CisrZmkKKysKKysjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgor KworKworKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgZG9jdW1lbnRhdGlvbgor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgQ2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCisr I0FDX0NIRUNLX1BST0coW3RleGluZm9fb2tdLCBbdGV4aW5mb10sIFt5ZXNdLCBbbm9dKQorKyNp ZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5vOyB0aGVuCisrIyAgdGVzdCAieCR0ZXhp bmZvX29rIiAhPSB4eWVzICYmIGVuYWJsZV9pbmZvX2RvYz1ubworKyMgIEFDX1BBVEhfUFJPRyhb UEVSTF0sIFtwZXJsXSwgW10pCisrI2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9 IHh5ZXM7IHRoZW4KKysgIElORk9fRE9DX1RSVUU9CisrICBJTkZPX0RPQ19GQUxTRT0nIycKKytl bHNlCisrICBJTkZPX0RPQ19UUlVFPScjJworKyAgSU5GT19ET0NfRkFMU0U9CisrZmkKKysKKysK KysjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scworKyMgRXh0cmFjdCB0aGUg Zmlyc3Qgd29yZCBvZiAiZG94eWdlbiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCisrc2V0IGR1bW15IGRveHlnZW47IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZG94 eWdlbl9vaytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBpZiB0ZXN0IC1uICIkZG94eWdlbl9vayI7IHRoZW4KKysgIGFjX2N2X3Byb2df ZG94eWdlbl9vaz0iJGRveHlnZW5fb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCisrICAgIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAg ICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAg dGVzdCAteiAiJGFjX2N2X3Byb2dfZG94eWdlbl9vayIgJiYgYWNfY3ZfcHJvZ19kb3h5Z2VuX29r PSJubyIKKytmaQorK2ZpCisrZG94eWdlbl9vaz0kYWNfY3ZfcHJvZ19kb3h5Z2VuX29rCisraWYg dGVzdCAtbiAiJGRveHlnZW5fb2siOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkZG94eWdlbl9vayIgPiY1CisrJGFzX2VjaG8gIiRkb3h5Z2VuX29rIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAibGF0ZXgiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSBsYXRleDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19sYXRleF9vaytzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2xhdGV4X29rPSIkbGF0 ZXhfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfbGF0ZXhfb2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytk b25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9n X2xhdGV4X29rIiAmJiBhY19jdl9wcm9nX2xhdGV4X29rPSJubyIKKytmaQorK2ZpCisrbGF0ZXhf b2s9JGFjX2N2X3Byb2dfbGF0ZXhfb2sKKytpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGF0ZXhfb2siID4mNQorKyRh c19lY2hvICIkbGF0ZXhfb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr CisrIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkdmlwcyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGR2aXBzOyBhY193b3JkPSQyCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHth Y19jdl9wcm9nX2R2aXBzX29rK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KKysgIGFj X2N2X3Byb2dfZHZpcHNfb2s9IiRkdmlwc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytm b3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19kdmlwc19vaz0ieWVzIgorKyAgICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQor KyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKwor KyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZHZpcHNfb2siICYmIGFjX2N2X3Byb2dfZHZpcHNfb2s9 Im5vIgorK2ZpCisrZmkKKytkdmlwc19vaz0kYWNfY3ZfcHJvZ19kdmlwc19vaworK2lmIHRlc3Qg LW4gIiRkdmlwc19vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRkdmlwc19vayIgPiY1CisrJGFzX2VjaG8gIiRkdmlwc19vayIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrZmkKKysKKysKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdz Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZ3M7 IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRh Y193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZ3Nfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGdzX29rIjsg dGhlbgorKyAgYWNfY3ZfcHJvZ19nc19vaz0iJGdzX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2dzX29rPSJ5ZXMiCisrICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisr CisrICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19nc19vayIgJiYgYWNfY3ZfcHJvZ19nc19vaz0ibm8i CisrZmkKKytmaQorK2dzX29rPSRhY19jdl9wcm9nX2dzX29rCisraWYgdGVzdCAtbiAiJGdzX29r IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGdzX29rIiA+ JjUKKyskYXNfZWNobyAiJGdzX29rIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQor KworKworK2lmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3Qg IngkZG94eWdlbl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngk bGF0ZXhfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBz X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0g eHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAicGVybCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1 bW15IHBlcmw7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEVSTCtzZXR9IiA9IHNldDsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRQRVJMIGlu CisrICBbXFwvXSogfCA/OltcXC9dKikKKysgIGFjX2N2X3BhdGhfUEVSTD0iJFBFUkwiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICopCisr ICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAk UEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAg IGFjX2N2X3BhdGhfUEVSTD0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKysgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9J RlMKKysKKysgIDs7CisrZXNhYworK2ZpCisrUEVSTD0kYWNfY3ZfcGF0aF9QRVJMCisraWYgdGVz dCAtbiAiJFBFUkwiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkUEVSTCIgPiY1CisrJGFzX2VjaG8gIiRQRVJMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXM7 IHRoZW4KKysgIEhUTUxfRE9DX1RSVUU9CisrICBIVE1MX0RPQ19GQUxTRT0nIycKKytlbHNlCisr ICBIVE1MX0RPQ19UUlVFPScjJworKyAgSFRNTF9ET0NfRkFMU0U9CisrZmkKKysKKysKKysKKysj IENoZWNrIGZvciBkaWZmIHByb2dyYW0gdXNlZCBmb3IgdGVzdHMKKysjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgImRpZmYiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgorK3NldCBkdW1teSBkaWZmOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2RpZmZfb2src2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg aWYgdGVzdCAtbiAiJGRpZmZfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2RpZmZfb2s9IiRkaWZm X29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbwor KyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysg IGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAg aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9n X2RpZmZfb2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25l CisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2Rp ZmZfb2siICYmIGFjX2N2X3Byb2dfZGlmZl9vaz0ibm8iCisrZmkKKytmaQorK2RpZmZfb2s9JGFj X2N2X3Byb2dfZGlmZl9vaworK2lmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGRpZmZfb2siID4mNQorKyRhc19lY2hvICIk ZGlmZl9vayIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgInNlZCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCisrc2V0IGR1bW15IHNlZDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19zZWRf b2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAtbiAiJHNlZF9vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfc2VkX29rPSIk c2VkX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwor KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9w cm9nX3NlZF9vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2Rv bmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2df c2VkX29rIiAmJiBhY19jdl9wcm9nX3NlZF9vaz0ibm8iCisrZmkKKytmaQorK3NlZF9vaz0kYWNf Y3ZfcHJvZ19zZWRfb2sKKytpZiB0ZXN0IC1uICIkc2VkX29rIjsgdGhlbgorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJHNlZF9vayIgPiY1CisrJGFzX2VjaG8gIiRzZWRf b2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZW5hYmxlX3Rlc3Rz PXllcworK3Rlc3QgIngkZGlmZl9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKyt0ZXN0 ICJ4JHNlZF9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKysgaWYgdGVzdCAieCRlbmFi bGVfdGVzdHMiID0geHllczsgdGhlbgorKyAgUlVOX1RFU1RTX1RSVUU9CisrICBSVU5fVEVTVFNf RkFMU0U9JyMnCisrZWxzZQorKyAgUlVOX1RFU1RTX1RSVUU9JyMnCisrICBSVU5fVEVTVFNfRkFM U0U9CisrZmkKKysKKysKKysKKysjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzCisrCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUg PHN0ZGFyZy5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8ZmxvYXQuaD4KKysK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVy MQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQor KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkK KysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKysKKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKyAg IyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBB TlNJLgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4g ICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5j bHVkZSA8c3RyaW5nLmg+CisrCisrX0FDRU9GCisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIpIDI+JjUgfAorKyAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhl bgorKyAgOgorK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25m dGVzdCoKKysKKytmaQorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVu CisrICAjIElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5 IHRvIEFOU0kuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVm cy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KyNpbmNsdWRlIDxzdGRsaWIuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsg dGhlbgorKyAgOgorK2Vsc2UKKysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBj b25mdGVzdCoKKysKKytmaQorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0 aGVuCisrICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3Jv cyB1bmxlc3MgdXNpbmcgLWFuc2kuCisrICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll czsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrI2luY2x1ZGUgPGN0eXBlLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNp ZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAyMCkKKysjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0g KGMpICYmIChjKSA8PSAneicpCisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdB JyArICgoYykgLSAnYScpIDogKGMpKQorKyNlbHNlCisrIyBkZWZpbmUgSVNMT1dFUihjKSBcCisr CQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAorKwkJICAgICB8fCAoJ2onIDw9IChj KSAmJiAoYykgPD0gJ3InKSBcCisrCQkgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicp KQorKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykp CisrI2VuZGlmCisrCisrI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkg JiYgKGYpKSkKKytpbnQKKyttYWluICgpCisreworKyAgaW50IGk7CisrICBmb3IgKGkgPSAwOyBp IDwgMjU2OyBpKyspCisrICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKKysJ fHwgdG91cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCisrICAgICAgcmV0dXJuIDI7CisrICByZXR1 cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikg Mj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4v Y29uZnRlc3QkYWNfZXhlZXh0JworKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIk YWNfdHJ5IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRo ZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRo IHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrKCBl eGl0ICRhY19zdGF0dXMgKQorK2FjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtcmYgY29u ZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBi Yi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAorK2ZpCisrCisrCisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJf c3RkYyIgPiY2OyB9CisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysK KytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKKytf QUNFT0YKKysKKytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3 aGV0aGVyIHRpbWUuaCBhbmQgc3lzL3RpbWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJv dGggYmUgaW5jbHVkZWQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl90aW1l K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUg PHN5cy90eXBlcy5oPgorKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorKyNpbmNsdWRlIDx0aW1lLmg+ CisrCisraW50CisrbWFpbiAoKQorK3sKKytpZiAoKHN0cnVjdCB0bSAqKSAwKQorK3JldHVybiAw OworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVu CisrICBhY19jdl9oZWFkZXJfdGltZT15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1CisrCisrCWFjX2N2X2hlYWRlcl90aW1lPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfdGltZSIgPiY1Cisr JGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfdGltZSIgPiY2OyB9CisraWYgdGVzdCAkYWNfY3ZfaGVh ZGVyX3RpbWUgPSB5ZXM7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNk ZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKKytfQUNFT0YKKysKKytmaQorKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworK2ZvciBhY19oZWFkZXIgaW4gY21hdGgg XAorKyAgZGVxdWUgXAorKyAgZnN0cmVhbSBcCisrICBpb21hbmlwIFwKKysgIGlvc3RyZWFtIFwK KysgIHNzdHJlYW0gXAorKyAgbGltaXRzIFwKKysgIGxpc3QgXAorKyAgc2V0IFwKKysgIHZlY3Rv ciBcCisrICBtYXAgXAorKyAgcXVldWUgXAorKyAgc3RkZXhjZXB0IFwKKysgIHN0cmluZworK2Rv CisrYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFz X3RyX3NoYAorK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNf dmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY19oZWFkZXIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFs ICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hl YWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+ JjY7IH0KKytlbHNlCisrICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICIgPiY2OyB9CisrY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyskYWNfaW5jbHVkZXNfZGVm YXVsdAorKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCisrICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQorKworKwlhY19oZWFkZXJfY29tcGlsZXI9bm8KKytmaQorKworK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQor KyRhc19lY2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KKysKKysjIElzIHRoZSBoZWFk ZXIgcHJlc2VudD8KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hl YWRlciBwcmVzZW5jZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVz ZW5jZS4uLiAiID4mNjsgfQorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrI2luY2x1ZGUgPCRhY19oZWFkZXI+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4v ZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19j eHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07 IHRoZW4KKysgIGFjX2hlYWRlcl9wcmVwcm9jPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysKKysgIGFjX2hlYWRlcl9wcmVwcm9jPW5vCisrZmkKKysKKytybSAtZiBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1CisrJGFzX2VjaG8gIiRhY19oZWFkZXJfcHJl cHJvYyIgPiY2OyB9CisrCisrIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CisrY2FzZSAk YWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY3h4X3ByZXByb2Nfd2Fy bl9mbGFnIGluCisrICB5ZXM6bm86ICkKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQg YnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRh Y19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXBy b2Nlc3NvciEiID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H OiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGgg dGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQorKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMK KysgICAgOzsKKysgIG5vOnllczoqICkKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fu bm90IGJlIGNvbXBpbGVkIiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBo ZWFkZXJzPyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAg IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KKysgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0 b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFj X2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQorKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24g XCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3Qg QmUgQ29tcGlsZWRcIiIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVz dWx0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVk aW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRo ZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFr ZSBwcmVjZWRlbmNlIiA+JjI7fQorKyAgICAoIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBSZXBvcnQgdGhpcyB0 byBtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQgIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgICkgfCBzZWQg InMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKKysgICAgOzsKKytlc2FjCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFy PSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgZXZhbCAiJGFz X2FjX0hlYWRlcj1cJGFjX2hlYWRlcl9wcmVwcm9jIgorK2ZpCisrYWNfcmVzPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KKysKKytmaQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRh c19hY19IZWFkZXInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRh c192YWwiID0geCIieWVzOyB0aGVuCisrICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2Rl ZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCisrX0FDRU9G CisrCisrZmkKKysKKytkb25lCisrCisrCisrCisrIyBEZWZpbmUgY29uZmlndXJlZCBmaWxlcwor K2FjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBzb2NpLWNvbmZpZyBz b2NpLnBjIHNvY2kuc3BlYyBzb2NpL01ha2VmaWxlIHNvY2kvY29yZS9NYWtlZmlsZSBzb2NpL2Nv cmUvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlz cWwvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlIHNvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtl ZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L01ha2VmaWxlIG1hbi9NYWtlZmlsZSBkb2MvTWFrZWZpbGUgZG9jL2JhY2tlbmRzL01ha2Vm aWxlIGJ1aWxkL01ha2VmaWxlIGJ1aWxkL3VuaXgvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL01ha2Vm aWxlIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIK KysKKysKKytjYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKKysjIFRoaXMgZmlsZSBpcyBhIHNoZWxs IHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKKysjIHRlc3RzIHJ1 biBvbiB0aGlzIHN5c3RlbSBzbyB0aGV5IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUK KysjIHNjcmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0t Y29uZmlnLWNhY2hlLgorKyMgSXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYg aXQgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3QKKysjIHdhbnQgdG8ga2VlcCwgeW91IG1heSBy ZW1vdmUgb3IgZWRpdCBpdC4KKysjCisrIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRp b24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKKysjIHRoZSAtLXJlY2hlY2sgb3B0 aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4KKysjCisrIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVz IChzZXQgb3IgdW5zZXQpIHdpbGwgYmUgb3ZlcnJpZGRlbiB3aGVuCisrIyBsb2FkaW5nIHRoaXMg ZmlsZSwgb3RoZXIgKnVuc2V0KiBgYWNfY3ZfZm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQorKyMg Zm9sbG93aW5nIHZhbHVlcy4KKysKKytfQUNFT0YKKysKKysjIFRoZSBmb2xsb3dpbmcgd2F5IG9m IHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorKyMgYnV0 IHdlIGtub3cgb2Ygbm8gd29ya2Fyb3VuZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBl ZmZpY2llbnQuCisrIyBTbywgd2Uga2lsbCB2YXJpYWJsZXMgY29udGFpbmluZyBuZXdsaW5lcy4K KysjIFVsdHJpeCBzaCBzZXQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgY2FuJ3QgYmUgcmVkaXJlY3Rl ZCBkaXJlY3RseSwKKysjIGFuZCBzZXRzIHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1 bmxlc3Mgd2UgYXNzaWduIHRvIHRoZSB2YXJzLgorKygKKysgIGZvciBhY192YXIgaW4gYChzZXQp IDI+JjEgfCBzZWQgLW4gJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnYDsg ZG8KKysgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAor KyAgICAqJHthc19ubH0qKQorKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgICpfY3Zf KikgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRh Y192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5H OiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsKKysg ICAgICBlc2FjCisrICAgICAgY2FzZSAkYWNfdmFyIGluICMoCisrICAgICAgXyB8IElGUyB8IGFz X25sKSA7OyAjKAorKyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9 IDs7ICMoCisrICAgICAgKikgJGFzX3Vuc2V0ICRhY192YXIgOzsKKysgICAgICBlc2FjIDs7Cisr ICAgIGVzYWMKKysgIGRvbmUKKysKKysgIChzZXQpIDI+JjEgfAorKyAgICBjYXNlICRhc19ubGAo YWNfc3BhY2U9JyAnOyBzZXQpIDI+JjFgIGluICMoCisrICAgICoke2FzX25sfWFjX3NwYWNlPVwg KikKKysgICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3Rl cyAoZG91YmxlLXF1b3RlCisrICAgICAgIyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxc LCBhbmQgc2VkIHR1cm5zIFxcIGludG8gXCkuCisrICAgICAgc2VkIC1uIFwKKysJInMvJy8nXFxc XCcnL2c7CisrCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwp PVxcKC4qXFwpL1xcMT0nXFwyJy9wIgorKyAgICAgIDs7ICMoCisrICAgICopCisrICAgICAgIyBg c2V0JyBxdW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRk IHF1b3Rlcy4KKysgICAgICBzZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9h bG51bV0qPS9wIgorKyAgICAgIDs7CisrICAgIGVzYWMgfAorKyAgICBzb3J0CisrKSB8CisrICBz ZWQgJworKyAgICAgL15hY19jdl9lbnZfL2IgZW5kCisrICAgICB0IGNsZWFyCisrICAgICA6Y2xl YXIKKysgICAgIHMvXlwoW149XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBz ZXQgfHwgJi8KKysgICAgIHQgZW5kCisrICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wx PVwyfS8KKysgICAgIDplbmQnID4+Y29uZmNhY2hlCisraWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNv bmZjYWNoZSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgaWYgdGVzdCAtdyAiJGNh Y2hlX2ZpbGUiOyB0aGVuCisrICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwi ICYmCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHVwZGF0aW5nIGNhY2hlICRj YWNoZV9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiB1cGRhdGluZyBjYWNoZSAkY2FjaGVf ZmlsZSIgPiY2O30KKysgICAgY2F0IGNvbmZjYWNoZSA+JGNhY2hlX2ZpbGUKKysgIGVsc2UKKysg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNh Y2hlICRjYWNoZV9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53 cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgIGZpCisrZmkKKytybSAtZiBjb25m Y2FjaGUKKysKKyt0ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRf cHJlZml4CisrIyBMZXQgbWFrZSBleHBhbmQgZXhlY19wcmVmaXguCisrdGVzdCAieCRleGVjX3By ZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JworKworK0RFRlM9LURIQVZF X0NPTkZJR19ICisrCisrYWNfbGlib2Jqcz0KKythY19sdGxpYm9ianM9CisrZm9yIGFjX2kgaW4g OiAkTElCT0JKUzsgZG8gdGVzdCAieCRhY19pIiA9IHg6ICYmIGNvbnRpbnVlCisrICAjIDEuIFJl bW92ZSB0aGUgZXh0ZW5zaW9uLCBhbmQgJFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCisrICBhY19z Y3JpcHQ9J3MvXCRVXC4vLi87cy9cLm8kLy87cy9cLm9iaiQvLycKKysgIGFjX2k9YCRhc19lY2hv ICIkYWNfaSIgfCBzZWQgIiRhY19zY3JpcHQiYAorKyAgIyAyLiBQcmVwZW5kIExJQk9CSkRJUi4g IFdoZW4gdXNlZCB3aXRoIGF1dG9tYWtlPj0xLjEwIExJQk9CSkRJUgorKyAgIyAgICB3aWxsIGJl IHNldCB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIExJQk9CSlMgb2JqZWN0cyBhcmUgYnVpbHQuCisr ICBhY19saWJvYmpzPSIkYWNfbGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2lcJFUuJGFjX29iamV4 dCIKKysgIGFjX2x0bGlib2Jqcz0iJGFjX2x0bGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2kiJyRV LmxvJworK2RvbmUKKytMSUJPQkpTPSRhY19saWJvYmpzCisrCisrTFRMSUJPQkpTPSRhY19sdGxp Ym9ianMKKysKKysKKytpZiB0ZXN0IC16ICIke0hBVkVfQ1BQVU5JVF9UUlVFfSIgJiYgdGVzdCAt eiAiJHtIQVZFX0NQUFVOSVRfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRl ZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv bmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwg XCJIQVZFX0NQUFVOSVRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMg dGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke0FNREVQX1RSVUV9IiAm JiB0ZXN0IC16ICIke0FNREVQX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQu CisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlv bmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURF UFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRl c3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMg bmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGlu dm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25k aXRpb25hbCBcImFtX19mYXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0 aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHthbV9f ZmFzdGRlcENDX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhl bgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwi YW1fX2Zhc3RkZXBDQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ1wiIHdhcyBuZXZlciBk ZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBj b25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQor K2lmIHRlc3QgLXogIiR7U09DSV9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtT T0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfSEVBREVSU19CVVJJRURcIiB3YXMg bmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGlu dm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25k aXRpb25hbCBcIlNPQ0lfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIk e1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9NWVNR TF9IRUFERVJTX0JVUklFRF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEXCIg d2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25s eSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y29uZGl0aW9uYWwgXCJTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYg dGVzdCAteiAiJHtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRX0iICYmIHRlc3Qg LXogIiR7U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KKysgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhp cyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX1RSVUV9 IiAmJiB0ZXN0IC16ICIke0hBVkVfTVlTUUxfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9NWVNRTFwiIHdhcyBu ZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52 b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRp dGlvbmFsIFwiSEFWRV9NWVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBt ZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7SEFWRV9PUkFD TEVfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9PUkFDTEVfRkFMU0V9IjsgdGhlbgorKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9PUkFD TEVcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjb25kaXRpb25hbCBcIkhBVkVfT1JBQ0xFXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAi JHtIQVZFX1BPU1RHUkVTUUxfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9QT1NUR1JFU1FMX0ZB TFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25k aXRpb25hbCBcIkhBVkVfUE9TVEdSRVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkg dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FM XCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtJTkZPX0RPQ19UUlVFfSIgJiYgdGVzdCAteiAi JHtJTkZPX0RPQ19GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY29uZGl0aW9uYWwgXCJJTkZPX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1Vz dWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5 LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSU5GT19ET0Nc IiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBv bmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke0hUTUxfRE9DX1RSVUV9IiAmJiB0ZXN0IC16ICIk e0hUTUxfRE9DX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBjb25kaXRpb25hbCBcIkhUTUxfRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIVE1MX0RPQ1wi IHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7UlVOX1RFU1RTX1RSVUV9IiAmJiB0ZXN0IC16ICIk e1JVTl9URVNUU19GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY29uZGl0aW9uYWwgXCJSVU5fVEVTVFNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytV c3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxs eS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlJVTl9URVNU U1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKytmaQorKworKzogJHtDT05GSUdfU1RBVFVTPS4vY29uZmlnLnN0YXR1c30KKyth Y193cml0ZV9mYWlsPTAKKythY19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVhbl9maWxlcworK2Fj X2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgJENPTkZJR19TVEFUVVMiCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY2O30KKytjYXQgPiRDT05GSUdf U1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMhICRTSEVMTAorKyMgR2VuZXJh dGVkIGJ5ICRhc19tZS4KKysjIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQg Y29uZmlndXJhdGlvbi4KKysjIENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUs IHVzZWZ1bCBmb3IgZGVidWdnaW5nCisrIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYg aXQgZXhpc3RzLgorKworK2RlYnVnPWZhbHNlCisrYWNfY3NfcmVjaGVjaz1mYWxzZQorK2FjX2Nz X3NpbGVudD1mYWxzZQorK1NIRUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CisrX0FDRU9GCisr CisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIwor KyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKworKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0 aWJsZQorK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKytpZiB0ZXN0 IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNpb25z IG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisrICAjIGlzIGNv bnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorKyAgYWxpYXMgLWcg JyR7MSsiJEAifSc9JyIkQCInCisrICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Vsc2UKKysgIGNh c2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbgorKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7 CisrZXNhYworKworK2ZpCisrCisrCisrCisrCisrIyBQQVRIIG5lZWRzIENSCisrIyBBdm9pZCBk ZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgorK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6JworK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNU VVZXWFlaJworK2FzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworK2Fz X2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKKythc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19j cl9kaWdpdHMKKysKKythc19ubD0nCisrJworK2V4cG9ydCBhc19ubAorKyMgUHJpbnRpbmcgYSBs b25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMgNyAvdXNyL2Jpbi9wcmludGYuCisrYXNfZWNobz0n XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKKythc19lY2hv PSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKythc19lY2hvPSRhc19l Y2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobworK2lmICh0ZXN0ICJY YHByaW50ZiAlcyAkYXNfZWNob2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCisr ICBhc19lY2hvPSdwcmludGYgJXNcbicKKysgIGFzX2VjaG9fbj0ncHJpbnRmICVzJworK2Vsc2UK KysgIGlmIHRlc3QgIlhgKC91c3IvdWNiL2VjaG8gLW4gLW4gJGFzX2VjaG8pIDI+L2Rldi9udWxs YCIgPSAiWC1uICRhc19lY2hvIjsgdGhlbgorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgL3Vzci91 Y2IvZWNobyAtbiAiJDEkYXNfbmwiJworKyAgICBhc19lY2hvX249Jy91c3IvdWNiL2VjaG8gLW4n CisrICBlbHNlCisrICAgIGFzX2VjaG9fYm9keT0nZXZhbCBleHByICJYJDEiIDogIlhcXCguKlxc KSInCisrICAgIGFzX2VjaG9fbl9ib2R5PSdldmFsCisrICAgICAgYXJnPSQxOworKyAgICAgIGNh c2UgJGFyZyBpbgorKyAgICAgICoiJGFzX25sIiopCisrCWV4cHIgIlgkYXJnIiA6ICJYXFwoLipc XCkkYXNfbmwiOworKwlhcmc9YGV4cHIgIlgkYXJnIiA6ICIuKiRhc19ubFxcKC4qXFwpImA7Owor KyAgICAgIGVzYWM7CisrICAgICAgZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSIgfCB0ciAtZCAi JGFzX25sIgorKyAgICAnCisrICAgIGV4cG9ydCBhc19lY2hvX25fYm9keQorKyAgICBhc19lY2hv X249J3NoIC1jICRhc19lY2hvX25fYm9keSBhc19lY2hvJworKyAgZmkKKysgIGV4cG9ydCBhc19l Y2hvX2JvZHkKKysgIGFzX2VjaG89J3NoIC1jICRhc19lY2hvX2JvZHkgYXNfZWNobycKKytmaQor KworKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgorK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFU T1Irc2V0fSIgIT0gc2V0OyB0aGVuCisrICBQQVRIX1NFUEFSQVRPUj06CisrICAoUEFUSD0nL2Jp bjsvYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSAmJiB7CisrICAg IChQQVRIPScvYmluOi9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYx IHx8CisrICAgICAgUEFUSF9TRVBBUkFUT1I9JzsnCisrICB9CisrZmkKKysKKysjIFN1cHBvcnQg dW5zZXQgd2hlbiBwb3NzaWJsZS4KKytpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0 KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX3Vuc2V0PXVuc2V0CisrZWxzZQorKyAgYXNf dW5zZXQ9ZmFsc2UKKytmaQorKworKworKyMgSUZTCisrIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5k IG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3RpbmcgaXMKKysjIHRoZXJl IHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KKysj IChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBk aXNhYmxlIHdvcmQKKysjIHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4p CisrSUZTPSIgIiIJJGFzX25sIgorKworKyMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUg cGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisrY2FzZSAkMCBpbgor KyAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OworKyAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19z YXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIHRlc3QgLXIgIiRh c19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCisrZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKysgICAgIDs7CisrZXNhYworKyMgV2UgZGlkIG5vdCBmaW5kIG91cnNl bHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKKysjIGluIHdo aWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KKytpZiB0ZXN0ICJ4 JGFzX215c2VsZiIgPSB4OyB0aGVuCisrICBhc19teXNlbGY9JDAKKytmaQorK2lmIHRlc3QgISAt ZiAiJGFzX215c2VsZiI7IHRoZW4KKysgICRhc19lY2hvICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fu bm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIGZpbGUgbmFtZSIgPiYyCisr ICB7IChleGl0IDEpOyBleGl0IDE7IH0KKytmaQorKworKyMgV29yayBhcm91bmQgYnVncyBpbiBw cmUtMy4wIFVXSU4ga3NoLgorK2ZvciBhc192YXIgaW4gRU5WIE1BSUwgTUFJTFBBVEgKKytkbyAo JGFzX3Vuc2V0ICRhc192YXIpID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3Zhcgor K2RvbmUKKytQUzE9JyQgJworK1BTMj0nPiAnCisrUFM0PScrICcKKysKKysjIE5MUyBudWlzYW5j ZXMuCisrTENfQUxMPUMKKytleHBvcnQgTENfQUxMCisrTEFOR1VBR0U9QworK2V4cG9ydCBMQU5H VUFHRQorKworKyMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgorK2lmIGV4cHIgYSA6ICdcKGFc KScgPi9kZXYvbnVsbCAyPiYxICYmCisrICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5c KSdgIiA9IFgwMDE7IHRoZW4KKysgIGFzX2V4cHI9ZXhwcgorK2Vsc2UKKysgIGFzX2V4cHI9ZmFs c2UKKytmaQorKworK2lmIChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAi WGBiYXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KKysgIGFzX2Jhc2VuYW1lPWJhc2Vu YW1lCisrZWxzZQorKyAgYXNfYmFzZW5hbWU9ZmFsc2UKKytmaQorKworKworKyMgTmFtZSBvZiB0 aGUgZXhlY3V0YWJsZS4KKythc19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIgfHwKKyskYXNfZXhw ciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAorKwkgWCIkMCIgOiAnWFwoLy9c KSQnIFx8IFwKKysJIFgiJDAiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19l Y2hvIFgvIiQwIiB8CisrICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveworKwkgICAg cy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwvXChcL1wvXCkkL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysKKysjIENEUEFUSC4KKyskYXNfdW5zZXQg Q0RQQVRICisrCisrCisrCisrICBhc19saW5lbm9fMT0kTElORU5PCisrICBhc19saW5lbm9fMj0k TElORU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKysg IHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIgfHwgewor KworKyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0 IHdpdGggJExJTkVOTworKyAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVy LiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQorKyAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVy IGVhY2ggbGluZSB1c2luZyAkTElORU5POyB0aGUgc2Vjb25kICdzZWQnCisrICAjIGRvZXMgdGhl IHJlYWwgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAorKyAg IyBsaW5lLW51bWJlciBsaW5lIHdpdGggdGhlIGxpbmUgY29udGFpbmluZyAkTElORU5PLCBhbmQg YXBwZW5kcworKyAgIyB0cmFpbGluZyAnLScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRM SU5FTk8gaXMgbm90IGEgc3BlY2lhbAorKyAgIyBjYXNlIGF0IGxpbmUgZW5kLgorKyAgIyAoUmFq YSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhl CisrICAjIHNjcmlwdHMgd2l0aCBvcHRpbWl6YXRpb24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmku ICBCbGFtZSBMZWUKKysgICMgRS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBmb3Igc2VkJ3Mgc3ludGF4 LiAgOi0pCisrICBzZWQgLW4gJworKyAgICBwCisrICAgIC9bJF1MSU5FTk8vPQorKyAgJyA8JGFz X215c2VsZiB8CisrICAgIHNlZCAnCisrICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KKysgICAgICB0 IGxpbmVubworKyAgICAgIGIKKysgICAgICA6bGluZW5vCisrICAgICAgTgorKyAgICAgIDpsb29w CisrICAgICAgcy9bJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwx XDIvCisrICAgICAgdCBsb29wCisrICAgICAgcy8tXG4uKi8vCisrICAgICcgPiRhc19tZS5saW5l bm8gJiYKKysgIGNobW9kICt4ICIkYXNfbWUubGluZW5vIiB8fAorKyAgICB7ICRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQ T1NJWCBzaGVsbCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisrICAjIERv bid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBw cm9ibGVtcworKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJl IHdlIG1pZ2h0IGZpbmQgdGhlCisrICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlz IGVzcGVjaWFsbHkgc2Vuc2l0aXZlIHRvIHRoaXMpLgorKyAgLiAiLi8kYXNfbWUubGluZW5vIgor KyAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisrICBleGl0Cisr fQorKworKworK2lmIChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0g WC8pID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfZGlybmFtZT1kaXJuYW1lCisrZWxzZQor KyAgYXNfZGlybmFtZT1mYWxzZQorK2ZpCisrCisrRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KKytj YXNlIGBlY2hvIC1uIHhgIGluCisrLW4qKQorKyAgY2FzZSBgZWNobyAneFxjJ2AgaW4KKysgICpj KikgRUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgorKyAgKikg ICBFQ0hPX0M9J1xjJzs7CisrICBlc2FjOzsKKysqKQorKyAgRUNIT19OPSctbic7OworK2VzYWMK KytpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhw ciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytl bHNlCisrICBhc19leHByPWZhbHNlCisrZmkKKysKKytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBj b25mJCQuZmlsZQorK2lmIHRlc3QgLWQgY29uZiQkLmRpcjsgdGhlbgorKyAgcm0gLWYgY29uZiQk LmRpci9jb25mJCQuZmlsZQorK2Vsc2UKKysgIHJtIC1mIGNvbmYkJC5kaXIKKysgIG1rZGlyIGNv bmYkJC5kaXIgMj4vZGV2L251bGwKKytmaQorK2lmIChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2 L251bGw7IHRoZW4KKysgIGlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsg dGhlbgorKyAgICBhc19sbl9zPSdsbiAtcycKKysgICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28g Z290Y2hhczoKKysgICAgIyAxKSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBs biBmaWxlIGRpcicgZmFpbC4KKysgICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtz OyBgbG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4ZWN1dGFibGUuCisrICAgICMgSW4gYm90aCBj YXNlcywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBjcCAtcCcuCisrICAgIGxuIC1zIGNvbmYkJC5m aWxlIGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUgfHwKKysg ICAgICBhc19sbl9zPSdjcCAtcCcKKysgIGVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rl di9udWxsOyB0aGVuCisrICAgIGFzX2xuX3M9bG4KKysgIGVsc2UKKysgICAgYXNfbG5fcz0nY3Ag LXAnCisrICBmaQorK2Vsc2UKKysgIGFzX2xuX3M9J2NwIC1wJworK2ZpCisrcm0gLWYgY29uZiQk IGNvbmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmlsZQorK3JtZGlyIGNv bmYkJC5kaXIgMj4vZGV2L251bGwKKysKKytpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVu CisrICBhc19ta2Rpcl9wPToKKytlbHNlCisrICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAor KyAgYXNfbWtkaXJfcD1mYWxzZQorK2ZpCisrCisraWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4m MTsgdGhlbgorKyAgYXNfdGVzdF94PSd0ZXN0IC14JworK2Vsc2UKKysgIGlmIGxzIC1kTCAvID4v ZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICBhc19sc19MX29wdGlvbj1MCisrICBlbHNlCisrICAg IGFzX2xzX0xfb3B0aW9uPQorKyAgZmkKKysgIGFzX3Rlc3RfeD0nCisrICAgIGV2YWwgc2ggLWMg J1wnJworKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0IC1kICIkMS8uIjsKKysg ICAgICBlbHNlCisrCWNhc2UgJDEgaW4KKysJLSopc2V0ICIuLyQxIjs7CisrCWVzYWM7CisrCWNh c2UgYGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluCisrCT8/P1tz eF0qKTo7OyopZmFsc2U7O2VzYWM7ZmkKKysgICAgJ1wnJyBzaAorKyAgJworK2ZpCisrYXNfZXhl Y3V0YWJsZV9wPSRhc190ZXN0X3gKKysKKysjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmlu ZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCisrYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2Ny X2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysj IFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFt ZS4KKythc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcn IgorKworKworK2V4ZWMgNj4mMQorKworKyMgU2F2ZSB0aGUgbG9nIG1lc3NhZ2UsIHRvIGtlZXAg JFswXSBhbmQgc28gb24gbWVhbmluZ2Z1bCwgYW5kIHRvCisrIyByZXBvcnQgYWN0dWFsIGlucHV0 IHZhbHVlcyBvZiBDT05GSUdfRklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCisrIyB2YWx1ZXMg YWZ0ZXIgb3B0aW9ucyBoYW5kbGluZy4KKythY19sb2c9IgorK1RoaXMgZmlsZSB3YXMgZXh0ZW5k ZWQgYnkgU09DSSAkYXNfbWUgMy4wLjAsIHdoaWNoIHdhcworK2dlbmVyYXRlZCBieSBHTlUgQXV0 b2NvbmYgMi42My4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcworKworKyAgQ09ORklHX0ZJ TEVTICAgID0gJENPTkZJR19GSUxFUworKyAgQ09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFE RVJTCisrICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCisrICBDT05GSUdfQ09NTUFO RFMgPSAkQ09ORklHX0NPTU1BTkRTCisrICAkICQwICRACisrCisrb24gYChob3N0bmFtZSB8fCB1 bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCisrIgorKworK19BQ0VPRgorKworK2Nhc2Ug JGFjX2NvbmZpZ19maWxlcyBpbiAqIgorKyIqKSBzZXQgeCAkYWNfY29uZmlnX2ZpbGVzOyBzaGlm dDsgYWNfY29uZmlnX2ZpbGVzPSQqOzsKKytlc2FjCisrCisrY2FzZSAkYWNfY29uZmlnX2hlYWRl cnMgaW4gKiIKKysiKikgc2V0IHggJGFjX2NvbmZpZ19oZWFkZXJzOyBzaGlmdDsgYWNfY29uZmln X2hlYWRlcnM9JCo7OworK2VzYWMKKysKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKKysjIEZpbGVzIHRoYXQgY29uZmlnLnN0YXR1cyB3YXMgbWFk ZSBmb3IuCisrY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIgorK2NvbmZpZ19oZWFkZXJz PSIkYWNfY29uZmlnX2hlYWRlcnMiCisrY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1h bmRzIgorKworK19BQ0VPRgorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBh Y193cml0ZV9mYWlsPTEKKythY19jc191c2FnZT0iXAorK1xgJGFzX21lJyBpbnN0YW50aWF0ZXMg ZmlsZXMgZnJvbSB0ZW1wbGF0ZXMgYWNjb3JkaW5nIHRvIHRoZQorK2N1cnJlbnQgY29uZmlndXJh dGlvbi4KKysKKytVc2FnZTogJDAgW09QVElPTl0uLi4gW0ZJTEVdLi4uCisrCisrICAtaCwgLS1o ZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisrICAtViwgLS12ZXJzaW9uICAg IHByaW50IHZlcnNpb24gbnVtYmVyIGFuZCBjb25maWd1cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4 aXQKKysgIC1xLCAtLXF1aWV0LCAtLXNpbGVudAorKyAgICAgICAgICAgICAgICAgICBkbyBub3Qg cHJpbnQgcHJvZ3Jlc3MgbWVzc2FnZXMKKysgIC1kLCAtLWRlYnVnICAgICAgZG9uJ3QgcmVtb3Zl IHRlbXBvcmFyeSBmaWxlcworKyAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJl Y29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucworKyAgICAgIC0tZmlsZT1GSUxFWzpU RU1QTEFURV0KKysgICAgICAgICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRp b24gZmlsZSBGSUxFCisrICAgICAgLS1oZWFkZXI9RklMRVs6VEVNUExBVEVdCisrICAgICAgICAg ICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGhlYWRlciBGSUxFCisrCisr Q29uZmlndXJhdGlvbiBmaWxlczoKKyskY29uZmlnX2ZpbGVzCisrCisrQ29uZmlndXJhdGlvbiBo ZWFkZXJzOgorKyRjb25maWdfaGVhZGVycworKworK0NvbmZpZ3VyYXRpb24gY29tbWFuZHM6Cisr JGNvbmZpZ19jb21tYW5kcworKworK1JlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9y Zz4uIgorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dy aXRlX2ZhaWw9MQorK2FjX2NzX3ZlcnNpb249IlxcCisrU09DSSBjb25maWcuc3RhdHVzIDMuMC4w CisrY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLAorKyAg d2l0aCBvcHRpb25zIFxcImAkYXNfZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9e IC8vOyBzL1tcXCIiXGBcJF0vXFxcXCYvZydgXFwiCisrCisrQ29weXJpZ2h0IChDKSAyMDA4IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorK1RoaXMgY29uZmlnLnN0YXR1cyBzY3JpcHQg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorK2dpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCisr CisrYWNfcHdkPSckYWNfcHdkJworK3NyY2Rpcj0nJHNyY2RpcicKKytJTlNUQUxMPSckSU5TVEFM TCcKKytNS0RJUl9QPSckTUtESVJfUCcKKytBV0s9JyRBV0snCisrdGVzdCAtbiAiXCRBV0siIHx8 IEFXSz1hd2sKKytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwg YWNfd3JpdGVfZmFpbD0xCisrIyBUaGUgZGVmYXVsdCBsaXN0cyBhcHBseSBpZiB0aGUgdXNlciBk b2VzIG5vdCBzcGVjaWZ5IGFueSBmaWxlLgorK2FjX25lZWRfZGVmYXVsdHM9OgorK3doaWxlIHRl c3QgJCMgIT0gMAorK2RvCisrICBjYXNlICQxIGluCisrICAtLSo9KikKKysgICAgYWNfb3B0aW9u PWBleHByICJYJDEiIDogJ1hcKFtePV0qXCk9J2AKKysgICAgYWNfb3B0YXJnPWBleHByICJYJDEi IDogJ1hbXj1dKj1cKC4qXCknYAorKyAgICBhY19zaGlmdD06CisrICAgIDs7CisrICAqKQorKyAg ICBhY19vcHRpb249JDEKKysgICAgYWNfb3B0YXJnPSQyCisrICAgIGFjX3NoaWZ0PXNoaWZ0Cisr ICAgIDs7CisrICBlc2FjCisrCisrICBjYXNlICRhY19vcHRpb24gaW4KKysgICMgSGFuZGxpbmcg b2YgdGhlIG9wdGlvbnMuCisrICAtcmVjaGVjayB8IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1y ZWNoZSB8IC0tcmVjaCB8IC0tcmVjIHwgLS1yZSB8IC0tcikKKysgICAgYWNfY3NfcmVjaGVjaz06 IDs7CisrICAtLXZlcnNpb24gfCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtLXZlciB8 IC0tdmUgfCAtLXYgfCAtViApCisrICAgICRhc19lY2hvICIkYWNfY3NfdmVyc2lvbiI7IGV4aXQg OzsKKysgIC0tZGVidWcgfCAtLWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAtLWQgfCAtZCApCisrICAg IGRlYnVnPTogOzsKKysgIC0tZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCisrICAgICRhY19z aGlmdAorKyAgICBjYXNlICRhY19vcHRhcmcgaW4KKysgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNf ZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNh YworKyAgICBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgJyRhY19vcHRhcmcnIgorKyAgICBh Y19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKysgIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0taGVhZCB8 IC0taGVhICkKKysgICAgJGFjX3NoaWZ0CisrICAgIGNhc2UgJGFjX29wdGFyZyBpbgorKyAgICAq XCcqKSBhY19vcHRhcmc9YCRhc19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxc XCcnL2ciYCA7OworKyAgICBlc2FjCisrICAgIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURF UlMgJyRhY19vcHRhcmcnIgorKyAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKysgIC0taGUg fCAtLWgpCisrICAgICMgQ29uZmxpY3QgYmV0d2VlbiAtLWhlbHAgYW5kIC0taGVhZGVyCisrICAg IHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCisrVHJ5IFxg JDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTs7CisrICAtLWhlbHAgfCAtLWhlbCB8IC1oICkKKysgICAgJGFzX2VjaG8gIiRh Y19jc191c2FnZSI7IGV4aXQgOzsKKysgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8 IC0tcXVpIHwgLS1xdSB8IC0tcSBcCisrICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4g fCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAtLXMpCisrICAgIGFjX2NzX3NpbGVudD06IDs7Cisr CisrICAjIFRoaXMgaXMgYW4gZXJyb3IuCisrICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJv cjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKKytUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGlu Zm9ybWF0aW9uLiIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrCisrICAq KSBhY19jb25maWdfdGFyZ2V0cz0iJGFjX2NvbmZpZ190YXJnZXRzICQxIgorKyAgICAgYWNfbmVl ZF9kZWZhdWx0cz1mYWxzZSA7OworKworKyAgZXNhYworKyAgc2hpZnQKKytkb25lCisrCisrYWNf Y29uZmlndXJlX2V4dHJhX2FyZ3M9CisrCisraWYgJGFjX2NzX3NpbGVudDsgdGhlbgorKyAgZXhl YyA2Pi9kZXYvbnVsbAorKyAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVf ZXh0cmFfYXJncyAtLXNpbGVudCIKKytmaQorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RB VFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2lmIFwkYWNfY3NfcmVjaGVjazsgdGhl bgorKyAgc2V0IFggJyRTSEVMTCcgJyQwJyAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1 cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgorKyAgc2hpZnQKKysgIFwk YXNfZWNobyAicnVubmluZyBDT05GSUdfU0hFTEw9JFNIRUxMIFwkKiIgPiY2CisrICBDT05GSUdf U0hFTEw9JyRTSEVMTCcKKysgIGV4cG9ydCBDT05GSUdfU0hFTEwKKysgIGV4ZWMgIlwkQCIKKytm aQorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0 ZV9mYWlsPTEKKytleGVjIDU+PmNvbmZpZy5sb2cKKyt7CisrICBlY2hvCisrICBzZWQgJ2g7cy8u Ly0vZztzL14uLi4vIyMgLztzLy4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAorKyMjIFJ1bm5p bmcgJGFzX21lLiAjIworK19BU0JPWAorKyAgJGFzX2VjaG8gIiRhY19sb2ciCisrfSA+JjUKKysK KytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKKysjCisrIyBJTklULUNPTU1BTkRTCisrIworK0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBh Y19hdXhfZGlyPSIkYWNfYXV4X2RpciIKKysKKytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklHX1NU QVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrCisrIyBIYW5kbGluZyBvZiBhcmd1 bWVudHMuCisrZm9yIGFjX2NvbmZpZ190YXJnZXQgaW4gJGFjX2NvbmZpZ190YXJnZXRzCisrZG8K KysgIGNhc2UgJGFjX2NvbmZpZ190YXJnZXQgaW4KKysgICAgInNvY2kvY29uZmlnLmgiKSBDT05G SUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTIHNvY2kvY29uZmlnLmgiIDs7CisrICAgICJkZXBm aWxlcyIpIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKKysg ICAgIk1ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1ha2VmaWxlIiA7Owor KyAgICAic29jaS1jb25maWciKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS1jb25m aWciIDs7CisrICAgICJzb2NpLnBjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2ku cGMiIDs7CisrICAgICJzb2NpLnNwZWMiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29j aS5zcGVjIiA7OworKyAgICAic29jaS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBzb2NpL01ha2VmaWxlIiA7OworKyAgICAic29jaS9jb3JlL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvY29yZS9NYWtlZmlsZSIgOzsKKysgICAgInNvY2kv Y29yZS90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvY29y ZS90ZXN0L01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9NYWtlZmlsZSIpIENPTkZJ R19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL01ha2VmaWxlIiA7OworKyAgICAi c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF UyBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSIgOzsKKysgICAgInNvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSIgOzsKKysgICAgInNvY2kvYmFja2VuZHMvb3JhY2xl L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlIiA7OworKyAgICAibWFuL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklH X0ZJTEVTIG1hbi9NYWtlZmlsZSIgOzsKKysgICAgImRvYy9NYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBkb2MvTWFrZWZpbGUiIDs7CisrICAgICJkb2MvYmFja2VuZHMvTWFr ZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZG9jL2JhY2tlbmRzL01ha2VmaWxl IiA7OworKyAgICAiYnVpbGQvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg YnVpbGQvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC91bml4L01ha2VmaWxlIikgQ09ORklHX0ZJ TEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL3VuaXgvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9t c3ZjODAvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2Yzgw L01ha2VmaWxlIiA7OworKyAgICAiYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSIpIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIiA7OworKyAgICAi YnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBi dWlsZC9tc3ZjODAvbGliL01ha2VmaWxlIiA7OworKworKyAgKikgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZp Z190YXJnZXQiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKKysgIGVzYWMK Kytkb25lCisrCisrCisrIyBJZiB0aGUgdXNlciBkaWQgbm90IHVzZSB0aGUgYXJndW1lbnRzIHRv IHNwZWNpZnkgdGhlIGl0ZW1zIHRvIGluc3RhbnRpYXRlLAorKyMgdGhlbiB0aGUgZW52dmFyIGlu dGVyZmFjZSBpcyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgorKyMgV2UgdXNl IHRoZSBsb25nIGZvcm0gZm9yIHRoZSBkZWZhdWx0IGFzc2lnbm1lbnQgYmVjYXVzZSBvZiBhbiBl eHRyZW1lbHkKKysjIGJpemFycmUgYnVnIG9uIFN1bk9TIDQuMS4zLgorK2lmICRhY19uZWVkX2Rl ZmF1bHRzOyB0aGVuCisrICB0ZXN0ICIke0NPTkZJR19GSUxFUytzZXR9IiA9IHNldCB8fCBDT05G SUdfRklMRVM9JGNvbmZpZ19maWxlcworKyAgdGVzdCAiJHtDT05GSUdfSEVBREVSUytzZXR9IiA9 IHNldCB8fCBDT05GSUdfSEVBREVSUz0kY29uZmlnX2hlYWRlcnMKKysgIHRlc3QgIiR7Q09ORklH X0NPTU1BTkRTK3NldH0iID0gc2V0IHx8IENPTkZJR19DT01NQU5EUz0kY29uZmlnX2NvbW1hbmRz CisrZmkKKysKKysjIEhhdmUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBjb252ZW5pZW5jZS4g IE1ha2UgaXQgaW4gdGhlIGJ1aWxkIHRyZWUKKysjIHNpbXBseSBiZWNhdXNlIHRoZXJlIGlzIG5v IHJlYXNvbiBhZ2FpbnN0IGhhdmluZyBpdCBoZXJlLCBhbmQgaW4gYWRkaXRpb24sCisrIyBjcmVh dGluZyBhbmQgbW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2Js ZW1zLgorKyMgSG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KKysjIE5vdGUg dGhhdCB0aGVyZSBpcyBhIHNtYWxsIHdpbmRvdyBpbiB3aGljaCB0aGUgZGlyZWN0b3J5IHdpbGwg bm90IGJlIGNsZWFuZWQ6CisrIyBhZnRlciBpdHMgY3JlYXRpb24gYnV0IGJlZm9yZSBpdHMgbmFt ZSBoYXMgYmVlbiBhc3NpZ25lZCB0byBgJHRtcCcuCisrJGRlYnVnIHx8CisreworKyAgdG1wPQor KyAgdHJhcCAnZXhpdF9zdGF0dXM9JD8KKysgIHsgdGVzdCAteiAiJHRtcCIgfHwgdGVzdCAhIC1k ICIkdG1wIiB8fCBybSAtZnIgIiR0bXAiOyB9ICYmIGV4aXQgJGV4aXRfc3RhdHVzCisrJyAwCisr ICB0cmFwICd7IChleGl0IDEpOyBleGl0IDE7IH0nIDEgMiAxMyAxNQorK30KKysjIENyZWF0ZSBh IChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KKysKKyt7CisrICB0bXA9YCh1 bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIuL2NvbmZYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKKysg IHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiCisrfSAgfHwKKyt7CisrICB0bXA9Li9j b25mJCQtJFJBTkRPTQorKyAgKHVtYXNrIDA3NyAmJiBta2RpciAiJHRtcCIpCisrfSB8fAorK3sK KysgICAkYXNfZWNobyAiJGFzX21lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9y eSBpbiAuIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH0KKyt9CisrCisrIyBTZXQgdXAg dGhlIHNjcmlwdHMgZm9yIENPTkZJR19GSUxFUyBzZWN0aW9uLgorKyMgTm8gbmVlZCB0byBnZW5l cmF0ZSB0aGVtIGlmIHRoZXJlIGFyZSBubyBDT05GSUdfRklMRVMuCisrIyBUaGlzIGhhcHBlbnMg Zm9yIGluc3RhbmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBjb25maWcuaCcuCisraWYgdGVzdCAt biAiJENPTkZJR19GSUxFUyI7IHRoZW4KKysKKysKKythY19jcj0nDScKKythY19jc19hd2tfY3I9 YCRBV0sgJ0JFR0lOIHsgcHJpbnQgImFccmIiIH0nIDwvZGV2L251bGwgMj4vZGV2L251bGxgCisr aWYgdGVzdCAiJGFjX2NzX2F3a19jciIgPSAiYSR7YWNfY3J9YiI7IHRoZW4KKysgIGFjX2NzX2F3 a19jcj0nXFxyJworK2Vsc2UKKysgIGFjX2NzX2F3a19jcj0kYWNfY3IKKytmaQorKworK2VjaG8g J0JFR0lOIHsnID4iJHRtcC9zdWJzMS5hd2siICYmCisrX0FDRU9GCisrCisrCisreworKyAgZWNo byAiY2F0ID5jb25mJCRzdWJzLmF3ayA8PF9BQ0VPRiIgJiYKKysgIGVjaG8gIiRhY19zdWJzdF92 YXJzIiB8IHNlZCAncy8uKi8mISQmJGFjX2RlbGltLycgJiYKKysgIGVjaG8gIl9BQ0VPRiIKKyt9 ID5jb25mJCRzdWJzLnNoIHx8CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiYyO30KKysgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KKythY19kZWxpbV9udW09YGVjaG8gIiRhY19zdWJzdF92YXJzIiB8 IGdyZXAgLWMgJyQnYAorK2FjX2RlbGltPSclIV8hIyAnCisrZm9yIGFjX2xhc3RfdHJ5IGluIGZh bHNlIGZhbHNlIGZhbHNlIGZhbHNlIGZhbHNlIDo7IGRvCisrICAuIC4vY29uZiQkc3Vicy5zaCB8 fAorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IG1h a2UgJENPTkZJR19TVEFUVVMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBu b3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KKysKKysgIGFjX2RlbGltX249YHNlZCAtbiAicy8uKiRhY19kZWxpbVwkL1gvcCIgY29uZiQk c3Vicy5hd2sgfCBncmVwIC1jIFhgCisrICBpZiB0ZXN0ICRhY19kZWxpbV9uID0gJGFjX2RlbGlt X251bTsgdGhlbgorKyAgICBicmVhaworKyAgZWxpZiAkYWNfbGFzdF90cnk7IHRoZW4KKysgICAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05G SUdfU1RBVFVTIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2Ug JENPTkZJR19TVEFUVVMiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICBl bHNlCisrICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAiCisr ICBmaQorK2RvbmUKKytybSAtZiBjb25mJCRzdWJzLnNoCisrCisrY2F0ID4+JENPTkZJR19TVEFU VVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIg PDxcXF9BQ0FXSyAmJgorK19BQ0VPRgorK3NlZCAtbiAnCisraAorK3MvXi9TWyIvOyBzLyEuKi8i XT0vCisrcAorK2cKKytzL15bXiFdKiEvLworKzpyZXBsCisrdCByZXBsCisrcy8nIiRhY19kZWxp bSInJC8vCisrdCBkZWxpbQorKzpubAorK2gKKytzL1woLlx7MTQ4XH1cKS4qL1wxLworK3QgbW9y ZTEKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC9cXG4iXFwvCisrcAorK24KKytiIHJlcGwK Kys6bW9yZTEKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iXFwvCisrcAorK2cKKytzLy5c ezE0OFx9Ly8KKyt0IG5sCisrOmRlbGltCisraAorK3MvXCguXHsxNDhcfVwpLiovXDEvCisrdCBt b3JlMgorK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kLyIvCisrcAorK2IKKys6bW9yZTIKKytz L1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iXFwvCisrcAorK2cKKytzLy5cezE0OFx9Ly8KKyt0 IGRlbGltCisrJyA8Y29uZiQkc3Vicy5hd2sgfCBzZWQgJworKy9eW14iIl0veworKyAgTgorKyAg cy9cbi8vCisrfQorKycgPj4kQ09ORklHX1NUQVRVUyB8fCBhY193cml0ZV9mYWlsPTEKKytybSAt ZiBjb25mJCRzdWJzLmF3aworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dy aXRlX2ZhaWw9MQorK19BQ0FXSworK2NhdCA+PiJcJHRtcC9zdWJzMS5hd2siIDw8X0FDQVdLICYm CisrICBmb3IgKGtleSBpbiBTKSBTX2lzX3NldFtrZXldID0gMQorKyAgRlMgPSAiByIKKysKKyt9 CisreworKyAgbGluZSA9ICQgMAorKyAgbmZpZWxkcyA9IHNwbGl0KGxpbmUsIGZpZWxkLCAiQCIp CisrICBzdWJzdGVkID0gMAorKyAgbGVuID0gbGVuZ3RoKGZpZWxkWzFdKQorKyAgZm9yIChpID0g MjsgaSA8IG5maWVsZHM7IGkrKykgeworKyAgICBrZXkgPSBmaWVsZFtpXQorKyAgICBrZXlsZW4g PSBsZW5ndGgoa2V5KQorKyAgICBpZiAoU19pc19zZXRba2V5XSkgeworKyAgICAgIHZhbHVlID0g U1trZXldCisrICAgICAgbGluZSA9IHN1YnN0cihsaW5lLCAxLCBsZW4pICIiIHZhbHVlICIiIHN1 YnN0cihsaW5lLCBsZW4gKyBrZXlsZW4gKyAzKQorKyAgICAgIGxlbiArPSBsZW5ndGgodmFsdWUp ICsgbGVuZ3RoKGZpZWxkWysraV0pCisrICAgICAgc3Vic3RlZCA9IDEKKysgICAgfSBlbHNlCisr ICAgICAgbGVuICs9IDEgKyBrZXlsZW4KKysgIH0KKysKKysgIHByaW50IGxpbmUKKyt9CisrCisr X0FDQVdLCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dy aXRlX2ZhaWw9MQorK2lmIHNlZCAicy8kYWNfY3IvLyIgPCAvZGV2L251bGwgPiAvZGV2L251bGwg Mj4mMTsgdGhlbgorKyAgc2VkICJzLyRhY19jclwkLy87IHMvJGFjX2NyLyRhY19jc19hd2tfY3Iv ZyIKKytlbHNlCisrICBjYXQKKytmaSA8ICIkdG1wL3N1YnMxLmF3ayIgPiAiJHRtcC9zdWJzLmF3 ayIgXAorKyAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5v dCBzZXR1cCBjb25maWcgZmlsZXMgbWFjaGluZXJ5IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY291bGQgbm90IHNldHVwIGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiID4mMjt9CisrICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrX0FDRU9GCisrCisrIyBWUEFUSCBtYXkgY2F1c2Ug dHJvdWJsZSB3aXRoIHNvbWUgbWFrZXMsIHNvIHdlIHJlbW92ZSAkKHNyY2RpciksCisrIyAke3Ny Y2Rpcn0gYW5kIEBzcmNkaXJAIGZyb20gVlBBVEggaWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVh ZGluZyBhbmQKKysjIHRyYWlsaW5nIGNvbG9ucyBhbmQgdGhlbiByZW1vdmUgdGhlIHdob2xlIGxp bmUgaWYgVlBBVEggYmVjb21lcyBlbXB0eQorKyMgKGFjdHVhbGx5IHdlIGxlYXZlIGFuIGVtcHR5 IGxpbmUgdG8gcHJlc2VydmUgbGluZSBudW1iZXJzKS4KKytpZiB0ZXN0ICJ4JHNyY2RpciIgPSB4 LjsgdGhlbgorKyAgYWNfdnBzdWI9Jy9eWwkgXSpWUEFUSFsJIF0qPS97Cisrcy86KlwkKHNyY2Rp cik6Ki86LworK3MvOipcJHtzcmNkaXJ9OiovOi8KKytzLzoqQHNyY2RpckA6Ki86LworK3MvXlwo W149XSo9WwkgXSpcKToqL1wxLworK3MvOiokLy8KKytzL15bXj1dKj1bCSBdKiQvLworK30nCisr ZmkKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0x CisrZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIgorKworKyMgU2V0IHVwIHRoZSBzY3JpcHRz IGZvciBDT05GSUdfSEVBREVSUyBzZWN0aW9uLgorKyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVt IGlmIHRoZXJlIGFyZSBubyBDT05GSUdfSEVBREVSUy4KKysjIFRoaXMgaGFwcGVucyBmb3IgaW5z dGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIE1ha2VmaWxlJy4KKytpZiB0ZXN0IC1uICIkQ09O RklHX0hFQURFUlMiOyB0aGVuCisrY2F0ID4iJHRtcC9kZWZpbmVzLmF3ayIgPDxcX0FDQVdLIHx8 CisrQkVHSU4geworK19BQ0VPRgorKworKyMgVHJhbnNmb3JtIGNvbmZkZWZzLmggaW50byBhbiBh d2sgc2NyaXB0IGBkZWZpbmVzLmF3aycsIGVtYmVkZGVkIGFzCisrIyBoZXJlLWRvY3VtZW50IGlu IGNvbmZpZy5zdGF0dXMsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2YWx1ZXMgaW50bwor KyMgY29uZmlnLmguaW4gdG8gcHJvZHVjZSBjb25maWcuaC4KKysKKysjIENyZWF0ZSBhIGRlbGlt aXRlciBzdHJpbmcgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiBjb25mZGVmcy5oLCB0byBlYXNlCisr IyBoYW5kbGluZyBvZiBsb25nIGxpbmVzLgorK2FjX2RlbGltPSclIV8hIyAnCisrZm9yIGFjX2xh c3RfdHJ5IGluIGZhbHNlIGZhbHNlIDo7IGRvCisrICBhY190PWBzZWQgLW4gIi8kYWNfZGVsaW0v cCIgY29uZmRlZnMuaGAKKysgIGlmIHRlc3QgLXogIiRhY190IjsgdGhlbgorKyAgICBicmVhawor KyAgZWxpZiAkYWNfbGFzdF90cnk7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfSEVBREVSUyIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfSEVBREVSUyIgPiYyO30K KysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGVsc2UKKysgICAgYWNfZGVsaW09IiRh Y19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIKKysgIGZpCisrZG9uZQorKworKyMgRm9y IHRoZSBhd2sgc2NyaXB0LCBEIGlzIGFuIGFycmF5IG9mIG1hY3JvIHZhbHVlcyBrZXllZCBieSBu YW1lLAorKyMgbGlrZXdpc2UgUCBjb250YWlucyBtYWNybyBwYXJhbWV0ZXJzIGlmIGFueS4gIFBy ZXNlcnZlIGJhY2tzbGFzaAorKyMgbmV3bGluZSBzZXF1ZW5jZXMuCisrCisrYWNfd29yZF9yZT1b XyRhc19jcl9MZXR0ZXJzXVtfJGFzX2NyX2FsbnVtXSoKKytzZWQgLW4gJworK3MvLlx7MTQ4XH0v JiciJGFjX2RlbGltIicvZworK3QgcnNldAorKzpyc2V0Cisrcy9eWwkgXSojWwkgXSpkZWZpbmVb CSBdWwkgXSovIC8KKyt0IGRlZgorK2QKKys6ZGVmCisrcy9cXCQvLworK3QgYnNubAorK3MvWyJc XF0vXFwmL2cKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVwoKFteKCldKilcKVsJIF0qXCguKlwp L1BbIlwxIl09IlwyIlwKKytEWyJcMSJdPSIgXDMiL3AKKytzL14gXCgnIiRhY193b3JkX3JlIidc KVsJIF0qXCguKlwpL0RbIlwxIl09IiBcMiIvcAorK2QKKys6YnNubAorK3MvWyJcXF0vXFwmL2cK KytzL14gXCgnIiRhY193b3JkX3JlIidcKVwoKFteKCldKilcKVsJIF0qXCguKlwpL1BbIlwxIl09 IlwyIlwKKytEWyJcMSJdPSIgXDNcXFxcXFxuIlxcL3AKKyt0IGNvbnQKKytzL14gXCgnIiRhY193 b3JkX3JlIidcKVsJIF0qXCguKlwpL0RbIlwxIl09IiBcMlxcXFxcXG4iXFwvcAorK3QgY29udAor K2QKKys6Y29udAorK24KKytzLy5cezE0OFx9LyYnIiRhY19kZWxpbSInL2cKKyt0IGNsZWFyCisr OmNsZWFyCisrcy9cXCQvLworK3QgYnNubGMKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8i L3AKKytkCisrOmJzbmxjCisrcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxcXFxcbiJcXC9w CisrYiBjb250CisrJyA8Y29uZmRlZnMuaCB8IHNlZCAnCisrcy8nIiRhY19kZWxpbSInLyJcXFwK KysiL2cnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCisrCisrY2F0ID4+JENP TkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrICBmb3IgKGtleSBpbiBE KSBEX2lzX3NldFtrZXldID0gMQorKyAgRlMgPSAiByIKKyt9CisrL15bXHQgXSojW1x0IF0qKGRl ZmluZXx1bmRlZilbXHQgXSskYWNfd29yZF9yZShbXHQgKF18XCQpLyB7CisrICBsaW5lID0gXCQg MAorKyAgc3BsaXQobGluZSwgYXJnLCAiICIpCisrICBpZiAoYXJnWzFdID09ICIjIikgeworKyAg ICBkZWZ1bmRlZiA9IGFyZ1syXQorKyAgICBtYWMxID0gYXJnWzNdCisrICB9IGVsc2UgeworKyAg ICBkZWZ1bmRlZiA9IHN1YnN0cihhcmdbMV0sIDIpCisrICAgIG1hYzEgPSBhcmdbMl0KKysgIH0K KysgIHNwbGl0KG1hYzEsIG1hYzIsICIoIikgIykKKysgIG1hY3JvID0gbWFjMlsxXQorKyAgcHJl Zml4ID0gc3Vic3RyKGxpbmUsIDEsIGluZGV4KGxpbmUsIGRlZnVuZGVmKSAtIDEpCisrICBpZiAo RF9pc19zZXRbbWFjcm9dKSB7CisrICAgICMgUHJlc2VydmUgdGhlIHdoaXRlIHNwYWNlIHN1cnJv dW5kaW5nIHRoZSAiIyIuCisrICAgIHByaW50IHByZWZpeCAiZGVmaW5lIiwgbWFjcm8gUFttYWNy b10gRFttYWNyb10KKysgICAgbmV4dAorKyAgfSBlbHNlIHsKKysgICAgIyBSZXBsYWNlICN1bmRl ZiB3aXRoIGNvbW1lbnRzLiAgVGhpcyBpcyBuZWNlc3NhcnksIGZvciBleGFtcGxlLAorKyAgICAj IGluIHRoZSBjYXNlIG9mIF9QT1NJWF9TT1VSQ0UsIHdoaWNoIGlzIHByZWRlZmluZWQgYW5kIHJl cXVpcmVkCisrICAgICMgb24gc29tZSBzeXN0ZW1zIHdoZXJlIGNvbmZpZ3VyZSB3aWxsIG5vdCBk ZWNpZGUgdG8gZGVmaW5lIGl0LgorKyAgICBpZiAoZGVmdW5kZWYgPT0gInVuZGVmIikgeworKyAg ICAgIHByaW50ICIvKiIsIHByZWZpeCBkZWZ1bmRlZiwgbWFjcm8sICIqLyIKKysgICAgICBuZXh0 CisrICAgIH0KKysgIH0KKyt9CisreyBwcmludCB9CisrX0FDQVdLCisrX0FDRU9GCisrY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyAgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgaGVhZGVy cyBtYWNoaW5lcnkiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3Qgc2V0 dXAgY29uZmlnIGhlYWRlcnMgbWFjaGluZXJ5IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQorK2ZpICMgdGVzdCAtbiAiJENPTkZJR19IRUFERVJTIgorKworKworK2V2YWwgc2V0 IFggIiAgOkYgJENPTkZJR19GSUxFUyAgOkggJENPTkZJR19IRUFERVJTICAgIDpDICRDT05GSUdf Q09NTUFORFMiCisrc2hpZnQKKytmb3IgYWNfdGFnCisrZG8KKysgIGNhc2UgJGFjX3RhZyBpbgor KyAgOltGSExDXSkgYWNfbW9kZT0kYWNfdGFnOyBjb250aW51ZTs7CisrICBlc2FjCisrICBjYXNl ICRhY19tb2RlJGFjX3RhZyBpbgorKyAgOltGSExdKjoqKTs7CisrICA6TCogfCA6Qyo6KikgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgdGFnICRhY190YWciID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHRhZyAkYWNfdGFnIiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrICA6W0ZIXS0pIGFjX3RhZz0tOi07Owor KyAgOltGSF0qKSBhY190YWc9JGFjX3RhZzokYWNfdGFnLmluOzsKKysgIGVzYWMKKysgIGFjX3Nh dmVfSUZTPSRJRlMKKysgIElGUz06CisrICBzZXQgeCAkYWNfdGFnCisrICBJRlM9JGFjX3NhdmVf SUZTCisrICBzaGlmdAorKyAgYWNfZmlsZT0kMQorKyAgc2hpZnQKKysKKysgIGNhc2UgJGFjX21v ZGUgaW4KKysgIDpMKSBhY19zb3VyY2U9JDE7OworKyAgOltGSF0pCisrICAgIGFjX2ZpbGVfaW5w dXRzPQorKyAgICBmb3IgYWNfZgorKyAgICBkbworKyAgICAgIGNhc2UgJGFjX2YgaW4KKysgICAg ICAtKSBhY19mPSIkdG1wL3N0ZGluIjs7CisrICAgICAgKikgIyBMb29rIGZvciB0aGUgZmlsZSBm aXJzdCBpbiB0aGUgYnVpbGQgdHJlZSwgdGhlbiBpbiB0aGUgc291cmNlIHRyZWUKKysJICMgKGlm IHRoZSBwYXRoIGlzIG5vdCBhYnNvbHV0ZSkuICBUaGUgYWJzb2x1dGUgcGF0aCBjYW5ub3QgYmUg RE9TLXN0eWxlLAorKwkgIyBiZWNhdXNlICRhY19mIGNhbm5vdCBjb250YWluIGA6Jy4KKysJIHRl c3QgLWYgIiRhY19mIiB8fAorKwkgICBjYXNlICRhY19mIGluCisrCSAgIFtcXC8kXSopIGZhbHNl OzsKKysJICAgKikgdGVzdCAtZiAiJHNyY2Rpci8kYWNfZiIgJiYgYWNfZj0iJHNyY2Rpci8kYWNf ZiI7OworKwkgICBlc2FjIHx8CisrCSAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkYWNfZiIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRhY19mIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrICAgICAgZXNhYworKyAgICAgIGNhc2UgJGFjX2YgaW4g KlwnKikgYWNfZj1gJGFzX2VjaG8gIiRhY19mIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7 IGVzYWMKKysgICAgICBhY19maWxlX2lucHV0cz0iJGFjX2ZpbGVfaW5wdXRzICckYWNfZiciCisr ICAgIGRvbmUKKysKKysgICAgIyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUn IHdoaWNoIGluc3RhbnRpYXRlcyAoaS5lLiwgZG9uJ3QKKysgICAgIyB1c2UgJGFzX21lKSwgcGVv cGxlIHdvdWxkIGJlIHN1cnByaXNlZCB0byByZWFkOgorKyAgICAjICAgIC8qIGNvbmZpZy5oLiAg R2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAqLworKyAgICBjb25maWd1cmVfaW5wdXQ9J0dl bmVyYXRlZCBmcm9tICdgCisrCSAgJGFzX2VjaG8gIiQqIiB8IHNlZCAnc3xeW146XSovfHw7c3w6 W146XSovfCwgfGcnCisrCWAnIGJ5IGNvbmZpZ3VyZS4nCisrICAgIGlmIHRlc3QgeCIkYWNfZmls ZSIgIT0geC07IHRoZW4KKysgICAgICBjb25maWd1cmVfaW5wdXQ9IiRhY19maWxlLiAgJGNvbmZp Z3VyZV9pbnB1dCIKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcg JGFjX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7 fQorKyAgICBmaQorKyAgICAjIE5ldXRyYWxpemUgc3BlY2lhbCBjaGFyYWN0ZXJzIGludGVycHJl dGVkIGJ5IHNlZCBpbiByZXBsYWNlbWVudCBzdHJpbmdzLgorKyAgICBjYXNlICRjb25maWd1cmVf aW5wdXQgaW4gIygKKysgICAgKlwmKiB8ICpcfCogfCAqXFwqICkKKysgICAgICAgYWNfc2VkX2Nv bmZfaW5wdXQ9YCRhc19lY2hvICIkY29uZmlndXJlX2lucHV0IiB8CisrICAgICAgIHNlZCAncy9b XFxcXCZ8XS9cXFxcJi9nJ2A7OyAjKAorKyAgICAqKSBhY19zZWRfY29uZl9pbnB1dD0kY29uZmln dXJlX2lucHV0OzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRhY190YWcgaW4KKysgICAgKjot OiogfCAqOi0pIGNhdCA+IiR0bXAvc3RkaW4iIFwKKysgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVz YWMKKysKKysgIGFjX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhY19maWxlIiB8fAorKyRhc19leHBy IFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRh Y19maWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQn IFx8IFwKKysJIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRh c19lY2hvIFgiJGFjX2ZpbGUiIHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14v XSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVte L10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sK KysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBz Ly9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICB7IGFzX2Rpcj0iJGFj X2RpciIKKysgIGNhc2UgJGFzX2RpciBpbiAjKAorKyAgLSopIGFzX2Rpcj0uLyRhc19kaXI7Owor KyAgZXNhYworKyAgdGVzdCAtZCAiJGFzX2RpciIgfHwgeyAkYXNfbWtkaXJfcCAmJiBta2RpciAt cCAiJGFzX2RpciI7IH0gfHwgeworKyAgICBhc19kaXJzPQorKyAgICB3aGlsZSA6OyBkbworKyAg ICAgIGNhc2UgJGFzX2RpciBpbiAjKAorKyAgICAgICpcJyopIGFzX3FkaXI9YCRhc19lY2hvICIk YXNfZGlyIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7ICMnKAorKyAgICAgICopIGFzX3Fk aXI9JGFzX2Rpcjs7CisrICAgICAgZXNhYworKyAgICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFz X2RpcnMiCisrICAgICAgYXNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX2RpciIgfHwKKyskYXNf ZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBY IiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkk JyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRh c19lY2hvIFgiJGFzX2RpciIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9d KlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14v XS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQvewor KwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMv L1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysgICAgICB0ZXN0IC1kICIk YXNfZGlyIiAmJiBicmVhaworKyAgICBkb25lCisrICAgIHRlc3QgLXogIiRhc19kaXJzIiB8fCBl dmFsICJta2RpciAkYXNfZGlycyIKKysgIH0gfHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRh c19kaXIiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVj dG9yeSAkYXNfZGlyIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorKyAg YWNfYnVpbGRkaXI9LgorKworK2Nhc2UgIiRhY19kaXIiIGluCisrLikgYWNfZGlyX3N1ZmZpeD0g YWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CisrKikKKysgIGFj X2Rpcl9zdWZmaXg9L2AkYXNfZWNobyAiJGFjX2RpciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCisr ICAjIEEgIi4uIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCisrICBhY190 b3BfYnVpbGRkaXJfc3ViPWAkYXNfZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxc L10qfC8uLnxnO3N8L3x8J2AKKysgIGNhc2UgJGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KKysgICIi KSBhY190b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKKysgICopICBh Y190b3BfYnVpbGRfcHJlZml4PSRhY190b3BfYnVpbGRkaXJfc3ViLyA7OworKyAgZXNhYyA7Owor K2VzYWMKKythY19hYnNfdG9wX2J1aWxkZGlyPSRhY19wd2QKKythY19hYnNfYnVpbGRkaXI9JGFj X3B3ZCRhY19kaXJfc3VmZml4CisrIyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eToKKythY190 b3BfYnVpbGRkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgKKysKKytjYXNlICRzcmNkaXIgaW4KKysg IC4pICAjIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KKysgICAgYWNfc3JjZGlyPS4KKysgICAg YWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyX3N1YgorKyAgICBhY19hYnNfdG9wX3NyY2Rp cj0kYWNfcHdkIDs7CisrICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIG5hbWUuCisr ICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7CisrICAgIGFjX3RvcF9zcmNkaXI9 JHNyY2RpcgorKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CisrICAqKSAjIFJlbGF0 aXZlIG5hbWUuCisrICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNf ZGlyX3N1ZmZpeAorKyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2Rp cgorKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkLyRzcmNkaXIgOzsKKytlc2FjCisrYWNf YWJzX3NyY2Rpcj0kYWNfYWJzX3RvcF9zcmNkaXIkYWNfZGlyX3N1ZmZpeAorKworKworKyAgY2Fz ZSAkYWNfbW9kZSBpbgorKyAgOkYpCisrICAjCisrICAjIENPTkZJR19GSUxFCisrICAjCisrCisr ICBjYXNlICRJTlNUQUxMIGluCisrICBbXFwvJF0qIHwgPzpbXFwvXSogKSBhY19JTlNUQUxMPSRJ TlNUQUxMIDs7CisrICAqKSBhY19JTlNUQUxMPSRhY190b3BfYnVpbGRfcHJlZml4JElOU1RBTEwg OzsKKysgIGVzYWMKKysgIGFjX01LRElSX1A9JE1LRElSX1AKKysgIGNhc2UgJE1LRElSX1AgaW4K KysgIFtcXC8kXSogfCA/OltcXC9dKiApIDs7CisrICAqLyopIGFjX01LRElSX1A9JGFjX3RvcF9i dWlsZF9wcmVmaXgkTUtESVJfUCA7OworKyAgZXNhYworK19BQ0VPRgorKworK2NhdCA+PiRDT05G SUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKysjIElmIHRoZSB0ZW1wbGF0 ZSBkb2VzIG5vdCBrbm93IGFib3V0IGRhdGFyb290ZGlyLCBleHBhbmQgaXQuCisrIyBGSVhNRTog VGhpcyBoYWNrIHNob3VsZCBiZSByZW1vdmVkIGEgZmV3IHllYXJzIGFmdGVyIDIuNjAuCisrYWNf ZGF0YXJvb3RkaXJfaGFjaz07IGFjX2RhdGFyb290ZGlyX3NlZW49CisrCisrYWNfc2VkX2RhdGFy b290PScKKysvZGF0YXJvb3RkaXIvIHsKKysgIHAKKysgIHEKKyt9CisrL0BkYXRhZGlyQC9wCisr L0Bkb2NkaXJAL3AKKysvQGluZm9kaXJAL3AKKysvQGxvY2FsZWRpckAvcAorKy9AbWFuZGlyQC9w CisrJworK2Nhc2UgYGV2YWwgInNlZCAtbiBcIlwkYWNfc2VkX2RhdGFyb290XCIgJGFjX2ZpbGVf aW5wdXRzImAgaW4KKysqZGF0YXJvb3RkaXIqKSBhY19kYXRhcm9vdGRpcl9zZWVuPXllczs7Cisr KkBkYXRhZGlyQCp8KkBkb2NkaXJAKnwqQGluZm9kaXJAKnwqQGxvY2FsZWRpckAqfCpAbWFuZGly QCopCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2ZpbGVfaW5w dXRzIHNlZW1zIHRvIGlnbm9yZSB0aGUgLS1kYXRhcm9vdGRpciBzZXR0aW5nIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfZmlsZV9pbnB1dHMgc2VlbXMgdG8gaWdub3JlIHRo ZSAtLWRhdGFyb290ZGlyIHNldHRpbmciID4mMjt9CisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19T VEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrICBhY19kYXRhcm9vdGRpcl9oYWNr PScKKysgIHMmQGRhdGFkaXJAJiRkYXRhZGlyJmcKKysgIHMmQGRvY2RpckAmJGRvY2RpciZnCisr ICBzJkBpbmZvZGlyQCYkaW5mb2RpciZnCisrICBzJkBsb2NhbGVkaXJAJiRsb2NhbGVkaXImZwor KyAgcyZAbWFuZGlyQCYkbWFuZGlyJmcKKysgICAgcyZcXFwke2RhdGFyb290ZGlyfSYkZGF0YXJv b3RkaXImZycgOzsKKytlc2FjCisrX0FDRU9GCisrCisrIyBOZXV0cmFsaXplIFZQQVRIIHdoZW4g YCRzcmNkaXInID0gYC4nLgorKyMgU2hlbGwgY29kZSBpbiBjb25maWd1cmUuYWMgbWlnaHQgc2V0 IGV4dHJhc3ViLgorKyMgRklYTUU6IGRvIHdlIHJlYWxseSB3YW50IHRvIG1haW50YWluIHRoaXMg ZmVhdHVyZT8KKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKKythY19zZWRfZXh0cmE9IiRhY192cHN1YgorKyRleHRyYXN1YgorK19BQ0VPRgorK2NhdCA+ PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKys6dAorKy9AW2Et ekEtWl9dW2EtekEtWl8wLTldKkAvIWIKKytzfEBjb25maWd1cmVfaW5wdXRAfCRhY19zZWRfY29u Zl9pbnB1dHw7dCB0CisrcyZAdG9wX2J1aWxkZGlyQCYkYWNfdG9wX2J1aWxkZGlyX3N1YiY7dCB0 CisrcyZAdG9wX2J1aWxkX3ByZWZpeEAmJGFjX3RvcF9idWlsZF9wcmVmaXgmO3QgdAorK3MmQHNy Y2RpckAmJGFjX3NyY2RpciY7dCB0CisrcyZAYWJzX3NyY2RpckAmJGFjX2Fic19zcmNkaXImO3Qg dAorK3MmQHRvcF9zcmNkaXJAJiRhY190b3Bfc3JjZGlyJjt0IHQKKytzJkBhYnNfdG9wX3NyY2Rp ckAmJGFjX2Fic190b3Bfc3JjZGlyJjt0IHQKKytzJkBidWlsZGRpckAmJGFjX2J1aWxkZGlyJjt0 IHQKKytzJkBhYnNfYnVpbGRkaXJAJiRhY19hYnNfYnVpbGRkaXImO3QgdAorK3MmQGFic190b3Bf YnVpbGRkaXJAJiRhY19hYnNfdG9wX2J1aWxkZGlyJjt0IHQKKytzJkBJTlNUQUxMQCYkYWNfSU5T VEFMTCY7dCB0CisrcyZATUtESVJfUEAmJGFjX01LRElSX1AmO3QgdAorKyRhY19kYXRhcm9vdGRp cl9oYWNrCisrIgorK2V2YWwgc2VkIFwiXCRhY19zZWRfZXh0cmFcIiAiJGFjX2ZpbGVfaW5wdXRz IiB8ICRBV0sgLWYgIiR0bXAvc3Vicy5hd2siID4kdG1wL291dCBcCisrICB8fCB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4m Mjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisrdGVzdCAteiAiJGFjX2RhdGFy b290ZGlyX2hhY2skYWNfZGF0YXJvb3RkaXJfc2VlbiIgJiYKKysgIHsgYWNfb3V0PWBzZWQgLW4g Jy9cJHtkYXRhcm9vdGRpcn0vcCcgIiR0bXAvb3V0ImA7IHRlc3QgLW4gIiRhY19vdXQiOyB9ICYm CisrICB7IGFjX291dD1gc2VkIC1uICcvXlsJIF0qZGF0YXJvb3RkaXJbCSBdKjoqPS9wJyAiJHRt cC9vdXQiYDsgdGVzdCAteiAiJGFjX291dCI7IH0gJiYKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBXQVJOSU5HOiAkYWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFy aWFibGUgXGBkYXRhcm9vdGRpcicKKyt3aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVh c2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiAkYWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRh cm9vdGRpcicKKyt3aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJl IGl0IGlzIGRlZmluZWQuIiA+JjI7fQorKworKyAgcm0gLWYgIiR0bXAvc3RkaW4iCisrICBjYXNl ICRhY19maWxlIGluCisrICAtKSBjYXQgIiR0bXAvb3V0IiAmJiBybSAtZiAiJHRtcC9vdXQiOzsK KysgICopIHJtIC1mICIkYWNfZmlsZSIgJiYgbXYgIiR0bXAvb3V0IiAiJGFjX2ZpbGUiOzsKKysg IGVzYWMgXAorKyAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxk IG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3Vs ZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQorKyA7OworKyAgOkgpCisrICAjCisrICAjIENPTkZJR19IRUFERVIKKysgICMKKysgIGlmIHRl c3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKysgICAgeworKyAgICAgICRhc19lY2hvICIvKiAk Y29uZmlndXJlX2lucHV0ICAqLyIgXAorKyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiR0bXAvZGVm aW5lcy5hd2siJyAiJGFjX2ZpbGVfaW5wdXRzIgorKyAgICB9ID4iJHRtcC9jb25maWcuaCIgXAor KyAgICAgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qg Y3JlYXRlICRhY19maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90 IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysg ICAgaWYgZGlmZiAiJGFjX2ZpbGUiICIkdG1wL2NvbmZpZy5oIiA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogJGFjX2ZpbGUgaXMgdW5jaGFu Z2VkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9 CisrICAgIGVsc2UKKysgICAgICBybSAtZiAiJGFjX2ZpbGUiCisrICAgICAgbXYgIiR0bXAvY29u ZmlnLmgiICIkYWNfZmlsZSIgXAorKwl8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsg ZXhpdCAxOyB9OyB9CisrICAgIGZpCisrICBlbHNlCisrICAgICRhc19lY2hvICIvKiAkY29uZmln dXJlX2lucHV0ICAqLyIgXAorKyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiR0bXAvZGVmaW5lcy5h d2siJyAiJGFjX2ZpbGVfaW5wdXRzIiBcCisrICAgICAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgLSIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgLSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKysgIGZpCisrIyBDb21wdXRlICIkYWNfZmlsZSIncyBpbmRleCBpbiAkY29uZmln X2hlYWRlcnMuCisrX2FtX2FyZz0iJGFjX2ZpbGUiCisrX2FtX3N0YW1wX2NvdW50PTEKKytmb3Ig X2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KKysgIGNhc2UgJF9hbV9oZWFkZXIg aW4KKysgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKKysgICAgICBicmVhayA7OworKyAgICAq ICkKKysgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7 CisrICBlc2FjCisrZG9uZQorK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gJGFzX2Rp cm5hbWUgLS0gIiRfYW1fYXJnIiB8fAorKyRhc19leHByIFgiJF9hbV9hcmciIDogJ1hcKC4qW14v XVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpW14vXScg XHwgXAorKwkgWCIkX2FtX2FyZyIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJF9hbV9hcmciIDog J1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJF9hbV9hcmciIHwKKysg ICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLwor KwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJ ICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQor KwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9Cisr CSAgcy8uKi8uLzsgcSdgL3N0YW1wLWgkX2FtX3N0YW1wX2NvdW50CisrIDs7CisrCisrICA6Qykg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY2 O30KKysgOzsKKysgIGVzYWMKKysKKysKKysgIGNhc2UgJGFjX2ZpbGUkYWNfbW9kZSBpbgorKyAg ICAiZGVwZmlsZXMiOkMpIHRlc3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IGZvciBtZiBpbiAk Q09ORklHX0ZJTEVTOyBkbworKyAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFt ZSBvZiB0aGUgZmlsZS4KKysgIG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCisr ICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUg b3Igbm90LgorKyAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtl ZmlsZS5pbicsIGJ1dAorKyAgIyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3 ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisrICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5l IGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2VzcworKyAgIyBlYWNoIE1ha2Vm aWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4K KysgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZpbGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3Jl cCBoYXMgYSBsaW5lCisrICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBo YXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAwMC4KKysgIGlmIHNlZCAtbiAncyxeIy4qZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlLiosWCxwJyAiJG1mIiB8IGdyZXAgWCA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KKysgICAgZGlycGFydD1gJGFzX2Rpcm5hbWUgLS0gIiRtZiIgfHwKKyskYXNfZXhwciBYIiRt ZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJG1mIiA6ICdYXCgv L1wpW14vXScgXHwgXAorKwkgWCIkbWYiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRtZiIgOiAn WFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkbWYiIHwKKysgICAgc2Vk ICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAg cQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEK KysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0K KysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8u Ki8uLzsgcSdgCisrICBlbHNlCisrICAgIGNvbnRpbnVlCisrICBmaQorKyAgIyBFeHRyYWN0IHRo ZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKKysgICMg ZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtlJy4KKysgIERFUERJUj1gc2Vk IC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisrICB0ZXN0IC16ICIkREVQRElSIiAmJiBj b250aW51ZQorKyAgYW1fX2luY2x1ZGU9YHNlZCAtbiAncy9eYW1fX2luY2x1ZGUgPSAvL3AnIDwg IiRtZiJgCisrICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKKysgIGFtX19xdW90 ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJgCisrICAjIFdoZW4gdXNpbmcg YW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5IG9yIGFuIHVuZGVyc2NvcmU7IGV4cGFuZCBpdAorKyAg VT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAorKyAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5 IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAorKyAgIyAkKERFUERJ UikgaW4gdGhlaXIgbmFtZXMuICBXZSBpbnZva2Ugc2VkIHR3aWNlIGJlY2F1c2UgaXQgaXMgdGhl CisrICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0 dWFsIHZhbHVlIGluIHRoZQorKyAgIyBleHBhbnNpb24uCisrICBmb3IgZmlsZSBpbiBgc2VkIC1u ICIKKysgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19x dW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCisrICAgICAgIHNlZCAtZSAncy9cJChERVBESVIpLyci JERFUERJUiInL2cnIC1lICdzL1wkVS8nIiRVIicvZydgOyBkbworKyAgICAjIE1ha2Ugc3VyZSB0 aGUgZGlyZWN0b3J5IGV4aXN0cy4KKysgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNv bnRpbnVlCisrICAgIGZkaXI9YCRhc19kaXJuYW1lIC0tICIkZmlsZSIgfHwKKyskYXNfZXhwciBY IiRmaWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkgWCIkZmlsZSIg OiAnWFwoLy9cKVteL10nIFx8IFwKKysJIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBY IiRmaWxlIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRmaWxl IiB8CisrICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CisrCSAgICBz Ly9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXClbXi9dLioveworKwkgICAgcy8v XDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJ ICAgIHEKKysJICB9CisrCSAgL15YXChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisr CSAgfQorKwkgIHMvLiovLi87IHEnYAorKyAgICB7IGFzX2Rpcj0kZGlycGFydC8kZmRpcgorKyAg Y2FzZSAkYXNfZGlyIGluICMoCisrICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7CisrICBlc2FjCisr ICB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7ICRhc19ta2Rpcl9wICYmIG1rZGlyIC1wICIkYXNfZGly IjsgfSB8fCB7CisrICAgIGFzX2RpcnM9CisrICAgIHdoaWxlIDo7IGRvCisrICAgICAgY2FzZSAk YXNfZGlyIGluICMoCisrICAgICAgKlwnKikgYXNfcWRpcj1gJGFzX2VjaG8gIiRhc19kaXIiIHwg c2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgIycoCisrICAgICAgKikgYXNfcWRpcj0kYXNfZGly OzsKKysgICAgICBlc2FjCisrICAgICAgYXNfZGlycz0iJyRhc19xZGlyJyAkYXNfZGlycyIKKysg ICAgICBhc19kaXI9YCRhc19kaXJuYW1lIC0tICIkYXNfZGlyIiB8fAorKyRhc19leHByIFgiJGFz X2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJGFzX2RpciIg OiAnWFwoLy9cKVteL10nIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKKysJ IFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIk YXNfZGlyIiB8CisrICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Cisr CSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXClbXi9dLioveworKwkg ICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpJC97CisrCSAgICBzLy9c MS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAg ICBxCisrCSAgfQorKwkgIHMvLiovLi87IHEnYAorKyAgICAgIHRlc3QgLWQgIiRhc19kaXIiICYm IGJyZWFrCisrICAgIGRvbmUKKysgICAgdGVzdCAteiAiJGFzX2RpcnMiIHx8IGV2YWwgIm1rZGly ICRhc19kaXJzIgorKyAgfSB8fCB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19k aXIiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrICAgICMgZWNobyAi Y3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisrICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0 LyRmaWxlIgorKyAgZG9uZQorK2RvbmUKKysgOzsKKysKKysgIGVzYWMKKytkb25lICMgZm9yIGFj X3RhZworKworKworK3sgKGV4aXQgMCk7IGV4aXQgMDsgfQorK19BQ0VPRgorK2NobW9kICt4ICRD T05GSUdfU1RBVFVTCisrYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKKysKKyt0 ZXN0ICRhY193cml0ZV9mYWlsID0gMCB8fAorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IHdyaXRlIGZhaWx1cmUgY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RB VFVTIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworKworKyMgY29uZmln dXJlIGlzIHdyaXRpbmcgdG8gY29uZmlnLmxvZywgYW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0YXR1 cy4KKysjIGNvbmZpZy5zdGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcg dG8gY29uZmlnLmxvZy4KKysjIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBj b25maWcubG9nIGlzIHN0aWxsIGtlcHQgb3BlbgorKyMgYnkgY29uZmlndXJlLCBzbyBjb25maWcu c3RhdHVzIHdvbid0IGJlIGFibGUgdG8gd3JpdGUgdG8gaXQ7IGl0cworKyMgb3V0cHV0IGlzIHNp bXBseSBkaXNjYXJkZWQuICBTbyB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCisrIyBlZmZl Y3RpdmVseSBjbG9zaW5nIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3Bl bmVkIGFuZAorKyMgYXBwZW5kZWQgdG8gYnkgY29uZmlnLnN0YXR1cy4gIFdoZW4gY29taW5nIGJh Y2sgdG8gY29uZmlndXJlLCB3ZQorKyMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdh aW4uCisraWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCisrICBhY19jc19zdWNjZXNz PToKKysgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0KKysgIHRlc3QgIiRzaWxlbnQiID0geWVzICYm CisrICAgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0iJGFjX2NvbmZpZ19zdGF0dXNfYXJncyAtLXF1 aWV0IgorKyAgZXhlYyA1Pi9kZXYvbnVsbAorKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19j b25maWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQorKyAgZXhlYyA1Pj5jb25m aWcubG9nCisrICAjIFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlm IHdpdGggJD8gPSAxLCB3aGljaAorKyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRo aXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCisrICAkYWNfY3Nfc3VjY2VzcyB8fCB7IChleGl0 IDEpOyBleGl0IDE7IH0KKytmaQorK2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6ZWRfb3B0cyIg JiYgdGVzdCAiJGVuYWJsZV9vcHRpb25fY2hlY2tpbmciICE9IG5vOyB0aGVuCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191 bnJlY29nbml6ZWRfb3B0cyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNv Z25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyO30KKytmaQorKworKwor K2VjaG8gIgorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyRQQUNLQUdFLSRWRVJTSU9OIGxpYnJh cnkgY29uZmlndXJhdGlvbjoKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytEaXJlY3Rvcmll czoKKysgIC0gcHJlZml4IC4uLi4uLi4uLi4uLi4uLiA6ICR7cHJlZml4fQorKyAgLSBleGVjX3By ZWZpeCAuLi4uLi4uLi4uIDogJHtleGVjX3ByZWZpeH0KKysgIC0gaW5jbHVkZWRpciAuLi4uLi4u Li4uLiA6ICR7aW5jbHVkZWRpcn0KKysgIC0gbGliZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bGli ZGlyfQorKyAgLSBkb2NkaXIgLi4uLi4uLi4uLi4uLi4uIDogJHtkb2NkaXJ9CisrICAtIG1hbmRp ciAuLi4uLi4uLi4uLi4uLi4gOiAke21hbmRpcn0KKysgIC0gaW5mb2RpciAuLi4uLi4uLi4uLi4u LiA6ICR7aW5mb2Rpcn0KKysKKytTd2l0Y2hlczoKKysgIC0gZXhjZXB0aW9ucyAuLi4uLi4uLi4u LiA6ICR7ZW5hYmxlX2V4Y2VwdGlvbnN9CisrICAtIGluZm8tZG9jIC4uLi4uLi4uLi4uLi4gOiAk e2VuYWJsZV9pbmZvX2RvY30KKysgIC0gaHRtbC1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxl X2h0bWxfZG9jfQorKyAgLSBzaGFyZWQgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc2hhcmVk fQorKyAgLSBzdGF0aWMgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc3RhdGljfQorKworK0Rv Y3VtZW50YXRpb24gdG9vbHM6CisrICAtIHRleGluZm8gLi4uLi4uLi4uLi4uLi4gOiAke3RleGlu Zm9fb2t9CisrICAtIGRveHlnZW4gLi4uLi4uLi4uLi4uLi4gOiAke2RveHlnZW5fb2t9CisrICAt IGxhdGV4IC4uLi4uLi4uLi4uLi4uLi4gOiAke2xhdGV4X29rfQorKyAgLSBkdmlwcyAuLi4uLi4u Li4uLi4uLi4uIDogJHtkdmlwc19va30KKysgIC0gZ2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6ICR7 Z3Nfb2t9CisrCisrVGVzdGluZyB0b29sczoKKysgIC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4uLiA6 ICR7ZGlmZl9va30KKysgIC0gc2VkIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7c2VkX29rfQorKwor K0NvbXBpbGVyL2xpbmtlciBmbGFncy9saWJzL2RlZnM6CisrICAtIENYWCAuLi4uLi4uLi4uLi4u Li4uLi4gOiAke0NYWH0KKysgIC0gQ1hYRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxBR1N9 CisrICAtIENQUEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NQUEZMQUdTfQorKyAgLSBMREZMQUdT IC4uLi4uLi4uLi4uLi4uIDogJHtMREZMQUdTfQorKyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4uLi4u IDogJHtMSUJTfQorKworK0J1cnJpZWQgaGVhZGVyIGZpbGVzOgorKyAgLSBTT0NJX0hFQURFUlNf QlVSSUVEIC4uLi4uLi4gOiAke2VuYWJsZV9idXJyaWVkX2hlYWRlcnN9CisrICAtIE1ZU1FMX0hF QURFUlNfQlVSSUVEIC4uLi4uLiA6ICR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyc30KKysg IC0gUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAuIDogJHtlbmFibGVfcG9zdGdyZXNxbF9idXJy aWVkX2hlYWRlcnN9CisrCisrRXh0ZXJuYWwgbGlicmFyaWVzOgorKyAgLSBCb29zdCAuLi4uLi4u Li4uLi4uLi4uIDoKKysgICAgbyBCT09TVF9WRVJTSU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVSU0lP Tn0KKysgICAgbyBCT09TVF9DRkxBR1MgLi4uLi4uLiA6ICR7Qk9PU1RfQ0ZMQUdTfQorKyAgICBv IEJPT1NUX0xJQlMgLi4uLi4uLi4uIDogJHtCT09TVF9MSUJTfQorKyAgICBvIEJPT1NUX0RUX0xJ QiAuLi4uLi4uIDogJHtCT09TVF9EQVRFX1RJTUVfTElCfQorKyAgICBvIEJPT1NUX1BPX0xJQiAu Li4uLi4uIDogJHtCT09TVF9QUk9HUkFNX09QVElPTlNfTElCfQorKworKyAgLSBNeVNRTCBzdXBw b3J0IC4uLi4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9teXNxbH0KKysgICAgbyBNWVNRTF9WRVJT SU9OIC4uLi4uLiA6ICR7TVlTUUxfVkVSU0lPTn0KKysgICAgbyBNWVNRTF9DRkxBR1MgLi4uLi4u LiA6ICR7TVlTUUxfQ0ZMQUdTfQorKyAgICBvIE1ZU1FMX0xERkxBR1MgLi4uLi4uIDogJHtNWVNR TF9MREZMQUdTfQorKworKyAgLSBQb3N0R3JlU1FMIHN1cHBvcnQgLi4uIDogJHtlbmFibGVfYmFj a2VuZF9wb3N0Z3Jlc3FsfQorKyAgICBvIFBPU1RHUkVTUUxfVkVSU0lPTiAuIDogJHtQT1NUR1JF U1FMX1ZFUlNJT059CisrICAgIG8gUE9TVEdSRVNRTF9DRkxBR1MgLi4gOiAke1BPU1RHUkVTUUxf Q0ZMQUdTfQorKyAgICBvIFBPU1RHUkVTUUxfTERGTEFHUyAuIDogJHtQT1NUR1JFU1FMX0xERkxB R1N9CisrCisrICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29y YWNsZX0KKysgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9O fQorKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KKysg ICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfQorKworKyAg LSBDUFBVbml0IC4uLi4uLi4uLi4uLi4uIDoKKysgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6 ICR7Q1BQVU5JVF9WRVJTSU9OfQorKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBV TklUX0NGTEFHU30KKysgICAgbyBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJT fQorKworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5z dGFsbCcgdG8gYnVpbGQgYW5kIGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQorKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWd1cmUuYWMgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZS5hYworLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZ3VyZS5hYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUuYWMJMjAwOS0wNS0wMyAwMDowMTo0My4w MDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNDAwIEBACisrIyBQcm9jZXNzIHRoaXMgZmlsZSB3 aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0CisrIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KytBQ19QUkVSRVEoMi41OSkKKytBQ19DT1BZUklHSFQoW0NvcHlyaWdodCAoQykgMjAwNC0yMDA5 IE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+XSkKKytBQ19J TklUKFtTT0NJXSxbMy4wLjBdLFttc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXRdLFtzb2Np XSkKKytBQ19DT05GSUdfSEVBREVSKFtzb2NpL2NvbmZpZy5oXSkKKytBQ19DT05GSUdfU1JDRElS KFtzb2NpL2NvcmUvZXJyb3IuY3BwXSkKKytBQ19DT05GSUdfQVVYX0RJUihbY29uZmlnXSkKKytB TV9JTklUX0FVVE9NQUtFCisrQU1fUEFUSF9DUFBVTklUKDEuMTApCisrQU1fQ09ORElUSU9OQUwo W0hBVkVfQ1BQVU5JVF0sIFt0ZXN0ICJ4JENQUFVOSVRfTElCUyIgIT0geF0pCisrCisrIyBSUE0g cmVsZWFzZSBudW1iZXIKKytSUE1fUkVMRUFTRT0iNiIKKytBQ19TVUJTVChSUE1fUkVMRUFTRSkK KysKKysjIFNoYXJlZCBsaWJyYXJ5IHZlcnNpb25pbmcKKytHRU5FUklDX0xJQlJBUllfVkVSU0lP Tj0iMzowOjAiCisrIyAgICAgICAgICAgICAgICAgICAgICAgIHwgfCB8CisrIyAgICAgICAgICAg ICAgICAgKy0tLS0tLSsgfCArLS0tKworKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAg IHwKKysjICAgICAgICAgICAgICBjdXJyZW50OnJldmlzaW9uOmFnZQorKyMgICAgICAgICAgICAg ICAgIHwgICAgICAgIHwgICAgIHwKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAr LSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4gYWRkZWQ7CisrIyAgICAgICAgICAg ICAgICAgfCAgICAgICAgfCAgICAgICAgc2V0IHRvIHplcm8gaWYgaW50ZXJmYWNlcyBoYXZlIGJl ZW4gCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgcmVtb3ZlZCBvciBjaGFu Z2VkCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgKy0gaW5jcmVtZW50IGlmIHNvdXJjZSBj b2RlIGhhcyBjaGFuZ2VkOworKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHNldCB0byB6 ZXJvIGlmIGN1cnJlbnQgaXMgaW5jcmVtZW50ZWQKKysjICAgICAgICAgICAgICAgICArLSBpbmNy ZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4gYWRkZWQsIHJlbW92ZWQKKysjICAgICAgICAg ICAgICAgICAgICBvciBjaGFuZ2VkCisrQUNfU1VCU1QoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04p CisrCisrIyBVcGxvYWQgY29tbWFuZCBmb3IgU291cmNlRm9yZ2UKKytVUExPQURfQ09NTUFORD0i bmNmdHBwdXQgLXYgdXBsb2FkLnNvdXJjZWZvcmdlLm5ldCAvaW5jb21pbmciCisrQUNfU1VCU1Qo VVBMT0FEX0NPTU1BTkQpCisrCisrIyBDaGVjayBmb3IgaG9zdCBhbmQgZGlzYWJsZSBidWlsZGlu ZyBhIHNoYXJlZCBsaWJyYXJ5IGluIFdpbmRvd3MKKytBQ19DQU5PTklDQUxfSE9TVAorK2Nhc2Ug JGhvc3QgaW4KKysgICotKi1tc2RvcyogfCAqLSotZ28zMiogfCAqLSotbWluZ3czMiogfCAqLSot Y3lnd2luKiB8ICotKi13aW5kb3dzKikgCisrICAgIEFDX0RJU0FCTEVfU0hBUkVECisrICAgIEFD X0VOQUJMRV9TVEFUSUMKKysgICAgOzsKKysgICopICAKKysgICAgQUNfRU5BQkxFX1NIQVJFRAor KyAgICBBQ19ESVNBQkxFX1NUQVRJQworKyAgICA7OworK2VzYWMKKysKKysjIENoZWNrcyBmb3Ig cHJvZ3JhbXMKKytzYXZlX0NYWEZMQUdTPSIkQ1hYRkxBR1MiCisrQUNfUFJPR19DWFgKKytBQ19Q Uk9HX0NYWENQUAorK0NYWEZMQUdTPSIkc2F2ZV9DWFhGTEFHUyIKKytBQ19QUk9HX0lOU1RBTEwK KytBQ19QUk9HX0xJQlRPT0wKKytBQ19QUk9HX0xOX1MKKytBQ19QUk9HX01BS0VfU0VUCisrCisr IyBTZXQgZGVmYXVsdCBsYW5ndWFnZSB0byBDKysKKytBQ19MQU5HKFtDKytdKQorKworKyMgQ2hl Y2sgZm9yIGV4Y2VwdGlvbnMgc3dpdGNoCisrQUNfQVJHX0VOQUJMRShleGNlcHRpb25zLAorKyAg ICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1leGNlcHRpb25zXSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlIGV4Y2VwdGlvbnMgaGFuZGxpbmcgbWVj aGFuaXNtXSldLAorKyAgICAgICAgICAgICAgW0FDX0RFRklORShbU09DSV9FWENFUFRJT05TXSwg WzFdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmaW5lIGlmIHlvdSB3YW50IGV4Y2Vw dGlvbnMgaGFuZGxpbmddKV0pCisrdGVzdCAieCRlbmFibGVfZXhjZXB0aW9ucyIgIT0geG5vICYm IGVuYWJsZV9leGNlcHRpb25zPXllcworK3Rlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiAh PSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrCisrIyBDaGVjayBmb3IgaW5mbyBwYWdl cworK0FDX0FSR19FTkFCTEUoaW5mby1kb2MsIAorKyAgICAgICAgICAgICAgW0FTX0hFTFBfU1RS SU5HKFstLWRpc2FibGUtaW5mby1kb2NdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtkbyBub3QgZ2VuZXJhdGUgSW5mbyBkb2N1bWVudGF0aW9uXSldKQorK3Rlc3QgIngkZW5hYmxl X2luZm9fZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2luZm9fZG9jPXllcworKworKworKyMgQ2hlY2sg Zm9yIGh0bWwtZG9jIHN3aXRjaAorK0FDX0FSR19FTkFCTEUoaHRtbC1kb2MsIAorKyAgICAgICAg ICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtaHRtbC1kb2NdLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtkbyBub3QgZ2VuZXJhdGUgSFRNTCBkb2N1bWVudGF0aW9uXSld KQorK3Rlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2h0bWxfZG9jPXll cworKworKworKyMgUHJvdmlkZSAtLXdpdGgtZG9jZGlyCisrQUNfQVJHX1dJVEgoZG9jZGlyLAor KyAgICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWRvY2Rpcj1ESVJdLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbc2V0IGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHRvIERJ Ul0pXSwKKysgICAgICAgICAgICBbRE9DX0RJUj0iJHdpdGh2YWwiXSwKKysgICAgICAgICAgICBb RE9DX0RJUj0iIl0pCisraWYgdGVzdCAieCRET0NfRElSIiAhPSB4OyB0aGVuCisrICBkb2NkaXI9 IiRET0NfRElSIgorK2Vsc2UKKysgIGRvY2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZF UlNJT04iCisrZmkKKytBQ19TVUJTVChkb2NkaXIpCisrCisrCisrIyBDaGVjayBmb3IgYnVycmll ZCBoZWFkZXIgZmlsZXMgKGZvciBTT0NJIGl0c2VsZikKKytBQ19BUkdfRU5BQkxFKGJ1cnJpZWQt aGVhZGVycywgCisrIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1idXJyaWVkLWhlYWRlcnNdLAor KwkJW2luY2x1ZGUgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlXSksCisr IFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIGVuYWJsZV9idXJyaWVk X2hlYWRlcnM9bm8KKysgICBlbHNlCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMK KysgICBmaSBdLAorKyBbIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8gXSkKKysjIFRlbXBvcmFy eSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9idXJyaWVkX2hlYWRl cnM9eWVzCisrQU1fQ09ORElUSU9OQUwoW1NPQ0lfSEVBREVSU19CVVJJRURdLCBbdGVzdCAieCRl bmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXNdKQorK0FDX1NVQlNUKFNPQ0lfSEVBREVSU19C VVJJRUQpCisraWYgdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4K KysgICBDUFBGTEFHUz0iLURTT0NJX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKKytmaQorKwor KyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgTXlTUUwgY2xpZW50KQorK0FD X0FSR19FTkFCTEUobXlzcWwtYnVycmllZC1oZWFkZXJzLCAKKysgQVNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVyc10sCisrCQlbaW5jbHVkZSBNeVNRTCBoZWFkZXIg ZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKKysgWyBpZiB0ZXN0ICIkZW5hYmxl dmFsIiA9IG5vOyB0aGVuCisrCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBl bHNlCisrCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrICAgZmkgXSwKKysgWyBl bmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vIF0pCisrIyBUZW1wb3JhcnksIGZvciB0aGUg UlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXll cworK0FNX0NPTkRJVElPTkFMKFtTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEXSwKKysgICAgICAg ICAgICAgICBbdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXNdKQor K0FDX1NVQlNUKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCisraWYgdGVzdCAieCRlbmFibGVf bXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBGTEFHUz0iLURTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKKytmaQorKworKyMgQ2hlY2sgZm9yIGJ1 cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgUG9zdEdyZVNRTCBjbGllbnQpCisrQUNfQVJHX0VOQUJM RShwb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycywgCisrIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJs ZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVyc10sCisrCQlbaW5jbHVkZSBQb3N0R3JlU1FMIGhl YWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAorKyBbIGlmIHRlc3QgIiRl bmFibGV2YWwiID0gbm87IHRoZW4KKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJz PW5vCisrICAgZWxzZQorKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisr ICAgZmkgXSwKKysgWyBlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8gXSkKKysj IFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9wb3N0 Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKytBTV9DT05ESVRJT05BTChbU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEXSwKKysgICAgICAgICAgICAgICBbdGVzdCAieCRlbmFibGVfcG9z dGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllc10pCisrQUNfU1VCU1QoU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEKQorK2lmIHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmll ZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBGTEFHUz0iLURTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2ZpCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQm9vc3QgKFNUTCBF eHRlbnNpb25zOiBodHRwOi8vd3d3LmJvb3N0Lm9yZykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQVhfQk9PU1QoWzEuMzNdKQor K0FDX1NVQlNUKEJPT1NUX1ZFUlNJT04pCisrQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKQorK0FDX1NV QlNUKEJPT1NUX0xJQlMpCisrQUNfU1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikKKytBQ19TVUJT VChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKQorKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1 cHBvcnQgZm9yIE15U1FMIGJhY2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93d3cubXlzcWwu b3JnCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtbXlzcWxdLAorKyAg ICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1teXNxbF0sCisrICAgICAgICBbYnVp bGQtaW4gTXlTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0KKysgICAgKSwK KysgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVf YmFja2VuZF9teXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX215c3FsPXll cworKyAgICAgIGZpIF0sCisrICAgIFsgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8gXQorKykKKysK KytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE1Z U1FMX0RJUlM9Im15c3FsIgorKyAgIE1ZU1FMX1JFUV9WRVJTSU9OPSIzLjAuMCIKKysgICBBWF9M SUJfTVlTUUwoWyRNWVNRTF9SRVFfVkVSU0lPTl0pCisrZmkKKytBTV9DT05ESVRJT05BTChbSEFW RV9NWVNRTF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9IHh5ZXNdKQorKyNNWVNR TF9ESVJTPSJteXNxbCIKKysKKytBQ19TVUJTVChbTVlTUUxfRElSU10pCisrCisrCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBTdXBwb3J0IGZvciBPcmFjbGUgYmFja2VuZAorKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FD X0FSR19FTkFCTEUoW2JhY2tlbmQtb3JhY2xlXSwKKysgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5h YmxlLWJhY2tlbmQtb3JhY2xlXSwKKysJCSAgIFtidWlsZC1pbiBPUkFDTEUgYmFja2VuZCBzdXBw b3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0pLAorKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0g bm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubworKyAgICAgIGVsc2UK KysJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT15ZXMKKysgICAgICBmaSBdLAorKyAgICBbIGVuYWJs ZV9iYWNrZW5kX29yYWNsZT1ubyBdCisrKQorKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRf b3JhY2xlIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE9SQUNMRV9ESVJTPSJvcmFjbGUiCisrICAgT1JB Q0xFX09DSV9SRVFfVkVSU0lPTj0iOS4wIgorKyAgIEFYX0xJQl9PUkFDTEVfT0NJKCRPUkFDTEVf T0NJX1JFUV9WRVJTSU9OKQorK2ZpCisrQU1fQ09ORElUSU9OQUwoW0hBVkVfT1JBQ0xFXSwgW3Rl c3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9IHh5ZXNdKQorKyNPUkFDTEVfRElSUz0ib3Jh Y2xlIgorKworK0FDX1NVQlNUKFtPUkFDTEVfRElSU10pCisrCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBT dXBwb3J0IGZvciBQb3N0Z3JlU1FMIGJhY2tlbmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19BUkdfRU5B QkxFKFtiYWNrZW5kLXBvc3RncmVzcWxdLAorKyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUt YmFja2VuZC1wb3N0Z3Jlc3FsXSwKKysgICAgICAgIFtidWlsZC1pbiBQb3N0Z3JlU1FMIGJhY2tl bmQgc3VwcG9ydCBAPDpAZGVmYXVsdD1ub0A6PkBdCisrICAgICksCisrICAgIFsgaWYgdGVzdCAi JGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNx bD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9eWVzCisrICAg ICAgZmkgXSwKKysgICAgWyBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vIF0KKyspCisrCisr aWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAg IFBPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysgICBQT1NUR1JFU1FMX1JFUV9WRVJTSU9O PSI3LjEuNCIKKysgICBBWF9MSUJfUE9TVEdSRVNRTCgkUE9TVEdSRVNRTF9SRVFfVkVSU0lPTikK KytmaQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX1BPU1RHUkVTUUxdLCBbdGVzdCAieCRlbmFibGVf YmFja2VuZF9wb3N0Z3Jlc3FsIiA9IHh5ZXNdKQorKyNQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVz cWwiCisrCisrQUNfU1VCU1QoW1BPU1RHUkVTUUxfRElSU10pCisrCisrCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBTdXBwb3J0IGZvciBkb2N1bWVudGF0aW9uCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVja3Mg Zm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKKysjQUNfQ0hFQ0tfUFJPRyhbdGV4aW5mb19v a10sIFt0ZXhpbmZvXSwgW3llc10sIFtub10pCisrI2lmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9j IiAhPSB4bm87IHRoZW4KKysjICB0ZXN0ICJ4JHRleGluZm9fb2siICE9IHh5ZXMgJiYgZW5hYmxl X2luZm9fZG9jPW5vCisrIyAgQUNfUEFUSF9QUk9HKFtQRVJMXSwgW3BlcmxdLCBbXSkKKysjZmkK KytBTV9DT05ESVRJT05BTChbSU5GT19ET0NdLCBbdGVzdCAieCRlbmFibGVfaW5mb19kb2MiID0g eHllc10pCisrCisrIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKKytBQ19D SEVDS19QUk9HKFtkb3h5Z2VuX29rXSwgW2RveHlnZW5dLCBbeWVzXSwgW25vXSkKKytBQ19DSEVD S19QUk9HKFtsYXRleF9va10sIFtsYXRleF0sIFt5ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0co W2R2aXBzX29rXSwgW2R2aXBzXSwgW3llc10sIFtub10pCisrQUNfQ0hFQ0tfUFJPRyhbZ3Nfb2td LCBbZ3NdLCBbeWVzXSwgW25vXSkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5v OyB0aGVuCisrICB0ZXN0ICJ4JGRveHlnZW5fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9j PW5vCisrICB0ZXN0ICJ4JGxhdGV4X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwor KyAgdGVzdCAieCRkdmlwc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRl c3QgIngkZ3Nfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICBBQ19QQVRIX1BS T0coW1BFUkxdLCBbcGVybF0sIFtdKQorK2ZpCisrQU1fQ09ORElUSU9OQUwoW0hUTUxfRE9DXSwg W3Rlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXNdKQorKworKworKyMgQ2hlY2sgZm9yIGRp ZmYgcHJvZ3JhbSB1c2VkIGZvciB0ZXN0cworK0FDX0NIRUNLX1BST0coW2RpZmZfb2tdLCBbZGlm Zl0sIFt5ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0coW3NlZF9va10sIFtzZWRdLCBbeWVzXSwg W25vXSkKKytlbmFibGVfdGVzdHM9eWVzCisrdGVzdCAieCRkaWZmX29rIiAhPSB4eWVzICYmIGVu YWJsZV90ZXN0cz1ubworK3Rlc3QgIngkc2VkX29rIiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1u bworK0FNX0NPTkRJVElPTkFMKFtSVU5fVEVTVFNdLCBbdGVzdCAieCRlbmFibGVfdGVzdHMiID0g eHllc10pCisrCisrCisrIyBDaGVja3MgZm9yIGhlYWRlciBmaWxlcworK0FDX0hFQURFUl9TVERD CisrQUNfSEVBREVSX1RJTUUKKytBQ19DSEVDS19IRUFERVJTKFtjbWF0aCBcCisrICBkZXF1ZSBc CisrICBmc3RyZWFtIFwKKysgIGlvbWFuaXAgXAorKyAgaW9zdHJlYW0gXAorKyAgc3N0cmVhbSBc CisrICBsaW1pdHMgXAorKyAgbGlzdCBcCisrICBzZXQgXAorKyAgdmVjdG9yIFwKKysgIG1hcCBc CisrICBxdWV1ZSBcCisrICBzdGRleGNlcHQgXAorKyAgc3RyaW5nXSkKKysKKysKKysjIERlZmlu ZSBjb25maWd1cmVkIGZpbGVzCisrQUNfQ09ORklHX0ZJTEVTKAorKwlNYWtlZmlsZQorKwlzb2Np LWNvbmZpZworKwlzb2NpLnBjCisrCXNvY2kuc3BlYworKwlzb2NpL01ha2VmaWxlCisrCXNvY2kv Y29yZS9NYWtlZmlsZQorKwlzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRz L01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmls ZQorKwlzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZQorKwlzb2NpL2JhY2tl bmRzL29yYWNsZS9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxl CisrCW1hbi9NYWtlZmlsZQorKyAgICAgICAgZG9jL01ha2VmaWxlCisrICAgICAgICBkb2MvYmFj a2VuZHMvTWFrZWZpbGUKKysJYnVpbGQvTWFrZWZpbGUKKysJYnVpbGQvdW5peC9NYWtlZmlsZQor KwlidWlsZC9tc3ZjODAvTWFrZWZpbGUKKysJYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZQorKwli dWlsZC9tc3ZjODAvbGliL01ha2VmaWxlKQorKworK0FDX09VVFBVVAorKworK2VjaG8gIgorKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkgY29uZmlndXJh dGlvbjoKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytEaXJlY3RvcmllczoKKysgIC0gcHJl Zml4IC4uLi4uLi4uLi4uLi4uLiA6ICR7cHJlZml4fQorKyAgLSBleGVjX3ByZWZpeCAuLi4uLi4u Li4uIDogJHtleGVjX3ByZWZpeH0KKysgIC0gaW5jbHVkZWRpciAuLi4uLi4uLi4uLiA6ICR7aW5j bHVkZWRpcn0KKysgIC0gbGliZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bGliZGlyfQorKyAgLSBk b2NkaXIgLi4uLi4uLi4uLi4uLi4uIDogJHtkb2NkaXJ9CisrICAtIG1hbmRpciAuLi4uLi4uLi4u Li4uLi4gOiAke21hbmRpcn0KKysgIC0gaW5mb2RpciAuLi4uLi4uLi4uLi4uLiA6ICR7aW5mb2Rp cn0KKysKKytTd2l0Y2hlczoKKysgIC0gZXhjZXB0aW9ucyAuLi4uLi4uLi4uLiA6ICR7ZW5hYmxl X2V4Y2VwdGlvbnN9CisrICAtIGluZm8tZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9pbmZv X2RvY30KKysgIC0gaHRtbC1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2h0bWxfZG9jfQor KyAgLSBzaGFyZWQgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc2hhcmVkfQorKyAgLSBzdGF0 aWMgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc3RhdGljfQorKworK0RvY3VtZW50YXRpb24g dG9vbHM6CisrICAtIHRleGluZm8gLi4uLi4uLi4uLi4uLi4gOiAke3RleGluZm9fb2t9CisrICAt IGRveHlnZW4gLi4uLi4uLi4uLi4uLi4gOiAke2RveHlnZW5fb2t9CisrICAtIGxhdGV4IC4uLi4u Li4uLi4uLi4uLi4gOiAke2xhdGV4X29rfQorKyAgLSBkdmlwcyAuLi4uLi4uLi4uLi4uLi4uIDog JHtkdmlwc19va30KKysgIC0gZ2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6ICR7Z3Nfb2t9CisrCisr VGVzdGluZyB0b29sczoKKysgIC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZGlmZl9va30K KysgIC0gc2VkIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7c2VkX29rfQorKworK0NvbXBpbGVyL2xp bmtlciBmbGFncy9saWJzL2RlZnM6CisrICAtIENYWCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke0NY WH0KKysgIC0gQ1hYRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxBR1N9CisrICAtIENQUEZM QUdTIC4uLi4uLi4uLi4uLi4gOiAke0NQUEZMQUdTfQorKyAgLSBMREZMQUdTIC4uLi4uLi4uLi4u Li4uIDogJHtMREZMQUdTfQorKyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtMSUJTfQor KworK0J1cnJpZWQgaGVhZGVyIGZpbGVzOgorKyAgLSBTT0NJX0hFQURFUlNfQlVSSUVEIC4uLi4u Li4gOiAke2VuYWJsZV9idXJyaWVkX2hlYWRlcnN9CisrICAtIE1ZU1FMX0hFQURFUlNfQlVSSUVE IC4uLi4uLiA6ICR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyc30KKysgIC0gUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCAuIDogJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnN9 CisrCisrRXh0ZXJuYWwgbGlicmFyaWVzOgorKyAgLSBCb29zdCAuLi4uLi4uLi4uLi4uLi4uIDoK KysgICAgbyBCT09TVF9WRVJTSU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVSU0lPTn0KKysgICAgbyBC T09TVF9DRkxBR1MgLi4uLi4uLiA6ICR7Qk9PU1RfQ0ZMQUdTfQorKyAgICBvIEJPT1NUX0xJQlMg Li4uLi4uLi4uIDogJHtCT09TVF9MSUJTfQorKyAgICBvIEJPT1NUX0RUX0xJQiAuLi4uLi4uIDog JHtCT09TVF9EQVRFX1RJTUVfTElCfQorKyAgICBvIEJPT1NUX1BPX0xJQiAuLi4uLi4uIDogJHtC T09TVF9QUk9HUkFNX09QVElPTlNfTElCfQorKworKyAgLSBNeVNRTCBzdXBwb3J0IC4uLi4uLi4u IDogJHtlbmFibGVfYmFja2VuZF9teXNxbH0KKysgICAgbyBNWVNRTF9WRVJTSU9OIC4uLi4uLiA6 ICR7TVlTUUxfVkVSU0lPTn0KKysgICAgbyBNWVNRTF9DRkxBR1MgLi4uLi4uLiA6ICR7TVlTUUxf Q0ZMQUdTfQorKyAgICBvIE1ZU1FMX0xERkxBR1MgLi4uLi4uIDogJHtNWVNRTF9MREZMQUdTfQor KworKyAgLSBQb3N0R3JlU1FMIHN1cHBvcnQgLi4uIDogJHtlbmFibGVfYmFja2VuZF9wb3N0Z3Jl c3FsfQorKyAgICBvIFBPU1RHUkVTUUxfVkVSU0lPTiAuIDogJHtQT1NUR1JFU1FMX1ZFUlNJT059 CisrICAgIG8gUE9TVEdSRVNRTF9DRkxBR1MgLi4gOiAke1BPU1RHUkVTUUxfQ0ZMQUdTfQorKyAg ICBvIFBPU1RHUkVTUUxfTERGTEFHUyAuIDogJHtQT1NUR1JFU1FMX0xERkxBR1N9IAorKworKyAg LSBPcmFjbGUgc3VwcG9ydCAuLi4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9vcmFjbGV9CisrICAg IG8gT1JBQ0xFX1ZFUlNJT04gLi4uLi4gOiAke09SQUNMRV9PQ0lfVkVSU0lPTn0KKysgICAgbyBP UkFDTEVfQ0ZMQUdTIC4uLi4uLiA6ICR7T1JBQ0xFX09DSV9DRkxBR1N9CisrICAgIG8gT1JBQ0xF X0xERkxBR1MgLi4uLi4gOiAke09SQUNMRV9PQ0lfTERGTEFHU30gCisrCisrICAtIENQUFVuaXQg Li4uLi4uLi4uLi4uLi4gOgorKyAgICBvIENQUFVOSVRfVkVSU0lPTiAuLi4uIDogJHtDUFBVTklU X1ZFUlNJT059CisrICAgIG8gQ1BQVU5JVF9DRkxBR1MgLi4uLi4gOiAke0NQUFVOSVRfQ0ZMQUdT fQorKyAgICBvIENQUFVOSVRfTElCUyAuLi4uLi4uIDogJHtDUFBVTklUX0xJQlN9CisrCisrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrTm93IHR5cGUgJ21ha2UgJiYgbWFrZSBpbnN0YWxsJyB0byBi dWlsZCBhbmQgaW5zdGFsbCAkUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5CisrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0NPUFlJTkcgc29jaS0z LjAuMF90cmVwMzAwL0NPUFlJTkcKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9DT1BZSU5HCTIwMDkt MDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL0NP UFlJTkcJMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMSwzICsyMSw0 IEBACisgRk9SIEFOWSBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgREVBTElOR1Mg SU4gVEhFIFNPRlRXQVJFLgorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNr ZW5kcy9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxl LmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2Rv Yy9iYWNrZW5kcy9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjUwOjM4LjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSwxNiBAQAorKyMjIGRvYy9iYWNrZW5kcyBzdWItZGlyZWN0b3J5CisraW5j bHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3Nv dXJjZXMubWsKKysKKysjIyBTb3VyY2UgZGlyZWN0b3J5CisrCisrTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgorKworK1NVQkRJUlMgPQorKworK0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9ICQoaHRtbF9iY2tfc291cmNlcykKKysjZmlyZWJpcmQuaHRtbCBpbmRl eC5odG1sIG15c3FsLmh0bWwgb2RiYy5odG1sIG9yYWNsZS5odG1sIHBvc3RncmVzcWwuaHRtbCBz cWxpdGUzLmh0bWwKKysKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkpCisrCisrI3BrZ2RhdGFkaXIgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluIHNvY2ktMy4wLjBf dHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9k b2MvYmFja2VuZHMvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCTIwMDkt MDUtMDMgMDA6MjA6NDAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDU0OCBAQAorKyMgTWFr ZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgor KyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5 NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIw MDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMg VGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0 cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMg dGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBz cmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0g JChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNL QUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9S KSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2lu c3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9 ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3Ry YW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoK KytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9 IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBs ZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNy Y2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJChzcmNkaXIpL3Nv dXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBkb2MvYmFj a2VuZHMKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9j YWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09O RklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9 ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kv Y29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNF UyA9CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBk dmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1k YXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVj dXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZl IFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwt cmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNp dmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisr UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVj dXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNp dmUKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VC RElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJ TkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRB UkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFV VE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9D RkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFU RV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJ QkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1Rf TElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElC QAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAor K0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9M SUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9 IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NU X1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9 IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklU X0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NP TkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9 IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NY WERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRI X1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RT WU1VVElMID0gQERTWU1VVElMQAorK0VDSE8gPSBARUNIT0AKKytFQ0hPX0MgPSBARUNIT19DQAor K0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAK KytFWEVFWFQgPSBARVhFRVhUQAorK0Y3NyA9IEBGNzdACisrRkZMQUdTID0gQEZGTEFHU0AKKytH RU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQ ID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxM X0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1ND UklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFM TF9TVFJJUF9QUk9HUkFNQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9C SlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMTl9TID0gQExOX1NA CisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJ Ul9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9D T05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNR TF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJT SU9OQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElS UyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFH U0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9P Q0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrUEFDS0FHRSA9IEBQQUNLQUdFQAor K1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9 IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFD S0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFD S0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwg PSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0g QFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNA CisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FM X1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBN X1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRf TUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVB REVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1B TkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRp ciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3Bf YnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9w X3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hY QAorK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVA CisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1f X3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAor K2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVp bGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9v c0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGly QAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytk aWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRv eHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytl eGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhv c3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAor K2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1s ZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBA aW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhf b2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9j YWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisr bWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9 IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAK Kytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNk aXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisr c2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytz eXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AK Kyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0g QHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1Mg PSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytodG1sX2Jja19zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBcCisrCSQodG9wX3NyY2Rpcikv ZG9jL2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5k cy9teXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAorKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9i YWNrZW5kcy9zcWxpdGUzLmh0bWwKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxl LmluCisrU1VCRElSUyA9IAorK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQo aHRtbF9iY2tfc291cmNlcykKKysjZmlyZWJpcmQuaHRtbCBpbmRleC5odG1sIG15c3FsLmh0bWwg b2RiYy5odG1sIG9yYWNsZS5odG1sIHBvc3RncmVzcWwuaHRtbCBzcWxpdGUzLmh0bWwKKytFWFRS QV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrYWxsOiBhbGwt cmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikv c291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwK KysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwK KysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNh YzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0Up IC0tZ251ICBkb2MvYmFja2VuZHMvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYg XAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBkb2MvYmFja2VuZHMvTWFrZWZpbGUKKysuUFJFQ0lP VVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1 cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2Fj OworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAg JChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwkt cm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysK KysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVu dDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcg dGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2Un IHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUg dmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycK KysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVk IHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJl ZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VU Uyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRv IFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICpr KikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rf c2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisr CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8g Ik1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7 IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAi JCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhp dCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4g XAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVz Jzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAi JEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChE SVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2Fj OyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2 IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9 YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7 IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAor KwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0 IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChT T1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVl CisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisr CXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVk ZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249 LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5j bHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGly L1RBR1MgfHwgXAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUv JCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0 IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRl c3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAk KEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRh Z3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJz aXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChU QUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdT X0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQo QU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisr CisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisr CSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAk JGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdT IEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0 cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAor Kwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVz PWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAt ZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0 cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAor KwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQg Jy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAt dWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkg IGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQo c3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAg ZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlm IHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4g XAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQk ZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQk ZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIg XAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwg ZXhpdCAxOyBcCisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBc CisrCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwK KysJICAgIChjZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRp c3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAor KwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAg ICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytj aGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOiBp bnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBpbnN0YWxs LXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3Rh bGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFH UykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5z dGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAg aW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RS SVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJ TlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3Rs eWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJp YzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFu OiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1y ZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZv OiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKwor K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06 CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFs bC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMt cmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1h aW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2 ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5p bnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTog JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RB R1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFu LWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2 aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFu LWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFu LWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5p bnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjcGtnZGF0YWRpciA9ICQo aHRtbF9iY2tfc291cmNlcykKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvc291cmNlcy5tayBzb2NpLTMu MC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9kb2MvYmFja2VuZHMvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNlcy5tawkyMDA5 LTA0LTE2IDE5OjQ3OjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3IEBACisraHRtbF9i Y2tfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0bWwgXAorKwkk KHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9maXJlYmlyZC5odG1sIFwKKysJJCh0b3Bfc3JjZGly KS9kb2MvYmFja2VuZHMvbXlzcWwuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRz L29kYmMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29yYWNsZS5odG1sIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvcG9zdGdyZXNxbC5odG1sIFwKKysJJCh0b3Bf c3JjZGlyKS9kb2MvYmFja2VuZHMvc3FsaXRlMy5odG1sCitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svZG9jL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0K Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmFt CTIwMDktMDQtMTYgMjA6MTc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDcgQEAKKytp bmNsdWRlICQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsKKysKKytTVUJESVJTID0gYmFja2Vu ZHMKKysKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxf c291cmNlcykKKysKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElC SUxJVFkpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmluIHNvY2kt My4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2Mv TWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDAuMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDU0NyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5 IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAK KysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwg MjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBl eHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQ VVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9 ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAor K3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFU SD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3No X0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQo aW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJ TlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQ T1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0g OgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90 cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChz cmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNlcy5taworK3N1 YmRpciA9IGRvYworK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9f YWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3Fs Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxk aXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9T T1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJz aXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5z dGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNp dmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVh bi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0g JChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAk KFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0g QEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdF WF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9M SUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhS RUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBA Qk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklB TElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZM QUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQ UFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVO SVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJT SU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBA CisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZ R1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJA CisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hP X0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVH UkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdT QAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAor K0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElO U1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RB TExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJ TlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBA TElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBA TE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAor K01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01Z U1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAor K01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FM X1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNM RV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lf Q0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JB Q0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tB R0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK KytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9 IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisr UEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxB R1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxf RElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RH UkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAK KytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0g QFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5j bHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9 IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50 YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9 IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1 aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVp bGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGly QAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sg PSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29r QAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3Qg PSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9j cHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAor K2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2Rp ciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBs YXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAK Kytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRp ckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRl ZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJl Zml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAK Kytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9v a0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGly QAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2Fs aWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRk aXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytodG1sX2xv Y2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1sIFwKKysJJCh0b3Bf c3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRt bCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2Rv Yy9lcnJvcnMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdlLmh0bWwgXAorKwkk KHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJm YWNlcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRpbmcuaHRtbCBcCisr CSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mv cmVmZXJlbmNlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAor KwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUuaHRtbAorKworK1NVQkRJUlMgPSBiYWNrZW5k cworK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3Vy Y2VzKQorK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkK KythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxl LmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsg JChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAn JChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBc CisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgZG9j L01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAt LWdudSAgZG9jL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNy Y2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2Ug JyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAor KwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVO Q0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVf ZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr CisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29s OgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVj dG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBh bmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRv IGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGlu ZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0 YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhl IE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgy KSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFu ZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAor Kwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAg Kj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJ ICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRA IHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIi OyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVu PXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwK KysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8 fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0g Im5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8 fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VG TEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAor KwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBc CisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBt YWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxp c3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2Ug XAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisr CXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8v YDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFy Z2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwg JCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZl OgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0 ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAu IHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJ ZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMp CisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc CisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25l IHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKKysJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdz LXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwK KysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisr CWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5 X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkg IGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0 YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwK KysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5p cXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQk ZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1Mp ICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6 IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQo VEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsg XAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7 IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQk aSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRv bmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAor KwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9 OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAg fHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykg XAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkg JCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkg ICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6Cisr CS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRp cjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9w X3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJ U1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hv ICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAor KwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBc CisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQk ZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9b Xi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmls ZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1k ICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAt ZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUg J3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYg dGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8k JGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNw IC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwK KysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQk ZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRl c3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlz dGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChh bV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2Nk KSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkg ICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQk dG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwK KysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwK KysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisr CWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1h bTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFs bGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNp dmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwt YW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRh dGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxs LXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICck KFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9 JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdl bmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXIt Y2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFp bnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1 aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQor KworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0K KysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisr ZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncwor KworK2R2aTogZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vy c2l2ZQorKworK2luZm86IGluZm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxs LWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUK KysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLW1h bjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1w czogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRh aW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxl CisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHlj bGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRm OiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytw cy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLXN0cmlw CisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJH RVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xl YW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3Rj bGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10 YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5z dGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxs LWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8t YW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBz IGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hl Y2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1h aW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwK KysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1 cnNpdmUgXAorKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrIyBUZWxsIHZlcnNpb25zIFsz LjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90 aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRl ZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMu bWsgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBh Y2svZG9jL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTo1NDowMC4w MDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTMgQEAKKytodG1sX2xvY2FsX3NvdXJjZXMgPSAk KHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFz aWNzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRtbCBcCisrCSQodG9wX3Ny Y2RpcikvZG9jL2Jvb3N0Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBc CisrCSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2Rv Yy9pbmRleC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJmYWNlcy5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRpbmcuaHRtbCBcCisrCSQodG9wX3NyY2Rpcikv ZG9jL3JhdGlvbmFsZS5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwg XAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIp L2RvYy9zdHJ1Y3R1cmUuaHRtbAorTGVzIGZpY2hpZXJzIGJpbmFpcmVzIHNvY2ktMy4wLjBfNC1w YWNrL2RvYy9zdHJ1Y3R1cmUucG5nIGV0IHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mvc3RydWN0dXJl LnBuZyBzb250IGRpZmbDqXJlbnRzLgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9z dHlsZS5jc3Mgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zdHlsZS5jc3MKKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9kb2Mvc3R5bGUuY3NzCTIwMDktMDUtMDMgMDA6MjQ6MTUuMDAwMDAwMDAwICswMjAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zdHlsZS5jc3MJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDkwICswLDAgQEAKKy1ib2R5CisteworLSAgYmFja2dy b3VuZC1jb2xvcjogd2hpdGU7CistICBjb2xvcjogYmxhY2s7CistICBtYXJnaW4tbGVmdDogMTAw cHg7CistICBtYXJnaW4tcmlnaHQ6IDEwMHB4OworLSAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5z LXNlcmlmOworLSAgZm9udC1zaXplOiBzbWFsbDsKKy19CistCistcC5iYW5uZXIKKy17CistICBm b250LXNpemU6IHgtbGFyZ2U7CistICBmb250LXdlaWdodDogYm9sZDsKKy0gIGZvbnQtc3RyZXRj aDogZXhwYW5kZWQ7CistICBib3JkZXItYm90dG9tLWNvbG9yOiBibGFjazsKKy0gIGJvcmRlci1i b3R0b20tc3R5bGU6IHNvbGlkOworLSAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OworLSAgcGFk ZGluZy1ib3R0b206IDVweDsKKy19CistCistZGl2Lm5hdmlnYXRpb24geyB9CistCistZGl2Lm5h dmlnYXRpb24taW5kZW50ZWQKKy17CistICBtYXJnaW4tbGVmdDogNDBweDsKKy19CistCistZGl2 LmRpYWdyYW0KKy17CistICB0ZXh0LWFsaWduOiBjZW50ZXI7CistfQorLQorLWRpdi5ub3RlCist eworLSAgYm9yZGVyLWNvbG9yOiBibGFjazsKKy0gIGJvcmRlci1zdHlsZTogZG90dGVkOworLSAg Ym9yZGVyLXdpZHRoOiAxcHg7CistICBtYXJnaW4tdG9wOiAyMHB4OworLSAgcGFkZGluZy1sZWZ0 OiAyMHB4OworLSAgcGFkZGluZy1yaWdodDogMjBweDsKKy19CistCistc3Bhbi5ub3RlCistewor LSAgZm9udC1zaXplOiBsYXJnZTsKKy0gIGZvbnQtd2VpZ2h0OiBib2xkOworLX0KKy0KKy1jb2Rl CisteworLS8qICAgZm9udC13ZWlnaHQ6IGJvbGQ7ICovCistICBiYWNrZ3JvdW5kLWNvbG9yOiB3 aGl0ZTsKKy0gIGNvbG9yOiAjOEIwMDAwOworLS8qICBmb250LXNpemU6IGxhcmdlOyAqLworLX0K Ky0KKy1wcmUuZXhhbXBsZQorLXsKKy0gIGJhY2tncm91bmQtY29sb3I6ICNGMEYwRjA7CistICBj b2xvcjogYmxhY2s7CistICBib3JkZXItd2lkdGg6IDFweDsKKy0gIGJvcmRlci1zdHlsZTogZGFz aGVkOworLSAgYm9yZGVyLWNvbG9yOiBibHVlOworLSAgcGFkZGluZzogMTBweCAxMHB4IDEwcHgg MTBweDsKKy19CistCistdGFibGUuZm9vdC1saW5rcworLXsKKy0gIHdpZHRoOiAxMDAlOworLSAg cGFkZGluZy10b3A6IDIwcHg7CistfQorLQorLXRkLmZvb3QtbGluay1sZWZ0CisteworLSAgdGV4 dC1hbGlnbjogbGVmdDsKKy19CistCistdGQuZm9vdC1saW5rLXJpZ2h0CisteworLSAgdGV4dC1h bGlnbjogcmlnaHQ7CistfQorLQorLXAuY29weXJpZ2h0CisteworLSAgYm9yZGVyLXRvcC1jb2xv cjogYmxhY2s7CistICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsKKy0gIGJvcmRlci10b3Atd2lk dGg6IDFweDsKKy0gIHBhZGRpbmctdG9wOiA1cHg7CistfQorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL0lOU1RBTEwgc29jaS0zLjAuMF90cmVwMzAwL0lOU1RBTEwKKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9JTlNUQUxMCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL0lOU1RBTEwJMjAwOS0wNS0wMyAwMDoyMDo0NC4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMjM3IEBACisrSW5zdGFsbGF0aW9uIEluc3RydWN0aW9ucworKyoq KioqKioqKioqKioqKioqKioqKioqKioKKysKKytDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5 OTYsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDQsIDIwMDUsCisrMjAwNiwgMjAwNyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKytUaGlzIGZpbGUgaXMgZnJlZSBkb2N1bWVu dGF0aW9uOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorKworK0Jhc2ljIElu c3RhbGxhdGlvbgorKz09PT09PT09PT09PT09PT09PQorKworK0JyaWVmbHksIHRoZSBzaGVsbCBj b21tYW5kcyBgLi9jb25maWd1cmU7IG1ha2U7IG1ha2UgaW5zdGFsbCcgc2hvdWxkCisrY29uZmln dXJlLCBidWlsZCwgYW5kIGluc3RhbGwgdGhpcyBwYWNrYWdlLiAgVGhlIGZvbGxvd2luZworK21v cmUtZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIGFyZSBnZW5lcmljOyBzZWUgdGhlIGBSRUFETUUnIGZp bGUgZm9yCisraW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZS4KKysKKysgICBU aGUgYGNvbmZpZ3VyZScgc2hlbGwgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGNvcnJlY3QgdmFs dWVzIGZvcgorK3ZhcmlvdXMgc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBkdXJpbmcg Y29tcGlsYXRpb24uICBJdCB1c2VzCisrdGhvc2UgdmFsdWVzIHRvIGNyZWF0ZSBhIGBNYWtlZmls ZScgaW4gZWFjaCBkaXJlY3Rvcnkgb2YgdGhlIHBhY2thZ2UuCisrSXQgbWF5IGFsc28gY3JlYXRl IG9uZSBvciBtb3JlIGAuaCcgZmlsZXMgY29udGFpbmluZyBzeXN0ZW0tZGVwZW5kZW50CisrZGVm aW5pdGlvbnMuICBGaW5hbGx5LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25maWcuc3Rh dHVzJyB0aGF0CisreW91IGNhbiBydW4gaW4gdGhlIGZ1dHVyZSB0byByZWNyZWF0ZSB0aGUgY3Vy cmVudCBjb25maWd1cmF0aW9uLCBhbmQgYQorK2ZpbGUgYGNvbmZpZy5sb2cnIGNvbnRhaW5pbmcg Y29tcGlsZXIgb3V0cHV0ICh1c2VmdWwgbWFpbmx5IGZvcgorK2RlYnVnZ2luZyBgY29uZmlndXJl JykuCisrCisrICAgSXQgY2FuIGFsc28gdXNlIGFuIG9wdGlvbmFsIGZpbGUgKHR5cGljYWxseSBj YWxsZWQgYGNvbmZpZy5jYWNoZScKKythbmQgZW5hYmxlZCB3aXRoIGAtLWNhY2hlLWZpbGU9Y29u ZmlnLmNhY2hlJyBvciBzaW1wbHkgYC1DJykgdGhhdCBzYXZlcworK3RoZSByZXN1bHRzIG9mIGl0 cyB0ZXN0cyB0byBzcGVlZCB1cCByZWNvbmZpZ3VyaW5nLiAgQ2FjaGluZyBpcworK2Rpc2FibGVk IGJ5IGRlZmF1bHQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIGFjY2lkZW50YWwgdXNlIG9mIHN0 YWxlCisrY2FjaGUgZmlsZXMuCisrCisrICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGlu Z3MgdG8gY29tcGlsZSB0aGUgcGFja2FnZSwgcGxlYXNlIHRyeQorK3RvIGZpZ3VyZSBvdXQgaG93 IGBjb25maWd1cmUnIGNvdWxkIGNoZWNrIHdoZXRoZXIgdG8gZG8gdGhlbSwgYW5kIG1haWwKKytk aWZmcyBvciBpbnN0cnVjdGlvbnMgdG8gdGhlIGFkZHJlc3MgZ2l2ZW4gaW4gdGhlIGBSRUFETUUn IHNvIHRoZXkgY2FuCisrYmUgY29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIHlv dSBhcmUgdXNpbmcgdGhlIGNhY2hlLCBhbmQgYXQKKytzb21lIHBvaW50IGBjb25maWcuY2FjaGUn IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91CisrbWF5IHJlbW92 ZSBvciBlZGl0IGl0LgorKworKyAgIFRoZSBmaWxlIGBjb25maWd1cmUuYWMnIChvciBgY29uZmln dXJlLmluJykgaXMgdXNlZCB0byBjcmVhdGUKKytgY29uZmlndXJlJyBieSBhIHByb2dyYW0gY2Fs bGVkIGBhdXRvY29uZicuICBZb3UgbmVlZCBgY29uZmlndXJlLmFjJyBpZgorK3lvdSB3YW50IHRv IGNoYW5nZSBpdCBvciByZWdlbmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIgdmVyc2lv bgorK29mIGBhdXRvY29uZicuCisrCisrVGhlIHNpbXBsZXN0IHdheSB0byBjb21waWxlIHRoaXMg cGFja2FnZSBpczoKKysKKysgIDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRo ZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgYW5kIHR5cGUKKysgICAgIGAuL2NvbmZpZ3VyZScgdG8g Y29uZmlndXJlIHRoZSBwYWNrYWdlIGZvciB5b3VyIHN5c3RlbS4KKysKKysgICAgIFJ1bm5pbmcg YGNvbmZpZ3VyZScgbWlnaHQgdGFrZSBhIHdoaWxlLiAgV2hpbGUgcnVubmluZywgaXQgcHJpbnRz CisrICAgICBzb21lIG1lc3NhZ2VzIHRlbGxpbmcgd2hpY2ggZmVhdHVyZXMgaXQgaXMgY2hlY2tp bmcgZm9yLgorKworKyAgMi4gVHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFja2FnZS4KKysK KysgIDMuIE9wdGlvbmFsbHksIHR5cGUgYG1ha2UgY2hlY2snIHRvIHJ1biBhbnkgc2VsZi10ZXN0 cyB0aGF0IGNvbWUgd2l0aAorKyAgICAgdGhlIHBhY2thZ2UuCisrCisrICA0LiBUeXBlIGBtYWtl IGluc3RhbGwnIHRvIGluc3RhbGwgdGhlIHByb2dyYW1zIGFuZCBhbnkgZGF0YSBmaWxlcyBhbmQK KysgICAgIGRvY3VtZW50YXRpb24uCisrCisrICA1LiBZb3UgY2FuIHJlbW92ZSB0aGUgcHJvZ3Jh bSBiaW5hcmllcyBhbmQgb2JqZWN0IGZpbGVzIGZyb20gdGhlCisrICAgICBzb3VyY2UgY29kZSBk aXJlY3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3ZlIHRoZQorKyAg ICAgZmlsZXMgdGhhdCBgY29uZmlndXJlJyBjcmVhdGVkIChzbyB5b3UgY2FuIGNvbXBpbGUgdGhl IHBhY2thZ2UgZm9yCisrICAgICBhIGRpZmZlcmVudCBraW5kIG9mIGNvbXB1dGVyKSwgdHlwZSBg bWFrZSBkaXN0Y2xlYW4nLiAgVGhlcmUgaXMKKysgICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVy LWNsZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQorKyAgICAgZm9yIHRo ZSBwYWNrYWdlJ3MgZGV2ZWxvcGVycy4gIElmIHlvdSB1c2UgaXQsIHlvdSBtYXkgaGF2ZSB0byBn ZXQKKysgICAgIGFsbCBzb3J0cyBvZiBvdGhlciBwcm9ncmFtcyBpbiBvcmRlciB0byByZWdlbmVy YXRlIGZpbGVzIHRoYXQgY2FtZQorKyAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKworKyAg Ni4gT2Z0ZW4sIHlvdSBjYW4gYWxzbyB0eXBlIGBtYWtlIHVuaW5zdGFsbCcgdG8gcmVtb3ZlIHRo ZSBpbnN0YWxsZWQKKysgICAgIGZpbGVzIGFnYWluLgorKworK0NvbXBpbGVycyBhbmQgT3B0aW9u cworKz09PT09PT09PT09PT09PT09PT09PQorKworK1NvbWUgc3lzdGVtcyByZXF1aXJlIHVudXN1 YWwgb3B0aW9ucyBmb3IgY29tcGlsYXRpb24gb3IgbGlua2luZyB0aGF0IHRoZQorK2Bjb25maWd1 cmUnIHNjcmlwdCBkb2VzIG5vdCBrbm93IGFib3V0LiAgUnVuIGAuL2NvbmZpZ3VyZSAtLWhlbHAn IGZvcgorK2RldGFpbHMgb24gc29tZSBvZiB0aGUgcGVydGluZW50IGVudmlyb25tZW50IHZhcmlh Ymxlcy4KKysKKysgICBZb3UgY2FuIGdpdmUgYGNvbmZpZ3VyZScgaW5pdGlhbCB2YWx1ZXMgZm9y IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycworK2J5IHNldHRpbmcgdmFyaWFibGVzIGluIHRoZSBj b21tYW5kIGxpbmUgb3IgaW4gdGhlIGVudmlyb25tZW50LiAgSGVyZQorK2lzIGFuIGV4YW1wbGU6 CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz1jOTkgQ0ZMQUdTPS1nIExJQlM9LWxwb3NpeAorKwor KyAgICpOb3RlIERlZmluaW5nIFZhcmlhYmxlczo6LCBmb3IgbW9yZSBkZXRhaWxzLgorKworK0Nv bXBpbGluZyBGb3IgTXVsdGlwbGUgQXJjaGl0ZWN0dXJlcworKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorKworK1lvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IgbW9y ZSB0aGFuIG9uZSBraW5kIG9mIGNvbXB1dGVyIGF0IHRoZQorK3NhbWUgdGltZSwgYnkgcGxhY2lu ZyB0aGUgb2JqZWN0IGZpbGVzIGZvciBlYWNoIGFyY2hpdGVjdHVyZSBpbiB0aGVpcgorK293biBk aXJlY3RvcnkuICBUbyBkbyB0aGlzLCB5b3UgY2FuIHVzZSBHTlUgYG1ha2UnLiAgYGNkJyB0byB0 aGUKKytkaXJlY3Rvcnkgd2hlcmUgeW91IHdhbnQgdGhlIG9iamVjdCBmaWxlcyBhbmQgZXhlY3V0 YWJsZXMgdG8gZ28gYW5kIHJ1bgorK3RoZSBgY29uZmlndXJlJyBzY3JpcHQuICBgY29uZmlndXJl JyBhdXRvbWF0aWNhbGx5IGNoZWNrcyBmb3IgdGhlCisrc291cmNlIGNvZGUgaW4gdGhlIGRpcmVj dG9yeSB0aGF0IGBjb25maWd1cmUnIGlzIGluIGFuZCBpbiBgLi4nLgorKworKyAgIFdpdGggYSBu b24tR05VIGBtYWtlJywgaXQgaXMgc2FmZXIgdG8gY29tcGlsZSB0aGUgcGFja2FnZSBmb3Igb25l CisrYXJjaGl0ZWN0dXJlIGF0IGEgdGltZSBpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAg QWZ0ZXIgeW91IGhhdmUKKytpbnN0YWxsZWQgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNoaXRlY3R1 cmUsIHVzZSBgbWFrZSBkaXN0Y2xlYW4nIGJlZm9yZQorK3JlY29uZmlndXJpbmcgZm9yIGFub3Ro ZXIgYXJjaGl0ZWN0dXJlLgorKworK0luc3RhbGxhdGlvbiBOYW1lcworKz09PT09PT09PT09PT09 PT09PQorKworK0J5IGRlZmF1bHQsIGBtYWtlIGluc3RhbGwnIGluc3RhbGxzIHRoZSBwYWNrYWdl J3MgY29tbWFuZHMgdW5kZXIKKytgL3Vzci9sb2NhbC9iaW4nLCBpbmNsdWRlIGZpbGVzIHVuZGVy IGAvdXNyL2xvY2FsL2luY2x1ZGUnLCBldGMuICBZb3UKKytjYW4gc3BlY2lmeSBhbiBpbnN0YWxs YXRpb24gcHJlZml4IG90aGVyIHRoYW4gYC91c3IvbG9jYWwnIGJ5IGdpdmluZworK2Bjb25maWd1 cmUnIHRoZSBvcHRpb24gYC0tcHJlZml4PVBSRUZJWCcuCisrCisrICAgWW91IGNhbiBzcGVjaWZ5 IHNlcGFyYXRlIGluc3RhbGxhdGlvbiBwcmVmaXhlcyBmb3IKKythcmNoaXRlY3R1cmUtc3BlY2lm aWMgZmlsZXMgYW5kIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcy4gIElmIHlvdQorK3Bh c3MgdGhlIG9wdGlvbiBgLS1leGVjLXByZWZpeD1QUkVGSVgnIHRvIGBjb25maWd1cmUnLCB0aGUg cGFja2FnZSB1c2VzCisrUFJFRklYIGFzIHRoZSBwcmVmaXggZm9yIGluc3RhbGxpbmcgcHJvZ3Jh bXMgYW5kIGxpYnJhcmllcy4KKytEb2N1bWVudGF0aW9uIGFuZCBvdGhlciBkYXRhIGZpbGVzIHN0 aWxsIHVzZSB0aGUgcmVndWxhciBwcmVmaXguCisrCisrICAgSW4gYWRkaXRpb24sIGlmIHlvdSB1 c2UgYW4gdW51c3VhbCBkaXJlY3RvcnkgbGF5b3V0IHlvdSBjYW4gZ2l2ZQorK29wdGlvbnMgbGlr ZSBgLS1iaW5kaXI9RElSJyB0byBzcGVjaWZ5IGRpZmZlcmVudCB2YWx1ZXMgZm9yIHBhcnRpY3Vs YXIKKytraW5kcyBvZiBmaWxlcy4gIFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBv ZiB0aGUgZGlyZWN0b3JpZXMKKyt5b3UgY2FuIHNldCBhbmQgd2hhdCBraW5kcyBvZiBmaWxlcyBn byBpbiB0aGVtLgorKworKyAgIElmIHRoZSBwYWNrYWdlIHN1cHBvcnRzIGl0LCB5b3UgY2FuIGNh dXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAorK3dpdGggYW4gZXh0cmEgcHJlZml4IG9yIHN1 ZmZpeCBvbiB0aGVpciBuYW1lcyBieSBnaXZpbmcgYGNvbmZpZ3VyZScgdGhlCisrb3B0aW9uIGAt LXByb2dyYW0tcHJlZml4PVBSRUZJWCcgb3IgYC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYJy4KKysK KytPcHRpb25hbCBGZWF0dXJlcworKz09PT09PT09PT09PT09PT09CisrCisrU29tZSBwYWNrYWdl cyBwYXkgYXR0ZW50aW9uIHRvIGAtLWVuYWJsZS1GRUFUVVJFJyBvcHRpb25zIHRvCisrYGNvbmZp Z3VyZScsIHdoZXJlIEZFQVRVUkUgaW5kaWNhdGVzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHBh Y2thZ2UuCisrVGhleSBtYXkgYWxzbyBwYXkgYXR0ZW50aW9uIHRvIGAtLXdpdGgtUEFDS0FHRScg b3B0aW9ucywgd2hlcmUgUEFDS0FHRQorK2lzIHNvbWV0aGluZyBsaWtlIGBnbnUtYXMnIG9yIGB4 JyAoZm9yIHRoZSBYIFdpbmRvdyBTeXN0ZW0pLiAgVGhlCisrYFJFQURNRScgc2hvdWxkIG1lbnRp b24gYW55IGAtLWVuYWJsZS0nIGFuZCBgLS13aXRoLScgb3B0aW9ucyB0aGF0IHRoZQorK3BhY2th Z2UgcmVjb2duaXplcy4KKysKKysgICBGb3IgcGFja2FnZXMgdGhhdCB1c2UgdGhlIFggV2luZG93 IFN5c3RlbSwgYGNvbmZpZ3VyZScgY2FuIHVzdWFsbHkKKytmaW5kIHRoZSBYIGluY2x1ZGUgYW5k IGxpYnJhcnkgZmlsZXMgYXV0b21hdGljYWxseSwgYnV0IGlmIGl0IGRvZXNuJ3QsCisreW91IGNh biB1c2UgdGhlIGBjb25maWd1cmUnIG9wdGlvbnMgYC0teC1pbmNsdWRlcz1ESVInIGFuZAorK2At LXgtbGlicmFyaWVzPURJUicgdG8gc3BlY2lmeSB0aGVpciBsb2NhdGlvbnMuCisrCisrU3BlY2lm eWluZyB0aGUgU3lzdGVtIFR5cGUKKys9PT09PT09PT09PT09PT09PT09PT09PT09PQorKworK1Ro ZXJlIG1heSBiZSBzb21lIGZlYXR1cmVzIGBjb25maWd1cmUnIGNhbm5vdCBmaWd1cmUgb3V0IGF1 dG9tYXRpY2FsbHksCisrYnV0IG5lZWRzIHRvIGRldGVybWluZSBieSB0aGUgdHlwZSBvZiBtYWNo aW5lIHRoZSBwYWNrYWdlIHdpbGwgcnVuIG9uLgorK1VzdWFsbHksIGFzc3VtaW5nIHRoZSBwYWNr YWdlIGlzIGJ1aWx0IHRvIGJlIHJ1biBvbiB0aGUgX3NhbWVfCisrYXJjaGl0ZWN0dXJlcywgYGNv bmZpZ3VyZScgY2FuIGZpZ3VyZSB0aGF0IG91dCwgYnV0IGlmIGl0IHByaW50cyBhCisrbWVzc2Fn ZSBzYXlpbmcgaXQgY2Fubm90IGd1ZXNzIHRoZSBtYWNoaW5lIHR5cGUsIGdpdmUgaXQgdGhlCisr YC0tYnVpbGQ9VFlQRScgb3B0aW9uLiAgVFlQRSBjYW4gZWl0aGVyIGJlIGEgc2hvcnQgbmFtZSBm b3IgdGhlIHN5c3RlbQorK3R5cGUsIHN1Y2ggYXMgYHN1bjQnLCBvciBhIGNhbm9uaWNhbCBuYW1l IHdoaWNoIGhhcyB0aGUgZm9ybToKKysKKysgICAgIENQVS1DT01QQU5ZLVNZU1RFTQorKworK3do ZXJlIFNZU1RFTSBjYW4gaGF2ZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisrCisrICAgICBPUyBLRVJO RUwtT1MKKysKKysgICBTZWUgdGhlIGZpbGUgYGNvbmZpZy5zdWInIGZvciB0aGUgcG9zc2libGUg dmFsdWVzIG9mIGVhY2ggZmllbGQuICBJZgorK2Bjb25maWcuc3ViJyBpc24ndCBpbmNsdWRlZCBp biB0aGlzIHBhY2thZ2UsIHRoZW4gdGhpcyBwYWNrYWdlIGRvZXNuJ3QKKytuZWVkIHRvIGtub3cg dGhlIG1hY2hpbmUgdHlwZS4KKysKKysgICBJZiB5b3UgYXJlIF9idWlsZGluZ18gY29tcGlsZXIg dG9vbHMgZm9yIGNyb3NzLWNvbXBpbGluZywgeW91IHNob3VsZAorK3VzZSB0aGUgb3B0aW9uIGAt LXRhcmdldD1UWVBFJyB0byBzZWxlY3QgdGhlIHR5cGUgb2Ygc3lzdGVtIHRoZXkgd2lsbAorK3By b2R1Y2UgY29kZSBmb3IuCisrCisrICAgSWYgeW91IHdhbnQgdG8gX3VzZV8gYSBjcm9zcyBjb21w aWxlciwgdGhhdCBnZW5lcmF0ZXMgY29kZSBmb3IgYQorK3BsYXRmb3JtIGRpZmZlcmVudCBmcm9t IHRoZSBidWlsZCBwbGF0Zm9ybSwgeW91IHNob3VsZCBzcGVjaWZ5IHRoZQorKyJob3N0IiBwbGF0 Zm9ybSAoaS5lLiwgdGhhdCBvbiB3aGljaCB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zIHdpbGwKKytl dmVudHVhbGx5IGJlIHJ1bikgd2l0aCBgLS1ob3N0PVRZUEUnLgorKworK1NoYXJpbmcgRGVmYXVs dHMKKys9PT09PT09PT09PT09PT09CisrCisrSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQgdmFs dWVzIGZvciBgY29uZmlndXJlJyBzY3JpcHRzIHRvIHNoYXJlLCB5b3UKKytjYW4gY3JlYXRlIGEg c2l0ZSBzaGVsbCBzY3JpcHQgY2FsbGVkIGBjb25maWcuc2l0ZScgdGhhdCBnaXZlcyBkZWZhdWx0 CisrdmFsdWVzIGZvciB2YXJpYWJsZXMgbGlrZSBgQ0MnLCBgY2FjaGVfZmlsZScsIGFuZCBgcHJl Zml4Jy4KKytgY29uZmlndXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0ZScg aWYgaXQgZXhpc3RzLCB0aGVuCisrYFBSRUZJWC9ldGMvY29uZmlnLnNpdGUnIGlmIGl0IGV4aXN0 cy4gIE9yLCB5b3UgY2FuIHNldCB0aGUKKytgQ09ORklHX1NJVEUnIGVudmlyb25tZW50IHZhcmlh YmxlIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2l0ZSBzY3JpcHQuCisrQSB3YXJuaW5nOiBub3Qg YWxsIGBjb25maWd1cmUnIHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KKysKKytEZWZp bmluZyBWYXJpYWJsZXMKKys9PT09PT09PT09PT09PT09PT0KKysKKytWYXJpYWJsZXMgbm90IGRl ZmluZWQgaW4gYSBzaXRlIHNoZWxsIHNjcmlwdCBjYW4gYmUgc2V0IGluIHRoZQorK2Vudmlyb25t ZW50IHBhc3NlZCB0byBgY29uZmlndXJlJy4gIEhvd2V2ZXIsIHNvbWUgcGFja2FnZXMgbWF5IHJ1 bgorK2NvbmZpZ3VyZSBhZ2FpbiBkdXJpbmcgdGhlIGJ1aWxkLCBhbmQgdGhlIGN1c3RvbWl6ZWQg dmFsdWVzIG9mIHRoZXNlCisrdmFyaWFibGVzIG1heSBiZSBsb3N0LiAgSW4gb3JkZXIgdG8gYXZv aWQgdGhpcyBwcm9ibGVtLCB5b3Ugc2hvdWxkIHNldAorK3RoZW0gaW4gdGhlIGBjb25maWd1cmUn IGNvbW1hbmQgbGluZSwgdXNpbmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBsZToKKysKKysgICAg IC4vY29uZmlndXJlIENDPS91c3IvbG9jYWwyL2Jpbi9nY2MKKysKKytjYXVzZXMgdGhlIHNwZWNp ZmllZCBgZ2NjJyB0byBiZSB1c2VkIGFzIHRoZSBDIGNvbXBpbGVyICh1bmxlc3MgaXQgaXMKKytv dmVycmlkZGVuIGluIHRoZSBzaXRlIHNoZWxsIHNjcmlwdCkuCisrCisrVW5mb3J0dW5hdGVseSwg dGhpcyB0ZWNobmlxdWUgZG9lcyBub3Qgd29yayBmb3IgYENPTkZJR19TSEVMTCcgZHVlIHRvCisr YW4gQXV0b2NvbmYgYnVnLiAgVW50aWwgdGhlIGJ1ZyBpcyBmaXhlZCB5b3UgY2FuIHVzZSB0aGlz IHdvcmthcm91bmQ6CisrCisrICAgICBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoIC9iaW4vYmFzaCAu L2NvbmZpZ3VyZSBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoCisrCisrYGNvbmZpZ3VyZScgSW52b2Nh dGlvbgorKz09PT09PT09PT09PT09PT09PT09PT0KKysKKytgY29uZmlndXJlJyByZWNvZ25pemVz IHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBjb250cm9sIGhvdyBpdCBvcGVyYXRlcy4KKysKKytg LS1oZWxwJworK2AtaCcKKysgICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB0byBg Y29uZmlndXJlJywgYW5kIGV4aXQuCisrCisrYC0tdmVyc2lvbicKKytgLVYnCisrICAgICBQcmlu dCB0aGUgdmVyc2lvbiBvZiBBdXRvY29uZiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBgY29uZmlndXJl JworKyAgICAgc2NyaXB0LCBhbmQgZXhpdC4KKysKKytgLS1jYWNoZS1maWxlPUZJTEUnCisrICAg ICBFbmFibGUgdGhlIGNhY2hlOiB1c2UgYW5kIHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3Rz IGluIEZJTEUsCisrICAgICB0cmFkaXRpb25hbGx5IGBjb25maWcuY2FjaGUnLiAgRklMRSBkZWZh dWx0cyB0byBgL2Rldi9udWxsJyB0bworKyAgICAgZGlzYWJsZSBjYWNoaW5nLgorKworK2AtLWNv bmZpZy1jYWNoZScKKytgLUMnCisrICAgICBBbGlhcyBmb3IgYC0tY2FjaGUtZmlsZT1jb25maWcu Y2FjaGUnLgorKworK2AtLXF1aWV0JworK2AtLXNpbGVudCcKKytgLXEnCisrICAgICBEbyBub3Qg cHJpbnQgbWVzc2FnZXMgc2F5aW5nIHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4gIFRvCisr ICAgICBzdXBwcmVzcyBhbGwgbm9ybWFsIG91dHB1dCwgcmVkaXJlY3QgaXQgdG8gYC9kZXYvbnVs bCcgKGFueSBlcnJvcgorKyAgICAgbWVzc2FnZXMgd2lsbCBzdGlsbCBiZSBzaG93bikuCisrCisr YC0tc3JjZGlyPURJUicKKysgICAgIExvb2sgZm9yIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUg aW4gZGlyZWN0b3J5IERJUi4gIFVzdWFsbHkKKysgICAgIGBjb25maWd1cmUnIGNhbiBkZXRlcm1p bmUgdGhhdCBkaXJlY3RvcnkgYXV0b21hdGljYWxseS4KKysKKytgY29uZmlndXJlJyBhbHNvIGFj Y2VwdHMgc29tZSBvdGhlciwgbm90IHdpZGVseSB1c2VmdWwsIG9wdGlvbnMuICBSdW4KKytgY29u ZmlndXJlIC0taGVscCcgZm9yIG1vcmUgZGV0YWlscy4KKysKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9NYWtlZmlsZSBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUKKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9NYWtlZmlsZQkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAorQEAgLTEsMjAgKzAsMCBAQAorLWJ1aWxkX2xpYnMgOgorLQljZCBidWlsZC91 bml4OyBgY2F0IGxvY2FsL3RjbGAgYnVpbGQudGNsIGNvcmUgY29yZS1zbyBteXNxbCBteXNxbC1z byBwb3N0Z3Jlc3FsIHBvc3RncmVzcWwtc28gb3JhY2xlIG9yYWNsZS1zbworLQorLXRlc3RzIDoK Ky0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGJ1aWxkLnRjbCBteXNxbC10ZXN0IG9y YWNsZS10ZXN0IHBvc3RncmVzcWwtdGVzdAorLQorLWluc3RhbGwgOgorLQljZCBidWlsZC91bml4 OyBgY2F0IGxvY2FsL3RjbGAgaW5zdGFsbC50Y2wKKy0KKy11bmluc3RhbGwgOgorLQljZCBidWls ZC91bml4L2xvY2FsOyAvYmluL3NoIHVuaW5zdGFsbC5zaAorLQorLWNsZWFuIDoKKy0JZmluZCAu IC1uYW1lICcqLm8nIHwgeGFyZ3Mgcm0KKy0JZmluZCAuIC1uYW1lICcqLmEnIHwgeGFyZ3Mgcm0K Ky0JZmluZCAuIC1uYW1lICcqLnNvJyB8IHhhcmdzIHJtCistCXJtIC1mIHNyYy9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwKKy0Jcm0gLWYgc3JjL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rl c3Qtb3JhY2xlCistCXJtIC1mIHNyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0 Z3Jlc3FsCistCXJtIC1yZiBidWlsZC91bml4L2luY2x1ZGUgYnVpbGQvdW5peC9saWIgYnVpbGQv dW5peC90ZXN0cworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmFtIHNvY2kt My4wLjBfdHJlcDMwMC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxl LmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL01ha2VmaWxlLmFtCTIwMDktMDUtMDMgMDA6MTk6NDIuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDYyIEBACisrIyMgdG9wIGRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24KKysKKytBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBjb25maWcKKysKKytB VVRPTUFLRV9PUFRJT05TID0gZGlzdC1iemlwMgorKworK2lmIFJVTl9URVNUUworKyMgIFRFU1Rf RElSID0gdGVzdAorK2VuZGlmCisrCisrTUFOX0RPQ19ESVIgPSBtYW4KKysKKysjIE1haW50YWlu YW5jZSBmaWxlcworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4gYWNsb2NhbC5t NCBjb25maWd1cmUgXAorKwkJCWNvbmZpZy1oLmluIHNpYy9zdGFtcC1oLmluIGF1dG9nZW4uc2gg Ym9vdHN0cmFwCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29u ZmlndXJlIC5fTWFrZWZpbGUgY29udHJpYgorK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJ TElUWSA9IGNvbnRyaWIKKysKKytFWFRSQV9ESVNUID0gTWFrZWZpbGUuY29tbW9uICQoRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKSBAUEFDS0FHRUAubTQKKysKKysjIEJ1aWxkIGlu IHRoZXNlIGRpcmVjdG9yaWVzOgorK1NVQkRJUlMgPSBidWlsZCBAUEFDS0FHRUAgJChNQU5fRE9D X0RJUikgZG9jICQoVEVTVF9ESVIpCisrCisrCisrIyBDb25maWd1cmF0aW9uIGhlbHBlcnMKKyti aW5fU0NSSVBUUyA9IEBQQUNLQUdFQC1jb25maWcKKysKKytwa2djb25maWdkaXIgPSAkKGxpYmRp cikvcGtnY29uZmlnCisrcGtnY29uZmlnX0RBVEEgPSBAUEFDS0FHRUAucGMKKysKKyttNGRhdGFk aXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKKyttNGRhdGFfREFUQSA9IEBQQUNLQUdFQC5tNAorKwor KyMgVGFyZ2V0cworK3VuaW5zdGFsbC1sb2NhbDoKKysJcm0gLXJmICQoREVTVERJUikkKGluY2x1 ZGVkaXIpL0BQQUNLQUdFQAorKworK2Rpc3QtaHRtbDoKKysJJChNQUtFKSAtQyBkb2MgZGlzdC1o dG1sCisrCisrCisrc25hcHNob3Q6IHNuYXBzaG90LXNyYyBzbmFwc2hvdC1odG1sCisrCisrCisr c25hcHNob3Qtc3JjOgorKyAgICAgICAgJChNQUtFKSBkaXN0IGRpc3RkaXI9QFBBQ0tBR0VfVEFS TkFNRUAtYGRhdGUgKyIlWSVtJWQiYAorKworK3NuYXBzaG90LWh0bWw6CisrCSQoTUFLRSkgLUMg ZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtYGRh dGUgKyIlWSVtJWQiYAorKworK3VwbG9hZDogdXBsb2FkLXNyYyB1cGxvYWQtaHRtbAorKworK3Vw bG9hZC1zcmM6IGRpc3QKKysJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1AVkVS U0lPTkAudGFyLmd6IFwKKysJQFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5iejIKKysK Kyt1cGxvYWQtaHRtbDogZGlzdC1odG1sCisrCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFS TkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCisrCUBQQUNLQUdFX1RBUk5BTUVALWh0 bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv TWFrZWZpbGUuY29tbW9uIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24KKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuY29tbW9uCTIwMDkt MDQtMTggMTc6MjA6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytAU0VUX01B S0VACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAv TWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmls ZS5pbgkyMDA5LTA1LTAzIDAwOjIwOjQ1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3OTcg QEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtl ZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBh bmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBh cyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdp dGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisr CisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdF QAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChp bmNsdWRlZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59 JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3No KSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5z dGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElO U1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9S TUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05P Uk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9 IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJ U1RfQ09NTU9OID0gUkVBRE1FICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAkKHNyY2RpcikvTWFrZWZp bGUuYW0gXAorKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvY2ktY29uZmlnLmlu IFwKKysJJChzcmNkaXIpL3NvY2kucGMuaW4gJChzcmNkaXIpL3NvY2kuc3BlYy5pbiBcCisrCSQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQodG9wX3NyY2RpcikvY29uZmlndXJlIEFVVEhP UlMgXAorKwlDT1BZSU5HIENoYW5nZUxvZyBJTlNUQUxMIE5FV1MgY29uZmlnL2NvbmZpZy5ndWVz cyBcCisrCWNvbmZpZy9jb25maWcuc3ViIGNvbmZpZy9kZXBjb21wIGNvbmZpZy9pbnN0YWxsLXNo IFwKKysJY29uZmlnL2x0bWFpbi5zaCBjb25maWcvbWlzc2luZworK3N1YmRpciA9IC4KKytBQ0xP Q0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9 ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9f Y29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVO REVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMg PSBjb25maWcuc3RhdHVzIGNvbmZpZy5jYWNoZSBjb25maWcubG9nIFwKKysgY29uZmlndXJlLmxp bmVubyBjb25maWcuc3RhdHVzLmxpbmVubworK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gp IC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09O RklHX0NMRUFOX0ZJTEVTID0gc29jaS1jb25maWcgc29jaS5wYyBzb2NpLnNwZWMKKythbV9faW5z dGFsbGRpcnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKG00ZGF0YWRpciki IFwKKysJIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiCisrYmluU0NSSVBUX0lOU1RBTEwgPSAk KElOU1RBTExfU0NSSVBUKQorK1NDUklQVFMgPSAkKGJpbl9TQ1JJUFRTKQorK1NPVVJDRVMgPQor K0RJU1RfU09VUkNFUyA9CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNr LXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNp dmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0 YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWlu Zm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJz aXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxs ZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwt cmVjdXJzaXZlCisrYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwK KysgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAv fHwiYDs7IFwKKysgICAgKikgZj0kJHA7OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIgPSBg ZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrbTRkYXRhREFUQV9JTlNUQUxMID0gJChJ TlNUQUxMX0RBVEEpCisrcGtnY29uZmlnREFUQV9JTlNUQUxMID0gJChJTlNUQUxMX0RBVEEpCisr REFUQSA9ICQobTRkYXRhX0RBVEEpICQocGtnY29uZmlnX0RBVEEpCisrUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRp c3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0 YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQorK2Rpc3RkaXIgPSAkKFBBQ0tBR0UpLSQoVkVSU0lPTikKKyt0b3BfZGlzdGRpciA9ICQo ZGlzdGRpcikKKythbV9fcmVtb3ZlX2Rpc3RkaXIgPSBcCisrICB7IHRlc3QgISAtZCAkKGRpc3Rk aXIpIFwKKysgICAgfHwgeyBmaW5kICQoZGlzdGRpcikgLXR5cGUgZCAhIC1wZXJtIC0yMDAgLWV4 ZWMgY2htb2QgdSt3IHt9ICc7JyBcCisrICAgICAgICAgJiYgcm0gLWZyICQoZGlzdGRpcik7IH07 IH0KKytESVNUX0FSQ0hJVkVTID0gJChkaXN0ZGlyKS50YXIuZ3ogJChkaXN0ZGlyKS50YXIuYnoy CisrR1pJUF9FTlYgPSAtLWJlc3QKKytkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzID0gZmlu ZCAuIC10eXBlIGYgLXByaW50CisrZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10 eXBlIGYgLXByaW50CisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FS ID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURF UkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9 IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVf TElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JP T1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0g QEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFN X09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9P U1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1Rf U0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBC T09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lP TkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElC QAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFH U0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdT ID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAor K0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVO SVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9E RSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBD WUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwg PSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19O ID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVY VCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNf TElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JF UEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAK KytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0g QElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQ X1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytM SUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJ Qk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBA TUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9 IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxB R1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisr Tk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9S QUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09S QUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJT SU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FH RV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tB R0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RB Uk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZF UlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJM QAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdS RVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NU R1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lP TiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFT RSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAor K1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JV UklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBV UExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFi c19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRp ciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGly QAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNf Y3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9f bGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVA CisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGly ID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlh c0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1 aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0 YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sg PSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9v a0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJl Zml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKyto b3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9v cyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBA aHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGly QAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKyts aWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIg PSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIg PSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGlu Y2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dy YW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBw c2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRz dGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZk aXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9i dWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1 aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0 b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK0FDTE9DQUxfQU1GTEFHUyA9IC1JIGNvbmZp ZworK0FVVE9NQUtFX09QVElPTlMgPSBkaXN0LWJ6aXAyCisrCisrIyAgVEVTVF9ESVIgPSB0ZXN0 CisrTUFOX0RPQ19ESVIgPSBtYW4KKysKKysjIE1haW50YWluYW5jZSBmaWxlcworK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUgXAorKwkJCWNv bmZpZy1oLmluIHNpYy9zdGFtcC1oLmluIGF1dG9nZW4uc2ggYm9vdHN0cmFwCisrCisrCisrI0VY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29uZmlndXJlIC5fTWFrZWZpbGUg Y29udHJpYgorK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IGNvbnRyaWIKKytF WFRSQV9ESVNUID0gTWFrZWZpbGUuY29tbW9uICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJ QklMSVRZKSBAUEFDS0FHRUAubTQKKysKKysjIEJ1aWxkIGluIHRoZXNlIGRpcmVjdG9yaWVzOgor K1NVQkRJUlMgPSBidWlsZCBAUEFDS0FHRUAgJChNQU5fRE9DX0RJUikgZG9jICQoVEVTVF9ESVIp CisrCisrIyBDb25maWd1cmF0aW9uIGhlbHBlcnMKKytiaW5fU0NSSVBUUyA9IEBQQUNLQUdFQC1j b25maWcKKytwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCisrcGtnY29uZmlnX0RB VEEgPSBAUEFDS0FHRUAucGMKKyttNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKKyttNGRh dGFfREFUQSA9IEBQQUNLQUdFQC5tNAorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhF UzoKKythbS0tcmVmcmVzaDoKKysJQDoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmln dXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmln dXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgIGVjaG8gJyBjZCAkKHNy Y2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgJzsgXAorKwkgICAgICBjZCAkKHNyY2RpcikgJiYg JChBVVRPTUFLRSkgLS1nbnUgIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBc CisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQo QVVUT01BS0UpIC0tZ251ICBNYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisr CSAgJChBVVRPTUFLRSkgLS1nbnUgIE1ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01h a2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBlY2hv ICcgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzJzsgXAorKwkgICAgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChh bV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25m aWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5E RU5DSUVTKQorKwkkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCisrCisrJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJChzcmNkaXIp ICYmICQoQVVUT0NPTkYpCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykK KysJY2QgJChzcmNkaXIpICYmICQoQUNMT0NBTCkgJChBQ0xPQ0FMX0FNRkxBR1MpCisrc29jaS1j b25maWc6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLWNvbmZp Zy5pbgorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRA Cisrc29jaS5wYzogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3NvY2ku cGMuaW4KKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk QAorK3NvY2kuc3BlYzogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3Nv Y2kuc3BlYy5pbgorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICRACisraW5zdGFsbC1iaW5TQ1JJUFRTOiAkKGJpbl9TQ1JJUFRTKQorKwlAJChOT1JNQUxf SU5TVEFMTCkKKysJdGVzdCAteiAiJChiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIp JChiaW5kaXIpIgorKwlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBm aTsgXAorKwkgIGlmIHRlc3QgLWYgJCRkJCRwOyB0aGVuIFwKKysJICAgIGY9YGVjaG8gIiQkcCIg fCBzZWQgJ3N8Xi4qL3x8OyQodHJhbnNmb3JtKSdgOyBcCisrCSAgICBlY2hvICIgJChiaW5TQ1JJ UFRfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKKysJICAg ICQoYmluU0NSSVBUX0lOU1RBTEwpICIkJGQkJHAiICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiI7 IFwKKysJICBlbHNlIDo7IGZpOyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtYmluU0NSSVBUUzoK KysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCisrCSAgZj1gZWNobyAiJCRwIiB8IHNlZCAnc3xeLiovfHw7JCh0cmFu c2Zvcm0pJ2A7IFwKKysJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7 IFwKKysJICBybSAtZiAiJChERVNURElSKSQoYmluZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytt b3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6Cisr CS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytkaXN0Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mIGxp YnRvb2wKKytpbnN0YWxsLW00ZGF0YURBVEE6ICQobTRkYXRhX0RBVEEpCisrCUAkKE5PUk1BTF9J TlNUQUxMKQorKwl0ZXN0IC16ICIkKG00ZGF0YWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJ UikkKG00ZGF0YWRpcikiCisrCUBsaXN0PSckKG00ZGF0YV9EQVRBKSc7IGZvciBwIGluICQkbGlz dDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIp LyI7IGZpOyBcCisrCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChtNGRhdGFE QVRBX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiciOyBcCisr CSAgJChtNGRhdGFEQVRBX0lOU1RBTEwpICIkJGQkJHAiICIkKERFU1RESVIpJChtNGRhdGFkaXIp LyQkZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1tNGRhdGFEQVRBOgorKwlAJChOT1JNQUxf VU5JTlNUQUxMKQorKwlAbGlzdD0nJChtNGRhdGFfREFUQSknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKKysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElS KSQobTRkYXRhZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIkKERFU1RESVIpJChtNGRhdGFkaXIp LyQkZiI7IFwKKysJZG9uZQorK2luc3RhbGwtcGtnY29uZmlnREFUQTogJChwa2djb25maWdfREFU QSkKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnY29uZmlnZGlyKSIgfHwg JChNS0RJUl9QKSAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIKKysJQGxpc3Q9JyQocGtnY29u ZmlnX0RBVEEpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsg dGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBmPSQoYW1fX3N0cmlwX2Rp cikgXAorKwkgIGVjaG8gIiAkKHBrZ2NvbmZpZ0RBVEFfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVT VERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmJyI7IFwKKysJICAkKHBrZ2NvbmZpZ0RBVEFfSU5TVEFM TCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmIjsgXAorKwlkb25lCisr CisrdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBs aXN0PSckKHBrZ2NvbmZpZ19EQVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9JChh bV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2djb25maWdk aXIpLyQkZiciOyBcCisrCSAgcm0gLWYgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmIjsg XAorKwlkb25lCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0 bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3 aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFs dWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisr IyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNv bmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBi ZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBh c3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVD VVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRv bmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNv bTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisr CSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJ Zmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJ QGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkg IGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWls Y29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5v OyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFu LSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUykn IDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIk JHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7 IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3Vi ZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisr CWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIg PSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAor Kwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAk KEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQg LWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxF UykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAt LWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGlu Y2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVs c2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwK KysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc CisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3Qg ISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9v cHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBc CisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBl bHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisr CSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykg XAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6 IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJ RVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVz dCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChD VEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFn cyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIp ICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQo R1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElE IEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMp CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKwl0ZXN0IC1kICQoZGlzdGRpcikgfHwgbWtkaXIg JChkaXN0ZGlyKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklM RVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZp bGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAg ICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwlj YXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3Rf ZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSok JCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4g JCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZp bGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRk LyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9b Xi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3Qg JCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxl ICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIg JCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAg ICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUg JChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9u ZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1k ICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIp LyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQoYW1fX2Nk KSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0 b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJICAgICAg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9k aXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlh bV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCSAg ICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25l CisrCS1maW5kICQoZGlzdGRpcikgLXR5cGUgZCAhIC1wZXJtIC03NzcgLWV4ZWMgY2htb2QgYSty d3gge30gXDsgLW8gXAorKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWxpbmtzIDEgLWV4ZWMg Y2htb2QgYStyIHt9IFw7IC1vIFwKKysJICAhIC10eXBlIGQgISAtcGVybSAtNDAwIC1leGVjIGNo bW9kIGErciB7fSBcOyAtbyBcCisrCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtZXhlYyAkKGlu c3RhbGxfc2gpIC1jIC1tIGErciB7fSB7fSBcOyBcCisrCXx8IGNobW9kIC1SIGErciAkKGRpc3Rk aXIpCisrZGlzdC1nemlwOiBkaXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3Rh cikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6CisrCSQoYW1f X3JlbW92ZV9kaXN0ZGlyKQorK2Rpc3QtYnppcDI6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRp cikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKKysJJChh bV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdC1sem1hOiBkaXN0ZGlyCisrCXRhcmRpcj0kKGRp c3RkaXIpICYmICQoYW1fX3RhcikgfCBsem1hIC05IC1jID4kKGRpc3RkaXIpLnRhci5sem1hCisr CSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3QtdGFyWjogZGlzdGRpcgorKwl0YXJkaXI9 JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgY29tcHJlc3MgLWMgPiQoZGlzdGRpcikudGFyLloK KysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdC1zaGFyOiBkaXN0ZGlyCisrCXNoYXIg JChkaXN0ZGlyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS5zaGFyLmd6 CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3QtemlwOiBkaXN0ZGlyCisrCS1ybSAt ZiAkKGRpc3RkaXIpLnppcAorKwl6aXAgLXJxICQoZGlzdGRpcikuemlwICQoZGlzdGRpcikKKysJ JChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrZGlzdCBkaXN0LWFsbDogZGlzdGRpcgorKwl0YXJk aXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4k KGRpc3RkaXIpLnRhci5negorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgYnpp cDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgorKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKysK KysjIFRoaXMgdGFyZ2V0IHVudGFycyB0aGUgZGlzdCBmaWxlIGFuZCB0cmllcyBhIFZQQVRIIGNv bmZpZ3VyYXRpb24uICBUaGVuCisrIyBpdCBndWFyYW50ZWVzIHRoYXQgdGhlIGRpc3RyaWJ1dGlv biBpcyBzZWxmLWNvbnRhaW5lZCBieSBtYWtpbmcgYW5vdGhlcgorKyMgdGFyZmlsZS4KKytkaXN0 Y2hlY2s6IGRpc3QKKysJY2FzZSAnJChESVNUX0FSQ0hJVkVTKScgaW4gXAorKwkqLnRhci5neiop IFwKKysJICBHWklQPSQoR1pJUF9FTlYpIGd1bnppcCAtYyAkKGRpc3RkaXIpLnRhci5neiB8ICQo YW1fX3VudGFyKSA7O1wKKysJKi50YXIuYnoyKikgXAorKwkgIGJ1bnppcDIgLWMgJChkaXN0ZGly KS50YXIuYnoyIHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRhci5sem1hKikgXAorKwkgIHVubHpt YSAtYyAkKGRpc3RkaXIpLnRhci5sem1hIHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRhci5aKikg XAorKwkgIHVuY29tcHJlc3MgLWMgJChkaXN0ZGlyKS50YXIuWiB8ICQoYW1fX3VudGFyKSA7O1wK KysJKi5zaGFyLmd6KikgXAorKwkgIEdaSVA9JChHWklQX0VOVikgZ3VuemlwIC1jICQoZGlzdGRp cikuc2hhci5neiB8IHVuc2hhciA7O1wKKysJKi56aXAqKSBcCisrCSAgdW56aXAgJChkaXN0ZGly KS56aXAgOztcCisrCWVzYWMKKysJY2htb2QgLVIgYS13ICQoZGlzdGRpcik7IGNobW9kIGErdyAk KGRpc3RkaXIpCisrCW1rZGlyICQoZGlzdGRpcikvX2J1aWxkCisrCW1rZGlyICQoZGlzdGRpcikv X2luc3QKKysJY2htb2QgYS13ICQoZGlzdGRpcikKKysJZGNfaW5zdGFsbF9iYXNlPWAkKGFtX19j ZCkgJChkaXN0ZGlyKS9faW5zdCAmJiBwd2QgfCBzZWQgLWUgJ3MsXlteOlxcL106W1xcL10sLywn YCBcCisrCSAgJiYgZGNfZGVzdGRpcj0iJCR7VE1QRElSLS90bXB9L2FtLWRjLSQkJCQvIiBcCisr CSAgJiYgY2QgJChkaXN0ZGlyKS9fYnVpbGQgXAorKwkgICYmIC4uL2NvbmZpZ3VyZSAtLXNyY2Rp cj0uLiAtLXByZWZpeD0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJICAgICQoRElTVENIRUNLX0NP TkZJR1VSRV9GTEFHUykgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkdmkgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGNoZWNrIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsIFwK KysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsY2hlY2sgXAorKwkgICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIHVuaW5zdGFsbCBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJ ICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2sgXAorKwkgICYmIGNobW9kIC1SIGEtdyAiJCRkY19p bnN0YWxsX2Jhc2UiIFwKKysJICAmJiAoeyBcCisrCSAgICAgICAoY2QgLi4vLi4gJiYgdW1hc2sg MDc3ICYmIG1rZGlyICIkJGRjX2Rlc3RkaXIiKSBcCisrCSAgICAgICAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIGluc3RhbGwgXAorKwkgICAgICAgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiB1bmluc3RhbGwg XAorKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0 ZGlyIiBcCisrCSAgICAgICAgICAgIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfZGVzdGRp ciIgZGlzdHVuaW5zdGFsbGNoZWNrOyBcCisrCSAgICAgIH0gfHwgeyBybSAtcmYgIiQkZGNfZGVz dGRpciI7IGV4aXQgMTsgfSkgXAorKwkgICYmIHJtIC1yZiAiJCRkY19kZXN0ZGlyIiBcCisrCSAg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdCBcCisrCSAgJiYgcm0gLXJmICQoRElTVF9B UkNISVZFUykgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3RjbGVhbmNoZWNr CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorKwlAKGVjaG8gIiQoZGlzdGRpcikgYXJjaGl2ZXMg cmVhZHkgZm9yIGRpc3RyaWJ1dGlvbjogIjsgXAorKwkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUykn OyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKKysJICBzZWQgLWUgMWgg LWUgMXMvLi89L2cgLWUgMXAgLWUgMXggLWUgJyQkcCcgLWUgJyQkeCcKKytkaXN0dW5pbnN0YWxs Y2hlY2s6CisrCUBjZCAkKGRpc3R1bmluc3RhbGxjaGVja19kaXIpIFwKKysJJiYgdGVzdCBgJChk aXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtbGUgMSBcCisrCSAgIHx8IHsg ZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgYWZ0ZXIgdW5pbnN0YWxsOiIgOyBcCisrCSAgICAgICAg aWYgdGVzdCAtbiAiJChERVNURElSKSI7IHRoZW4gXAorKwkgICAgICAgICAgZWNobyAiICAoY2hl Y2sgREVTVERJUiBzdXBwb3J0KSI7IFwKKysJICAgICAgICBmaSA7IFwKKysJICAgICAgICAkKGRp c3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIDsgXAorKwkgICAgICAgIGV4aXQgMTsgfSA+JjIK KytkaXN0Y2xlYW5jaGVjazogZGlzdGNsZWFuCisrCUBpZiB0ZXN0ICckKHNyY2RpciknID0gLiA7 IHRoZW4gXAorKwkgIGVjaG8gIkVSUk9SOiBkaXN0Y2xlYW5jaGVjayBjYW4gb25seSBydW4gZnJv bSBhIFZQQVRIIGJ1aWxkIiA7IFwKKysJICBleGl0IDEgOyBcCisrCWZpCisrCUB0ZXN0IGAkKGRp c3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWVxIDAgXAorKwkgIHx8IHsgZWNobyAi RVJST1I6IGZpbGVzIGxlZnQgaW4gYnVpbGQgZGlyZWN0b3J5IGFmdGVyIGRpc3RjbGVhbjoiIDsg XAorKwkgICAgICAgJChkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMpIDsgXAorKwkgICAgICAgZXhp dCAxOyB9ID4mMgorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisr YWxsLWFtOiBNYWtlZmlsZSAkKFNDUklQVFMpICQoREFUQSkKKytpbnN0YWxsZGlyczogaW5zdGFs bGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJ UikkKGJpbmRpcikiICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiAiJChERVNURElSKSQocGtnY29u ZmlnZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIi OyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzog aW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vy c2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFs bC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwt ZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3Rh bGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJ TlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXog JyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJP Rz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4t Z2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NM RUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBt YWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJl cXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5F UkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBj bGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29s IG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1y bSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQorKwktcm0gLWYgTWFrZWZpbGUKKytk aXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29s IFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06 CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKwor K2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW00ZGF0YURBVEEgaW5zdGFs bC1wa2djb25maWdEQVRBCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQor KworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1iaW5TQ1JJUFRTCisrCisraW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t cmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5z dGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVj dXJzaXZlCisrCS1ybSAtZiAkKGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQorKwktcm0gLXJm ICQodG9wX3NyY2RpcikvYXV0b200dGUuY2FjaGUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRh aW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKwor K21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTog bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVj dXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysK Kyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1iaW5TQ1JJUFRTIHVuaW5zdGFsbC1sb2NhbCBcCisr CXVuaW5zdGFsbC1tNGRhdGFEQVRBIHVuaW5zdGFsbC1wa2djb25maWdEQVRBCisrCisrLk1BS0U6 ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwt YW0gXAorKwlpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gYW0t LXJlZnJlc2ggY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxp YnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3QgZGlzdC1hbGwgZGlzdC1iemlwMiBcCisr CWRpc3QtZ3ppcCBkaXN0LWx6bWEgZGlzdC1zaGFyIGRpc3QtdGFyWiBkaXN0LXppcCBkaXN0Y2hl Y2sgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlz dGNsZWFuLXRhZ3MgXAorKwlkaXN0Y2xlYW5jaGVjayBkaXN0ZGlyIGRpc3R1bmluc3RhbGxjaGVj ayBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3Rh bGwtYW0gaW5zdGFsbC1iaW5TQ1JJUFRTIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1h bSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0 YWxsLWluZm8tYW0gaW5zdGFsbC1tNGRhdGFEQVRBIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1w ZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2djb25maWdEQVRBIGluc3RhbGwtcHMgXAorKwlp bnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBc CisrCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisr CW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJz aXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtYmluU0NSSVBUUyB1bmlu c3RhbGwtbG9jYWwgXAorKwl1bmluc3RhbGwtbTRkYXRhREFUQSB1bmluc3RhbGwtcGtnY29uZmln REFUQQorKworK0BTRVRfTUFLRUAKKysKKysjIFRhcmdldHMKKyt1bmluc3RhbGwtbG9jYWw6Cisr CXJtIC1yZiAkKERFU1RESVIpJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKysKKytkaXN0LWh0bWw6 CisrCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbAorKworK3NuYXBzaG90OiBzbmFwc2hvdC1zcmMg c25hcHNob3QtaHRtbAorKworK3NuYXBzaG90LXNyYzoKKysgICAgICAgICQoTUFLRSkgZGlzdCBk aXN0ZGlyPUBQQUNLQUdFX1RBUk5BTUVALWBkYXRlICsiJVklbSVkImAKKysKKytzbmFwc2hvdC1o dG1sOgorKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwgaHRtbF90YXJuYW1lPUBQQUNLQUdFX1RB Uk5BTUVALWh0bWwtZG9jLWBkYXRlICsiJVklbSVkImAKKysKKyt1cGxvYWQ6IHVwbG9hZC1zcmMg dXBsb2FkLWh0bWwKKysKKyt1cGxvYWQtc3JjOiBkaXN0CisrCUBVUExPQURfQ09NTUFOREAgQFBB Q0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5neiBcCisrCUBQQUNLQUdFX1RBUk5BTUVALUBW RVJTSU9OQC50YXIuYnoyCisrCisrdXBsb2FkLWh0bWw6IGRpc3QtaHRtbAorKwlAVVBMT0FEX0NP TU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuZ3ogXAorKwlA UEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmJ6MgorKyMgVGVsbCB2ZXJz aW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMu CisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUg ZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9N YWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCistLS0gc29jaS0z LjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2 IDE5OjM3OjA5LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0IEBACisrIyBNYW4gcGFnZXMK KyttYW5fTUFOUyA9IHNvY2ktY29uZmlnLjEKKysKKytFWFRSQV9ESVNUID0gJChtYW5fTUFOUykK K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90 cmVwMzAwL21hbi9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmls ZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9tYW4vTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MC4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsNDMwIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21h a2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMg Q29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBw ZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0Uu CisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRh ZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5j bHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5T VEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9T VF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQg PSBAaG9zdEAKKytzdWJkaXIgPSBtYW4KKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4KKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9h Y2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4 X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQg JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19h Y2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxf TTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0g JCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK1NP VVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrbWFuMWRpciA9ICQobWFuZGlyKS9tYW4xCisrYW1f X2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKG1hbjFkaXIpIgorK05ST0ZGID0gbnJvZmYKKytN QU5TID0gJChtYW5fTUFOUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09V UkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytB TVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRP SEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFX S0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIg PSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9G SUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19M SUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9P U1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTEla QVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JP T1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJT SU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RF QAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFH U0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9 IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVO SVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBA Q1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFH U0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBA REVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0VDSE8gPSBARUNIT0AKKytFQ0hPX0Mg PSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JF UCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0Y3NyA9IEBGNzdACisrRkZMQUdTID0g QEZGTEFHU0AKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVS U0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFU QSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAK KytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dS QU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJP QkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytM Tl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtF SU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFH U0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxf RElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9 IEBNWVNRTF9WRVJTSU9OQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRVhUID0gQE9CSkVYVEAK KytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFD TEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdT QAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrUEFDS0FHRSA9 IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BB Q0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9T VFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZF UlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJB VE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVT UUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NU R1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AK KytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBS QU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRf TUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisr VVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAor K2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGly QAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2Rp ciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFgg PSBAYWNfY3RfQ1hYQAorK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACisrYW1fX2luY2x1ZGUgPSBA YW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9f cXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBA YW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRf YWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9v cyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGly ID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRh cm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5 Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBk dmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AK Kytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0g QGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3Zl bmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAor K2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhf b2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4 ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fs c3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xk aW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4 ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3Jt X25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9 IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0g QHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRh cmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9w X2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisr CisrIyBNYW4gcGFnZXMKKyttYW5fTUFOUyA9IHNvY2ktY29uZmlnLjEKKytFWFRSQV9ESVNUID0g JChtYW5fTUFOUykKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFr ZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQor KwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScg aW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAorKwkJJiYgZXhpdCAwOyBcCisrCSAg ICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9w X3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIG1hbi9NYWtlZmlsZSc7IFwKKysJY2QgJCh0 b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgIG1hbi9NYWtlZmlsZQorKy5Q UkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcu c3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19k ZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisr CWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3Ny Y2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9N NCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6 CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGli cworK2luc3RhbGwtbWFuMTogJChtYW4xX01BTlMpICQobWFuX01BTlMpCisrCUAkKE5PUk1BTF9J TlNUQUxMKQorKwl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIp JChtYW4xZGlyKSIKKysJQGxpc3Q9JyQobWFuMV9NQU5TKSAkKGRpc3RfbWFuMV9NQU5TKSAkKG5v ZGlzdF9tYW4xX01BTlMpJzsgXAorKwlsMj0nJChtYW5fTUFOUykgJChkaXN0X21hbl9NQU5TKSAk KG5vZGlzdF9tYW5fTUFOUyknOyBcCisrCWZvciBpIGluICQkbDI7IGRvIFwKKysJICBjYXNlICIk JGkiIGluIFwKKysJICAgICouMSopIGxpc3Q9IiQkbGlzdCAkJGkiIDs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkKHNy Y2RpcikvJCRpOyB0aGVuIGZpbGU9JChzcmNkaXIpLyQkaTsgXAorKwkgIGVsc2UgZmlsZT0kJGk7 IGZpOyBcCisrCSAgZXh0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9eLipcXC4vLydgOyBcCisrCSAg Y2FzZSAiJCRleHQiIGluIFwKKysJICAgIDEqKSA7OyBcCisrCSAgICAqKSBleHQ9JzEnIDs7IFwK KysJICBlc2FjOyBcCisrCSAgaW5zdD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXFwuWzAtOWEtel0q JCQvLydgOyBcCisrCSAgaW5zdD1gZWNobyAkJGluc3QgfCBzZWQgLWUgJ3MvXi4qXC8vLydgOyBc CisrCSAgaW5zdD1gZWNobyAkJGluc3QgfCBzZWQgJyQodHJhbnNmb3JtKSdgLiQkZXh0OyBcCisr CSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuMWRpcikv JCRpbnN0JyI7IFwKKysJICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1h bjFkaXIpLyQkaW5zdCI7IFwKKysJZG9uZQorK3VuaW5zdGFsbC1tYW4xOgorKwlAJChOT1JNQUxf VU5JTlNUQUxMKQorKwlAbGlzdD0nJChtYW4xX01BTlMpICQoZGlzdF9tYW4xX01BTlMpICQobm9k aXN0X21hbjFfTUFOUyknOyBcCisrCWwyPSckKG1hbl9NQU5TKSAkKGRpc3RfbWFuX01BTlMpICQo bm9kaXN0X21hbl9NQU5TKSc7IFwKKysJZm9yIGkgaW4gJCRsMjsgZG8gXAorKwkgIGNhc2UgIiQk aSIgaW4gXAorKwkgICAgKi4xKikgbGlzdD0iJCRsaXN0ICQkaSIgOzsgXAorKwkgIGVzYWM7IFwK KysJZG9uZTsgXAorKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICBleHQ9YGVjaG8gJCRpIHwg c2VkIC1lICdzL14uKlxcLi8vJ2A7IFwKKysJICBjYXNlICIkJGV4dCIgaW4gXAorKwkgICAgMSop IDs7IFwKKysJICAgICopIGV4dD0nMScgOzsgXAorKwkgIGVzYWM7IFwKKysJICBpbnN0PWBlY2hv ICQkaSB8IHNlZCAtZSAncy9cXC5bMC05YS16XSokJC8vJ2A7IFwKKysJICBpbnN0PWBlY2hvICQk aW5zdCB8IHNlZCAtZSAncy9eLipcLy8vJ2A7IFwKKysJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNl ZCAnJCh0cmFuc2Zvcm0pJ2AuJCRleHQ7IFwKKysJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikk KG1hbjFkaXIpLyQkaW5zdCciOyBcCisrCSAgcm0gLWYgIiQoREVTVERJUikkKG1hbjFkaXIpLyQk aW5zdCI7IFwKKysJZG9uZQorK3RhZ3M6IFRBR1MKKytUQUdTOgorKworK2N0YWdzOiBDVEFHUwor K0NUQUdTOgorKworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBc CisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAt ZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAg ICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwK KysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwg ZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwK KysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwg ZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazog Y2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlICQoTUFOUykKKytpbnN0YWxsZGlyczoKKysJZm9y IGRpciBpbiAiJChERVNURElSKSQobWFuMWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIi IHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1hbQor K2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRh dGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQor KwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1h bQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJ JChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBf UFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8 IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSci YCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKwor K2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8 fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVy aWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRv IHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFs IHRvb2xzIHRvIHJlYnVpbGQuIgorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVh bi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRp c3RjbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRp c3RjbGVhbi1nZW5lcmljCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDog aHRtbC1hbQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0 YS1hbTogaW5zdGFsbC1tYW4KKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytp bnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytp bnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1h bjEKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBzOiBpbnN0 YWxsLXBzLWFtCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1h aW50YWluZXItY2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1h bTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFu OiBtb3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmlj IG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytw czogcHMtYW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1tYW4KKysK Kyt1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMQorKworKy5NQUtFOiBpbnN0YWxsLWFtIGlu c3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4g Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5l cmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1h bSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3Rh bGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwt aW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwKKysJaW5zdGFs bC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFs bC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFp bnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwlt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1h bSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFu MQorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhw b3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNW IGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL21hbi9zb2NpLWNvbmZpZy4xIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vc29j aS1jb25maWcuMQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9zb2NpLWNvbmZpZy4xCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL21h bi9zb2NpLWNvbmZpZy4xCTIwMDktMDQtMTYgMTk6Mzc6MDkuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDM5IEBACisrLlRIIFNPQ0kgMSAiMjggTWFyY2ggMjAwOSIKKysuU0ggTkFNRQorK3Nv Y2ktY29uZmlnIC0gc2NyaXB0IHRvIGdldCB2ZXJzaW9uIG51bWJlciBhbmQgY29tcGlsZXIgZmxh Z3Mgb2YgdGhlIGluc3RhbGxlZCBTT0NJIGxpYnJhcnkKKysuU0ggU1lOT1BTSVMKKysuQiBzb2Np LWNvbmZpZworK1tcLVwtcHJlZml4XSAgW1wtXC12ZXJzaW9uXSBbXC1cLWxpYnNdIFtcLVwtY2Zs YWdzXQorKy5TSCBERVNDUklQVElPTgorKy5QUAorK1xmSXNvY2ktY29uZmlnXGZQIGlzIGEgdG9v bCB0aGF0IGlzIHVzZWQgdG8gY29uZmlndXJlIHRvIGRldGVybWluZQorK3RoZSBjb21waWxlciBh bmQgbGlua2VyIGZsYWdzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gY29tcGlsZQorK2FuZCBsaW5r IHByb2dyYW1zIHRoYXQgdXNlIFxmSVNPQ0lcZlAuIEl0IGlzIGFsc28gdXNlZCBpbnRlcm5hbGx5 CisrdG8gdGhlIC5tNCBtYWNyb3MgZm9yIEdOVSBhdXRvY29uZiB0aGF0IGFyZSBpbmNsdWRlZCB3 aXRoIFxmSVNPQ0lcZlAuCisrLgorKy5TSCBPUFRJT05TCisrLmwKKytcZklzb2NpLWNvbmZpZ1xm UCBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKysuVFAgOAorKy5CICBcLVwtdmVyc2lv bgorK1ByaW50IHRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBv biB0aGUgc3RhbmRhcmQgb3V0cHV0LgorKy5UUCA4CisrLkIgIFwtXC1saWJzCisrUHJpbnQgdGhl IGxpbmtlciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJv Z3JhbSwgd2l0aCBjYmxhcworKy5UUCA4CisrLkIgIFwtXC1jZmxhZ3MKKytQcmludCB0aGUgY29t cGlsZXIgZmxhZ3MgdGhhdCBhcmUgbmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHBy b2dyYW0uCisrLlRQIDgKKysuQiAgXC1cLXByZWZpeAorK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0 aW9uIHByZWZpeC4KKysuU0ggU0VFIEFMU08KKysuQlIgZ3RrLWNvbmZpZyAoMSksCisrLkJSIGdu b21lLWNvbmZpZyAoMSkKKysuU0ggQ09QWVJJR0hUCisrQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVu aXMgQXJuYXVkCisrCisrUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3Ry aWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCisrZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBv c2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLAorK3Byb3ZpZGVkIHRoYXQgdGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKKyti b3RoIHRoYXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBl YXIgaW4KKytzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24uCitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svTkVXUyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUworLS0tIHNvY2ktMy4wLjBfNC1wYWNr L05FV1MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvTkVXUwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSwzIEBACisrCisrKiBXZWQgTWFyIDI2IDIwMDkgUlBNIHJlbGVhc2UgZm9yIHZlcnNpb24g My4wLjAKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2Vm aWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCistLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL01ha2VmaWxlLmFtCTIwMDktMDQtMjggMjM6MTU6MTQuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDkgQEAKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisr IyMgU291cmNlIGRpcmVjdG9yeQorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKysKKytTVUJESVJTID0gQE1ZU1FMX0RJUlNAIEBQT1NUR1JFU1FMX0RJUlNAIEBPUkFDTEVf RElSU0AKKysKKytFWFRSQV9ESVNUID0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01h a2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5p bgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDEuMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDUzNiBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5 IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAK KysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwg MjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBl eHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQ VVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9 ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAor K3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFU SD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3No X0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQo aW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJ TlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQ T1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0g OgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90 cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChz cmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytz dWJkaXIgPSBzb2NpL2JhY2tlbmRzCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2Nh bC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29z dC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9w X3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2Nh bF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQor K21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9w X2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytTT1VSQ0VT ID0KKytESVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBj aGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVj dXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUg aW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFs bC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJl Y3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5z dGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0 YWxsLXJlY3Vyc2l2ZQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVj dXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWlu ZXItY2xlYW4tcmVjdXJzaXZlCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNU X1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNU X1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxA CisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisr QVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9 IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVf TElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9P U1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVB TVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElP TlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0g QEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJ QUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAK KytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1Rf VkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQ TU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQ RkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05G SUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytD UFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQ ID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hY RkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElS ID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytFQ0hPID0gQEVDSE9ACisrRUNI T19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisr RUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGNzcgPSBARjc3QAorK0ZGTEFH UyA9IEBGRkxBR1NACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxM X0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dS QU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMREZMQUdTID0gQExERkxBR1NACisr TElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xA CisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBA TUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9D RkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1Z U1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJ T04gPSBATVlTUUxfVkVSU0lPTkAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkVYVCA9IEBPQkpF WFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBA T1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERG TEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK1BBQ0tB R0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAK KytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tB R0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FH RV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NF UEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NU R1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBA UE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxB R1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIg PSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisr U0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JV UklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQ QAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lP TkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3Ny Y2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9z cmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3Rf Q1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9GNzcgPSBAYWNfY3RfRjc3QAorK2FtX19pbmNsdWRl ID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisr YW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFy ID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1 aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVp bGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWls ZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBA ZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisr ZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sg PSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nf b2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2Nw dSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9z dF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRp ckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xh dGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBs aWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBs b2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAor K29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3By ZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRf b2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2Rp ciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9 IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAor K3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGly QAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJ TlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSBATVlTUUxfRElSU0Ag QFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJTQAorK0VYVFJBX0RJU1QgPSAKKythbGw6IGFs bC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2Nv bmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAorKwkJJiYg ZXhpdCAwOyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2Vu ZHMvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0Up IC0tZ251ICBzb2NpL2JhY2tlbmRzL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01h a2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBc CisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RB VFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFt X19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytj bGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9y eSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysj IGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtl ZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3Rl YWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBp biBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdp bGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1h a2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBg bWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0n ZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYg aW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9 eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFy Z2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQg aW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJ ICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK KysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwK KysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJn ZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQk ZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQk dGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYg aW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0t WyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsg XAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlz dGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsg XAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0 aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAor Kwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMv LXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAi TWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVs c2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAor KwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3Rh Z3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIk JHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBj dGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAk KFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkg PSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysK KytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJl PWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsg XAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5j bHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAg ICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBc CisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQo TElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwK KysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rp cikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAx OyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChp IGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdT KSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIg fHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFN X0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisr CWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQ KQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5p cXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQo Q1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJl PWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3Ny Y2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNs ZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdz CisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9 YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAor KwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRs aXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3Ry aXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRk aXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJf UCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlz dGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsg XAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmls ZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisr CSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmls ZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGly KS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBS ICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7 IFwKKysJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwK KysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwg Y3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwK KysJICBmaTsgXAorKwlkb25lCisrCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNl IFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtE SVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAg ZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3Rk aXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJk aXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9w X2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIv JCRzdWJkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0 aF9jaGVjaz06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vy c2l2ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJz aXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0 YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwt ZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNp dmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JB TT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkg IGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VO Vj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgor KworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIk KENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwor K21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRl bmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0 aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIk KE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykK KytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vy c2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVh bi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZp LWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNpdmUK KysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5z dGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2lu c3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xl YW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1v c3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06Cisr CisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysu TUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5z dGFsbC1hbSBcCisrCWluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1h bSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwlj dGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlz dGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAor KwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwK KysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhl YyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3Rh bGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0 YWxsLXBkZi1hbSBcCisrCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGlu c3RhbGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1h bSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNs ZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYt YW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwt YW0KKysKKytAU0VUX01BS0VACisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6Citk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3Bw IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0w MyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC9jb21tb24uY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICsw MjAwCitAQCAtNiw3ICs2LDEzIEBACisgLy8KKyAKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2lu Y2x1ZGUgInNvY2ktYmFja2VuZC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JV UklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxz ZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8 Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKyAjaW5jbHVkZSA8Y3RpbWU+CitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbSBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbQorLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9teXNxbC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSwyNiBAQAorKyMjIGJhY2tlbmRzL215c3FsIHN1Yi1kaXJlY3RvcnkKKytp bmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikv c291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytT VUJESVJTID0gLiB0ZXN0CisrCisraWYgSEFWRV9NWVNRTAorK2xpYl9MVExJQlJBUklFUz0gbGli c29jaV9teXNxbC5sYQorKworK2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFUz0gJChiY2tfbXlzcWxf aF9zb3VyY2VzKSAkKGJja19teXNxbF9jY19zb3VyY2VzKSAKKytsaWJzb2NpX215c3FsX2xhX0NY WEZMQUdTID0gJChNWVNRTF9DRkxBR1MpCisrbGlic29jaV9teXNxbF9sYV9MSUJBREQgPQorK2xp YnNvY2lfbXlzcWxfbGFfTERGTEFHUyA9IFwKKysJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVf VElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorKwktdmVyc2lvbi1pbmZv ICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorK2VuZGlmCisraWYg U09DSV9IRUFERVJTX0JVUklFRAorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRp cikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYworLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMJMjAw OS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorQEAgLTEsOTcgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJs ZXMgYXJlIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQgdGhlaXIgY29ycmVjdAorLSMgdmFs dWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBp dCBhY2NvcmRpbmdseS4KKy0KKy1NWVNRTExJQkRJUiA9IC1ML3Vzci9saWIvbXlzcWwKKy1NWVNR TExJQlMgPSAtbG15c3FsY2xpZW50IC1segorLU1ZU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNs dWRlL215c3FsCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbmRlbnQg b2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdT ID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxB R1N9IC1mUElDCistSU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtNWVNRTElOQ0xVREVESVJ9 CistCistCistT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0 YW5kYXJkLWludG8tdHlwZS5vIFwKKy0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2 ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAorLQljb21tb24ubworLQorLQor LU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8g XAorLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1l bnQtcy5vIFwKKy0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBjb21t b24tcy5vCistCistCistbGlic29jaV9teXNxbC5hIDogJHtPQkpFQ1RTfQorLQlhciBydiAkQCAk PworLQlybSAqLm8KKy0KKy0KKy1ibG9iLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWNvbW1vbi5vIDogY29tbW9uLmNwcAor LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rv cnkubyA6IGZhY3RvcnkuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistcm93LWlkLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFu ZGFyZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0g LWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC11c2UtdHlwZS5v IDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9CistCistc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8t dHlwZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItdXNlLXR5cGUubyA6IHZlY3Rvci11c2Ut dHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K Ky0KKy1zaGFyZWQgOiAke09CSkVDVFNTT30KKy0JJHtDT01QSUxFUn0gLXNoYXJlZCAtbyBsaWJz b2NpX215c3FsLnNvICR7T0JKRUNUU1NPfQorLQlybSAqLm8KKy0KKy1ibG9iLXMubyA6IGJsb2Iu Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy1jb21tb24tcy5vIDogY29tbW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS1zLm8gOiBmYWN0b3J5 LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9CistCistcm93LWlkLXMubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24tcy5vIDogc2Vzc2lv bi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVE SVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS1zLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3Bw CistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K Ky0KKy1zdGFuZGFyZC11c2UtdHlwZS1zLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtD T01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0 YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLXMubyA6IHZl Y3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NT T30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItdXNlLXR5cGUtcy5vIDogdmVjdG9yLXVzZS10 eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9CistCistCistY2xlYW4gOgorLQlybSAtZiBsaWJzb2NpX215c3FsLmEgbGlic29jaV9t eXNxbC5zbworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwv TWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZp bGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxl LmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0 MS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNzk2IEBACisrIyBNYWtlZmlsZS5pbiBnZW5l cmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJl X2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4 LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxl LmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisr IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwg dG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJU SUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAK Kytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRp cikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9T RVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0g NjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hf U0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RB VEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNU QUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5J TlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVp bGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1P TiA9ICQoYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0g XAorKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAorKwkkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvbXlzcWwK KytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRf ZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVf b2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMK KythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJF X0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5z dGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmln LmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJz dHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGog PSBjYXNlICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJz fF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKyth bV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0 YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikiCisrbGliTFRMSUJSQVJJRVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkKKytMVExJQlJBUklFUyA9 ICQobGliX0xUTElCUkFSSUVTKQorK2xpYnNvY2lfbXlzcWxfbGFfREVQRU5ERU5DSUVTID0KKyth bV9fbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc29jaS1teXNxbC5oIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2Jsb2IuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1v bi5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAg XAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCisrCSQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisr CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKyth bV9fb2JqZWN0c18xID0KKythbV9fb2JqZWN0c18yID0gbGlic29jaV9teXNxbF9sYS1ibG9iLmxv IGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1mYWN0b3J5 LmxvIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1zZXNz aW9uLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAorKwls aWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwKKysJbGlic29jaV9teXNxbF9s YS1zdGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8g XAorKwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbworK0BIQVZFX01ZU1FMX1RS VUVAYW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKSBcCisrQEhB VkVfTVlTUUxfVFJVRUAJJChhbV9fb2JqZWN0c18yKQorK2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNU UyA9ICQoYW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfbXlzcWxfbGFfTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9P TEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCisrCSQobGlic29jaV9teXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lfbXlzcWxfbGFfTERGTEFHUykgJChMREZM QUdTKSAtbyAkQAorK0BIQVZFX01ZU1FMX1RSVUVAYW1fbGlic29jaV9teXNxbF9sYV9ycGF0aCA9 IC1ycGF0aCAkKGxpYmRpcikKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQo dG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29u ZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK0NYWENPTVBJTEUg PSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENY WENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1f Q1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0t bW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFH UykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1Mp ICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUND ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAk KENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0Mp CisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAk KEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lf bXlzcWxfbGFfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX215c3FsX2xh X1NPVVJDRVNfRElTVCkKKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2st cmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2 ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3Rh bGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5m by1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNp dmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxk aXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1y ZWN1cnNpdmUKKythbV9fcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrcGtnaW5jbHVkZUhFQURFUlNf SU5TVEFMTCA9ICQoSU5TVEFMTF9IRUFERVIpCisrSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFE RVJTKQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNs ZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4t cmVjdXJzaXZlCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMg PSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1 ZGVfZGlyKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBB UkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisr QVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9P U1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAK KytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9J T1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09T VF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05B TFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1Rf VEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisr Qk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytD QyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisr Q1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBD UFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBV TklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZF UlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBA Q1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFU SF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERT WU1VVElMQAorK0VDSE8gPSBARUNIT0AKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBF Q0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBA RVhFRVhUQAorK0Y3NyA9IEBGNzdACisrRkZMQUdTID0gQEZGTEFHU0AKKytHRU5FUklDX0xJQlJB UllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisr SU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5T VEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNU QUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9H UkFNQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9 IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpT ID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElS X1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlT UUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0g QE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NRURJ VCA9IEBOTUVESVRACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVf RElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVf T0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9 IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVH UkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05B TUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1F ID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9O QAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQ R19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxf Q0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNR TF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBA UE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBA UlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVM TCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURA CisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE QAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FE X0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVp bGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBA YWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKyth Y19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0Y3 NyA9IEBhY19jdF9GNzdACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRp bmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2Ft X190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBi aW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisr YnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92 ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIg PSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRp ZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisr ZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9 IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9h bGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBA aG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxk aXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytp bnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGly ID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxv Y2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1h bmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRl ZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJA Cisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVk aXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0g QHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRf cHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRp ckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1 aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKysKKytiY2tf bXlzcWxfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9ibG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvY29tbW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Jvdy1pZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5 cGUuY3BwCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMg PSAuIHRlc3QKKytASEFWRV9NWVNRTF9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfbXlz cWwubGEKKytASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfU09VUkNFUyA9ICQoYmNr X215c3FsX2hfc291cmNlcykgJChiY2tfbXlzcWxfY2Nfc291cmNlcykgCisrQEhBVkVfTVlTUUxf VFJVRUBsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTID0gJChNWVNRTF9DRkxBR1MpCisrQEhBVkVf TVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX0xJQkFERCA9IAorK0BIQVZFX01ZU1FMX1RSVUVA bGlic29jaV9teXNxbF9sYV9MREZMQUdTID0gXAorK0BIQVZFX01ZU1FMX1RSVUVACSQoQk9PU1Rf TElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIp IFwKKytASEFWRV9NWVNRTF9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZF UlNJT04pCisrCisrQEhBVkVfTVlTUUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrQFNPQ0lfSEVBREVSU19C VVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytAU09DSV9IRUFE RVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrLlNVRkZJ WEVTOiAuY3BwIC5sbyAubyAub2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIp L01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3Vy Y2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkg IGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkg ICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2ggXAorKwkJJiYgZXhpdCAwOyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1n bnUgIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2Rpcikg JiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxl CisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4g JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNv bmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7 IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xP Q0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisraW5zdGFsbC1saWJMVExJQlJB UklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16 ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0 PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0 IC1mICQkcDsgdGhlbiBcCisrCSAgICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgICAgZWNobyAi ICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5z dGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAnJCRw JyAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAorKwkgICAgJChMSUJUT09MKSAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJ RVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICIkJHAiICIkKERFU1RESVIpJChsaWJk aXIpLyQkZiI7IFwKKysJICBlbHNlIDo7IGZpOyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtbGli TFRMSUJSQVJJRVM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKGxpYl9MVExJ QlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBwPSQoYW1fX3N0cmlwX2Rpcikg XAorKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJHAnIjsgXAor KwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIpJChsaWJkaXIpLyQkcCI7IFwKKysJZG9uZQorKwor K2NsZWFuLWxpYkxUTElCUkFSSUVTOgorKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8 fCBybSAtZiAkKGxpYl9MVExJQlJBUklFUykKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7 IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9b Xi9dKiQkfHwnYCI7IFwKKysJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKysJ ICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisrCSAgcm0gLWYgIiQk e2Rpcn0vc29fbG9jYXRpb25zIjsgXAorKwlkb25lCisrbGlic29jaV9teXNxbC5sYTogJChsaWJz b2NpX215c3FsX2xhX09CSkVDVFMpICQobGlic29jaV9teXNxbF9sYV9ERVBFTkRFTkNJRVMpIAor KwkkKGxpYnNvY2lfbXlzcWxfbGFfTElOSykgJChhbV9saWJzb2NpX215c3FsX2xhX3JwYXRoKSAk KGxpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX215c3FsX2xhX0xJQkFERCkgJChM SUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKwor K2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2Iu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9s YS1mYWN0b3J5LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0Bh bV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt dmVjdG9yLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlw ZS5QbG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChD WFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAk PAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElS KS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcg b2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJ TEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo Q1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAg YCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysu Y3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1N RCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwK KysKKytsaWJzb2NpX215c3FsX2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9teXNxbF9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLWJsb2IuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxv Yi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9teXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9ibG9iLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBs aWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtY29tbW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNw cCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1j b21tb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21t b24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvY29tbW9uLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGli c29jaV9teXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAkKERFUERJUikv bGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9y eS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3Fs X2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuVHBvIC1jIC1v IGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlRwbyAkKERFUERJUikv bGlic29jaV9teXNxbF9sYS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xh LXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jv dy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9yb3ctaWQuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAtbyBs aWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNz aW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlz cWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJk LWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10 eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXN0YW5kYXJkLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWlu dG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUu bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBl LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0 YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJk LXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlw ZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xh LXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrCisr bGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEt c3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS1zdGF0ZW1lbnQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3Fs X2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215 c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZl Y3Rvci1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKysKKyts aWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8g LWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVz ZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlw ZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAK KysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRv b2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAk KHBrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQo cGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIp IgorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBc CisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7 IFwKKysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFE RVJTX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsg XAorKwkgICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikk KHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2dpbmNsdWRl SEVBREVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9I RUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBc CisrCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAor KwkgIHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisrCWRvbmUKKysK KysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVu dDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcg dGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2Un IHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUg dmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycK KysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVk IHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJl ZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VU Uyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRv IFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICpr KikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rf c2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisr CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8g Ik1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7 IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAi JCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhp dCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4g XAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVz Jzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAi JEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChE SVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2Fj OyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2 IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9 YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7 IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAor KwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0 IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChT T1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVl CisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisr CXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVk ZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249 LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5j bHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGly L1RBR1MgfHwgXAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUv JCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0 IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRl c3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAk KEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRh Z3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJz aXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChU QUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdT X0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQo QU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisr CisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisr CSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAk JGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdT IEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0 cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAor Kwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVz PWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAt ZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0 cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAor KwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQg Jy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAt dWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkg IGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQo c3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAg ZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlm IHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4g XAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQk ZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQk ZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIg XAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwg ZXhpdCAxOyBcCisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBc CisrCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwK KysJICAgIChjZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRp c3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAor KwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAg ICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytj aGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAk KEhFQURFUlMpCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxk aXJzLWFtOgorKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQo cGtnaW5jbHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkg IiQkZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0 YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxs LWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUK KytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dS QU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0 ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1T VFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKwor K2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENP TkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21h aW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRl ZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0 IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1B SU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytj bGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlz dGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJt IC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJz aXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5m by1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1w a2dpbmNsdWRlSEVBREVSUworKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUK KysKKytpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKysKKytpbnN0YWxs LWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwt aW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFs bC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysK KytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVh bi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj CisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFu LWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHlj bGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3Bz OiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1s aWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBc CisrCWluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMp ICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBj aGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xl YW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFu LWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xl YW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFt IGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5z dGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1p bmZvLWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAor KwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcHMgXAor KwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1h bSBcCisrCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwlt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBc CisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBz IHBzLWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwK KysJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwor KworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2Ug dG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0 IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAkyMDA5LTA1 LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAw MCArMDIwMAorQEAgLTIzLDEyICsyMywyMyBAQAorICNpZm5kZWYgU09DSV9NWVNRTF9ERUNMCisg IyBkZWZpbmUgU09DSV9NWVNRTF9ERUNMCisgI2VuZGlmCistCistI2luY2x1ZGUgInNvY2ktYmFj a2VuZC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAg IGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8 c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKyAjaWZkZWYgX1dJTjMyCisgI2luY2x1ZGUg PHdpbnNvY2suaD4gLy8gU09DS0VUCisgI2VuZGlmIC8vIF9XSU4zMgorLSNpbmNsdWRlIDxteXNx bC5oPiAvLyBNeVNRTCBDbGllbnQKKysvLworKy8vIE15U1FMIENsaWVudAorKyNpZiBkZWZpbmVk KFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxteXNxbC9teXNx bC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxteXNxbC5oPgorKyNlbmRpZgorICNpbmNsdWRlIDx2 ZWN0b3I+CisgCisgCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Nv dXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJj ZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6 MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE0IEBACisrYmNrX215c3FsX2hfc291cmNl cyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24u aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNx bC5oCisrYmNrX215c3FsX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10 eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVj dG9yLXVzZS10eXBlLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMDMg MDA6MjQ6MTUuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAw MDAwMDAwMCArMDIwMAorQEAgLTgsOCArOCwxNCBAQAorIAorICNkZWZpbmUgU09DSV9NWVNRTF9T T1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3Jt Lmg+CisgI2luY2x1ZGUgImNvbW1vbi5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJT X0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+Cisr I2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysjZW5kaWYKKysvLworICNpbmNs dWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxjYXNzZXJ0PgorICNpbmNsdWRlIDxjdGltZT4KK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3Fs L3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTksNyAr OSwxMyBAQAorICNkZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNx bC5oIgorICNpbmNsdWRlICJjb21tb24uaCIKKy0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgor Ky8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUg PHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxh dGZvcm0uaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxs aW1pdHM+CisgI2luY2x1ZGUgPGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDE4IEBACisrIyMgYmFja2VuZC9teXNxbC90ZXN0IHN1Yi1kaXJlY3RvcnkK KytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rp cikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysK KytpZiBSVU5fVEVTVFMKKysgIG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfbXlzcWwKKytlbmRpZgor KworK3Rlc3RfbXlzcWxfU09VUkNFUyA9ICQobXlzcWxfdGVzdF9jY19zb3VyY2VzKQorK3Rlc3Rf bXlzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKKyt0ZXN0X215c3FsX0xEQUREID0KKyt0 ZXN0X215c3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29y ZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2xpYnNv Y2lfbXlzcWwubGEgXAorKwkJJChNWVNRTF9MREZMQUdTKQorKworKyNub2Rpc3RfcGtnaW5jbHVk ZV9IRUFERVJTID0gJChteXNxbF90ZXN0X2hfc291cmNlcykKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYworLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYwky MDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDIyICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcg dmFyaWFibGVzIGFyZSBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIHRoZWlyIGNvcnJlY3QK Ky0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0 byBzZXQgaXQgYWNjb3JkaW5nbHkuCistCistTVlTUUxMSUJESVIgPSAtTC91c3IvbGliL215c3Fs CistTVlTUUxMSUJTID0gLWxteXNxbGNsaWVudCAtbHoKKy1NWVNRTElOQ0xVREVESVIgPSAtSS91 c3IvaW5jbHVkZS9teXNxbAorLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVw ZW5kZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1D WFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0g LUkuLiAtSS4uLy4uLy4uL2NvcmUgJHtNWVNRTElOQ0xVREVESVJ9CistTElCRElSUyA9IC1MLi4g LUwuLi8uLi8uLi9jb3JlICR7TVlTUUxMSUJESVJ9CistTElCUyA9IC1sc29jaV9jb3JlIC1sc29j aV9teXNxbCAtbGRsICR7TVlTUUxMSUJTfQorLQorLQorLXRlc3QtbXlzcWwgOiB0ZXN0LW15c3Fs LmNwcAorLQkke0NPTVBJTEVSfSAtbyAkQCAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfSAk e0xJQkRJUlN9ICR7TElCU30KKy0KKy0KKy1jbGVhbiA6CistCXJtIC1mIHRlc3QtbXlzcWwKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZp bGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmls ZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4JMjAwOS0wNS0w MyAwMDoyMDo0MS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTEzIEBACisrIyBNYWtlZmls ZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBA Y29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwg MjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlz IE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1 dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlz IG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB CisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworK1ZQQVRIID0gQHNy Y2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAk KGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tB R0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1Ip IiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5z dGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0g JChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJh bnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgor K1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0g OgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxl dCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291 cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK0BSVU5fVEVTVFNfVFJVRUBu b2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3FsJChFWEVFWFQpCisrc3ViZGlyID0gc29jaS9iYWNr ZW5kcy9teXNxbC90ZXN0CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAor K2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2Rp cikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9k ZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5z dGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxk ZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytQUk9HUkFNUyA9ICQo bm9pbnN0X1BST0dSQU1TKQorK2FtX19vYmplY3RzXzEgPSB0ZXN0X215c3FsLXRlc3QtbXlzcWwu JChPQkpFWFQpCisrYW1fdGVzdF9teXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQorK3Rl c3RfbXlzcWxfT0JKRUNUUyA9ICQoYW1fdGVzdF9teXNxbF9PQkpFQ1RTKQorK3Rlc3RfbXlzcWxf REVQRU5ERU5DSUVTID0KKyt0ZXN0X215c3FsX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhM RCkgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSBcCisrCSQoQ1hYRkxBR1MpICQodGVzdF9teXNxbF9M REZMQUdTKSAkKExERkxBR1MpIC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNy Y0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNk aXIpL2NvbmZpZy9kZXBjb21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKytDWFhD T01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBc CisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp CisrTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9 ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg XAorKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFN X0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKHRlc3RfbXlzcWxf U09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKHRlc3RfbXlzcWxfU09VUkNFUykKKytFVEFHUyA9 IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FM QAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAor K0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sg PSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1F X0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJP T1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJF QU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9 IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VS SUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJA CisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NU X1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RF UE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQ UEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09O RklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisr Q1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQ UCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENY WEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJ UiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VD SE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAor K0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxB R1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFM TF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9H UkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBf UFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAor K0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09M QAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0g QE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxf Q0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBN WVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJT SU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JK RVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0g QE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xE RkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNL QUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRA CisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNL QUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tB R0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9T RVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9T VEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0g QFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZM QUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElC ID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAor K1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19C VVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJ UEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJ T05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19z cmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bf c3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0 X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVk 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 b2NpL2JhY2tlbmRzL215c3FsL2xpYnNvY2lfbXlzcWwubGEgXAorKwkJJChNWVNRTF9MREZMQUdT KQorKworK2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8g Lm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19j b25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19j b25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYm IGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkg ICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKKysu UFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmln LnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAor Kwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxf TTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKytjbGVhbi1ub2luc3RQUk9HUkFN UzoKKysJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAor KwkgIGY9YGVjaG8gJCRwfHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKysJICBlY2hvICIgcm0g LWYgJCRwICQkZiI7IFwKKysJICBybSAtZiAkJHAgJCRmIDsgXAorKwlkb25lCisrdGVzdF9teXNx bCQoRVhFRVhUKTogJCh0ZXN0X215c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9ERVBFTkRFTkNJ RVMpIAorKwlAcm0gLWYgdGVzdF9teXNxbCQoRVhFRVhUKQorKwkkKHRlc3RfbXlzcWxfTElOSykg JCh0ZXN0X215c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9MREFERCkgJChMSUJTKQorKworK21v c3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1j b21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAg QGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG9AYW1fX3F1b3Rl QAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQg JEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGli dG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8 CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1U ICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAn JDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQ RElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck PCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENP TVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQ RElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKyt0ZXN0X215c3Fs LXRlc3QtbXlzcWwubzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRl c3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwu byAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0 ZXN0X215c3FsLXRlc3QtbXlzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBv ICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvdGVzdC1teXNxbC5jcHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0LW15c3FsLm8nIGxp YnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rf bXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5v IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKysKKyt0ZXN0X215c3FsLXRlc3QtbXlzcWwub2Jq OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogLU1EIC1NUCAt TUYgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gLWMgLW8gdGVzdF9teXNxbC10 ZXN0LW15c3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFU SF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rl c3QtbXlzcWwuY3BwJzsgZmlgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlz cWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIG9iamVjdD0n dGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFU SF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5j cHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZmlgCisrCisrbW9zdGx5Y2xlYW4tbGli dG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJz IF9saWJzCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxF UykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7 IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQk aSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRv bmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAor KwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9 OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6ICAk KEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19G SUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0 ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkg IHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAk JHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdz JCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFH UykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6Cisr CWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0 b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytk aXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRI IHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIk KHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJz dHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBp biAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNk aXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9i dWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChN S0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58 JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwll c2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYg JCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7 IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIv JCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChz cmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBj cCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAg ICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQg MTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAg ICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQg MTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNr LWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3Rh bGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwt ZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0 YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2lu c3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3Qg LXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQ UFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xl YW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklH X0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZv ciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5 IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRB SU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFu OiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xl YW4tbm9pbnN0UFJPR1JBTVMgXAorKwltb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlz dGNsZWFuLWFtCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlz dGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBc CisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRt bDogaHRtbC1hbQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwt ZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4 ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWlu Zm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBp bnN0YWxsLXBkZi1hbQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxs Y2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwkt cm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4t YW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVh bjogbW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGls ZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjog cGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5z dGFsbC1hbToKKysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05Z OiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVy aWMgXAorKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVh biBcCisrCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0 b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBp bmZvIGluZm8tYW0gXAorKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwt ZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisrCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5m byBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBk Zi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxj aGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBp bGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1h bSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisr CisrI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3VyY2VzKQor KyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFs bCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxl YXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDIgQEAKKytteXNxbF90ZXN0X2hfc291cmNlcyA9CisrbXlzcWxfdGVz dF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAw MDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvdGVzdC1teXNxbC5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BA IC02LDkgKzYsMTcgQEAKKyAvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQp CisgLy8KKyAKKy0jaW5jbHVkZSAic29jaS5oIgorLSNpbmNsdWRlICJzb2NpLW15c3FsLmgiCist I2luY2x1ZGUgInRlc3QvY29tbW9uLXRlc3RzLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oPgorKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+CisrI2Vsc2UKKysjCWluY2x1 ZGUgPHNvY2kuaD4KKysjCWluY2x1ZGUgPHNvY2ktbXlzcWwuaD4KKysjICAgICAgIGluY2x1ZGUg PHRlc3QvY29tbW9uLXRlc3RzLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8aW9zdHJlYW0+ CisgI2luY2x1ZGUgPHNzdHJlYW0+CisgI2luY2x1ZGUgPHN0cmluZz4KK0BAIC0xOCw4ICsyNiwx NCBAQAorICNpbmNsdWRlIDxjdGltZT4KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8 Y3N0ZGxpYj4KKy0jaW5jbHVkZSA8bXlzcWxkX2Vycm9yLmg+CistI2luY2x1ZGUgPGVycm1zZy5o PgorKy8vIE15U1FMIENsaWVudAorKyNpZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RUQpCisrIyAgICAgICBpbmNsdWRlIDxteXNxbC9teXNxbGRfZXJyb3IuaD4KKysjICAgICAgIGlu Y2x1ZGUgPG15c3FsL2Vycm1zZy5oPgorKyNlbHNlCisrIyAgICAgICBpbmNsdWRlIDxteXNxbGRf ZXJyb3IuaD4KKysjICAgICAgIGluY2x1ZGUgPGVycm1zZy5oPgorKyNlbmRpZgorIAorIHVzaW5n IG5hbWVzcGFjZSBzb2NpOworIHVzaW5nIG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3It aW50by10eXBlLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw CTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEzIEBACisg I2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2lu Y2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYg ZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L3NvY2ktcGxhdGZvcm0uaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgor KyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgCisgI2lmZGVmIF9NU0NfVkVSCitk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNl LXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAJMjAwOS0wNS0wMyAwMDoyNDoxNS4wMDAwMDAwMDAgKzAyMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUu Y3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEzIEBA CisgI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisg I2luY2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysj aWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3NvY2ktcGxhdGZvcm0uaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5o PgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxpbWl0cz4K KyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9ibG9iLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9v cmFjbGUvYmxvYi5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNs ZS9ibG9iLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDA5LTA0LTE2IDE5 OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsNyArNywxMyBAQAorIAorICNpbmNsdWRlICJz b2NpLW9yYWNsZS5oIgorICNpbmNsdWRlICJlcnJvci5oIgorLSNpbmNsdWRlICJzdGF0ZW1lbnQu aCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHN0YXRlbWVu dC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNzdHJpbmc+CisgI2luY2x1ZGUgPHNzdHJl YW0+CisgI2luY2x1ZGUgPGNzdGRpbz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL29yYWNsZS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5h bQkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyNyBAQAor KyMjIGJhY2tlbmRzL29yYWNsZSBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlO VEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4gdGVzdAorKwor K2lmIEhBVkVfT1JBQ0xFCisrbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX29yYWNsZS5sYQorKwor K2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVM9ICQoYmNrX29yYWNsZV9oX3NvdXJjZXMpICQoYmNr X29yYWNsZV9jY19zb3VyY2VzKSAKKytsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JB Q0xFX09DSV9DRkxBR1MpCisrbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0KKytsaWJzb2NpX29y YWNsZV9sYV9MREZMQUdTID0gXAorKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJ QikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisrCSQoT1JBQ0xFX09DSV9MREZMQUdT KSBcCisrCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKytub2Jh c2VfcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zb2NpLW9yYWNsZS5oCisrZW5kaWYKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUKKytlbHNlCisr c29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIg PSAkKHNvY2lfaW5jbHVkZV9kaXIpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAw MDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFr ZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDk1 ICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBi YWNrZW5kIGFuZCBpdHMgY29ycmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVu dmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0KKy1PUkFDTEVJ TkNMVURFRElSID0gLUkvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIu MC9zZXJ2ZXIvcmRibXMvcHVibGljCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMg aW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcr KworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NT TyA9ICR7Q1hYRkxBR1N9IC1mUElDCistSU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtPUkFD TEVJTkNMVURFRElSfQorLQorLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNl c3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCistCXN0YW5kYXJkLXVzZS10eXBlLm8gc3Rh dGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5vIFwKKy0JZXJyb3Iu bworLQorLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lv bi1zLm8gXAorLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBz dGF0ZW1lbnQtcy5vIFwKKy0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMu byBlcnJvci1zLm8KKy0KKy1saWJzb2NpX29yYWNsZS5hIDogJHtPQkpFQ1RTfQorLQlhciBydiAk QCAkPworLQlybSAqLm8KKy0KKy1zb2NpLW9yYWNsZS5vIDogc29jaS1vcmFjbGUuY3BwIAorLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQkKKy1ibG9iLm8g OiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLWVycm9yLm8gOiBlcnJvci5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC5vIDogcm93 LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQorLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1p bnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVu dC5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3Bw CistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVj dG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistCistc2hhcmVkIDogJHtPQkpFQ1RTU099 CistCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9vcmFjbGUuc28gJHtPQkpFQ1RTU099 CistCXJtICoubworLQorLWJsb2Itcy5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWVycm9yLXMubyA6IGVycm9y LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9CistCistZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistcm93LWlkLXMubyA6IHJvdy1p ZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVE SVJTfQorLQorLXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlw ZS1zLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC11c2UtdHlwZS1zLm8g OiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhG TEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3Bw CistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K Ky0KKy12ZWN0b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09N UElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0 b3ItdXNlLXR5cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistCistY2xlYW4gOgorLQly bSAtZiAqLm8gbGlic29jaV9vcmFjbGUuYSBsaWJzb2NpX29yYWNsZS5zbworZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL01ha2VmaWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDEuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDgwMCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKwor KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVy bWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgor KworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQo ZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK2Ft X19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QK KytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hf UFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFs bF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9 ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5T VEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVf VU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVp bGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKGFtX19ub2Jhc2Vf cGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9vcmFjbGUKKytBQ0xPQ0FM X000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQo dG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29u ZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVO Q0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkg LWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05G SUdfQ0xFQU5fRklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQk cCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2Rp cnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBf ZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsZGlycyA9 ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrbGli TFRMSUJSQVJJRVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkKKytMVExJQlJBUklFUyA9ICQobGliX0xU TElCUkFSSUVTKQorK2xpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUyA9CisrYW1fX2xpYnNv Y2lfb3JhY2xlX2xhX1NPVVJDRVNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvZXJyb3IuaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc29jaS1vcmFjbGUuaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv YmxvYi5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNw cCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAor KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAorKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKKysJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAor KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwK KysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3Bw CisrYW1fX29iamVjdHNfMSA9CisrYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfb3JhY2xlX2xhLWJs b2IubG8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1m YWN0b3J5LmxvIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lfb3JhY2xl X2xhLXNlc3Npb24ubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUu bG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCisrCWxpYnNv Y2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBcCisrCWxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1p bnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8KKytA SEFWRV9PUkFDTEVfVFJVRUBhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9fb2Jq ZWN0c18xKSBcCisrQEhBVkVfT1JBQ0xFX1RSVUVACSQoYW1fX29iamVjdHNfMikKKytsaWJzb2Np X29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKQorK2xp YnNvY2lfb3JhY2xlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAorKwkkKGxp YnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisrCSQobGlic29jaV9vcmFj bGVfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0BIQVZFX09SQUNMRV9UUlVFQGFtX2xp YnNvY2lfb3JhY2xlX2xhX3JwYXRoID0gLXJwYXRoICQobGliZGlyKQorK0RFRkFVTFRfSU5DTFVE RVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChT SEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9 IGRlcGZpbGVzCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZM QUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQo Q1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykg JChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytDT01QSUxF ID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpIFwKKysJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0xUQ09NUElM RSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCisrCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAk KENGTEFHUykKKytDQ0xEID0gJChDQykKKytMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDQ0xEKSAk KEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRA CisrU09VUkNFUyA9ICQobGlic29jaV9vcmFjbGVfbGFfU09VUkNFUykKKytESVNUX1NPVVJDRVMg PSAkKGFtX19saWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTX0RJU1QpCisrUkVDVVJTSVZFX1RBUkdF VFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRt bC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1o dG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVj dXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFs bGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisr CXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrYW1fX25vYmFzZV9wa2dpbmNsdWRl X0hFQURFUlNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c29jaS1vcmFjbGUuaAorK25vYmFzZV9wa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChpbnN0 YWxsX3NoX0RBVEEpCisrSEVBREVSUyA9ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKKytS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1 cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2 ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJE SVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikK KytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVU T0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtF ID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFH U0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1Rf RklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1T X0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AK KytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJA CisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9 IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9M SUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NA CisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBD UFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9D RkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJT ID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAor K0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1P REVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytE RUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAK KytFQ0hPID0gQEVDSE9ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAor K0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAK KytGNzcgPSBARjc3QAorK0ZGTEFHUyA9IEBGRkxBR1NACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwg PSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJP R1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJ UFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytM REZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AK KytMSUJUT09MID0gQExJQlRPT0xACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJ Qk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01Z U1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJ R0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9M REZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTUVESVQgPSBATk1F RElUQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisr T1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZM QUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xF X09DSV9WRVJTSU9OQAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9 IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BB Q0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNL QUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRI X1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklH ID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AK KytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFH UyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVT UUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxF QVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hF TExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5E QAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAor K2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3Bf YnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0Mg PSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9GNzcgPSBAYWNf Y3RfRjc3QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9 IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0g QGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAor K2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2Nw dSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0g QGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFk aXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAor K2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9 IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19w cmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBA aG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NA CisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2lu Y2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9z aCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJk aXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJA CisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisr bWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytw ZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5k aXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNo YXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25m ZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9 IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9w X3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikg LUkkKHRvcF9zcmNkaXIpCisrYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrCisrYmNrX29yYWNs ZV9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9ibG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Vycm9yLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2ZhY3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11 c2UtdHlwZS5jcHAKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VC RElSUyA9IC4gdGVzdAorK0BIQVZFX09SQUNMRV9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNv Y2lfb3JhY2xlLmxhCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfU09VUkNF UyA9ICQoYmNrX29yYWNsZV9oX3NvdXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKKytA SEFWRV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09D SV9DRkxBR1MpCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0g CisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKKytASEFW RV9PUkFDTEVfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkkKE9SQUNMRV9P Q0lfTERGTEFHUykgXAorK0BIQVZFX09SQUNMRV9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04pCisrCisrQEhBVkVfT1JBQ0xFX1RSVUVAbm9iYXNlX3BrZ2luY2x1 ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFj bGUuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGlu Y2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0g JChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZQorK2FsbDogYWxsLXJlY3Vyc2l2ZQor KworKy5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2Rpcikv TWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBm b3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBc CisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCisrCQkmJiBleGl0IDA7IFwKKysJICAgICAg ZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3Jj ZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUn OyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2Np L2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmls ZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisr CUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkg ICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19E RVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQorKwlAJChO T1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERF U1RESVIpJChsaWJkaXIpIgorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4g JCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkgICAgZj0kKGFtX19z dHJpcF9kaXIpIFwKKysJICAgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAk KElOU1RBTExfU1RSSVBfRkxBRykgJyQkcCcgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwK KysJICAgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFH KSAiJCRwIiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCisrCSAgZWxzZSA6OyBmaTsgXAor Kwlkb25lCisrCisrdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNU QUxMKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBc CisrCSAgcD0kKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVT VERJUikkKGxpYmRpcikvJCRwJyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGli ZGlyKS8kJHAiOyBcCisrCWRvbmUKKysKKytjbGVhbi1saWJMVExJQlJBUklFUzoKKysJLXRlc3Qg LXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCisrCUBs aXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9 ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIi ICE9ICIkJHAiIHx8IGRpcj0uOyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0 aW9uc1wiIjsgXAorKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQor K2xpYnNvY2lfb3JhY2xlLmxhOiAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29j aV9vcmFjbGVfbGFfREVQRU5ERU5DSUVTKSAKKysJJChsaWJzb2NpX29yYWNsZV9sYV9MSU5LKSAk KGFtX2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoKSAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMp ICQobGlic29jaV9vcmFjbGVfbGFfTElCQUREKSAkKExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29t cGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1y bSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3Rl QAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5Q bG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90 ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVA CisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAk QCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0 b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwK KysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQg JEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICck PCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBE SVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8 JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09N UElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86CisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBE SVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERF UERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xpYnNvY2lfb3Jh Y2xlX2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29y YWNsZV9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1i bG9iLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlRwbyAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9v cmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9ibG9iLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5UcG8gLWMgLW8g bGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS1lcnJvci5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5j cHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9s YS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9l cnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvZXJyb3IuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWZhY3Rvcnku bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBvIC1j IC1vIGxpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBv ICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCisrCisrbGlic29jaV9v cmFjbGVfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jv dy1pZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX29yYWNsZV9sYS1yb3ctaWQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlk LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVf bGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcAorKwor K2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1z ZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nl c3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtc2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29y YWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc2Vz c2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNz aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zZXNzaW9uLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8t dHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8t dHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8t dHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFy ZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNv Y2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2Ut dHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt dXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBl LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0 YW5kYXJkLXVzZS10eXBlLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3Rh dGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1l bnQuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lf b3JhY2xlX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YXRlbWVudC5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFj bGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVj dG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWlu dG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUu UGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0n bGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xh LXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKKysKKyts aWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBl LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92 ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVj dG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5 cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0 b3ItdXNlLXR5cGUuY3BwCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8K KysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1ub2Jh c2VfcGtnaW5jbHVkZUhFQURFUlM6ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQo Tk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJf UCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAJChhbV9fdnBhdGhfYWRqX3NldHVw KSBcCisrCWxpc3Q9JyQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxp c3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGly KS8iOyBmaTsgXAorKwkgICQoYW1fX3ZwYXRoX2FkaikgXAorKwkgIGVjaG8gIiAkKG5vYmFzZV9w a2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikvJCRmJyI7IFwKKysJICAkKG5vYmFzZV9wa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAi JCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAorKwlkb25lCisrCisr dW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFM TCkKKysJQCQoYW1fX3ZwYXRoX2Fkal9zZXR1cCkgXAorKwlsaXN0PSckKG5vYmFzZV9wa2dpbmNs dWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgJChhbV9fdnBhdGhfYWRq KSBcCisrCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsg XAorKwkgIHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisrCWRvbmUK KysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVu ZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29p bmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1h a2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0 aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1 cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJh dGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVz aXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFS R0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7 IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAg ICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlk b3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBc CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVj aG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJn ZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRv bmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAt eiAiJCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0n ZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYg aW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9 eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2Fz ZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0n JChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwll c2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQk cmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRy ZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0Ijsg XAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0 ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytj dGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykg JChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxp c3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNo byAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVz WyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkp IHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5p cXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5j bHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRp b249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAg aW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAor KwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3Vi ZGlyL1RBR1MgfHwgXAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhl cmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0 ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkg IHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAk JHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVj dXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENU QUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1Mp ICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVl CisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBc CisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdT KSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JU QUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2Rp cnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsg XAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14k JFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2Zp bGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNl ZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2Rp cnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4g XAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBz ZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29y dCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAor KwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBk PSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkg ICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAg IGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRo ZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwg ZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGly KSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIp LyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwK KysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRp ciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAg fHwgZXhpdCAxOyBcCisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2Rg OyBcCisrCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7 IFwKKysJICAgIChjZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAg IGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTog XAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJ ICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0K KytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVT KSAkKEhFQURFUlMpCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3Rh bGxkaXJzLWFtOgorKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElS KSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJf UCkgIiQkZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0 YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwt ZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNp dmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JB TT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkg IGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VO Vj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgor KworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIk KENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwor K21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRl bmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0 aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIk KE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykK KytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xl YW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisr ZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJ LXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGls ZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVj dXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzog aW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFs bC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmkt cmVjdXJzaXZlCisrCisraW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTCisr CisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZv OiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1w ZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVj dXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50 YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1h a2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xl YW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKytt b3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwK KysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1h bToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOiB1 bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgXAorKwl1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVI RUFERVJTCisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZF X1RBUkdFVFMpIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiAkKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBc CisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNs ZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwK KysJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlz dGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAor KwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwK KysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhl YyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3Rh bGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3Rh bGwtbWFuIFwKKysJaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wZGYg aW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJp cCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRp cnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVjdXJz aXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMg dW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUworKworK0BTRVRfTUFLRUAKKysjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCistLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAw MDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zb2NpLW9yYWNsZS5oCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAt MjIsOSArMjIsMTQgQEAKKyAjaWZuZGVmIFNPQ0lfT1JBQ0xFX0RFQ0wKKyAjIGRlZmluZSBTT0NJ X09SQUNMRV9ERUNMCisgI2VuZGlmCistCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorLSNp bmNsdWRlIDxvY2kuaD4gLy8gT0NJCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVS SUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNlbHNl CisrIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKysvLworKyNpbmNsdWRlIDxv Y2kuaD4gLy8gT0NJIChPcmFjbGUgY2xpZW50KQorICNpbmNsdWRlIDx2ZWN0b3I+CisgCisgI2lm ZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9v cmFjbGUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv c291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nv dXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5 OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNCBAQAorK2Jja19vcmFjbGVfaF9z b3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9l cnJvci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29j aS1vcmFjbGUuaAorK2Jja19vcmFjbGVfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2Ut dHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8t dHlwZS5jcHAJMjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAky MDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsMTAgKzcsMTggQEAKKyAK KyAjZGVmaW5lIFNPQ0lfT1JBQ0xFX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgor LSNpbmNsdWRlICJibG9iLmgiCisgI2luY2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUgInJvd2lk LmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+CisrIyAgICAg ICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgorKyMgICAg ICAgaW5jbHVkZSA8cm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNl bmRpZgorKy8vCisgI2luY2x1ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNs dWRlIDxjc3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMDMgMDA6 MjQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAw MDAwMCArMDIwMAorQEAgLTcsMTAgKzcsMTggQEAKKyAKKyAjZGVmaW5lIHNvY2lfT1JBQ0xFX1NP VVJDRQorICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJibG9iLmgiCisgI2lu Y2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUgInJvd2lkLmgiCistI2luY2x1ZGUgInN0YXRlbWVu dC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93 aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQor KyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KKysj ICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNj dHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIwMDkt MDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAw MDAwMDAgKzAyMDAKK0BAIC05LDcgKzksMTMgQEAKKyAKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUu aCIKKyAjaW5jbHVkZSAiZXJyb3IuaCIKKy0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrLy8K KysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29j aS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQu aD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4K KyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDIyIEBACisrIyMgY29yZSBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysK KytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisraWYgSEFWRV9PUkFDTEUK KysgIFRFU1RfT1JBQ0xFID0gdGVzdF9vcmFjbGUKKysKKytpZiBSVU5fVEVTVFMKKysgIG5vaW5z dF9QUk9HUkFNUyA9ICQoVEVTVF9PUkFDTEUpCisrZW5kaWYKKysKKyt0ZXN0X29yYWNsZV9TT1VS Q0VTID0gJChvcmFjbGVfdGVzdF9jY19zb3VyY2VzKQorK3Rlc3Rfb3JhY2xlX0NYWEZMQUdTID0g JChCT09TVF9DRkxBR1MpICQoT1JBQ0xFX09DSV9DRkxBR1MpCisrdGVzdF9vcmFjbGVfTERBREQg PQorK3Rlc3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNv Y2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9saWJzb2NpX29yYWNsZS5sYSBcCisrCQkkKE9SQUNMRV9PQ0lfTERGTEFHUykKKytlbmRpZgor KworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVzdF9oX3NvdXJjZXMp CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAy MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtl ZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsMjMg KzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJh Y2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52 aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLU9SQUNMRUlO Q0xVREVESVIgPSAtSS91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4w L3NlcnZlci9yZGJtcy9wdWJsaWMgCistT1JBQ0xFTElCRElSID0gLUwvdXNyL2xpYi9vcmFjbGUv eGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvbGliIAorLU9SQUNMRUxJQlMgPSAt bGNsbnRzaCAtbG5uejEwCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBl bnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNY WEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistSU5DTFVERURJUlMgPSAt SS4uIC1JLi4vLi4vLi4vY29yZSAtSS4uLy4uLy4uL2NvcmUvdGVzdCAke09SQUNMRUlOQ0xVREVE SVJ9CistTElCRElSUyA9IC1MLi4gLUwuLi8uLi8uLi9jb3JlICR7T1JBQ0xFTElCRElSfQorLUxJ QlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfb3JhY2xlIC1sZGwgLWxib29zdF9kYXRlX3RpbWUgJHtP UkFDTEVMSUJTfQorLQorLQorLXRlc3Qtb3JhY2xlIDogdGVzdC1vcmFjbGUuY3BwIAorLSMuLi8u Li8uLi9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKy0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9CistCistCistY2xlYW4g OgorLQlybSAtZiAqLm8gdGVzdC1vcmFjbGUKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS90ZXN0L01ha2VmaWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDEuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDUxNyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9t YWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysj IENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwg MjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQg cGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NF LgorKworK0BTRVRfTUFLRUAKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQo ZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3Br Z2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0i JCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RB VEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5z dGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNU QUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NU X0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgor K1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlw bGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNk aXIpL01ha2VmaWxlLmluIFwKKysJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KKytASEFWRV9PUkFDTEVfVFJVRUBAUlVOX1RFU1RTX1RSVUVAbm9pbnN0 X1BST0dSQU1TID0gJChhbV9fRVhFRVhUXzEpCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNs b2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChD T05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJz ID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQEhBVkVfT1JBQ0xFX1RSVUVAYW1f X0VYRUVYVF8xID0gdGVzdF9vcmFjbGUkKEVYRUVYVCkKKytQUk9HUkFNUyA9ICQobm9pbnN0X1BS T0dSQU1TKQorK2FtX190ZXN0X29yYWNsZV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCisrYW1fX29iamVj dHNfMSA9IHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLiQoT0JKRVhUKQorK0BIQVZFX09SQUNMRV9U UlVFQGFtX3Rlc3Rfb3JhY2xlX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisrdGVzdF9vcmFj bGVfT0JKRUNUUyA9ICQoYW1fdGVzdF9vcmFjbGVfT0JKRUNUUykKKyt0ZXN0X29yYWNsZV9ERVBF TkRFTkNJRVMgPQorK3Rlc3Rfb3JhY2xlX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkg JCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgXAorKwkkKENYWEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0xE RkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3Jj QCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2Rp cikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK0NYWENP TVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwK KysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykK KytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0g JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBc CisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1f TERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrU09VUkNFUyA9ICQodGVzdF9vcmFjbGVf U09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX190ZXN0X29yYWNsZV9TT1VSQ0VTX0RJU1Qp CisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1RfQ09N TU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwg PSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBB VVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01B S0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1P REUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBG TEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytD UFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5J VF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENY WEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhG TEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVG U0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0VDSE8gPSBA RUNIT0AKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0g QEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0Y3NyA9IEBG NzdACisrRkZMQUdTID0gQEZGTEFHU0AKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5F UklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxM QAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElO U1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNU QUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xERkxBR1MgPSBA TERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wg PSBATElCVE9PTEAKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytN QUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdT ID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FM X0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisr TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NRURJVCA9IEBOTUVESVRACisrT0JK RVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0Vf QlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJ TkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFN RUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9S ID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09O RklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVT UUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RH UkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9O QAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VE ID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJ X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RS SVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lP TiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2Rp ciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAK KythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9D Q0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACisr YW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFk aW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAK KythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBA YnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxk X2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVu ZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRh cm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0g QGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAK Kytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytn c19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFz QAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3Zl bmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9 IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3Rh bGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJl eGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0 YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0g QG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBw ZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHBy b2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmlu ZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVk aXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFy Z2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWls ZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0g QHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3Ny Y2RpcikKKytvcmFjbGVfdGVzdF9oX3NvdXJjZXMgPSAKKytvcmFjbGVfdGVzdF9jY19zb3VyY2Vz ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNw cAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytASEFWRV9PUkFDTEVfVFJV RUBURVNUX09SQUNMRSA9IHRlc3Rfb3JhY2xlCisrQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFj bGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3RfY2Nfc291cmNlcykKKytASEFWRV9PUkFDTEVfVFJV RUB0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKSAkKE9SQUNMRV9PQ0lfQ0ZM QUdTKQorK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xEQUREID0gCisrQEhBVkVfT1JB Q0xFX1RSVUVAdGVzdF9vcmFjbGVfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUv bGlic29jaV9jb3JlLmxhIC1sZGwgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkJJCh0b3BfYnVpbGRk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2xpYnNvY2lfb3JhY2xlLmxhIFwKKytASEFWRV9PUkFD TEVfVFJVRUAJCSQoT1JBQ0xFX09DSV9MREZMQUdTKQorKworK2FsbDogYWxsLWFtCisrCisrLlNV RkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmls ZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v biAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAg aW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAg ICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7 OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYm ICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlJzsg XAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtl ZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz CisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAor KwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRV U19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9f Y29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2Rl cHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAorKworK2NsZWFuLW5vaW5zdFBST0dSQU1TOgorKwlAbGlzdD0nJChub2luc3RfUFJP R1JBTVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZj1gZWNobyAkJHB8c2VkICdzLyQo RVhFRVhUKSQkLy8nYDsgXAorKwkgIGVjaG8gIiBybSAtZiAkJHAgJCRmIjsgXAorKwkgIHJtIC1m ICQkcCAkJGYgOyBcCisrCWRvbmUKKyt0ZXN0X29yYWNsZSQoRVhFRVhUKTogJCh0ZXN0X29yYWNs ZV9PQkpFQ1RTKSAkKHRlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUykgCisrCUBybSAtZiB0ZXN0X29y YWNsZSQoRVhFRVhUKQorKwkkKHRlc3Rfb3JhY2xlX0xJTkspICQodGVzdF9vcmFjbGVfT0JKRUNU UykgJCh0ZXN0X29yYWNsZV9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6 CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYg Ki50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5Qb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAk KERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1m ICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9iajoK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYg JChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBs aWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAg YCQoQ1lHUEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAt byAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyAtTUQgLU1Q IC1NRiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3Jh Y2xlLXRlc3Qtb3JhY2xlLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRw byAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuUG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCcgb2JqZWN0PSd0ZXN0X29yYWNsZS10ZXN0LW9yYWNs ZS5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9vcmFjbGUtdGVz dC1vcmFjbGUubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L3Rlc3Qtb3JhY2xlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorKworK3Rlc3Rfb3JhY2xl LXRlc3Qtb3JhY2xlLm9iajogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L3Rlc3Qtb3JhY2xlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X29yYWNsZS10ZXN0 LW9yYWNsZS5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xl LlRwbyAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vYmogYGlmIHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyB0aGVu ICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rl c3Qtb3JhY2xlLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IGZpYAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUu VHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5QbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qtb3Jh Y2xlLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rfb3JhY2xl LXRlc3Qtb3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAk KENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZmlgCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJ LXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisr CisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisr CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK KysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6ICAkKEhFQURFUlMp ICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChM SVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIk KEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4g IiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdT RkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1 bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisr CXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUi IFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFH U19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQo YW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGly KSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4t dGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysK KytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNo byAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxp c3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7 IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98 fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikv fDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBg ZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGly KS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisr CWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8 IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBp ZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8 IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQk ZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChz cmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAor KwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkg IGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAt cCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkg IGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxs LWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3Rh bGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5z dGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBh bGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3Ry aXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RS SVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChT VFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJp YzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFp bmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUg c3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFO RklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1h bQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0 UFJPR1JBTVMgXAorKwltb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFt CisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFt OiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3Rj bGVhbi10YWdzCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1h bQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToK KysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06Cisr CisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3Rh bGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1hbQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2stYW06 CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLXJmIC4v JChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3Rj bGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5 Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHlj bGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisr CisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToK KysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBH VEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwlj bGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRp c3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJ ZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8t YW0gXAorKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBp bnN0YWxsLWR2aSBcCisrCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1odG1sIFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxs LWluZm8tYW0gaW5zdGFsbC1tYW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0 YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0 YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1hbSBwcyBwcy1h bSB0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrI25vZGlz dF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG9yYWNsZV90ZXN0X2hfc291cmNlcykKKysjIFRlbGwg dmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFi bGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5 IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMiBAQAorK29yYWNsZV90ZXN0X2hfc291cmNlcyA9Cisrb3JhY2xlX3Rlc3Rf Y2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZS5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEz LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCAr MDIwMAorQEAgLTUsOSArNSwxNyBAQAorIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0Vf MV8wLnR4dCkKKyAvLworIAorLSNpbmNsdWRlICJzb2NpLmgiCistI2luY2x1ZGUgInNvY2ktb3Jh Y2xlLmgiCistI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgorKy8vCisrI2lmIGRlZmluZWQoU09D SV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Cisr IyAgICAgICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oPgorKyMg ICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+CisrI2Vsc2UKKysj CWluY2x1ZGUgPHNvY2kuaD4KKysjCWluY2x1ZGUgPHNvY2ktb3JhY2xlLmg+CisrIyAgICAgICBp bmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGlv c3RyZWFtPgorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPGNhc3NlcnQ+CitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlw ZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRv LXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVj dG9yLWludG8tdHlwZS5jcHAJMjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlw ZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDggKzcsMTQg QEAKKyAKKyAjZGVmaW5lIHNvY2lfT1JBQ0xFX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW9yYWNs ZS5oIgorLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKKyAjaW5jbHVkZSAiZXJyb3IuaCIKKysvLwor KyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvc3RhdGVtZW50Lmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNl bmRpZgorKy8vCisgI2luY2x1ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNs dWRlIDxjc3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9jb21tb24uY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9jb21tb24uY3BwCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24u Y3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtNiw3ICs2LDEzIEBA CisgLy8KKyAKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5o PgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1 ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1i YWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKyAjaW5jbHVkZSA8 Y3RpbWU+CisgCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxl LmFtCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDMwIEBA CisrIyMgYmFja2VuZHMvcG9zdGdyZXNxbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysK KytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4gdGVz dAorKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCisr CisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorKwor K2lmIEhBVkVfUE9TVEdSRVNRTAorK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9wb3N0Z3Jlc3Fs LmxhCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVM9ICQoYmNrX3Bvc3RncmVzcWxf aF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAorK2xpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUyA9ICQoUE9TVEdSRVNRTF9DRkxBR1MpCisrbGlic29jaV9wb3N0Z3Jl c3FsX2xhX0xJQkFERCA9CisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MgPSBcCisrCSQo Qk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKwor K3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrZW5kaWYKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVECisr c29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs CisrZWxzZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dp bmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTIwMDkt MDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorQEAgLTEsOTUgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJp YWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2YWx1 ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0 IGFjY29yZGluZ2x5LgorLQorLVBHU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCistCist IyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBl bnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFu dGljIC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCistSU5D TFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9CistCistCistT0JKRUNU UyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlw ZS5vIFwKKy0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBl Lm8gdmVjdG9yLXVzZS10eXBlLm8gXAorLQljb21tb24ubworLQorLU9CSkVDVFNTTyA9IGJsb2It cy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAorLQlzdGFuZGFyZC1pbnRv LXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKKy0JdmVjdG9y LWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCistCistCistbGli c29jaV9wb3N0Z3Jlc3FsLmEgOiAke09CSkVDVFN9CistCWFyIHJ2ICRAICQ/CistCXJtICoubwor LQorLQorLWJsb2IubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLm8gOiBjb21tb24uY3BwCistCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS5vIDogZmFjdG9y eS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0K Ky1yb3ctaWQubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlw ZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11 c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0 b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLQorLXNoYXJl ZCA6ICR7T0JKRUNUU1NPfQorLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfcG9zdGdy ZXNxbC5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5vCistCistYmxvYi1zLm8gOiBibG9iLmNwcAor LQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Cist CistY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQor LQorLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3Bw CistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K Ky0KKy1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCist c3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElM RVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1l bnQtcy5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3It aW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5j cHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgbGlic29jaV9wb3N0Z3Jlc3FsLmEgbGlic29jaV9w b3N0Z3Jlc3FsLnNvCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2Vm aWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgw MiBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1h a2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5 NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIw MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsg d2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAK KysKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tB R0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0i JCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RB VEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5z dGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNU QUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NU X0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgor K1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlw bGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKGFtX19wa2dpbmNsdWRlX0hFQURFUlNfRElT VCkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3Jj ZGlyKS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJk aXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGly KS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmln L2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQu bTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFt X19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9D QUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVS ID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQor K2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3Jj ZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisr ICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwg c2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJk aXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrbGliTFRMSUJSQVJJRVNfSU5TVEFM TCA9ICQoSU5TVEFMTCkKKytMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQorK2xpYnNv Y2lfcG9zdGdyZXNxbF9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19saWJzb2NpX3Bvc3RncmVzcWxf bGFfU09VUkNFU19ESVNUID0gIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvY29tbW9uLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zb2NpLXBvc3RncmVzcWwuaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2Jsb2IuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvY29tbW9uLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2ZhY3RvcnkuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv cm93LWlkLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nl c3Npb24uY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtaW50by10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKythbV9fb2JqZWN0 c18xID0KKythbV9fb2JqZWN0c18yID0gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gXAor KwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWZhY3RvcnkubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIFwKKysJ bGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLXVzZS10eXBlLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBc CisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKKysJbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbworK0BIQVZFX1BPU1RHUkVTUUxfVFJV RUBhbV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUyA9ICBcCisrQEhBVkVfUE9TVEdSRVNR TF9UUlVFQAkkKGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpCisr bGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAor KwkkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxp YnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisrQEhBVkVfUE9T VEdSRVNRTF9UUlVFQGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCA9IC1ycGF0aCBcCisr QEhBVkVfUE9TVEdSRVNRTF9UUlVFQAkkKGxpYmRpcikKKytERUZBVUxUX0lOQ0xVREVTID0gLUku QGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQo dG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxl cworK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytD WFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxB R1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQoQ0Mp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBc CisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJ QlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwkt LW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1Mp CisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxB R1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJD RVMgPSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQo YW1fX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTX0RJU1QpCisrUkVDVVJTSVZFX1RBUkdF VFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRt bC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1o dG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVj dXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFs bGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisr CXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrYW1fX3BrZ2luY2x1ZGVfSEVBREVS U19ESVNUID0gIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29j aS1wb3N0Z3Jlc3FsLmgKKytwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hF QURFUikKKytIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRp c3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0 YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBB Q0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9D T05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAK KytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFU RV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElC ID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1Rf SU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VY X0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFM U19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAor K0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9 IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdT ID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVO SVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJ QlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAor K0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdT ID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAor K0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hP QAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNI T19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AK KytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisr SU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFM TF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExf U1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZM QUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBM SUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJ TkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBA TVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNR TF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQg PSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZM QUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVf T0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAK KytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAor K1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBA UEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdA CisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9E SVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNR TF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisr UkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBA U0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9 IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0g QFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0g QGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAor K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9f aW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdf ZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2Ft X191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWls ZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1 QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JA CisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290 ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9j ZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2 aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29r ID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisr aG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9y ID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGlu Y2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9z aEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNk aXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVk aXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtk aXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRp ckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJA Cisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAK KytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRf YWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3By ZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9w X3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGly KQorK2Jja19wb3N0Z3Jlc3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrCisrYmNrX3Bv c3RncmVzcWxfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5j cHAKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4g dGVzdAorKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5o CisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorK0BI QVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX3Bvc3RncmVzcWwu bGEKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVMg PSAkKGJja19wb3N0Z3Jlc3FsX2hfc291cmNlcykgJChiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2Vz KSAKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdT ID0gJChQT1NUR1JFU1FMX0NGTEFHUykKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9w b3N0Z3Jlc3FsX2xhX0xJQkFERCA9IAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bv c3RncmVzcWxfbGFfTERGTEFHUyA9IFwKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoQk9PU1Rf TElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIp IFwKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJB UllfVkVSU0lPTikKKysKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJT ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3Fs LmgKKytAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNs dWRlZGlyKQorK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQo aW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCisrYWxsOiBhbGwtcmVjdXJzaXZl CisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGly KS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJ QGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAg ICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9z cmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFr ZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251 ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxl CisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsg XAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJ R19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTog ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKytpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklF UykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJ Ul9QKSAiJChERVNURElSKSQobGliZGlyKSIKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7 IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAg IGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNf SU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIp LyQkZiciOyBcCisrCSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExf U1RSSVBfRkxBRykgIiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAorKwkgIGVsc2Ug OjsgZmk7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9S TUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQk bGlzdDsgZG8gXAorKwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9P TCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJt IC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkcCciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVT VERJUikkKGxpYmRpcikvJCRwIjsgXAorKwlkb25lCisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6 CisrCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFS SUVTKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBc CisrCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRl c3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGly fS9zb19sb2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBc CisrCWRvbmUKKytsaWJzb2NpX3Bvc3RncmVzcWwubGE6ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xh X09CSkVDVFMpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3JwYXRo KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9s YV9MSUJBREQpICQoTElCUykKKysKKyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4k KE9CSkVYVCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9w b3N0Z3Jlc3FsX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5Q bG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAorK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9u LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFt X19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11 c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAt byAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENY WENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMg LW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AK KysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1U ICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8g JEAgJDwKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5UcG8g JChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlBsbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCisrCisr bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9u LlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxf bGEtY29tbW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2NvbW1vbi5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1m YWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCcg b2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCisrCisrbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvcm93LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAkKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvcm93LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlk LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5j cHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24u bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRw byAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24u Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNz aW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSds aWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0 Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxf bGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50 by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh bmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXN0YW5kYXJkLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKysKKytsaWJz b2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2Ut dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKysKKytsaWJz b2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1j IC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVu dC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhdGVtZW50LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyBv YmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAorKworK2xp YnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEt dmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12 ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1p bnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10 eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50 by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVz cWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUu bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNl LXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUu VHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xp YnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10 eXBlLmNwcAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xl YW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtcGtnaW5jbHVkZUhF QURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVz dCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5j bHVkZWRpcikiCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxp c3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGly KS8iOyBmaTsgXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQocGtnaW5j bHVkZUhFQURFUlNfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIp LyQkZiciOyBcCisrCSAgJChwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChE RVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBr Z2luY2x1ZGVIRUFERVJTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2dp bmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZj0kKGFtX19zdHJp cF9kaXIpIFwKKysJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQk ZiciOyBcCisrCSAgcm0gLWYgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJ ZG9uZQorKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGlu ZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91 dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBv ZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEp IGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcu c3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVn ZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRo ZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lW RV9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VG TEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAor KwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBc CisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUv L2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2Fs X3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK KysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0 ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWls Y29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNl ICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAor KwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBs aXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBc CisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJk aXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisr CXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBp biAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwK KysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25l ICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJT KSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8 fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9u ZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFE RVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQg JCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJT KSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQo TElTUCkKKysJdGFncz07IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFn cy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRl X29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwK KysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZp OyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYg JCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9u PSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0n JChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1 ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVj aG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkg ICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5E IHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisr CWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBc CisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQo RVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJ ICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc CisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VT KSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXog IiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NG TEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1 bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBw d2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdT X0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFH UyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlA c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRp c3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisr CSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9w c3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxl cyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJ CSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkg ICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBk byBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBl bHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBc CisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAor KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRp ciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRp c3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlz dGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZp bGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJ U1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQk c3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisr CSAgICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYm IHB3ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYg cHdkYDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAg ICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3Rk aXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikg XAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFs bC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJS QVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisr aW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChN S0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQor K2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5z dGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKwor K2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJl Y3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RB TExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBc CisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dS QU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVy aWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMp CisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlz IGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZp bGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3Qg LXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwKKysJbW9zdGx5Y2xlYW4tYW0K KysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElS KQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1j b21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2 aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytp bmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBp bnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKwor K2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRm OiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vy c2l2ZQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFp bmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtl ZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFu LWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9z dGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisr CW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06 CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5p bnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworKy5N QUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0 YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJMVExJQlJB UklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWRpc3RjbGVhbiBk aXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29s IGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZv IGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0 YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxs LWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlp bnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxs LXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFs bC1wcyBcCisrCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFs bGNoZWNrLWFtIFwKKysJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVh biBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1j b21waWxlIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBw ZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3Rh bGwtYW0gXAorKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTCisrCisrQFNFVF9NQUtFQAorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBH TlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0 ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JU OgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b2NpLXBvc3RncmVzcWwuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvY2ktcG9zdGdyZXNxbC5oCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAwMDAw MDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zb2NpLXBvc3RncmVzcWwuaAkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAor QEAgLTIyLDkgKzIyLDE0IEBACisgI2lmbmRlZiBTT0NJX1BPU1RHUkVTUUxfREVDTAorICMgZGVm aW5lIFNPQ0lfUE9TVEdSRVNRTF9ERUNMCisgI2VuZGlmCistCistI2luY2x1ZGUgPHNvY2ktYmFj a2VuZC5oPgorLSNpbmNsdWRlIDxsaWJwcS1mZS5oPgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQu aD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKysj aW5jbHVkZSA8bGlicHEtZmUuaD4gLy8gUG9zdEdyZVNRTCBjbGllbnQKKyAjaW5jbHVkZSA8dmVj dG9yPgorIAorICNpZmRlZiBfTVNDX1ZFUgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDE0IEBACisrYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgK KytiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVz ZS10eXBlLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIw MDktMDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQt MTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtOCw5ICs4LDE2IEBACisgI2RlZmluZSBT T0NJX1BPU1RHUkVTUUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgorICNp bmNsdWRlICJjb21tb24uaCIKKy0jaW5jbHVkZSAicm93aWQuaCIKKy0jaW5jbHVkZSAiYmxvYi5o IgorLSNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQorKy8vCisrI2lmIGRlZmlu ZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9i Lmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KKysjZWxzZQorKyMgICAg ICAgaW5jbHVkZSA8YmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KKysjZW5kaWYK KysvLworKyNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdyZVNRTCBj bGllbnQpCisgI2luY2x1ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRl IDxjc3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDkt MDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAx OTozNzowNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDggKzcsMTQgQEAKKyAKKyAjZGVmaW5lIFNP Q0lfUE9TVEdSRVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCistI2lu Y2x1ZGUgInJvd2lkLmgiCistI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCisr Ly8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8 c29jaS9jb3JlL3Jvd2lkLmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Cisr I2VuZGlmCisrLy8KKysjaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RH cmVTUUwgY2xpZW50KQorICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAj aW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSwxOCBAQAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQorK2lu Y2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9z b3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK2lm IFJVTl9URVNUUworKyAgbm9pbnN0X1BST0dSQU1TID0gdGVzdF9wb3N0Z3Jlc3FsCisrZW5kaWYK KysKKyt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJj ZXMpCisrdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCisrdGVzdF9w b3N0Z3Jlc3FsX0xEQUREID0KKyt0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxk ZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAorKwkJJCh0b3BfYnVpbGRkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9saWJzb2NpX3Bvc3RncmVzcWwubGEgXAorKwkJJChQ T1NUR1JFU1FMX0xERkxBR1MpCisrCisrI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBv c3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFz aWMJMjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDIyICswLDAgQEAKKy0jIFRoZSBm b2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29y cmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBm cmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0KKy1QR1NRTElOQ0xVREVESVIgPSAtSS91c3Iv aW5jbHVkZQorLVBHU1FMTElCRElSID0gLUwvdXNyL2xpYgorLVBHU1FMTElCUyA9IC1scHEKKy0K Ky0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0 IGVudmlyb25tZW50LgorLQorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1MgPSAtV2FsbCAtcGVk YW50aWMgLVduby1sb25nLWxvbmcKKy1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3Jl L3Rlc3QgLUkuLi8uLi8uLi9jb3JlICR7UEdTUUxJTkNMVURFRElSfQorLUxJQkRJUlMgPSAtTC4u IC1MLi4vLi4vLi4vY29yZSAke1BHU1FMTElCRElSfQorLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNv Y2lfcG9zdGdyZXNxbCAtbGRsICR7UEdTUUxMSUJTfQorLQorLQorLXRlc3QtcG9zdGdyZXNxbCA6 IHRlc3QtcG9zdGdyZXNxbC5jcHAKKy0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9CistCistCistY2xlYW4gOgorLQlybSAt ZiB0ZXN0LXBvc3RncmVzcWwKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkyMDA5LTA1LTAzIDAwOjIwOjQyLjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSw1MTQgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBi eSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRA CisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFk aXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FH RUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBD RFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFs bF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0g PSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1j CisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dy YW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6 CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFM TCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hv c3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFt ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCisrQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9 IHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhUKQorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19h Y2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29u ZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAk KENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRp cnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9z b2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytQUk9HUkFNUyA9ICQobm9pbnN0 X1BST0dSQU1TKQorK2FtX19vYmplY3RzXzEgPSB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jl c3FsLiQoT0JKRVhUKQorK2FtX3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0 c18xKQorK3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV90ZXN0X3Bvc3RncmVzcWxfT0JK RUNUUykKKyt0ZXN0X3Bvc3RncmVzcWxfREVQRU5ERU5DSUVTID0KKyt0ZXN0X3Bvc3RncmVzcWxf TElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElC VE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0NY WEZMQUdTKSAkKENYWEZMQUdTKSBcCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MpICQoTERG TEFHUykgLW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1 aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2Rl cGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK0NYWENPTVBJTEUgPSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJ TEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxB R1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1s aW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAor KwkkKExERkxBR1MpIC1vICRACisrU09VUkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMp CisrRElTVF9TT1VSQ0VTID0gJCh0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUykKKytFVEFHUyA9IGV0 YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9T T1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAor K0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBA QVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisr Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZM QUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9 IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZM QUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9 IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9f QyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VH UkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1Mg PSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9W RVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9E QVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFN QAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJP R1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJ Qk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAor K0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1B S0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9O ID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhU QAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9S QUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxB R1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdF ID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisr UEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdF X1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0Vf VkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBB UkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdS RVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBP U1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdT QAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0g QFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NF VF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAK KytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05A CisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNk aXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3Jj ZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NY WCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9 IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2Ft X19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9 IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWls ZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxk X29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRk aXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRh dGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2Rv eHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0g QGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29r QAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUg PSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3Rf dmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJA CisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRl eF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGli ZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9j YWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytv bGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVm aXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29r ID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIg PSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBA dGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0 b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAK KytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK3Bvc3Rn cmVzcWxfdGVzdF9oX3NvdXJjZXMgPSAKKytwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3Fs LmNwcAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKyt0ZXN0X3Bvc3RncmVz cWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCisrdGVzdF9wb3N0Z3Jl c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCisrdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0g CisrdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xp YnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxhIFwKKysJCSQoUE9TVEdSRVNRTF9MREZMQUdT KQorKworK2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8g Lm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19j b25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19j b25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYm IGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBc CisrCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01h a2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZp bGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisr CSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAn IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr CisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr JChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrY2xlYW4tbm9p bnN0UFJPR1JBTVM6CisrCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxp c3Q7IGRvIFwKKysJICBmPWBlY2hvICQkcHxzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisrCSAg ZWNobyAiIHJtIC1mICQkcCAkJGYiOyBcCisrCSAgcm0gLWYgJCRwICQkZiA7IFwKKysJZG9uZQor K3Rlc3RfcG9zdGdyZXNxbCQoRVhFRVhUKTogJCh0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykgJCh0 ZXN0X3Bvc3RncmVzcWxfREVQRU5ERU5DSUVTKSAKKysJQHJtIC1mIHRlc3RfcG9zdGdyZXNxbCQo RVhFRVhUKQorKwkkKHRlc3RfcG9zdGdyZXNxbF9MSU5LKSAkKHRlc3RfcG9zdGdyZXNxbF9PQkpF Q1RTKSAkKHRlc3RfcG9zdGdyZXNxbF9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNv bXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwkt cm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvQGFtX19xdW90ZUAK KysKKysuY3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRA IC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRv b2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAor KworKy5jcHAub2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAk QCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8 J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJ UikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwn IG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01Q SUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJ UikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQ RElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrdGVzdF9wb3N0Z3Jl c3FsLXRlc3QtcG9zdGdyZXNxbC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikv dGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gLWMgLW8gdGVzdF9wb3N0Z3Jlc3Fs LXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jl c3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0 LXBvc3RncmVzcWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubycgbGli dG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9w b3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwu Y3BwCisrCisrdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmo6ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5v YmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwu VHBvIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdy ZXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykg JyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbC5jcHAnOyBmaWAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvICQoREVQRElSKS90ZXN0 X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgb2JqZWN0PSd0ZXN0X3Bvc3RncmVzcWwtdGVzdC1w b3N0Z3Jlc3FsLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0 ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsg dGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2Rpcikv JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVz cWwuY3BwJzsgZmlgCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysK KytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrSUQ6ICQoSEVBREVS UykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQk dW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQo VEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsg XAorKwloZXJlPWBwd2RgOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0 YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1 bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRB R1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkK KytjdGFnczogQ1RBR1MKKytDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwK KysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENU QUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAg ICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9i dWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3Rh Z3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1m IFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJ U1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlte JCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVT KSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxl OyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAg IC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2Fz ZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2Zp bGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQs LCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQk ZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxl OyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8k JGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14v XSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQk ZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAk KGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQk ZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAg dGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQo ZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAk KFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisr dW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytp bnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xl YW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisr CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAt ZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFt OiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAorKwlt b3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtcmYgLi8k KERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisr ZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2luZm86IGlu Zm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2 aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKwor K2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKworK2luc3Rh bGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5l ci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1y bSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFp bmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKytt b3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwK KysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKwor K3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5z dGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0b29sIGNs ZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3RjbGVhbi1jb21waWxl IGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3Mg ZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorKwlpbnN0YWxs IGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisr CWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1s IFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFs bC1tYW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwt cHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5z dGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFs bCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrI25vZGlzdF9wa2dpbmNsdWRlX0hF QURFUlMgPSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCisrIyBUZWxsIHZlcnNpb25zIFsz LjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90 aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRl ZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCAr MDIwMAorQEAgLTAsMCArMSwyIEBACisrcG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcyA9CisrcG9z dGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCAr MDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAw CitAQCAtNSw5ICs1LDE3IEBACisgLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAu dHh0KQorIC8vCisgCistI2luY2x1ZGUgInNvY2kuaCIKKy0jaW5jbHVkZSAic29jaS1wb3N0Z3Jl c3FsLmgiCistI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgorKy8vCisrI2lmIGRlZmluZWQoU09D SV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Cisr IyAgICAgICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3Fs Lmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KKysj ZWxzZQorKyMJaW5jbHVkZSA8c29jaS5oPgorKyMJaW5jbHVkZSA8c29jaS1wb3N0Z3Jlc3FsLmg+ CisrIyAgICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbmRpZgorKy8vCisg I2luY2x1ZGUgPGlvc3RyZWFtPgorICNpbmNsdWRlIDxzc3RyZWFtPgorICNpbmNsdWRlIDxzdHJp bmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb25maWcuaC5pbiBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv Y29uZmlnLmguaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgkyMDA5LTA1LTAzIDAwOjIwOjM4LjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSwxNDIgQEAKKysvKiBzb2NpL2NvbmZpZy5oLmluLiAgR2Vu ZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLworKworKy8qIGRlZmlu ZSBpZiB0aGUgQm9vc3QgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09T VAorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWls YWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX0RBVEVfVElNRQorKworKy8qIGRlZmluZSBpZiB0 aGUgQm9vc3Q6OkZJTEVTWVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFW RV9CT09TVF9GSUxFU1lTVEVNCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6SU9TdHJlYW1z IGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfSU9TVFJFQU1TCisr CisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZh aWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TCisrCisrLyogZGVm aW5lIGlmIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYg SEFWRV9CT09TVF9SRUdFWAorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRp b24gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9TRVJJQUxJWkFU SU9OCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWls YWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX1NJR05BTFMKKysKKysvKiBkZWZpbmUgaWYgdGhl IEJvb3N0OjpUSFJFQUQgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09T VF9USFJFQUQKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpVbml0X3Rlc3RfZnJhbWV3b3Jr IGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SSworKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y21hdGg+IGhlYWRl ciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0NNQVRICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDxkZXF1ZT4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfREVRVUUKKysK KysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAq LworKyN1bmRlZiBIQVZFX0RMRkNOX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgPGZzdHJlYW0+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0ZTVFJFQU0KKysKKysv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAq LworKyN1bmRlZiBIQVZFX0lOVFRZUEVTX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGlvbWFuaXA+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0lPTUFOSVAKKysK KysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvc3RyZWFtPiBoZWFkZXIgZmlsZS4g Ki8KKysjdW5kZWYgSEFWRV9JT1NUUkVBTQorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSA8bGltaXRzPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9MSU1JVFMKKysKKysv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpc3Q+IGhlYWRlciBmaWxlLiAqLworKyN1 bmRlZiBIQVZFX0xJU1QKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hcD4g aGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfTUFQCisrCisrLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfTUVN T1JZX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiBNeVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJs ZSAqLworKyN1bmRlZiBIQVZFX01ZU1FMCisrCisrLyogRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNs ZSBPQ0kgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9PUkFDTEUKKysKKysv KiBEZWZpbmUgdG8gMSBpZiBQb3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlICovCisr I3VuZGVmIEhBVkVfUE9TVEdSRVNRTAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8cXVldWU+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1FVRVVFCisrCisrLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZXQ+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBI QVZFX1NFVAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3N0cmVhbT4gaGVh ZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1NUUkVBTQorKworKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8c3RkZXhjZXB0PiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9T VERFWENFUFQKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBo ZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVERJTlRfSAorKworKy8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZF X1NURExJQl9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmc+IGhl YWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NUUklORworKworKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9T VFJJTkdTX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBo ZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVFJJTkdfSAorKworKy8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhB VkVfU1lTX1NUQVRfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5 cGVzLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NZU19UWVBFU19ICisrCisrLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCisr I3VuZGVmIEhBVkVfVU5JU1REX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHZlY3Rvcj4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfVkVDVE9SCisrCisrLyogTmFt ZSBvZiBwYWNrYWdlICovCisrI3VuZGVmIFBBQ0tBR0UKKysKKysvKiBEZWZpbmUgdG8gdGhlIGFk ZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4g Ki8KKysjdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKKysKKysvKiBEZWZpbmUgdG8gdGhlIGZ1bGwg bmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCisrI3VuZGVmIFBBQ0tBR0VfTkFNRQorKworKy8qIERl ZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KKysj dW5kZWYgUEFDS0FHRV9TVFJJTkcKKysKKysvKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hv cnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCisrI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQorKwor Ky8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCisrI3VuZGVmIFBB Q0tBR0VfVkVSU0lPTgorKworKy8qIERlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRs aW5nICovCisrI3VuZGVmIFNPQ0lfRVhDRVBUSU9OUworKworKy8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLworKyN1bmRlZiBTVERDX0hFQURFUlMK KysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90 aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KKysjdW5kZWYgVElNRV9XSVRIX1NZU19USU1FCisrCisr LyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAqLworKyN1bmRlZiBWRVJTSU9OCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Nv cmUvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6 MDUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDI4IEBACisrIyMgY29yZSBzdWItZGlyZWN0 b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChz cmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu CisrCisrU1VCRElSUyA9IC4gdGVzdAorKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElC SUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNpbXBsZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFs dWVzLWV4Y2hhbmdlLmgKKysKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkpCisrCisrbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX2NvcmUubGEKKysKKyts aWJzb2NpX2NvcmVfbGFfU09VUkNFUz0gJChjb3JlX2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJj ZXMpIAorK2xpYnNvY2lfY29yZV9sYV9DWFhGTEFHUyA9CisrbGlic29jaV9jb3JlX2xhX0xJQkFE RCA9CisrbGlic29jaV9jb3JlX2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09T VF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNp b24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVS UyA9ICQoY29yZV9oX3NvdXJjZXMpCisraWYgU09DSV9IRUFERVJTX0JVUklFRAorK3NvY2lfaW5j bHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZQorK2Vsc2UKKytzb2NpX2luY2x1ZGVf ZGlyID0gJChpbmNsdWRlZGlyKQorK2VuZGlmCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNs dWRlX2RpcikKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUu YmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYworLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTAzIDAwOjI0 OjE0LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFr ZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDc2 ICswLDAgQEAKKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1X bm8tbG9uZy1sb25nCistSU5DTFVERURJUlMgPSAKKy1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1l bnQubyByb3cubyB2YWx1ZXMubyBcCistCWludG8tdHlwZS5vIHVzZS10eXBlLm8gXAorLQlibG9i Lm8gcm93aWQubyBwcm9jZWR1cmUubyByZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291 bnRlZC1zdGF0ZW1lbnQubyBcCistCW9uY2UtdGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUu byBlcnJvci5vIHRyYW5zYWN0aW9uLm8gYmFja2VuZC1sb2FkZXIubyBcCistCWNvbm5lY3Rpb24t cG9vbC5vIHNvY2ktc2ltcGxlLm8KKy0KKy0KKy1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCist CWFyIHJ2ICRAICQ/CistCXJtICoubworLQorLXNoYXJlZCA6ICR7T0JKU30gCistCSR7Q09NUElM RVJ9IC1mUElDIC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCSR7Q09NUElMRVJ9 IC1zaGFyZWQgLW8gbGlic29jaV9jb3JlLnNvICR7T0JKU30gCistCXJtICoubworLQorLXNlc3Np b24ubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcm93Lm8gOiByb3cuY3BwCist CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmFsdWVz Lm8gOiB2YWx1ZXMuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9CistCistaW50by10eXBlLm8gOiBpbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdXNlLXR5cGUubyA6IHVzZS10eXBl LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQkK Ky1ibG9iLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLWVycm9yLm8gOiBlcnJvci5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1yb3dpZC5vIDogcm93aWQuY3BwCistCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcHJvY2VkdXJl Lm8gOiBwcm9jZWR1cmUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1w cmVwYXJlLWluZm8uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9CistCistcmVmLWNvdW50ZWQtc3RhdGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1l bnQuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist Cistb25jZS10ZW1wLXR5cGUubyA6IG9uY2UtdGVtcC10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXByZXBhcmUtdGVtcC10eXBlLm8g OiBwcmVwYXJlLXRlbXAtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KKy0KKy10cmFuc2FjdGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCistCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistYmFja2VuZC1s b2FkZXIubyA6IGJhY2tlbmQtbG9hZGVyLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLWNvbm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1w b29sLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQorLXNvY2ktc2ltcGxlLm8gOiBzb2NpLXNpbXBsZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy0KKy1jbGVhbiA6CistCXJtIC1mIGxpYnNv Y2lfY29yZS5hIGxpYnNvY2lfY29yZS5zbworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvY29yZS9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxl LmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv Y29yZS9NYWtlZmlsZS5pbgkyMDA5LTA1LTAzIDAwOjIwOjQ0LjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSw4OTQgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEw LjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmln aHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIw MDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Np b24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2Rp ZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRl ZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytA U0VUX01BS0VACisrCisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFk aXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKythbV9fY2Qg PSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5z dGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dS QU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gp IC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHBy b2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwg PSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5T VEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAor K2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hFQURF UlMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisrCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNy Y2Rpcikvc291cmNlcy5tayBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3Vi ZGlyID0gc29jaS9jb3JlCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAor K2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2Rp cikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9k ZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5z dGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxk ZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKythbV9fdnBhdGhfYWRq X3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsK KythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNo byAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7 IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiov fHwnYDsKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJ UikkKHBrZ2luY2x1ZGVkaXIpIgorK2xpYkxUTElCUkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwp CisrTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX2NvcmVfbGFfREVQ RU5ERU5DSUVTID0KKythbV9fb2JqZWN0c18xID0KKythbV9fb2JqZWN0c18yID0gbGlic29jaV9j b3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLWJsb2IubG8gbGli c29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1lcnJv ci5sbyBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLW9u Y2UtdGVtcC10eXBlLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxv IFwKKysJbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1y ZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXJvdy5sbyBsaWJzb2NpX2NvcmVf bGEtcm93aWQubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBsaWJzb2NpX2NvcmVf bGEtc29jaS1zaW1wbGUubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGxpYnNv Y2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5s byBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvCisrYW1fbGlic29jaV9jb3JlX2xhX09CSkVDVFMg PSAkKGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX2NvcmVfbGFfT0JK RUNUUyA9ICQoYW1fbGlic29jaV9jb3JlX2xhX09CSkVDVFMpCisrbGlic29jaV9jb3JlX2xhX0xJ TksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRP T0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAorKwkkKGxpYnNvY2lfY29yZV9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lfY29yZV9sYV9MREZMQUdTKSAkKExERkxB R1MpIC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWls ZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBj b21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKytDWFhDT01QSUxFID0gJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxF ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGlu ayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJ JChMREZMQUdTKSAtbyAkQAorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpCisrTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksg PSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg XAorKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZM QUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFf U09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQorK1JF Q1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vy c2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBc CisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1y ZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK3BrZ2luY2x1 ZGVIRUFERVJTX0lOU1RBTEwgPSAkKElOU1RBTExfSEVBREVSKQorK0hFQURFUlMgPSAkKHBrZ2lu Y2x1ZGVfSEVBREVSUykKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJl Y3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFp bmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElT VF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrcGtnaW5jbHVkZWRpciA9ICQo c29jaV9pbmNsdWRlX2RpcikKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJA CisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRP SEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZM QUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVf VElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJA CisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJ QlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAK KytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytC T09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURfTElC ID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBA Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9W RVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBA Q0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9D RkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05G SUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBA Q1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhE RVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9X ID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lN VVRJTCA9IEBEU1lNVVRJTEAKKytFQ0hPID0gQEVDSE9ACisrRUNIT19DID0gQEVDSE9fQ0AKKytF Q0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisr RVhFRVhUID0gQEVYRUVYVEAKKytGNzcgPSBARjc3QAorK0ZGTEFHUyA9IEBGRkxBR1NACisrR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9 IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9E QVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJ UFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExf U1RSSVBfUFJPR1JBTUAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpT QAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTE5fUyA9IEBMTl9TQAor K0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJf UCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09O RklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxf TERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lP TkAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMg PSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NA CisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJ X1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQ QUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBA UEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tB R0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tB R0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0g QFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQ T1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAor K1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9W RVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9S RUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01B S0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURF UlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5E ID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIg PSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1 aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9z cmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAK KythY19jdF9GNzcgPSBAYWNfY3RfRjc3QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAor K2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19x dW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKyti aW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxk X2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NA CisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAK KytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlm Zl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5 Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhl Y19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0 QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKyto b3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRp ciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGlu Zm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29r QAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2Fs ZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21h bmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBA b2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisr cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGly ID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3No YXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lz Y29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisr dG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0 b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0g LUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrY29yZV9oX3NvdXJjZXMgPSBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9ibG9iLWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9ib29zdC1mdXNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9ib29zdC1vcHRpb25hbC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jvb3N0LXR1cGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVj dGlvbi1wb29sLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcmVwYXJlLXRlbXAtdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Byb2NlZHVyZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1j b3VudGVkLXByZXBhcmUtaW5mby5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXN0YXRlbWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvdy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5n ZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dzZXQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zZXNzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c29jaS1iYWNrZW5kLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1j b25maWcuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3Jt LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdHJhbnNhY3Rpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS90eXBlLWNvbnZlcnNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90 eXBlLWNvbnZlcnNpb24tdHJhaXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdHlwZS1ob2xkZXIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBl LXB0ci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdmFsdWVzLWV4Y2hhbmdlLmgKKysKKytjb3JlX2NjX3NvdXJjZXMgPSBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9lcnJvci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv aW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRl bXAtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10 ZW1wLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVy ZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJl cGFyZS1pbmZvLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291 bnRlZC1zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jv dy5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS91c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFs dWVzLmNwcAorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJESVJT ID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fcm93 LmNwcCAuX3NvY2ktc2ltcGxlLmNwcCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFuZ2Uu aAorK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKyts aWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmUubGEKKytsaWJzb2NpX2NvcmVfbGFfU09VUkNF UyA9ICQoY29yZV9oX3NvdXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKKytsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MgPSAKKytsaWJzb2NpX2NvcmVfbGFfTElCQUREID0gCisrbGlic29jaV9jb3Jl X2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAk KEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJj ZXMpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikKKytAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAk KGluY2x1ZGVkaXIpL3NvY2kvY29yZQorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhF UzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46 ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChz cmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/ OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRk ZXAqKSBcCisrCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaCBcCisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsgXAor KwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSAgc29jaS9jb3JlL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIp ICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9jb3JlL01ha2VmaWxlCisrLlBSRUNJ T1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNh YzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGly KS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTog ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChs aWJfTFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9M VExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkcDsg dGhlbiBcCisrCSAgICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgICAgZWNobyAiICQoTElCVE9P TCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxp YkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAnJCRwJyAnJChERVNU RElSKSQobGliZGlyKS8kJGYnIjsgXAorKwkgICAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFM TCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICIkJHAiICIkKERFU1RESVIpJChsaWJkaXIpLyQkZiI7 IFwKKysJICBlbHNlIDo7IGZpOyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtbGliTFRMSUJSQVJJ RVM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUykn OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBwPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVj aG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJHAnIjsgXAorKwkgICQoTElC VE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxs IHJtIC1mICIkKERFU1RESVIpJChsaWJkaXIpLyQkcCI7IFwKKysJZG9uZQorKworK2NsZWFuLWxp YkxUTElCUkFSSUVTOgorKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAk KGxpYl9MVExJQlJBUklFUykKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGlu ICQkbGlzdDsgZG8gXAorKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwn YCI7IFwKKysJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKysJICBlY2hvICJy bSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisrCSAgcm0gLWYgIiQke2Rpcn0vc29f bG9jYXRpb25zIjsgXAorKwlkb25lCisrbGlic29jaV9jb3JlLmxhOiAkKGxpYnNvY2lfY29yZV9s YV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMpIAorKwkkKGxpYnNvY2lf Y29yZV9sYV9MSU5LKSAtcnBhdGggJChsaWJkaXIpICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMp ICQobGlic29jaV9jb3JlX2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBp bGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0g LWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9j b3JlX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG9A YW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8t dHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90 ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1w cm9jZWR1cmUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5m by5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsb0BhbV9f cXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1yb3cuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsb0Bh bV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2Np LXNpbXBsZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS10cmFuc2FjdGlvbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG9AYW1fX3F1b3RlQAorKworKy5jcHAu bzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAt TUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5v Ymo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAg LU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5Qbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSck QCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1v ICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8g LWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRw byAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKytsaWJzb2NpX2NvcmVfbGEtYmFja2Vu ZC1sb2FkZXIubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEt YmFja2VuZC1sb2FkZXIubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1i YWNrZW5kLWxvYWRlci5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVy LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLWJhY2tlbmQtbG9hZGVyLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQt bG9hZGVyLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIG9iamVjdD0nbGlic29j aV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRl ci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxv YWRlci5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9jb3JlX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1m ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1ibG9iLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtYmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlv bi1wb29sLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlv bi1wb29sLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt Y29ubmVjdGlvbi1wb29sLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24t cG9vbC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgb2JqZWN0PSdsaWJzb2Np X2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBv b2wubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rp b24tcG9vbC5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG86ICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1lcnJvci5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9yLlRwbyAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLWVycm9yLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIG9iamVjdD0n bGlic29jaV9jb3JlX2xhLWVycm9yLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEt aW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1pbnRv LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyBv YmplY3Q9J2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8t dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNw cAorKworK2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJz b2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuVHBvICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2Ut dGVtcC10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAorKworK2xpYnNvY2lfY29yZV9s YS1wcmVwYXJlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10 ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3ByZXBhcmUtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuVHBvICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuUGxvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3ByZXBhcmUtdGVtcC10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10 ZW1wLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNw cAorKworK2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG86ICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Byb2NlZHVyZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXByb2NlZHVyZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXByb2NlZHVy ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXBy b2NlZHVyZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Byb2NlZHVyZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcm9jZWR1cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXByZXBhcmUtaW5mby5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJl cGFyZS1pbmZvLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAtYyAt byBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVw YXJlLWluZm8uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNv dW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtcHJlcGFyZS1pbmZvLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBh cmUtaW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1z dGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtc3RhdGVtZW50LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyBv YmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9j b3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAorKworK2xp YnNvY2lfY29yZV9sYS1yb3cubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJv dy5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5UcG8gLWMgLW8g bGlic29jaV9jb3JlX2xhLXJvdy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cm93LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93 LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXJvdy5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuUGxvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvdy5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJvdy5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt cm93LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCisrCisrbGlic29j aV9jb3JlX2xhLXJvd2lkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJv d2lkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuVHBvIC1j IC1vIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcm93aWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yb3dpZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1yb3dpZC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yb3dpZC5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcm93aWQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Np b24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Np b24uVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9j b3JlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Np b24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNz aW9uLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtc29jaS1zaW1wbGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nv Y2ktc2ltcGxlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc29jaS1zaW1wbGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtc29jaS1zaW1wbGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgb2JqZWN0PSds aWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxl LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNw cAorKworK2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXN0YXRlbWVu dC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0 YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9u LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9u LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uVHBv IC1jIC1vIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5UcG8gJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rp b24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Ry YW5zYWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdHJhbnNhY3Rpb24uY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29y ZV9sYS11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2Ut dHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS11c2Ut dHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXZhbHVlcy5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtdmFsdWVzLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtdmFsdWVzLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG8KKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdmFsdWVzLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS12YWx1ZXMubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Zh bHVlcy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Zh bHVlcy5jcHAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRl c3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpIgorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rp cikvIjsgZmk7IFwKKysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKHBrZ2lu Y2x1ZGVIRUFERVJTX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGly KS8kJGYnIjsgXAorKwkgICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1w a2dpbmNsdWRlSEVBREVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtn aW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3Ry aXBfZGlyKSBcCisrCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8k JGYnIjsgXAorKwkgIHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisr CWRvbmUKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBp bmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhv dXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMg b2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgx KSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmln LnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJl Z2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0 aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJ VkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtF RkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwK KysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsg XAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZl Ly9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2Nh bF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBc CisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsg dGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFp bGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2Fz ZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209 J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwK KysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikg bGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsg XAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3Vi ZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAor Kwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIg aW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBc CisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9u ZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4g fHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRv bmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVB REVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VT KSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBp biAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVs c2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7 IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9u ZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklE ICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRh Z3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVk ZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBc CisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlm aTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1m ICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlv bj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor KwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2Ug XAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAk KEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisr CSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3Rh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16 ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdT RkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQk dW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYg cHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFH U19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RB R1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJ QHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwm L2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBk aXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAor KwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRv cHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmls ZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJ CQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJ ICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsg ZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9Ljsg ZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4g XAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwK KysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rp cik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRk aXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChk aXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRp c3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRm aWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChE SVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8k JHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAor KwkgICAgfHwgZXhpdCAxOyBcCisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAm JiBwd2RgOyBcCisrCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYm IHB3ZGA7IFwKKysJICAgIChjZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkg ICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0 ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIp IFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBh bGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElC UkFSSUVTKSAkKEhFQURFUlMpCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQor K2luc3RhbGxkaXJzLWFtOgorKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChE RVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQo TUtESVJfUCkgIiQkZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUK KytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGlu c3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysK KytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1y ZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNU QUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMg XAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9H UkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5l cmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0 IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVT KQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVy aWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFt CisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJ UikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4t Y29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBk dmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisr aW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTog aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1y ZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKysK KytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm86 IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1 cnNpdmUKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRh aW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFr ZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21v c3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAor Kwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFt OgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVu aW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysu TUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5z dGFsbC1hbSBcCisrCWluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1h bSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGliTFRMSUJS QVJJRVMgY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAorKwlkaXN0Y2xlYW4g ZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9v bCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5m byBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRh dGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFs bC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJ aW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFs bC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3Rh bGwtcHMgXAorKwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3Rh bGxjaGVjay1hbSBcCisrCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xl YW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4t Y29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYg cGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0 YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRl SEVBREVSUworKworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2Yg R05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lz dGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9S VDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5tayBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc291cmNlcy5tawkyMDA5LTA0LTE2 IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1OCBAQAorK2NvcmVfaF9zb3Vy Y2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIu aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi1leGNoYW5nZS5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9ib29zdC10dXBsZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2Nvbm5lY3Rpb24tcG9vbC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXhjaGFuZ2UtdHJh aXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yb3cuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y b3ctZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLWV4Y2hhbmdlLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93c2V0LmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3NvY2ktY29uZmlnLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29j aS1wbGF0Zm9ybS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2lt cGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLXRyYWl0cy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3R5cGUtaG9sZGVyLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdHlwZS1wdHIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2Uu aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5oIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3ZhbHVlcy1leGNoYW5nZS5oCisrY29yZV9jY19zb3VyY2VzID0gXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2ludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv b25jZS10ZW1wLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3By ZXBhcmUtdGVtcC10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9w cm9jZWR1cmUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3Vu dGVkLXByZXBhcmUtaW5mby5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yb3cuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3ZhbHVlcy5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVz dC9jb21tb24tdGVzdHMuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvY29tbW9u LXRlc3RzLmgKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVz dHMuaAkyMDA5LTA1LTAzIDAwOjI0OjE1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAkyMDA5LTA0LTE2IDE5OjM3OjA1 LjAwMDAwMDAwMCArMDIwMAorQEAgLTgsMTQgKzgsMjQgQEAKKyAjaWZuZGVmIFNPQ0lfQ09NTU9O X1RFU1RTX0hfSU5DTFVERUQKKyAjZGVmaW5lIFNPQ0lfQ09NTU9OX1RFU1RTX0hfSU5DTFVERUQK KyAKKy0jaW5jbHVkZSAic29jaS5oIgorLSNpbmNsdWRlICJzb2NpLWNvbmZpZy5oIgorKy8vCisr I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zb2NpLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1jb25maWcuaD4K KysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1vcHRpb25hbC5oPgorKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LXR1cGxlLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS5o PgorKyMgICAgICAgaW5jbHVkZSA8c29jaS1jb25maWcuaD4KKysjICAgICAgIGluY2x1ZGUgPGJv b3N0LW9wdGlvbmFsLmg+CisrIyAgICAgICBpbmNsdWRlIDxib29zdC10dXBsZS5oPgorKyMgICAg ICAgaW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KKysjZW5kaWYKKysvLworIAorIC8v IGV4cGxpY2l0bHkgcHVsbCBjb252ZXJzaW9ucyBmb3IgQm9vc3QncyBvcHRpb25hbCwgdHVwbGUg YW5kIGZ1c2lvbjoKKyAjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+CistI2luY2x1ZGUgPGJv b3N0LW9wdGlvbmFsLmg+CistI2luY2x1ZGUgPGJvb3N0LXR1cGxlLmg+CistI2luY2x1ZGUgPGJv b3N0LWdyZWdvcmlhbi1kYXRlLmg+CisgI2lmIGRlZmluZWQoQk9PU1RfVkVSU0lPTikgJiYgQk9P U1RfVkVSU0lPTiA+PSAxMDM1MDAKKyAjaW5jbHVkZSA8Ym9vc3QtZnVzaW9uLmg+CisgI2VuZGlm IC8vIEJPT1NUX1ZFUlNJT04KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUv dGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZp bGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSwxNSBAQAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQorK2luY2x1 ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3Vy Y2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK25vaW5z dF9MVExJQlJBUklFUz0gbGlic29jaV9jb3JlX3Rlc3QubGEKKysKKytsaWJzb2NpX2NvcmVfdGVz dF9sYV9TT1VSQ0VTPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCisrbGlic29jaV9jb3JlX3Rlc3Rf bGFfQ1hYRkxBR1MgPQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xJQkFERCA9CisrbGlic29jaV9j b3JlX3Rlc3RfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVS U0lPTikKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291 cmNlcykKKysjcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUu aW4JMjAwOS0wNS0wMyAwMDoyMDo0NC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNDcwIEBA CisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZp bGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKwor K1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVk ZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NP TU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkk KHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRp ciA9IHNvY2kvY29yZS90ZXN0CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5t NAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bv c3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9t NF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21r aW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytMVExJQlJBUklF UyA9ICQobm9pbnN0X0xUTElCUkFSSUVTKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVO Q0lFUyA9CisrYW1fX29iamVjdHNfMSA9CisrYW1fbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNU UyA9ICQoYW1fX29iamVjdHNfMSkKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTID0gJChh bV9saWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xJ TksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9P TEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorKwkk KGxpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxU X0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrQ09NUElM RSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJ TEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykg JChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkg JChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAk QAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVMpCisrRElTVF9TT1VS Q0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQorK0VUQUdTID0gZXRhZ3MKKytD VEFHUyA9IGN0YWdzCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIg PSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisr Qk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJP T1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZ U1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAor K0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0g QEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JF R0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9O X0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytD RkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisr Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQ UEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisr Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJ UkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytFQ0hPID0gQEVDSE9ACisrRUNIT19DID0gQEVD SE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBA RUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGNzcgPSBARjc3QAorK0ZGTEFHUyA9IEBGRkxB R1NACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05A CisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBA SU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5T VEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0g QElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9 IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTE5fUyA9 IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9A CisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisr TVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNA CisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlT UUxfVkVSU0lPTkAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JB Q0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09D SV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytP UkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK1BBQ0tBR0UgPSBAUEFD S0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdF X05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5H QAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9O ID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAK KytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NG TEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNR TF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9T VEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElC QAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0Ug PSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBT T0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9N WVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9B RF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNf YnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKyth YnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBA YWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFj X2N0X0NYWEAKKythY19jdF9GNzcgPSBAYWNfY3RfRjc3QAorK2FtX19pbmNsdWRlID0gQGFtX19p bmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3Rl ID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191 bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFz ID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBA YnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBi dWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3Rk aXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9v ayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNf b2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9z dCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0 X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JA CisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZv ZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0g QGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGly QAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRl ZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1 ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBw cmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1l QAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2Vk X29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNk aXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRf YWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWls ZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQ UEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrY29yZV90ZXN0X2hf c291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKytj b3JlX3Rlc3RfY2Nfc291cmNlcyA9IAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKytub2luc3RfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmVfdGVzdC5sYQorK2xpYnNvY2lf Y29yZV90ZXN0X2xhX1NPVVJDRVMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCisrbGlic29jaV9j b3JlX3Rlc3RfbGFfQ1hYRkxBR1MgPSAKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQgPSAK KytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZlcnNpb24taW5mbyAkKEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OKQorK2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGly KS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJ QGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAg ICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9z cmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSc7IFwK KysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29y ZS90ZXN0L01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/ JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkg ICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lF UykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVw cykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisr Y2xlYW4tbm9pbnN0TFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklF UykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChub2luc3RfTFRM SUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBz ZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBk aXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJ ICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX2NvcmVf dGVzdC5sYTogJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90 ZXN0X2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQo bGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJB REQpICQoTElCUykKKysKKyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVY VCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKyttb3N0bHlj bGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAt cmYgLmxpYnMgX2xpYnMKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChU QUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisr VEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxz ZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkg ICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwK KysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAg JChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1Nf RklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJH UykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9D VEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytH VEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAm JiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVy ZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZ TVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9 YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRv cHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZv ciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJz fF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAv fCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAg Ki8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wv LyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7 OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYg dGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNk aXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9 YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVz dCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisr CSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7 IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIg fHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxl IFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAg fHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVj azogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpCisraW5zdGFsbGRp cnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFt CisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1h bQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNo ZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK KysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK KysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGlidG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklFUyBcCisrCW1vc3RseWNsZWFuLWFtCisrCisr ZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFt OiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3Rj bGVhbi10YWdzCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1h bQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToK KysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06Cisr CisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3Rh bGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1hbQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2stYW06 CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFr ZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xl YW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3Rs eWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMt YW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0g aW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBj aGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2lu c3RMVExJQlJBUklFUyBjdGFncyBkaXN0Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3Rk aXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0 YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0 YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisr CWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IFwKKysJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIFwKKysJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4gXAorKwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4tbGlidG9vbCBcCisrCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5p bnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJT ID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQorKyNwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGly KS9zb2NpL2NvcmUKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8g bm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChm b3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIw MDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytjb3Jl X3Rlc3RfaF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVz dHMuaAorK2NvcmVfdGVzdF9jY19zb3VyY2VzID0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCist LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFt CTIwMDktMDQtMTYgMTk6Mzc6MDcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAKKytp bmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrIyMgU291cmNlIGRpcmVj dG9yeQorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJT ID0gY29yZSBiYWNrZW5kcworKworK0VYVFJBX0RJU1QgPQorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUu aW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZp bGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTU0 IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFr ZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3 aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAor K1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVk ZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NP TU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkk KHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJk aXIgPSBzb2NpCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19h Y2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29u ZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAk KENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRp cnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9IGNvbmZpZy5oCisrQ09ORklH X0NMRUFOX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9U QVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisr CWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAor KwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3Rh bGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRm LXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUg XAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK1JFQ1VSU0lWRV9DTEVBTl9U QVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0 Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrRVRBR1MgPSBldGFn cworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVT ID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElT VCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisr QVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9N QUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NG TEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9P U1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJF QU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElC U0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJ QiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVB RF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NU X1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBA Q0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9 IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5J VF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9M SUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9O QAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERF UE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AK KytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJ TEAKKytFQ0hPID0gQEVDSE9ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19O QAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVY VEAKKytGNzcgPSBARjc3QAorK0ZGTEFHUyA9IEBGRkxBR1NACisrR0VORVJJQ19MSUJSQVJZX1ZF UlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RB TEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExf UFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9T Q1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAK KytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElC U0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBM VExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAor K01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NP TkZJR0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNR TF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTUVESVQgPSBA Tk1FRElUQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA CisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9S VCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAor K1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQ QUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQ QVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09O RklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFH U0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERG TEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RH UkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9S RUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBA U0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01N QU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGly QAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190 b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3Rf Q0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9GNzcgPSBA YWNfY3RfRjc3QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2Rv dCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFy ID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGly QAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxk X2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9y ID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRh dGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29r QAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRp ciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhl Y19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMg PSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rf b3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAor K2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFs bF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBs aWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVk aXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJA CisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAK KytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3Ni aW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0g QHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNj b25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZp eCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisr dG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRp cikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgor K1NVQkRJUlMgPSBjb3JlIGJhY2tlbmRzCisrRVhUUkFfRElTVCA9IAorK2FsbDogY29uZmlnLmgK KysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoK KyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGlu ICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAq JCRkZXAqKSBcCisrCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCBcCisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsg XAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSAgc29jaS9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAm JiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1h a2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwK KysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0 YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKwor KyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAk KENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9f YWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKytjb25maWcuaDogc3RhbXAtaDEKKysJQGlmIHRlc3Qg ISAtZiAkQDsgdGhlbiBcCisrCSAgcm0gLWYgc3RhbXAtaDE7IFwKKysJICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBzdGFtcC1oMTsgXAorKwllbHNlIDo7IGZpCisrCisrc3RhbXAtaDE6ICQoc3Jj ZGlyKS9jb25maWcuaC5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAcm0gLWYg c3RhbXAtaDEKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyBzb2NpL2NvbmZpZy5oCisrJChzcmNkaXIpL2NvbmZpZy5oLmluOiAgJChhbV9fY29uZmlndXJl X2RlcHMpIAorKwljZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT0hFQURFUikKKysJcm0gLWYgc3Rh bXAtaDEKKysJdG91Y2ggJEAKKysKKytkaXN0Y2xlYW4taGRyOgorKwktcm0gLWYgY29uZmlnLmgg c3RhbXAtaDEKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5 J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMg aW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2Vm aWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVh ZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGlu IGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2ls bCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFr ZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBt YWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdl eGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBp biBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkg ICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAor KwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAor KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRk b3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0 YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBp biB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1b IWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0 Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBc CisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisr CWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8t cmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxz ZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisr CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0 YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKwor K1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07 IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVy c2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdz LWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29w dGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8 fCBcCisrCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRp ci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpIGNvbmZpZy5oLmluICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYg dGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJ ICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFH UykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAg JCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJl Y3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVO Q0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc CisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25l IHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8 ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwK KysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQo dG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAm JiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwkt cm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6 ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9z cmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNU RklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAk JGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJ ICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAor KwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRp c3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14v XSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUg aW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAk JGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQg JCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdz LC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRl c3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRm aWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAt cFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisr CSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZp bGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJ ZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0 IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQoYW1f X2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkg JCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJICAg ICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRv cF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCisr CQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisr CSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlk b25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06 IE1ha2VmaWxlIGNvbmZpZy5oCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQor K2luc3RhbGxkaXJzLWFtOgorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1l eGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEt cmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1h bTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisr aW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVz dCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RS SVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytj bGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05G SUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQg Zm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBt YXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlO VEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xl YW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxp YnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUK KysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2Vu ZXJpYyBkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZl CisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1y ZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxs LWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2lu c3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5z dGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBp bnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVy LWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFt OiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1n ZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytw ZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1h bToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFS R0VUUykgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJ YWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRv b2wgXAorKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmlj IFwKKysJZGlzdGNsZWFuLWhkciBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0 ZGlyIGR2aSBcCisrCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5z dGFsbC1hbSBcCisrCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5z dGFsbC1kdmktYW0gXAorKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRt bCBpbnN0YWxsLWh0bWwtYW0gXAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3Rh bGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxs LXBzLWFtIGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGlu c3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIFwKKysJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdGFncy1yZWN1cnNp dmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lv bnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgor KyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4 Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLWNv bmZpZy5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS1jb25maWcuaW4KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpLWNvbmZpZy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLWNvbmZpZy5pbgkyMDA5LTA0LTE2IDE5OjM3 OjEwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3NiBAQAorKyMhL2Jpbi9zaAorKworK3By ZWZpeD1AcHJlZml4QAorK2V4ZWNfcHJlZml4PSR7cHJlZml4fQorK2xpYmRpcj1AbGliZGlyQAor K2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJACisrCisrdXNhZ2UoKQorK3sKKysgIGNhdCA8PEVPRgor K1VzYWdlOiBAUEFDS0FHRUAtY29uZmlnIFtPUFRJT05dCisrCisrS25vd24gdmFsdWVzIGZvciBP UFRJT04gYXJlOgorKworKyAgLS1wcmVmaXggICAgICAgIHByaW50IEBQQUNLQUdFX05BTUVAIGlu c3RhbGxhdGlvbiBwcmVmaXgKKysgIC0tbGlicyAgICAgICAgICBwcmludCBsaWJyYXJ5IGxpbmtp bmcgaW5mb3JtYXRpb24KKysgIC0tY2ZsYWdzICAgICAgICBwcmludCBwcmUtcHJvY2Vzc29yIGFu ZCBjb21waWxlciBmbGFncworKyAgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFu ZCBleGl0CisrICAtLXZlcnNpb24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24KKytF T0YKKysgIGV4aXQgJDEKKyt9CisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgdXNhZ2Ug MQorK2ZpCisrCisrY2ZsYWdzPWZhbHNlCisrbGlicz1mYWxzZQorKworK3doaWxlIHRlc3QgJCMg LWd0IDA7IGRvCisrICBjYXNlICIkMSIgaW4KKysgIC0qPSopIG9wdGFyZz1gZWNobyAiJDEiIHwg c2VkICdzL1stX2EtekEtWjAtOV0qPS8vJ2AgOzsKKysgICopIG9wdGFyZz0gOzsKKysgIGVzYWMK KysKKysgIGNhc2UgJDEgaW4KKysgICAgLS1wcmVmaXg9KikKKysgICAgICBwcmVmaXg9JG9wdGFy ZworKyAgICAgIDs7CisrCisrICAgIC0tcHJlZml4KQorKyAgICAgIGVjaG8gJHByZWZpeAorKyAg ICAgIDs7CisrCisrICAgIC0tdmVyc2lvbikKKysgICAgICBlY2hvIEBWRVJTSU9OQAorKyAgICAg IDs7CisrCisrICAgIC0taGVscCkKKysgICAgICB1c2FnZSAwCisrICAgICAgOzsKKysKKysgICAg LS1jZmxhZ3MpCisrICAgICAgaWYgWyAiJHtwcmVmaXh9IiAhPSAiL3VzciIgXTsgdGhlbgorKyAg ICAgICAgZWNobyAtSSR7aW5jbHVkZWRpcn0KKysgICAgICBlbHNlCisrICAgICAgICBlY2hvCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICAtLWxpYnMpCisrICAgICAgaWYgWyAiJHtwcmVm aXh9IiAhPSAiL3VzciIgXTsgdGhlbgorKyAgICAgICAgZWNobyAtTCR7bGliZGlyfSAtbEBQQUNL QUdFQAorKyAgICAgIGVsc2UKKysgICAgICAgIGVjaG8gLWxAUEFDS0FHRUAKKysgICAgICBmaQor KyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgdXNhZ2UKKysgICAgICBleGl0IDEKKysgICAg ICA7OworKyAgZXNhYworKyAgc2hpZnQKKytkb25lCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5tNAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS5tNAkyMDA5LTA1LTAyIDIzOjU5OjEzLjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSwxMTggQEAKKytkbmwgQHN5bm9wc2lzIEFYX1NPQ0kKKytkbmwgCisrZG5s IFRoaXMgbWFjcm8gdHJpZXMgdG8gZmluZCBTb2NpIEMgQVBJIGhlYWRlciBhbmQgbGlicmFyeSBs b2NhdGlvbnMuCisrZG5sCisrZG5sIFdlIGRlZmluZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyZSBz Y3JpcHQgZmxhZ3M6CisrZG5sCisrZG5sCS0td2l0aC1zb2NpOiBHaXZlIHByZWZpeCBmb3IgYm90 aCBsaWJyYXJ5IGFuZCBoZWFkZXJzLCBhbmQgdHJ5CisrZG5sCQkgICAgIHRvIGd1ZXNzIHN1YmRp cmVjdG9yeSBuYW1lcyBmb3IgZWFjaC4gIChlLmcuIGFkZCAvbGliIGFuZAorK2RubAkJICAgICAv aW5jbHVkZSBvbnRvIGdpdmVuIGRpciBuYW1lcywgYW5kIG90aGVyIGNvbW1vbiBzY2hlbWVzLikK KytkbmwKKytkbmwgQHZlcnNpb24gMS4zLCAyMDA5LzA1LzAyCisrZG5sIEBhdXRob3IgRGVuaXMg QXJuYXVkIDxkZW5pc19hcm5hdWRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorK2RubAorK2RubCBA dmVyc2lvbiAxLjIsIDIwMDcvMDIvMjAKKytkbmwgQGF1dGhvciBXYXJyZW4gWW91bmcgPHNvY2lw cEBldHItdXNhLmNvbT4KKysKKytBQ19ERUZVTihbQVhfU09DSV0sCisrWworKyMKKysjIFNldCB1 cCBjb25maWd1cmUgc2NyaXB0IG1hY3JvcworKyMKKytBQ19BUkdfV0lUSChzb2NpLAorKwlbLS13 aXRoLXNvY2k9PHBhdGg+ICAgICByb290IGRpcmVjdG9yeSBwYXRoIG9mIFNvY2kgaW5zdGFsbGF0 aW9uXSwKKysJW1NPQ0lfbGliX2NoZWNrPSIkd2l0aF9zb2NpL2xpYjY0L3NvY2kgJHdpdGhfc29j aS9saWIvc29jaSAkd2l0aF9zb2NpL2xpYjY0ICR3aXRoX3NvY2kvbGliIgorKwlTT0NJX2luY19j aGVjaz0iJHdpdGhfc29jaS9pbmNsdWRlICR3aXRoX3NvY2kvaW5jbHVkZS9zb2NpIl0sCisrCVtT T0NJX2xpYl9jaGVjaz0iL3Vzci9saWI2NCAvdXNyL2xpYiAvdXNyL2xpYjY0L3NvY2kgL3Vzci9s aWIvc29jaSAvdXNyL2xvY2FsL2xpYjY0IC91c3IvbG9jYWwvbGliIC9vcHQvc29jaS9saWI2NCAv b3B0L3NvY2kvbGliIC91c3IvbG9jYWwvbGliNjQvc29jaSAvdXNyL2xvY2FsL2xpYi9zb2NpIC91 c3IvbG9jYWwvc29jaS9saWI2NCAvdXNyL2xvY2FsL3NvY2kvbGliIC9vcHQvc29jaS9saWI2NC9z b2NpIC9vcHQvc29jaS9saWIvc29jaSIKKysJU09DSV9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAv dXNyL2luY2x1ZGUvc29jaSAvdXNyL2xvY2FsL2luY2x1ZGUgL29wdC9zb2NpL2luY2x1ZGUgL3Vz ci9sb2NhbC9pbmNsdWRlL3NvY2kgL3Vzci9sb2NhbC9zb2NpL2luY2x1ZGUgL3Vzci9sb2NhbC9z b2NpL2luY2x1ZGUvc29jaSAvb3B0L3NvY2kvaW5jbHVkZS9zb2NpIl0pCisrCisrIyBTT0NJIGxp YnJhcnkKKytTT0NJX0NPUkVfTElCPXNvY2lfY29yZQorK1NPQ0lfTVlTUUxfTElCPXNvY2lfbXlz cWwKKysKKysjCisrIyBMb29rIGZvciBTb2NpIENvcmUgQVBJIGxpYnJhcnkKKysjCisrQUNfTVNH X0NIRUNLSU5HKFtmb3IgU29jaSBsaWJyYXJ5IGRpcmVjdG9yeV0pCisrU09DSV9saWJkaXI9Cisr Zm9yIG0gaW4gJFNPQ0lfbGliX2NoZWNrCisrZG8KKysJaWYgdGVzdCAtZCAiJG0iICYmIFwKKysJ CSh0ZXN0IC1mICIkbS9saWIkU09DSV9DT1JFX0xJQi5zbyIgfHwgdGVzdCAtZiAiJG0vbGliJFNP Q0lfQ09SRV9MSUIuYSIpCisrCXRoZW4KKysJCVNPQ0lfbGliZGlyPSRtCisrCQlicmVhaworKwlm aQorK2RvbmUKKysKKytpZiB0ZXN0IC16ICIkU09DSV9saWJkaXIiCisrdGhlbgorKwlBQ19NU0df RVJST1IoW0RpZG4ndCBmaW5kICRTT0NJX0NPUkVfTElCIGxpYnJhcnkgaW4gJyRTT0NJX2xpYl9j aGVjayddKQorK2ZpCisrCisrY2FzZSAiJFNPQ0lfbGliZGlyIiBpbgorKwkvKiApIDs7CisrCSog KSAgQUNfTVNHX0VSUk9SKFtUaGUgU29jaSBsaWJyYXJ5IGRpcmVjdG9yeSAoJFNPQ0lfbGliZGly KSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKKytlc2FjCisrCisrQUNfTVNHX1JFU1VM VChbJFNPQ0lfbGliZGlyXSkKKysKKytjYXNlICIkU09DSV9saWJkaXIiIGluCisrICAvdXNyL2xp YjY0KSA7OworKyAgL3Vzci9saWIpIDs7CisrICAqKSBTT0NJX0xJQlM9Ii1MJHtTT0NJX2xpYmRp cn0iIDs7CisrZXNhYworK0xERkxBR1M9IiRMREZMQUdTICR7U09DSV9MSUJTfSIKKysKKysKKysj CisrIyBMb29rIGZvciBTb2NpIENvcmUgQVBJIGhlYWRlcnMKKysjCisrQUNfTVNHX0NIRUNLSU5H KFtmb3IgU29jaSBpbmNsdWRlIGRpcmVjdG9yeV0pCisrU09DSV9pbmNkaXI9CisrZm9yIG0gaW4g JFNPQ0lfaW5jX2NoZWNrCisrZG8KKysJaWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL3Nv Y2kvY29yZS9zb2NpLmgiCisrCXRoZW4KKysJCVNPQ0lfaW5jZGlyPSRtCisrCQlicmVhaworKwlm aQorK2RvbmUKKysKKytpZiB0ZXN0IC16ICIkU09DSV9pbmNkaXIiCisrdGhlbgorKwlBQ19NU0df RVJST1IoW0RpZG4ndCBmaW5kIHRoZSBTb2NpIGluY2x1ZGUgZGlyIGluICckU09DSV9pbmNfY2hl Y2snXSkKKytmaQorKworK2Nhc2UgIiRTT0NJX2luY2RpciIgaW4KKysJLyogKSA7OworKwkqICkg IEFDX01TR19FUlJPUihbVGhlIFNvY2kgaW5jbHVkZSBkaXJlY3RvcnkgKCRTT0NJX2luY2Rpcikg bXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7CisrZXNhYworKworK0FDX01TR19SRVNVTFQo WyRTT0NJX2luY2Rpcl0pCisrCisrY2FzZSAiJFNPQ0lfaW5jZGlyIiBpbgorKyAgL3Vzci9pbmNs dWRlKSA7OworKyAgKikgU09DSV9DRkxBR1M9Ii1JJHtTT0NJX2luY2Rpcn0iIDs7CisrZXNhYwor KworK1NPQ0lfTElCUz0iJHtTT0NJX0xJQlN9IC1sJHtTT0NJX0NPUkVfTElCfSAtbCR7U09DSV9N WVNRTF9MSUJ9IC1sZGwiCisrCisrQUNfU1VCU1QoU09DSV9DRkxBR1MpCisrQUNfU1VCU1QoU09D SV9MSUJTKQorKworKyMgVGVzdCBsaW5raW5nIHdpdGggc29jaSAobm90ZSB0aGF0IGl0IG5lZWRz IE15U1FMIGNsaWVudCB0byBoYXZlIGJlZW4gZGVmaW5lZAorKyMgYmVmb3JlKQorK3NhdmVfTElC Uz0iJExJQlMiCisraWYgdGVzdCAteiAiJE1ZU1FMX0xJQlMiCisrdGhlbgorKwlNWVNRTF9MSUJT PSItTC91c3IvbGliNjQvbXlzcWwgLUwvdXNyL2xpYi9teXNxbCAtbG15c3FsY2xpZW50IgorK2Zp CisrTElCUz0iJExJQlMgJE1ZU1FMX0xJQlMgJFNPQ0lfTElCUyIKKytBQ19DSEVDS19MSUIoJFNP Q0lfQ09SRV9MSUIsIHNvY2lfYmVnaW4sCisrCSAgICAgW10sIAorKyAgICAgICAgICAgICBbQUNf TVNHX0VSUk9SKFtDb3VsZCBub3QgZmluZCB3b3JraW5nIFNvY2kgY2xpZW50IGxpYnJhcnkhXSld CisrCSAgICAgKQorK0xJQlM9IiRzYXZlX0xJQlMiCisrQUNfU1VCU1QoU09DSV9DT1JFX0xJQikK KytdKSBkbmwgQVhfU09DSQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kucGMuaW4g c29jaS0zLjAuMF90cmVwMzAwL3NvY2kucGMuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np LnBjLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kucGMuaW4JMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMTEgQEAKKytwcmVmaXg9QHByZWZpeEAKKytleGVjX3ByZWZpeD1AZXhlY19w cmVmaXhACisrbGliZGlyPUBsaWJkaXJACisraW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKKysKKytO YW1lOiBAUEFDS0FHRV9OQU1FQAorK0Rlc2NyaXB0aW9uOiBUaGUgZGF0YWJhc2UgYWNjZXNzIGxp YnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycworK1ZlcnNpb246IEBQQUNLQUdFX1ZFUlNJT05ACisr VVJMOiBodHRwOi8vQFBBQ0tBR0VALnNvdXJjZWZvcmdlLm5ldAorK0xpYnM6IC1MJHtsaWJkaXJ9 IC1sQFBBQ0tBR0VAX2NvcmUgQExERkxBR1NAIEBMSUJTQAorK0NmbGFnczogLUkke2luY2x1ZGVk aXJ9CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS5zcGVjLmluIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpLnNwZWMuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnNwZWMuaW4J MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS5zcGVjLmluCTIwMDktMDUtMDIgMTc6MjM6MzkuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDI5NCBAQAorKyMKKysjIworKyMgRGVmYXVsdCB2YWx1ZXMgYXJlIC0td2l0aCBteXNx bCAtLXdpdGggcG9zdGdyZXNxbCAtLXdpdGhvdXQgb3JhY2xlIAorKyMgTm90ZSB0aGF0LCBmb3Ig T3JhY2xlLCB3aGVuIGVuYWJsZWQsIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBzaG91bGQKKysjIGFs c28gYmUgZ2l2ZW46CisrIyAtLXdpdGgtb3JhY2xlLWluY2x1ZGU9L29wdC9vcmFjbGUvYXBwL29y YWNsZS9wcm9kdWN0LzExLjEuMC9kYl8xL3JkYm1zL3B1YmxpYworKyMgLS13aXRoLW9yYWNsZS1s aWI9L29wdC9vcmFjbGUvYXBwL29yYWNsZS9wcm9kdWN0LzExLjEuMC9kYl8xL2xpYgorKyMgSWYg dGhlIG1hY3JvcyBhcmUgZGVmaW5lZCwgcmVkZWZpbmUgdGhlbSB3aXRoIHRoZSBjb3JyZWN0IGNv bXBpbGF0aW9uIGZsYWdzLgorKyViY29uZF93aXRob3V0IG15c3FsCisrJWJjb25kX3dpdGhvdXQg cG9zdGdyZXNxbAorKyViY29uZF93aXRoIG9yYWNsZQorKworKyVkZWZpbmUgX2RlZmF1bHRfb3Jh Y2xlX2RpciAvb3B0L29yYWNsZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEKKysleyE/ X3dpdGhfb3JhY2xlX2luY2RpcjogJWRlZmluZSBfd2l0aF9vcmFjbGVfaW5jZGlyIC0td2l0aC1v cmFjbGUtaW5jbHVkZT0le19kZWZhdWx0X29yYWNsZV9kaXJ9L3JkYm1zL3B1YmxpY30KKysleyE/ X3dpdGhfb3JhY2xlX2xpYmRpcjogJWRlZmluZSBfd2l0aF9vcmFjbGVfbGliZGlyIC0td2l0aC1v cmFjbGUtbGliPSV7X2RlZmF1bHRfb3JhY2xlX2Rpcn0vbGlifQorKyMKKysjIworKyMKKytOYW1l OiAgICAgICAgICAgQFBBQ0tBR0VACisrVmVyc2lvbjogICAgICAgIEBWRVJTSU9OQAorK1JlbGVh c2U6ICAgICAgICBAUlBNX1JFTEVBU0VAJXs/ZGlzdH0KKysKKytTdW1tYXJ5OiAgICAgICAgVGhl IGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IGZvciBDKysgcHJvZ3JhbW1lcnMKKysKKytHcm91cDog ICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcworK0xpY2Vuc2U6ICAgICAgICBC b29zdAorK1VSTDogICAgICAgICAgICBodHRwOi8vJXtuYW1lfS5zb3VyY2Vmb3JnZS5uZXQKKytT b3VyY2UwOiAgICAgICAgaHR0cDovL2Rvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvc29jaS8le25h bWV9LSV7dmVyc2lvbn0udGFyLmd6CisrIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVw c3RyZWFtCisrUGF0Y2gwOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1maXgtZ2NjNDMtY29t cGF0aWJpbGl0eS5wYXRjaAorKyMgVGhhdCBwYXRjaCB3aWxsIGJlIHN1Ym1pdHRlZCB1cHN0cmVh bQorK1BhdGNoMTogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0tZml4LWdudS1hdXRvdG9vbHMt Y29tcGF0aWJpbGl0eS5wYXRjaAorK0J1aWxkUm9vdDogICAgICAle190bXBwYXRofS8le25hbWV9 LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQorKworK0J1aWxkUmVx dWlyZXM6ICBib29zdC1kZXZlbCA+PSAxLjM0CisrQnVpbGRSZXF1aXJlczogIGNwcHVuaXQtZGV2 ZWwgPj0gMS4xMAorK0J1aWxkUmVxdWlyZXM6ICBsaWJ0b29sCisrI1JlcXVpcmVzOiAgICAgICAK KysKKyslZGVzY3JpcHRpb24KKytAUEFDS0FHRV9OQU1FQCBpcyBhIEMrKyBkYXRhYmFzZSBhY2Nl c3MgbGlicmFyeSB0aGF0IHByb3ZpZGVzIHRoZQorK2lsbHVzaW9uIG9mIGVtYmVkZGluZyBTUUwg aW4gcmVndWxhciBDKysgY29kZSwgc3RheWluZyBlbnRpcmVseSB3aXRoaW4KKyt0aGUgQysrIHN0 YW5kYXJkLgorKworKworKyV7P3dpdGhfbXlzcWw6JXBhY2thZ2UgICAgICAgIG15c3FsCisrU3Vt bWFyeTogICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KKytHcm91cDogICAgICAgICAg U3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcworK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0g JXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrQnVpbGRSZXF1aXJlczogIG15c3FsLWRldmVsID49IDUu MAorKworKyVkZXNjcmlwdGlvbiAgICBteXNxbAorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUg TXlTUUwgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCisrZHluYW1pYyBsaWJyYXJ5 IHNwZWNpZmljIHRvIHRoZSBNeVNRTCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UgdG8KKyt1 c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIE15U1FMLCB5b3Ugd2lsbCBu ZWVkIHRvCisraW5zdGFsbCAle25hbWV9LW15c3FsLn0KKysKKyslez93aXRoX3Bvc3RncmVzcWw6 JXBhY2thZ2UgICAgICAgIHBvc3RncmVzcWwKKytTdW1tYXJ5OiAgICAgICAgUG9zdEdyZVNRTCBi YWNrZW5kIGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9M aWJyYXJpZXMKKytSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNl fQorK0J1aWxkUmVxdWlyZXM6ICBwb3N0Z3Jlc3FsLWRldmVsID49IDcuMQorKworKyVkZXNjcmlw dGlvbiAgICBwb3N0Z3Jlc3FsCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBQb3N0R3JlU1FM IGJhY2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAorK2R5bmFtaWMgbGlicmFyeSBzcGVj aWZpYyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UKKyt0byB1 c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIFBvc3RHcmVTUUwsIHlvdSB3 aWxsIG5lZWQgdG8KKytpbnN0YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59CisrCisrJXs/d2l0aF9v cmFjbGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZQorK1N1bW1hcnk6ICAgICAgICBPcmFjbGUgYmFj a2VuZCBmb3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGli cmFyaWVzCisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0K KysKKyslZGVzY3JpcHRpb24gICAgb3JhY2xlCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBP cmFjbGUgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCisrZHluYW1pYyBsaWJyYXJ5 IHNwZWNpZmljIHRvIHRoZSBPcmFjbGUgZGF0YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlIHRvCisr dXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBPcmFjbGUsIHlvdSB3aWxs IG5lZWQgdG8gaW5zdGFsbAorKyV7bmFtZX0tb3JhY2xlLn0KKysKKysKKyslcGFja2FnZSAgICAg ICAgZGV2ZWwKKytTdW1tYXJ5OiAgICAgICAgSGVhZGVyIGZpbGVzLCBsaWJyYXJpZXMgYW5kIGRl dmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0KKytHcm91cDogICAgICAgICAgRGV2 ZWxvcG1lbnQvTGlicmFyaWVzCisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259 LSV7cmVsZWFzZX0KKytSZXF1aXJlczogICAgICAgcGtnY29uZmlnCisrCisrJWRlc2NyaXB0aW9u ICAgIGRldmVsCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBoZWFkZXIgZmlsZXMsIGR5bmFt aWMgbGlicmFyaWVzIGFuZAorK2RldmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0u IElmIHlvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AKKytwcm9ncmFtcyB1c2luZyAle25hbWV9LCB5 b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1kZXZlbC4KKysKKyslez93aXRoX215c3Fs OiVwYWNrYWdlICAgICAgICBteXNxbC1kZXZlbAorK1N1bW1hcnk6ICAgICAgICBNeVNRTCBiYWNr ZW5kIGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcwor K1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Cisr UmVxdWlyZXM6ICAgICAgICV7bmFtZX0tbXlzcWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytS ZXF1aXJlczogICAgICAgbXlzcWwtZGV2ZWwgPj0gNS4wCisrCisrJWRlc2NyaXB0aW9uICAgIG15 c3FsLWRldmVsCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNeVNRTCBiYWNrZW5kIGZvciAl e25hbWV9LCBpLmUuLCBoZWFkZXIKKytmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lm aWMgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3UKKyt3b3VsZCBsaWtlIHRvIGRldmVsb3Ag cHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgTXlTUUwsIHlvdSB3aWxsIG5lZWQKKyt0byBpbnN0 YWxsICV7bmFtZX0tbXlzcWwufQorKworKyV7P3dpdGhfcG9zdGdyZXNxbDolcGFja2FnZSAgICAg ICAgcG9zdGdyZXNxbC1kZXZlbAorK1N1bW1hcnk6ICAgICAgICBQb3N0R3JlU1FMIGJhY2tlbmQg Zm9yICV7bmFtZX0KKytHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCisrUmVx dWlyZXM6ICAgICAgICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1 aXJlczogICAgICAgJXtuYW1lfS1wb3N0Z3Jlc3FsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Cisr UmVxdWlyZXM6ICAgICAgIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4xCisrCisrJWRlc2NyaXB0aW9u ICAgIHBvc3RncmVzcWwtZGV2ZWwKKytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVT UUwgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCisrZmlsZXMgYW5kIGR5bmFtaWMg bGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBQb3N0R3JlU1FMIGRhdGFiYXNlLiBJZgorK3lvdSB3 b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgUG9zdEdyZVNR TCwgeW91Cisrd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1wb3N0Z3Jlc3FsLn0KKysKKysl ez93aXRoX29yYWNsZTolcGFja2FnZSAgICAgICAgb3JhY2xlLWRldmVsCisrU3VtbWFyeTogICAg ICAgIE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAgIERldmVsb3Bt ZW50L0xpYnJhcmllcworK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9CisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tb3JhY2xlID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9CisrCisrJWRlc2NyaXB0aW9uICAgIG9yYWNsZS1kZXZlbAorK1RoaXMgcGFj a2FnZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhlYWRl cgorK2ZpbGVzIGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUgT3JhY2xlIGRh dGFiYXNlLiBJZiB5b3UKKyt3b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtu YW1lfSBhbmQgT3JhY2xlLCB5b3Ugd2lsbCBuZWVkCisrdG8gaW5zdGFsbCAle25hbWV9LW9yYWNs ZS59CisrCisrCisrJXBhY2thZ2UgZG9jCisrU3VtbWFyeTogICAgICAgIEhUTUwgZG9jdW1lbnRh dGlvbiBmb3IgdGhlIEBQQUNLQUdFX05BTUVAIGxpYnJhcnkKKytHcm91cDogICAgICAgICAgRG9j dW1lbnRhdGlvbgorK0J1aWxkQXJjaDogICAgICBub2FyY2gKKytCdWlsZFJlcXVpcmVzOiAgZG94 eWdlbiwgdGV4bGl2ZS1sYXRleCwgdGV4bGl2ZS1kdmlwcywgZ2hvc3RzY3JpcHQKKysKKyslZGVz Y3JpcHRpb24gZG9jCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBkb2N1bWVudGF0aW9uIGlu IHRoZSBIVE1MIGZvcm1hdCBvZiB0aGUgQFBBQ0tBR0VfTkFNRUAKKytsaWJyYXJ5LiBUaGUgZG9j dW1lbnRhdGlvbiBpcyB0aGUgc2FtZSBhcyBhdCB0aGUgQFBBQ0tBR0VfTkFNRUAgd2ViIHBhZ2Uu CisrCisrCisrJXByZXAKKyslc2V0dXAgLXEKKysjIFJlbmFtZSBjaGFuZ2UtbG9nIGFuZCBsaWNl bnNlIGZpbGUsIHNvIHRoYXQgdGhleSBjb21wbHkgd2l0aAorKyMgcGFja2FnaW5nIHN0YW5kYXJk CisrbXYgQ0hBTkdFUyBDaGFuZ2VMb2cKKyttdiBMSUNFTlNFXzFfMC50eHQgQ09QWUlORworK3Jt IC1mIElOU1RBTEwKKysjIEFwcGx5IHRoZSBnKysgNC4zIGNvbXBhdGliaWxpdHkgcGF0Y2gKKysl cGF0Y2gwIC1wMQorKyMgUmVtb3ZlIE1hY09TWCBjb21wYXRpYmlsaXR5IGJ1aWxkaW5nIGZpbGVz Cisrcm0gLWYgYnVpbGQvdW5peC8uXyoudGNsCisrcm0gLWYgLl9NYWtlZmlsZSAuX2NvbmZpZ3Vy ZQorK3JtIC1mIHNvY2kvY29yZS8uXyouaCBzb2NpL2NvcmUvLl8qLmNwcAorK3JtIC1mIHNvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC8uXyouaAorK3JtIC1mIGRvYy8uXyouaHRtbAorKyMgUmVuYW1l IHRoZSBzb3VyY2UgY29kZSBkaXJlY3RvcnksIHNvIHRoYXQgdGhlIGZpbGVzIChlLmcsIGhlYWRl cgorKyMgZmlsZXMpIGNhbiBiZSBleHBvcnRlZCBjb3JyZWN0bHkgaW50byB7X3N0YW5kYXJkX2Rp cn0vJXtuYW1lfQorK212IHNyYyAle25hbWV9CisrIyBBcHBseSB0aGUgR05VIEF1dG90b29scyBj b21wYXRpYmlsaXR5IHBhdGNoCisrJXBhdGNoMSAtcDEKKysjIEZpeCBzb21lIHBlcm1pc3Npb25z IGFuZCBmb3JtYXRzCisrZmluZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1NSAtZXhlYyBjaG1vZCA2 NDQge30gXDsKKytjaG1vZCAteCBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1F CisrIyBmaW5kIC4gLXR5cGUgZiAtbmFtZSAnKi5baGNdcHAnIC1leGVjIGNobW9kIDY0NCB7fSBc OworKworKworKyVidWlsZAorKyVjb25maWd1cmUgLS1kaXNhYmxlLXN0YXRpYyBcCisrJXs/d2l0 aF9teXNxbDotLWVuYWJsZS1iYWNrZW5kLW15c3FsfSBcCisrJXs/d2l0aF9wb3N0Z3Jlc3FsOi0t ZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbH0gXAorKyV7P3dpdGhfb3JhY2xlOi0tZW5hYmxlLWJh Y2tlbmQtb3JhY2xlICV7P193aXRoX29yYWNsZV9pbmNkaXJ9ICV7P193aXRoX29yYWNsZV9saWJk aXJ9fQorK21ha2UgJXs/X3NtcF9tZmxhZ3N9CisrCisrJWluc3RhbGwKKytybSAtcmYgJFJQTV9C VUlMRF9ST09UCisrbWFrZSBpbnN0YWxsIERFU1RESVI9JFJQTV9CVUlMRF9ST09UCisrIyMKKysj ICBSZW1vdmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJvb3QKKytybSAtZiAkUlBN X0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2NvbmZpZy5oCisrcm0gLWYgJFJQTV9C VUlMRF9ST09UJXtfbGliZGlyfS9saWIle25hbWV9XyoubGEKKysjIworKyMjCisrIyAgRHVwbGlj YXRlIHRoZSBoZWFkZXIgZmlsZXMsIHNvIGFzIHRvIGtlZXAgdGhlIGNvbXBhdGliaWxpdHksIGZv cgorKyMgIGRldmVsb3BlcnMgdXNpbmcgdGhlIFNPQ0kgbGlicmFyeSwgd2l0aCB0aGUgbm9uLXBh Y2thZ2VkIHZlcnNpb24gb2YKKysjICB0aGF0IGxpYnJhcnkuCisrZm9yIGhlYWRlcl9maWxlIGlu ICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8qLmg7IGRvCisrICBj cCAke2hlYWRlcl9maWxlfSAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9Cisr ZG9uZQorKyV7P3dpdGhfbXlzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtu YW1lfS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVk ZWRpcn0vJXtuYW1lfX0KKyslez93aXRoX3Bvc3RncmVzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtf aW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5o ICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19CisrJXs/d2l0aF9vcmFjbGU6 Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUv c29jaS1vcmFjbGUuaCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9fQorKwor KworKyVjbGVhbgorK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKKysKKyslcG9zdCAtcCAvc2Jpbi9s ZGNvbmZpZworKworKyVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKKysKKyslez93aXRoX215c3Fs OiVwb3N0IG15c3FsIC1wIC9zYmluL2xkY29uZmlnCisrCisrJXBvc3R1biBteXNxbCAtcCAvc2Jp bi9sZGNvbmZpZ30KKysKKyslez93aXRoX3Bvc3RncmVzcWw6JXBvc3QgcG9zdGdyZXNxbCAtcCAv c2Jpbi9sZGNvbmZpZworKworKyVwb3N0dW4gcG9zdGdyZXNxbCAtcCAvc2Jpbi9sZGNvbmZpZ30K KysKKyslez93aXRoX29yYWNsZTolcG9zdCBvcmFjbGUgLXAgL3NiaW4vbGRjb25maWcKKysKKysl cG9zdHVuIG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZ30KKysKKysKKysKKyslZmlsZXMKKyslZGVm YXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdT IFJFQURNRQorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9jb3JlLnNvLioKKysKKyslez93aXRoX215 c3FsOiVmaWxlcyBteXNxbAorKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JT IENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrJXtfbGliZGlyfS9saWIle25hbWV9X215 c3FsLnNvLip9CisrCisrJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsCisrJWRl ZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVX UyBSRUFETUUKKysle19saWJkaXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNxbC5zby4qfQorKworKyV7 P3dpdGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVk b2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyV7X2xpYmRpcn0vbGli JXtuYW1lfV9vcmFjbGUuc28uKn0KKysKKysKKyslZmlsZXMgZGV2ZWwKKyslZGVmYXR0cigtLHJv b3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQor KyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vKi5o CisrJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3JlCisrJXtfYmluZGlyfS8le25hbWV9LWNvbmZp ZworKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9jb3JlLnNvCisrJXtfbGliZGlyfS9wa2djb25maWcv JXtuYW1lfS5wYworKyV7X2RhdGFkaXJ9L2FjbG9jYWwvJXtuYW1lfS5tNAorKyV7X21hbmRpcn0v bWFuMS8le25hbWV9LWNvbmZpZy4xLioKKysKKyslez93aXRoX215c3FsOiVmaWxlcyBteXNxbC1k ZXZlbAorKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBD T1BZSU5HIE5FV1MgUkVBRE1FCisrJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9CisrJXtfaW5j bHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9teXNxbAorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9t eXNxbC5zb30KKysKKyslez93aXRoX3Bvc3RncmVzcWw6JWZpbGVzIHBvc3RncmVzcWwtZGV2ZWwK KyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlO RyBORVdTIFJFQURNRQorKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7X2luY2x1ZGVk aXJ9LyV7bmFtZX0vYmFja2VuZHMvcG9zdGdyZXNxbAorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9w b3N0Z3Jlc3FsLnNvfQorKworKyV7P3dpdGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUtZGV2ZWwKKysl ZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBO RVdTIFJFQURNRQorKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX0vYmFja2VuZHMvb3JhY2xlCisrJXtfbGliZGlyfS9saWIle25hbWV9X29yYWNsZS5z b30KKysKKysKKyslZmlsZXMgZG9jCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFV VEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUgZG9jCisrCisrCisrJWNoYW5nZWxv ZworKyogU2F0IE1heSAwMiAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBt NHgub3JnPiAzLjAuMC02CisrLSBSZW1vdmVkIHRoZSB1bnVzZWQgYnVpbGQgY29uZGl0aW9uYWxz CisrCisrKiBUdWUgQXByIDI4IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3Jh QG00eC5vcmc+IDMuMC4wLTUKKystIFNpbXBsaWZpZWQgdGhlIGNvbmRpdGlvbmFsIGJ1aWxkIHJ1 bGVzIHdpdGhpbiB0aGUgUlBNIHNwZWNpZmljYXRpb24gZmlsZQorKworKyogU2F0IEFwciAxOCAy MDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC00Cisr LSBGaXhlZCBhbiBpc3N1ZSBhYm91dCBPUFRGTEFHUyBjb21waWxhdGlvbgorKworKyogVHVlIEFw ciAxNCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAu MC0zCisrLSBSZXN0YXJ0ZWQgZnJvbSBwcmlzdGluZSB2ZXJzaW9uIDMuMC4wIG9mIHVwc3RyZWFt IChTT0NJKSBwcm9qZWN0CisrCisrKiBTYXQgQXByICA0IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5p cy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTIKKystIFNwZWNpZmljIFJQTSBmb3IgZWFj aCBiYWNrZW5kCisrCisrKiBGcmkgTWFyIDI3IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5h dWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEKKystIEZpcnN0IFJQTSByZWxlYXNlCgpkaWZmIC0t Z2l0IGEvc29jaS5zcGVjIGIvc29jaS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmJjODFjNzcKLS0tIC9kZXYvbnVsbAorKysgYi9zb2NpLnNwZWMKQEAgLTAsMCArMSwy OTQgQEAKKyMKKyMjCisjIERlZmF1bHQgdmFsdWVzIGFyZSAtLXdpdGggbXlzcWwgLS13aXRoIHBv c3RncmVzcWwgLS13aXRob3V0IG9yYWNsZSAKKyMgTm90ZSB0aGF0LCBmb3IgT3JhY2xlLCB3aGVu IGVuYWJsZWQsIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBzaG91bGQKKyMgYWxzbyBiZSBnaXZlbjoK KyMgLS13aXRoLW9yYWNsZS1pbmNsdWRlPS9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8x MS4xLjAvZGJfMS9yZGJtcy9wdWJsaWMKKyMgLS13aXRoLW9yYWNsZS1saWI9L29wdC9vcmFjbGUv YXBwL29yYWNsZS9wcm9kdWN0LzExLjEuMC9kYl8xL2xpYgorIyBJZiB0aGUgbWFjcm9zIGFyZSBk ZWZpbmVkLCByZWRlZmluZSB0aGVtIHdpdGggdGhlIGNvcnJlY3QgY29tcGlsYXRpb24gZmxhZ3Mu CislYmNvbmRfd2l0aG91dCBteXNxbAorJWJjb25kX3dpdGhvdXQgcG9zdGdyZXNxbAorJWJjb25k X3dpdGggb3JhY2xlCisKKyVkZWZpbmUgX2RlZmF1bHRfb3JhY2xlX2RpciAvb3B0L29yYWNsZS9h cHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEKKyV7IT9fd2l0aF9vcmFjbGVfaW5jZGlyOiAl ZGVmaW5lIF93aXRoX29yYWNsZV9pbmNkaXIgLS13aXRoLW9yYWNsZS1pbmNsdWRlPSV7X2RlZmF1 bHRfb3JhY2xlX2Rpcn0vcmRibXMvcHVibGljfQorJXshP193aXRoX29yYWNsZV9saWJkaXI6ICVk ZWZpbmUgX3dpdGhfb3JhY2xlX2xpYmRpciAtLXdpdGgtb3JhY2xlLWxpYj0le19kZWZhdWx0X29y YWNsZV9kaXJ9L2xpYn0KKyMKKyMjCisjCitOYW1lOiAgICAgICAgICAgc29jaQorVmVyc2lvbjog ICAgICAgIDMuMC4wCitSZWxlYXNlOiAgICAgICAgNiV7P2Rpc3R9CisKK1N1bW1hcnk6ICAgICAg ICBUaGUgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycworCitHcm91 cDogICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcworTGljZW5zZTogICAgICAg IEJvb3N0CitVUkw6ICAgICAgICAgICAgaHR0cDovLyV7bmFtZX0uc291cmNlZm9yZ2UubmV0CitT b3VyY2UwOiAgICAgICAgaHR0cDovL2Rvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvc29jaS8le25h bWV9LSV7dmVyc2lvbn0udGFyLmd6CisjIFRoYXQgcGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgdXBz dHJlYW0KK1BhdGNoMDogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0tZml4LWdjYzQzLWNvbXBh dGliaWxpdHkucGF0Y2gKKyMgVGhhdCBwYXRjaCB3aWxsIGJlIHN1Ym1pdHRlZCB1cHN0cmVhbQor UGF0Y2gxOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1maXgtZ251LWF1dG90b29scy1jb21w YXRpYmlsaXR5LnBhdGNoCitCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3Zl cnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKKworQnVpbGRSZXF1aXJlczog IGJvb3N0LWRldmVsID49IDEuMzQKK0J1aWxkUmVxdWlyZXM6ICBjcHB1bml0LWRldmVsID49IDEu MTAKK0J1aWxkUmVxdWlyZXM6ICBsaWJ0b29sCisjUmVxdWlyZXM6ICAgICAgIAorCislZGVzY3Jp cHRpb24KK1NPQ0kgaXMgYSBDKysgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgdGhhdCBwcm92aWRl cyB0aGUKK2lsbHVzaW9uIG9mIGVtYmVkZGluZyBTUUwgaW4gcmVndWxhciBDKysgY29kZSwgc3Rh eWluZyBlbnRpcmVseSB3aXRoaW4KK3RoZSBDKysgc3RhbmRhcmQuCisKKworJXs/d2l0aF9teXNx bDolcGFja2FnZSAgICAgICAgbXlzcWwKK1N1bW1hcnk6ICAgICAgICBNeVNRTCBiYWNrZW5kIGZv ciAle25hbWV9CitHcm91cDogICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwor UmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KK0J1aWxkUmVx dWlyZXM6ICBteXNxbC1kZXZlbCA+PSA1LjAKKworJWRlc2NyaXB0aW9uICAgIG15c3FsCitUaGlz IHBhY2thZ2UgY29udGFpbnMgdGhlIE15U1FMIGJhY2tlbmQgZm9yIFNPQ0ksIGkuZS4sCitkeW5h bWljIGxpYnJhcnkgc3BlY2lmaWMgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3Ugd291bGQg bGlrZSB0bwordXNlIFNPQ0kgaW4geW91ciBwcm9ncmFtcyB3aXRoIE15U1FMLCB5b3Ugd2lsbCBu ZWVkIHRvCitpbnN0YWxsICV7bmFtZX0tbXlzcWwufQorCislez93aXRoX3Bvc3RncmVzcWw6JXBh Y2thZ2UgICAgICAgIHBvc3RncmVzcWwKK1N1bW1hcnk6ICAgICAgICBQb3N0R3JlU1FMIGJhY2tl bmQgZm9yICV7bmFtZX0KK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFy aWVzCitSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorQnVp bGRSZXF1aXJlczogIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4xCisKKyVkZXNjcmlwdGlvbiAgICBw b3N0Z3Jlc3FsCitUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVTUUwgYmFja2VuZCBm b3IgU09DSSwgaS5lLiwKK2R5bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgUG9zdEdyZVNR TCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UKK3RvIHVzZSBTT0NJIGluIHlvdXIgcHJvZ3Jh bXMgd2l0aCBQb3N0R3JlU1FMLCB5b3Ugd2lsbCBuZWVkIHRvCitpbnN0YWxsICV7bmFtZX0tcG9z dGdyZXNxbC59CisKKyV7P3dpdGhfb3JhY2xlOiVwYWNrYWdlICAgICAgICBvcmFjbGUKK1N1bW1h cnk6ICAgICAgICBPcmFjbGUgYmFja2VuZCBmb3IgJXtuYW1lfQorR3JvdXA6ICAgICAgICAgIFN5 c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2 ZXJzaW9ufS0le3JlbGVhc2V9CisKKyVkZXNjcmlwdGlvbiAgICBvcmFjbGUKK1RoaXMgcGFja2Fn ZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yIFNPQ0ksIGkuZS4sCitkeW5hbWljIGxp YnJhcnkgc3BlY2lmaWMgdG8gdGhlIE9yYWNsZSBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2Ug dG8KK3VzZSBTT0NJIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBPcmFjbGUsIHlvdSB3aWxsIG5lZWQg dG8gaW5zdGFsbAorJXtuYW1lfS1vcmFjbGUufQorCisKKyVwYWNrYWdlICAgICAgICBkZXZlbAor U3VtbWFyeTogICAgICAgIEhlYWRlciBmaWxlcywgbGlicmFyaWVzIGFuZCBkZXZlbG9wbWVudCBk b2N1bWVudGF0aW9uIGZvciAle25hbWV9CitHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGli cmFyaWVzCitSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQor UmVxdWlyZXM6ICAgICAgIHBrZ2NvbmZpZworCislZGVzY3JpcHRpb24gICAgZGV2ZWwKK1RoaXMg cGFja2FnZSBjb250YWlucyB0aGUgaGVhZGVyIGZpbGVzLCBkeW5hbWljIGxpYnJhcmllcyBhbmQK K2RldmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0uIElmIHlvdSB3b3VsZCBsaWtl IHRvIGRldmVsb3AKK3Byb2dyYW1zIHVzaW5nICV7bmFtZX0sIHlvdSB3aWxsIG5lZWQgdG8gaW5z dGFsbCAle25hbWV9LWRldmVsLgorCislez93aXRoX215c3FsOiVwYWNrYWdlICAgICAgICBteXNx bC1kZXZlbAorU3VtbWFyeTogICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KK0dyb3Vw OiAgICAgICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKK1JlcXVpcmVzOiAgICAgICAle25hbWV9 LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CitSZXF1aXJlczogICAgICAgJXtuYW1lfS1t eXNxbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6ICAgICAgIG15c3FsLWRldmVs ID49IDUuMAorCislZGVzY3JpcHRpb24gICAgbXlzcWwtZGV2ZWwKK1RoaXMgcGFja2FnZSBjb250 YWlucyB0aGUgTXlTUUwgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCitmaWxlcyBh bmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lmaWMgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5 b3UKK3dvdWxkIGxpa2UgdG8gZGV2ZWxvcCBwcm9ncmFtcyB1c2luZyAle25hbWV9IGFuZCBNeVNR TCwgeW91IHdpbGwgbmVlZAordG8gaW5zdGFsbCAle25hbWV9LW15c3FsLn0KKworJXs/d2l0aF9w b3N0Z3Jlc3FsOiVwYWNrYWdlICAgICAgICBwb3N0Z3Jlc3FsLWRldmVsCitTdW1tYXJ5OiAgICAg ICAgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciAle25hbWV9CitHcm91cDogICAgICAgICAgRGV2ZWxv cG1lbnQvTGlicmFyaWVzCitSZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lv bn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tcG9zdGdyZXNxbCA9ICV7dmVy c2lvbn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6ICAgICAgIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4x CisKKyVkZXNjcmlwdGlvbiAgICBwb3N0Z3Jlc3FsLWRldmVsCitUaGlzIHBhY2thZ2UgY29udGFp bnMgdGhlIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCitmaWxl cyBhbmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lmaWMgdG8gdGhlIFBvc3RHcmVTUUwgZGF0YWJh c2UuIElmCit5b3Ugd291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0g YW5kIFBvc3RHcmVTUUwsIHlvdQord2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1wb3N0Z3Jl c3FsLn0KKworJXs/d2l0aF9vcmFjbGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZS1kZXZlbAorU3Vt bWFyeTogICAgICAgIE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9CitHcm91cDogICAgICAgICAg RGV2ZWxvcG1lbnQvTGlicmFyaWVzCitSZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7 dmVyc2lvbn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tb3JhY2xlID0gJXt2 ZXJzaW9ufS0le3JlbGVhc2V9CisKKyVkZXNjcmlwdGlvbiAgICBvcmFjbGUtZGV2ZWwKK1RoaXMg cGFja2FnZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhl YWRlcgorZmlsZXMgYW5kIGR5bmFtaWMgbGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBPcmFjbGUg ZGF0YWJhc2UuIElmIHlvdQord291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7 bmFtZX0gYW5kIE9yYWNsZSwgeW91IHdpbGwgbmVlZAordG8gaW5zdGFsbCAle25hbWV9LW9yYWNs ZS59CisKKworJXBhY2thZ2UgZG9jCitTdW1tYXJ5OiAgICAgICAgSFRNTCBkb2N1bWVudGF0aW9u IGZvciB0aGUgU09DSSBsaWJyYXJ5CitHcm91cDogICAgICAgICAgRG9jdW1lbnRhdGlvbgorQnVp bGRBcmNoOiAgICAgIG5vYXJjaAorQnVpbGRSZXF1aXJlczogIGRveHlnZW4sIHRleGxpdmUtbGF0 ZXgsIHRleGxpdmUtZHZpcHMsIGdob3N0c2NyaXB0CisKKyVkZXNjcmlwdGlvbiBkb2MKK1RoaXMg cGFja2FnZSBjb250YWlucyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgSFRNTCBmb3JtYXQgb2Yg dGhlIFNPQ0kKK2xpYnJhcnkuIFRoZSBkb2N1bWVudGF0aW9uIGlzIHRoZSBzYW1lIGFzIGF0IHRo ZSBTT0NJIHdlYiBwYWdlLgorCisKKyVwcmVwCislc2V0dXAgLXEKKyMgUmVuYW1lIGNoYW5nZS1s b2cgYW5kIGxpY2Vuc2UgZmlsZSwgc28gdGhhdCB0aGV5IGNvbXBseSB3aXRoCisjIHBhY2thZ2lu ZyBzdGFuZGFyZAorbXYgQ0hBTkdFUyBDaGFuZ2VMb2cKK212IExJQ0VOU0VfMV8wLnR4dCBDT1BZ SU5HCitybSAtZiBJTlNUQUxMCisjIEFwcGx5IHRoZSBnKysgNC4zIGNvbXBhdGliaWxpdHkgcGF0 Y2gKKyVwYXRjaDAgLXAxCisjIFJlbW92ZSBNYWNPU1ggY29tcGF0aWJpbGl0eSBidWlsZGluZyBm aWxlcworcm0gLWYgYnVpbGQvdW5peC8uXyoudGNsCitybSAtZiAuX01ha2VmaWxlIC5fY29uZmln dXJlCitybSAtZiBzb2NpL2NvcmUvLl8qLmggc29jaS9jb3JlLy5fKi5jcHAKK3JtIC1mIHNvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC8uXyouaAorcm0gLWYgZG9jLy5fKi5odG1sCisjIFJlbmFtZSB0 aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LCBzbyB0aGF0IHRoZSBmaWxlcyAoZS5nLCBoZWFkZXIK KyMgZmlsZXMpIGNhbiBiZSBleHBvcnRlZCBjb3JyZWN0bHkgaW50byB7X3N0YW5kYXJkX2Rpcn0v JXtuYW1lfQorbXYgc3JjICV7bmFtZX0KKyMgQXBwbHkgdGhlIEdOVSBBdXRvdG9vbHMgY29tcGF0 aWJpbGl0eSBwYXRjaAorJXBhdGNoMSAtcDEKKyMgRml4IHNvbWUgcGVybWlzc2lvbnMgYW5kIGZv cm1hdHMKK2ZpbmQgLi9kb2MgLXR5cGUgZiAtcGVybSA3NTUgLWV4ZWMgY2htb2QgNjQ0IHt9IFw7 CitjaG1vZCAteCBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisjIGZpbmQg LiAtdHlwZSBmIC1uYW1lICcqLltoY11wcCcgLWV4ZWMgY2htb2QgNjQ0IHt9IFw7CisKKworJWJ1 aWxkCislY29uZmlndXJlIC0tZGlzYWJsZS1zdGF0aWMgXAorJXs/d2l0aF9teXNxbDotLWVuYWJs ZS1iYWNrZW5kLW15c3FsfSBcCislez93aXRoX3Bvc3RncmVzcWw6LS1lbmFibGUtYmFja2VuZC1w b3N0Z3Jlc3FsfSBcCislez93aXRoX29yYWNsZTotLWVuYWJsZS1iYWNrZW5kLW9yYWNsZSAlez9f d2l0aF9vcmFjbGVfaW5jZGlyfSAlez9fd2l0aF9vcmFjbGVfbGliZGlyfX0KK21ha2UgJXs/X3Nt cF9tZmxhZ3N9CisKKyVpbnN0YWxsCitybSAtcmYgJFJQTV9CVUlMRF9ST09UCittYWtlIGluc3Rh bGwgREVTVERJUj0kUlBNX0JVSUxEX1JPT1QKKyMjCisjICBSZW1vdmUgdW5wYWNrYWdlZCBmaWxl cyBmcm9tIHRoZSBidWlsZHJvb3QKK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX0vY29uZmlnLmgKK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2xpYmRpcn0vbGliJXtu YW1lfV8qLmxhCisjIworIyMKKyMgIER1cGxpY2F0ZSB0aGUgaGVhZGVyIGZpbGVzLCBzbyBhcyB0 byBrZWVwIHRoZSBjb21wYXRpYmlsaXR5LCBmb3IKKyMgIGRldmVsb3BlcnMgdXNpbmcgdGhlIFNP Q0kgbGlicmFyeSwgd2l0aCB0aGUgbm9uLXBhY2thZ2VkIHZlcnNpb24gb2YKKyMgIHRoYXQgbGli cmFyeS4KK2ZvciBoZWFkZXJfZmlsZSBpbiAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8l e25hbWV9L2NvcmUvKi5oOyBkbworICBjcCAke2hlYWRlcl9maWxlfSAkUlBNX0JVSUxEX1JPT1Ql e19pbmNsdWRlZGlyfS8le25hbWV9Citkb25lCislez93aXRoX215c3FsOmNwICRSUE1fQlVJTERf Uk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oICRS UE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19Cislez93aXRoX3Bvc3RncmVzcWw6 Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvY2ktcG9zdGdyZXNxbC5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFt ZX19Cislez93aXRoX29yYWNsZTpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25h bWV9L2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1 ZGVkaXJ9LyV7bmFtZX19CisKKworJWNsZWFuCitybSAtcmYgJFJQTV9CVUlMRF9ST09UCisKKyVw b3N0IC1wIC9zYmluL2xkY29uZmlnCisKKyVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKKworJXs/ d2l0aF9teXNxbDolcG9zdCBteXNxbCAtcCAvc2Jpbi9sZGNvbmZpZworCislcG9zdHVuIG15c3Fs IC1wIC9zYmluL2xkY29uZmlnfQorCislez93aXRoX3Bvc3RncmVzcWw6JXBvc3QgcG9zdGdyZXNx bCAtcCAvc2Jpbi9sZGNvbmZpZworCislcG9zdHVuIHBvc3RncmVzcWwgLXAgL3NiaW4vbGRjb25m aWd9CisKKyV7P3dpdGhfb3JhY2xlOiVwb3N0IG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZworCisl cG9zdHVuIG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZ30KKworCisKKyVmaWxlcworJWRlZmF0dHIo LSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURN RQorJXtfbGliZGlyfS9saWIle25hbWV9X2NvcmUuc28uKgorCislez93aXRoX215c3FsOiVmaWxl cyBteXNxbAorJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cg Q09QWUlORyBORVdTIFJFQURNRQorJXtfbGliZGlyfS9saWIle25hbWV9X215c3FsLnNvLip9CisK KyV7P3dpdGhfcG9zdGdyZXNxbDolZmlsZXMgcG9zdGdyZXNxbAorJWRlZmF0dHIoLSxyb290LHJv b3QsLSkKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorJXtfbGli ZGlyfS9saWIle25hbWV9X3Bvc3RncmVzcWwuc28uKn0KKworJXs/d2l0aF9vcmFjbGU6JWZpbGVz IG9yYWNsZQorJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cg Q09QWUlORyBORVdTIFJFQURNRQorJXtfbGliZGlyfS9saWIle25hbWV9X29yYWNsZS5zby4qfQor CisKKyVmaWxlcyBkZXZlbAorJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9SUyBD aGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9 Cisle19pbmNsdWRlZGlyfS8le25hbWV9LyouaAorJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3Jl Cisle19iaW5kaXJ9LyV7bmFtZX0tY29uZmlnCisle19saWJkaXJ9L2xpYiV7bmFtZX1fY29yZS5z bworJXtfbGliZGlyfS9wa2djb25maWcvJXtuYW1lfS5wYworJXtfZGF0YWRpcn0vYWNsb2NhbC8l e25hbWV9Lm00Cisle19tYW5kaXJ9L21hbjEvJXtuYW1lfS1jb25maWcuMS4qCisKKyV7P3dpdGhf bXlzcWw6JWZpbGVzIG15c3FsLWRldmVsCislZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorJWRvYyBB VVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCislZGlyICV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX0KKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvbXlzcWwKKyV7X2xpYmRp cn0vbGliJXtuYW1lfV9teXNxbC5zb30KKworJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0 Z3Jlc3FsLWRldmVsCislZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorJWRvYyBBVVRIT1JTIENoYW5n ZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCislZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKyV7 X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvcG9zdGdyZXNxbAorJXtfbGliZGlyfS9saWIl e25hbWV9X3Bvc3RncmVzcWwuc299CisKKyV7P3dpdGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUtZGV2 ZWwKKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCislZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJ TkcgTkVXUyBSRUFETUUKKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorJXtfaW5jbHVkZWRp cn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUKKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFjbGUu c299CisKKworJWZpbGVzIGRvYworJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9S UyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRSBkb2MKKworCislY2hhbmdlbG9nCisqIFNh dCBNYXkgMDIgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4g My4wLjAtNgorLSBSZW1vdmVkIHRoZSB1bnVzZWQgYnVpbGQgY29uZGl0aW9uYWxzCisKKyogVHVl IEFwciAyOCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAz LjAuMC01CistIFNpbXBsaWZpZWQgdGhlIGNvbmRpdGlvbmFsIGJ1aWxkIHJ1bGVzIHdpdGhpbiB0 aGUgUlBNIHNwZWNpZmljYXRpb24gZmlsZQorCisqIFNhdCBBcHIgMTggMjAwOSBEZW5pcyBBcm5h dWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNAorLSBGaXhlZCBhbiBpc3N1 ZSBhYm91dCBPUFRGTEFHUyBjb21waWxhdGlvbgorCisqIFR1ZSBBcHIgMTQgMjAwOSBEZW5pcyBB cm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMworLSBSZXN0YXJ0ZWQg ZnJvbSBwcmlzdGluZSB2ZXJzaW9uIDMuMC4wIG9mIHVwc3RyZWFtIChTT0NJKSBwcm9qZWN0CisK KyogU2F0IEFwciAgNCAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgu b3JnPiAzLjAuMC0yCistIFNwZWNpZmljIFJQTSBmb3IgZWFjaCBiYWNrZW5kCisKKyogRnJpIE1h ciAyNyAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAu MC0xCistIEZpcnN0IFJQTSByZWxlYXNlCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMK aW5kZXggZTY5ZGUyOS4uMjkxYzU4NiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2Vz CkBAIC0wLDAgKzEgQEAKKzFiZjdkZDI0NDc2NGU1MzU1N2MxZWNjMDFmZGZhYzk2ICBzb2NpLTMu MC4wLnRhci5nego=