From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 30167 invoked from network); 17 Sep 2020 21:13:37 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Sep 2020 21:13:37 -0000 Content-Type: multipart/mixed; boundary="===============4697709555141492826==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_gnome_3=2E38?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 17 Sep 2020 23:13:34 +0200 List-Id: Message-ID: <20200917211334.I9IKlOBiPsLg5YS1G_4w33aalO3ZLDkMc6ydvLjpQSU@z> GitHub notification mails are now in MIME to allow UTF8. --===============4697709555141492826== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBnbm9tZTMzOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMjQyNjAKCmdub21lIDMuMzgKU2luY2UgaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzIxMzgyIGlzIHRha2luZyBhIHdoaWxlIGFuZCBn bm9tZSAzLjM4IGlzIGp1c3QgYXJvdW5kIHRoZSBjb3JuZXIsIEkgcHJlcGFyZWQgYSBwcmVsaW1p bmFyeSBQUiBmb3Igbm93IGNvbnRhaW5pbmcgdGhlIDMuMzcgcHJlcmVsZWFzZSBzdHVmZiAtIEkg ZGlkIHRoaXMgbWFpbmx5IGJlY2F1c2UgSSBuZWVkZWQgbW9yZSAicmVhZHkiIHdheWxhbmQgc3Vw cG9ydC4gVGVzdGVkIG9uIGFhcmNoNjQuDQoNCiMgVE9ETw0KDQotIFt4XSBjbGVhbiBpdCB1cA0K LSBbeF0gYmV0dGVyIHRlc3RpbmcsIG1ha2Ugc3VyZSB0ZXN0c3VpdGUgcGFzc2VzDQotIFt4XSBp bXBvcnQgdGhlIHVzZWZ1bCBiaXRzIGZyb20gIzIxMzgyLCBvciByZWJhc2UgaWYgaXQgZ2V0cyBt ZXJnZWQNCi0gWyBdIG1ha2Ugc3VyZSBjcm9zc2J1aWxkcyB3b3JrDQotIFt4XSB0ZXN0IG9uIG1v cmUgcGxhdGZvcm1zDQotIFt4XSBmaXggdGhlIG1ldGFwYWNrYWdlcyAodGhleSBoYXZlbid0IGJl ZW4gdG91Y2hlZCwgcG9zc2libHkgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzIyOTM2KQ0KLSBbIF0gfn5kcm9wIHRoZSBgdmFsYWAgb3B0aW9uIGlu IHRoZSByZXN0IG9mIHRoZSBwYWNrYWdlc35+IHByb2JhYmx5IGdvbm5hIGRvIHRoYXQgb25jZSB0 aGlzIFBSIGlzIG1lcmdlZA0KDQojIFN0YWJsZSB1cGRhdGVzDQoNCi0gW3hdIG1vempzNzggLT4g NzguMS4wICoqKG5ldykqKg0KLSBbeF0geWVscC14c2wgLT4gMy4zOC4wDQotIFt4XSB5ZWxwLXRv b2xzIC0+IDMuMzguMA0KLSBbeF0geWVscCAtPiAzLjM4LjANCi0gW3hdIHZhbGEgLT4gMC41MC4w DQotIFt4XSB2YWxhZG9jIC0+IDAuNTAuMCANCi0gW3hdIHZhbGFiaW5kIC0+IChyZXZidW1wKSAN Ci0gW3hdIGRldmhlbHAgLT4gMy4zOC4wDQotIFt4XSBnZGwgLT4gMy4zNC4wDQotIFt4XSBsaWJz b3VwIC0+IDIuNzIuMA0KLSBbeF0gZ3JpbG8gLT4gMC4zLjEzDQotIFt4XSBncmlsby1wbHVnaW5z IC0+IDAuMy4xMg0KLSBbeF0gZ3Rrc291cmNldmlldzQgLT4gNC44LjANCi0gW3hdIHRlcGwgLT4g NS4wLjANCi0gW3hdIGdsYWRlMyAtPiAzLjM4LjANCi0gW3hdIGxpYmhhbmR5IC0+IChyZXZidW1w KQ0KLSBbeF0gbGliaGFuZHkxIC0+IDEuMC4wDQotIFt4XSBsaWJ4ZmNlNHVpIC0+IChyZXZidW1w KQ0KLSBbeF0gbGliZGF6emxlIC0+IDMuMzguMA0KLSBbeF0gYW5qdXRhIC0+IChyZXZidW1wKQ0K LSBbeF0gc3lzcHJvZiAtPiAzLjM4LjANCi0gW3hdIHRyYWNrZXIgLT4gMi4zLjYNCi0gW3hdIHRy YWNrZXItbWluZXJzIC0+IDIuMy41DQotIFt4XSB0cmFja2VyMyAtPiAzLjAuMCAqKihuZXcpKioN Ci0gW3hdIHRyYWNrZXIzLW1pbmVycyAtPiAzLjAuMCAqKihuZXcpKioNCi0gW3hdIGJpamliZW4g LT4gMy4zNi4zDQotIFt4XSBncmFwaGVuZSAtPiAxLjEwLjINCi0gW3hdIGFtdGsgLT4gNS4yLjAN Ci0gW3hdIGlvLmVsZW1lbnRhcnkuY29kZSAtPiAocmV2YnVtcCkNCi0gW3hdIHBob2RhdiAtPiAy LjUNCi0gW3hdIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgLT4gMy4zOC4wDQotIFt4XSBnbGli LW5ldHdvcmtpbmcgLT4gMi42Ni4wDQotIFt4XSBhdC1zcGkyLWNvcmUgLT4gMi4zOC4wDQotIFt4 XSBhdC1zcGkyLWF0ayAtPiAyLjM4LjANCi0gW3hdIGxpYmd3ZWF0aGVyIC0+IDMuMzYuMQ0KLSBb eF0gZ25vbWUtbWVudXMgLT4gMy4zNi4wDQotIFt4XSBnbm9tZS1kZXNrdG9wIC0+IDMuMzguMA0K LSBbeF0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uIC0+IDMuMzguMA0KLSBbeF0gbXV0dGVyIC0+IDMu MzguMA0KLSBbeF0gY2hlZXNlIC0+IDMuMzguMA0KLSBbeF0gZXZvbHV0aW9uLWRhdGEtc2VydmVy IC0+IDMuMzguMA0KLSBbeF0gZm9sa3MgLT4gMC4xNC4wDQotIFt4XSBnbm9tZS1vbmxpbmUtYWNj b3VudHMgLT4gMy4zNy45MA0KLSBbeF0gZ3ZmcyAtPiAxLjQ2LjANCi0gW3hdIGdub21lLWNvbnRy b2wtY2VudGVyIC0+IDMuMzguMA0KLSBbeF0gZGNvbmYtZWRpdG9yIC0+IDMuMzguMA0KLSBbeF0g Z2pzIC0+IDEuNjYuMA0KLSBbeF0gZ25vbWUtc2hlbGwgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1z aGVsbC1leHRlbnNpb25zIC0+IDMuMzguMA0KLSBbeF0gZ2RtIC0+IDMuMzguMA0KLSBbeF0gZ25v bWUtc2Vzc2lvbiAtPiAzLjM4LjANCi0gW3hdIGdub21lLWluaXRpYWwtc2V0dXAgLT4gMy4zOC4w DQotIFt4XSB4ZGctZGVza3RvcC1wb3J0YWwtZ3RrIC0+IDEuOC4wDQotIFt4XSBuYXV0aWx1cyAt PiAzLjM4LjANCi0gW3hdIGdub21lLW1hcHMgLT4gMy4zOC4wDQotIFt4XSBldm9sdXRpb24gLT4g My4zOC4wDQotIFt4XSBldm9sdXRpb24tZXdzIC0+IDMuMzguMA0KLSBbeF0gcHl0aG9uMy1hdHNw aSAtPiAyLjM4LjANCi0gW3hdIHB5dGhvbi1hdHNwaSAtPiAyLjM4LjANCi0gW3hdIG9yY2EgLT4g My4zOC4wDQotIFt4XSBnbm9tZS13ZWF0aGVyIC0+IChyZXZidW1wKQ0KLSBbeF0gdnRlMyAtPiAw LjYyLjANCi0gW3hdIGdub21lLXRlcm1pbmFsIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtZ2V0dGlu Zy1zdGFydGVkLWRvY3MgLT4gMy4zNi4yDQotIFt4XSBnbm9tZS11c2VyLWRvY3MgLT4gMy4zOC4w DQotIFt4XSBnbm9tZS1lcHViLXRodW1ibmFpbGVyIC0+IDEuNg0KLSBbeF0gZ25vbWUtYm9va3Mg LT4gKHJldmJ1bXApDQotIFt4XSBnbm9tZS1jaGFyYWN0ZXJzIC0+IChyZXZidW1wKQ0KLSBbeF0g Z25vbWUtZG9jdW1lbnRzIC0+IChyZXZidW1wKQ0KLSBbeF0gZ25vbWUtZm9udC12aWV3ZXIgLT4g KHJldmJ1bXApDQotIFt4XSB0b3RlbSAtPiAzLjM4LjANCi0gW3hdIGdub21lLXNjcmVlbnNhdmVy IC0+IChyZXZidW1wICsgYnVpbGQgZml4KQ0KLSBbeF0gZ25vbWUtY2xvY2tzIC0+IDMuMzguMA0K LSBbeF0gZXBpcGhhbnkgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1jb250YWN0cyAtPiAzLjM3LjIN Ci0gW3hdIGdub21lLXBob3RvcyAtPiAzLjM3LjkxLjENCi0gW3hdIGVvZyAtPiAzLjM4LjANCi0g W3hdIGV2aW5jZSAtPiAzLjM4LjANCi0gW3hdIGZpbGUtcm9sbGVyIC0+IDMuMzguMA0KLSBbeF0g Z25vbWUtY2FsZW5kYXIgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1tdXNpYyAtPiAzLjM4LjANCi0g W3hdIGdlZGl0IC0+IDMuMzguMA0KLSBbeF0gZ2VkaXQtcGx1Z2lucyAtPiAzLjM4LjANCi0gW3hd IGdub21lLWxhdGV4IC0+IDMuMzguMA0KLSBbeF0gYmFvYmFiIC0+IDMuMzguMA0KLSBbeF0gZ25v bWUtYm94ZXMgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1jYWxjdWxhdG9yIC0+IDMuMzguMA0KLSBb eF0gZ25vbWUtZGlzay11dGlsaXR5IC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtc2NyZWVuc2hvdCAt PiAzLjM4LjANCi0gW3hdIGdub21lLXN5c3RlbS1tb25pdG9yIC0+IDMuMzguMA0KLSBbeF0gYWR3 YWl0YS1pY29uLXRoZW1lIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtYmFja2dyb3VuZHMgLT4gMy4z OC4wDQotIFt4XSBzaW1wbGUtc2NhbiAtPiAzLjM4LjANCi0gW3hdIHJ5Z2VsIC0+IDAuNDAuMA0K LSBbeF0gZ25vbWUtYnVpbGRlciAtPiAzLjM4LjANCi0gW3hdIHJldHJvLWd0ayAtPiAxLjAuMA0K LSBbeF0gZ25vbWUtZ2FtZXMgLT4gMy4zOC4wDQotIFt4XSBidWRnaWUtZGVza3RvcCAtPiAocmVi dWlsZCkNCg0KIyBPdGhlciB1cGRhdGVzIChzdGlsbCBUT0RPKQ0KDQotIFt4XSBnbm9tZS1wYW5l bCAtPiAzLjM3LjEgKnVuc3RhYmxlKg0KLSBbeF0gbWV0YWNpdHkgLT4gMy4zNy4xICp1bnN0YWJs ZSoNCi0gW3hdIGdub21lLWZsYXNoYmFjayAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gcG9s YXJpIC0+IDMuMzcuMyAqdW5zdGFibGUqDQoNCiMjIE1lcmdlZA0KDQotIFt4XSBsaWJzaWdjKysz IC0+IDMuMC4zIChuZXcpDQotIFt4XSBtbS1jb21tb24gLT4gMS4wLjENCi0gW3hdIGdsaWJtbSAt PiAyLjY0LjINCi0gW3hdIHBhbmdvbW0gLT4gMi40Mi4xDQotIFt4XSBsaWJub3RpZnkgLT4gMC43 LjkNCi0gW3hdIGF0ayAtPiAyLjM2LjANCi0gW3hdIGd0ayszIC0+IDMuMjQuMjINCi0gW3hdIGxp YnBvcnRhbCAtPiAwLjMgKG5ldykNCi0gW3hdIGNvZ2wgLT4gMS4yMi4yOA0KLSBbeF0gZ2VvY29k ZS1nbGliIC0+IDMuMjYuMg0KLSBbeF0gZ2ZiZ3JhcGggLT4gMC4yLjQNCi0gW3hdIGxpYmdzZiAt PiAxLjE0LjQ3DQotIFt4XSBsaWJzZWNyZXQgLT4gMC4yMC4zDQotIFt4XSBsaWJjaGFtcGxhaW4g LT4gMC4xMi4yMA0KLSBbeF0gZ29tIC0+IDAuNA0KLSBbeF0gZ3NzZHAgLT4gMS4yLjMNCi0gW3hd IGd0ay12bmMgLT4gMS4wLjAgKGRyb3BzIHVudXNlZCBndGsyIHN1cHBvcnQpDQotIFt4XSBndXBu cCAtPiAxLjIuNA0KLSBbeF0gZ25vbWUtdmlkZW8tZWZmZWN0cyAtPiAwLjUuMA0KLSBbeF0gZ2xp YiAtPiAyLjY2LjANCi0gW3hdIHdlYmtpdDJndGsgLT4gMi4zMC4wCgpBIHBhdGNoIGZpbGUgZnJv bSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjQyNjAu cGF0Y2ggaXMgYXR0YWNoZWQ= --===============4697709555141492826== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSA5NmFjMGE4ZWE1NmExZGY0ZDhhNWUwNTBlYjQ2ZmRiMjNjMDg0MTFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjoyMzowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAx LzEwM10gTmV3IHBhY2thZ2U6IG1vempzNzgtNzguMi4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyY3BrZ3MvbW96anM3OC1kZXZl bCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi8wMDEtc2lsZW5jZS1zYW5kYm94 LXZpb2xhdGlvbnMucGF0Y2ggICAgICB8IDI3ICsrKysrKysKIHNyY3BrZ3MvbW96anM3OC9wYXRj aGVzLzAwMi1maXgtc29uYW1lLnBhdGNoICB8IDIyICsrKysrKwogLi4uL21vempzNzgvcGF0Y2hl cy8wMDMtZml4LXdhc20tYXJtLnBhdGNoICAgIHwgMTYgKysrKwogLi4uL21vempzNzgvcGF0Y2hl cy8wMDQtZml4LW11c2wtYnVpbGQucGF0Y2ggIHwgMTcgKysrKysKIC4uLi8wMDUtc3BpZGVybW9u a2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoICAgICB8IDEyICsrKwogLi4uLzAwNi1tb3pqczc4LnBj LWhvbm9yLXN5c3Jvb3QucGF0Y2ggICAgICAgIHwgMTAgKysrCiAuLi4vcGF0Y2hlcy8wMDctZml4 LW1pcHMtc2dpZGVmc19oLnBhdGNoICAgICAgfCAxMSArKysKIHNyY3BrZ3MvbW96anM3OC9wYXRj aGVzL2Rpc2FibGUtanNsaW50LnBhdGNoICB8IDE3ICsrKysrCiAuLi40N2M5NDE2ZjllZWJkZTYz NmUyMWQ3OTRkMjVkMWJlODc5MWQucGF0Y2ggfCAzNyArKysrKysrKysrCiBzcmNwa2dzL21vempz NzgvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCA3MyArKysrKysrKysrKysrKysrKysr CiBzcmNwa2dzL21vempzNzgvdXBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiAx MyBmaWxlcyBjaGFuZ2VkLCAyNDUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNy Y3BrZ3MvbW96anM3OC1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9w YXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9ucy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgt bXVzbC1idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRj aGVzLzAwNS1zcGlkZXJtb25rZXktY2hlY2tzLWRpc2FibGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDYtbW96anM3OC5wYy1ob25vci1zeXNyb290 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZp eC1taXBzLXNnaWRlZnNfaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3 OC9wYXRjaGVzL2Rpc2FibGUtanNsaW50LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9tb3pqczc4L3BhdGNoZXMvZmQ2ODQ3Yzk0MTZmOWVlYmRlNjM2ZTIxZDc5NGQyNWQxYmU4Nzkx ZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC91cGRhdGUKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBmZWNmMTBhZjA5Yi4uOGQzNjJlMTg0OTYg MTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzUzOCw2 ICszNTM4LDcgQEAgbGliS0Y1U3luZGljYXRpb24uc28uNSBzeW5kaWNhdGlvbi01LjUwLjBfMQog bGlibHFyLTEuc28uMCBsaWJscXItMC40LjJfMQogbGlibW96anMtNjAuc28uMCBtb3pqczYwLTYw LjAuMl8xCiBsaWJtb3pqcy02OC5zby4wIG1vempzNjgtNjguOC4wXzEKK2xpYm1vempzLTc4LnNv LjAgbW96anM3OC03OC4xLjBfMQogbGliZWJ1cjEyOC5zby4xIGxpYmVidXIxMjgtMS4yLjRfMQog bGliZ3Rrc291cmNldmlldy00LnNvLjAgZ3Rrc291cmNldmlldzQtNC4wLjJfMQogbGlid3hfZ3Rr M3VfcHJvcGdyaWQtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9tb3pqczc4LWRldmVsIGIvc3JjcGtncy9tb3pqczc4LWRldmVsCm5ldyBmaWxlIG1v ZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi43NzEzNTk5MzU2ZgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbW96anM3OC1kZXZlbApAQCAtMCwwICsxIEBACittb3pqczc4ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMv MDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3Bh dGNoZXMvMDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzAxMTk0YjY0NgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9ucy5w YXRjaApAQCAtMCwwICsxLDI3IEBACisiQ2FycmllZCBvdmVyICsgdXBkYXRlZCBmcm9tIG1vempz NjgiCitVcHN0cmVhbTogbm8KK0Zyb20gOWFkMTA1NjllMTFhMmZiOTYzNzcxODhmODk1YmM2NmFi Y2M5NTExZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmMtQW50b2luZSBQZXJl bm5vdSA8TWFyYy1BbnRvaW5lQFBlcmVubm91LmNvbT4KK0RhdGU6IFdlZCwgNSBTZXAgMjAxOCAx NTowNToyNCArMDIwMAorU3ViamVjdDogW1BBVENIXSBzaWxlbmNlIHNhbmRib3ggdmlvbGF0aW9u cworCitTaWduZWQtb2ZmLWJ5OiBNYXJjLUFudG9pbmUgUGVyZW5ub3UgPE1hcmMtQW50b2luZUBQ ZXJlbm5vdS5jb20+CistLS0KKyBweXRob24vbW96YnVpbGQvbW96YnVpbGQvZnJvbnRlbmQvZW1p dHRlci5weSB8IDUgLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBkZWxldGlvbnMoLSkKKworLS0t IGEvcHl0aG9uL21vemJ1aWxkL21vemJ1aWxkL2Zyb250ZW5kL2VtaXR0ZXIucHkKKysrKyBiL3B5 dGhvbi9tb3pidWlsZC9tb3pidWlsZC9mcm9udGVuZC9lbWl0dGVyLnB5CitAQCAtMTIzOSwxMiAr MTIzOSw2IEBAIGNsYXNzIFRyZWVNZXRhZGF0YUVtaXR0ZXIoTG9nZ2luZ01peGluKToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzIGEgZmlsZW5h bWUsIGJ1dCBhIGRpcmVjdG9yeSBpcyByZXF1aXJlZDogJXMgJworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKHJlc29sdmVkIHRvICVzKScgJSAobG9j YWxfaW5jbHVkZSwgZnVsbF9wYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGV4dCkKKy0gICAgICAgICAgICBpZiAoZnVsbF9wYXRoID09 IGNvbnRleHQuY29uZmlnLnRvcHNyY2RpciBvcgorLSAgICAgICAgICAgICAgICAgICAgZnVsbF9w YXRoID09IGNvbnRleHQuY29uZmlnLnRvcG9iamRpcik6CistICAgICAgICAgICAgICAgIHJhaXNl IFNhbmRib3hWYWxpZGF0aW9uRXJyb3IoCistICAgICAgICAgICAgICAgICAgICAnUGF0aCBzcGVj aWZpZWQgaW4gTE9DQUxfSU5DTFVERVMgJworLSAgICAgICAgICAgICAgICAgICAgJyglcykgcmVz b2x2ZXMgdG8gdGhlIHRvcHNyY2RpciBvciB0b3BvYmpkaXIgKCVzKSwgd2hpY2ggaXMgJworLSAg ICAgICAgICAgICAgICAgICAgJ25vdCBhbGxvd2VkJyAlIChsb2NhbF9pbmNsdWRlLCBmdWxsX3Bh dGgpLCBjb250ZXh0KQorICAgICAgICAgICAgIGluY2x1ZGVfb2JqID0gTG9jYWxJbmNsdWRlKGNv bnRleHQsIGxvY2FsX2luY2x1ZGUpCisgICAgICAgICAgICAgbG9jYWxfaW5jbHVkZXMuYXBwZW5k KGluY2x1ZGVfb2JqLnBhdGguZnVsbF9wYXRoKQorICAgICAgICAgICAgIHlpZWxkIGluY2x1ZGVf b2JqCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDItZml4LXNvbmFtZS5w YXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYzU0MzEwOTM5OAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCkBA IC0wLDAgKzEsMjIgQEAKKyJDYXJyaWVkIG92ZXIgZnJvbSBtb3pqczY4IgorLS0tIGEvanMvc3Jj L2J1aWxkL01ha2VmaWxlLmluCisrKysgYi9qcy9zcmMvYnVpbGQvTWFrZWZpbGUuaW4KK0BAIC03 OCw2ICs3OCw4IEBACisgZW5kaWYKKyBpZm5lcSAoLCQoU0hBUkVEX0xJQlJBUlkpKQorIAkkKFNZ U0lOU1RBTEwpICQoU0hBUkVEX0xJQlJBUlkpICQoREVTVERJUikkKGxpYmRpcikKKysJbXYgLWYg JChERVNURElSKSQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZKSAkKERFU1RESVIpJChsaWJkaXIp LyQoU0hBUkVEX0xJQlJBUlkpLjAKKysJbG4gLXMgJChTSEFSRURfTElCUkFSWSkuMCAkKERFU1RE SVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpCisgaWZlcSAoJChPU19BUkNIKSxEYXJ3aW4p CisgCWluc3RhbGxfbmFtZV90b29sIC1pZCAkKGFic3BhdGggJChsaWJkaXIpLyQoU0hBUkVEX0xJ QlJBUlkpKSAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpCisgZW5kaWYKKy0t LSBhL2pzL3NyYy9idWlsZC9tb3ouYnVpbGQKKysrKyBiL2pzL3NyYy9idWlsZC9tb3ouYnVpbGQK K0BAIC0yNSw2ICsyNSw3IEBACisgaWYgQ09ORklHWydKU19TSEFSRURfTElCUkFSWSddOgorICAg ICBHZWNrb1NoYXJlZExpYnJhcnkoJ2pzJywgbGlua2FnZT1Ob25lKQorICAgICBTSEFSRURfTElC UkFSWV9OQU1FID0gQ09ORklHWydKU19MSUJSQVJZX05BTUUnXQorKyAgICBMREZMQUdTICs9IFsn LVdsLC1zb25hbWUsbGlie30uc28uMCcuZm9ybWF0KFNIQVJFRF9MSUJSQVJZX05BTUUpXQorIAor ICAgICAjIEVuc3VyZSBzeW1ib2wgdmVyc2lvbnMgb2Ygc2hhcmVkIGxpYnJhcnkgb24gTGludXgg ZG8gbm90IGNvbmZsaWN0CisgICAgICMgd2l0aCB0aG9zZSBpbiBsaWJ4dWwuCmRpZmYgLS1naXQg YS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNoIGIvc3JjcGtn cy9tb3pqczc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODkxYTc2NTIwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNoCkBAIC0wLDAgKzEs MTYgQEAKKyJUYWtlbiBmcm9tIGZpcmVmb3gtZXNyIgorLS0tIGEvanMvc3JjL3dhc20vV2FzbVNp Z25hbEhhbmRsZXJzLmNwcAorKysrIGIvanMvc3JjL3dhc20vV2FzbVNpZ25hbEhhbmRsZXJzLmNw cAorQEAgLTI0Myw5ICsyNDMsOSBAQAorIC8vIElmIHlvdSBydW4gaW50byBjb21waWxlIHByb2Js ZW1zIG9uIGEgdGllci0zIHBsYXRmb3JtLCB5b3UgY2FuIGRpc2FibGUgdGhlCisgLy8gZW11bGF0 aW9uIGhlcmUuCisgCistI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fYXJtX18p CistIyAgZGVmaW5lIFdBU01fRU1VTEFURV9BUk1fVU5BTElHTkVEX0ZQX0FDQ0VTUworLSNlbmRp ZgorKy8vICNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX2FybV9fKQorKy8vICMg IGRlZmluZSBXQVNNX0VNVUxBVEVfQVJNX1VOQUxJR05FRF9GUF9BQ0NFU1MKKysvLyAjZW5kaWYK KyAKKyAjaWZkZWYgV0FTTV9FTVVMQVRFX0FSTV9VTkFMSUdORURfRlBfQUNDRVNTCisgIyAgaW5j bHVkZSA8c3lzL3VzZXIuaD4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAw NC1maXgtbXVzbC1idWlsZC5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgt bXVzbC1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u ZjYyOWZhMmFjMzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8w MDQtZml4LW11c2wtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorIkNhcnJpZWQgb3ZlciBm cm9tIG1vempzNjAiCitVcHN0cmVhbTogTm8KK1JlYXNvbjogbW96anM2OCBtaXNjb21waWxlcyBv biBtdXNsIGlmIGJ1aWx0IHdpdGggSEFWRV9USFJFQURfVExTX0tFWVdPUkQ6CitodHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3Vlcy8yNTk4CitkaWZmIC0tZ2l0 IGEvanMvc3JjL29sZC1jb25maWd1cmUuaW4gYi9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbgorLS0t IGEvanMvc3JjL29sZC1jb25maWd1cmUuaW4KKysrKyBiL2pzL3NyYy9vbGQtY29uZmlndXJlLmlu CitAQCAtMTI3Miw2ICsxMjcyLDkgQEAKKyAgICAgKi1hbmRyb2lkKnwqLWxpbnV4YW5kcm9pZCop CisgICAgICAgOgorICAgICAgIDs7CisrICAgICotbXVzbCopCisrICAgICAgOgorKyAgICAgIDs7 CisgICAgICopCisgICAgICAgQUNfREVGSU5FKEhBVkVfVEhSRUFEX1RMU19LRVlXT1JEKQorICAg ICAgIDs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9u a2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA1LXNw aWRlcm1vbmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZjZlYWJhYmQxZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21v empzNzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoCkBAIC0w LDAgKzEsMTIgQEAKK1NvdXJjZTpGZWRvcmEKK1JlYXNvbjogQ2hlY2tzIGZhaWxlZChUb2RvOiBG aWd1cmUgb3V0IHdoeSkKKysrKyBhL2NvbmZpZy9ydW5fc3BpZGVybW9ua2V5X2NoZWNrcy5weQor KysrIGIvY29uZmlnL3J1bl9zcGlkZXJtb25rZXlfY2hlY2tzLnB5CitAQCAtMTEsNSArMTEsNSBA QAorICAgICBmb3Igc2NyaXB0IGluIHNjcmlwdHM6CisgICAgICAgICByZXRjb2RlID0gc3VicHJv Y2Vzcy5jYWxsKAorICAgICAgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgc2NyaXB0XSwgY3dkPWJ1 aWxkY29uZmlnLnRvcHNyY2RpcikKKy0gICAgICAgIGlmIHJldGNvZGUgIT0gMDoKKy0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oc2NyaXB0ICsgIiBmYWlsZWQiKQorKyAgICAgICAgI2lmIHJl dGNvZGUgIT0gMDoKKysgICAgICAgICMgICAgcmFpc2UgRXhjZXB0aW9uKHNjcmlwdCArICIgZmFp bGVkIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4LnBj LWhvbm9yLXN5c3Jvb3QucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDYtbW96anM3 OC5wYy1ob25vci1zeXNyb290LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi43MTIxNGI4ZWNjZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9w YXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2gKQEAgLTAsMCArMSwxMCBA QAorIkNhcnJpZWQgb3ZlciBmcm9tIG1vempzNjAiCitSZWFzb246IEZpeCB0aGUgJy1pbmNsdWRl JyBkaXJlY3RpdmUsIG90aGVyd2lzZSBpdCB0cmllcyB0byB1c2UgdGhlIGhvc3QncyBoZWFkZXIK Ky0tLSBhL2pzL3NyYy9idWlsZC9qcy5wYy5pbgorKysrIGIvanMvc3JjL2J1aWxkL2pzLnBjLmlu CitAQCAtMTEsNCArMTEsNCBAQAorICMgVXNlIC1pc3lzdGVtIGZvciBpbmNsdWRlcyByYXRoZXIg dGhhbiAtSSwgdG8gbWFyayB0aGVtIGFzICJzeXN0ZW0gaGVhZGVycyIKKyAjIHRoYXQgZG9uJ3Qg Z2VuZXJhdGUgd2FybmluZyBkaWFnbm9zdGljcy4gRm9yIGp1c3RpZmljYXRpb24sIHNlZQorICMg aHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzOTAzNgorLUNm bGFnczogLWluY2x1ZGUgJHtpbmNsdWRlZGlyfS9ASlNfTElCUkFSWV9OQU1FQC9qcy9SZXF1aXJl ZERlZmluZXMuaCAtaXN5c3RlbSAke2luY2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05BTUVACisrQ2Zs YWdzOiAtaW5jbHVkZSAke3BjX3N5c3Jvb3RkaXJ9JHtpbmNsdWRlZGlyfS9ASlNfTElCUkFSWV9O QU1FQC9qcy9SZXF1aXJlZERlZmluZXMuaCAtaXN5c3RlbSAke2luY2x1ZGVkaXJ9L0BKU19MSUJS QVJZX05BTUVACmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDctZml4LW1p cHMtc2dpZGVmc19oLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZpeC1taXBz LXNnaWRlZnNfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u YWJiMTQwMjMzYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8w MDctZml4LW1pcHMtc2dpZGVmc19oLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL21mYnQv UmFuZG9tTnVtLmNwcAkyMDIwLTA0LTI5IDIzOjQ5OjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGIv bWZidC9SYW5kb21OdW0uY3BwCTIwMjAtMDgtMDQgMTk6Mjk6MzYuMTI3NDcxMzAxICswMjAwCitA QCAtNTIsNyArNTIsNyBAQAorICMgIGVsaWYgZGVmaW5lZChfX3MzOTBfXykKKyAjICAgIGRlZmlu ZSBHRVRSQU5ET01fTlIgMzQ5CisgIyAgZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorLSMgICAgaW5j bHVkZSA8c2dpZGVmcy5oPgorKyMgICAgaW5jbHVkZSA8YXNtL3NnaWRlZnMuaD4KKyAjICAgIGlm IF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJMzIKKyAjICAgICAgZGVmaW5lIEdFVFJBTkRPTV9O UiA0MzUzCisgIyAgICBlbGlmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJNjQKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2Rpc2FibGUtanNsaW50LnBhdGNoIGIvc3JjcGtn cy9tb3pqczc4L3BhdGNoZXMvZGlzYWJsZS1qc2xpbnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA0YThiM2VkZWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9tb3pqczc4L3BhdGNoZXMvZGlzYWJsZS1qc2xpbnQucGF0Y2gKQEAgLTAsMCArMSwxNyBA QAorLS0tIGEvanMvc3JjL2J1aWxkL21vei5idWlsZAorKysrIGIvanMvc3JjL2J1aWxkL21vei5i dWlsZAorQEAgLTgwLDE0ICs4MCwzIEBACisgTk9fRVhQQU5EX0xJQlMgPSBUcnVlCisgCisgRElT VF9JTlNUQUxMID0gVHJ1ZQorLQorLSMgUnVuIFNwaWRlck1vbmtleSBzdHlsZSBjaGVja2VyIGFm dGVyIGxpbmtpbmcgdGhlIHN0YXRpYyBsaWJyYXJ5LiBUaGlzIGF2b2lkcworLSMgcnVubmluZyB0 aGUgc2NyaXB0IGZvciBuby1vcCBidWlsZHMuCistR2VuZXJhdGVkRmlsZSgKKy0gICAgJ3NwaWRl cm1vbmtleV9jaGVja3MnLCBzY3JpcHQ9Jy9jb25maWcvcnVuX3NwaWRlcm1vbmtleV9jaGVja3Mu cHknLAorLSAgICBpbnB1dHM9WworLSAgICAgICAgJyElc2pzX3N0YXRpYy4lcycgJSAoQ09ORklH WydMSUJfUFJFRklYJ10sIENPTkZJR1snTElCX1NVRkZJWCddKSwKKy0gICAgICAgICcvY29uZmln L2NoZWNrX3NwaWRlcm1vbmtleV9zdHlsZS5weScsCistICAgICAgICAnL2NvbmZpZy9jaGVja19t YWNyb2Fzc2VtYmxlcl9zdHlsZS5weScsCistICAgICAgICAnL2NvbmZpZy9jaGVja19qc19vcGNv ZGUucHknCistICAgICAgICBdKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMv ZmQ2ODQ3Yzk0MTZmOWVlYmRlNjM2ZTIxZDc5NGQyNWQxYmU4NzkxZC5wYXRjaCBiL3NyY3BrZ3Mv bW96anM3OC9wYXRjaGVzL2ZkNjg0N2M5NDE2ZjllZWJkZTYzNmUyMWQ3OTRkMjVkMWJlODc5MWQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFhZjY4ZDkzYzYy Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvZmQ2ODQ3Yzk0MTZm OWVlYmRlNjM2ZTIxZDc5NGQyNWQxYmU4NzkxZC5wYXRjaApAQCAtMCwwICsxLDM3IEBACitTZWUg aHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzOTczOQorCitG cm9tIGZkNjg0N2M5NDE2ZjllZWJkZTYzNmUyMWQ3OTRkMjVkMWJlODc5MWQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBNaWtlIEhvbW1leSA8bWhAZ2xhbmRpdW0ub3JnPgorRGF0ZTog U2F0LCAxIEp1biAyMDE5IDA5OjA2OjAxICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEJ1ZyAxNTI2 NjUzIC0gSW5jbHVkZSBzdHJ1Y3QgZGVmaW5pdGlvbnMgZm9yIHVzZXJfdmZwIGFuZAorIHVzZXJf dmZwX2V4Yy4KKworLS0tCisganMvc3JjL3dhc20vV2FzbVNpZ25hbEhhbmRsZXJzLmNwcCB8IDEx ICsrKysrKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKKworZGlmZiAtLWdpdCBhL2pzL3NyYy93YXNtL1dhc21TaWduYWxIYW5kbGVycy5jcHAg Yi9qcy9zcmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCitpbmRleCA2MzY1MzdmODQ3OC4u MzgzYzM4MGYwNGMgMTAwNjQ0CistLS0gYS9qcy9zcmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMu Y3BwCisrKysgYi9qcy9zcmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCitAQCAtMjQ4LDcg KzI0OCwxNiBAQCB1c2luZyBtb3ppbGxhOjpEZWJ1Z09ubHk7CisgI2VuZGlmCisgCisgI2lmZGVm IFdBU01fRU1VTEFURV9BUk1fVU5BTElHTkVEX0ZQX0FDQ0VTUworLSMgIGluY2x1ZGUgPHN5cy91 c2VyLmg+Cisrc3RydWN0IHVzZXJfdmZwIHsKKysgIHVuc2lnbmVkIGxvbmcgbG9uZyBmcHJlZ3Nb MzJdOworKyAgdW5zaWduZWQgbG9uZyBmcHNjcjsKKyt9OworKworK3N0cnVjdCB1c2VyX3ZmcF9l eGMgeworKyAgdW5zaWduZWQgbG9uZyBmcGV4YzsKKysgIHVuc2lnbmVkIGxvbmcgZnBpbnN0Owor KyAgdW5zaWduZWQgbG9uZyBmcGluc3QyOworK307CisgI2VuZGlmCisgCisgI2lmIGRlZmluZWQo QU5EUk9JRCkKKy0tIAorMi4yMC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC90ZW1w bGF0ZSBiL3NyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZGI1OGFkMDVhM2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21v empzNzgvdGVtcGxhdGUKQEAgLTAsMCArMSw3MyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbW96 anM3OCcKK3BrZ25hbWU9bW96anM3OAordmVyc2lvbj03OC4yLjAKK3JldmlzaW9uPTEKK3dya3Ny Yz0iZmlyZWZveC0ke3ZlcnNpb259IgorYnVpbGRfd3Jrc3JjPWpzL3NyYworYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHB5dGhvbiBwa2ctY29uZmlnIGF1 dG9tYWtlIGF1dG9jb25mMjEzIGF1dG9jb25mLWFyY2hpdmUKKyBjYXJnbyBydXN0IGxsdm0gY2xh bmcgd2hpY2ggcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpY3UtZGV2ZWwgbGliZmZpLWRldmVsIG5z cHItZGV2ZWwgcHl0aG9uLWRldmVsIHJlYWRsaW5lLWRldmVsCisgemxpYi1kZXZlbCBweXRob24z LWRldmVsIHJ1c3Qtc3RkIgorZGVwZW5kcz0ibnNwcj49NC4xOSIKK3Nob3J0X2Rlc2M9Ik1vemls bGEgSmF2YVNjcmlwdCBpbnRlcnByZXRlciBhbmQgbGlicmFyeSAoNzgueCBzZXJpZXMpIgorbWFp bnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4iCitsaWNlbnNlPSJNUEwtMi4wIgor aG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lm1vemlsbGEub3JnL2pzLyIKK2Rpc3RmaWxlcz0iJHtNT1pJ TExBX1NJVEV9L2ZpcmVmb3gvcmVsZWFzZXMvJHt2ZXJzaW9ufWVzci9zb3VyY2UvZmlyZWZveC0k e3ZlcnNpb259ZXNyLnNvdXJjZS50YXIueHoiCitjaGVja3N1bT05NjVjY2ZjYmI4YzBhYTk3NjM5 OTExOTk3YzU0YmUwZmNmODk2ZmQzODhiMDMxMzg5NTIwODlhZjY3NWVhOTE4CitwYXRjaF9hcmdz PSItTnAxIgorCitDWFhGTEFHUys9IiAtV25vLWNsYXNzLW1lbWFjY2VzcyIKK0xERkxBR1MrPSIg LVdsLC16LHN0YWNrLXNpemU9MTA0ODU3NiIKKworaWYgWyAiJFhCUFNfVEFSR0VUX05PX0FUT01J QzgiIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJhdG9taWMtZGV2ZWwiCisJTERGTEFHUys9 IiAtbGF0b21pYyIKK2ZpCisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlsb2NhbCBfYXJncworCSMgdXNl IGdjYyBhcyBhc3NlbWJsZXIgdG8gYXZvaWQgZXJyb3JzCisJdW5zZXQgQVMKKworCWlmIFsgIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgorCQlleHBvcnQgSE9TVF9DQz1jYworCQlleHBvcnQgVEFSR0VU X0NDPSIke0NDfSIKKwkJZXhwb3J0IEhPU1RfQ0ZMQUdTPSItT3MiCisJCWV4cG9ydCBIT1NUX0NY WEZMQUdTPSItT3MiCisJCV9hcmdzKz0iIC0tdGFyZ2V0PSRYQlBTX0NST1NTX1RSSVBMRVQgLS1l bmFibGUtbGlua2VyPWJmZCIKKwlmaQorCisJYXV0b2NvbmYtMi4xMyBvbGQtY29uZmlndXJlLmlu ID4gb2xkLWNvbmZpZ3VyZQorCisJdG91Y2ggJHt3cmtzcmN9L2pzL3NyYy9jb25maWd1cmUKKwl0 b3VjaCAke3dya3NyY30vanMvc3JjL29sZC1jb25maWd1cmUKKwlTSEVMTD0vYmluL2Jhc2ggUFlU SE9OPS91c3IvYmluL3B5dGhvbjIgLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciBcCisJCS0tZGlz YWJsZS1qZW1hbGxvYyAtLWRpc2FibGUtb3B0aW1pemUgLS1lbmFibGUtY3R5cGVzIFwKKwkJLS1l bmFibGUtcmVhZGxpbmUgLS1lbmFibGUtc2hhcmVkLWpzIC0tZW5hYmxlLXN5c3RlbS1mZmkgXAor CQktLWVuYWJsZS10ZXN0cyAtLXdpdGgtaW50bC1hcGkgLS13aXRoLXN5c3RlbS1pY3UgLS13aXRo LXN5c3RlbS1uc3ByIFwKKwkJLS1lbmFibGUtaGFyZGVuaW5nIC0tZW5hYmxlLXJlbGVhc2UgLS13 aXRoLXN5c3RlbS16bGliIFwKKwkJLS10YXJnZXQ9JHtYQlBTX1RSSVBMRVR9IC0taG9zdD0ke1hC UFNfVFJJUExFVH0gXAorCQkke19hcmdzfQorfQorCitkb19jaGVjaygpIHsKKwlkaXN0L2Jpbi9q c2FwaS10ZXN0cyAtLWZvcm1hdD1ub25lIC0tZXhjbHVkZS1yYW5kb20gYmFzaWMKK30KKworcG9z dF9pbnN0YWxsKCkgeworCSMgUmVtb3ZlIHVubmVlZGVkIHN0YXRpYyBsaWJyYXJ5CisJcm0gLWYg IiR7REVTVERJUn0iL3Vzci9saWIvKi5hanMKK30KKworbW96anM3OC1kZXZlbF9wYWNrYWdlKCkg eworCWRlcGVuZHM9Im5zcHItZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJdm1vdmUgdXNyL2Jpbi9qczc4LWNvbmZpZworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2 bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCX0KK30KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC91cGRhdGUgYi9zcmNwa2dzL21vempzNzgvdXBkYXRl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xOTQ3ZTE5MjE3ZgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC91cGRhdGUKQEAgLTAsMCArMSBAQAorcGtn bmFtZT0nbW96anMnCgpGcm9tIDJmOTIwMDJkMjM3ZGY1M2I3NWQyY2ZkNjk5ZjlmZjNlMDkwZmRj OWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDE3IFNlcCAyMDIwIDAxOjU0OjE2ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwMDIvMTAzXSB5ZWxwLXhzbDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNw a2dzL3llbHAteHNsL3RlbXBsYXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3llbHAteHNsL3Rl bXBsYXRlIGIvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZQppbmRleCBmNzRhN2ZiYTY3Yy4uMjYw NzkyYjViZjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy95ZWxwLXhzbC90ZW1wbGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3llbHAteHNsJwogcGtnbmFtZT15ZWxwLXhzbAotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29sIGxpYnhzbHQi CiBtYWtlZGVwZW5kcz0ibGlieHNsdC1kZXZlbCIKQEAgLTExLDQgKzEwLDQgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1llbHAvWHNs IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGZlNTFjMDIzM2I3OWE0YzIwNGM2 ODQ5OGQ0NWYwOWIzNDJjMzBlZDAyYzRlNDE4NTA2YzBlMzVmMDkwNGVjMworY2hlY2tzdW09MTNi Y2MyMDExYzRjNTUzODQxNzRkMThjN2IyZjAwMTVhOTZiMDRlZmQyNGYzZjY0NmFmMmU3MTY3ZTdh YjBkNwoKRnJvbSAyYTZiNzVkODg3OWMzYjNkN2UxMjM0MTAwYTI4NzUyNjQyNzE3YjA4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1NTowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDAzLzEwM10geWVscC10b29sczogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL3ll bHAtdG9vbHMvdGVtcGxhdGUgfCA1ICsrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveWVscC10b29scy90ZW1w bGF0ZSBiL3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZQppbmRleCA5ZThhNjcwZTZiMC4uMzUw NjEwZTMzOTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICd5ZWxwLXRvb2xzJwogcGtnbmFtZT15ZWxwLXRvb2xzCi12ZXJzaW9uPTMuMzIuMgor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKLWFyY2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGl0c3Rvb2wgbGlieHNsdCIK IG1ha2VkZXBlbmRzPSJ5ZWxwLXhzbCIKQEAgLTEyLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5nbm9tZS5vcmciCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT0xODM4NTZiNWVkMGIwYmIyYzA1ZGQxMjA0YWYwMjM5NDZlZDQzNjk0M2Uz NWU3ODlhZmIwMjk1ZTVlNzFlOGY5CitjaGVja3N1bT02MDdjZTRiM2VlODUxN2M0MmRiOTI0YTAx YTc4NjYwYTAzMzE3NTk1Yzc1ODI1NzMxZWE4NmE5MjBlMmIwNGIwCgpGcm9tIDI0NjJhYjRlYWJm NDQ4ZjZhMWRkNjk3MjQ3NmJmMmI4NmI2YWQ0MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDE3IFNl cCAyMDIwIDAxOjUzOjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMDQvMTAzXSB5ZWxwOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MveWVscC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3llbHAvdGVtcGxhdGUgYi9zcmNwa2dzL3llbHAvdGVtcGxhdGUKaW5kZXggNjNjYTdj MjI1YzguLmQxNDFkODBkNDM2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3llbHAvdGVtcGxhdGUKKysr IGIvc3JjcGtncy95ZWxwL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAneWVscCcKIHBrZ25hbWU9eWVscAotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zOC4w CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0i LS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGljIgpAQCAtMTMsNyArMTMs NyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvWWVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWZkNGIzZTIzZDMx YWQyYmViZTQyYWM4ZjgwMjQyYjJkOWJlZjUxNDE4YmY2MmI1OWFjZGYyNDQwYmQ5NGVkMjQKK2No ZWNrc3VtPWQ3Y2RjZTBlNmRiYTUxM2I0ZGYxMDljMWZhN2VmZmNiZjA4YmIzZjRkMDBkOWU3OTJj N2VkZjM0NTQ0Zjk2NTgKIAogeWVscC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9InllbHAt JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gOTI1NWI3ODAxNTY1MWJhYzNjNzljOGU5ZDU2 MzhiZmM1ZmYxNjFhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6Mjk6MjEg KzAyMDAKU3ViamVjdDogW1BBVENIIDAwNS8xMDNdIHZhbGE6IHVwZGF0ZSB0byAwLjUwLjAKCi0t LQogY29tbW9uL3NobGlicyAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvdmFsYS90ZW1wbGF0ZSB8 IDEwICsrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IDhkMzYyZTE4NDk2Li43OGE0ZDg4OGMwMSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysg Yi9jb21tb24vc2hsaWJzCkBAIC0zMTU3LDcgKzMxNTcsNyBAQCBsaWJzeXNwcm9mLTMuc28gc3lz cHJvZi0zLjM0LjBfMQogbGlic3lzcHJvZi11aS0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYm1v empzLTUyLnNvIG1vempzNTItNTIuMy4wXzEKIGxpYm1vempzLTUyLnNvLjAgbW96anM1Mi01Mi4z LjBfMQotbGlidmFsYS0wLjQ4LnNvLjAgbGlidmFsYS0wLjQ4LjBfMQorbGlidmFsYS0wLjUwLnNv LjAgbGlidmFsYS0wLjUwLjBfMQogbGlidmFsYWRvYy0wLjQ4LnNvLjAgbGlidmFsYWRvYy0wLjQ4 LjBfMQogbGlidmFsYWNjb2RlZ2VuLnNvIGxpYnZhbGEtMC40NC4wXzEKIGxpYnBob2Rhdi0yLjAu c28uMCBwaG9kYXYtMi4yXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmFsYS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvdmFsYS90ZW1wbGF0ZQppbmRleCBlOTU4ODI1ZjE5Ni4uNjMxMGJmNDNjY2YgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvdmFsYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd2YWxhJwogcGtnbmFtZT12YWxh CiAjIFNob3VsZCBiZSBrZXB0IGluIHN5bmMgd2l0aCAndmFsYWRvYycgKHNoYXJlZCBkaXN0Zmls ZXMpCi12ZXJzaW9uPTAuNDguOQordmVyc2lvbj0wLjUwLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtdmFsYWRvYyIKQEAg LTEyLDkgKzEyLDkgQEAgc2hvcnRfZGVzYz0iQ29tcGlsZXIgZm9yIHRoZSBHT2JqZWN0IHR5cGUg c3lzdGVtIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvUHJvamVjdHMvVmFsYSIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL3ZhbGEvcmF3LzAuNDgvTkVXUyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL3ZhbGEvcmF3LzAuNTAvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRF fS92YWxhLyR7dmVyc2lvbiUuKn0vdmFsYS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTlj ZWExNmQzYmIzZGFkZGJmZTA1NTZiOTlmYmZhMDgxNDYyMzBkYjc2NTFlMWU2NzRjZDA4YjRkZjVj ZWZlYTkKK2NoZWNrc3VtPTgzOGFkYzUwYWMwODg4MWUwNmNmMjMzZmVmZDkzNzQwZGVjMTUzMDMx MmNjMWNmMTJjMzZkNGUwZTg3ZDMwNzEKIHNobGliX3Byb3ZpZGVzPSJsaWJ2YWxhY2NvZGVnZW4u c28iCiAKIHBvc3RfaW5zdGFsbCgpIHsKQEAgLTIyLDggKzIyLDggQEAgcG9zdF9pbnN0YWxsKCkg ewogCSMgc28gdGhlIHBhY2thZ2UgdGhhdCB1c2UgaXQgZmFsbCBpbnRvIG91ciB3cmFwcGVyLgog CSMga2VlcCB0aGUgYmluYXJ5IHZlcnNpb25lZCwgd2UgZG9uJ3Qga25vdyB0aGUgcG90ZW50aWFs CiAJIyBmYWxsb3V0IGZyb20gdXNpbmcgdGhlIHVudmVyc2lvbmVkIG9uZQotCXZzZWQgLWUgJ3N8 XnZhcGlnZW49Lip8dmFwaWdlbj12YXBpZ2VuLTAuNDh8ZycgXAotCQkgLWkgJHtERVNURElSfS91 c3IvbGliL3BrZ2NvbmZpZy92YXBpZ2VuLTAuNDgucGMKKwl2c2VkIC1lICdzfF52YXBpZ2VuPS4q fHZhcGlnZW49dmFwaWdlbi0wLjUwfGcnIFwKKwkJIC1pICR7REVTVERJUn0vdXNyL2xpYi9wa2dj b25maWcvdmFwaWdlbi0wLjUwLnBjCiB9CiAKIGxpYnZhbGFfcGFja2FnZSgpIHsKCkZyb20gNTQw MmViOTRkYTdhYTNiNWNjNjdhMDhlNGI1OGQ5ZjE1NjEwMTBkNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdl ZCwgMTYgU2VwIDIwMjAgMjA6MzA6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDAwNi8xMDNdIHZh bGFkb2M6IHVwZGF0ZSB0byAwLjUwLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgIHwg MiArLQogc3JjcGtncy92YWxhZG9jL3RlbXBsYXRlIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9z aGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDc4YTRkODg4YzAxLi5jMDFjZjhiZGI4MSAxMDA2 NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zMTU4LDcgKzMx NTgsNyBAQCBsaWJzeXNwcm9mLXVpLTMuc28gc3lzcHJvZi0zLjM0LjBfMQogbGlibW96anMtNTIu c28gbW96anM1Mi01Mi4zLjBfMQogbGlibW96anMtNTIuc28uMCBtb3pqczUyLTUyLjMuMF8xCiBs aWJ2YWxhLTAuNTAuc28uMCBsaWJ2YWxhLTAuNTAuMF8xCi1saWJ2YWxhZG9jLTAuNDguc28uMCBs aWJ2YWxhZG9jLTAuNDguMF8xCitsaWJ2YWxhZG9jLTAuNTAuc28uMCBsaWJ2YWxhZG9jLTAuNTAu MF8xCiBsaWJ2YWxhY2NvZGVnZW4uc28gbGlidmFsYS0wLjQ0LjBfMQogbGlicGhvZGF2LTIuMC5z by4wIHBob2Rhdi0yLjJfMQogbGliZ2ZzaGFyZS5zby4yIGxpYmdmc2hhcmUtMi4wLjBfMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy92YWxhZG9jL3RlbXBsYXRlIGIvc3JjcGtncy92YWxhZG9jL3RlbXBs YXRlCmluZGV4IDI0Y2EwMjgzNjU1Li5jZTVhMWQ3YTU0ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy92 YWxhZG9jL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3ZhbGFkb2MnCiBwa2duYW1lPXZhbGFkb2MKICMg U2hvdWxkIGJlIGtlcHQgaW4gc3luYyB3aXRoICd2YWxhJyAoc2hhcmVkIGRpc3RmaWxlcykKLXZl cnNpb249MC40OC45Cit2ZXJzaW9uPTAuNTAuMAogcmV2aXNpb249MQogd3Jrc3JjPSJ2YWxhLSR7 dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMyw5ICsxMyw5IEBAIHNo b3J0X2Rlc2M9IlZhbGEgRG9jdW1lbnRhdGlvbiBUb29sIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvVmFsYSIKLWNoYW5nZWxv Zz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3ZhbGEvcmF3LzAuNDIvTkVXUyIKK2No YW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3ZhbGEvcmF3LzAuNTAvTkVX UyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS92YWxhLyR7dmVyc2lvbiUuKn0vdmFsYS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTljZWExNmQzYmIzZGFkZGJmZTA1NTZiOTlmYmZhMDgx NDYyMzBkYjc2NTFlMWU2NzRjZDA4YjRkZjVjZWZlYTkKK2NoZWNrc3VtPTgzOGFkYzUwYWMwODg4 MWUwNmNmMjMzZmVmZDkzNzQwZGVjMTUzMDMxMmNjMWNmMTJjMzZkNGUwZTg3ZDMwNzEKIAogcHJl X2NvbmZpZ3VyZSgpIHsKIAlhdXRvcmVjb25mIC1pZgoKRnJvbSAyYzI4YTNiMGMzZDlmNzY4MTNl MTUwYzUwZTdmNWFiZThjYTQ3ZTZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAy MDozMjoxMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDA3LzEwM10gdmFsYWJpbmQ6IHJlYnVpbGQg Zm9yIHZhbGEtMC41MAoKLS0tCiBzcmNwa2dzL3ZhbGFiaW5kL3BhdGNoZXMvdmFsYS0wNTAucGF0 Y2ggfCAyNSArKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3ZhbGFiaW5kL3RlbXBs YXRlICAgICAgICAgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy92YWxhYmluZC9w YXRjaGVzL3ZhbGEtMDUwLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YWxhYmluZC9wYXRj aGVzL3ZhbGEtMDUwLnBhdGNoIGIvc3JjcGtncy92YWxhYmluZC9wYXRjaGVzL3ZhbGEtMDUwLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZDdjNmE3NDM0NQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRj aApAQCAtMCwwICsxLDI1IEBACitGcm9tIGY5NDIzMTU0MDJlM2ZjMzhkZWYxNGE5NzRkZDViMjEw ZTVkMmMzOGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6Mzk6MjkgKzAy MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IHdpdGggdmFsYS0wLjUwCisKKy0tLQorIHZhbGFiaW5k d3JpdGVyLnZhbGEgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCisKK2RpZmYgLS1naXQgdmFsYWJpbmR3cml0ZXIudmFsYSB2YWxhYmluZHdyaXRl ci52YWxhCitpbmRleCAxNjVjZGY1Li5jNzkzYzlmIDEwMDY0NAorLS0tIHZhbGFiaW5kd3JpdGVy LnZhbGEKKysrKyB2YWxhYmluZHdyaXRlci52YWxhCitAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWMg Y2xhc3MgVmFsYWJpbmRXcml0ZXIgOiBDb2RlVmlzaXRvciB7CisgCQlpZiAoZ2xpYm1vZGUpCisg CQkJY29udGV4dC5hZGRfZGVmaW5lICgiR09CSkVDVCIpOworIAkJLy8gcmVxdWlyZWQgdG8gYXZv aWQgdWdseSBydW50aW1lIGVycm9ycworLQkJY29udGV4dC5wcm9maWxlID0gUHJvZmlsZS5HT0JK RUNUOworKwkJY29udGV4dC5zZXRfdGFyZ2V0X3Byb2ZpbGUoUHJvZmlsZS5HT0JKRUNUKTsKKyAJ fQorIAorIAlwdWJsaWMgdm9pZCBwYXJzZSAoKSB7CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQg YS9zcmNwa2dzL3ZhbGFiaW5kL3RlbXBsYXRlIGIvc3JjcGtncy92YWxhYmluZC90ZW1wbGF0ZQpp bmRleCBmNmY5MzFjMzAzMy4uMmJmMGRmMzM2ZTMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmFsYWJp bmQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy92YWxhYmluZC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3ZhbGFiaW5kJwogcGtnbmFtZT12YWxhYmluZAogdmVy c2lvbj0xLjcuMQotcmV2aXNpb249NQorcmV2aXNpb249NgogYnVpbGRfc3R5bGU9bWVzb24KIGhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyB2YWxhLWRldmVsIGdpdCIKIG1ha2VkZXBlbmRzPSJ2 YWxhLWRldmVsIGdsaWItZGV2ZWwiCgpGcm9tIGU3MjBiNWUwNDJjNTYxMzZhMmI1YWRlMzVkOTMx OTJjNjU3ODJhNTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwMDgvMTAzXSBkZXZoZWxwOiB1cGRhdGUgdG8gMy4zOC4wCgot LS0KIHNyY3BrZ3MvZGV2aGVscC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Rldmhl bHAvdGVtcGxhdGUgYi9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKaW5kZXggYTFjMmRjYmI3NjIu Ljg2YjM3NzZhZGZkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZGV2aGVscCcKIHBrZ25hbWU9ZGV2aGVscAotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29u CkBAIC0xMSw3ICsxMSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvQXBwcy9EZXZoZWxwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09NGNmOGVjOTMwMmJjNGE3OWUwMWFjNTNiZDljOGI5NWE1OTZmNzFmMzUzNTFmNDhiNjMy NjMyMjdmMDlhOGEzZAorY2hlY2tzdW09OTE4ZWZiMTczMTIyYjI2ZDQ1ZmE1MWMxOTRhMGI2NTll NjNmZWU3NzA1ZjY3MjJkYjI1MzRmYWJjMzQ1MjM2OQogCiBkZXZoZWxwLWRldmVsX3BhY2thZ2Uo KSB7CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoKRnJvbSBiMjU4NmU2ZmI5 YWFmOGQxYTAwMDNlMTE0NDgzNTJmNmFhN2UzOGY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9 MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBTZXAgMjAyMCAy MDoyMjo0MyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDA5LzEwM10gZ2RsOiB1cGRhdGUgdG8gMy4z NC4wLgoKLS0tCiBzcmNwa2dzL2dkbC90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z2RsL3RlbXBsYXRlIGIvc3JjcGtncy9nZGwvdGVtcGxhdGUKaW5kZXggZDViMTgwYmQ0M2IuLjM1 YmVlODAzZjk2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dkbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2dkbC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dkbCcK IHBrZ25hbWU9Z2RsCi12ZXJzaW9uPTMuMjguMAotcmV2aXNpb249MwordmVyc2lvbj0zLjM0LjAK K3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2ly IgogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIgpAQCAt MTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIsIExHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9nZGwvIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09NTJjYzk4ZWNjMTA1MTQ4NDY3YjNiMmI0ZTBkMjdhZTQ4NGIxYjY3 MTBkNTM0MTNmNzcxZWQwN2VmMWI3MzdiNgorY2hlY2tzdW09ODU4YjMwZjBjZGNlNGM0Y2IzZTgz NjVhN2Q1NGNlNTdjMzg4YmVmZjM4ZWE1ODNiZTU0NDliYzc4ZGRhOGQwMgogCiAjIFBhY2thZ2Ug YnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2lyIgoKRnJvbSAzZDA1MDk0ZTRmNGZlOWRj M2FlNDk3ZjNiNDRmMDJiMWJhODgzYTQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAy MCAyMToxNjo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEwLzEwM10gbGlic291cDogdXBkYXRl IHRvIDIuNzIuMAoKLS0tCiBzcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUgfCAyNSArKysrKysrKysr KysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlIGIvc3JjcGtn cy9saWJzb3VwL3RlbXBsYXRlCmluZGV4IGY3YTk4MzczYWM4Li4xYmE4ZjhhNTgyMiAxMDA2NDQK LS0tIGEvc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGlic291cC90ZW1w bGF0ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlic291cCcKIHBr Z25hbWU9bGlic291cAotdmVyc2lvbj0yLjcwLjAKK3ZlcnNpb249Mi43Mi4wCiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0i LURnc3NhcGk9ZGlzYWJsZWQgLURudGxtPWRpc2FibGVkCi0gLURpbnRyb3NwZWN0aW9uPSQodm9w dF9pZiBnaXIgZW5hYmxlZCBkaXNhYmxlZCkKLSAtRHZhcGk9JCh2b3B0X2lmIHZhbGEgZW5hYmxl ZCBkaXNhYmxlZCkgLUR0bHNfY2hlY2s9ZmFsc2UiCitjb25maWd1cmVfYXJncz0iLURnc3NhcGk9 ZGlzYWJsZWQgLURudGxtPWRpc2FibGVkIC1Ec3lzcHJvZj1kaXNhYmxlZAorIC1EdGxzX2NoZWNr PWZhbHNlIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIGVuYWJsZWQgZGlzYWJsZWQpCisg LUR2YXBpPSQodm9wdF9pZiBnaXIgZW5hYmxlZCBkaXNhYmxlZCkiCiBob3N0bWFrZWRlcGVuZHM9 ImdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBwa2ctY29uZmlnIGdldHRleHQKLSAkKHZvcHRfaWYg dmFsYSAndmFsYScpIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0ibGliZ2xp Yi1kZXZlbCBsaWJ4bWwyLWRldmVsIHNxbGl0ZS1kZXZlbCBsaWJwc2wtZGV2ZWwKLSBicm90bGkt ZGV2ZWwgJCh2b3B0X2lmIHZhbGEgJ3ZhbGEtZGV2ZWwnKSIKKyBicm90bGktZGV2ZWwgJCh2b3B0 X2lmIGdpciB2YWxhLWRldmVsKSIKIGRlcGVuZHM9ImdsaWItbmV0d29ya2luZyIKIHNob3J0X2Rl c2M9IkhUVFAgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBpbiBDIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKQEAgLTE4LDExICsxOCwxNiBAQCBsaWNlbnNl PSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1By b2plY3RzL2xpYnNvdXAiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50 LmNvbS9HTk9NRS9saWJzb3VwL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTU0YjAyMGY3NGFlZmE0Mzg5MThkOGU1M2NmZjYyZTJiMWU1OWVmZTJkZTUz ZTA2YjE5YTRiMDdiMWY0ZDUzNDIKK2NoZWNrc3VtPTE3MGMzZjg0NDZiMGY2NWY4ZTRiOTM2MDMz NDkxNzJiMTA4NWZiODkxN2MxODFkMTA5NjJmMDJiYjg1ZjUzODcKIAogIyBQYWNrYWdlIGJ1aWxk IG9wdGlvbnMKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIgorCisjIGdpbyB0ZXN0cyBjYW4ndCBydW4gaW4gY2hyb290Citkb19jaGVjaygpIHsKKwk6 Cit9CiAKIGxpYnNvdXAtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke21ha2VkZXBlbmRz fSBsaWJzb3VwPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgpAQCAtMzEsOCArMzYsNiBAQCBsaWJz b3VwLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnL2xpYnNvdXAt Mi40LnBjCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Iv c2hhcmUvZ2lyLTEuMC9Tb3VwLTIuNC5naXIKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92 YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCQl2bW92ZSB1c3Iv aW5jbHVkZS9saWJzb3VwLTIuNAoKRnJvbSBkN2E1NTMzMjE4YjZmYmUzZmVhZjNiYzdhN2VjMWI1 ZmY1M2Q5OWU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMToxMDoyMiArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDExLzEwM10gZ3JpbG86IHVwZGF0ZSB0byAwLjMuMTMsIGRyb3Ag dmFsYSBvcHRpb24KCi0tLQogc3JjcGtncy9ncmlsby90ZW1wbGF0ZSB8IDE2ICsrKysrKystLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9ncmlsby90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3JpbG8vdGVtcGxh dGUKaW5kZXggNGE2YWI0Y2FiZTMuLjY0YmFlOWJkNGUyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dy aWxvL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3JpbG8vdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTIg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dyaWxvJwogcGtnbmFtZT1ncmlsbwotdmVyc2lvbj0w LjMuMTIKK3ZlcnNpb249MC4zLjEzCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVp bGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURlbmFibGUtaW50cm9zcGVjdGlvbj0k KHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpCi0gLURlbmFibGUtdmFsYT0kKHZvcHRfaWYgZ2lyIHRy dWUgZmFsc2UpIC1EZW5hYmxlLWd0ay1kb2M9ZmFsc2UiCi1ob3N0bWFrZWRlcGVuZHM9ImdldHRl eHQgcGtnLWNvbmZpZyBnbGliLWRldmVsICQodm9wdF9pZiB2YWxhIHZhbGEpIgorY29uZmlndXJl X2FyZ3M9IiQodm9wdF9ib29sIGdpciBlbmFibGUtaW50cm9zcGVjdGlvbikgJCh2b3B0X2Jvb2wg Z2lyIHZhbGEpCisgLURlbmFibGUtZ3RrLWRvYz1mYWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0iZ2V0 dGV4dCBwa2ctY29uZmlnIGdsaWItZGV2ZWwgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1ha2VkZXBl bmRzPSJndGsrMy1kZXZlbCBsaWJ4bWwyLWRldmVsIGxpYnNvdXAtZGV2ZWwgbGlib2F1dGgtZGV2 ZWwKICB0b3RlbS1wbC1wYXJzZXItZGV2ZWwiCiBzaG9ydF9kZXNjPSJGcmFtZXdvcmsgZm9jdXNl ZCBvbiBtYWtpbmcgbWVkaWEgZGlzY292ZXJ5IGFuZCBicm93c2luZyBlYXN5IgpAQCAtMTQsMTEg KzE0LDExIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwOi8vbGl2ZS5nbm9t ZS5vcmcvR3JpbG8iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kYmZiZDYwODIx MDMyODg1OTJhZjk3NTY4MTgwYjljYzgxYTMzNmEyNzRlZDUxNjA0MTJmODc2NzVlYzExYTcxCitj aGVja3N1bT1kMTQ4MzdmMjIzNDE5NDNlZDhhMTg5ZDlmMDgyN2ExNzAxNmI4MDJkMThkMGVkMDgw ZTE0MTNkZTBmZGM5MjdiCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWlsZF9vcHRpb25z PSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRp b25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogZ3JpbG8tZGV2ZWxfcGFj a2FnZSgpIHsKIAlkZXBlbmRzPSIke21ha2VkZXBlbmRzfSBncmlsbz49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKQEAgLTI3LDggKzI3LDYgQEAgZ3JpbG8tZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1v dmUgdXNyL2luY2x1ZGUKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIg XTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAkJdm1vdmUgdXNyL2xpYi9w a2djb25maWcKCkZyb20gMDI4YzZkMjJkMDNjN2FkMDIzNjdmZGJmMTMwZGE0YTM0ZWQwZjBmNCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MTU6MzUgKzAyMDAKU3ViamVjdDog W1BBVENIIDAxMi8xMDNdIGdyaWxvLXBsdWdpbnM6IHVwZGF0ZSB0byAwLjMuMTIKCi0tLQogc3Jj cGtncy9ncmlsby1wbHVnaW5zL3RlbXBsYXRlIHwgMTIgKysrKysrKystLS0tCiAxIGZpbGUgY2hh bmdlZCwgOCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ3JpbG8tcGx1Z2lucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3JpbG8tcGx1Z2lucy90ZW1wbGF0 ZQppbmRleCA4YmY2NTEzNjZkYS4uNTViY2NmMWZmYjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Jp bG8tcGx1Z2lucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxhdGUK QEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3JpbG8tcGx1Z2lucycKIHBr Z25hbWU9Z3JpbG8tcGx1Z2lucwotdmVyc2lvbj0wLjMuMTEKK3ZlcnNpb249MC4zLjEyCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGlu dGx0b29sIGl0c3Rvb2wgZ2xpYi1kZXZlbCBncGVyZgotCWdub21lLWRvYy11dGlscyIKK2hvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29sIGdsaWItZGV2ZWwgZ3BlcmYg Z25vbWUtZG9jLXV0aWxzIgogIyBYWFggbWlzc2luZyBwbHVnaW5zOiBmYWtlbWV0YWRhdGEuCiBt YWtlZGVwZW5kcz0iZ3JpbG8tZGV2ZWwgZ29tLWRldmVsIGd1cG5wLWF2LWRldmVsIGpzb24tZ2xp Yi1kZXZlbAogIGxpYnF1dmktZGV2ZWwgcmVzdC1kZXZlbCBzcWxpdGUtZGV2ZWwgbGliZ2NyeXB0 LWRldmVsIGdtaW1lLWRldmVsCkBAIC0xNiw0ICsxNSw5IEBAIG1haW50YWluZXI9Ik9ycGhhbmVk IDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwOi8vbGl2ZS5nbm9tZS5vcmcvR3JpbG8iCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT1kZGUyZTYwNWIxOTk0MzQxYzZiZjAxMjQ5M2UwNTZiNDA2YjA4NTcxODM0 ZGVhM2IzYzY3MWQ1YjhiMWRjZDczCitjaGVja3N1bT1jNmI2ZGYwODZhMTY0ZDY1YzIwNmQ3MDEz OWNlODA1OTFmOGZlY2EzNTQ1NjEyZTQ1YjgyM2ZiNGZlNGIyNTc3CisKKyMgZmVlbCBmcmVlIHRv IGZpeAorZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSBjMzY4OTNjNmQzOWMwMGY5ZjZmYWIxYTM3 NTNhNDAxODAwODc4MDI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDo1Njoz NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEzLzEwM10gZ3Rrc291cmNldmlldzQ6IHVwZGF0ZSB0 byA0LjguMAoKLS0tCiBzcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlIHwgMjkgKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp LCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3Rl bXBsYXRlIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQppbmRleCA2ODQ4NzE2Nzcz Yy4uNWNmZDVlY2ZiZDkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQpAQCAtMSwzMiArMSwzNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3Rrc291cmNldmlldzQnCiBwa2duYW1lPWd0a3NvdXJj ZXZpZXc0Ci12ZXJzaW9uPTQuMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTQuOC4wCityZXZpc2lv bj0xCiB3cmtzcmM9Imd0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufSIKLWJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKK2J1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3Vy ZV9hcmdzPSItLWVuYWJsZS1nbGFkZS1jYXRhbG9nICQodm9wdF9lbmFibGUgZ2lyIGludHJvc3Bl Y3Rpb24pCi0gJCh2b3B0X2VuYWJsZSB2YWxhKSAkKHZvcHRfZW5hYmxlIGd0a19kb2MgZ3RrLWRv YykiCitjb25maWd1cmVfYXJncz0iLURnbGFkZV9jYXRhbG9nPXRydWUgJCh2b3B0X2Jvb2wgZ2ly IGdpcikKKyAkKHZvcHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBndGtfZG9j KSIKIGhvc3RtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIGxpYnhz bHQgcGtnLWNvbmZpZwotICQodm9wdF9pZiB2YWxhIHZhbGEpICQodm9wdF9pZiBndGtfZG9jIGd0 ay1kb2MpIgorICQodm9wdF9pZiBnaXIgdmFsYSkgJCh2b3B0X2lmIGd0a19kb2MgZ3RrLWRvYyki CiBtYWtlZGVwZW5kcz0iZ2xhZGUzLWRldmVsIGd0ayszLWRldmVsIGxpYmdsaWItZGV2ZWwgbGli eG1sMi1kZXZlbAotICQodm9wdF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9pZiBnaXIgdmFsYSki CiBzaG9ydF9kZXNjPSJUZXh0IHdpZGdldCB0aGF0IGV4dGVuZHMgR1RLKyBHdGtUZXh0VmlldyB3 aWRnZXQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL1Byb2plY3RzL0d0a1NvdXJjZVZpZXciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ3Rr c291cmNldmlldy8ke3ZlcnNpb24lLip9L2d0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT1jNDMxZWIyMzRkYzgzYzc4MTllNThmNzdkZDJhZjk3MzI1MmM3NzUwZGExYzlk MTI1ZGRjOTQyNjhmOTRmNjc1CitjaGVja3N1bT0wMGExOTEyMTUwMGNlZGYxYmFlOTdmMzVhZjg2 NWQ4Mzk4NDFmZDc4NWQ5ZmFjZjE4ODQ5OGUxMzk3NWI0ZTFhCiAKICMgUGFja2FnZSBidWlsZCBv cHRpb25zCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSBndGtfZG9jIgorYnVpbGRfb3B0aW9ucz0i Z2lyIGd0a19kb2MiCiBkZXNjX29wdGlvbl9ndGtfZG9jPSJCdWlsZCBBUEkgZG9jcyB2aWEgZ3Rr LWRvYyIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zX2Rl ZmF1bHQ9ImdpciIKIAogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0 aW9uc19kZWZhdWx0Kz0iIGd0a19kb2MiCiBmaQogCisjIE5lZWRzIFgKK2RvX2NoZWNrKCkgewor CToKK30KKwogZ3Rrc291cmNldmlldzQtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsr My1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNp b259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKQEAg LTM2LDExICs0MSw5IEBAIGd0a3NvdXJjZXZpZXc0LWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3Zl ICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlIHVzci9zaGFyZS9nbGFkZQogCQl2bW92ZSB1c3Ivc2hh cmUvZ3RrLWRvYwotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KLQkJCXZtb3Zl IHVzci9zaGFyZS92YWxhCi0JCWZpCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVu CiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAorCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJ ZmkKIAl9CiB9CgpGcm9tIGRjMjljMjMwMDAzMDdmMWI1OTM1NGMwZGJkMTQ3YjI2N2FmMmQzZjAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjEyOjE2ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwMTQvMTAzXSB0ZXBsOiB1cGRhdGUgdG8gNS4wLjAKCi0tLQogY29tbW9uL3NobGli cyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdp ci5wYXRjaCB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdGVw bC90ZW1wbGF0ZSAgICAgICAgICAgICB8IDEwICsrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIv Y29tbW9uL3NobGlicwppbmRleCBjMDFjZjhiZGI4MS4uMzIyYmVmNDIxZWMgMTAwNjQ0Ci0tLSBh L2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzU1NCw3ICszNTU0LDcgQEAg bGlid3hfZ3RrM3VfbWVkaWEtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQogbGlid3hf Z3RrM3VfcmliYm9uLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1 X2dsLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X3N0Yy0zLjAu c28uMCB3eFdpZGdldHMtZ3RrMy0zLjAuNF8xCi1saWJ0ZXBsLTQuc28uMCB0ZXBsLTQuMi4wXzEK K2xpYnRlcGwtNS5zby4wIHRlcGwtNC4yLjBfMQogbGlibm9tYWNzQ29yZS5zby4zIG5vbWFjcy0z LjEwLjJfNAogbGliYXVkaXQuc28uMSBsaWJhdWRpdC0yLjguNF8xCiBsaWJhdXBhcnNlLnNvLjAg bGliYXVwYXJzZS0yLjguNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1n aXIucGF0Y2ggYi9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUzNDAwMjdiN2YxCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK0Zy b20gMTdlNTdlZDE1NjQ1MGZlNTkwMDFjYjBhMTRmOGQ4N2M0MGQ2YmY3NyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgor RGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDowOToxNSArMDIwMAorU3ViamVjdDogW1BBVENIXSBB bGxvdyBkaXNhYmxpbmcgZ2lyCisKKy0tLQorIG1lc29uX29wdGlvbnMudHh0IHwgNSArKysrKwor IHRlcGwvbWVzb24uYnVpbGQgIHwgNCArKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKykKKworZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4dCBtZXNvbl9vcHRpb25zLnR4dAor aW5kZXggY2FkOTdkZC4uNWU5OTA4NCAxMDA2NDQKKy0tLSBtZXNvbl9vcHRpb25zLnR4dAorKysr IG1lc29uX29wdGlvbnMudHh0CitAQCAtMywzICszLDggQEAgb3B0aW9uKAorICAgdHlwZTogJ2Jv b2xlYW4nLCB2YWx1ZTogZmFsc2UsCisgICBkZXNjcmlwdGlvbjogJ0J1aWxkIEFQSSByZWZlcmVu Y2UgKHJlcXVpcmVzIGd0ay1kb2MpJworICkKKytvcHRpb24oCisrICAnZ2lyJywKKysgIHR5cGU6 ICdib29sZWFuJywgdmFsdWU6IHRydWUsCisrICBkZXNjcmlwdGlvbjogJ0J1aWxkIGdvYmplY3Qt aW50cm9zcGVjdGlvbicKKyspCitkaWZmIC0tZ2l0IHRlcGwvbWVzb24uYnVpbGQgdGVwbC9tZXNv bi5idWlsZAoraW5kZXggMjI2ZDkxMy4uYjM1ZGQzYSAxMDA2NDQKKy0tLSB0ZXBsL21lc29uLmJ1 aWxkCisrKysgdGVwbC9tZXNvbi5idWlsZAorQEAgLTE2NCw2ICsxNjQsOCBAQCBQS0dfQ09ORklH LmdlbmVyYXRlKHRlcGxfbGliLAorICAgbGlicmFyaWVzOiBURVBMX1BVQkxJQ19ERVBTLAorICkK KyAKKytpZiBnZXRfb3B0aW9uKCdnaXInKQorKworIEdOT01FLmdlbmVyYXRlX2dpcigKKyAgIHRl cGxfbGliLAorICAgZXhwb3J0X3BhY2thZ2VzOiAndGVwbC1AMEAnLmZvcm1hdChURVBMX0FQSV9W RVJTSU9OKSwKK0BAIC0xODIsMyArMTg0LDUgQEAgR05PTUUuZ2VuZXJhdGVfZ2lyKAorICAgIyBT dXBwb3J0IGZvciBkZXBzIGJlaW5nIGJ1aWx0IGFzIHN1YnByb2plY3RzOgorICAgZGVwZW5kZW5j aWVzOiBURVBMX0RFUFMsCisgKQorKworK2VuZGlmCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQg YS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUgYi9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKaW5kZXggZjRk MzcxZDYwM2QuLjc5OGQ1Y2QwMDc3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUK KysrIGIvc3JjcGtncy90ZXBsL3RlbXBsYXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICd0ZXBsJwogcGtnbmFtZT10ZXBsCi12ZXJzaW9uPTQuNC4wCit2ZXJzaW9uPTUu MC4wCiByZXZpc2lvbj0xCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCi1idWlsZF9oZWxwZXI9 ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIK K2J1aWxkX3N0eWxlPW1lc29uCitidWlsZF9oZWxwZXI9Z2lyCitjb25maWd1cmVfYXJncz0iJCh2 b3B0X2Jvb2wgZ2lyIGdpcikiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZp ZyIKIG1ha2VkZXBlbmRzPSJhbXRrLWRldmVsIGxpYmdsaWItZGV2ZWwgZ3Rrc291cmNldmlldzQt ZGV2ZWwgZ3RrKzMtZGV2ZWwKICBsaWJ4bWwyLWRldmVsIHVjaGFyZGV0LWRldmVsIgpAQCAtMTMs NyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25v bWUub3JnL1Byb2plY3RzL1RlcGwiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1l NmY2NjczYThhMjdlOGYyODA3MjVkYjhmYmFjZWM3OWIyMDY3NmFlMDU1ODc1NTIzOWQxNWE5ODA4 ZmFhMjU2CitjaGVja3N1bT1jNmJkMjkwNGY1MzA0OGI3ZDAxNDkyMzY2MTBiMzhmNTAyZjI2MzRk Mzk1ZDhiOWIzYzY1OTU1M2Y0MDQ1YTc0CiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29w dGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSAxNTczZDFiZDNlNjE4NGM3ZDU4MTkwZjZmZjFmMmY4 NTRjNzhmZWNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkw bz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4 QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBTZXAgMjAyMCAyMDoyNzoyMiArMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMDE1LzEwM10gZ2xhZGUzOiB1cGRhdGUgdG8gMy4zOC4wLgoKLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9n bGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoIHwgOTggLS0tLS0tLS0tLS0tLS0t LS0tLQogLi4uL3BhdGNoZXMvY29uZmlndXJlLXNoZWxsLXF1b3RlLnBhdGNoICAgICAgIHwgMTEg LS0tCiBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Nyb3NzLnBhdGNoICAgICAgICAgICAgfCA0MCAt LS0tLS0tLQogc3JjcGtncy9nbGFkZTMvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwg MTcgKystLQogNSBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDE2MSBkZWxldGlvbnMo LSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2F1dG9nZW4tYXV0 b2NvbmYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Nv bmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xh ZGUzL3BhdGNoZXMvY3Jvc3MucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29t bW9uL3NobGlicwppbmRleCAzMjJiZWY0MjFlYy4uZGIxNjQ2ZjE4ZTAgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtNzcwLDcgKzc3MCw3IEBAIGxpYm9y Yy10ZXN0LTAuNC5zby4wIG9yYy0wLjQuMTFfMQogbGliZ21pbWUtMi42LnNvLjAgZ21pbWUtMi42 LjRfMQogbGlidG90ZW0tcGxwYXJzZXIuc28uMTggdG90ZW0tcGwtcGFyc2VyLTMuMjYuMV8xCiBs aWJ0b3RlbS1wbHBhcnNlci1taW5pLnNvLjE4IGxpYnRvdGVtLXBscGFyc2VyLW1pbmktMy4yNi4x XzEKLWxpYmdsYWRldWktMi5zby42IGxpYmdsYWRldWkzLTMuMTAuMF8xCitsaWJnbGFkZXVpLTIu c28uMTMgbGliZ2xhZGV1aTMtMy4zOC4wXzEKIGxpYnRkYi5zby4xIGxpYnRkYi0xLjIuMl8xCiBs aWJnc3NkcC0xLjIuc28uMCBnc3NkcC0xLjIuMF8xCiBsaWJndXBucC0xLjIuc28uMCBndXBucC0x LjIuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2F1dG9nZW4tYXV0b2Nv bmYucGF0Y2ggYi9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2F1dG9nZW4tYXV0b2NvbmYucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxZGZjMzQyYjQ3Li4wMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2F1dG9nZW4tYXV0b2NvbmYucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi1Gcm9tIDgzNDFjZjc4YmM2ODc5Y2IyZDUwZTEyYjU4 ODZlZTdkY2EzZDA5ZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/ SmF2aWVyPTIwSmFyZD1DMz1CM24/PSA8amphcmRvbkBnbm9tZS5vcmc+Ci1EYXRlOiBTYXQsIDkg RmViIDIwMTkgMTM6MTU6MTcgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gVXNlIGF1dG9yZWNvbmYg aW5zdGVhZCBkZXByZWNhdGVkIGdub21lLWNvbW1vbgotCi1TZWUgaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9Qcm9qZWN0cy9Hbm9tZUNvbW1vbi9NaWdyYXRpb24KLS0tLQotIGF1dG9nZW4uc2ggICB8 IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCi0gY29u ZmlndXJlLmFjIHwgIDYgKystLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCsp LCAxOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhdXRvZ2VuLnNoIGF1dG9nZW4uc2gKLWlu ZGV4IDFkOGNkODQwLi5mZDM1NjYzYiAxMDA3NTUKLS0tLSBhdXRvZ2VuLnNoCi0rKysgYXV0b2dl bi5zaAotQEAgLTEsMjIgKzEsNDEgQEAKLSAjIS9iaW4vc2gKLSAjIFJ1biB0aGlzIHRvIGdlbmVy YXRlIGFsbCB0aGUgaW5pdGlhbCBtYWtlZmlsZXMsIGV0Yy4KLSt0ZXN0IC1uICIkc3JjZGlyIiB8 fCBzcmNkaXI9JChkaXJuYW1lICIkMCIpCi0rdGVzdCAtbiAiJHNyY2RpciIgfHwgc3JjZGlyPS4K LSAKLS1zcmNkaXI9YGRpcm5hbWUgJDBgCi0tdGVzdCAteiAiJHNyY2RpciIgJiYgc3JjZGlyPS4K LStvbGRkaXI9JChwd2QpCi0gCi0tUEtHX05BTUU9ImdsYWRlIgotK2NkICRzcmNkaXIKLSAKLS0o dGVzdCAtZiAkc3JjZGlyL2NvbmZpZ3VyZS5hYyBcCi0tICAmJiB0ZXN0IC1mICRzcmNkaXIvYXV0 b2dlbi5zaCkgfHwgewotLSAgICBlY2hvIC1uICIqKkVycm9yKio6IERpcmVjdG9yeSAiXGAkc3Jj ZGlyXCciIGRvZXMgbm90IGxvb2sgbGlrZSB0aGUiCi0tICAgIGVjaG8gIiB0b3AtbGV2ZWwgJFBL R19OQU1FIGRpcmVjdG9yeSIKLS0gICAgZXhpdCAxCi0rKHRlc3QgLWYgY29uZmlndXJlLmFjKSB8 fCB7Ci0rICAgICAgICBlY2hvICIqKiogRVJST1I6IERpcmVjdG9yeSAnJHNyY2RpcicgZG9lcyBu b3QgbG9vayBsaWtlIHRoZSB0b3AtbGV2ZWwgcHJvamVjdCBkaXJlY3RvcnkgKioqIgotKyAgICAg ICAgZXhpdCAxCi0gfQotIAotLXdoaWNoIGdub21lLWF1dG9nZW4uc2ggfHwgewotLSAgICBlY2hv ICJZb3UgbmVlZCB0byBpbnN0YWxsIGdub21lLWNvbW1vbiBtb2R1bGUgYW5kIG1ha2UiCi0tICAg IGVjaG8gInN1cmUgdGhlIGdub21lLWF1dG9nZW4uc2ggc2NyaXB0IGlzIGluIHlvdXIgXCRQQVRI LiIKLS0gICAgZXhpdCAxCi0tfQotKyMgc2hlbGxjaGVjayBkaXNhYmxlPVNDMjAxNgotK1BLR19O QU1FPSQoYXV0b2NvbmYgLS10cmFjZSAnQUNfSU5JVDokMScgY29uZmlndXJlLmFjKQotKwotK2lm IFsgIiQjIiA9IDAgLWEgIngkTk9DT05GSUdVUkUiID0gIngiIF07IHRoZW4KLSsgICAgICAgIGVj aG8gIioqKiBXQVJOSU5HOiBJIGFtIGdvaW5nIHRvIHJ1biAnY29uZmlndXJlJyB3aXRoIG5vIGFy Z3VtZW50cy4iID4mMgotKyAgICAgICAgZWNobyAiKioqIElmIHlvdSB3aXNoIHRvIHBhc3MgYW55 IHRvIGl0LCBwbGVhc2Ugc3BlY2lmeSB0aGVtIG9uIHRoZSIgPiYyCi0rICAgICAgICBlY2hvICIq KiogJyQwJyBjb21tYW5kIGxpbmUuIiA+JjIKLSsgICAgICAgIGVjaG8gIiIgPiYyCi0rZmkKLSsK LSthY2xvY2FsIC0taW5zdGFsbCB8fCBleGl0IDEKLStndGtkb2NpemUgLS1jb3B5IHx8IGV4aXQg MQotK2ludGx0b29saXplIC0tZm9yY2UgLS1jb3B5IC0tYXV0b21ha2UgfHwgZXhpdCAxCi0rYXV0 b3JlY29uZiAtLXZlcmJvc2UgLS1mb3JjZSAtLWluc3RhbGwgfHwgZXhpdCAxCi0rCi0rY2QgIiRv bGRkaXIiCi0raWYgWyAiJE5PQ09ORklHVVJFIiA9ICIiIF07IHRoZW4KLSsgICAgICAgICRzcmNk aXIvY29uZmlndXJlICIkQCIgfHwgZXhpdCAxCi0gCi0tLiBnbm9tZS1hdXRvZ2VuLnNoCi0rICAg ICAgICBpZiBbICIkMSIgPSAiLS1oZWxwIiBdOyB0aGVuCi0rICAgICAgICAgICAgICAgIGV4aXQg MAotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBlY2hvICJOb3cgdHlwZSAnbWFrZScg dG8gY29tcGlsZSAkUEtHX05BTUUiIHx8IGV4aXQgMQotKyAgICAgICAgZmkKLStlbHNlCi0rICAg ICAgICBlY2hvICJTa2lwcGluZyBjb25maWd1cmUgcHJvY2Vzcy4iCi0rZmkKLWRpZmYgLS1naXQg Y29uZmlndXJlLmFjIGNvbmZpZ3VyZS5hYwotaW5kZXggYTM1MjQ2NTYuLjYzOGU3ODAxIDEwMDY0 NAotLS0tIGNvbmZpZ3VyZS5hYwotKysrIGNvbmZpZ3VyZS5hYwotQEAgLTMzLDYgKzMzLDggQEAg QU1fTUFJTlRBSU5FUl9NT0RFKFtlbmFibGVdKQotICMgdG8gbWFrZQotIEFNX1NJTEVOVF9SVUxF UyhbeWVzXSkKLSAKLStBWF9DSEVDS19FTkFCTEVfREVCVUcoW3llc10sW0dOT01FX0VOQUJMRV9E RUJVR10pCi0rCi0gIyBDaGVja3MgZm9yIHByb2dyYW1zCi0gQUNfUFJPR19DQwotIEFDX1BST0df SU5TVEFMTAotQEAgLTc5LDEwICs4MSw2IEBAIEFNX0NPTkRJVElPTkFMKEdMQURFX1VOU1RBQkxF LCB0ZXN0ICJ4JEdMQURFX1VOU1RBQkxFIiA9ICJ4eWVzIikKLSAKLSAjID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAKLS1H Tk9NRV9ERUJVR19DSEVDSwotLUdOT01FX0NPTVBJTEVfV0FSTklOR1MoW21heGltdW1dKQotLUdO T01FX01BSU5UQUlORVJfTU9ERV9ERUZJTkVTCi0tCi0gIyBGb3IgdGhlIHBsdWdpbnMsIHdlIGRv bid0IHVzZSB0aGUgd2FybmluZyBmbGFncyBkZWZpbmVkIGJ5IEdOT01FX0NPTVBJTEVfV0FSTklO R1MuCi0gIyBUaGVzZSBmbGFncyBpbmNsdWRlIC1XbWlzc2luZy1wcm90b3R5cGVzLCB3aGljaCB3 ZSBwcmVmZXIgbm90IHRvIHVzZS4KLSBpZiB0ZXN0ICJ4JEdDQyIgPSAieHllcyI7IHRoZW4KLS0t IAotMi4yNC4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY29uZmlndXJl LXNoZWxsLXF1b3RlLnBhdGNoIGIvc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hl bGwtcXVvdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzYzYwY2NmMzY1 Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVs bC1xdW90ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBjb25maWd1 cmUuYWMKLSsrKyBjb25maWd1cmUuYWMKLUBAIC0yNzksNyArMjc5LDcgQEAKLSBkbmwgQ2hlY2sg Zm9yIEdESyBRdWFydHogYW5kIE1hY09TWCBpbnRlZ3JhdGlvbiBwYWNrYWdlIAotIGRubCA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0gX2dka190Z3Q9YCRQS0dfQ09ORklHIC0tdmFyaWFibGU9dGFyZ2V0cyBnZGstMy4wYAot LUFNX0NPTkRJVElPTkFMKFtHREtfVEFSR0VUX1FVQVJUWl0sIFt0ZXN0IHgkX2dka190Z3QgPSB4 cXVhcnR6XSkKLStBTV9DT05ESVRJT05BTChbR0RLX1RBUkdFVF9RVUFSVFpdLCBbdGVzdCAieCRf Z2RrX3RndCIgPSB4cXVhcnR6XSkKLSBpZiB0ZXN0ICJ4JF9nZGtfdGd0IiA9IHhxdWFydHo7IHRo ZW4gCi0gICAgUEtHX0NIRUNLX01PRFVMRVMoR1RLX01BQywgZ3RrLW1hYy1pbnRlZ3JhdGlvbi1n dGszKQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jcm9zcy5wYXRjaCBi L3NyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY3Jvc3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAzYjFkN2U4NDZlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dsYWRlMy9w YXRjaGVzL2Nyb3NzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLS0tIG00 L3B5dGhvbi5tNAotKysrIG00L3B5dGhvbi5tNAotQEAgLTQzLDE3ICs0Myw5IEBACi0gW0FDX1JF UVVJUkUoW0FNX1BBVEhfUFlUSE9OXSkKLSBBQ19NU0dfQ0hFQ0tJTkcoZm9yIGhlYWRlcnMgcmVx dWlyZWQgdG8gY29tcGlsZSBweXRob24gZXh0ZW5zaW9ucykKLSBkbmwgZGVkdWNlIFBZVEhPTl9J TkNMVURFUwotLWFtX3B5dGhvbl9wcmludF9pbmNsdWRlcz0iXAotLWZyb20gZGlzdHV0aWxzIGlt cG9ydCBzeXNjb25maWcgYXMgc2MKLS1pbmNsZGlycyA9IFtbXV0KLS0KLS1mb3IgZCBpbiBzYy5n ZXRfY29uZmlnX3ZhcignSU5DTERJUlNUT01BS0UnKS5zcGxpdCgpOgotLSAgICBpbmNsZGlycy5h cHBlbmQoJy1JJyArIGQpCi0tCi0tcHJpbnQoJyAnLmpvaW4oaW5jbGRpcnMpKQotLSIKLSt4YnBz X3N5c3Jvb3Q9YCRDQyAtLXByaW50LXN5c3Jvb3RgCi0gaWYgdGVzdCAieCRQWVRIT05fSU5DTFVE RVMiID09IHg7IHRoZW4KLS0gIFBZVEhPTl9JTkNMVURFUz1gJFBZVEhPTiAtYyAiJGFtX3B5dGhv bl9wcmludF9pbmNsdWRlcyJgCi0rICBQWVRIT05fSU5DTFVERVM9YCIkeGJwc19zeXNyb290LyRQ WVRIT04tY29uZmlnIiAtLWluY2x1ZGVzYAotIGZpCi0gQUNfU1VCU1QoUFlUSE9OX0lOQ0xVREVT KQotIGRubCBjaGVjayBpZiB0aGUgaGVhZGVycyBleGlzdDoKLUBAIC03NCwxNiArNjYsMTEgQEAK LSBbQUNfUkVRVUlSRShbQU1fQ0hFQ0tfUFlUSE9OX0hFQURFUlNdKQotIEFDX01TR19DSEVDS0lO Ryhmb3IgbGlicmFyaWVzIHJlcXVpcmVkIHRvIGVtYmVkIHB5dGhvbikKLSBkbmwgZGVkdWNlIFBZ VEhPTl9MSUJTCi0tYW1fcHl0aG9uX3ByaW50X2xpYnM9IlwKLS1mcm9tIGRpc3R1dGlscyBpbXBv cnQgc3lzY29uZmlnIGFzIHNjCi0tbGlicyA9ICctTCcgKyBzYy5nZXRfY29uZmlnX3ZhcignTElC RElSJykuc3RyaXAoKQotLWxpYnMgKz0gJyAnICsgc2MuZ2V0X2NvbmZpZ192YXIoJ0JMRExJQlJB UlknKQotLXByaW50KGxpYnMpIgotIGFtX3B5dGhvbl9wcmludF9saWJfbG9jPSJcCi0gZnJvbSBk aXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZyBhcyBzYwotIHByaW50KHNjLmdldF9jb25maWdfdmFy KCdMSUJESVInKSkiCi0gaWYgdGVzdCAieCRQWVRIT05fTElCUyIgPT0geDsgdGhlbgotLQlQWVRI T05fTElCUz1gJFBZVEhPTiAtYyAiJGFtX3B5dGhvbl9wcmludF9saWJzImAKLSsJUFlUSE9OX0xJ QlM9YCIkeGJwc19zeXNyb290LyRQWVRIT04tY29uZmlnIiAtLWxkZmxhZ3MgLS1lbWJlZGAKLSBm aQotIGlmIHRlc3QgIngkUFlUSE9OX0xJQl9MT0MiID09IHg7IHRoZW4KLSAJUFlUSE9OX0xJQl9M T0M9YCRQWVRIT04gLWMgIiRhbV9weXRob25fcHJpbnRfbGliX2xvYyJgCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dsYWRlMy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2xhZGUzL3RlbXBsYXRlCmluZGV4IDkx MGMxMzhkZjZhLi5kM2Q4ZTBkNWRjZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbGFkZTMvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbGFkZTMvdGVtcGxhdGUKQEAgLTEsMzIgKzEsMjcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dsYWRlMycKIHBrZ25hbWU9Z2xhZGUzCi12ZXJzaW9uPTMuMjIuMgor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIHdya3NyYz0iZ2xhZGUtJHt2ZXJzaW9ufSIKLWJ1 aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2J1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9 ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGljIC0tZW5hYmxlLWRlYnVnPWlu Zm8gUFlUSE9OPS91c3IvYmluL3B5dGhvbjMKLSAtLWVuYWJsZS1nbGFkZXVpICQodm9wdF9lbmFi bGUgZ2lyIGludHJvc3BlY3Rpb24pIgorY29uZmlndXJlX2FyZ3M9Ii1EZ3RrX2RvYz10cnVlIC1E bWFuPXRydWUgJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRz PSJnbGliLWRldmVsIGdub21lLWRvYy11dGlscyBpbnRsdG9vbCBpdHN0b29sIHBrZy1jb25maWcK LSBhdXRvbWFrZSBhdXRvY29uZi1hcmNoaXZlIGxpYnRvb2wgeWVscC10b29scyBnZXR0ZXh0LWRl dmVsIGd0ay1kb2MiCi1tYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgcHl0aG9uMy1nb2JqZWN0LWRl dmVsIHdlYmtpdDJndGstZGV2ZWwiCisgZ2pzLWRldmVsIHllbHAtdG9vbHMgZ2V0dGV4dC1kZXZl bCBndGstZG9jIgorbWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIHB5dGhvbjMtZ29iamVjdC1kZXZl bCB3ZWJraXQyZ3RrLWRldmVsIGdqcy1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGls cyBoaWNvbG9yLWljb24tdGhlbWUiCiBzaG9ydF9kZXNjPSJVc2VyIEludGVyZmFjZSBEZXNpZ25l ciBmb3IgR1RLKzMiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cDovL2dsYWRlLmdub21lLm9yZy8iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ2xh ZGUvJHt2ZXJzaW9uJS4qfS9nbGFkZS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWVkZWZh NmViMjRiNGQxNWJkNTI1ODkxMjFkYzEwOWJjMDhjMjg2MTU3YzQxMjg4ZGViNzRkZDljYzNmMjZh MjEKK2NoZWNrc3VtPTRhOTE0YzVjMGIxOWMyZTUyZmQ0YWQxNTA3N2Q0MDZkYmZkNmFkMDI0NWUy MzlkNzM5MGJmODdmMjdkOTEwM2MKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKICMgUGFja2FnZSBidWls ZCBvcHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKIAotcHJlX2NvbmZpZ3VyZSgpIHsKLQlOT0NPTkZJR1VSRT0xIC4vYXV0b2dlbi5zaAotfQot CiBkb19jaGVjaygpIHsKIAkjIFJlcXVpcmUgcnVubmluZyB4c2VydmVyCiAJOgoKRnJvbSA2YzA5 ZmU1Yjk5OTM1MDZmOGY4YmRjNDAwZjFlMjFkYWZhYWJjZWM0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMz PUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAg MjAyMCAwNTozODo1NSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE2LzEwM10gbGliaGFuZHk6IHJl YnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAsIG1vdmVkIHRvIEdOT01FCgotLS0KIHNyY3BrZ3MvbGli aGFuZHkvdGVtcGxhdGUgfCAxNCArKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJoYW5k eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUKaW5kZXggMzg2NzJmMWZiNmUu LmMxOWMzODk3ZWZhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmhhbmR5L3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdsaWJoYW5keScKIHBrZ25hbWU9bGliaGFuZHkKIHZlcnNpb249MC4wLjEzCi1yZXZp c2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9ImxpYmhhbmR5LXYke3ZlcnNpb259IgogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtMTQsMTQgKzE0LDIwIEBAIG1ha2Vk ZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsICQodm9wdF9pZiBnbGFkZSBnbGFkZTMt ZGV2ZWwpIgogc2hvcnRfZGVzYz0iTGlicmFyeSBmdWxsIG9mIEdUSysgd2lkZ2V0cyBmb3IgbW9i aWxlIHBob25lcyIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKLWhvbWVwYWdlPSJodHRwczovL3NvdXJjZS5w dXJpLnNtL0xpYnJlbTUvbGliaGFuZHkiCi1kaXN0ZmlsZXM9Imh0dHBzOi8vc291cmNlLnB1cmku c20vTGlicmVtNS9saWJoYW5keS8tL2FyY2hpdmUvdiR7dmVyc2lvbn0vbGliaGFuZHktdiR7dmVy c2lvbn0udGFyLmd6IgotY2hlY2tzdW09MTM4YmVjOTRlNjZkMTVhN2ExOTM1MGI2NTg0NWQ0NTI5 YmNkOTY5ZWE5MTNhYjNlYjQzOGY1NmZlNDdkNWQzNworaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS9saWJoYW5keSIKK2Rpc3RmaWxlcz0iJGhvbWVwYWdlLy0vYXJjaGl2 ZS92JHt2ZXJzaW9ufS9saWJoYW5keS12JHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT02NDUz NTVhMDA5ZjIzZjI1NGVhZWM3NzUyYjk0ODljM2MyZjU4MzIzOTdmY2VjNzU0MzNhN2UwMGVmYmZl NTJmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIGdsYWRlIgogZGVzY19vcHRpb25fZ2xhZGU9 IkdlbmVyYXRlIGdsYWRlIG1vZHVsZXMgYW5kIGNhdGFsb2cgZmlsZXMiCiBidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciB2YWxhIGdsYWRlIgogCisjIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9saWJoYW5keS8tL21lcmdlX3JlcXVlc3RzLzU1OQorQ0ZMQUdTPSItREdQQ19PQkpFQ1Rf REVMSU1JVEVSPUdMQURFX1BST1BFUlRZX0RFRl9PQkpFQ1RfREVMSU1JVEVSIgorQ0ZMQUdTKz0i IC1EZ2xhZGVfd2lkZ2V0X2FjdGlvbl9nZXRfY2xhc3M9Z2xhZGVfd2lkZ2V0X2FjdGlvbl9nZXRf ZGVmIgorIyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xhZGUvLS9jb21taXQvYmI2 MjZkZAorQ0ZMQUdTKz0iIC1ER1dBX0dFVF9DTEFTUz1HTEFERV9XSURHRVRfQURBUFRPUl9HRVRf QURBUFRPUl9DTEFTUyIKKwogbGliaGFuZHktZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIk e3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3RrKzMtZGV2ZWwiCiAJc2hvcnRf ZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoKRnJvbSAyNTk4MmZkODlkY2NiNDZlNjMyZTY5 YWU5ODQxZjUxMDU0ZDNmYmZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxj b25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBTZXAgMjAyMCAyMDozNDo0NiArMDcw MApTdWJqZWN0OiBbUEFUQ0ggMDE3LzEwM10gbGliaGFuZHkxOiB1cGRhdGUgdG8gMS4wLjAKCi0t LQogc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aWJoYW5keTEvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmhhbmR5MS90ZW1wbGF0ZQppbmRleCAxOTFl Njk4YjBkNi4uNTQ3YWZjY2FhMTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliaGFuZHkxL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvbGliaGFuZHkxL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnbGliaGFuZHkxJwogcGtnbmFtZT1saWJoYW5keTEKLXZlcnNpb249 MC45MC4wCit2ZXJzaW9uPTEuMC4wCiByZXZpc2lvbj0xCiB3cmtzcmM9ImxpYmhhbmR5LSR7dmVy c2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTYsMTIgKzE2LDE1IEBAIG1haW50YWluZXI9 Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3NvdXJjZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHki CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vbGliaGFuZHkvJHt2ZXJzaW9uJS4qfS9saWJoYW5k eS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTZhYjA4NjlhM2FhNDgzMjk4ZWEyMGVjODlk NGMxNGMzOGJhNGRlNDE2YjMzMTgxZDIxZTE1YTYwMzlkZjU5ODUKK2NoZWNrc3VtPWE5Mzk4NTgy ZjQ3YjdkNzI5MjA1ZDZlYWMwYzA2OGZlZjM1YWFmMjQ5ZmRkNTdlZWEzNzI0Zjg1MThkMjY2OTkK IAogYnVpbGRfb3B0aW9ucz0iZ2lyIGdsYWRlIgogZGVzY19vcHRpb25fZ2xhZGU9IkdlbmVyYXRl IGdsYWRlIG1vZHVsZXMgYW5kIGNhdGFsb2cgZmlsZXMiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciBnbGFkZSIKIAorIyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xhZGUvLS9j b21taXQvYmI2MjZkZAorQ0ZMQUdTPSItREdXQV9HRVRfQ0xBU1M9R0xBREVfV0lER0VUX0FEQVBU T1JfR0VUX0FEQVBUT1JfQ0xBU1MiCisKIGxpYmhhbmR5MS1kZXZlbF9wYWNrYWdlKCkgewogCWRl cGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBndGsrMy1kZXZlbCIK IAljb25mbGljdHM9ImxpYmhhbmR5LWRldmVsPj0wIgoKRnJvbSA1NzNiMzA4YzQ3NzVlZGE2ZGNm ODM5YjcyZDc3ZGNhMDM4OTE0YTNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VU Ri04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0K IDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAyMCAwNTo0MTowMSAr MDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE4LzEwM10gbGlieGZjZTR1aTogcmVidWlsZCBmb3IgZ2xh ZGUzLTMuMzguMAoKLS0tCiBzcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUK aW5kZXggMjVhNWM0Nzk5NTUuLjBhNjJhZDE4MmI0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYnhm Y2U0dWkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlieGZjZTR1aScKIHBrZ25hbWU9bGlieGZj ZTR1aQogdmVyc2lvbj00LjE0LjEKLXJldmlzaW9uPTQKK3JldmlzaW9uPTUKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlz YWJsZS1zdGF0aWMiCgpGcm9tIGM5MDkxMTE0MzBlMTk3YWI2ZmFhZjg4ODAzMGYwYjBiMTAxMTFm MDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwMTkvMTAzXSBsaWJkYXp6bGU6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3Jj cGtncy9saWJkYXp6bGUvdGVtcGxhdGUgfCAyNCArKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xpYmRhenpsZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBs YXRlCmluZGV4IDVhYzA5ZmVlZmM5Li45YjgwN2JlOTQ3NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9s aWJkYXp6bGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUKQEAgLTEs MjMgKzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYmRhenpsZScKIHBrZ25hbWU9bGli ZGF6emxlCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGVuYWJs ZV9ndGtfZG9jPWZhbHNlIC1Ed2l0aF92YXBpPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0g LUR3aXRoX2ludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKLWhvc3RtYWtl ZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhICd2YWxhJykiCitj b25maWd1cmVfYXJncz0iLURlbmFibGVfZ3RrX2RvYz1mYWxzZQorICQodm9wdF9ib29sIGdpciB3 aXRoX3ZhcGkpCisgJCh2b3B0X2Jvb2wgZ2lyIHdpdGhfaW50cm9zcGVjdGlvbikiCitob3N0bWFr ZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFr ZWRlcGVuZHM9Imd0ayszLWRldmVsIGxpYmdsaWItZGV2ZWwiCiBzaG9ydF9kZXNjPSJMaWJyYXJ5 IHRvIGRlbGlnaHQgeW91ciB1c2VycyB3aXRoIGZhbmN5IGZlYXR1cmVzIgogbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYmRhenps ZSIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2xp YmRhenpsZS9saWJkYXp6bGUtMy0zMi9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvbGliZGF6emxlLy0vcmF3LyR7dmVyc2lvbn0vTkVXUyIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS9saWJkYXp6bGUvJHt2ZXJzaW9uJS4qfS9saWJkYXp6bGUtJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT04MmIzMWJiZjU1MGZjNjI5NzBjNzhiZjdmOWQ1NWU1ZmFl NWI4ZWExM2IyNGZlMmQxM2M4YzYwMzk0MDlkOTU4CitjaGVja3N1bT1lMThhZjI4MjE3OTQzYmNl YzEwNjU4NTI5OGE5MWVjM2RhNDhhYTNhZDYyZmQwOTkyZjIzZjBjNzBjZDE2NzhmCiAKLWJ1aWxk X29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1 aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgorCisjIG5lZWRz IFgKK2RvX2NoZWNrKCkgeworCToKK30KIAogbGliZGF6emxlLWRldmVsX3BhY2thZ2UoKSB7CiAJ ZGVwZW5kcz0iJHtzb3VyY2Vwa2d9LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3RrKzMtZGV2ZWwi CkBAIC0yOCw4ICszNCw2IEBAIGxpYmRhenpsZS1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAi dXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1v dmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBd OyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gYmE4OGIzZDhi MjUxYWEwNjIwMmExOGVkMTVjOTRiZGQ2MDI4ODBjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5n PTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAg MDU6NDM6MTMgKzA3MDAKU3ViamVjdDogW1BBVENIIDAyMC8xMDNdIGFuanV0YTogcmVidWlsZCBm b3IgZ2xhZGUzLTMuMzguMCwgdmFsYS0wLjUwCgotLS0KIHNyY3BrZ3MvYW5qdXRhL3RlbXBsYXRl IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9hbmp1dGEvdGVtcGxhdGUgYi9zcmNwa2dzL2FuanV0YS90ZW1w bGF0ZQppbmRleCBjMjFjOTI3Y2QxMi4uYjQ2ZDU4YWVhZmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv YW5qdXRhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYW5qdXRhL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYW5qdXRhJwogcGtnbmFtZT1hbmp1dGEKIHZlcnNp b249My4zNC4wCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCiBidWlsZF9oZWxwZXI9ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1j b21waWxlLXdhcm5pbmdzIC0tZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUKCkZyb20gNDBkZjdhMTY5 ZGIxMTRhYzgzNmE1OTc4MzUwNmI0YWFlZjg0M2ZmYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYg QXVnIDIwMjAgMDU6Mjg6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyMS8xMDNdIHN5c3Byb2Y6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA0ICstCiAuLi4vcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1m b3JtYXQucGF0Y2ggfCAgMTIgLS0KIHNyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNo ICAgICAgICAgICB8ICAxMCArKwogc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvbXVzbC5wYXRjaCAg ICAgICAgICAgIHwgMTI1ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9zeXNwcm9mL3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiA1IGZpbGVzIGNoYW5nZWQsIDEzOSBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2gKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkYjE2NDZmMThlMC4uOWFk NDQzYTUzNjcgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpA QCAtMzE1Myw4ICszMTUzLDggQEAgbGlibWlyYWdlLnNvLjExIGxpYm1pcmFnZS0zLjEuMF8xCiBs aWJ3a2h0bWx0b3guc28uMCBsaWJ3a2h0bWx0b3BkZi0wLjEyLjVfMQogbGliaXhtbC5zby4xMCBs aWJ1cG5wMS44LTEuOC4yXzEKIGxpYnVwbnAuc28uMTMgbGlidXBucDEuOC0xLjguNF8xCi1saWJz eXNwcm9mLTMuc28gc3lzcHJvZi0zLjM0LjBfMQotbGlic3lzcHJvZi11aS0zLnNvIHN5c3Byb2Yt My4zNC4wXzEKK2xpYnN5c3Byb2YtNC5zbyBzeXNwcm9mLTMuMzcuOTBfMQorbGlic3lzcHJvZi11 aS00LnNvIHN5c3Byb2YtMy4zNy45MF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pqczUyLTUyLjMuMF8x CiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIuMy4wXzEKIGxpYnZhbGEtMC41MC5zby4wIGxp YnZhbGEtMC41MC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2FsbG9j cy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaCBiL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2Fs bG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggYWZlZTA3ZWJiYzIuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRj aGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDEyICswLDAgQEAKLWRpZmYgLXJhdU4gc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMgc3JjL3Rl c3RzL2FsbG9jcy1ieS1zaXplLmMKLS0tLSBzcmMvdGVzdHMvYWxsb2NzLWJ5LXNpemUuYwkyMDIw LTAzLTIyIDIwOjAwOjEyLjY3NzA0ODgyMiArMDEwMAotKysrIHNyYy90ZXN0cy9hbGxvY3MtYnkt c2l6ZS5jCTIwMjAtMDMtMjIgMjA6MDE6MDcuMDAwNDE4MzYxICswMTAwCi1AQCAtMTA5LDcgKzEw OSw3IEBACi0gICAgIHsKLSAgICAgICBjb25zdCBJdGVtICppdGVtID0gJmdfYXJyYXlfaW5kZXgg KGFyLCBJdGVtLCBpKTsKLSAKLS0gICAgICBnX3ByaW50ICgiJSJHX0dVSU5UNjRfRk9STUFUIiwl IkdfR1VJTlQ2NF9GT1JNQVQiLCUiR19HVUlOVDY0X0ZPUk1BVCJcbiIsCi0rICAgICAgZ19wcmlu dCAoIiUiR19HU0laRV9GT1JNQVQiLCUiR19HU0laRV9GT1JNQVQiLCUiR19HU0laRV9GT1JNQVQi XG4iLAotICAgICAgICAgICAgICAgIGl0ZW0tPnNpemUsIGl0ZW0tPmNtcCwgaXRlbS0+Y291bnQp OwotICAgICB9Ci0gfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQu cGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWI3YzJjMWMxNjQKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDEwIEBACist LS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtY29uZGl0aW9uLmMKKysr KyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jb25kaXRpb24uYworQEAg LTI2OSw2ICsyNjksNyBAQCBzeXNwcm9mX2NhcHR1cmVfY29uZGl0aW9uX2NvcHkgKGNvbnN0IFN5 c3Byb2ZDYXB0dXJlQ29uZGl0aW9uICpzZWxmKQorICAgICB9CisgCisgICBzeXNwcm9mX2Fzc2Vy dF9ub3RfcmVhY2hlZCAoKTsKKysgIHJldHVybiBOVUxMOworIH0KKyAKKyBzdGF0aWMgdm9pZApk aWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvbXVzbC5wYXRjaCBiL3NyY3BrZ3Mv c3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjUxZjQyMTI4ODkxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zeXNwcm9m L3BhdGNoZXMvbXVzbC5wYXRjaApAQCAtMCwwICsxLDEyNSBAQAorRnJvbSAxZDJkZTMyZTk3YmY1 NTY5Y2MzM2VlOWE5MGM4NzNlMWJiZDJiMWU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFN1biwgNiBTZXAgMjAyMCAxODoy MTozNyArMDIwMAorU3ViamVjdDogW1BBVENIXSBmaXggYnVpbGQgb24gbXVzbAorCistLS0KKyAu Li4vc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jICAgICAgICAgICAgICAgICAgfCAgMSArCisgLi4u L3N5c3Byb2YtY2FwdHVyZS1yZWFkZXIuYyAgICAgICAgICAgICAgICAgIHwgIDEgKworIHNyYy9s aWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXV0aWwuYyB8ICAxICsKKyAuLi4vc3lz cHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYyAgICAgICAgICAgICAgfCAgMSArCisgc3JjL2xpYnN5 c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbGxlY3Rvci5jICAgIHwgIDEgKworIHNyYy9saWJzeXNw cm9mLWNhcHR1cmUvc3lzcHJvZi1jb21wYXQuaCAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysr KysKKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtcGxhdGZvcm0uYyAgICAgfCAgMSAr CisgNyBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb21wYXQuaAorCitkaWZmIC0tZ2l0IHNy Yy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jIHNyYy9saWJzeXNw cm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jCitpbmRleCAyNDU2M2YwLi5iYjc3 YTYwIDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1 cnNvci5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtY3Vyc29y LmMKK0BAIC01OSw2ICs1OSw3IEBACisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxz dGRsaWIuaD4KKyAKKysjaW5jbHVkZSAic3lzcHJvZi1jb21wYXQuaCIKKyAjaW5jbHVkZSAic3lz cHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtY3Vy c29yLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS1yZWFkZXIuaCIKK2RpZmYgLS1naXQg c3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMgc3JjL2xpYnN5 c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMKK2luZGV4IDY3YzZiMjguLjI1 MmQwMDYgMTAwNjQ0CistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUt cmVhZGVyLmMKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1yZWFk ZXIuYworQEAgLTY4LDYgKzY4LDcgQEAKKyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgI2luY2x1 ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJzeXNwcm9mLWNvbXBhdC5oIgorICNpbmNsdWRl ICJzeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS11 dGlsLXByaXZhdGUuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLXdyaXRlci5oIgorZGlm ZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMgc3Jj L2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtdXRpbC5jCitpbmRleCAwYmJlYTA2 Li4wZTVmN2U3IDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0 dXJlLXV0aWwuYworKysrIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXV0 aWwuYworQEAgLTU2LDYgKzU2LDcgQEAKKyAKKyAjaW5jbHVkZSAiY29uZmlnLmgiCisgCisrI2lu Y2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZXJybm8u aD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1 cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5 c3Byb2YtY2FwdHVyZS13cml0ZXItY2F0LmMKK2luZGV4IDY2MTcxYjkuLjlmZWJiYmIgMTAwNjQ0 CistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtd3JpdGVyLWNhdC5j CisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtd3JpdGVyLWNhdC5j CitAQCAtNjMsNiArNjMsNyBAQAorICNpbmNsdWRlIDxzdGRsaWIuaD4KKyAjaW5jbHVkZSA8dW5p c3RkLmg+CisgCisrI2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3By b2YtY2FwdHVyZS5oIgorICNpbmNsdWRlICJzeXNwcm9mLW1hY3Jvcy1pbnRlcm5hbC5oIgorIAor ZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMgc3Jj L2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbGxlY3Rvci5jCitpbmRleCAxZDdhMGQ2Li43 YWY2Yzk2IDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb2xsZWN0 b3IuYworKysrIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb2xsZWN0b3IuYworQEAg LTczLDYgKzczLDcgQEAKKyAKKyAjaW5jbHVkZSAibWFwcGVkLXJpbmctYnVmZmVyLmgiCisgCisr I2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS11 dGlsLXByaXZhdGUuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jb2xsZWN0b3IuaCIKKyAjaW5jbHVk ZSAic3lzcHJvZi1tYWNyb3MtaW50ZXJuYWwuaCIKK2RpZmYgLS1naXQgc3JjL2xpYnN5c3Byb2Yt Y2FwdHVyZS9zeXNwcm9mLWNvbXBhdC5oIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1j b21wYXQuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmFlOWJmMTAKKy0t LSAvZGV2L251bGwKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0LmgK K0BAIC0wLDAgKzEsMjggQEAKKysvKiBhZGRlZCBieSBxNjYgQCB2b2lkIHRvIGZpeCBidWlsZCBv biBtdXNsICovCisrCisrI3ByYWdtYSBvbmNlCisrCisrI2lmbmRlZiBfX0dMSUJDX18KKysKKysj aW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPGVycm5vLmg+CisrCisrLyogZnJvbSBnbGli YyAqLworKyNpZm5kZWYgVEVNUF9GQUlMVVJFX1JFVFJZCisrIyBkZWZpbmUgVEVNUF9GQUlMVVJF X1JFVFJZKGV4cHJlc3Npb24pIFwKKysgIChfX2V4dGVuc2lvbl9fICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICh7IGxv bmcgaW50IF9fcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgICAgICBkbyBfX3Jlc3VsdCA9IChsb25nIGludCkgKGV4cHJlc3Np b24pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgd2hpbGUgKF9f cmVzdWx0ID09IC0xTCAmJiBlcnJubyA9PSBFSU5UUik7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgICAgIF9fcmVzdWx0OyB9KSkKKysjZW5kaWYKKysKKytzdGF0aWMgaW5saW5l IHZvaWQgKnJlYWxsb2NhcnJheSh2b2lkICpwLCBzaXplX3Qgbm1lbWIsIHNpemVfdCBzeikgewor KyAgICBpZiAoc3ogJiYgKG5tZW1iID4gKChzaXplX3QpLTEgLyBzeikpKSB7CisrICAgICAgICBl cnJubyA9IEVOT01FTTsKKysgICAgICAgIHJldHVybiBOVUxMOworKyAgICB9CisrICAgIHJldHVy biByZWFsbG9jKHAsIG5tZW1iICogc3opOworK30KKysKKysjZW5kaWYKK2RpZmYgLS1naXQgc3Jj L2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMgc3JjL2xpYnN5c3Byb2YtY2Fw dHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMKK2luZGV4IGE4MGFiODkuLjA1YmQ1OTAgMTAwNjQ0Cist LS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMKKysrKyBzcmMvbGli c3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtcGxhdGZvcm0uYworQEAgLTYwLDYgKzYwLDcgQEAKKyAj aW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CisgCisrI2luY2x1 ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS11dGlsLXBy aXZhdGUuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1wbGF0Zm9ybS5oIgorIAorLS0gCisyLjI4LjAK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlIGIvc3JjcGtncy9zeXNwcm9m L3RlbXBsYXRlCmluZGV4IDY4YmNhNjAyNTUzLi5lYWU1MWVhNzM1NiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9zeXNwcm9mL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3N5c3Byb2YnCiBwa2duYW1lPXN5c3By b2YKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV9ndGs9dHJ1ZSAtRHN5c3RlbWR1bml0 ZGlyPWRlbGV0ZW1lIgpAQCAtMTEsNyArMTEsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwOi8vc3lzcHJvZi5jb20vIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09ODY3MGRiNGRhY2Y3YjIxOWQzMGM1NzVjNDY1YjE3YzhlZDY3 MjRkYmFkZTM0N2YyY2RlOTU0OGJmZjAzOTEwOAorY2hlY2tzdW09OGJjZDcyOGRjMmY3NGU2ZjU4 OTQxMDM3MGRmYjFiODgwMTQ2OGJiM2NjMTgwM2FhMjQwNzM1YTdjZmYyNDFjZQogCiAjIGZvciBJ VFMgcnVsZXMKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSAxZmIzOWFhZmUxZDNi YTQ0YWE4ZDNhMWM3NGM1OWZkMjE0MmE3ZWI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIyLzEwM10gdHJhY2tlcjogdXBk YXRlIHRvIDIuMy42CgotLS0KIC4uLi90cmFja2VyL3BhdGNoZXMvZmFpbGluZy10ZXN0LW11c2wu cGF0Y2ggICB8IDI0ICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdHJhY2tlci90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjkg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3RyYWNrZXIvcGF0Y2hlcy9mYWlsaW5nLXRlc3QtbXVzbC5wYXRjaAoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmctdGVzdC1tdXNsLnBhdGNoIGIvc3JjcGtncy90 cmFja2VyL3BhdGNoZXMvZmFpbGluZy10ZXN0LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmMThmMDZkZTliCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy90cmFja2VyL3BhdGNoZXMvZmFpbGluZy10ZXN0LW11c2wucGF0Y2gKQEAgLTAsMCArMSwy NCBAQAorRnJvbSA1ZWU3ZDU4ZjE5NTQyZDFkYWM4NzJiYWRkNzI2NjllZTI4OGJkMzE2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIyOjExOjUwICswMjAwCitTdWJqZWN0OiBb UEFUQ0hdIGRyb3AgdGVzdCB0aGF0IGZhaWxzIG9uIG11c2wKKworLS0tCisgdGVzdHMvbGlidHJh Y2tlci1jb21tb24vbWVzb24uYnVpbGQgfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlv bigtKQorCitkaWZmIC0tZ2l0IHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1aWxkIHRl c3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1aWxkCitpbmRleCA1NWI3YWRhLi42OTY4OGUw IDEwMDY0NAorLS0tIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1aWxkCisrKysgdGVz dHMvbGlidHJhY2tlci1jb21tb24vbWVzb24uYnVpbGQKK0BAIC0yLDcgKzIsNiBAQCBsaWJ0cmFj a2VyX2NvbW1vbl90ZXN0cyA9IFsKKyAgICAgJ2RhdGUtdGltZScsCisgICAgICdkYnVzJywKKyAg ICAgJ2ZpbGUtdXRpbHMnLAorLSAgICAnc2NoZWQnLAorICAgICAndHlwZS11dGlscycsCisgICAg ICd1dGlscycsCisgXQorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2Vy L3RlbXBsYXRlIGIvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlCmluZGV4IDM3MDc0Y2IzNDhkLi44 MTA2NzU2NzdmZSAxMDA2NDQKLS0tIGEvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAndHJhY2tlcicKIHBrZ25hbWU9dHJhY2tlcgotdmVyc2lvbj0yLjMuMQotcmV2aXNpb249 MgordmVyc2lvbj0yLjMuNgorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZG9jcz1mYWxzZSAtRGZ0cz10cnVlIC1EZnVu Y3Rpb25hbF90ZXN0cz1mYWxzZQogIC1Eam91cm5hbD10cnVlIC1EbWFuPXRydWUgLURuZXR3b3Jr X21hbmFnZXI9ZW5hYmxlZCAtRHN0ZW1tZXI9ZGlzYWJsZWQKICAtRHN5c3RlbWRfdXNlcl9zZXJ2 aWNlcz1ubyIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCito b3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtl ZGVwZW5kcz0iZGJ1cy1kZXZlbCBsaWJnbGliLWRldmVsIGljdS1kZXZlbCBqc29uLWdsaWItZGV2 ZWwKICBsaWJzb3VwLWRldmVsIGxpYnhtbDItZGV2ZWwgc3FsaXRlLWRldmVsIE5ldHdvcmtNYW5h Z2VyLWRldmVsCiAgYmFzaC1jb21wbGV0aW9uIgorY2hlY2tkZXBlbmRzPSJ0YXIiCiBzaG9ydF9k ZXNjPSJQZXJzb25hbCBzZWFyY2ggdG9vbCBhbmQgc3RvcmFnZSBzeXN0ZW0iCiBtYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2xpdmUuZ25vbWUub3JnL1RyYWNrZXIiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vdHJhY2tlci8ke3ZlcnNpb24lLip9L3RyYWNrZXItJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT1iNjc0ODcyNmU0NjVhZDJmNGQ5OTE1NjA2MzRiMWZkMGRmODg0 MWYzZDk4MWIzYjgzN2M0MTYyYWJlZGYwOGExCitjaGVja3N1bT1iZDFlYjQxMjIxMzUyOTZmYTdi NTdiMWMzZmEwZWQ2MDJjZjdkMDZjMGI4ZTUzNGQwYmQxN2ZmNWY5N2ZlZWYyCiAKIGlmIFsgIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBkYnVzIgoKRnJvbSBlMGNl YWIzNGZhNDdlMjcwNjBiN2NiZGJjNDc2ZjczOTVmNzJhNjYyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxNyBTZXAgMjAyMCAwMDoyMjoxMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIzLzEwM10gdHJh Y2tlci1taW5lcnM6IHVwZGF0ZSB0byAyLjMuNQoKLS0tCiBzcmNwa2dzL3RyYWNrZXItbWluZXJz L3RlbXBsYXRlIHwgMTcgKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2Vy dGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyLW1p bmVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUKaW5kZXggMDIw YzEyNGYzMjIuLjYwMGQxNDQyMThjIDEwMDY0NAotLS0gYS9zcmNwa2dzL3RyYWNrZXItbWluZXJz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0cmFja2VyLW1pbmVycycKIHBrZ25hbWU9dHJh Y2tlci1taW5lcnMKLXZlcnNpb249Mi4zLjEKLXJldmlzaW9uPTMKK3ZlcnNpb249Mi4zLjUKK3Jl dmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLUR0cmFja2VyX2Nv cmU9c3lzdGVtIC1EZG9jcz1mYWxzZSAtRGV4dHJhY3Q9dHJ1ZQogIC1EZnVuY3Rpb25hbF90ZXN0 cz1mYWxzZSAtRGN1ZT1lbmFibGVkIC1EZXhpZj1lbmFibGVkIC1EZmxhYz1lbmFibGVkCkBAIC0x MCwyMSArMTAsMjIgQEAgY29uZmlndXJlX2FyZ3M9Ii1EdHJhY2tlcl9jb3JlPXN5c3RlbSAtRGRv Y3M9ZmFsc2UgLURleHRyYWN0PXRydWUKICAtRHRpZmY9ZW5hYmxlZCAtRHZvcmJpcz1lbmFibGVk IC1EeG1sPWVuYWJsZWQgLUR4bXA9ZW5hYmxlZCAtRHhwcz1lbmFibGVkCiAgLURiYXR0ZXJ5X2Rl dGVjdGlvbj11cG93ZXIgLURjaGFyc2V0X2RldGVjdGlvbj1pY3UKICAtRGdlbmVyaWNfbWVkaWFf ZXh0cmFjdG9yPWdzdHJlYW1lciAtRGdzdHJlYW1lcl9iYWNrZW5kPWRpc2NvdmVyZXIKLSAtRHN5 c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIKKyAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyAtRG1p bmVyX3Jzcz1mYWxzZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIGlu dGx0b29sIgogbWFrZWRlcGVuZHM9InRyYWNrZXItZGV2ZWwgZmZtcGVnLWRldmVsIGRidXMtZGV2 ZWwgZXhlbXBpLWRldmVsIGxpYmZsYWMtZGV2ZWwKICBsaWJnbGliLWRldmVsIGxpYmdleGl2Mi1k ZXZlbCBnc3RyZWFtZXIxLWRldmVsIGljdS1kZXZlbCBsaWJjdWUtZGV2ZWwKICBsaWJleGlmLWRl dmVsIGxpYmdzZi1kZXZlbCBsaWJneHBzLWRldmVsIGxpYmlwdGNkYXRhLWRldmVsIGxpYmpwZWct dHVyYm8tZGV2ZWwKICBsaWJvc2luZm8tZGV2ZWwgbGlicG5nLWRldmVsIGxpYnNlY2NvbXAtZGV2 ZWwgdGlmZi1kZXZlbCBsaWJ4bWwyLWRldmVsCiAgbGlidm9yYmlzLWRldmVsIHBvcHBsZXItZ2xp Yi1kZXZlbCB0YWdsaWItZGV2ZWwgdG90ZW0tcGwtcGFyc2VyLWRldmVsCi0gdXBvd2VyLWRldmVs IHpsaWItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwgZ2lmbGliLWRldmVsIgorIHVwb3dl ci1kZXZlbCB6bGliLWRldmVsIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsIGdpZmxpYi1kZXZlbCBs aWJoYXJmYnV6eiIKIHNob3J0X2Rlc2M9IkRhdGEgbWluZXJzIGZvciB0cmFja2VyIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2xpYnRy YWNrZXItbWluZXIvc3RhYmxlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3RyYWNrZXItbWlu ZXJzLyR7dmVyc2lvbiUuKn0vdHJhY2tlci1taW5lcnMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT03YjFkZTA2YTdhNzllYTFjNzgxM2M4YTIxZjhjZDFjNTVmMmI5NWY3OTljZjlmNDdmMDIw NGYzYmU4YTU5MGUwCitjaGVja3N1bT05NTA5ZDM3ZmIyOWFjZDIzMzA1OGY0ZGY1YmQxMjM0YjY5 MmFjNmY5NDZiYzJlNWY3YjhkYmY1MWRmZTViOWZhCiAKLSMgTWlzc2luZyBsaWJncnNzCi1jb25m aWd1cmVfYXJncys9IiAtRG1pbmVyX3Jzcz1mYWxzZSIKLW1ha2VkZXBlbmRzKz0iIGxpYmhhcmZi dXp6IgorIyByZWxpZXMgb24gdW5zdXBwb3J0ZWQgb3BzIGluIGNocm9vdAorZG9fY2hlY2soKSB7 CisJOgorfQoKRnJvbSBlNzdmYjI0YjVkYTU5M2U2YjQ2NmI2NThkMTUwMDlkOWI5MTNjODdhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMDoxNTo0OSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDI0LzEwM10gTmV3IHBhY2thZ2U6IHRyYWNrZXIzLTMuMC4wCgotLS0KIGNvbW1vbi9z aGxpYnMgICAgICAgICAgICAgfCAgMyArKy0KIHNyY3BrZ3MvbGlidHJhY2tlcjMgICAgICAgfCAg MSArCiBzcmNwa2dzL3RyYWNrZXIzLWRldmVsICAgIHwgIDEgKwogc3JjcGtncy90cmFja2VyMy90 ZW1wbGF0ZSB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj cGtncy90cmFja2VyMy91cGRhdGUgICB8ICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlidHJh Y2tlcjMKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3RyYWNrZXIzLWRldmVsCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyMy90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvdHJhY2tlcjMvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2Nv bW1vbi9zaGxpYnMKaW5kZXggOWFkNDQzYTUzNjcuLjUwNzc3NzUxZjRjIDEwMDY0NAotLS0gYS9j b21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMxNDQsNiArMzE0NCw4IEBAIGxp YmNwcGNtcy5zby4xIGNwcGNtcy0xLjAuNV8xCiBsaWJjcHBkYi5zby4wIGNwcGRiLTAuMy4xXzEK IGxpYnRyYWNrZXItY29udHJvbC0yLjAuc28uMCBsaWJ0cmFja2VyLTIuMC4wXzEKIGxpYnRyYWNr ZXItc3BhcnFsLTIuMC5zby4wIGxpYnRyYWNrZXItMi4wLjBfMQorbGlidHJhY2tlci1taW5lci0y LjAuc28uMCBsaWJ0cmFja2VyLTIuMC4xXzEKK2xpYnRyYWNrZXItc3BhcnFsLTMuMC5zby4wIGxp YnRyYWNrZXIzLTMuMC4wXzEKIGxpYmRvY2thcHAuc28uMyBsaWJkb2NrYXBwLTAuNy4yXzEKIGxp YmtyZGNjb3JlLnNvLjUga3JkYy0xNy4wNC4zXzEKIGxpYkFyY3VzLnNvLjMgbGliQXJjdXMtMy4x LjBfMQpAQCAtMzE2Miw3ICszMTY0LDYgQEAgbGlidmFsYWRvYy0wLjUwLnNvLjAgbGlidmFsYWRv Yy0wLjUwLjBfMQogbGlidmFsYWNjb2RlZ2VuLnNvIGxpYnZhbGEtMC40NC4wXzEKIGxpYnBob2Rh di0yLjAuc28uMCBwaG9kYXYtMi4yXzEKIGxpYmdmc2hhcmUuc28uMiBsaWJnZnNoYXJlLTIuMC4w XzEKLWxpYnRyYWNrZXItbWluZXItMi4wLnNvLjAgbGlidHJhY2tlci0yLjAuMV8xCiBsaWJ0YWNh Y3Muc28uMSB0YWNhY3MtNC4wLjQuMjhfMQogbGliZmZtczIuc28uNCBsaWJmZm1zMi0yLjIzLjFf MQogbGliZGRjdXRpbC5zby4zIGRkY3V0aWwtMC45LjlfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aWJ0cmFja2VyMyBiL3NyY3BrZ3MvbGlidHJhY2tlcjMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5k ZXggMDAwMDAwMDAwMDAuLjU5ZGQ2OTExYjNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aWJ0cmFja2VyMwpAQCAtMCwwICsxIEBACit0cmFja2VyMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMtZGV2ZWwgYi9zcmNwa2dzL3RyYWNr ZXIzLWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi41OWRkNjkx MWIzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdHJhY2tlcjMtZGV2ZWwKQEAgLTAsMCAr MSBAQAordHJhY2tlcjMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmNwa2dzL3RyYWNrZXIzL3RlbXBsYXRlIGIvc3JjcGtncy90cmFja2VyMy90ZW1wbGF0ZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWMyMTAwZjI2Y2EKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzL3RlbXBsYXRlCkBAIC0wLDAgKzEsNTcgQEAKKyMg VGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXIzJworcGtnbmFtZT10cmFja2VyMwordmVyc2lvbj0z LjAuMAorcmV2aXNpb249MQord3Jrc3JjPXRyYWNrZXItJHt2ZXJzaW9ufQorYnVpbGRfc3R5bGU9 bWVzb24KK2J1aWxkX2hlbHBlcj0iZ2lyIgorY29uZmlndXJlX2FyZ3M9Ii1EZG9jcz1mYWxzZSAt RG1hbj10cnVlIC1EbmV0d29ya19tYW5hZ2VyPWVuYWJsZWQKKyAtRHN0ZW1tZXI9ZGlzYWJsZWQg LURzeXN0ZW1kX3VzZXJfc2VydmljZXM9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQg cGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEgYXNjaWlkb2MiCittYWtlZGVwZW5kcz0iZGJ1cy1k ZXZlbCBsaWJnbGliLWRldmVsIGljdS1kZXZlbCBqc29uLWdsaWItZGV2ZWwKKyBsaWJzb3VwLWRl dmVsIGxpYnhtbDItZGV2ZWwgc3FsaXRlLWRldmVsIE5ldHdvcmtNYW5hZ2VyLWRldmVsCisgYmFz aC1jb21wbGV0aW9uIgorY2hlY2tkZXBlbmRzPSJ0YXIgcHl0aG9uMy1nb2JqZWN0Igorc2hvcnRf ZGVzYz0iUGVyc29uYWwgc2VhcmNoIHRvb2wgYW5kIHN0b3JhZ2Ugc3lzdGVtIgorbWFpbnRhaW5l cj0icTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4iCitsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2xpdmUuZ25vbWUub3JnL1Ry YWNrZXIiCitkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdHJhY2tlci8ke3ZlcnNpb24lLip9L3Ry YWNrZXItJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT03MDg2NDUxNWY1NzUyYjA1OTZmOWM0 NDJkN2U4NjU4NTczNGY0MmI4MmE5MjMzZTU1ZGFlNmFjMmIwZDMzODM3CisKK2lmIFsgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBkYnVzIgorZmkKKworIyBuZWVk cyBhIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkgeworCToKK30KKworcG9zdF9wYXRjaCgpIHsKKwlp ZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJIyBUZWxsIHRoZSBidWlsZCBzeXN0ZW0gdGhh dCB3ZSBoYXZlIGludGVybmFsIGZ0czUgaW4gc3FsaXRlMworCQl2c2VkIC1pICIvXFtwcm9wZXJ0 aWVzXF0vYSBzcWxpdGUzX2hhc19mdHM1ID0gJ3RydWUnIiB4YnBzX21lc29uLmNyb3NzCisJZmkK K30KKwordHJhY2tlcjMtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSJsaWJ0cmFja2VyMz49 JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBsaWJnbGliLWRldmVsIGpzb24tZ2xpYi1kZXZlbAorCSBs aWJzb3VwLWRldmVsIgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2df aW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL3NoYXJlL2dpci0x LjAKKwkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJ dm1vdmUgInVzci9saWIvKi5zbyIKKwl9Cit9CisKK2xpYnRyYWNrZXIzX3BhY2thZ2UoKSB7CisJ c2hvcnRfZGVzYys9IiAtIHNoYXJlZCBsaWJyYXJpZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlICJ1c3IvbGliLyouc28uKiIKKwkJdm1vdmUgdXNyL2xpYi9naXJlcG9zaXRvcnktMS4wCisJ fQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyMy91cGRhdGUgYi9zcmNwa2dzL3RyYWNr ZXIzL3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk4NDdl MjViNTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzL3VwZGF0ZQpAQCAtMCww ICsxIEBACitwYXR0ZXJuPSJcUXRyYWNrZXJcRS1cS1swLTldK1wuWzAtOV0qXC5bMC05Ll0qWzAt OV0oPz0pIgoKRnJvbSAxMGM0OGUwOGU0NzIwOTlmZWIyYTg1ZmMyNWY2ODAwNWZiYTkwYTU3IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMDoxNjowNCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDI1LzEwM10gTmV3IHBhY2thZ2U6IHRyYWNrZXIzLW1pbmVycy0zLjAuMAoKLS0tCiBz cmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2J1aWxkLnBhdGNoICAgfCAgMjUgKysrKysK IC4uLi9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10cmltLnBhdGNoICAgICAgICB8IDEwNCArKysr KysrKysrKysrKysrKysKIHNyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3RlbXBsYXRlICAgICAgICAg ICAgICB8ICAzNCArKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTYzIGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2J1aWxkLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9k b250LXVzZS1tYWxsb2MtdHJpbS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdHJh Y2tlcjMtbWluZXJzL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyMy1taW5l cnMvcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMv YnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1OGEw ZDhjMGY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hl cy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIDhkNzA5YzNiNTVkYzkyNjIxZDU4 NzFmYjQyOWEwMmM3OGNjNGIyZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAg MjM6NTc6MzIgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IGJ1aWxkCisKKy0tLQorIHNyYy9s aWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IHNyYy9saWJ0cmFja2VyLW1p bmVyL21lc29uLmJ1aWxkIHNyYy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkCitpbmRleCBh MjI2NjIzLi45ZWFjZWUzIDEwMDY0NAorLS0tIHNyYy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1 aWxkCisrKysgc3JjL2xpYnRyYWNrZXItbWluZXIvbWVzb24uYnVpbGQKK0BAIC00MCw3ICs0MCw3 IEBAIGVuZGlmCisgCisgbGlidHJhY2tlcl9taW5lciA9IGxpYnJhcnkoCisgICAgICd0cmFja2Vy LW1pbmVyLScgKyB0cmFja2VyX2FwaV92ZXJzaW9uLAorLSAgICBtaW5lcl9lbnVtc1swXSwgbWlu ZXJfZW51bXNbMV0sIG1pbmVyX3NvdXJjZXMsCisrICAgIG1pbmVyX2VudW1zWzBdLCBtaW5lcl9l bnVtc1sxXSwgdHJhY2tlcl9taW5lcnNfY29tbW9uX2VudW1faGVhZGVyLCBtaW5lcl9zb3VyY2Vz LAorICAgICBjX2FyZ3M6IHRyYWNrZXJfY19hcmdzLAorICAgICBpbnN0YWxsOiB0cnVlLAorICAg ICBpbnN0YWxsX2RpcjogdHJhY2tlcl9pbnRlcm5hbF9saWJzX2RpciwKKy0tIAorMi4yOC4wCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvZG9udC11c2UtbWFs bG9jLXRyaW0ucGF0Y2ggYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQtdXNl LW1hbGxvYy10cmltLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li4zZjQyYTkxMjA5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJz L3BhdGNoZXMvZG9udC11c2UtbWFsbG9jLXRyaW0ucGF0Y2gKQEAgLTAsMCArMSwxMDQgQEAKK1Jl YXNvbjogVGhpcyByZXZlcnRzIDE5MWNjNTIxOGI1M2ZiYTg1YmFlYzFjOGMxN2JiMjQ2YTc0MDQ0 YzAgYW5kCitjY2IwYjRlYmJmZjRkZmFjZjE3ZWE2N2NlNTZiYjI3YzM5NzQxODExLiBtYWxsb2Nf dHJpbSBpcyBnbGliYyBzcGVjaWZpYworQVBJLCBzbyB0aGlzIGNhdXNlcyB0aGUgYnVpbGQgdG8g ZmFpbCBvbiBtdXNsLgorVXBzdHJlYW06IGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90 cmFja2VyLW1pbmVycy8tL2lzc3Vlcy8xMzUKK2RpZmYgLS1naXQgYS9zcmMvbWluZXJzL2ZzL3Ry YWNrZXItbWFpbi5jIGIvc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYworaW5kZXggYzYwMDcw ZC4uMjIwOTE2ZCAxMDA2NDQKKy0tLSBzcmMvbWluZXJzL2ZzL3RyYWNrZXItbWFpbi5jCisrKysg c3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYworQEAgLTU3LDcgKzU3LDYgQEAKKyBzdGF0aWMg R01haW5Mb29wICptYWluX2xvb3A7Cisgc3RhdGljIEdEQnVzUHJveHkgKmluZGV4X3Byb3h5Owor IHN0YXRpYyBHUHRyQXJyYXkgKnByb3h5X2ZvbGRlcnM7Cistc3RhdGljIGd1aW50IGNsZWFudXBf aWQ7CisgCisgc3RhdGljIGdpbnQgaW5pdGlhbF9zbGVlcCA9IC0xOworIHN0YXRpYyBnYm9vbGVh biBub19kYWVtb247CitAQCAtNDMzLDM3ICs0MzIsNiBAQCBtaW5lcl9zdGFydCAoVHJhY2tlck1p bmVyICAqbWluZXIsCisgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtaW5lcik7CisgfQorIAorLXN0YXRpYyBnYm9vbGVhbgorLWNsZWFudXBfY2IgKGdwb2ludGVy IHVzZXJfZGF0YSkKKy17CistCS8qIFJlY2xhaW0gYXMgbXVjaCBtZW1vcnkgYXMgcG9zc2libGUg Ki8KKy0JbWFsbG9jX3RyaW0gKDApOworLQorLQljbGVhbnVwX2lkID0gMDsKKy0KKy0JcmV0dXJu IEdfU09VUkNFX1JFTU9WRTsKKy19CistCistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQs IDApCistc3RhdGljIHZvaWQKKy1vbl9sb3dfbWVtb3J5IChHTWVtb3J5TW9uaXRvciAgICAgICAg ICAgICptb25pdG9yLAorLSAgICAgICAgICAgICAgIEdNZW1vcnlNb25pdG9yV2FybmluZ0xldmVs IGxldmVsLAorLSAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAgICAgICAgIHVzZXJf ZGF0YSkKKy17CistCWlmIChsZXZlbCA+IEdfTUVNT1JZX01PTklUT1JfV0FSTklOR19MRVZFTF9M T1cpCistCQltYWxsb2NfdHJpbSAoMCk7CistfQorLSNlbmRpZgorLQorLXN0YXRpYyB2b2lkCist bWluZXJfc3RhcnRlZF9jYiAoVHJhY2tlck1pbmVyRlMgKmZzKQorLXsKKy0JaWYgKGNsZWFudXBf aWQpIHsKKy0JCWdfc291cmNlX3JlbW92ZSAoY2xlYW51cF9pZCk7CistCQljbGVhbnVwX2lkID0g MDsKKy0JfQorLX0KKy0KKyBzdGF0aWMgdm9pZAorIG1pbmVyX2ZpbmlzaGVkX2NiIChUcmFja2Vy TWluZXJGUyAqZnMsCisgICAgICAgICAgICAgICAgICAgIGdkb3VibGUgICAgICAgICBzZWNvbmRz X2VsYXBzZWQsCitAQCAtNDgzLDggKzQ1MSw2IEBAIG1pbmVyX2ZpbmlzaGVkX2NiIChUcmFja2Vy TWluZXJGUyAqZnMsCisgCQkJCQkJCSBUUlVFKTsKKyAJfQorIAorLQljbGVhbnVwX2lkID0gZ190 aW1lb3V0X2FkZF9zZWNvbmRzICgzMCwgY2xlYW51cF9jYiwgTlVMTCk7CistCisgCS8qIFdlJ3Jl IG5vdCBzdGlja2luZyBhcm91bmQgZm9yIGZpbGUgdXBkYXRlcywgc28gc3RvcAorIAkgKiB0aGUg bWFpbmxvb3AgYW5kIGV4aXQuCisgCSAqLworQEAgLTk0MSw5ICs5MDcsNiBAQCBtYWluIChnaW50 IGFyZ2MsIGdjaGFyICphcmd2W10pCisgCVRyYWNrZXJFbmRwb2ludERCdXMgKmVuZHBvaW50Owor IAlUcmFja2VyRG9tYWluT250b2xvZ3kgKmRvbWFpbl9vbnRvbG9neTsKKyAJR0NhbmNlbGxhYmxl ICpjYW5jZWxsYWJsZTsKKy0jaWYgR0xJQl9DSEVDS19WRVJTSU9OICgyLCA2NCwgMCkKKy0JR01l bW9yeU1vbml0b3IgKm1lbW9yeV9tb25pdG9yOworLSNlbmRpZgorIAlnY2hhciAqZG9tYWluX25h bWUsICpkYnVzX25hbWU7CisgCisgCW1haW5fbG9vcCA9IE5VTEw7CitAQCAtMTEyOSwxOCArMTA5 MiwxMCBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICphcmd2W10pCisgCQl0cmFja2VyX21pbmVy X2ZpbGVzX3NldF9tdGltZV9jaGVja2luZyAoVFJBQ0tFUl9NSU5FUl9GSUxFUyAobWluZXJfZmls ZXMpLCBkb19tdGltZV9jaGVja2luZyk7CisgCX0KKyAKKy0JZ19zaWduYWxfY29ubmVjdCAobWlu ZXJfZmlsZXMsICJzdGFydGVkIiwKKy0JCQkgIEdfQ0FMTEJBQ0sgKG1pbmVyX3N0YXJ0ZWRfY2Ip LAorLQkJCSAgTlVMTCk7CisgCWdfc2lnbmFsX2Nvbm5lY3QgKG1pbmVyX2ZpbGVzLCAiZmluaXNo ZWQiLAorIAkJCSAgR19DQUxMQkFDSyAobWluZXJfZmluaXNoZWRfY2IpLAorIAkJCSAgTlVMTCk7 CisgCistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCistCW1lbW9yeV9tb25pdG9y ID0gZ19tZW1vcnlfbW9uaXRvcl9kdXBfZGVmYXVsdCAoKTsKKy0JZ19zaWduYWxfY29ubmVjdCAo bWVtb3J5X21vbml0b3IsICJsb3ctbWVtb3J5LXdhcm5pbmciLCBvbl9sb3dfbWVtb3J5LCBOVUxM KTsKKy0jZW5kaWYKKy0KKyAJLyogUHJlZW1wdCBjcmVhdGlvbiBvZiBncmFwaHMgKi8KKyAJdHJh Y2tlcl9zcGFycWxfY29ubmVjdGlvbl91cGRhdGVfYXN5bmMgKHRyYWNrZXJfbWluZXJfZ2V0X2Nv bm5lY3Rpb24gKG1pbmVyX2ZpbGVzKSwKKyAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJDUkVBVEUgU0lMRU5UIEdSQVBIIHRyYWNrZXI6RmlsZVN5c3RlbTsgIgorQEAg LTExODMsMTEgKzExMzgsNiBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICphcmd2W10pCisgCXRy YWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fY2xvc2UgKHNwYXJxbF9jb25uKTsKKyAJZ19vYmplY3Rf dW5yZWYgKHNwYXJxbF9jb25uKTsKKyAKKy0jaWYgR0xJQl9DSEVDS19WRVJTSU9OICgyLCA2NCwg MCkKKy0JZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jIChtZW1vcnlfbW9uaXRv ciwgb25fbG93X21lbW9yeSwgTlVMTCk7CistCWdfb2JqZWN0X3VucmVmIChtZW1vcnlfbW9uaXRv cik7CistI2VuZGlmCistCisgCWdfcHJpbnQgKCJcbk9LXG5cbiIpOworIAorIAlyZXR1cm4gRVhJ VF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyMy1taW5lcnMvdGVtcGxhdGUg Yi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMGJmMTRiNDg0NzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZQpAQCAtMCwwICsxLDM0IEBACisjIFRlbXBsYXRlIGZp bGUgZm9yICd0cmFja2VyMy1taW5lcnMnCitwa2duYW1lPXRyYWNrZXIzLW1pbmVycwordmVyc2lv bj0zLjAuMAorcmV2aXNpb249MQord3Jrc3JjPXRyYWNrZXItbWluZXJzLSR7dmVyc2lvbn0KK2J1 aWxkX3N0eWxlPW1lc29uCisjIG1pc3NpbmcgbGliZ3JzcyBmb3IgbWluZXJfcnNzCitjb25maWd1 cmVfYXJncz0iLUR0cmFja2VyX2NvcmU9c3lzdGVtIC1EZG9jcz1mYWxzZSAtRGV4dHJhY3Q9dHJ1 ZQorIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZSAtRGN1ZT1lbmFibGVkIC1EZXhpZj1lbmFibGVk IC1EZmxhYz1lbmFibGVkCisgLURnaWY9ZW5hYmxlZCAtRGdzZj1lbmFibGVkIC1EaXB0Yz1lbmFi bGVkIC1EaXNvPWVuYWJsZWQgLURqcGVnPWVuYWJsZWQKKyAtRHBkZj1lbmFibGVkIC1EcGxheWxp c3Q9ZW5hYmxlZCAtRHBuZz1lbmFibGVkIC1EcmF3PWVuYWJsZWQgLUR0YWdsaWI9ZW5hYmxlZAor IC1EdGlmZj1lbmFibGVkIC1Edm9yYmlzPWVuYWJsZWQgLUR4bWw9ZW5hYmxlZCAtRHhtcD1lbmFi bGVkIC1EeHBzPWVuYWJsZWQKKyAtRG1pbmVyX3Jzcz1mYWxzZSAtRGJhdHRlcnlfZGV0ZWN0aW9u PXVwb3dlciAtRGNoYXJzZXRfZGV0ZWN0aW9uPWljdQorIC1EZ2VuZXJpY19tZWRpYV9leHRyYWN0 b3I9Z3N0cmVhbWVyIC1EZ3N0cmVhbWVyX2JhY2tlbmQ9ZGlzY292ZXJlcgorIC1Ec3lzdGVtZF91 c2VyX3NlcnZpY2VzPWZhbHNlIC1EbmV0d29ya19tYW5hZ2VyPWVuYWJsZWQiCitob3N0bWFrZWRl cGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCBpbnRsdG9vbCBhc2NpaWRvYyIKK21ha2VkZXBl bmRzPSJ0cmFja2VyMy1kZXZlbCBmZm1wZWctZGV2ZWwgZGJ1cy1kZXZlbCBleGVtcGktZGV2ZWwg bGliZmxhYy1kZXZlbAorIGxpYmdsaWItZGV2ZWwgbGliZ2V4aXYyLWRldmVsIGdzdHJlYW1lcjEt ZGV2ZWwgaWN1LWRldmVsIGxpYmN1ZS1kZXZlbAorIGxpYmV4aWYtZGV2ZWwgbGliZ3NmLWRldmVs IGxpYmd4cHMtZGV2ZWwgbGliaXB0Y2RhdGEtZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbAorIGxp Ym9zaW5mby1kZXZlbCBsaWJwbmctZGV2ZWwgbGlic2VjY29tcC1kZXZlbCB0aWZmLWRldmVsIGxp YnhtbDItZGV2ZWwKKyBsaWJ2b3JiaXMtZGV2ZWwgcG9wcGxlci1nbGliLWRldmVsIHRhZ2xpYi1k ZXZlbCB0b3RlbS1wbC1wYXJzZXItZGV2ZWwKKyB1cG93ZXItZGV2ZWwgemxpYi1kZXZlbCBnc3Qt cGx1Z2lucy1iYXNlMS1kZXZlbCBnaWZsaWItZGV2ZWwKKyBOZXR3b3JrTWFuYWdlci1kZXZlbCBs aWJoYXJmYnV6eiIKK3Nob3J0X2Rlc2M9IkRhdGEgbWluZXJzIGZvciB0cmFja2VyMyIKK21haW50 YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKK2hvbWVwYWdlPSJodHRwczovL2RldmVsb3Blci5nbm9tZS5vcmcvbGlidHJhY2tlci1t aW5lci9zdGFibGUiCitkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdHJhY2tlci1taW5lcnMvJHt2 ZXJzaW9uJS4qfS90cmFja2VyLW1pbmVycy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPWJi NDgxYTdjMjNjNWRlZjRmMjE1NjI3YTA2MzBmYmU5ZDFjNjRmMzMxOTgyNTg1OWQ3YTczNjQ1NzM4 ZjQwNDIKKworIyByZWxpZXMgb24gdW5zdXBwb3J0ZWQgb3BzIGluIGNocm9vdAorZG9fY2hlY2so KSB7CisJOgorfQoKRnJvbSA5ZTkyZTI5MzNjMjkyMGRlMjc0ZTI2YzI5NDI5ZTBmZjcwNTY4Y2Y1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49 MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAyMCAwNjo0Nzo1NiArMDcwMApTdWJqZWN0OiBbUEFUQ0gg MDI2LzEwM10gYmlqaWJlbjogdXBkYXRlIHRvIDMuMzYuMy4KCi0tLQogc3JjcGtncy9iaWppYmVu L3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iaWppYmVuL3RlbXBsYXRlIGIv c3JjcGtncy9iaWppYmVuL3RlbXBsYXRlCmluZGV4IDczMDA1M2I1ZDFjLi4wYmZhNmYyNzVhYyAx MDA2NDQKLS0tIGEvc3JjcGtncy9iaWppYmVuL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmlqaWJl bi90ZW1wbGF0ZQpAQCAtMSw5ICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiaWppYmVu JwogcGtnbmFtZT1iaWppYmVuCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM2LjMKIHJldmlz aW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9h cmdzPSItRHplaXRnZWlzdD10cnVlIgogaG9zdG1ha2VkZXBlbmRzPSJpdHN0b29sIHBrZy1jb25m aWcgZ2V0dGV4dCIKIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWd0ay1kZXZlbCBldm9sdXRpb24tZGV2 ZWwgdHJhY2tlci1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCiAgemVpdGdlaXN0LWRldmVsIGxpYmhh bmR5LWRldmVsIgpAQCAtMTQsNSArMTUsOSBAQCBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Ob3RlcyIKIGNoYW5nZWxvZz0i aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2JpamliZW4vZ25vbWUtJHt2 ZXJzaW9uJS4qfS9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MjEyZjY2 YTNkMmM3MTdkZmIzZDM3MjIwNDI2MTc4MDg5Mzk1ZGEyM2VmOWYzZDA1MTcxM2FhZjY1OTdhNDEx MAorY2hlY2tzdW09NzBlOWI2MjFlMTFiZjdhZjZjNjI0OGY4Yzk5ODMwZjZmZmJmZjYwNWZiNDNh ODQ4ZDI2ODgwZTdlMWI1MmRkNgogbm9jcm9zcz0iZXZvbHV0aW9uLWRhdGEtc2VydmVyIGNyb3Nz IgorCitwcmVfYnVpbGQoKSB7CisJbmluamEgLUMgYnVpbGQgc3JjL2xpYmJpamkvYmlqaS1tYXJz aGFsZXJzLmgKK30KCkZyb20gNDk1YjdiZjgyMDU5MmRkYjZiNjZmZTc0Yzk0NGYyNjZlMzVjNDIy NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6MjA6NTAgKzAyMDAKU3ViamVj dDogW1BBVENIIDAyNy8xMDNdIGdyYXBoZW5lOiB1cGRhdGUgdG8gMS4xMC4yCgotLS0KIHNyY3Br Z3MvZ3JhcGhlbmUvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ncmFwaGVuZS90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUKaW5kZXggZjVjYzk5YjQxMjguLmU4Njgy MzliZmEwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ3JhcGhlbmUvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdncmFwaGVuZScKIHBrZ25hbWU9Z3JhcGhlbmUKLXZlcnNpb249MS4xMC4wCit2ZXJzaW9uPTEu MTAuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpA QCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iTUlUIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9lYmFz c2kvZ3JhcGhlbmUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ3JhcGhlbmUvJHt2ZXJzaW9u JS4qfS9ncmFwaGVuZS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTQwNmQ5N2Y1MWRkNGNh NjFlOTFmODQ2NjZhMDBjM2U5NzZkM2U2NjdjZDI0OGI3NmQ5MmZkYjM1Y2U4NzY0OTkKK2NoZWNr c3VtPWU5N2RlODIwOGYxYWFjNGY5MTNkNGZhNzFhYjczYTcwMzRlODA3MTg2ZmViMmFiZTU1ODc2 ZTUxYzQyNWE3ZjYKIAogY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJYXJtKikgY29u ZmlndXJlX2FyZ3MrPSIgLURhcm1fbmVvbj1mYWxzZSIgOzsKCkZyb20gZmE5OTRkYWZmODY1OWE5 MjVkNWNhMzU1ZDQ3N2RmMWQ0ZmZhOTZhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIw MjAgMjA6MjI6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyOC8xMDNdIGFtdGs6IHVwZGF0ZSB0 byA1LjIuMAoKLS0tCiBzcmNwa2dzL2FtdGsvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9hbXRrL3RlbXBsYXRlIGIvc3JjcGtncy9hbXRrL3RlbXBsYXRlCmluZGV4IDQ0OWM1N2UwN2U2 Li40MzNiZTJiOWM1NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9hbXRrL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvYW10ay90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2FtdGsnCiBwa2duYW1lPWFtdGsKLXZlcnNpb249NS4xLjEKK3ZlcnNpb249NS4yLjAKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAt MTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9Qcm9qZWN0cy9BbXRrIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2FtdGsvJHt2 ZXJzaW9uJS4qfS9hbXRrLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Zjk2NTZiZGQ0Mjc4 YWFiZmI4NTU0ZjAyOTA0OWI5ZmZhZjUxYjUzZmFhNDYzNDgzYTg0MDM2NTQ2MzM1NWRmMQorY2hl Y2tzdW09ODIwNTQ1YmI0Y2Y4N2VjZWJjMmMzNjM4ZDZiNmU1OGI4ZGJkNjBhNDE5YTliNDNjZjAy MDEyNGU1ZGFkNzA3OAogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1 bHQ9ImdpciIKCkZyb20gM2UxNDY4MjE1N2Q1MmU2YWVmZjA3ZGI4NmQ1ZTRlYmY5ZWJjNzE0NCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NDQ6NTEgKzAyMDAKU3ViamVjdDog W1BBVENIIDAyOS8xMDNdIGlvLmVsZW1lbnRhcnkuY29kZTogcmVidWlsZCBmb3IgdmFsYS0wLjUw CgotLS0KIC4uLi9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNoICB8IDI1 ICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRl ICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29k ZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lvLmVsZW1lbnRh cnkuY29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2ggYi9zcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29k ZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjllZWVlMWZiNjY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9pby5lbGVtZW50 YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gYTE4 NWRlMGU3NzE2YWEyZGUyYmYyMWRlOTZlNmM5YWYxZGNhODFhYSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTog V2VkLCAxNiBTZXAgMjAyMCAyMDo0MzowNyArMDIwMAorU3ViamVjdDogW1BBVENIXSBmaXggd2l0 aCB2YWxhLTAuNTAKKworLS0tCisgcGx1Z2lucy9vdXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxp bmUudmFsYSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKKworZGlmZiAtLWdpdCBwbHVnaW5zL291dGxpbmUvVmFsYS9WYWxhU3ltYm9sT3V0bGlu ZS52YWxhIHBsdWdpbnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEKK2luZGV4 IGM4ZGIzMzkuLjMxMzg2YTYgMTAwNjQ0CistLS0gcGx1Z2lucy9vdXRsaW5lL1ZhbGEvVmFsYVN5 bWJvbE91dGxpbmUudmFsYQorKysrIHBsdWdpbnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRs aW5lLnZhbGEKK0BAIC02MSw3ICs2MSw3IEBAIHB1YmxpYyBjbGFzcyBDb2RlLlBsdWdpbnMuVmFs YVN5bWJvbE91dGxpbmUgOiBPYmplY3QsIENvZGUuUGx1Z2lucy5TeW1ib2xPdXRsaW5lCisgCisg ICAgIHB1YmxpYyB2b2lkIHBhcnNlX3N5bWJvbHMgKCkgeworICAgICAgICAgdmFyIGNvbnRleHQg PSBuZXcgVmFsYS5Db2RlQ29udGV4dCAoKTsKKy0gICAgICAgIGNvbnRleHQucHJvZmlsZSA9IFZh bGEuUHJvZmlsZS5HT0JKRUNUOworKyAgICAgICAgY29udGV4dC5zZXRfdGFyZ2V0X3Byb2ZpbGUo VmFsYS5Qcm9maWxlLkdPQkpFQ1QpOworICAgICAgICAgY29udGV4dC5hZGRfc291cmNlX2ZpbGVu YW1lIChkb2MuZmlsZS5nZXRfcGF0aCAoKSk7CisgICAgICAgICBjb250ZXh0LnJlcG9ydCA9IG5l dyBSZXBvcnQgKCk7CisgICAgICAgICBpZiAoY2FuY2VsbGFibGUgIT0gbnVsbCkKKy0tIAorMi4y OC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRlIGIv c3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvdGVtcGxhdGUKaW5kZXggNDQ3ZTdlNWY2MGEuLjhk NDNhZDQxMzBkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2lvLmVsZW1lbnRhcnkuY29kZScKIHBrZ25hbWU9aW8u ZWxlbWVudGFyeS5jb2RlCiB2ZXJzaW9uPTMuNC4xCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiB3 cmtzcmM9ImNvZGUtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWcgdmFsYSBpbnRsdG9vbCBnbGliLWRldmVsIgoKRnJvbSBlY2I3YWQwNzE1 YWFkZWFiNWYzNWVmMmRmMDg0YWI5NzVmOTQ3ZTNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogV2VkLCAxNiBT ZXAgMjAyMCAyMDo1MjoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMwLzEwM10gcGhvZGF2OiB1 cGRhdGUgdG8gMi41CgotLS0KIHNyY3BrZ3MvcGhvZGF2L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcGhvZGF2L3RlbXBsYXRlIGIvc3JjcGtncy9waG9kYXYvdGVtcGxhdGUKaW5kZXgg MWE5MGExYTBlNTguLjEzMDkyODk2ODk5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bob2Rhdi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3Bob2Rhdi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3Bob2RhdicKIHBrZ25hbWU9cGhvZGF2Ci12ZXJzaW9uPTIuNAordmVy c2lvbj0yLjUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0i LURzeXN0ZW1kPWRpc2FibGVkIC1EYXZhaGk9ZW5hYmxlZCAtRGd0a19kb2M9ZGlzYWJsZWQKQEAg LTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvcGhvZGF2IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09N2RkZGMy Yjc1ZTA0ZDA4NjZiYjljOWE4MzAyOGE1OTdlYmQ3M2VmNGMzN2JkNmViZTEwMzJhODcwYjQzYjhj MworY2hlY2tzdW09NzFmMGE5Y2Q3MGFmZDRkZDE0MTJhMDI5ODMzMWRiYjhhYzcxYzAzNzdmNTIx MTdhZmMxNWViODhkYzZmYjkxMAogCiBwaG9kYXYtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRz PSJsaWJnbGliLWRldmVsIGxpYnNvdXAtZGV2ZWwgbGlieG1sMi1kZXZlbAoKRnJvbSBkYWM2YzRh NGE2MTQ1Y2NlMGMxMGYwYTliYTdlMWRjY2UxMzdhMTNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAx MyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMxLzEwM10gZ3NldHRp bmdzLWRlc2t0b3Atc2NoZW1hczogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiAuLi4vcGF0Y2hlcy9m aXgtY3Jvc3MtZ2lyLnBhdGNoICAgICAgICAgICAgICAgICAgICAgfCAxMyAtLS0tLS0tLS0tLS0t CiBzcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVtcGxhdGUgICAgICAgICAgfCAg NiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMo LSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMv cGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc2V0dGlu Z3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaCBiL3NyY3BrZ3Mv Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRjaGVzL2ZpeC1jcm9zcy1naXIucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyOTlkNWM5Y2QwLi4wMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2ly LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotZGlmZiAtLWdpdCBhL2hlYWRl cnMvbWVzb24uYnVpbGQgYi9oZWFkZXJzL21lc29uLmJ1aWxkCi1pbmRleCAzY2U4YjYxLi4xMTMy Njk1IDEwMDY0NAotLS0tIGhlYWRlcnMvbWVzb24uYnVpbGQKLSsrKyBoZWFkZXJzL21lc29uLmJ1 aWxkCi1AQCAtMTksNyArMTksNyBAQCBlbnVtc194bWwgPSBjdXN0b21fdGFyZ2V0KAotICAgaW5z dGFsbDogdHJ1ZSwKLSAgIGluc3RhbGxfZGlyOiBzY2hlbWFzZGlyKQotIAotLWlmIG5vdCBtZXNv bi5pc19jcm9zc19idWlsZCgpIGFuZCBnZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLStpZiBn ZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLSAgIG5vaW5zdF9saWIgPSBzaGFyZWRfbGlicmFy eSgnbm9pbnN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbGw6IGZhbHNlKQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlIGIvc3JjcGtncy9nc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlCmluZGV4IDQ5YzY0Y2NhNzM4Li43NmM0YjBl MDgxMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVt YXMnCiBwa2duYW1lPWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKLXZlcnNpb249My4zNi4wCi1y ZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIi CiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EaW50cm9zcGVjdGlvbj0kKHZv cHRfaWYgZ2lyIHRydWUgZmFsc2UpIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dzZXR0aW5ncy1k ZXNrdG9wLXNjaGVtYXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03NjRhYjY4 MzI4NjUzNjMyNDUzM2E1OGQ0ZTk1ZmM1N2Y4MWFkYWJhN2Q4ODBkZDBlYmJiY2VkNjNlOTYwZWE2 CitjaGVja3N1bT01NzA0YzgyNjYwMDRiMjk2MDM2NjcxZjIyM2M3MDVkYzA0NmFhNjk0YTFiMWFi Yjg3YzY3ZTdkMjc0N2E4YzY3CiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCiBidWlsZF9vcHRp b25zPSJnaXIiCgpGcm9tIGUxOTUxMjg3ZmExZmQ0YzZmMDNhMDFlM2UyMmU0NGI2YzU1MjMyZTYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjIwOjI2ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwMzIvMTAzXSBnbGliLW5ldHdvcmtpbmc6IHVwZGF0ZSB0byAyLjY2LjAKCi0tLQog c3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBs YXRlCmluZGV4IDVlYWZmYTgyZTY0Li45NmYzMTJjZmY0ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n bGliLW5ldHdvcmtpbmcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbGliLW5ldHdvcmtp bmcnCiBwa2duYW1lPWdsaWItbmV0d29ya2luZwotdmVyc2lvbj0yLjY0LjEKLXJldmlzaW9uPTIK K3ZlcnNpb249Mi42Ni4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJl X2FyZ3M9Ii1EaW5zdGFsbGVkX3Rlc3RzPWZhbHNlIC1EZ251dGxzPWVuYWJsZWQgLURsaWJwcm94 eT1lbmFibGVkCiAgLURnbm9tZV9wcm94eT1lbmFibGVkIgpAQCAtMTQsNyArMTQsNyBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L2dsaWItbmV0d29ya2luZy8iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNGMz NDZkZWY3ZDgxNzQ2N2Q3OWE5NWMyM2IzY2NmMjJlNGRmMTU0ODg3MDcyNmI2MzM5NjQwMDg1MmRh ZjcyCitjaGVja3N1bT1jNWQ3YmUyNDM3ZmRkMTk2ZWViZmI3MGM0NTE3Yjk2ZDNiYTdlYzEzYmQ0 OTYzMThiOGYwMmRlYTM4M2UwMDk5CiBsaWIzMmRpc2FibGVkPXllcwogCiBwb3N0X2luc3RhbGwo KSB7CgpGcm9tIDZlMTMyMGM3NWQxOTRiNGQ0ZGIyNWI5MDUwZTQwNWQwNzE0NjY5ZjkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMzMvMTAzXSBhdC1zcGkyLWNvcmU6IHVwZGF0ZSB0byAyLjM4LjAKCi0tLQogc3JjcGtncy9h dC1zcGkyLWNvcmUvdGVtcGxhdGUgfCAxNCArKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQs IDkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0 LXNwaTItY29yZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCmluZGV4 IGIzODNmZTk5YmVkLi43NGU2MDcwMTIwMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9hdC1zcGkyLWNv cmUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUKQEAgLTEsMjMg KzEsMjcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2F0LXNwaTItY29yZScKIHBrZ25hbWU9YXQt c3BpMi1jb3JlCi12ZXJzaW9uPTIuMzQuMAordmVyc2lvbj0yLjM4LjAKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBkYnVzIGdsaWItZGV2ZWwiCi1tYWtlZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJY ZXh0LWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwKLSBsaWJYZXZpZS1kZXZlbCBkYnVz LWRldmVsIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGRidXMgZ2xpYi1kZXZlbCBnZXR0 ZXh0IgorbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJTTS1kZXZl bCBsaWJYdHN0LWRldmVsIGRidXMtZGV2ZWwiCiBzaG9ydF9kZXNjPSJBc3Npc3RpdmUgVGVjaG5v bG9neSBTZXJ2aWNlIFByb3ZpZGVyIEludGVyZmFjZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9hdC1zcGkyLWNvcmUiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kNjI5Y2RiZDY3NGU1MzlmODkxMjAyODUxMmFm NTgzOTkwOTM4YzdiNDllMjUxODRjMTI2YjAwMTIxZWYxMWM2CitjaGVja3N1bT04NGUzNmMzZmU2 Njg2MjEzM2Y1ZmUyMjk3NzJiNzZhYTI1MjZlMTBkZTUwMTRhMzc3OGYyZmE0NmNlNTUwZGE1CiAK ICMgUGFja2FnZSBidWlsZCBvcHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRp b25zX2RlZmF1bHQ9ImdpciIKIAorIyBub24tdHJpdmlhbCBkYnVzIHNldHVwCitkb19jaGVjaygp IHsKKwk6Cit9CisKIHBvc3RfaW5zdGFsbCgpIHsKIAlybSAtcmYgJHtERVNURElSfS91c3IvbGli L3N5c3RlbWQKIH0KCkZyb20gOGI4ZTk3MjRjNDk1OWQzYTg3YTFhZGRmYTM3M2M2MjJiMWZlMzcw MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIIDAzNC8xMDNdIGF0LXNwaTItYXRrOiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNy Y3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUgfCA5ICsrKysrKystLQogMSBmaWxlIGNoYW5nZWQs IDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0 LXNwaTItYXRrL3RlbXBsYXRlIGIvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1wbGF0ZQppbmRleCA0 MzUxYjc5OTZmMy4uY2Y5NDVkZmZiMjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1hdGsv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2F0LXNwaTItYXRrJwogcGtnbmFtZT1hdC1zcGkyLWF0 awotdmVyc2lvbj0yLjM0LjEKK3ZlcnNpb249Mi4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJsaWJ0b29sIHBrZy1jb25maWcgaW50bHRvb2wgZ2xp Yi1kZXZlbCIKQEAgLTEwLDcgKzEwLDEyIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdl PSJodHRwOi8vd3d3Lmdub21lLm9yZyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTc3NmRmOTMwNzQ4ZmRlNzFjMTI4YmU2YzM2NmE5ODdiOThiNmVlNjZkNTA4ZWQ5YzhkYjIzNTVi ZjRiOWNjMTYKK2NoZWNrc3VtPWNmYTAwOGE1YWY4MjJiMzZhZTYyODdmMTgxODJjNDBjOTFkZDY5 OWM1NWZhYTM4NjA1ODgxZWQxNzVjYTQ2NGYKKworIyBub24tdHJpdmlhbCBkYnVzIHNldHVwCitk b19jaGVjaygpIHsKKwk6Cit9CiAKIGF0LXNwaTItYXRrLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVw ZW5kcz0iJHttYWtlZGVwZW5kc30gJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259 IgoKRnJvbSAwZjVlMzg0YTFjYTQ2YTU2MDJhNjc2MzViMGY0ZDM4NTMyM2Y1YWNjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDM1LzEwM10gbGliZ3dlYXRoZXI6IHVwZGF0ZSB0byAzLjM2LjEKCi0tLQogc3JjcGtncy9saWJn d2VhdGhlci90ZW1wbGF0ZSB8IDE1ICsrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYg aW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmd3 ZWF0aGVyL3RlbXBsYXRlIGIvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQppbmRleCAzNGM2 NGQ2ZTNhMS4uZmNkYjU4Nzk1MDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZ3dlYXRoZXInCiBwa2duYW1lPWxpYmd3ZWF0aGVy Ci12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM2LjEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV92YWxh PSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBn aXIgdHJ1ZSBmYWxzZSkKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIgZW5hYmxlX3Zh bGEpICQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKQogIC1Eem9uZWluZm9fZGlyPS91c3Iv c2hhcmUvem9uZWluZm8iCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtn LWNvbmZpZyAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZl bCBpbnRsdG9vbCBwa2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0i Z2VvY29kZS1nbGliLWRldmVsIGd0ayszLWRldmVsIGxpYnNvdXAtZ25vbWUtZGV2ZWwiCiBjaGVj a2RlcGVuZHM9InR6ZGF0YSIKIHNob3J0X2Rlc2M9IkdOT01FIFdlYXRoZXIgaW5mb3JtYXRpb24g YWNjZXNzIGxpYnJhcnkiCkBAIC0xNSwxMCArMTQsMTAgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvTGliR1dlYXRoZXIiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMmZmZWVjMDE3ODhkMDNkMWJiZjM1MTEz ZmMyZjA1NGM2YzM2MDA3MjEwODhmODI3YmNjMzFlNWM2MDNhMzJkCitjaGVja3N1bT1kZTI3MDlm MGVlMjMzYjIwMTE2ZDVmYTk4NjFkNDA2MDcxNzk4YzRhYTM3ODMwY2EyNWY1ZWYyYzAwODNlNDUw CiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIg dmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgog CiBwb3N0X3BhdGNoKCkgewogCSMgVGhpcyB0ZXN0IHJlcXVpcmVzIExDX0lERU5USUZJQ0FUSU9O LCB3aGljaCBpcyBhIEdMSUJDJ3MgZXh0ZW5zaW9uCkBAIC0zNSw4ICszNCw2IEBAIGxpYmd3ZWF0 aGVyLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCWlmIFsgIiRi dWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlm aQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFy ZS92YWxhCiAJCWZpCiAJfQoKRnJvbSA3ODk3OTAwNDRhNjc5M2JiZTAyMzIyOTA0YTJiMzE1OTRl YmYwOWFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDM2LzEwM10gZ25vbWUtbWVudXM6IHVwZGF0ZSB0byAzLjM2LjAKCi0t LQogc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtbWVudXMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlCmluZGV4 IDI5MTAyMTI5YzM4Li5lNzg3ZmI4ZGU2YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tZW51 cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbWVudXMnCiBwa2duYW1lPWdub21lLW1l bnVzCi12ZXJzaW9uPTMuMzIuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM2LjAKK3JldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmln dXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvZ25vbWUtbWVudXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT1jODUwYzY0YjIwNzQyNjVmZTU5ZTA5OWEzNDBiODY4OWNmM2RkNDY1OGRjOWZlZGRkMmFiNWU5 NWYxYTc0Yjc0CitjaGVja3N1bT1kOTM0OGYzOGJkZTk1NmZjMzI3NTNiMjhjMWNkZTE5YzE3NWJm ZGJmMWY0ZDViMDYwMDNiM2FhMDkxNTNiYjFmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSAzYmQ5ZWNjNmRlMjJiNDY3N2QyNjdiOWEyMjFh OTNiZDNkYTMzYWE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM3LzEwM10gZ25vbWUtZGVza3RvcDogdXBkYXRlIHRvIDMu MzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDE4ICsrKysr KysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAg fCAxMSArKysrKysrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRj aGVzL2J1aWxkLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxp YnMKaW5kZXggNTA3Nzc3NTFmNGMuLmRmNDg4NDFjNWI1IDEwMDY0NAotLS0gYS9jb21tb24vc2hs aWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTExNzYsNyArMTE3Niw3IEBAIGxpYmdzdGJhc2Vj YW1lcmFiaW5zcmMtMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFkMS0xLjAuMF8xCiBsaWJnc3Rjb2Rl Y3BhcnNlcnMtMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFkMS0xLjAuMF8xCiBsaWJnc3RwbGF5ZXIt MS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFkMS0xLjAuMF8xCiBsaWJnc3RnbC0xLjAuc28uMCBnc3Qt cGx1Z2lucy1iYXNlMS0xLjE0LjBfMQotbGliZ25vbWUtZGVza3RvcC0zLnNvLjE4IGdub21lLWRl c2t0b3AtMy4zNC4wXzEKK2xpYmdub21lLWRlc2t0b3AtMy5zby4xOSBnbm9tZS1kZXNrdG9wLTMu MzcuOTAuMV8xCiBsaWJzZWNyZXQtMS5zby4wIGxpYnNlY3JldC0wLjEwXzEKIGxpYmd3ZWF0aGVy LTMuc28uMTYgbGliZ3dlYXRoZXItMy4zNC4wXzEKIGxpYmdub21la2JkLnNvLjggbGliZ25vbWVr YmQtMy42LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVp bGQucGF0Y2ggYi9zcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWZlZDAwYTI1ZGQKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAt MCwwICsxLDE4IEBACitjb21taXQgNGY1NWZmMDc4NDExOTkzYjc4MmU3NGVhMThjNWM2YWIzNWFk ZjY4NQorQXV0aG9yOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6 ICAgV2VkIEF1ZyAxMiAwNToyNjowMCAyMDIwICswMjAwCisKKyAgICBibGEKKworZGlmZiAtLWdp dCBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmggbGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5o CitpbmRleCAxMTFiYWIzLi43Njk4NjcyIDEwMDY0NAorLS0tIGxpYmdub21lLWRlc2t0b3AvZ25v bWUtcnIuaAorKysrIGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAorQEAgLTI4LDYgKzI4LDcg QEAKKyAjZXJyb3IgICAgR25vbWVSUiBpcyB1bnN0YWJsZSBBUEkuIFlvdSBtdXN0IGRlZmluZSBH Tk9NRV9ERVNLVE9QX1VTRV9VTlNUQUJMRV9BUEkgYmVmb3JlIGluY2x1ZGluZyBnbm9tZXJyLmgK KyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPGdsaWIuaD4KKyAj aW5jbHVkZSA8Z2RrL2dkay5oPgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1kZXNrdG9w L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlCmluZGV4IDk5MmNiMWZm MTZhLi5iZDBiMmY1YzFkOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMCBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZGVza3RvcCcKIHBrZ25hbWU9Z25vbWUtZGVz a3RvcAotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURnbm9tZS1k aXN0cmlidXRvcj1Wb2lkTGludXggLUR1ZGV2PWVuYWJsZWQKK2NvbmZpZ3VyZV9hcmdzPSItRGdu b21lX2Rpc3RyaWJ1dG9yPVZvaWRMaW51eCAtRHVkZXY9ZW5hYmxlZCAtRHN5c3RlbWQ9ZGlzYWJs ZWQKICAtRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKIGhvc3RtYWtl ZGVwZW5kcz0iZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBl bmRzPSJldWRldi1saWJ1ZGV2LWRldmVsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwg Z3RrKzMtZGV2ZWwKQEAgLTE2LDExICsxNiwxNiBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2du b21lLWRlc2t0b3AiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jMWRiZWI1NjY2 ZGFkMjcxNjZjNzY5ZTQ4ZTJhYjQxZGQ1ZWQ3NDcxOGVhMzVlYjU3Yzg0ODg3OTA2NjJkYzVhCitj aGVja3N1bT0wODlkYmJlM2M2NmZlNTU3NTY1OWE0YTM4NWQ1ZDRiYmQ5OWNmNjM3MDM0ZGYzMTdm MjFjZjU4NmI1ZGQ2YjkwCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVm YXVsdD0iZ2lyIgogCisjIG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KKwogZ25vbWUtZGVz a3RvcC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9Imd0ayszLWRldmVsIGdzZXR0aW5ncy1k ZXNrdG9wLXNjaGVtYXMtZGV2ZWw+PTMuMTIKIAkgZ2RrLXBpeGJ1Zi1kZXZlbCBpc28tY29kZXMg bGliWDExLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlic2VjY29tcC1kZXZlbAoKRnJvbSA5NmJjN2Iz ODE3ODljNDI2NzZmMGU2YzRmYWNiNzRhYmI2MTRkY2JlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAx MyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM4LzEwM10gZ25vbWUt c2V0dGluZ3MtZGFlbW9uOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIC4uLi9wYXRjaGVzL2xvZ2lu ZC1iYWNrbGlnaHQucGF0Y2ggICAgICAgICAgICB8IDEzNiArKysrKysrKysrKysrKysrKysKIHNy Y3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlICAgICAgICB8ICAxMSArLQogMiBm aWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1i YWNrbGlnaHQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1v bi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNldHRpbmdz LWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU1Y2E2YmQ0M2RkCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNo CkBAIC0wLDAgKzEsMTM2IEBACitGcm9tIDM4NDViM2E3YjU4ZjI2ZWM2OGRiYzFjNDU3ZWFkMDZm NDg4MTE4MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMTc6NDg6MjEgKzAy MDAKK1N1YmplY3Q6IFtQQVRDSF0gVGhlIG5ldyBsb2dpbmQgYnJpZ2h0bmVzcyBjb2RlIGRvZXNu J3Qgd29yayB3aXRoIGVsb2dpbmQuCisKK2h0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9n bm9tZS1zZXR0aW5ncy1kYWVtb24vLS9jb21taXQvY2QwNTFlNmM3Y2NmYjdlN2IwZWM0NDA0MDlj NTU5YjJlNTEyODRlOAorLS0tCisgcGx1Z2lucy9wb3dlci9nc2QtYmFja2xpZ2h0LmMgfCA3NyAr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IHBsdWdpbnMvcG93ZXIv Z3NkLWJhY2tsaWdodC5jIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCitpbmRleCBjYTVm MjcyLi40YWNjMmU1IDEwMDY0NAorLS0tIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCisr KysgcGx1Z2lucy9wb3dlci9nc2QtYmFja2xpZ2h0LmMKK0BAIC00MCw4ICs0MCw2IEBAIHN0cnVj dCBfR3NkQmFja2xpZ2h0CisgICAgICAgICBnaW50IGJyaWdodG5lc3Nfc3RlcDsKKyAKKyAjaWZk ZWYgX19saW51eF9fCistICAgICAgICBHREJ1c1Byb3h5ICpsb2dpbmRfcHJveHk7CistCisgICAg ICAgICBHVWRldkNsaWVudCAqdWRldjsKKyAgICAgICAgIEdVZGV2RGV2aWNlICp1ZGV2X2Rldmlj ZTsKKyAKK0BAIC02MSwxMCArNTksNiBAQCBlbnVtIHsKKyAgICAgICAgIFBST1BfTEFTVCwKKyB9 OworIAorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX05BTUUgICAgICAgICAgICAgICAgICAgICAgICJv cmcuZnJlZWRlc2t0b3AubG9naW4xIgorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX1BBVEggICAgICAg ICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL2xvZ2luMS9zZXNzaW9uL2F1dG8iCist I2RlZmluZSBTWVNURU1EX0RCVVNfSU5URVJGQUNFICAgICAgICAgICAgICAgICAgIm9yZy5mcmVl ZGVza3RvcC5sb2dpbjEuU2Vzc2lvbiIKKy0KKyBzdGF0aWMgR1BhcmFtU3BlYyAqcHJvcHNbUFJP UF9MQVNUXTsKKyAKKyBzdGF0aWMgdm9pZCAgICAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pZmFj ZV9pbml0IChHSW5pdGFibGVJZmFjZSAgKmlmYWNlKTsKK0BAIC00ODIsMzAgKzQ3NiwxMyBAQCBn c2RfYmFja2xpZ2h0X3NldF9icmlnaHRuZXNzX3ZhbF9hc3luYyAoR3NkQmFja2xpZ2h0ICpiYWNr bGlnaHQsCisgICAgICAgICBpZiAoYmFja2xpZ2h0LT51ZGV2X2RldmljZSAhPSBOVUxMKSB7Cisg ICAgICAgICAgICAgICAgIEJhY2tsaWdodEhlbHBlckRhdGEgKnRhc2tfZGF0YTsKKyAKKy0gICAg ICAgICAgICAgICAgaWYgKGJhY2tsaWdodC0+bG9naW5kX3Byb3h5KSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgZ19kYnVzX3Byb3h5X2NhbGwgKGJhY2tsaWdodC0+bG9naW5kX3Byb3h5LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0QnJpZ2h0bmVz cyIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFu dF9uZXcgKCIoc3N1KSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJiYWNrbGlnaHQiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3VkZXZfZGV2aWNlX2dldF9uYW1l IChiYWNrbGlnaHQtPnVkZXZfZGV2aWNlKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX3Rhcmdl dCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19D QUxMX0ZMQUdTX05PTkUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0xLCBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMLCBOVUxMKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50ID0gQUJT X1RPX1BFUkNFTlRBR0UgKGJhY2tsaWdodC0+YnJpZ2h0bmVzc19taW4sCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrbGlnaHQtPmJyaWdo dG5lc3NfbWF4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX3RhcmdldCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgZ190YXNrX3JldHVybl9pbnQgKHRhc2ssIHBlcmNlbnQpOworLSAgICAgICAgICAg ICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tfZGF0YSA9IGdfbmV3 MCAoQmFja2xpZ2h0SGVscGVyRGF0YSwgMSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGFz a19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQ7CistICAgICAgICAg ICAgICAgICAgICAgICAgZ190YXNrX3NldF90YXNrX2RhdGEgKHRhc2ssIHRhc2tfZGF0YSwgYmFj a2xpZ2h0X3Rhc2tfZGF0YV9kZXN0cm95KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAv KiBUYXNrIGlzIHNldCB1cCBub3cuIFF1ZXVlIGl0IGFuZCBlbnN1cmUgd2UgYXJlIHdvcmtpbmcg c29tZXRoaW5nLiAqLworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90YWls ICgmYmFja2xpZ2h0LT50YXNrcywgdGFzayk7CistICAgICAgICAgICAgICAgICAgICAgICAgZ3Nk X2JhY2tsaWdodF9wcm9jZXNzX3Rhc2txdWV1ZSAoYmFja2xpZ2h0KTsKKy0gICAgICAgICAgICAg ICAgfQorKyAgICAgICAgICAgICAgICB0YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBl ckRhdGEsIDEpOworKyAgICAgICAgICAgICAgICB0YXNrX2RhdGEtPnZhbHVlID0gYmFja2xpZ2h0 LT5icmlnaHRuZXNzX3RhcmdldDsKKysgICAgICAgICAgICAgICAgZ190YXNrX3NldF90YXNrX2Rh dGEgKHRhc2ssIHRhc2tfZGF0YSwgYmFja2xpZ2h0X3Rhc2tfZGF0YV9kZXN0cm95KTsKKysKKysg ICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAgbm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJl IHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKysgICAgICAgICAgICAgICAgZ19xdWV1ZV9w dXNoX3RhaWwgKCZiYWNrbGlnaHQtPnRhc2tzLCB0YXNrKTsKKysgICAgICAgICAgICAgICAgZ3Nk X2JhY2tsaWdodF9wcm9jZXNzX3Rhc2txdWV1ZSAoYmFja2xpZ2h0KTsKKyAKKyAgICAgICAgICAg ICAgICAgcmV0dXJuOworICAgICAgICAgfQorQEAgLTgyMyw3ICs4MDAsNiBAQCBnc2RfYmFja2xp Z2h0X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgICAqaW5pdGFibGUsCisgeworICAgICAg ICAgR3NkQmFja2xpZ2h0ICpiYWNrbGlnaHQgPSBHU0RfQkFDS0xJR0hUIChpbml0YWJsZSk7Cisg ICAgICAgICBHbm9tZVJST3V0cHV0KiBvdXRwdXQgPSBOVUxMOworLSAgICAgICAgR0Vycm9yICps b2dpbmRfZXJyb3IgPSBOVUxMOworIAorICAgICAgICAgaWYgKGNhbmNlbGxhYmxlICE9IE5VTEwp IHsKKyAgICAgICAgICAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbCAoZXJyb3IsIEdfSU9fRVJS T1IsIEdfSU9fRVJST1JfTk9UX1NVUFBPUlRFRCwKK0BAIC04MzIsNDQgKzgwOCw2IEBAIGdzZF9i YWNrbGlnaHRfaW5pdGFibGVfaW5pdCAoR0luaXRhYmxlICAgICAgICppbml0YWJsZSwKKyAgICAg ICAgIH0KKyAKKyAjaWZkZWYgX19saW51eF9fCistICAgICAgICBiYWNrbGlnaHQtPmxvZ2luZF9w cm94eSA9CistICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94eV9uZXdfZm9yX2J1c19zeW5jIChH X0JVU19UWVBFX1NZU1RFTSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU1lTVEVNRF9EQlVTX05BTUUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTWVNURU1EX0RCVVNfUEFUSCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19JTlRFUkZBQ0UsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAmbG9naW5kX2Vy cm9yKTsKKy0gICAgICAgIGlmIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSkgeworLSAgICAgICAg ICAgICAgICAvKiBDaGVjayB0aGF0IHRoZSBTZXRCcmlnaHRuZXNzIG1ldGhvZCBkb2VzIGV4aXN0 ICovCistICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94eV9jYWxsX3N5bmMgKGJhY2tsaWdodC0+ bG9naW5kX3Byb3h5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi U2V0QnJpZ2h0bmVzcyIsIE5VTEwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsIC0xLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLCAmbG9naW5kX2Vycm9yKTsKKy0KKy0gICAgICAgICAg ICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyAobG9naW5kX2Vycm9yLCBHX0RCVVNfRVJST1IsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19FUlJPUl9JTlZBTElE X0FSR1MpKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLyogV2UgYXJlIGNhbGxpbmcgdGhl IG1ldGhvZCB3aXRoIG5vIGFyZ3VtZW50cywgc28KKy0gICAgICAgICAgICAgICAgICAgICAgICAg KiB0aGlzIGlzIGV4cGVjdGVkLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAqLworLSAgICAg ICAgICAgICAgICAgICAgICAgIGdfY2xlYXJfZXJyb3IgKCZsb2dpbmRfZXJyb3IpOworLSAgICAg ICAgICAgICAgICB9IGVsc2UgaWYgKGdfZXJyb3JfbWF0Y2hlcyAobG9naW5kX2Vycm9yLCBHX0RC VVNfRVJST1IsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH X0RCVVNfRVJST1JfVU5LTk9XTl9NRVRIT0QpKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg Lyogc3lzdGVtZCB2ZXJzaW9uIGlzIHRvbyBvbGQsIHNvIGlnbm9yZS4KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX2Vycm9yICgm bG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX29iamVjdCAo JmJhY2tsaWdodC0+bG9naW5kX3Byb3h5KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAvKiBGYWlsIG9uIGFueXRoaW5nIGVsc2UgKi8KKy0gICAg ICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+bG9naW5kX3By b3h5KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaWYgKGxv Z2luZF9lcnJvcikgeworLSAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJObyBsb2dpbmQgZm91 bmQ6ICVzIiwgbG9naW5kX2Vycm9yLT5tZXNzYWdlKTsKKy0gICAgICAgICAgICAgICAgZ19lcnJv cl9mcmVlIChsb2dpbmRfZXJyb3IpOworLSAgICAgICAgfQorLQorICAgICAgICAgLyogVHJ5IGZp bmRpbmcgYSB1ZGV2IGRldmljZS4gKi8KKyAgICAgICAgIGlmIChnc2RfYmFja2xpZ2h0X3VkZXZf aW5pdCAoYmFja2xpZ2h0KSkKKyAgICAgICAgICAgICAgICAgZ290byBmb3VuZDsKK0BAIC05MTEs NyArODQ5LDYgQEAgZ3NkX2JhY2tsaWdodF9maW5hbGl6ZSAoR09iamVjdCAqb2JqZWN0KQorICNp ZmRlZiBfX2xpbnV4X18KKyAgICAgICAgIGdfYXNzZXJ0IChiYWNrbGlnaHQtPmFjdGl2ZV90YXNr ID09IE5VTEwpOworICAgICAgICAgZ19hc3NlcnQgKGdfcXVldWVfaXNfZW1wdHkgKCZiYWNrbGln aHQtPnRhc2tzKSk7CistICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+bG9naW5k X3Byb3h5KTsKKyAgICAgICAgIGdfY2xlYXJfb2JqZWN0ICgmYmFja2xpZ2h0LT51ZGV2KTsKKyAg ICAgICAgIGdfY2xlYXJfb2JqZWN0ICgmYmFja2xpZ2h0LT51ZGV2X2RldmljZSk7CisgICAgICAg ICBpZiAoYmFja2xpZ2h0LT5pZGxlX3VwZGF0ZSkgeworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vdGVtcGxhdGUgYi9zcmNwa2dzL2dub21l LXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQppbmRleCBhNzBlMjhiZTVmYS4uYjZkYTI4ZTI1NTQg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlCkBAIC0xLDEwICsxLDExIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zZXR0aW5ncy1kYWVtb24nCiBwa2duYW1lPWdu b21lLXNldHRpbmdzLWRhZW1vbgotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249 My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3MrPSIt RHN5c3RlbWQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jvb2steHNsIGdsaWIt ZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4c2x0IHBlcmwgcGtnLWNvbmZpZyIKK2hvc3RtYWtlZGVw ZW5kcz0iY21ha2UgZG9jYm9vay14c2wgZ2V0dGV4dCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwg bGlieHNsdAorIHBlcmwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1k ZXZlbCBhbHNhLWxpYi1kZXZlbCBjb2xvcmQtZGV2ZWwgY3Vwcy1kZXZlbCBnY3ItZGV2ZWwKICBn ZW9jbHVlMi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGlidXMtZGV2ZWwgbGliY2FuYmVycmEt ZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwKICBsaWJnd2VhdGhlci1kZXZlbCBsaWJub3RpZnktZGV2 ZWwgbGlicnN2Zy1kZXZlbCBsaWJ3YWNvbS1kZXZlbCBuc3MtZGV2ZWwKQEAgLTEyLDEzICsxMywx MyBAQCBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29s b3JkLWRldmVsIGN1cHMtZGV2ZWwgZ2NyLWRldgogIHhmODYtaW5wdXQtd2Fjb20tZGV2ZWwiCiBk ZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUgcHVsc2VhdWRpbyIKIGNoZWNrZGVwZW5kcz0iZWxv Z2luZCBsaWJub3RpZnkgcHl0aG9uMy1kYnVzbW9jayBweXRob24zLWdvYmplY3QKLSBweXRob24z LXB5Y29kZXN0eWxlIgorIHB5dGhvbjMtcHljb2Rlc3R5bGUgd2hpY2ggaHdpZHMgZXVkZXYiCiBz aG9ydF9kZXNjPSJHTk9NRSBzZXR0aW5ncyBkYWVtb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFl bW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09OTk4MWEyMGJhYmY4ZGE3NzQ0 YjdmYmUxNzViOWUzNjA3OGJmMDhmM2JmNjVmZTVhZWRlYjgyY2ZlMjdhYzExZgorY2hlY2tzdW09 YjdlZDViNWZhYjlhYWQxOTJjZWVkNmE5NWJlMjgwNTEyNGUzYzYzYzQ2ODkxYmJhZTA3NmY3ZWMz ZmQ2NzkyZQogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMr PSIgcG9sa2l0IgoKRnJvbSA2Mzc5YWFkMjBiZjYxNzI3MjNhN2NjMmFjNDFjMDJhYjM1MzM4ZTA4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDM5LzEwM10gbXV0dGVyOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIGNvbW1vbi9z aGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogLi4uL3BhdGNo ZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvbXV0 dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoICAgICB8IDUyMSAtLS0tLS0tLS0tLS0tLS0t LS0KIHNyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8ICAzNCAr LQogNCBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA1NTUgZGVsZXRpb25zKC0pCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5j bHVkZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211dHRlci9wYXRjaGVzL3Bp cGV3aXJlLTAuMy5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hs aWJzCmluZGV4IGRmNDg4NDFjNWI1Li5mMmE2ZTk5NTdlNCAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zMDAyLDE1ICszMDAyLDE1IEBAIGxpYmRlY29y YXRpb24uc28uMCBjb21waXotY29yZS0wLjguMTRfMQogbGliY29tcGl6Y29uZmlnLnNvLjAgbGli Y29tcGl6Y29uZmlnLTAuOC4xNF8xCiBsaWJlbWVyYWxkZW5naW5lLnNvLjAgZW1lcmFsZC0wLjgu MTRfMQogbGliaGFuZ3VsLnNvLjEgbGliaGFuZ3VsLTAuMS4wXzEKLWxpYm11dHRlci01LnNvLjAg bXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY2x1dHRlci01LnNvIG11dHRlci0zLjM0LjFfMQot bGlibXV0dGVyLWNsdXR0ZXItNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wt cGF0aC01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvLjAgbXV0 dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0 dGVyLWNvZ2wtNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5z byBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhbmdvLTUuc28uMCBtdXR0ZXItMy4z NC4xXzEKK2xpYm11dHRlci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNsdXR0 ZXItNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY2x1dHRlci03LnNvLjAgbXV0dGVy LTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGF0aC03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xp Ym11dHRlci1jb2dsLXBhdGgtNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2ds LTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtNy5zby4wIG11dHRlci0zLjM3 LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdvLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0 dGVyLWNvZ2wtcGFuZ28tNy5zby4wIG11dHRlci0zLjM3LjkwXzEKIGxpYmdlb2NsdWUtMi5zby4w IGdlb2NsdWUyLTIuNC40XzEKIGxpYmdlcHViLnNvLjAgbGliZ2VwdWItMC40XzEKIGxpYnNsb3B5 LnNvLjcuNSBzbG9wLTcuNV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL211dHRlci9wYXRjaGVzL2Zp eC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaCBiL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNv Z2wtZWdsLWluY2x1ZGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTA5 ODg4ODdjMy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29n bC1lZ2wtaW5jbHVkZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0g Y29nbC9jb2dsL21lc29uLmJ1aWxkCTIwMTktMTAtMDggMTk6MTU6MTAuMDAwMDAwMDAwICswMjAw Ci0rKysgY29nbC9jb2dsL21lc29uLmJ1aWxkCTIwMTktMTItMTYgMTU6NDU6NDQuMDM3NjQwNTQ4 ICswMTAwCi1AQCAtNDgsNyArNDgsNyBAQAotIGJ1aWx0X2hlYWRlcnMgKz0gW2NvZ2xfZ2xfaGVh ZGVyX2hdCi0gCi0gaWYgaGF2ZV9lZ2wKLS0gIGNvZ2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcj aW5jbHVkZSA8RUdML2VnbC5oPlxuI2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4nCi0rICBjb2dsX2Vn bF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUgPEVHTC9lZ2wuaD5cbiNpbmNsdWRlIDxFR0wv ZWdsZXh0Lmg+XG4jaW5jbHVkZSA8RUdML2VnbG1lc2FleHQuaD4nCi0gZWxzZQotICAgY29nbF9l Z2xfaW5jbHVkZXNfc3RyaW5nID0gJycKLSBlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXR0 ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2ggYi9zcmNwa2dzL211dHRlci9wYXRjaGVzL3Bp cGV3aXJlLTAuMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJmZjY1ZmJh ODUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4z LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIxICswLDAgQEAKLUJ1aWxkIG11dHRlciBhZ2Fp bnN0IHBpcGV3aXJlLTAuMywgYmFzZWQgb24gYSBwYXRjaCBhdDoKLWh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9tdXR0ZXIvLS9tZXJnZV9yZXF1ZXN0cy8xMDYyCi0tLS0gbWVzb24uYnVp bGQKLSsrKyBtZXNvbi5idWlsZAotQEAgLTUwLDcgKzUwLDcgQEAgbGliaW5wdXRfcmVxID0gJz49 IDEuNycKLSBnYm1fcmVxID0gJz49IDEwLjMnCi0KLSAjIHNjcmVlbiBjYXN0IHZlcnNpb24gcmVx dWlyZW1lbnRzCi0tbGlicGlwZXdpcmVfcmVxID0gJz49IDAuMi41JwotK2xpYnBpcGV3aXJlX3Jl cSA9ICc+PSAwLjMuMCcKLQotIGdub21lID0gaW1wb3J0KCdnbm9tZScpCi0gcGtnID0gaW1wb3J0 KCdwa2djb25maWcnKQotQEAgLTI0MSw3ICsyNDEsNyBAQCBlbmRpZgotCi0gaGF2ZV9yZW1vdGVf ZGVza3RvcCA9IGdldF9vcHRpb24oJ3JlbW90ZV9kZXNrdG9wJykKLSBpZiBoYXZlX3JlbW90ZV9k ZXNrdG9wCi0tICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjIn LCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0rICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRl bmN5KCdsaWJwaXBld2lyZS0wLjMnLCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0gZW5kaWYK LQotIGhhdmVfaW50cm9zcGVjdGlvbiA9IGdldF9vcHRpb24oJ2ludHJvc3BlY3Rpb24nKQotZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0cmVhbS1zcmMuYyBiL3Ny Yy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0cmVhbS1zcmMuYwotaW5kZXggODJjNWNiYTQz Ni4uYmExY2U5NGE3ZSAxMDA2NDQKLS0tLSBzcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1z dHJlYW0tc3JjLmMKLSsrKyBzcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3Jj LmMKLUBAIC0yOSw2ICsyOSw3IEBACi0gI2luY2x1ZGUgPHNwYS9wYXJhbS9wcm9wcy5oPgotICNp bmNsdWRlIDxzcGEvcGFyYW0vZm9ybWF0LXV0aWxzLmg+Ci0gI2luY2x1ZGUgPHNwYS9wYXJhbS92 aWRlby9mb3JtYXQtdXRpbHMuaD4KLSsjaW5jbHVkZSA8c3BhL3V0aWxzL3Jlc3VsdC5oPgotICNp bmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5jbHVkZSA8c3lzL21tYW4uaD4KLQotQEAgLTYyLDE1ICs2 Myw2IEBAIGVudW0KLQotIHN0YXRpYyBndWludCBzaWduYWxzW05fU0lHTkFMU107Ci0KLS10eXBl ZGVmIHN0cnVjdCBfTWV0YVNwYVR5cGUKLS17Ci0tICBzdHJ1Y3Qgc3BhX3R5cGVfbWVkaWFfdHlw ZSBtZWRpYV90eXBlOwotLSAgc3RydWN0IHNwYV90eXBlX21lZGlhX3N1YnR5cGUgbWVkaWFfc3Vi dHlwZTsKLS0gIHN0cnVjdCBzcGFfdHlwZV9mb3JtYXRfdmlkZW8gZm9ybWF0X3ZpZGVvOwotLSAg c3RydWN0IHNwYV90eXBlX3ZpZGVvX2Zvcm1hdCB2aWRlb19mb3JtYXQ7Ci0tICB1aW50MzJfdCBt ZXRhX2N1cnNvcjsKLS19IE1ldGFTcGFUeXBlOwotLQotIHR5cGVkZWYgc3RydWN0IF9NZXRhUGlw ZVdpcmVTb3VyY2UKLSB7Ci0gICBHU291cmNlIGJhc2U7Ci1AQCAtODIsMTkgKzc0LDE5IEBAIHR5 cGVkZWYgc3RydWN0IF9NZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUKLSB7Ci0gICBNZXRh U2NyZWVuQ2FzdFN0cmVhbSAqc3RyZWFtOwotCi0rICBzdHJ1Y3QgcHdfY29udGV4dCAqcGlwZXdp cmVfY29udGV4dDsKLSAgIHN0cnVjdCBwd19jb3JlICpwaXBld2lyZV9jb3JlOwotLSAgc3RydWN0 IHB3X3JlbW90ZSAqcGlwZXdpcmVfcmVtb3RlOwotLSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJl X3R5cGU7Ci0gICBNZXRhUGlwZVdpcmVTb3VyY2UgKnBpcGV3aXJlX3NvdXJjZTsKLS0gIHN0cnVj dCBzcGFfaG9vayBwaXBld2lyZV9yZW1vdGVfbGlzdGVuZXI7Ci0rICBzdHJ1Y3Qgc3BhX2hvb2sg cGlwZXdpcmVfY29yZV9saXN0ZW5lcjsKLQotICAgZ2Jvb2xlYW4gaXNfZW5hYmxlZDsKLQotICAg c3RydWN0IHB3X3N0cmVhbSAqcGlwZXdpcmVfc3RyZWFtOwotICAgc3RydWN0IHNwYV9ob29rIHBp cGV3aXJlX3N0cmVhbV9saXN0ZW5lcjsKLSsgIHVpbnQzMl90IG5vZGVfaWQ7Ci0KLS0gIE1ldGFT cGFUeXBlIHNwYV90eXBlOwotICAgc3RydWN0IHNwYV92aWRlb19pbmZvX3JhdyB2aWRlb19mb3Jt YXQ7Ci0rICBpbnQgdmlkZW9fc3RyaWRlOwotCi0gICB1aW50NjRfdCBsYXN0X2ZyYW1lX3RpbWVz dGFtcF91czsKLQotQEAgLTExMiw4ICsxMDQsNiBAQCBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAo TWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2luaXRfaW5pdGFi bGVfaWZhY2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEdfQUREX1BSSVZBVEUgKE1ldGFT Y3JlZW5DYXN0U3RyZWFtU3JjKSkKLQotLSNkZWZpbmUgUFJPUF9SQU5HRShtaW4sIG1heCkgMiwg KG1pbiksIChtYXgpCi0tCi0gc3RhdGljIHZvaWQKLSBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9z cmNfZ2V0X3NwZWNzIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICp3aWR0 aCwKLUBAIC0yODYsOSArMjc2LDYgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9l bXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAgICAgICAgICAgICAgICAgICAgICB4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAg IHkpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwot LSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNw YV9tZXRhX2JpdG1hcCAqc3BhX21ldGFfYml0bWFwOwotCi0gICBzcGFfbWV0YV9jdXJzb3ItPmlk ID0gMTsKLUBAIC0zMDAsNyArMjg3LDcgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3Nl dF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgIHNw YV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIgKHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNwYV9tZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwot LSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7 Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAg IHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFw KTsKLQotICAgc3BhX21ldGFfY3Vyc29yLT5ob3RzcG90LnggPSAwOwotQEAgLTMxNyw5ICszMDQs NiBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0YWRh dGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgeSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZsb2F0ICAgICAgICAgICAgICAgICAgICBzY2FsZSkKLSB7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0 cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNf Z2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAm cHJpdi0+c3BhX3R5cGU7Ci0gICBDb2dsVGV4dHVyZSAqY3Vyc29yX3RleHR1cmU7Ci0gICBzdHJ1 Y3Qgc3BhX21ldGFfYml0bWFwICpzcGFfbWV0YV9iaXRtYXA7Ci0gICBpbnQgaG90c3BvdF94LCBo b3RzcG90X3k7Ci1AQCAtMzQ2LDcgKzMzMCw3IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3Ny Y19zZXRfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMKLSAg IHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIgKHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9tZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXAp OwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJH QkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsK LSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0 bWFwKTsKLQotICAgbWV0YV9jdXJzb3Jfc3ByaXRlX2dldF9ob3RzcG90IChjdXJzb3Jfc3ByaXRl LCAmaG90c3BvdF94LCAmaG90c3BvdF95KTsKLUBAIC0zODIsMTIgKzM2NiwxMCBAQCBzdGF0aWMg dm9pZAotIGFkZF9jdXJzb3JfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMs Ci0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNwYV9idWZmZXIgICAgICAgKnNwYV9idWZm ZXIpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwot LSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNw YV9tZXRhX2N1cnNvciAqc3BhX21ldGFfY3Vyc29yOwotCi0tICBzcGFfbWV0YV9jdXJzb3IgPSBz cGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgc3BhX3R5cGUtPm1ldGFfY3Vyc29yKTsK LSsgIHNwYV9tZXRhX2N1cnNvciA9IHNwYV9idWZmZXJfZmluZF9tZXRhX2RhdGEgKHNwYV9idWZm ZXIsIFNQQV9NRVRBX0N1cnNvciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZiAoKnNwYV9tZXRhX2N1cnNvcikpOwotICAgaWYgKHNwYV9tZXRh X2N1cnNvcikKLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9jdXJzb3JfbWV0 YWRhdGEgKHNyYywgc3BhX21ldGFfY3Vyc29yKTsKLSB9Ci1AQCAtNDQ3LDE0ICs0MjksMTQgQEAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX21heWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVl bkNhc3RTdHJlYW1TcmMgKnNyYykKLSAgICAgewotICAgICAgIGRhdGEgPSBzcGFfYnVmZmVyLT5k YXRhc1swXS5kYXRhOwotICAgICB9Ci0tICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50 eXBlID09IHByaXYtPnBpcGV3aXJlX3R5cGUtPmRhdGEuTWVtRmQpCi0rICBlbHNlIGlmIChzcGFf YnVmZmVyLT5kYXRhc1swXS50eXBlID09IFNQQV9EQVRBX01lbUZkKQotICAgICB7Ci0gICAgICAg bWFwID0gbW1hcCAoTlVMTCwgc3BhX2J1ZmZlci0+ZGF0YXNbMF0ubWF4c2l6ZSArIHNwYV9idWZm ZXItPmRhdGFzWzBdLm1hcG9mZnNldCwKLSAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQ Uk9UX1dSSVRFLCBNQVBfU0hBUkVELAotICAgICAgICAgICAgICAgICAgIHNwYV9idWZmZXItPmRh dGFzWzBdLmZkLCAwKTsKLSAgICAgICBpZiAobWFwID09IE1BUF9GQUlMRUQpCi0gICAgICAgICB7 Ci0tICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBtbWFwIHBpcGV3aXJlIHN0cmVhbSBi dWZmZXI6ICVzXG4iLAotKyAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gbW1hcCBwaXBl d2lyZSBzdHJlYW0gYnVmZmVyOiAlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3Ig KGVycm5vKSk7Ci0gICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0KLUBAIC00NjksMjggKzQ1 MSwzMCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbWF5YmVfcmVjb3JkX2ZyYW1lIChN ZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjKQotCi0gICBpZiAobWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX3JlY29yZF9mcmFtZSAoc3JjLCBkYXRhKSkKLSAgICAgewotLSAgICAgIHN0cnVj dCBzcGFfbWV0YV92aWRlb19jcm9wICpzcGFfbWV0YV92aWRlb19jcm9wOwotKyAgICAgIHN0cnVj dCBzcGFfbWV0YV9yZWdpb24gKnNwYV9tZXRhX3ZpZGVvX2Nyb3A7Ci0KLSAgICAgICBzcGFfYnVm ZmVyLT5kYXRhc1swXS5jaHVuay0+c2l6ZSA9IHNwYV9idWZmZXItPmRhdGFzWzBdLm1heHNpemU7 Ci0rICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0uY2h1bmstPnN0cmlkZSA9IHByaXYtPnZpZGVv X3N0cmlkZTsKLQotICAgICAgIC8qIFVwZGF0ZSBWaWRlb0Nyb3AgaWYgbmVlZGVkICovCi0gICAg ICAgc3BhX21ldGFfdmlkZW9fY3JvcCA9Ci0tICAgICAgICBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAo c3BhX2J1ZmZlciwgcHJpdi0+cGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRlb0Nyb3ApOwotKyAgICAg ICAgc3BhX2J1ZmZlcl9maW5kX21ldGFfZGF0YSAoc3BhX2J1ZmZlciwgU1BBX01FVEFfVmlkZW9D cm9wLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mICgqc3BhX21l dGFfdmlkZW9fY3JvcCkpOwotICAgICAgIGlmIChzcGFfbWV0YV92aWRlb19jcm9wKQotICAgICAg ICAgewotICAgICAgICAgICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF92aWRl b2Nyb3AgKHNyYywgJmNyb3BfcmVjdCkpCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAg c3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IGNyb3BfcmVjdC54OwotLSAgICAgICAgICAgICAgc3Bh X21ldGFfdmlkZW9fY3JvcC0+eSA9IGNyb3BfcmVjdC55OwotLSAgICAgICAgICAgICAgc3BhX21l dGFfdmlkZW9fY3JvcC0+d2lkdGggPSBjcm9wX3JlY3Qud2lkdGg7Ci0tICAgICAgICAgICAgICBz cGFfbWV0YV92aWRlb19jcm9wLT5oZWlnaHQgPSBjcm9wX3JlY3QuaGVpZ2h0OwotKyAgICAgICAg ICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnBvc2l0aW9uLnggPSBjcm9wX3JlY3Qu eDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55 ID0gY3JvcF9yZWN0Lnk7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdp b24uc2l6ZS53aWR0aCA9IGNyb3BfcmVjdC53aWR0aDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRh X3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCA9IGNyb3BfcmVjdC5oZWlnaHQ7Ci0gICAg ICAgICAgICAgfQotICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAg ICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IDA7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92 aWRlb19jcm9wLT55ID0gMDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndp ZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9f Y3JvcC0+aGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdodDsKLSsgICAgICAgICAgICAgIHNwYV9t ZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi54ID0gMDsKLSsgICAgICAgICAgICAgIHNw YV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55ID0gMDsKLSsgICAgICAgICAgICAg IHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLndpZHRoID0gcHJpdi0+c3RyZWFtX3dp ZHRoOwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUuaGVp Z2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdodDsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0g ICAgIH0KLUBAIC01NTUsNyArNTM5LDYgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQg ICAgICAgICAgICAgICAgICpkYXRhLAotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9 IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBt ZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0t ICB1aW50MzJfdCBub2RlX2lkOwotCi0gICBzd2l0Y2ggKHN0YXRlKQotICAgICB7Ci1AQCAtNTYz LDE0ICs1NDYsMTIgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAg ICAgICpkYXRhLAotICAgICAgIGdfd2FybmluZyAoInBpcGV3aXJlIHN0cmVhbSBlcnJvcjogJXMi LCBlcnJvcl9tZXNzYWdlKTsKLSAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90 aWZ5X2Nsb3NlZCAoc3JjKTsKLSAgICAgICBicmVhazsKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RB VEVfQ09ORklHVVJFOgotLSAgICAgIG5vZGVfaWQgPSBwd19zdHJlYW1fZ2V0X25vZGVfaWQgKHBy aXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0tICAgICAgZ19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxz W1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgbm9kZV9pZCk7Ci0tICAgICAgYnJlYWs7Ci0tICAg IGNhc2UgUFdfU1RSRUFNX1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1NUUkVBTV9T VEFURV9DT05ORUNUSU5HOgotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9SRUFEWToKLSAgICAg Y2FzZSBQV19TVFJFQU1fU1RBVEVfUEFVU0VEOgotKyAgICAgIGlmIChwcml2LT5ub2RlX2lkID09 IFNQQV9JRF9JTlZBTElEICYmIHByaXYtPnBpcGV3aXJlX3N0cmVhbSkKLSsgICAgICAgIHsKLSsg ICAgICAgICAgcHJpdi0+bm9kZV9pZCA9IHB3X3N0cmVhbV9nZXRfbm9kZV9pZCAocHJpdi0+cGlw ZXdpcmVfc3RyZWFtKTsKLSsgICAgICAgICAgZ19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JF QURZXSwgMCwgKHVuc2lnbmVkIGludCkgcHJpdi0+bm9kZV9pZCk7Ci0rICAgICAgICB9Ci0gICAg ICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pc19lbmFibGVkIChzcmMpKQotICAg ICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0gICAgICAg YnJlYWs7Ci1AQCAtNTc4LDY4ICs1NTksNjkgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZv aWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgIGlmICghbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX2lzX2VuYWJsZWQgKHNyYykpCi0gICAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfZW5hYmxlIChzcmMpOwotICAgICAgIGJyZWFrOwotKyAgICBjYXNlIFBXX1NUUkVB TV9TVEFURV9VTkNPTk5FQ1RFRDoKLSsgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElO RzoKLSsgICAgICBicmVhazsKLSAgICAgfQotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RyZWFt X2Zvcm1hdF9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0rb25fc3RyZWFt X3BhcmFtX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgaWQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0gewotICAgTWV0YVNjcmVl bkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1By aXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3Rh bmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3QgcHdfdHlwZSAqcGlwZXdpcmVfdHlwZSA9IHBy aXYtPnBpcGV3aXJlX3R5cGU7Ci0gICB1aW50OF90IHBhcmFtc19idWZmZXJbMTAyNF07Ci0gICBp bnQzMl90IHdpZHRoLCBoZWlnaHQsIHN0cmlkZSwgc2l6ZTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1 aWxkZXIgcG9kX2J1aWxkZXI7Ci0gICBjb25zdCBzdHJ1Y3Qgc3BhX3BvZCAqcGFyYW1zWzNdOwot ICAgY29uc3QgaW50IGJwcCA9IDQ7Ci0KLS0gIGlmICghZm9ybWF0KQotLSAgICB7Ci0tICAgICAg cHdfc3RyZWFtX2ZpbmlzaF9mb3JtYXQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSwgMCwgTlVMTCwg MCk7Ci0tICAgICAgcmV0dXJuOwotLSAgICB9Ci0rICBpZiAoIWZvcm1hdCB8fCBpZCAhPSBTUEFf UEFSQU1fRm9ybWF0KQotKyAgICByZXR1cm47Ci0KLSAgIHNwYV9mb3JtYXRfdmlkZW9fcmF3X3Bh cnNlIChmb3JtYXQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnZpZGVv X2Zvcm1hdCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+c3BhX3R5cGUu Zm9ybWF0X3ZpZGVvKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+dmlk ZW9fZm9ybWF0KTsKLQotICAgd2lkdGggPSBwcml2LT52aWRlb19mb3JtYXQuc2l6ZS53aWR0aDsK LSAgIGhlaWdodCA9IHByaXYtPnZpZGVvX2Zvcm1hdC5zaXplLmhlaWdodDsKLSAgIHN0cmlkZSA9 IFNQQV9ST1VORF9VUF9OICh3aWR0aCAqIGJwcCwgNCk7Ci0gICBzaXplID0gaGVpZ2h0ICogc3Ry aWRlOwotCi0rICBwcml2LT52aWRlb19zdHJpZGUgPSBzdHJpZGU7Ci0rCi0gICBwb2RfYnVpbGRl ciA9IFNQQV9QT0RfQlVJTERFUl9JTklUIChwYXJhbXNfYnVmZmVyLCBzaXplb2YgKHBhcmFtc19i dWZmZXIpKTsKLQotLSAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBw YXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRl ciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRCdWZmZXJzLCBwaXBld2lyZV90eXBlLT5w YXJhbV9idWZmZXJzLkJ1ZmZlcnMsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVm ZmVycy5zaXplLCAiaSIsIHNpemUsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVm ZmVycy5zdHJpZGUsICJpIiwgc3RyaWRlLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFt X2J1ZmZlcnMuYnVmZmVycywgImlydSIsIDE2LCBQUk9QX1JBTkdFICgyLCAxNiksCi0tICAgICI6 IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5hbGlnbiwgImkiLCAxNik7Ci0tCi0tICBw YXJhbXNbMV0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgKLSsgICAgU1BBX1RZUEVfT0JKRUNU X1BhcmFtQnVmZmVycywgU1BBX1BBUkFNX0J1ZmZlcnMsCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJT X2J1ZmZlcnMsIFNQQV9QT0RfQ0hPSUNFX1JBTkdFX0ludCAoMTYsIDIsIDE2KSwKLSsgICAgU1BB X1BBUkFNX0JVRkZFUlNfYmxvY2tzLCBTUEFfUE9EX0ludCAoMSksCi0rICAgIFNQQV9QQVJBTV9C VUZGRVJTX3NpemUsIFNQQV9QT0RfSW50IChzaXplKSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNf c3RyaWRlLCBTUEFfUE9EX0ludCAoc3RyaWRlKSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYWxp Z24sIFNQQV9QT0RfSW50ICgxNikpOwotKwotKyAgcGFyYW1zWzFdID0gc3BhX3BvZF9idWlsZGVy X2FkZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBh cmFtLmlkTWV0YSwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBp cGV3aXJlX3R5cGUtPnBhcmFtX21ldGEudHlwZSwgIkkiLCBwaXBld2lyZV90eXBlLT5tZXRhLlZp ZGVvQ3JvcCwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwg c2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfdmlkZW9fY3JvcCkpOwotKyAgICBTUEFfVFlQRV9PQkpF Q1RfUGFyYW1NZXRhLCBTUEFfUEFSQU1fTWV0YSwKLSsgICAgU1BBX1BBUkFNX01FVEFfdHlwZSwg U1BBX1BPRF9JZCAoU1BBX01FVEFfVmlkZW9Dcm9wKSwKLSsgICAgU1BBX1BBUkFNX01FVEFfc2l6 ZSwgU1BBX1BPRF9JbnQgKHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX3JlZ2lvbikpKTsKLQotLSAg cGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMl0gPSBzcGFf cG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdp cmVfdHlwZS0+cGFyYW0uaWRNZXRhLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLk1ldGEsCi0t ICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS50eXBlLCAiSSIsIHByaXYtPnNwYV90 eXBlLm1ldGFfY3Vyc29yLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuc2l6 ZSwgImkiLCBDVVJTT1JfTUVUQV9TSVpFICg2NCwgNjQpKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNU X1BhcmFtTWV0YSwgU1BBX1BBUkFNX01ldGEsCi0rICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQ QV9QT0RfSWQgKFNQQV9NRVRBX0N1cnNvciksCi0rICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQ QV9QT0RfSW50IChDVVJTT1JfTUVUQV9TSVpFICg2NCwgNjQpKSk7Ci0KLS0gIHB3X3N0cmVhbV9m aW5pc2hfZm9ybWF0IChwcml2LT5waXBld2lyZV9zdHJlYW0sIDAsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotKyAgcHdfc3RyZWFt X3VwZGF0ZV9wYXJhbXMgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSwgcGFyYW1zLCBHX05fRUxFTUVO VFMgKHBhcmFtcykpOwotIH0KLQotIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfc3RyZWFtX2V2ZW50 cyBzdHJlYW1fZXZlbnRzID0gewotICAgUFdfVkVSU0lPTl9TVFJFQU1fRVZFTlRTLAotICAgLnN0 YXRlX2NoYW5nZWQgPSBvbl9zdHJlYW1fc3RhdGVfY2hhbmdlZCwKLS0gIC5mb3JtYXRfY2hhbmdl ZCA9IG9uX3N0cmVhbV9mb3JtYXRfY2hhbmdlZCwKLSsgIC5wYXJhbV9jaGFuZ2VkID0gb25fc3Ry ZWFtX3BhcmFtX2NoYW5nZWQsCi0gfTsKLQotIHN0YXRpYyBzdHJ1Y3QgcHdfc3RyZWFtICoKLUBA IC02NTIsOCArNjM0LDYgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RT dHJlYW1TcmMgICpzcmMsCi0gICB1aW50OF90IGJ1ZmZlclsxMDI0XTsKLSAgIHN0cnVjdCBzcGFf cG9kX2J1aWxkZXIgcG9kX2J1aWxkZXIgPQotICAgICBTUEFfUE9EX0JVSUxERVJfSU5JVCAoYnVm ZmVyLCBzaXplb2YgKGJ1ZmZlcikpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYt PnNwYV90eXBlOwotLSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBl d2lyZV90eXBlOwotICAgZmxvYXQgZnJhbWVfcmF0ZTsKLSAgIE1ldGFGcmFjdGlvbiBmcmFtZV9y YXRlX2ZyYWN0aW9uOwotICAgc3RydWN0IHNwYV9mcmFjdGlvbiBtYXhfZnJhbWVyYXRlOwotQEAg LTY2MSw3ICs2NDEsOSBAQCBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0 cmVhbVNyYyAgKnNyYywKLSAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpwYXJhbXNbMV07Ci0gICBp bnQgcmVzdWx0OwotCi0tICBwaXBld2lyZV9zdHJlYW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5w aXBld2lyZV9yZW1vdGUsCi0rICBwcml2LT5ub2RlX2lkID0gU1BBX0lEX0lOVkFMSUQ7Ci0rCi0r ICBwaXBld2lyZV9zdHJlYW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9jb3JlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1ldGEtc2NyZWVuLWNhc3Qtc3Jj IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotICAgaWYgKCFw aXBld2lyZV9zdHJlYW0pCi1AQCAtNjgyLDE3ICs2NjQsMTcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0 cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICBtYXhfZnJhbWVyYXRlID0g U1BBX0ZSQUNUSU9OIChmcmFtZV9yYXRlX2ZyYWN0aW9uLm51bSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZyYW1lX3JhdGVfZnJhY3Rpb24uZGVub20pOwotCi0tICBwYXJhbXNb MF0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgKLSsgIHBhcmFtc1swXSA9IHNwYV9wb2RfYnVp bGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9idWlsZGVyLAotLSAgICBwaXBld2lyZV90eXBl LT5wYXJhbS5pZEVudW1Gb3JtYXQsIHBpcGV3aXJlX3R5cGUtPnNwYV9mb3JtYXQsCi0tICAgICJJ Iiwgc3BhX3R5cGUtPm1lZGlhX3R5cGUudmlkZW8sCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlh X3N1YnR5cGUucmF3LAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZm9ybWF0LCAi SSIsIHNwYV90eXBlLT52aWRlb19mb3JtYXQuQkdSeCwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9y bWF0X3ZpZGVvLnNpemUsICJSIiwgJlNQQV9SRUNUQU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHByaXYtPnN0cmVhbV9oZWlnaHQpLAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlk ZW8uZnJhbWVyYXRlLCAiRiIsICZTUEFfRlJBQ1RJT04gKDAsIDEpLAotLSAgICAiOiIsIHNwYV90 eXBlLT5mb3JtYXRfdmlkZW8ubWF4X2ZyYW1lcmF0ZSwgIkZydSIsICZtYXhfZnJhbWVyYXRlLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS T1BfUkFOR0UgKCZtaW5fZnJhbWVyYXRlLAotKyAgICBTUEFfVFlQRV9PQkpFQ1RfRm9ybWF0LCBT UEFfUEFSQU1fRW51bUZvcm1hdCwKLSsgICAgU1BBX0ZPUk1BVF9tZWRpYVR5cGUsIFNQQV9QT0Rf SWQgKFNQQV9NRURJQV9UWVBFX3ZpZGVvKSwKLSsgICAgU1BBX0ZPUk1BVF9tZWRpYVN1YnR5cGUs IFNQQV9QT0RfSWQgKFNQQV9NRURJQV9TVUJUWVBFX3JhdyksCi0rICAgIFNQQV9GT1JNQVRfVklE RU9fZm9ybWF0LCBTUEFfUE9EX0lkIChTUEFfVklERU9fRk9STUFUX0JHUngpLAotKyAgICBTUEFf Rk9STUFUX1ZJREVPX3NpemUsIFNQQV9QT0RfUmVjdGFuZ2xlICgmU1BBX1JFQ1RBTkdMRSAocHJp di0+c3RyZWFtX3dpZHRoLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+c3RyZWFtX2hlaWdodCkpLAotKyAgICBTUEFf Rk9STUFUX1ZJREVPX2ZyYW1lcmF0ZSwgU1BBX1BPRF9GcmFjdGlvbiAoJlNQQV9GUkFDVElPTiAo MCwgMSkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX21heEZyYW1lcmF0ZSwgU1BBX1BPRF9DSE9J Q0VfUkFOR0VfRnJhY3Rpb24gKCZtYXhfZnJhbWVyYXRlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtaW5fZnJhbWVy YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZtYXhfZnJhbWVyYXRlKSk7Ci0KLSAgIHB3X3N0cmVhbV9hZGRfbGlz dGVuZXIgKHBpcGV3aXJlX3N0cmVhbSwKLUBAIC03MDIsNyArNjg0LDcgQEAgY3JlYXRlX3BpcGV3 aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0KLSAgIHJlc3VsdCA9 IHB3X3N0cmVhbV9jb25uZWN0IChwaXBld2lyZV9zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUFdfRElSRUNUSU9OX09VVFBVVCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQQV9JRF9JTlZB TElELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQV19TVFJFQU1fRkxBR19EUklW RVIgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQV19TVFJFQU1fRkxBR19NQVBf QlVGRkVSUyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxF TUVOVFMgKHBhcmFtcykpOwotQEAgLTcxNyw0MCArNjk5LDE4IEBAIGNyZWF0ZV9waXBld2lyZV9z dHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3JjLAotIH0KLQotIHN0YXRpYyB2b2lk Ci0tb25fc3RhdGVfY2hhbmdlZCAodm9pZCAgICAgICAgICAgICAgICAgKmRhdGEsCi0tICAgICAg ICAgICAgICAgICAgZW51bSBwd19yZW1vdGVfc3RhdGUgIG9sZCwKLS0gICAgICAgICAgICAgICAg ICBlbnVtIHB3X3JlbW90ZV9zdGF0ZSAgc3RhdGUsCi0tICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAgICAgICAgICAgKmVycm9yX21lc3NhZ2UpCi0rb25fY29yZV9lcnJvciAodm9pZCAgICAg ICAqZGF0YSwKLSsgICAgICAgICAgICAgICB1aW50MzJfdCAgICBpZCwKLSsJICAgICAgIGludCAg ICAgICAgIHNlcSwKLSsJICAgICAgIGludCAgICAgICAgIHJlcywKLSsJICAgICAgIGNvbnN0IGNo YXIgKm1lc3NhZ2UpCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7 Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3Nj cmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1 Y3QgcHdfc3RyZWFtICpwaXBld2lyZV9zdHJlYW07Ci0tICBHRXJyb3IgKmVycm9yID0gTlVMTDsK LQotLSAgc3dpdGNoIChzdGF0ZSkKLS0gICAgewotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9F UlJPUjoKLS0gICAgICBnX3dhcm5pbmcgKCJwaXBld2lyZSByZW1vdGUgZXJyb3I6ICVzXG4iLCBl cnJvcl9tZXNzYWdlKTsKLS0gICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5 X2Nsb3NlZCAoc3JjKTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVf Q09OTkVDVEVEOgotLSAgICAgIHBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJl YW0gKHNyYywgJmVycm9yKTsKLS0gICAgICBpZiAoIXBpcGV3aXJlX3N0cmVhbSkKLS0gICAgICAg IHsKLS0gICAgICAgICAgZ193YXJuaW5nICgiQ291bGQgbm90IGNyZWF0ZSBwaXBld2lyZSBzdHJl YW06ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotLSAgICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9y KTsKLS0gICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQg KHNyYyk7Ci0tICAgICAgICB9Ci0tICAgICAgZWxzZQotLSAgICAgICAgewotLSAgICAgICAgICBw cml2LT5waXBld2lyZV9zdHJlYW0gPSBwaXBld2lyZV9zdHJlYW07Ci0tICAgICAgICB9Ci0tICAg ICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfUkVNT1RFX1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBj YXNlIFBXX1JFTU9URV9TVEFURV9DT05ORUNUSU5HOgotLSAgICAgIGJyZWFrOwotLSAgICB9Ci0r ICBnX3dhcm5pbmcgKCJwaXBld2lyZSByZW1vdGUgZXJyb3I6IGlkOiV1ICVzIiwgaWQsIG1lc3Nh Z2UpOwotKwotKyAgaWYgKGlkID09IFBXX0lEX0NPUkUgJiYgcmVzID09IC1FUElQRSkKLSsgICAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0gfQotCi0g c3RhdGljIGdib29sZWFuCi1AQCAtNzkzLDE3ICs3NTMsNiBAQCBzdGF0aWMgR1NvdXJjZUZ1bmNz IHBpcGV3aXJlX3NvdXJjZV9mdW5jcyA9Ci0gICBwaXBld2lyZV9sb29wX3NvdXJjZV9maW5hbGl6 ZQotIH07Ci0KLS1zdGF0aWMgdm9pZAotLWluaXRfc3BhX3R5cGUgKE1ldGFTcGFUeXBlICAgICAg ICAgKnR5cGUsCi0tICAgICAgICAgICAgICAgc3RydWN0IHNwYV90eXBlX21hcCAqbWFwKQotLXsK LS0gIHNwYV90eXBlX21lZGlhX3R5cGVfbWFwIChtYXAsICZ0eXBlLT5tZWRpYV90eXBlKTsKLS0g IHNwYV90eXBlX21lZGlhX3N1YnR5cGVfbWFwIChtYXAsICZ0eXBlLT5tZWRpYV9zdWJ0eXBlKTsK LS0gIHNwYV90eXBlX2Zvcm1hdF92aWRlb19tYXAgKG1hcCwgJnR5cGUtPmZvcm1hdF92aWRlbyk7 Ci0tICBzcGFfdHlwZV92aWRlb19mb3JtYXRfbWFwIChtYXAsICZ0eXBlLT52aWRlb19mb3JtYXQp OwotLSAgdHlwZS0+bWV0YV9jdXJzb3IgPSBzcGFfdHlwZV9tYXBfZ2V0X2lkKG1hcCwgU1BBX1RZ UEVfTUVUQV9fQ3Vyc29yKTsKLS19Ci0tCi0gc3RhdGljIE1ldGFQaXBlV2lyZVNvdXJjZSAqCi0g Y3JlYXRlX3BpcGV3aXJlX3NvdXJjZSAodm9pZCkKLSB7Ci1AQCAtODI5LDkgKzc3OCw5IEBAIGNy ZWF0ZV9waXBld2lyZV9zb3VyY2UgKHZvaWQpCi0gICByZXR1cm4gcGlwZXdpcmVfc291cmNlOwot IH0KLQotLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfcmVtb3RlX2V2ZW50cyByZW1vdGVfZXZlbnRz ID0gewotLSAgUFdfVkVSU0lPTl9SRU1PVEVfRVZFTlRTLAotLSAgLnN0YXRlX2NoYW5nZWQgPSBv bl9zdGF0ZV9jaGFuZ2VkLAotK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfY29yZV9ldmVudHMgY29y ZV9ldmVudHMgPSB7Ci0rICBQV19WRVJTSU9OX0NPUkVfRVZFTlRTLAotKyAgLmVycm9yID0gb25f Y29yZV9lcnJvciwKLSB9OwotCi0gc3RhdGljIGdib29sZWFuCi1AQCAtODUxLDM3ICs4MDAsMzEg QEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAg ICAgKmluaXRhYmxlLAotICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgfQotCi0tICBwcml2LT5w aXBld2lyZV9jb3JlID0gcHdfY29yZV9uZXcgKHByaXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdp cmVfbG9vcCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0t ICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvcmUpCi0rICBwcml2LT5waXBld2lyZV9jb250ZXh0ID0g cHdfY29udGV4dF9uZXcgKHByaXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCk7Ci0rICBp ZiAoIXByaXYtPnBpcGV3aXJlX2NvbnRleHQpCi0gICAgIHsKLSAgICAgICBnX3NldF9lcnJvciAo ZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAg ICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBld2lyZSBjb3JlIik7Ci0rICAgICAgICAgICAgICAgICAg ICJGYWlsZWQgdG8gY3JlYXRlIHBpcGV3aXJlIGNvbnRleHQiKTsKLSAgICAgICByZXR1cm4gRkFM U0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdpcmVfcmVtb3RlID0gcHdfcmVtb3RlX25ldyAo cHJpdi0+cGlwZXdpcmVfY29yZSwgTlVMTCwgMCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX3Jl bW90ZSkKLSsgIHByaXYtPnBpcGV3aXJlX2NvcmUgPSBwd19jb250ZXh0X2Nvbm5lY3QgKHByaXYt PnBpcGV3aXJlX2NvbnRleHQsIE5VTEwsIDApOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9jb3Jl KQotICAgICB7Ci0gICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VS Uk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGNyZWF0IHBpcGV3aXJl IHJlbW90ZSIpOwotKyAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2ly ZSBjb250ZXh0Iik7Ci0gICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLS0gIHB3X3JlbW90 ZV9hZGRfbGlzdGVuZXIgKHByaXYtPnBpcGV3aXJlX3JlbW90ZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICZwcml2LT5waXBld2lyZV9yZW1vdGVfbGlzdGVuZXIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAmcmVtb3RlX2V2ZW50cywKLS0gICAgICAgICAgICAgICAgICAgICAgICAg IHNyYyk7Ci0rICBwd19jb3JlX2FkZF9saXN0ZW5lciAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+cGlwZXdpcmVfY29yZV9saXN0ZW5lciwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAmY29yZV9ldmVudHMsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgc3JjKTsKLQotLSAgcHJpdi0+cGlwZXdpcmVfdHlwZSA9IHB3X2NvcmVfZ2V0X3R5cGUg KHByaXYtPnBpcGV3aXJlX2NvcmUpOwotLSAgaW5pdF9zcGFfdHlwZSAoJnByaXYtPnNwYV90eXBl LCBwcml2LT5waXBld2lyZV90eXBlLT5tYXApOwotLQotLSAgaWYgKHB3X3JlbW90ZV9jb25uZWN0 IChwcml2LT5waXBld2lyZV9yZW1vdGUpICE9IDApCi0tICAgIHsKLS0gICAgICBnX3NldF9lcnJv ciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAg ICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2lyZSByZW1vdGUiKTsKLS0gICAgICByZXR1cm4g RkFMU0U7Ci0tICAgIH0KLSsgIHByaXYtPnBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2ly ZV9zdHJlYW0gKHNyYywgZXJyb3IpOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9zdHJlYW0pCi0r ICAgIHJldHVybiBGQUxTRTsKLQotICAgcmV0dXJuIFRSVUU7Ci0gfQotQEAgLTkxMiw4ICs4NTUs OCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZmluYWxpemUgKEdPYmplY3QgKm9iamVj dCkKLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0KLSAg IGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX3N0cmVhbSwgcHdfc3RyZWFtX2Rlc3Ry b3kpOwotLSAgZ19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVfcmVtb3RlLCBwd19yZW1v dGVfZGVzdHJveSk7Ci0tICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb3JlLCBw d19jb3JlX2Rlc3Ryb3kpOwotKyAgZ19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVfY29y ZSwgcHdfY29yZV9kaXNjb25uZWN0KTsKLSsgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3 aXJlX2NvbnRleHQsIHB3X2NvbnRleHRfZGVzdHJveSk7Ci0gICBnX3NvdXJjZV9kZXN0cm95ICgm cHJpdi0+cGlwZXdpcmVfc291cmNlLT5iYXNlKTsKLQotICAgR19PQkpFQ1RfQ0xBU1MgKG1ldGFf c2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlIGIvc3JjcGtncy9tdXR0ZXIvdGVt cGxhdGUKaW5kZXggODA2YTNiZWY5ZjAuLjQ3OTI4NDAzNGVhIDEwMDY0NAotLS0gYS9zcmNwa2dz L211dHRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQpAQCAtMSwzNCAr MSw0MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbXV0dGVyJwogcGtnbmFtZT1tdXR0ZXIKLXZl cnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVp bGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZWds X2RldmljZT10cnVlIC1EdWRldj10cnVlIC1EbmF0aXZlX2JhY2tlbmQ9dHJ1ZQotIC1EcHJvZmls ZXI9ZmFsc2UgLURpbnRyb3NwZWN0aW9uPXRydWUgLUR4d2F5bGFuZF9wYXRoPS91c3IvYmluL1h3 YXlsYW5kIgorIC1EcHJvZmlsZXI9ZmFsc2UgLURpbnRyb3NwZWN0aW9uPXRydWUgLUR4d2F5bGFu ZF9wYXRoPS91c3IvYmluL1h3YXlsYW5kCisgLUR4d2F5bGFuZF9pbml0ZmQ9ZGlzYWJsZWQiCiBo b3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBwa2ctY29uZmlnIHplbml0eSB3YXls YW5kLWRldmVsIHhvcmctc2VydmVyIgotbWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ2xpYi1k ZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGpzb24tZ2xpYi1kZXZlbAotIGxpYmdsaWItZGV2ZWwg bGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJpbnB1dC1kZXZl bAotIE1lc2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2 ZWwgd2F5bGFuZC1wcm90b2NvbHMKLSBnbm9tZS1zZXR0aW5ncy1kYWVtb24tZGV2ZWwiCi1kZXBl bmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5IgorbWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2 ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGdyYXBoZW5lLWRldmVsCisganNvbi1n bGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJjYW5i ZXJyYS1kZXZlbAorIGxpYmlucHV0LWRldmVsIE1lc2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2ZWwg c3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKKyB3YXlsYW5kLXByb3RvY29scyBnbm9tZS1zZXR0 aW5ncy1kYWVtb24tZGV2ZWwiCitkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGRl c2t0b3AtZmlsZS11dGlscyB6ZW5pdHkiCiBzaG9ydF9kZXNjPSJMaWdodHdlaWdodCBHVEsrMyB3 aW5kb3cgbWFuYWdlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvUHJvamVjdHMvTXV0dGVyLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPWJhMTgyNmNmODhiZGI4MWU2Mzk0M2NhYzAxNGE4ZThiY2YzNWVjMTc4YzUzMjY0NDAx ZjljNzJmZGVhYjc1OGUKLXNobGliX3Byb3ZpZGVzPSJsaWJtdXR0ZXItY2x1dHRlci01LnNvIGxp Ym11dHRlci1jb2dsLTUuc28KLSBsaWJtdXR0ZXItY29nbC1wYW5nby01LnNvIGxpYm11dHRlci1j b2dsLXBhdGgtNS5zbyIKK2NoZWNrc3VtPTA1OGVkMTNkMTAyMDg1ZDNlOWI2ZmE1NTY0YzY2MDUw YTQ3OGMzNjRhMGNjNTViYzg0NGZlYTNkZGNkOTBlYWIKK3NobGliX3Byb3ZpZGVzPSJsaWJtdXR0 ZXItY2x1dHRlci03LnNvIGxpYm11dHRlci1jb2dsLTcuc28KKyBsaWJtdXR0ZXItY29nbC1wYW5n by03LnNvIGxpYm11dHRlci1jb2dsLXBhdGgtNy5zbyIKKworIyBuZWVkcyBYCitkb19jaGVjaygp IHsKKwk6Cit9CiAKIG11dHRlci1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImdzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMgZ3RrKzMtZGV2ZWwgY2x1dHRlci1kZXZlbCBsaWJYMTEtZGV2ZWwK LQkgbGliWHRzdC1kZXZlbCBtdXR0ZXItJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRz PSJndGsrMy1kZXZlbCBncmFwaGVuZS1kZXZlbCBjbHV0dGVyLWRldmVsCisJIGxpYlgxMS1kZXZl bCBsaWJYdHN0LWRldmVsIG11dHRlci0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rl c2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNy L2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKLQkJdm1vdmUgInVzci9saWIvbXV0 dGVyLTUvKi5naXIiCisJCXZtb3ZlICJ1c3IvbGliL211dHRlci03LyouZ2lyIgogCQl2bW92ZSAi dXNyL2xpYi8qLnNvIgogCX0KIH0KCkZyb20gZmI4Yjk2YmFkNWRiMWUzMWRmYTk4YmJhYzdiYjFl OTMyNmZjZDQ4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDA0MC8xMDNdIGNoZWVzZTogdXBkYXRlIHRvIDMuMzguMAoKLS0t CiBzcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSB8IDE0ICsrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvY2hlZXNlL3RlbXBsYXRlIGIvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUKaW5kZXggN2E1NmJh MDM5ZmIuLmZhYTMyOWVlMGU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMCBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnY2hlZXNlJwogcGtnbmFtZT1jaGVlc2UKLXZlcnNpb249My4zNC4wCit2ZXJz aW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0i Z2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3RrX2RvYz0kKHZvcHRfaWYgZ3RrX2RvYyAndHJ1ZScg J2ZhbHNlJykKLSAtRG1hbj0kKHZvcHRfaWYgZ3RrX2RvYyAndHJ1ZScgJ2ZhbHNlJykiCitjb25m aWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ3RrX2RvYyBndGtfZG9jKSAkKHZvcHRfYm9vbCBndGtf ZG9jIG1hbikiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2RrLXBpeGJ1ZiBnbGliLWRldmVs IGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGxpYnJzdmcKICAkKHZvcHRfaWYgZ3RrX2RvYyAnZ3Rr LWRvYycpICQodm9wdF9pZiBnaXIgJ2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgogbWFrZWRlcGVu ZHM9ImNsdXR0ZXItZ3N0My1kZXZlbCBjbHV0dGVyLWd0ay1kZXZlbCBnbm9tZS1kZXNrdG9wLWRl dmVsCkBAIC0xNyw3ICsxNiw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvQXBwcy9DaGVlc2UiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT1kMTg2NTYwMGFjODgwMTJlMTM2YjFlYzNkYjcyYTQ2MzRmNTdiYzIwMzU4OTUyNzdi ZTc5MmJiMDc4NjI3ZTczCitjaGVja3N1bT04OGQyNzMyYjQyMWI5MDMxMTBhMjYyOGRiMjVjMGQ2 MWUyMTljNDJiZGZiNTk3MTE1MTAzM2ZiYTk1YThkMTZmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciBn dGtfZG9jIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCkBAIC0zNywxMSArMzYsOCBAQCBs aWJjaGVlc2VfcGFja2FnZSgpIHsKIH0KIAogY2hlZXNlLWRldmVsX3BhY2thZ2UoKSB7Ci0JZGVw ZW5kcz0iZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbAotCQkgY2x1dHRlci1nc3QzLWRldmVsCi0JCSBj bHV0dGVyLWd0ay1kZXZlbAotCQkgbGliY2FuYmVycmEtZGV2ZWwKLQkJIGxpYmNoZWVzZT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRzPSJnc3QtcGx1Z2lucy1iYWQxLWRldmVsIGNs dXR0ZXItZ3N0My1kZXZlbCBjbHV0dGVyLWd0ay1kZXZlbAorCSBsaWJjYW5iZXJyYS1kZXZlbCBs aWJjaGVlc2U+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVs b3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJv bSBlY2E5NDI0NWRiY2FiMzg5MDkwOWIwNzUxZTIwMjE4NTBiNGNkOGZjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQxLzEw M10gZXZvbHV0aW9uLWRhdGEtc2VydmVyOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIGNvbW1vbi9z aGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZXZvbHV0aW9u LWRhdGEtc2VydmVyL3RlbXBsYXRlIHwgMjUgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBm aWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBmMmE2ZTk5NTdlNC4uNDFj NmViODAyMTQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpA QCAtNjI2LDcgKzYyNiw3IEBAIGxpYmljYWxzc19jeHguc28uMyBsaWJpY2FsLTMuMC40XzEKIGxp YmljYWx2Y2FsLnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJpY2FsLWdsaWIuc28uMyBsaWJpY2Fs LTMuMC40XzEKIGxpYmNhbWVsLTEuMi5zby42MiBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMC4w XzEKLWxpYmVkYXRhc2VydmVyLTEuMi5zby4yNCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMi4w XzEKK2xpYmVkYXRhc2VydmVyLTEuMi5zby4yNSBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zNy45 MF8xCiBsaWJlYmFja2VuZC0xLjIuc28uMTAgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMTcuOTBf MQogbGliZWRhdGFzZXJ2ZXJ1aS0xLjIuc28uMiBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yOC4w XzEKIGxpYmVib29rLWNvbnRhY3RzLTEuMi5zby4zIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjM0 LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUg Yi9zcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQppbmRleCBlNTAyOTJhNDNl YS4uOGNjZjljYjZlYjAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVy L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCkBA IC0xLDI5ICsxLDM0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZGF0YS1zZXJ2 ZXInCiBwa2duYW1lPWV2b2x1dGlvbi1kYXRhLXNlcnZlcgotdmVyc2lvbj0zLjM2LjEKLXJldmlz aW9uPTMKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQotYnVp bGRfaGVscGVyPWdpcgorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSIt REVOQUJMRV9VT0E9T0ZGCi0gJCh2b3B0X2lmIGdpciAnLURFTkFCTEVfSU5UUk9TUEVDVElPTj1P TiAtREVOQUJMRV9WQUxBX0JJTkRJTkdTPU9OJyAnLURFTkFCTEVfV0VBVEhFUj1PRkYnKSIKLWhv c3RtYWtlZGVwZW5kcz0iZmxleCBnbGliLWRldmVsIGdwZXJmIGludGx0b29sIHBrZy1jb25maWcg bGliZ2xpYi1kZXZlbAotICQodm9wdF9pZiBnaXIgJ2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgot bWFrZWRlcGVuZHM9ImJvb3N0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdkYXRhLWRldmVs ICQodm9wdF9pZiBnaXIgbGliZ3dlYXRoZXItZGV2ZWwpCi0gbGliaWNhbC1kZXZlbCBsaWJzZWNy ZXQtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgJCh2b3B0X2lmIGdpciAndmFsYS1kZXZlbCcpIHdlYmtp dDJndGstZGV2ZWwiCi1kZXBlbmRzPSIkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVyKSBsaWJzb3Vw LWdub21lIgorICQodm9wdF9pZiBnaXIgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFC TEVfVkFMQV9CSU5ESU5HUz1PTicpIgoraG9zdG1ha2VkZXBlbmRzPSJmbGV4IGdsaWItZGV2ZWwg Z3BlcmYgaW50bHRvb2wgcGtnLWNvbmZpZyBsaWJnbGliLWRldmVsIgorbWFrZWRlcGVuZHM9ImJv b3N0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdkYXRhLWRldmVsIGxpYmljYWwtZGV2ZWwK KyBsaWJzZWNyZXQtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJnd2Vh dGhlci1kZXZlbAorICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCitkZXBlbmRzPSJsaWJnd2Vh dGhlciBsaWJzb3VwLWdub21lIgogc2hvcnRfZGVzYz0iQ2VudHJhbGl6ZWQgYWNjZXNzIHRvIGFw cG9pbnRtZW50cyBhbmQgY29udGFjdHMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb25seSIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9uIgogY2hhbmdlbG9nPSJodHRwczovL3Jh dy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWRhdGEtc2VydmVyL2dub21l LTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTEzMTIyYjJlZGRk Yjk4MzA2MjA3ZDJhMzVkNWNjYWUyNWE5MDcwMjc2OWNhMGEwYjUxNjUzYjU5ODQ5ODY3OTYKK2No ZWNrc3VtPTEzNjg5YTdiNTU3NjU4MDZjNGQ1ZjNiMDVlZjZjMjRiMGJmOTk1N2I5ZWQ5MjQwYzJk ZDA5YTJjZGIxM2IwYWYKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JV SUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiBmaQogCisjIHByb2Js ZW1hdGljCitkb19jaGVjaygpIHsKKwk6Cit9CisKICMgY21ha2UgcGVyZm9tcm1zIDIgY2hlY2tz IHVzaW5nIGJpbmFyeSBydW50aW1lLCBhYm91dCBpY29udiBhbmQgc2ZydGltZS4KICMgbXVzbCAo MS4xLjE2KSBkb2VzIG5vdCBzdXBwb3J0ICJJU08tMjAyMi1KUCIgZW5jb2RpbmcgKHNlZSBpdHMg cm9hZG1hcCksCiAjIGFsdGhvdWdoIGV2b2x1dGlvbi1kYXRhLXNlcnZlciBpcyBmaW5lIHdpdGgg bXVzbC4KCkZyb20gZDEwYmU4NWQyZmVkMDYzMjc1ZTI5OGIxZmM2NDA1OGYxNWZkM2E3NyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BB VENIIDA0Mi8xMDNdIGZvbGtzOiB1cGRhdGUgdG8gMC4xNC4wCgotLS0KIGNvbW1vbi9zaGxpYnMg ICAgICAgICAgfCAgNyArKysrLS0tCiBzcmNwa2dzL2ZvbGtzL3RlbXBsYXRlIHwgMjggKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCsp LCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCA0MWM2ZWI4MDIxNC4uMzNkMmEzNWZhMDQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtODMxLDkgKzgzMSwxMCBAQCBsaWJkbXIuc28u MC4xIGRlZXBpbi1tb3ZpZS1yZWJvcm4tMy4yLjVfMQogbGliZ2pzLnNvLjAgZ2pzLTEuNjUuMl8x CiBsaWJ0ZWxlcGF0aHktZ2xpYi5zby4wIHRlbGVwYXRoeS1nbGliLTAuMTUuNV8xCiBsaWJhY2Nv dW50c3NlcnZpY2Uuc28uMCBhY2NvdW50c3NlcnZpY2UtMC42LjRfMQotbGliZm9sa3Muc28uMjUg Zm9sa3MtMC45LjVfMQotbGliZm9sa3MtdGVsZXBhdGh5LnNvLjI1IGZvbGtzLTAuOS41XzEKLWxp YmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjkuNV8xCitsaWJmb2xrcy5zby4yNSBmb2xrcy0wLjE0 LjBfMQorbGliZm9sa3MtZHVtbXkuc28uMjUgZm9sa3MtMC4xNC4wXzEKK2xpYmZvbGtzLXRlbGVw YXRoeS5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZWRzLnNvLjI1IGZvbGtzLTAuMTQu MF8xCiBsaWJuaWNlLnNvLjEwIGxpYm5pY2UtMC4xLjBfMQogbGliZ3VwbnAtaWdkLTEuMC5zby40 IGd1cG5wLWlnZC0wLjIuMF8xCiBsaWJ0ZWxlcGF0aHktbG9nZ2VyLnNvLjMgdGVsZXBhdGh5LWxv Z2dlci0wLjYuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZvbGtzL3RlbXBsYXRlIGIvc3JjcGtn cy9mb2xrcy90ZW1wbGF0ZQppbmRleCAzMzEwYzU0ZmFkZC4uYjA3NmI5NGJlYTIgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQpA QCAtMSwyMSArMSwyNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZm9sa3MnCiBwa2duYW1lPWZv bGtzCi12ZXJzaW9uPTAuMTMuMQotcmV2aXNpb249MgordmVyc2lvbj0wLjE0LjAKK3JldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1idWlsZF9oZWxwZXI9Z2lyCi1jb25maWd1cmVfYXJncz0i LURiX2x0bz1mYWxzZSAtRGxpYnNvY2lhbHdlYi1iYWNrZW5kPWZhbHNlIgotaG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwgdmFsYSBweXRob24gZ29iamVjdC1p bnRyb3NwZWN0aW9uCi0gZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIgorYnVpbGRfaGVscGVy PSJnaXIgcWVtdSIKK2NvbmZpZ3VyZV9hcmdzPSItRGJfbHRvPWZhbHNlIgoraG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwgcHl0aG9uMyBweXRob24zLWRidXNt b2NrCisgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBt YWtlZGVwZW5kcz0icmVhZGxpbmUtZGV2ZWwgdGVsZXBhdGh5LWdsaWItZGV2ZWwgemVpdGdlaXN0 LWRldmVsCi0gbGliZ2VlMDgtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNr ZXItZGV2ZWwiCisgbGliZ2VlMDgtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIHRy YWNrZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgogZGVwZW5kcz0iemVpdGdl aXN0Igogc2hvcnRfZGVzYz0iR09iamVjdCBMaWJyYXJ5IHRvIGFnZ3JlZ2F0ZSBwZW9wbGUgaW50 byBtZXRhY29udGFjdHMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Gb2xrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTNkZjFjNjYzYjgyZmUyMTFhZWFkMmIzMWNhZTFmYzQxZDEyNGU4NTQzNjM3NTc2MmY2 NzQ1YzQ1YmE0NmFhNWQKK2NoZWNrc3VtPWQ2ZTc3OGRhNjM3ZDNiMzNmZDlhNmI0NTExNWU4MTU3 ZDg4NjgyMTFkYzA4Yjk0M2QxMDc1YjVlYjcyODJiYjkKKworYnVpbGRfb3B0aW9ucz0iZ2lyIgor aWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJn aXIiCitmaQogCiBmb2xrcy1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVu ZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKQEAgLTI0LDcgKzMwLDkg QEAgZm9sa3MtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUg dXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKLQkJdm1vdmUgdXNyL3No YXJlL3ZhbGEKLQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKKwkJaWYgWyAiJGJ1aWxkX29wdGlv bl9naXIiIF07IHRoZW4KKwkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCisJCQl2bW92ZSB1c3Iv c2hhcmUvdmFsYQorCQlmaQogCX0KIH0KCkZyb20gMzhhY2ZlMGM5NzU2YTY3OGRkMjBjOThiYTZj YTQxYjQwOWFjYjFkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA0My8xMDNdIGdub21lLW9ubGluZS1hY2NvdW50czogdXBk YXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxh dGUgfCAxNCArKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50 cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCmluZGV4 IDE5M2E3ZjliNDNmLi4yOTk4MGQ0MzQyNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1vbmxp bmUtYWNjb3VudHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1vbmxp bmUtYWNjb3VudHMnCiBwa2duYW1lPWdub21lLW9ubGluZS1hY2NvdW50cwotdmVyc2lvbj0zLjM2 LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy45MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iJCh2b3B0 X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikKQEAgLTExLDcgKzExLDcgQEAgY29uZmlndXJlX2Fy Z3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCiAgLS1lbmFibGUtb3duY2xvdWQg LS1lbmFibGUtd2luZG93cy1saXZlIC0tZW5hYmxlLXBvY2tldAogIC0tZW5hYmxlLWxhc3RmbSAt LWVuYWJsZS1tZWRpYS1zZXJ2ZXIiCiBob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdldHRl eHQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1jb21tb24KLSBsaWJ4c2x0IHBrZy1jb25maWcgJCh2 b3B0X2lmIHZhbGEgdmFsYSkiCisgbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFs YSkiCiBtYWtlZGVwZW5kcz0iZ2NyLWRldmVsIGd0ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbCBs aWJub3RpZnktZGV2ZWwgbGlic2VjcmV0LWRldmVsCiAgbGlic291cC1kZXZlbCBtaXQta3JiNS1k ZXZlbCByZXN0LWRldmVsIHRlbGVwYXRoeS1nbGliLWRldmVsIHdlYmtpdDJndGstZGV2ZWwiCiBk ZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUiCkBAIC0yMCwxMCArMjAsMTAgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25v bWVPbmxpbmVBY2NvdW50cyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTFjOGY2 Mjk5MDgzM2NhNDExODhkYmI4MGM1ZTk5ZDk5YjU3YTYyNjA4Y2E2NzViYmNkMzdiYzIyNDQ3NDJm MmUKK2NoZWNrc3VtPTlmNjk4MmM4OTZlNjIzNWEyZTg1YjhhNDk3YzdiZjYzYTRhMjg4YjU2Nzhk YjQwZGMzNzM1MTVlZmJlZGIxYmIKIAotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9v cHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdl KCkgewogCWRlcGVuZHM9Imd0ayszLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKQEAgLTM1LDggKzM1LDYgQEAgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsX3Bh Y2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvZ29hLTEuMAogCQlpZiBbICIkYnVpbGRfb3B0aW9u X2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAi JGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlm aQogCX0KCkZyb20gOTI1OWQ5OGJiNWEyMzA3YTJlMGIzN2QyODg1YzQ5MTM5ZDFiNzQ1YSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MTA6NDQgKzAyMDAKU3ViamVjdDogW1BB VENIIDA0NC8xMDNdIGd2ZnM6IHVwZGF0ZSB0byAxLjQ2LjAKCi0tLQogc3JjcGtncy9ndmZzL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Zm cy90ZW1wbGF0ZQppbmRleCAxMjdhMDU3NzkwMS4uNjEwNzAyM2MyMWUgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ3Zmcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdndmZzJwogcGtnbmFtZT1ndmZzCi12ZXJzaW9u PTEuNDQuMQordmVyc2lvbj0xLjQ2LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBj b25maWd1cmVfYXJncz0iLURzeXN0ZW1kdXNlcnVuaXRkaXI9bm8gLUR0bXBmaWxlc2Rpcj1ubyAt RGxvZ2luZD1mYWxzZQpAQCAtMjAsNyArMjAsNyBAQCBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL2d2ZnMiCiBjaGFu Z2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9ndmZzL3Jhdy9nbm9tZS0zLTM0 L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01MGVmMzI0NWQxYjAzNjY2 YTQwNDU1MTA5MTY5YTJhMWJkNTE0MTlmZDJkNTFmOWZhNmNmZDRmODlmMDRmYjQ2CitjaGVja3N1 bT03OGJhNzNhNmRhMDlhMjFjZTNhY2M3NzZiNDZjMjZkZDViZWEyMTY0NjNhNjVkNjViNDA1MmE1 N2Y1ZDk3MGU5CiAKICMgTWFudWFsbHkgZGVjbGFyZSBzaGxpYnMgdXNlZCBieSB0aGUgc3VicGtn cy4KIHNobGliX3Byb3ZpZGVzPSJsaWJndmZzY29tbW9uLnNvIGxpYmd2ZnNkYWVtb24uc28iCgpG cm9tIDE3YWVhZGVlZjgzYTNmNDYyNWYyM2Y3MGVkMzgwZTE2MThjYjRmYjggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDUv MTAzXSBnbm9tZS1jb250cm9sLWNlbnRlcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dz L05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgMiArCiAuLi4vZ25vbWUt Y29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaCAgfCAzOCArKysrKysrKysrKysrKysr KysrCiBzcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlICAgICAgICAgfCAyNCAr KysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9w YXRjaGVzL25tMTIyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9OZXR3b3JrTWFuYWdlci90 ZW1wbGF0ZSBiL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvdGVtcGxhdGUKaW5kZXggZWRlYjgyNzg1 NzkuLmU0ODJiYmE5OGRlIDEwMDY0NAotLS0gYS9zcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvdGVtcGxhdGUKQEAgLTEsNCArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdOZXR3b3JrTWFuYWdlcicKKyMgd2hlbiB1cGRhdGluZyB0 byAxLjI0IG9yIG5ld2VyLCBkcm9wIHRoZSBjb21wYXQKKyMgcGF0Y2ggaW4gZ25vbWUtY29udHJv bC1jZW50ZXIgYW5kIHJlYnVpbGQgaXQKIHBrZ25hbWU9TmV0d29ya01hbmFnZXIKIHZlcnNpb249 MS4yMi4xMAogcmV2aXNpb249MgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jb250cm9sLWNl bnRlci9wYXRjaGVzL25tMTIyLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9w YXRjaGVzL25tMTIyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li44MzNmZWQzOTY4ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1j ZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaApAQCAtMCwwICsxLDM4IEBACitGcm9tIDQxNTlmOTg0 YmQzNTFjYWY2ZjBlMWFkYmQ5MGZlZWI4NWFiMjUyZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwg MTYgU2VwIDIwMjAgMjI6MDI6MDQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gcmVzdG9yZSBjb21w YXRpYmlsaXR5IHdpdGggbmV0d29ya21hbmFnZXIgMS4yMgorCitkcm9wIHRoaXMgcGF0Y2ggYW5k IHJlYnVpbGQgZ25vbWUtY29udHJvbC1jZW50ZXIgd2hlbiB1cGRhdGluZyBubQorLS0tCisgcGFu ZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMgfCA3IC0tLS0tLS0KKyAxIGZpbGUgY2hhbmdl ZCwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBwYW5lbHMvbmV0d29yay9uZXQtZGV2aWNl LXdpZmkuYyBwYW5lbHMvbmV0d29yay9uZXQtZGV2aWNlLXdpZmkuYworaW5kZXggY2I4NmU1Yi4u ZDYzYzU3YyAxMDA2NDQKKy0tLSBwYW5lbHMvbmV0d29yay9uZXQtZGV2aWNlLXdpZmkuYworKysr IHBhbmVscy9uZXR3b3JrL25ldC1kZXZpY2Utd2lmaS5jCitAQCAtMTE4MCwxMSArMTE4MCw2IEBA IG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5nZSAoTmV0RGV2aWNlV2lmaSAqc2VsZikgewor ICAgICAgICAgTk1DbGllbnRQZXJtaXNzaW9uUmVzdWx0IHBlcm07CisgICAgICAgICBOTURldmlj ZVdpZmlDYXBhYmlsaXRpZXMgY2FwczsKKyAKKy0gICAgICAgIGlmIChubV9jbGllbnRfZ2V0X3Bl cm1pc3Npb25zX3N0YXRlIChzZWxmLT5jbGllbnQpICE9IE5NX1RFUk5BUllfVFJVRSkgeworLSAg ICAgICAgICAgICAgICAvKiBwZXJtaXNzaW9ucyBhcmVuJ3QgcmVhZHkgeWV0ICovCistICAgICAg ICAgICAgICAgIHJldHVybjsKKy0gICAgICAgIH0KKy0KKyAgICAgICAgIC8qIG9ubHkgZW5hYmxl IHRoZSBidXR0b24gaWYgdGhlIHVzZXIgY2FuIGNyZWF0ZSBhIGhvdHNwb3QgKi8KKyAgICAgICAg IHBlcm0gPSBubV9jbGllbnRfZ2V0X3Blcm1pc3Npb25fcmVzdWx0IChzZWxmLT5jbGllbnQsIE5N X0NMSUVOVF9QRVJNSVNTSU9OX1dJRklfU0hBUkVfT1BFTik7CisgICAgICAgICBjYXBzID0gbm1f ZGV2aWNlX3dpZmlfZ2V0X2NhcGFiaWxpdGllcyAoTk1fREVWSUNFX1dJRkkgKHNlbGYtPmRldmlj ZSkpOworQEAgLTEyMjcsOCArMTIyMiw2IEBAIG5ldF9kZXZpY2Vfd2lmaV9uZXcgKENjUGFuZWwg KnBhbmVsLCBOTUNsaWVudCAqY2xpZW50LCBOTURldmljZSAqZGV2aWNlKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKGFwX2FjdGl2YXRlZCksIHNlbGYsIEdf Q09OTkVDVF9TV0FQUEVEKTsKKyAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChsaXN0 LCAiY29uZmlndXJlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExC QUNLIChzaG93X2RldGFpbHNfZm9yX3JvdyksIHNlbGYsIEdfQ09OTkVDVF9TV0FQUEVEKTsKKy0g ICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChjbGllbnQsICJub3RpZnkiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sobm1fY2xpZW50X29uX3Blcm1p c3Npb25fY2hhbmdlKSwgc2VsZiwgR19DT05ORUNUX1NXQVBQRUQpOworIAorICAgICAgICAgbm1f Y2xpZW50X29uX3Blcm1pc3Npb25fY2hhbmdlKHNlbGYpOworIAorLS0gCisyLjI4LjAKKwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUKaW5kZXggOWZkYjg1M2FmYmYuLjE5MTEwMWFm YWFkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjIg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNvbnRyb2wtY2VudGVyJwogcGtnbmFtZT1n bm9tZS1jb250cm9sLWNlbnRlcgotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249 My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIi CiBjb25maWd1cmVfYXJncz0iLURjaGVlc2U9JCh2b3B0X2lmIGNoZWVzZSB0cnVlIGZhbHNlKSIK LWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRl dmVsIGludGx0b29sIHBrZy1jb25maWcgcG9sa2l0Ci0gcHl0aG9uMyIKK2hvc3RtYWtlZGVwZW5k cz0iZ2xpYi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBr Zy1jb25maWcKKyBwb2xraXQgcHl0aG9uMyIKIG1ha2VkZXBlbmRzPSJNb2RlbU1hbmFnZXItZGV2 ZWwgYWNjb3VudHNzZXJ2aWNlLWRldmVsIGFsc2EtcGx1Z2lucwogIGNvbG9yZC1ndGstZGV2ZWwg Z25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ25vbWUtbWVudXMtZGV2 ZWwKICBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWwgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRl dmVsIGdyaWxvLWRldmVsIGlidXMtZGV2ZWwKLSBsaWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2 ZWwgbGliZ25vbWVrYmQtZGV2ZWwgbGliZ3RvcC1kZXZlbAorIGxpYlNNLWRldmVsIGxpYlh4Zjg2 bWlzYy1kZXZlbCBsaWJnbm9tZWtiZC1kZXZlbCBsaWJndG9wLWRldmVsIGxpYmhhbmR5MS1kZXZl bAogIGxpYnB3cXVhbGl0eS1kZXZlbCBtaXQta3JiNS1kZXZlbCBuZXR3b3JrLW1hbmFnZXItYXBw bGV0LWRldmVsIHBvbGtpdC1kZXZlbAogIHB1bHNlYXVkaW8tZGV2ZWwgc2FtYmEtZGV2ZWwgdHpk YXRhIHVwb3dlci1kZXZlbCB2YWxhLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsCiAgbGlieG1sMi1k ZXZlbCBsaWJYMTEtZGV2ZWwgZ3RrKzMtZGV2ZWwgY3Vwcy1kZXZlbCBsaWJndWRldi1kZXZlbCBs aWJ3YWNvbS1kZXZlbAogIGNsdXR0ZXItZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYmNhbmJlcnJh LWRldmVsIHVkaXNrczItZGV2ZWwgZ3NvdW5kLWRldmVsCiAgJCh2b3B0X2lmIGNoZWVzZSBjaGVl c2UtZGV2ZWwpIgotZGVwZW5kcz0iYWxzYS1wbHVnaW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxl LXV0aWxzCitkZXBlbmRzPSJhbHNhLXBsdWdpbnMtcHVsc2VhdWRpbyBkZXNrdG9wLWZpbGUtdXRp bHMgdXBvd2VyIGNvbG9yZCBjdXBzLXBrLWhlbHBlcgogIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVt YXMgaGljb2xvci1pY29uLXRoZW1lIGlzby1jb2RlcyBzb3VuZC10aGVtZS1mcmVlZGVza3RvcAog IGNyYWNrbGliIgogc2hvcnRfZGVzYz0iR05PTUUgY29udHJvbCBjZW50ZXIiCkBAIC0yNCwxMyAr MjQsMTcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL2dub21lLWNvbnRyb2wtY2VudGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09NWY4MmVjZDU1NTQxMzZjNDYyMjQ4ZWM1MzYzYjgyZDk1MzU4YjM5ZGZkNjc4 NzAwNmQ4MzA3YjQ1MDRlNTE1ZQorY2hlY2tzdW09ZjZiNmI1YjhlZjljMzhkODk1YmE1YWY4N2Yz MWFkYWUwMjE5NGFkODZjOWFhNmNmZjJkMmI5NzU1YzJkYjFkYQogCiBidWlsZF9vcHRpb25zPSJj aGVlc2UiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImNoZWVzZSIKKwogZGVzY19vcHRpb25fY2hl ZXNlPSJBZGQgc3VwcG9ydCBmb3IgYWRkaW5nIHVzZXIgYWNjb3VudCBpbWFnZXMgd2l0aCB5b3Vy IHdlYmNhbSIKLWlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWJ1aWxkX29wdGlvbnNf ZGVmYXVsdCs9IiBjaGVlc2UiCi1maQorCisjIG5lZWRzIFgxMSBhbmQgcmVxdWlyZXMgYWx0ZXJl ZCBmaWxlc3lzdGVtCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIENGTEFHUz0iLWZjb21tb24iCiAK CkZyb20gZWRhNTEzMjE2MTZhMzkyYjRlMzlkNjVhYmRjMTI4MmY2OTc4OGRhNiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0 Ni8xMDNdIGRjb25mLWVkaXRvcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2Rjb25m LWVkaXRvci90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZGNvbmYtZWRpdG9yL3Rl bXBsYXRlIGIvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUKaW5kZXggZGUyNTBiYmM4YTku LjIzMjUyYjlmNzRlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZGNvbmYtZWRpdG9yJwogcGtnbmFtZT1kY29uZi1lZGl0b3IKLXZl cnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KLWhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1j b25maWcgdmFsYSIKK2hvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZ2xpYi1kZXZlbCBsaWJ4 c2x0IHBrZy1jb25maWcgdmFsYSBnZXR0ZXh0IgogbWFrZWRlcGVuZHM9ImRjb25mLWRldmVsIGd0 ayszLWRldmVsIgogc2hvcnRfZGVzYz0iTG93LWxldmVsIGNvbmZpZ3VyYXRpb24gc3lzdGVtIC0g R1RLKyBlZGl0b3IiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL1Byb2plY3RzL2Rjb25mIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtn bmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09NzJlZWQwNTY3MDkxN2Y4ZTQzMjAwZTQwY2NjNmJlNjAyMTFmMGE4N2IwMTc1MzRlYWMxZmQ2 YzcxNzNhMDY5MworY2hlY2tzdW09NmQ4OTI0OWEzNzkwODJkZTZhOGU5NWEyYTIwMmQwY2E1ZmUx Yzk3NzZiYzBkNWQzZWYwNjU1NjdkODE4M2ViNAoKRnJvbSBiMzhjZTM2NjQ1ZGFmZWQ4YTI0Yjgy YzJjMDBlYjE3ZGM5ODMxM2FiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjo0 MjowMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ3LzEwM10gZ2pzOiB1cGRhdGUgdG8gMS42Ni4w CgotLS0KIHNyY3BrZ3MvZ2pzL3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dq cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCmluZGV4IGVjNDhiYWRkZjExLi44YTEz M2RkODA0OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nanMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n anMvdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dqcycK IHBrZ25hbWU9Z2pzCi12ZXJzaW9uPTEuNjUuMgordmVyc2lvbj0xLjY2LjAKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciBxZW11IgogY29uZmlndXJlX2Fy Z3M9Ii1Ec2tpcF9kYnVzX3Rlc3RzPXRydWUgLURza2lwX2d0a190ZXN0cz10cnVlCiAgLURwcm9m aWxlcj1kaXNhYmxlZCAtRGluc3RhbGxlZF90ZXN0cz1mYWxzZSIgIyBEaXNhYmxlIHRlc3RzIGJl Y2F1c2UgdGhleSBuZWVkIGRidXMsIFggYW5kIEdUSy4KIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1k ZXZlbCBwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9ImRidXMtZ2xpYi1kZXZlbCBtb3pqczY4LWRl dmVsIHJlYWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2ZWwiCittYWtlZGVwZW5kcz0iZGJ1cy1nbGli LWRldmVsIG1vempzNzgtZGV2ZWwgcmVhZGxpbmUtZGV2ZWwgc3lzcHJvZi1kZXZlbCIKIHNob3J0 X2Rlc2M9Ik1vemlsbGEtYmFzZWQgamF2YXNjcmlwdCBiaW5kaW5ncyBmb3IgdGhlIEdOT01FIHBs YXRmb3JtIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9Ik1JVCwgTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtp Lmdub21lLm9yZy9hY3Rpb24vc2hvdy9Qcm9qZWN0cy9HanMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8v Z2l0bGFiLmdub21lLm9yZy9HTk9NRS9nanMvYmxvYi9nbm9tZS0zLTMwL05FV1MiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNjZlZGFkOGE1ZjEwMDI3ZjliMTgyZDg4YWY4NGI4 MWYxM2U1YWQ1ODQwMzE5Y2ZhNzQ3ZDY2ZTc3ZTAyMTRmCitjaGVja3N1bT1mMzBjZjkwZTAxNmRi NmM4ZmRkMDA1OTc0OTU1OTYxMTc2MGYwNzIxZjM3NWIyYjYxZTBiNzIzOWI0M2FiNWY4CiAKIHBv c3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBDT1BZSU5HCiB9CiAKIGdqcy1kZXZlbF9wYWNrYWdl KCkgewotCWRlcGVuZHM9ImxpYmdpcmVwb3NpdG9yeS1kZXZlbCBtb3pqczY4LWRldmVsICR7c291 cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRzPSJsaWJnaXJlcG9zaXRv cnktZGV2ZWwgbW96anM3OC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkg ewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSA3NDNlZTllMWJkOGEwOWU5YmM2YmYwYmFjZTEx NTI0OWM0YTM1NDNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ4LzEwM10gZ25vbWUtc2hlbGw6IHVwZGF0ZSB0byAzLjM4 LjAKCi0tLQogc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZSB8IDExICsrKysrKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNoZWxsL3Rl bXBsYXRlCmluZGV4IDk2YzViODBhMTk0Li5mMjc3OTU1NzJlZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRl CkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zaGVsbCcKIHBr Z25hbWU9Z25vbWUtc2hlbGwKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1naXIKIGNvbmZpZ3VyZV9hcmdz PSItRHN5c3RlbWQ9ZmFsc2UiCiBob3N0bWFrZWRlcGVuZHM9ImdvYmplY3QtaW50cm9zcGVjdGlv biBndGstZG9jIGxpYnhzbHQgcGtnLWNvbmZpZyBweXRob24zIHNhc3NjCi0gYXNjaWlkb2MgcGVy bCBnbGliLWRldmVsIG11dHRlci1kZXZlbCIKKyBhc2NpaWRvYyBwZXJsIGdsaWItZGV2ZWwgbXV0 dGVyLWRldmVsIGdldHRleHQgZ2pzLWRldmVsIgogbWFrZWRlcGVuZHM9ImF0LXNwaTItYXRrIGNh cmlib3UtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIGZvbGtzLWRldmVsCiAgZ2Ny LWRldmVsIGdqcy1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtY29udHJvbC1jZW50 ZXItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAogIGdub21lLW1lbnVzLWRldmVsIGdzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3N0cmVhbWVyMS1kZXZlbCBndGsrMy1kZXZlbApAQCAt MjEsNCArMjEsOSBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVTaGVsbCIKIGNoYW5nZWxvZz0iaHR0cHM6 Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLXNoZWxsL2dub21lLTMtMzAv TkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWNjZDg2NTU5YjljODk3YzIx OWQyZDJlYmZkYjg0MTNlZmE0YzFiZWU4NDY0MjdjNzUwY2I4YTMwMWIzZjZkMWUKK2NoZWNrc3Vt PWM2MjY0MDNiYzA4NzVlZTZkYThjN2E2MmFjMGNlZTMxMmJhZGI1MjNhZjA3M2NiMTY2MTI1MDE1 YTc1YTBhOTcKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CgpGcm9tIDZkOTlkZTg0 ZTI0YjQ4YTA3N2ExNTgyN2IxZWQyZDg2NDRjY2IwZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDkvMTAzXSBnbm9tZS1z aGVsbC1leHRlbnNpb25zOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2hl bGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2hl bGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90 ZW1wbGF0ZQppbmRleCA5NzE2OGI0MGY2Ni4uZTQ5MzAzODRmZDQgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNo ZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLXNoZWxsLWV4dGVuc2lvbnMnCiBwa2duYW1lPWdub21lLXNoZWxsLWV4dGVu c2lvbnMKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYXJjaHM9 bm9hcmNoCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZXh0ZW5zaW9uX3Nl dD1hbGwiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgZ2V0dGV4dCIKIGRlcGVuZHM9Imdub21lLXNoZWxsPj0ke3ZlcnNpb259IG5hdXRp bHVzIHVuemlwIgogc2hvcnRfZGVzYz0iRXh0ZW5zaW9ucyBmb3IgR05PTUUgc2hlbGwsIGluY2x1 ZGluZyBjbGFzc2ljIG1vZGUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lU2hlbGwvRXh0ZW5zaW9ucyIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPWIwYWQ1MTE0M2IxYmY0MGRlZjRhMTBmOGZkMGFiMGZm YjQ3MjE4MzA0ODAwNzk0ZTYyY2FkZDI5ZDBhY2M3NWIKK2NoZWNrc3VtPWY3MjZmODViYjM5OGIw ODJhZDA5YTdkZWQzMDZmMjJiZDI1ZDI1ODk4YzdmMThiZDc3NWRmNjY0MDBkMzkxOWYKCkZyb20g ZGY2YzQ0Yzc4NTc2N2VmZDcxMTBjNzBiODVkN2VkODk2Zjk4ZTBkZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1MC8xMDNd IGdkbTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0 LXRoZS10cmFzaC5wYXRjaCB8IDIzICsrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dkbS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8IDI2ICsrKysrKysrKysrLS0tLS0tLS0tCiAy IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2RtL3BhdGNoZXMvdGFrZS1vdXQtdGhlLXRyYXNoLnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZG0vcGF0Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0 Y2ggYi9zcmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjkyN2M3Mjc3YjEKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaApAQCAt MCwwICsxLDIzIEBACistLS0gbWVzb24uYnVpbGQKKysrKyBtZXNvbi5idWlsZAorQEAgLTk0LDE5 ICs5NCw4IEBAIGlmIHhkbWNwX2RlcC5mb3VuZCgpIGFuZCBnZXRfb3B0aW9uKCd0Y3Atd3JhcHBl cnMnKQorICAgbGlid3JhcF9kZXAgPSBjYy5maW5kX2xpYnJhcnkoJ2xpYndyYXAnKQorIGVuZGlm CisgIyBzeXN0ZW1kCistc3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdzeXN0ZW1kJykKKyBsaWJz eXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnN5c3RlbWQnKQorLWlmIG1lc29uLnZlcnNpb24o KS52ZXJzaW9uX2NvbXBhcmUoJz49IDAuNTMnKQorLSAgc3lzdGVtZF9tdWx0aXNlYXRfeCA9IGZp bmRfcHJvZ3JhbSgnc3lzdGVtZC1tdWx0aS1zZWF0LXgnLAorLSAgICByZXF1aXJlZDogZmFsc2Us CistICAgIGRpcnM6IFsKKy0gICAgICBzeXN0ZW1kX2RlcC5nZXRfcGtnY29uZmlnX3ZhcmlhYmxl KCdzeXN0ZW1kdXRpbGRpcicpLAorLSAgICAgICcvbGliL3N5c3RlbWQnLAorLSAgICAgICcvdXNy L2xpYi9zeXN0ZW1kJywKKy0gICAgXSkKKy1lbHNlCistICBzeXN0ZW1kX211bHRpc2VhdF94ID0g ZmluZF9wcm9ncmFtKCdzeXN0ZW1kLW11bHRpLXNlYXQteCcsIHJlcXVpcmVkOiBmYWxzZSkKKy1l bmRpZgorK3N5c3RlbWRfbXVsdGlzZWF0X3ggPSBmaW5kX3Byb2dyYW0oJ3N5c3RlbWQtbXVsdGkt c2VhdC14JywgcmVxdWlyZWQ6IGZhbHNlKQorIHN5c3RlbWRfeF9zZXJ2ZXIgPSBzeXN0ZW1kX211 bHRpc2VhdF94LmZvdW5kKCk/IHN5c3RlbWRfbXVsdGlzZWF0X3gucGF0aCgpIDogJy9saWIvc3lz dGVtZC9zeXN0ZW1kLW11bHRpLXNlYXQteCcKKyAjIFBseW1vdXRoCisgcGx5bW91dGhfZGVwID0g ZGVwZW5kZW5jeSgncGx5LWJvb3QtY2xpZW50JywgcmVxdWlyZWQ6IGdldF9vcHRpb24oJ3BseW1v dXRoJykpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2RtL3Rl bXBsYXRlCmluZGV4IGJiNWI0ODY5MmQ0Li4xMTg4ODFlNGM0YyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nZG0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZG0vdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjgg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dkbScKIHBrZ25hbWU9Z2RtCi12ZXJzaW9uPTMuMzQu MQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGlu dHJvc3BlY3Rpb24pCi0gLS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGlj IC0td2l0aC1kZWZhdWx0LXBhbS1jb25maWc9YXJjaAotIC0td2l0aC1hdC1zcGktcmVnaXN0cnlk LWRpcmVjdG9yeT0vdXNyL2xpYmV4ZWMgLS13aXRob3V0LXRjcC13cmFwcGVycwotIC0td2l0aC1z Y3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3JlZXRlciAtLXNiaW5kaXI9L3Vzci9iaW4gLS13 aXRob3V0LXBseW1vdXRoCi0gLS13aXRoLXhhdXRoLWRpcj0vcnVuL2dkbSAtLXdpdGgtcGlkLWZp bGU9L3J1bi9nZG0vZ2RtLnBpZAotIC0tZGlzYWJsZS1zeXN0ZW1kLWpvdXJuYWwgLS13aXRoLWlu aXRpYWwtdnQ9NyAtLWVuYWJsZS13YXlsYW5kLXN1cHBvcnQiCitidWlsZF9zdHlsZT1tZXNvbgor Y29uZmlndXJlX2FyZ3M9IgorIC1EZGVmYXVsdC1wYW0tY29uZmlnPWFyY2ggLURhdC1zcGktcmVn aXN0cnlkLWRpcj0vdXNyL2xpYmV4ZWMKKyAtRHRjcC13cmFwcGVycz1mYWxzZSAtRHNjcmVlbnNo b3QtZGlyPS92YXIvbGliL2dkbS9ncmVldGVyCisgLURwbHltb3V0aD1kaXNhYmxlZCAtRHhhdXRo LWRpcj0vcnVuL2dkbSAtRHBpZC1maWxlPS9ydW4vZ2RtL2dkbS5waWQKKyAtRHN5c3RlbWQtam91 cm5hbD1mYWxzZSAtRGluaXRpYWwtdnQ9NyAtRHdheWxhbmQtc3VwcG9ydD10cnVlCisgLURzZWxp bnV4PWRpc2FibGVkIC1EbGliYXVkaXQ9ZGlzYWJsZWQKKyAtRHN5c3RlbWRzeXN0ZW11bml0ZGly PS90bXAgLURzeXN0ZW1kdXNlcnVuaXRkaXI9L3RtcCIKIGhvc3RtYWtlZGVwZW5kcz0iZGNvbmYg Z2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iYWNjb3VudHNzZXJ2aWNl LWRldmVsIGVsb2dpbmQtZGV2ZWwgZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsCiAgaXNvLWNvZGVz IGxpYlNNLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIG5zcy1kZXZlbCBwYW0tZGV2ZWwgdXBvd2Vy LWRldmVsIgotZGVwZW5kcz0iZ25vbWUtc2V0dGluZ3MtZGFlbW9uIGdub21lLXNoZWxsIHhvcmct c2VydmVyIHhvcmctc2VydmVyLXh3YXlsYW5kCi0geHJkYiIKK2RlcGVuZHM9Imdub21lLXNldHRp bmdzLWRhZW1vbiBnbm9tZS1zaGVsbCBnbm9tZS1zZXNzaW9uIGdub21lLXRoZW1lcy1leHRyYQor IGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgeG9yZy1zZXJ2ZXIgeG9yZy1zZXJ2ZXIteHdheWxh bmQgeHJkYiIKIGNoZWNrZGVwZW5kcz0iY2hlY2stZGV2ZWwiCiBzaG9ydF9kZXNjPSJHTk9NRSBE aXNwbGF5IE1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL1Byb2plY3RzL0dETSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWU4NWRmNjU3YWE4ZDkzNjFhZjRmYjEyMjAxNGQ4ZjEyM2E5M2JmZTQ1YTc2NjJmYmEyYjM3 M2Q4MzlkYmQ4ZDMKK2NoZWNrc3VtPTQ2ZDQ0MTVjMzljOTRjY2VlODFmYmFjMjExMDJlMmViY2Qy ODRkMzk4NThjODkzZTc1OTkwMGIxZTg4NDM1YmEKIAogY29uZl9maWxlcz0iCiAJL2V0Yy9nZG0v Y3VzdG9tLmNvbmYKQEAgLTQ3LDYgKzQ4LDcgQEAgcG9zdF9pbnN0YWxsKCkgewogCXZpbnN0YWxs ICRGSUxFU0RJUi9Yc2Vzc2lvbiA3NTUgZXRjL2dkbQogCiAJdnNlZCAtaSAicy9wYW1fc3lzdGVt ZFwuc28vcGFtX2Vsb2dpbmQuc28vIiAkREVTVERJUi9ldGMvcGFtLmQvKgorCXJtIC1yZiAke0RF U1RESVJ9L3RtcAogCiAJIyBydW5pdCBzZXJ2aWNlCiAJdnN2IGdkbQpAQCAtNjAsNyArNjIsNyBA QCBsaWJnZG1fcGFja2FnZSgpIHsKIH0KIAogZ2RtLWRldmVsX3BhY2thZ2UoKSB7Ci0JZGVwZW5k cz0ibGliZ2RtPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWRlcGVuZHM9ImxpYmdkbT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSBlbG9naW5kLWRldmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZl bG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZy b20gOWE4MmQzNmIwMWZmMWE1MzVkMGE2MmVmNWM2ZjE4YmM0MWM0MWU4ZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1MS8x MDNdIGdub21lLXNlc3Npb246IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogLi4uLWFwcC1TdHJpcC1i bGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNoIHwgNjcgKysrKysrKysrKysrKysrKysrKwog Li4uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2ggICAgICAgICAgICAgIHwgMTQgKysrKwog c3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMTAgKystCiAz IGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0 b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAu cGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy8wMDAxLXJl dmVydC1hdXRvc3RhcnQtYXBwLVN0cmlwLWJsYWNrbGlzdGVkLXZhcmlhYmxlcy1mcm8ucGF0Y2gg Yi9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBw LVN0cmlwLWJsYWNrbGlzdGVkLXZhcmlhYmxlcy1mcm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNmZDlmNGJhNmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJp cC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNoCkBAIC0wLDAgKzEsNjcgQEAKK0Zyb20g MWRlMzU3NWExZWE5Y2RiMzU3OWFkNTM4MTA4YzUxODE4ODQ3Nzk3YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFJhc211cyBUaG9tc2VuIDxvc3NAY29naXRyaS5kZXY+CitEYXRlOiBG cmksIDYgRGVjIDIwMTkgMTE6NDg6MDIgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gcmV2ZXJ0OiBh dXRvc3RhcnQtYXBwOiBTdHJpcCBibGFja2xpc3RlZCB2YXJpYWJsZXMgZnJvbQorIGF1dG9zdGFy dCBlbnZpcm9ubWVudAorCitUaGlzIGJyZWFrcyBnbm9tZS1zZXNzaW9uIG9uIG5vbi1zeXN0ZW1k IHN5c3RlbXMuCisKK2h0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9u L2lzc3Vlcy80NAorLS0tCisgZ25vbWUtc2Vzc2lvbi9nc20tYXV0b3N0YXJ0LWFwcC5jIHwgNSAt LS0tLQorIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuYyAgICAgICAgICB8IDYgLS0tLS0tCisgZ25v bWUtc2Vzc2lvbi9nc20tdXRpbC5oICAgICAgICAgIHwgMSAtCisgMyBmaWxlcyBjaGFuZ2VkLCAx MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dub21lLXNlc3Npb24vZ3NtLWF1dG9zdGFy dC1hcHAuYyBiL2dub21lLXNlc3Npb24vZ3NtLWF1dG9zdGFydC1hcHAuYworaW5kZXggNmZkNTkx NS4uMDFiYTVmOSAxMDA2NDQKKy0tLSBnbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMK KysrKyBnbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMKK0BAIC05OTcsNyArOTk3LDYg QEAgYXV0b3N0YXJ0X2FwcF9zdGFydF9zcGF3biAoR3NtQXV0b3N0YXJ0QXBwICphcHAsCisgICAg ICAgICBnYm9vbGVhbiAgICAgICAgIHN1Y2Nlc3M7CisgICAgICAgICBHRXJyb3IgICAgICAgICAg KmxvY2FsX2Vycm9yOworICAgICAgICAgY29uc3QgY2hhciAgICAgICpzdGFydHVwX2lkOworLSAg ICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICp2YXJpYWJsZV9ibGFja2xpc3Q7CisgICAgICAgICBj b25zdCBjaGFyICogY29uc3QgKmNoaWxkX2Vudmlyb25tZW50OworICAgICAgICAgaW50IGk7Cisg ICAgICAgICBHQXBwTGF1bmNoQ29udGV4dCAqY3R4OworQEAgLTEwMTQsMTAgKzEwMTMsNiBAQCBh dXRvc3RhcnRfYXBwX3N0YXJ0X3NwYXduIChHc21BdXRvc3RhcnRBcHAgKmFwcCwKKyAgICAgICAg IGxvY2FsX2Vycm9yID0gTlVMTDsKKyAgICAgICAgIGN0eCA9IGdfYXBwX2xhdW5jaF9jb250ZXh0 X25ldyAoKTsKKyAKKy0gICAgICAgIHZhcmlhYmxlX2JsYWNrbGlzdCA9IGdzbV91dGlsX2dldF92 YXJpYWJsZV9ibGFja2xpc3QgKCk7CistICAgICAgICBmb3IgKGkgPSAwOyB2YXJpYWJsZV9ibGFj a2xpc3RbaV0gIT0gTlVMTDsgaSsrKQorLSAgICAgICAgICAgICAgICBnX2FwcF9sYXVuY2hfY29u dGV4dF91bnNldGVudiAoY3R4LCB2YXJpYWJsZV9ibGFja2xpc3RbaV0pOworLQorICAgICAgICAg Y2hpbGRfZW52aXJvbm1lbnQgPSBnc21fdXRpbF9saXN0ZW52ICgpOworICAgICAgICAgZm9yIChp ID0gMDsgY2hpbGRfZW52aXJvbm1lbnRbaV0gIT0gTlVMTDsgaSsrKSB7CisgICAgICAgICAgICAg ICAgIGNoYXIgKiplbnZpcm9ubWVudF90dXBsZTsKK2RpZmYgLS1naXQgYS9nbm9tZS1zZXNzaW9u L2dzbS11dGlsLmMgYi9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmMKK2luZGV4IDAyYmM0YTUuLmFk YTEyMjUgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jCisrKysgZ25vbWUtc2Vz c2lvbi9nc20tdXRpbC5jCitAQCAtODA4LDkgKzgwOCwzIEBAIGdzbV91dGlsX2xpc3RlbnYgKHZv aWQpCisgICAgICAgICByZXR1cm4gKGNvbnN0IGNoYXIgKiBjb25zdCAqKSBjaGlsZF9lbnZpcm9u bWVudDsKKyAKKyB9CistCistY29uc3QgY2hhciAqIGNvbnN0ICoKKy1nc21fdXRpbF9nZXRfdmFy aWFibGVfYmxhY2tsaXN0ICh2b2lkKQorLXsKKy0gICAgICAgIHJldHVybiB2YXJpYWJsZV9ibGFj a2xpc3Q7CistfQorZGlmZiAtLWdpdCBhL2dub21lLXNlc3Npb24vZ3NtLXV0aWwuaCBiL2dub21l LXNlc3Npb24vZ3NtLXV0aWwuaAoraW5kZXggYmQ3YjY5OC4uOGJjYTVmNCAxMDA2NDQKKy0tLSBn bm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKKysrKyBnbm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKK0BA IC01MCw3ICs1MCw2IEBAIGNoYXIgKiAgICAgIGdzbV91dGlsX2dlbmVyYXRlX3N0YXJ0dXBfaWQg ICAgICAgICAgICAodm9pZCk7Cisgdm9pZCAgICAgICAgZ3NtX3V0aWxfc2V0ZW52ICAgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICp2YXJpYWJsZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnZhbHVlKTsK KyBjb25zdCBjaGFyICogY29uc3QgKiBnc21fdXRpbF9saXN0ZW52ICAgICAgICAgICAgICAgKHZv aWQpOworLWNvbnN0IGNoYXIgKiBjb25zdCAqIGdzbV91dGlsX2dldF92YXJpYWJsZV9ibGFja2xp c3Qodm9pZCk7CisgCisgZ2Jvb2xlYW4gICAgZ3NtX3V0aWxfZXhwb3J0X2FjdGl2YXRpb25fZW52 aXJvbm1lbnQgIChHRXJyb3IgICAgICoqZXJyb3IpOworICNpZmRlZiBIQVZFX1NZU1RFTUQKKy0t IAorMi4yNC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25v LXN5c3RlbWQtZGVwLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lz dGVtZC1kZXAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhl NTVhMGY3OTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNo ZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIG1lc29uLmJ1aWxk CisrKysgbWVzb24uYnVpbGQKK0BAIC0xMzAsMTAgKzEzMCw3IEBAIGlmIGVuYWJsZV9zeXN0ZW1k IG9yIGVuYWJsZV9jb25zb2xla2l0CisgCisgICAjIENoZWNrIGZvciBzeXN0ZW1kCisgICBpZiBl bmFibGVfc3lzdGVtZAorLSAgICBzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ3N5c3RlbWQnLCB2 ZXJzaW9uOiAnPj0gMjQyJywgcmVxdWlyZWQ6IHRydWUpCistICAgIHN5c3RlbWRfdXNlcnVuaXRk aXIgPSBzeXN0ZW1kX2RlcC5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCdzeXN0ZW1kdXNlcnVuaXRk aXInLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZWZpbmVfdmFyaWFibGU6IFsncHJlZml4JywgcHJlZml4XSkKKy0KKysgICAg c3lzdGVtZF91c2VydW5pdGRpciA9ICcvdG1wJworICAgICBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVu ZGVuY3koJ2xpYnN5c3RlbWQnLCB2ZXJzaW9uOiAnPj0gMjA5JywgcmVxdWlyZWQ6IGZhbHNlKQor ICAgICBzZXNzaW9uX2Jpbl9kZXBzICs9IGxpYnN5c3RlbWRfZGVwCisgCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVt cGxhdGUKaW5kZXggNDQ0NGYxNjJiZjEuLmM5YmM0OTMwYzM5IDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLXNlc3Npb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBs YXRlCkBAIC0xLDkgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2Vzc2lvbicK IHBrZ25hbWU9Z25vbWUtc2Vzc2lvbgotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zOC4wCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZF9q b3VybmFsPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIC1E c3lzdGVtZF9zZXNzaW9uPWRpc2FibGUiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50 bHRvb2wgcGtnLWNvbmZpZyB4bWx0byIKIG1ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdub21l LWRlc2t0b3AtZGV2ZWwgZ3RrKzMtZGV2ZWwganNvbi1nbGliLWRldmVsCiAgbGliZ2xpYi1kZXZl bCBsaWJJQ0UtZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBzdGFydHVwLW5vdGlmaWNh dGlvbi1kZXZlbApAQCAtMTUsNCArMTUsOCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290 dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21l LXNlc3Npb24iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kNzgwMWZlMmQ1YTc1 MWIxOWNiNTgwODE3NzEzMTZhNzZhYWJkNWM1NTBjZDU4ZDRlNGM2YTVhNGVkMzU2NjYwCitjaGVj a3N1bT03YmNjMGViMmNkYmE0YjNmNmQxYjQ1OWIzYTMwODczYjdiYjY1YjM4M2MxZjZhNWY2M2Mz ZTNiNWM3OTQzZDY3CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwlybSAtcmYgJHtERVNURElSfS90bXAK K30KCkZyb20gMDVkNmVjNjZlZDJlOTg2ODQ3NTIxMTUzMGZhNjAwMGVhM2Y3ZmY1MSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDA1Mi8xMDNdIGdub21lLWluaXRpYWwtc2V0dXA6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3Jj cGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlIHwgMTEgKysrKysrLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1pbml0 aWFsLXNldHVwL3RlbXBsYXRlCmluZGV4IDU1ZGYyZjUzYzFkLi42M2FiZDNjNWM4MyAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtaW5pdGlhbC1zZXR1cCcKIHBrZ25hbWU9Z25vbWUtaW5pdGlhbC1z ZXR1cAotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zOC4wCityZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1tZXNvbgotY29uZmlndXJlX2FyZ3M9Ii1Ec29mdHdhcmUtc291cmNl cz1kaXNhYmxlZCAtRHN5c3RlbWQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcg Z2xpYi1kZXZlbCIKK2NvbmZpZ3VyZV9hcmdzPSItRHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQg LURwYXJlbnRhbF9jb250cm9scz1kaXNhYmxlZAorIC1Ec3lzdGVtZD1mYWxzZSIKK2hvc3RtYWtl ZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIGdldHRleHQiCiBtYWtlZGVwZW5kcz0iTmV0 d29ya01hbmFnZXItZGV2ZWwgYWNjb3VudHNzZXJ2aWNlLWRldmVsIGxpYmdsaWItZGV2ZWwKICBn bm9tZS1kZXNrdG9wLWRldmVsIGNoZWVzZS1kZXZlbCBsaWJnd2VhdGhlci1kZXZlbCB3ZWJraXQy Z3RrLWRldmVsCiAgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsIGdkbS1kZXZlbCBsaWJwd3F1 YWxpdHktZGV2ZWwKQEAgLTE3LDQgKzE4LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9EZXNpZ24vT1MvSW5pdGlhbFNldHVwIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTcxZjEwZWY2YjYzMWNkOTJmZmRlNzc0ZTQxMzBi MzJiMjQ5NGI0ZGY1ZWYyODgzNzVkOGIxOTU3ZWVhYmZhMQorY2hlY2tzdW09M2E4NTdhZWY1ZWZi Njg5ZjQwODYzMmRiODQ2OWFkMjc2MjBmNzYyZDk3NzA3MGEzNjAzNWM1MjJjNmY4Mjc1OQoKRnJv bSBjYzk3YTI4YWUyYzE4NjJkODM5ZWFmYjQ0MTJkOGE1MzkyZWI3MDA2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUzLzEw M10geGRnLWRlc2t0b3AtcG9ydGFsLWd0azogdXBkYXRlIHRvIDEuOC4wCgotLS0KIHNyY3BrZ3Mv eGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3hk Zy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUgYi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRh bC1ndGsvdGVtcGxhdGUKaW5kZXggZGVlMGU0NjMzODYuLjc1MTdkMWIzMmQ4IDEwMDY0NAotLS0g YS9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy94 ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAneGRnLWRlc2t0b3AtcG9ydGFsLWd0aycKIHBrZ25hbWU9eGRnLWRlc2t0b3At cG9ydGFsLWd0awotdmVyc2lvbj0xLjYuMAordmVyc2lvbj0xLjguMAogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGxpYnhz bHQgZ2xpYi1kZXZlbCB4ZGctZGVza3RvcC1wb3J0YWwgZ2V0dGV4dCIKQEAgLTEyLDcgKzEyLDcg QEAgbWFpbnRhaW5lcj0iRHVuY2FlbiA8ZHVuY2FlbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGFr L3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9m bGF0cGFrLyR7cGtnbmFtZX0vcmVsZWFzZXMvZG93bmxvYWQvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09OTU2ZmQxNjYwODI0N2U3MTE5ZDRjNmQ5NWE2 ZGM2NTc4ZGNlMjU3ZDJmMjcyZDAzYjM0OTg1NzIyNTdlMmY3NgorY2hlY2tzdW09YTUyNTI5ZWQz MjFlMDQ0Y2E5YWRjYTVlOTcxOGQ5YmE1N2M0MTRhMjYzNGRkNDEwOWRmMzQ0YzViOWVlZDc3Zgog CiBwb3N0X2luc3RhbGwoKSB7CiAJcm0gLXJmICIke0RFU1RESVJ9L3Vzci9saWIvc3lzdGVtZCIK CkZyb20gZjVjMWUwZmFmMmRlMjZlYjdmYTdiOGRlMTUzNGNiZWYzNWM5NDIyNSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1 NC8xMDNdIG5hdXRpbHVzOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvbmF1dGlsdXMv dGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUg Yi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCmluZGV4IDUzN2E4NTE5NzNmLi5kZTk2OGYwMWQ3 YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL25h dXRpbHVzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbmF1 dGlsdXMnCiBwa2duYW1lPW5hdXRpbHVzCi12ZXJzaW9uPTMuMzYuMS4xCit2ZXJzaW9uPTMuMzgu MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAt OCwxNiArOCwxNiBAQCBjb25maWd1cmVfYXJncz0iLUR0ZXN0cz1oZWFkbGVzcyAtRGludHJvc3Bl Y3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4 dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJleGVtcGktZGV2 ZWwgZ25vbWUtYXV0b2FyLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ3RrKzMtZGV2ZWwKICBs aWJleGlmLWRldmVsIGxpYmdleGl2Mi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYm5vdGlmeS1kZXZl bCBsaWJzZWNjb21wLWRldmVsCi0gbGliWDExLWRldmVsIGxpYnhtbDItZGV2ZWwgdHJhY2tlci1k ZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZlbCIKKyBsaWJYMTEtZGV2ZWwgbGlieG1sMi1kZXZl bCB0cmFja2VyMy1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGhpY29sb3ItaWNvbi10aGVt ZQotIHRyYWNrZXItbWluZXJzIHRyYWNrZXIiCi1jaGVja2RlcGVuZHM9InRyYWNrZXIiCisgdHJh Y2tlcjMtbWluZXJzIHRyYWNrZXIzIgorY2hlY2tkZXBlbmRzPSJ0cmFja2VyMyB0cmFja2VyMy1t aW5lcnMgcHl0aG9uMy1nb2JqZWN0IGRidXMiCiBzaG9ydF9kZXNjPSJHTk9NRSBmaWxlIG1hbmFn ZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9OYXV0aWx1cyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbjo6NH0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPWY5MjUyZjUwODIxMWQ5ZjM2OGE0OWRiNjk3ODkwZjg5NWQwODBmMDk1OTBhZWNhZjMz ODAzYTUxOWRlZjdiZGUKK2NoZWNrc3VtPWM2ZjMzMGY5ZjNmN2RiZjM1YWZiNmVjMjA5NGI3NDZl ZTc1ZDVlOTI4YzhmNjc4MGRhYjI2NjcyMDg2Y2NhYzAKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgog YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIGU3ZDRkOTMxMGNkNzhhNmIwY2JjZWYw MzllOTlkNjQwZTY3NGM4ODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTUvMTAzXSBnbm9tZS1tYXBzOiB1cGRhdGUgdG8g My4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZSB8IDEwICsrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1tYXBzL3Rl bXBsYXRlCmluZGV4IDAzMDBiZTYwNTk5Li4zMjg1ZmFmMTdlNCAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1tYXBzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZQpA QCAtMSwxNiArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbWFwcycKIHBrZ25h bWU9Z25vbWUtbWFwcwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1tZXNvbgotaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdvYmplY3Qt aW50cm9zcGVjdGlvbiBpbnRsdG9vbCBwa2ctY29uZmlnIEFwcFN0cmVhbSIKK2J1aWxkX2hlbHBl cj0iZ2lyIgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcg QXBwU3RyZWFtIgogbWFrZWRlcGVuZHM9ImZvbGtzLWRldmVsIGdlb2NsdWUyLWRldmVsIGdlb2Nv ZGUtZ2xpYi1kZXZlbCBnanMtZGV2ZWwKLSBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFp bi1kZXZlbCByZXN0LWRldmVsIgorIGdub21lLWRlc2t0b3AtZGV2ZWwgbGliY2hhbXBsYWluLWRl dmVsIHJlc3QtZGV2ZWwgbGliaGFuZHkxLWRldmVsIgogZGVwZW5kcz0iZ2VvY2x1ZTIgZ2ZiZ3Jh cGggZ2pzIgogc2hvcnRfZGVzYz0iR05PTUUgbWFwcyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9NYXBzIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MWEzMmVmZDk2YWQ4OThmNzdhNjM2ZDJkMDQ2 M2Q3NTcwMDliNGI4MTIyNTljODlmZmRjYjkxZDZhZmMwNTJmOQotbm9jcm9zcz0iZXZvbHV0aW9u LWRhdGFzZXJ2ZXIgY3Jvc3MgZ2lyIGRvZXNuJ3Qgd29yayIKK2NoZWNrc3VtPTU1NzU4MzQwZWJk MDg0NjEwMjgzYmYxZjZmZWM2YzA0MjU1OWExODZlYjg2OTljMDU2YTIyZGZlZjFkOTdmOTkKCkZy b20gZGM4OWU1MzQxMWY1YjBiMWZmZGQwYWE4YmZmNzUxNGYwOTVhMDMwMiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1Ni8x MDNdIGV2b2x1dGlvbjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiAuLi4vZXZvbHV0aW9uL2ZpbGVz L2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UgfCA0NSAtLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNw a2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaCAgICAgICAgfCAgNSAtLS0KIHNyY3Br Z3MvZXZvbHV0aW9uL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDM1ICsrKy0tLS0tLS0t LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1l VGVzdHMuY21ha2UKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9p Y29udi1kZXRlY3QuaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2Fi bGVSdW50aW1lVGVzdHMuY21ha2UgYi9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVu dGltZVRlc3RzLmNtYWtlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YmU1NWI0MjA3 MC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRp bWVUZXN0cy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMgVGhpcyBmaWxl IHdhcyBnZW5lcmF0ZWQgYnkgQ01ha2UgYmVjYXVzZSBpdCBkZXRlY3RlZCBUUllfUlVOKCkgY29t bWFuZHMKLSMgaW4gY3Jvc3Njb21waWxpbmcgbW9kZS4gSXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBi eSB0aGUgbmV4dCBDTWFrZSBydW4uCi0jIENvcHkgaXQgdG8gYSBzYWZlIGxvY2F0aW9uLCBzZXQg dGhlIHZhcmlhYmxlcyB0byBhcHByb3ByaWF0ZSB2YWx1ZXMKLSMgYW5kIHVzZSBpdCB0aGVuIHRv IHByZXNldCB0aGUgQ01ha2UgY2FjaGUgKHVzaW5nIC1DKS4KLQotCi0jIF9jb3JyZWN0X2ljb252 X0VYSVRDT0RFCi0jICAgIGluZGljYXRlcyB3aGV0aGVyIHRoZSBleGVjdXRhYmxlIHdvdWxkIGhh dmUgYmVlbiBhYmxlIHRvIHJ1biBvbiBpdHMKLSMgICAgdGFyZ2V0IHBsYXRmb3JtLiBJZiBzbywg c2V0IF9jb3JyZWN0X2ljb252X0VYSVRDT0RFIHRvCi0jICAgIHRoZSBleGl0IGNvZGUgKGluIG1h bnkgY2FzZXMgMCBmb3Igc3VjY2VzcyksIG90aGVyd2lzZSBlbnRlciAiRkFJTEVEX1RPX1JVTiIu Ci0jIFRoZSBfY29ycmVjdF9pY29udl9DT01QSUxFRCB2YXJpYWJsZSBob2xkcyB0aGUgYnVpbGQg cmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4KLSMgCi0jIFNvdXJjZSBmaWxlICAgOiAvYnVpbGRk aXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL0NNYWtlVG1w L3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVy LTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2NtVENfMzE1ZWUtX2NvcnJlY3RfaWNvbnZfRVhJVENP REUKLSMgUnVuIGFyZ3VtZW50cyA6IAotIyAgICBDYWxsZWQgZnJvbTogWzJdCS91c3Ivc2hhcmUv Y21ha2UtMy45L01vZHVsZXMvQ2hlY2tDU291cmNlUnVucy5jbWFrZQotIyAgICAgICAgICAgICAg ICAgWzFdCS9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL0NNYWtlTGlzdHMu dHh0Ci0KLXNldCggX2NvcnJlY3RfaWNvbnZfRVhJVENPREUgCi0gICAgIDAKLSAgICAgQ0FDSEUg SU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotc2V0KF9jb3JyZWN0X2ljb252 X0VYSVRDT0RFX19UUllSVU5fT1VUUFVUCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJl c3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotCi0KLSMgSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RF Ci0jICAgIGluZGljYXRlcyB3aGV0aGVyIHRoZSBleGVjdXRhYmxlIHdvdWxkIGhhdmUgYmVlbiBh YmxlIHRvIHJ1biBvbiBpdHMKLSMgICAgdGFyZ2V0IHBsYXRmb3JtLiBJZiBzbywgc2V0IEhBVkVf TEtTVFJGVElNRV9FWElUQ09ERSB0bwotIyAgICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2Vz IDAgZm9yIHN1Y2Nlc3MpLCBvdGhlcndpc2UgZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUg SEFWRV9MS1NUUkZUSU1FX0NPTVBJTEVEIHZhcmlhYmxlIGhvbGRzIHRoZSBidWlsZCByZXN1bHQg Zm9yIHRoaXMgVFJZX1JVTigpLgotIyAKLSMgU291cmNlIGZpbGUgICA6IC9idWlsZGRpci9ldm9s dXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmlsZXMvQ01ha2VUbXAvc3JjLmMK LSMgRXhlY3V0YWJsZSAgICA6IC9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4w L2J1aWxkL0NNYWtlRmlsZXMvY21UQ19kMjg5Ny1IQVZFX0xLU1RSRlRJTUVfRVhJVENPREUKLSMg UnVuIGFyZ3VtZW50cyA6IAotIyAgICBDYWxsZWQgZnJvbTogWzJdCS91c3Ivc2hhcmUvY21ha2Ut My45L01vZHVsZXMvQ2hlY2tDU291cmNlUnVucy5jbWFrZQotIyAgICAgICAgICAgICAgICAgWzFd CS9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL0NNYWtlTGlzdHMudHh0Ci0K LXNldCggSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFIAotICAgICAwCi0gICAgIENBQ0hFIElOVEVS TkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLXNldCggSEFWRV9MS1NUUkZUSU1FX0VY SVRDT0RFX19UUllSVU5fT1VUUFVUCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3Vs dCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi9m aWxlcy9pY29udi1kZXRlY3QuaCBiL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVj dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmY0NzZkNWJjOS4uMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgKKysrIC9kZXYv bnVsbApAQCAtMSw1ICswLDAgQEAKLS8qIFRoaXMgaXMgYW4gYXV0by1nZW5lcmF0ZWQgaGVhZGVy LCBETyBOT1QgRURJVCEgKi8KLQotI2RlZmluZSBJQ09OVl9JU09fRF9GT1JNQVQgImlzby0lZC0l ZCIKLSNkZWZpbmUgSUNPTlZfSVNPX1NfRk9STUFUICJpc28tJWQtJXMiCi0jZGVmaW5lIElDT05W XzEwNjQ2ICJpc28tMTA2NDYiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlCmluZGV4IDU2MGVkOTNkYTAyLi5hYTNmYTM0 YmM0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9ldm9sdXRpb24vdGVtcGxhdGUKQEAgLTEsNTQgKzEsMzMgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2V2b2x1dGlvbicKIHBrZ25hbWU9ZXZvbHV0aW9uCi12ZXJzaW9uPTMuMzYuMQordmVyc2lv bj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCitidWlsZF9oZWxwZXI9Imdp ciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxFX0FVVE9BUj1PRkYgLURFTkFCTEVfTElC Q1JZUFRVST1PRkYgLURFTkFCTEVfR1RLU1BFTEw9T0ZGCi0gLURFTkFCTEVfVEVYVF9ISUdITElH SFQ9T0ZGIC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZGCi0gLURFTkFCTEVfV0VBVEhFUj0kKHZvcHRf aWYgZ2lyIE9OIE9GRikiCisgLURFTkFCTEVfVEVYVF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxFX1BT VF9JTVBPUlQ9T0ZGIC1ERU5BQkxFX1dFQVRIRVI9T04iCiBob3N0bWFrZWRlcGVuZHM9Imdub21l LWRvYy11dGlscyBnb2JqZWN0LWludHJvc3BlY3Rpb24gaW50bHRvb2wgaXRzdG9vbAotIHBrZy1j b25maWciCisgcGtnLWNvbmZpZyBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5h Z2VyLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGVuY2hhbnQyLWRldmVsCiAgZXZvbHV0aW9uLWRh dGEtc2VydmVyLWRldmVsIGdzcGVsbC1kZXZlbCBndGtodG1sLWRldmVsIGxpYmNhbmJlcnJhLWRl dmVsCi0gJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhlci1kZXZlbCkgbGlibm90aWZ5LWRldmVsIHdl YmtpdDJndGstZGV2ZWwgeXRuZWYtZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZlbCBsaWJub3RpZnkt ZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB5dG5lZi1kZXZlbAogIGdub21lLWRlc2t0b3AtZGV2ZWwi CiBkZXBlbmRzPSJnbm9tZS1rZXlyaW5nIgogc2hvcnRfZGVzYz0iSW50ZWdyYXRlZCBtYWlsLCBh ZGRyZXNzYm9vayBhbmQgY2FsZW5kYXJpbmcgZm9yIEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVy LCBMR1BMLTMuMC1vci1sYXRlciwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9uIgotY2hhbmdlbG9nPSJodHRwczovL3Jhdy5n aXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZvbHV0aW9uL2dub21lLTMtMzYvTkVXUyIKK2No YW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlv bi9nbm9tZS0zLTM4L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04NzNh Y2YxZGJlYzM4ZTY3ZTE2OTA2NDY0NWFjM2E5YjlhOTQ0YmQyYjYzMzE2MWRmNmU1ZjA1NzAwZTM2 Y2I4CitjaGVja3N1bT1mODFjYzQwZjU0YWEyZDA1OWRhNGYzYTk0ZWIwOTM2MmU4MTUxMzMwNmM5 NzRhNDFjYTc4OTViOWM4OTU3YzVkCiBzaGxpYl9wcm92aWRlcz0ibGliZXZvbHV0aW9uLWNhbGVu ZGFyLnNvIGxpYmV2b2x1dGlvbi11dGlsLnNvIGxpYmVtYWlsLWVuZ2luZS5zbwogIGxpYmV2b2x1 dGlvbi1tYWlsLnNvIGxpYmV2b2x1dGlvbi1zaGVsbC5zbyIKIAogYnVpbGRfb3B0aW9ucz0iZ2ly IgogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIiCi1lbHNlCi0JaG9zdG1ha2VkZXBlbmRzKz0iIGdsaWItZGV2ZWwiCiBmaQogCi0jIGNt YWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBiaW5hcnkgcnVudGltZSwgYWJvdXQgaWNvbnYg YW5kIHNmcnRpbWUuCi0jIG11c2wgKDEuMS4xNikgZG9lcyBub3Qgc3VwcG9ydCAiSVNPLTIwMjIt SlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXApLAotIyBhbHRob3VnaCBldm9sdXRpb24tZGF0 YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCi0jIElmIGNyb3NzYnVpbGQsIGNtYWtlIGxldCBk aXNhYmxpbmcgcnVudGltZSBjaGVja3MgdmlhIHNwZWNpZmljIGRpcmVjdGl2ZXMuCi0jIHRlc3Qg aWNvbnYtZGV0ZWN0LmMgYWxzbyBnZW5lcmF0ZXMgaWNvbnYtZGV0ZWN0LmggdGhhdCBpcyByZXF1 aXJlZCBmb3IgYnVpbGQuCi0jIFNvIGNvbXBsZXRseSBkaXNhYmxlIHRlc3QgZnJvbSBpY29udi1k ZXRlY3QuYyAoY21ha2UucGF0Y2ggZmlsZSkgYW5kCi0jIHVzZSBhIGNtYWtlIGNhY2hlIGZpbGUg b24gY3Jvc3NidWlsZCB0byBkaXNhYmxlIHNmcnRpbWUgcnVubmluZyB0ZXN0LgotaWYgWyAiJENS T1NTX0JVSUxEIiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLUMgZGlzYWJsZVJ1bnRpbWVU ZXN0cy5jbWFrZSIKLWZpCi0KLXByZV9jb25maWd1cmUoKSB7Ci0JbWtkaXIgLXAgYnVpbGQKLQlj cCAke0ZJTEVTRElSfS9pY29udi1kZXRlY3QuaCAke3dya3NyY30vYnVpbGQvLgotCWlmIFsgIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgotCQljcCAke0ZJTEVTRElSfS9kaXNhYmxlUnVudGltZVRlc3Rz LmNtYWtlICR7d3Jrc3JjfS9idWlsZC8uCi0JZmkKLX0KLQogZXZvbHV0aW9uLWRldmVsX3BhY2th Z2UoKSB7CiAJZGVwZW5kcz0id2Via2l0Mmd0ay1kZXZlbCBndGsrMy1kZXZlbCBsaWJnbGliLWRl dmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbAogCSBndGtodG1sLWRldmVsICR7c291cmNl cGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gYjQ4ZTkwZGU0YmE2MTZmOTlmNTky YmQ2MzBkZWNlY2Y1NzZiYzZlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1Ny8xMDNdIGV2b2x1dGlvbi1ld3M6IHVwZGF0 ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlIHwgNiArKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlIGIvc3JjcGtncy9ldm9sdXRp b24tZXdzL3RlbXBsYXRlCmluZGV4IDRmZjgxMTY0NjZjLi45OGVlM2E3N2ZlNyAxMDA2NDQKLS0t IGEvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9u LWV3cy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1 dGlvbi1ld3MnCiBwa2duYW1lPWV2b2x1dGlvbi1ld3MKLXZlcnNpb249My4zNi4xCit2ZXJzaW9u PTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIt RExJQkVYRUNfSU5TVEFMTF9ESVI9L3Vzci9saWIvZXZvbHV0aW9uIgpAQCAtMTAsNiArMTAsNiBA QCBzaG9ydF9kZXNjPSJNUyBFeGNoYW5nZSBpbnRlZ3JhdGlvbiB0aHJvdWdoIEV4Y2hhbmdlIFdl YiBTZXJ2aWNlcyIKIG1haW50YWluZXI9IlBldGVyIEt1Y2hhciA8bWFzYWpAZ214LmNvbT4iCiBs aWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvRXZvbHV0aW9uIgotY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29u dGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWV3cy9nbm9tZS0zLTM2L05FV1MiCitjaGFuZ2Vsb2c9 Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24tZXdzL2du b21lLTMtMzgvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWQwODgzYzdk MjI3ODI3Y2M1YzQ0NjhiN2UzMWEzZWUzNzBiY2Q3ZDQxYTRkYmI5NTBhYjVkYjM2Yzk1NTFhYzEK K2NoZWNrc3VtPTU5YmY1OWNhYmI5ZDE5M2Q5MTA3Njk3MmRkOGE2ZTcxZWJmMzRjN2JmYWQwMWNk Njk1NDI5NzM0N2EzMDc3YjMKCkZyb20gYTVkMjA1OGU5MWYyNTBjMmE3NzhlYzg1MGI5YzI0N2Qx MzFiZmY2YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAK U3ViamVjdDogW1BBVENIIDA1OC8xMDNdIHB5dGhvbjMtYXRzcGk6IHVwZGF0ZSB0byAyLjM4LjAK Ci0tLQogc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBs YXRlCmluZGV4IGEzM2EzNzRmZTE4Li4yM2ZhOTg5MzRlNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9w eXRob24zLWF0c3BpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0 ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtYXRzcGknCiBw a2duYW1lPXB5dGhvbjMtYXRzcGkKLXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9u PTIuMzguMAorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtzcmM9InB5YXRzcGktJHt2ZXJz aW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEzLDQgKzEzLDQgQEAgbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5 YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3B5YXRzcGkvJHt2ZXJzaW9uJS4qfS9w eWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODQ5NTRhNWJiZWFjYzgzNjQzZjA1 Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0YzRkZDFmODYyMDM4OQorY2hlY2tzdW09ZmY4 MDkzMTJmZDBjMmY2MWUxOTFjMTgxYTFhNjM4YTMwYjU3OWI5MWI2ODJjZmI1YTA1NTM1YTU1MjY1 YjQzZAoKRnJvbSA1ZGUwOWUxNjJlYjkyMmM0M2RlMmJmM2JkODRmNjllNTFlNzRjNzIxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDU5LzEwM10gcHl0aG9uLWF0c3BpOiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3Mv cHl0aG9uLWF0c3BpL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tYXRz cGkvdGVtcGxhdGUgYi9zcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQppbmRleCAwMTQxZDk3 Zjg1ZC4uNzUwNWMzMmFkNjAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCkBAIC0xLDggKzEsOCBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uLWF0c3BpJwogIyBLZWVwIHB5dGhvbjMtYXRzcGkg aW4gc3luYwogcGtnbmFtZT1weXRob24tYXRzcGkKLXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00 Cit2ZXJzaW9uPTIuMzguMAorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtzcmM9InB5YXRz cGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTE0LDQgKzE0LDQg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3B5YXRzcGkvJHt2ZXJz aW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODQ5NTRhNWJiZWFj YzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0YzRkZDFmODYyMDM4OQorY2hl Y2tzdW09ZmY4MDkzMTJmZDBjMmY2MWUxOTFjMTgxYTFhNjM4YTMwYjU3OWI5MWI2ODJjZmI1YTA1 NTM1YTU1MjY1YjQzZAoKRnJvbSAzMWI3ZWQ4ZGRkYTIwNmMxY2EyNjc0YzYwOTM2MjMyMTY4MGRh ZTNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDYwLzEwM10gb3JjYTogdXBkYXRlIHRvIDMuMzguMCwgZHJvcCBub2FyY2gK Ci0tLQogc3JjcGtncy9vcmNhL3RlbXBsYXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29yY2Ev dGVtcGxhdGUgYi9zcmNwa2dzL29yY2EvdGVtcGxhdGUKaW5kZXggZjcwMjAyZTZkNzYuLjM4ZTky MzQ2Yjg2IDEwMDY0NAotLS0gYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9v cmNhL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3JjYScK IHBrZ25hbWU9b3JjYQotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0x Ci1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5k cz0iaW50bHRvb2wgaXRzdG9vbCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImF0LXNwaTItYXRr LWRldmVsIGxpYmxvdWlzLWRldmVsIHB5dGhvbjMtZ29iamVjdC1kZXZlbCIKQEAgLTEzLDcgKzEy LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9y Zy9Qcm9qZWN0cy9PcmNhIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzFhYzY0 OGI2YmUzMTQ4OGMyNmZmOTU5MTE0Mjg3ODY5ZGY5Y2UzY2EyMTk5OWU0MGRlZDg3NzQxYzk4ODMx ZgorY2hlY2tzdW09MWMzMjc5ZDc5ODk4ZGIxMGExMDViY2I3MDViNWE0MDQyYjFiNTFhOWMwNTdh NmJkMGZmZDY1ZGFjMjM1NmZlZQogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0 bWFrZWRlcGVuZHMrPSIgcHl0aG9uMy1nb2JqZWN0LWRldmVsIgoKRnJvbSAzMzJjMzM5MmIxMmZl OTAwMTg5MDllY2FiMzcwZjcwZjg3NmQ3MGUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYxLzEwM10gZ25vbWUtd2VhdGhl cjogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVt cGxhdGUKaW5kZXggZDMwYmU5YmYxOTIuLmMwMjhlNDZiYTY1IDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLXdlYXRoZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtd2VhdGhlcicK IHBrZ25hbWU9Z25vbWUtd2VhdGhlcgogdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVw ZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0c3Rvb2wgZ2xpYi1kZXZlbCBnanMiCgpGcm9tIDdk OWY3MDg2YTA4NWY0ZDAwZDAyODdkNmQxYTg4YTI5NGNkZjg0NjQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjIvMTAzXSB2 dGUzOiB1cGRhdGUgdG8gMC42Mi4wCgotLS0KIHNyY3BrZ3MvdnRlMy90ZW1wbGF0ZSB8IDE5ICsr KysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDExIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv dnRlMy90ZW1wbGF0ZQppbmRleCA2MTE2YjNjYzYyMS4uNDFmOWY0ZTdlOWEgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUKQEAgLTEs MjkgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Z0ZTMnCiBwa2duYW1lPXZ0ZTMKLXZl cnNpb249MC42MC4zCit2ZXJzaW9uPTAuNjIuMAogcmV2aXNpb249MQogd3Jrc3JjPSJ2dGUtJHt2 ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3Vy ZV9hcmdzPSItRGJfbmRlYnVnPWZhbHNlIC1EZ2lyPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkK LSAtRHZhcGk9JCh2b3B0X2lmIHZhbGEgdHJ1ZSBmYWxzZSkgLURiX2x0bz1mYWxzZSAtRF9zeXN0 ZW1kPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1EYl9uZGVidWc9ZmFsc2UgLURiX2x0bz1mYWxz ZSAtRF9zeXN0ZW1kPWZhbHNlCisgJCh2b3B0X2Jvb2wgZ2lyIGdpcikgJCh2b3B0X2Jvb2wgZ2ly IHZhcGkpIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdub21lLWRvYy11dGlscyBncGVy ZiBpbnRsdG9vbCBwa2ctY29uZmlnCi0gJCh2b3B0X2lmIHZhbGEgdmFsYSkiCi1tYWtlZGVwZW5k cz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVsIHBjcmUyLWRldmVsICQodm9wdF9pZiB2YWxhIHZh bGEtZGV2ZWwpIgotZGVwZW5kcz0idnRlIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCittYWtlZGVw ZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVsIHBjcmUyLWRldmVsICQodm9wdF9pZiBnaXIg dmFsYS1kZXZlbCkiCiBzaG9ydF9kZXNjPSJUZXJtaW5hbCB3aWRnZXQgd2l0aCBpbXByb3ZlZCBh Y2Nlc3NpYmlsaXR5IGFuZCBJMThOIHN1cHBvcnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciwgTEdQTC0y LjEtb3ItbGF0ZXIsIExHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5n bm9tZS5vcmcvQXBwcy9UZXJtaW5hbC9WVEUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdnRl LyR7dmVyc2lvbiUuKn0vdnRlLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmViNzZlMTE4 MWEzNTdkODYxMTJkNDQ3YTA4ZDEyN2UyMDgxNDM4ZGY3NmVjZTgzMjQzYjE4NjA5ZGQ5ODIyYQor Y2hlY2tzdW09NGQyZDI0NmVkNDdmMDhjYzczZjY0NzFhYThlOWYzNzg5OThiN2QwZjdkY2IwYzQz M2YyOWRhNTgzOWRiYjAxNgogCiAjIFN1cHByZXNzIHdhcm5pbmdzIGFzIGVycm9ycyBmb3IgTlVM TCBmb3JtYXQgc3RyaW5ncyAobXVzbCBsaWJjKQogQ1hYRkxBR1M9Ii1Xbm8tZXJyb3I9Zm9ybWF0 PSIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgot YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBwcmVfYnVpbGQoKSB7CiAJZXhwb3J0IEdJUl9F WFRSQV9MSUJTX1BBVEg9IiR7d3Jrc3JjfS9zcmMvLmxpYnMiCkBAIC0zOCw4ICszNyw2IEBAIHZ0 ZTMtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1 aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZp Ci0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJl L3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDRmYjRjZGY5MjZkNDMwNWJhOWUwZTg4N2NkZWNjYjU0YTUw YjZiMGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwNjMvMTAzXSBnbm9tZS10ZXJtaW5hbDogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiBzcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90 ZW1wbGF0ZQppbmRleCBiZjNkNWJjZGQ0Mi4uMTI2YmE1OTU2ZmQgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90 ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtdGVy bWluYWwnCiBwa2duYW1lPWdub21lLXRlcm1pbmFsCi12ZXJzaW9uPTMuMzYuMS4xCit2ZXJzaW9u PTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJl X2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMgLS13aXRoLW5hdXRpbHVzLWV4dGVuc2lvbiIKIGhvc3Rt YWtlZGVwZW5kcz0iYXBwZGF0YS10b29scyBnbGliLWRldmVsIGludGx0b29sIGl0c3Rvb2wKLSBw a2ctY29uZmlnIgorIHBrZy1jb25maWcgZG9jYm9vay14c2wiCiBtYWtlZGVwZW5kcz0iZGNvbmYt ZGV2ZWwgZ25vbWUtc2hlbGwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbAogIG5hdXRp bHVzLWRldmVsIHZ0ZTMtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCkBAIC0x Myw4ICsxMyw4IEBAIHNob3J0X2Rlc2M9IkdOT01FIHRlcm1pbmFsIGVtdWxhdG9yIGFwcGxpY2F0 aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4zLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9BcHBzL1Rlcm1pbmFsIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uOjA6NH0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPWYzZDcwOGExZTc2ZDc3YzFjODViMTI2ZjZlMDAzMjIwYTE1ZDRhNDZhNTBmZDgw NzBlMWEzYWFiZTY3OGEzNzYKK2Rpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTBhMGZj N2E4YjM4M2M2ZmZkNjE0NjliZTFkZWE1YmE2M2NmZmFkODEyOTIxNzgwZTdmYWQ0MGMyZTJhZTU0 ZjUKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJv bSBkMzI3OTBhZjg2NTQyZGM1ZGJhMTM4N2NmYjdiYmY4ZTVjZDMxYTg2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY0LzEw M10gZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3M6IHVwZGF0ZSB0byAzLjM2LjIKCi0tLQogc3Jj cGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQppbmRleCA1YmVjOTM0OTBiYS4uYmVkOWI2 OTYxNjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQpA QCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWdldHRpbmctc3RhcnRl ZC1kb2NzJwogcGtnbmFtZT1nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcwotdmVyc2lvbj0zLjM0 LjAKK3ZlcnNpb249My4zNi4yCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKQEAgLTExLDQgKzExLDQgQEAgbGljZW5zZT0iQ0MtQlktU0EtMy4wIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0 YXJ0ZWQtZG9jcyIKICNjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9n bm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy9yYXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT1mNzBjZTJjYTIzYWQ3ODYyMTVmM2M5MmVjODU3ODNlM2FhYmVk MDdlNGY3ODcwMGZhMjdmOWIyY2Y3NmUwM2RiCitjaGVja3N1bT0wNDk0Yjg5MTNhOTQ2YjY0NTA1 MzZlMTIwYzE1NGFiZDI5MjM4ZWJiYTJmNTI3MzQ1OTJiMWY2NDVlNTIxZGM2CgpGcm9tIDg0ZWM5 ZWEwZTliMmMzMmQ5NTRiODQxOThmNzU5ZjYxOGZhMDE0MDUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjUvMTAzXSBnbm9t ZS11c2VyLWRvY3M6IHVwZGF0ZSB0byAzLjM4LjAsIGRyb3Agbm9hcmNoCgotLS0KIHNyY3BrZ3Mv Z25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXVz ZXItZG9jcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlCmluZGV4 IDRjYjU1Mzk2ZTM3Li5mOTk0MmUyNDg0MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS11c2Vy LWRvY3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKQEAg LTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS11c2VyLWRvY3MnCiBwa2du YW1lPWdub21lLXVzZXItZG9jcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4zOC4wCiByZXZp c2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtl ZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0c3Rvb2wgZ25vbWUtZG9jLXV0aWxzIgogbWFr ZWRlcGVuZHM9InllbHAiCkBAIC0xMyw0ICsxMiw0IEBAIGxpY2Vuc2U9IkNDLUJZLTMuMCIKIGhv bWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vR05PTUUvZ25vbWUtdXNlci1kb2NzIgogI2NoYW5n ZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLXVzZXIt ZG9jcy9tYXN0ZXIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPThmOTkw N2ZmMTVmZmY5N2RhNzVlY2U2NDVjYzg2NzY2NzAzYWM1NGQ3MTZkMjU1NjNiYTY3ZmZlZDFhZjI0 ZWQKK2NoZWNrc3VtPTM4ZDNkYjViNWRjNTkxMjgxMmEyYzZjYjI5NzY1YmZiMzkyNDJjZWRjZDdl ZTM0N2RmOThmY2E3NzdkY2VlOGEKCkZyb20gNGMwN2RhNzEyMTUzMzMwODI0MjA3MDVlMWIzMTE1 ZDcyZWFhMmUwMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDA2Ni8xMDNdIGdub21lLWVwdWItdGh1bWJuYWlsZXI6IHVwZGF0 ZSB0byAxLjYKCi0tLQogc3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQppbmRleCBiMTZlNzA1NDc1Zi4u YzZlMWMwMmI5ZDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKQEAg LTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1lcHViLXRodW1ibmFpbGVy JwogcGtnbmFtZT1nbm9tZS1lcHViLXRodW1ibmFpbGVyCi12ZXJzaW9uPTEuNQordmVyc2lvbj0x LjYKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyIKQEAgLTEwLDQgKzEwLDQgQEAgbWFpbnRhaW5lcj0iQWxpZiBSYWNobWF3 YWRpIDxhcmNoQHN1Ym9zaXRvLmNvbT4iCiBsaWNlbnNlPSJHUEwtMyIKIGhvbWVwYWdlPSJodHRw czovL2dpdC5nbm9tZS5vcmcvYnJvd3NlL2dub21lLWVwdWItdGh1bWJuYWlsZXIiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0zMDgyMTBmNTgwMDIxOWY2NGNhZTQ4MjhlNTliYjhlNmU0 YzUzYjg4ODA0OGNmNDg3MjIxYWViNDMzN2Q3OTFhCitjaGVja3N1bT1iNTAyNDIwZDliMDJlYTBi MGZjNzk4NmVmNWEwOTFhMTJiMjI4NmJlMTRmZWQ5ZTQ3NTk0ZmU5ZmEwYzU4OThlCgpGcm9tIDZj OGMwNDE4YTNkMDgxZDdmMjQ0MWZlMGE2MjFkYWVlYTcxMDMxYjEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjcvMTAzXSBn bm9tZS1ib29rczogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm9va3Mv dGVtcGxhdGUKaW5kZXggMTE0YjllMDM0YzIuLjFkNDk3NGZlMTgzIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1ib29rcycKIHBr Z25hbWU9Z25vbWUtYm9va3MKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgdmFsYSBnbGliLWRldmVsIGxpYnJzdmcgZG9jYm9vay14c2wgbGlieHNsdAoK RnJvbSA4ODJjZTFjYmI1NGY0OThjOTVjZTRiMzNhODFiZTQ5YjhkN2Y3NmEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY4 LzEwM10gZ25vbWUtY2hhcmFjdGVyczogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLWNoYXJhY3Rl cnMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUKaW5kZXggODk4NjhmNGJjMDQuLmFj MjY0ZTUxYTZhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY2hhcmFjdGVycycKIHBrZ25hbWU9Z25vbWUtY2hh cmFjdGVycwogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0 eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBn anMgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCgpGcm9tIDE0YTYzMGUzZjAyMzYwNWJj ZjYxNjdjZGViYjEwNDllMDhlYjgxNzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjkvMTAzXSBnbm9tZS1kb2N1bWVudHM6 IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRz L3RlbXBsYXRlCmluZGV4IDk3YjUzZDYzNWQ3Li43ZTQ1YjgyNWU3MSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVu dHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1k b2N1bWVudHMnCiBwa2duYW1lPWdub21lLWRvY3VtZW50cwogdmVyc2lvbj0zLjM0LjAKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24K IGhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcg Z2xpYi1kZXZlbCBsaWJ4c2x0IGdkay1waXhidWYKCkZyb20gMTYyOGFjZjUxNmRkYzNiYjA4OGQy ZDQwZDAzMWIwODNkMWViODBjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3MC8xMDNdIGdub21lLWZvbnQtdmlld2VyOiBi dW1wCgotLS0KIHNyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mb250LXZp ZXdlci90ZW1wbGF0ZQppbmRleCA2ZDAzNTM2NmQ0NC4uZjc0ZmNiY2IwMDAgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1m b250LXZpZXdlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dub21lLWZvbnQtdmlld2VyJwogcGtnbmFtZT1nbm9tZS1mb250LXZpZXdlcgogdmVyc2lvbj0z LjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJmb250Y29uZmln LWRldmVsIGZyZWV0eXBlLWRldmVsIGdsaWItZGV2ZWwgZ3RrKzMtZGV2ZWwKCkZyb20gZmVmMDA3 M2JhZDYwZmNiZDNhNmMzMTlhZGJlZjU1YzkyN2ViYjBkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3MS8xMDNdIHRvdGVt OiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvdG90ZW0vdGVtcGxhdGUgfCAxNiArKysr KysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdG90ZW0vdGVtcGxhdGUgYi9zcmNwa2dzL3RvdGVt L3RlbXBsYXRlCmluZGV4IDgxNTIyYjMxNDg4Li41NmZiMTUyNzBmYiAxMDA2NDQKLS0tIGEvc3Jj cGtncy90b3RlbS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCkBAIC0xLDE0 ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0b3RlbScKIHBrZ25hbWU9dG90ZW0KLXZl cnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlLXB5dGhvbj1u byAtRGVuYWJsZS1uYXV0aWx1cz15ZXMKICAtRGVuYWJsZS1pbnRyb3NwZWN0aW9uPSQodm9wdF9p ZiBnaXIgeWVzIG5vKQotIC1EZW5hYmxlLXZhbGE9JCh2b3B0X2lmIHZhbGEgeWVzIG5vKSIKKyAt RGVuYWJsZS12YWxhPSQodm9wdF9pZiBnaXIgeWVzIG5vKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ25v bWUtZG9jLXV0aWxzIGludGx0b29sIGl0c3Rvb2wgcGtnLWNvbmZpZwotICQodm9wdF9pZiB2YWxh IHZhbGEpIGdzdHJlYW1lcjEgZ3N0LXBsdWdpbnMtYmFzZTEgZ3N0LXBsdWdpbnMtZ29vZDEKKyAk KHZvcHRfaWYgZ2lyIHZhbGEpIGdzdHJlYW1lcjEgZ3N0LXBsdWdpbnMtYmFzZTEgZ3N0LXBsdWdp bnMtZ29vZDEKICBnbGliLWRldmVsIgogIyBYWFggbWlzc2luZyBsaXJjIHBsdWdpbi4KIG1ha2Vk ZXBlbmRzPSJjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1dHRlci1ndGstZGV2ZWwgZGJ1cy1nbGliLWRl dmVsCkBAIC0yMSwxNiArMjEsMTggQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9WaWRlb3MiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02YmY4OWFiMDk2ZGZjNTY0ZjI2MDk3NmU0ODQx NjVmMDliZDg4NjQzNGQxODQ0MTBkMmY5NDRiZmJhNjExYTA5CitjaGVja3N1bT1hODI5ZjJiNWFh MDQzNWFhNDMxODE2MTUzMTkzZDU1NDdmYWRlOWViOGQ0ODlmNTZiZTIyYWZiZTY1MWM0MzJmCiAK ICMgWFhYIHh1bHJ1bm5lciBwbHVnaW4uCiAjIFhYWCByZWVuYWJsZSBweXRob24gcGx1Z2luIGlm IHB5bGludCBwa2cgZXhpc3RzLgogI3B5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL3RvdGVtL3BsdWdp bnMiCiAKLWRpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCitkb19jaGVjaygpIHsKKwk6Cit9CiAK LWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFs YSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBs aWJ0b3RlbV9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCgpG cm9tIDBlNDM3ZmNjZjQ1OWYyNzc0MTkzNWU0YWU1ZTNmODQ4NTA0MjQ1MjQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzIv MTAzXSBnbm9tZS1zY3JlZW5zYXZlcjogYnVtcCArIGZpeCBidWlsZAoKLS0tCiBzcmNwa2dzL2du b21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2ggfCAxMiArKysrKysrKysrKysKIHNy Y3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUgICAgICAgICAgICB8ICAyICstCiAyIGZp bGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gg Yi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZkY2RiZTdkZDdlCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0w LDAgKzEsMTIgQEAKKy0tLSBzcmMvZ3MtbWFuYWdlci5jCisrKysgc3JjL2dzLW1hbmFnZXIuYwor QEAgLTgyMCw4ICs4MjAsNyBAQCBhcHBseV9iYWNrZ3JvdW5kX3RvX3dpbmRvdyAoR1NNYW5hZ2Vy ICptYW5hZ2VyLAorICAgICAgICAgc3VyZmFjZSA9IGdub21lX2JnX2NyZWF0ZV9zdXJmYWNlICht YW5hZ2VyLT5wcml2LT5iZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2RrX3dpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgd2lkdGgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGhlaWdodCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFM U0UpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQp OworICAgICAgICAgZ3Nfd2luZG93X3NldF9iYWNrZ3JvdW5kX3N1cmZhY2UgKHdpbmRvdywgc3Vy ZmFjZSk7CisgICAgICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kgKHN1cmZhY2UpOworIH0KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlCmluZGV4IDM2M2ZjZjEyZTEwLi5jM2E3MGNmZWY3YyAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtc2NyZWVuc2F2ZXInCiBwa2duYW1lPWdub21lLXNjcmVlbnNhdmVy CiB2ZXJzaW9uPTMuNi4xCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUt Y29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5p bXVtIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGludGx0b29sIGdsaWIt ZGV2ZWwiCgpGcm9tIGY3OGI3ODIwNTQxMWI2NjkwMzVjNTNiZjJmMTQxMThhMTA0Njg3MzYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNzMvMTAzXSBnbm9tZS1jbG9ja3M6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtn cy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNs b2Nrcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlCmluZGV4IDNlMDQ5 YjQyZmIxLi43MmY3MWY5MjY4YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTIg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNsb2NrcycKIHBrZ25hbWU9Z25vbWUtY2xv Y2tzCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hl bHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBpbnRsdG9vbCBpdHN0b29sIGdsaWItZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJnbGliLWRl dmVsIHZhbGEtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAotIGxpYmd3ZWF0aGVyLWRldmVsIGxp YmhhbmR5LWRldmVsIGxpYm5vdGlmeS1kZXZlbCBnc291bmQtZGV2ZWwKKyBsaWJnd2VhdGhlci1k ZXZlbCBsaWJoYW5keTEtZGV2ZWwgbGlibm90aWZ5LWRldmVsIGdzb3VuZC1kZXZlbAogIGdlb2Nv ZGUtZ2xpYi1kZXZlbCBkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lCiAgZ2Vv Y2x1ZTItZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRo ZW1lIgpAQCAtMTUsNCArMTUsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ2xvY2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09NGM5NzhiMGM3ZjdiOWRhZWJkMjcyZDAxNzVmOGE1NDQxNWUyMDc4ZjEzNGY0OGFk ZDVjZjI0MzYyZWVmNDljNgorY2hlY2tzdW09ZDk1NmNiMDUwZjFjYTQ2YjQ0MzUxOWU0ZjU5YWIy MDQyOTBkNjI3MGRlYzkxYzc0YjUzODk1YWVjYzc5NDQzOAoKRnJvbSAwNGVhYTFlNGI4N2QxNjgz Yjg5OGEzNDVhYzU4YTE3Y2Y0OWYwZTIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc0LzEwM10gZXBpcGhhbnk6IHVwZGF0 ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZSB8IDggKysrKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxh dGUKaW5kZXggNWQ2YWM2YTYzN2QuLmYyM2IyM2M2ZmJlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Vw aXBoYW55L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUKQEAgLTEsMTkg KzEsMTkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VwaXBoYW55JwogcGtnbmFtZT1lcGlwaGFu eQotdmVyc2lvbj0zLjM2LjIKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxw ZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURkaXN0cmlidXRv cl9uYW1lPVZvaWRMaW51eCAtRHVuaXRfdGVzdHM9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9 ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0 d29ya01hbmFnZXItZGV2ZWwgYXZhaGktZ2xpYi1saWJzLWRldmVsIGdjci1kZXZlbAotIGdub21l LWRlc2t0b3AtZGV2ZWwganNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keS1k ZXZlbAorIGdub21lLWRlc2t0b3AtZGV2ZWwganNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZl bCBsaWJoYW5keTEtZGV2ZWwKICBsaWJub3RpZnktZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNv dXAtZ25vbWUtZGV2ZWwgbGlid25jay1kZXZlbCBsaWJ4c2x0LWRldmVsCi0gbmV0dGxlLWRldmVs IG5zcy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgorIG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Vi a2l0Mmd0ay1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRp bHMgaGljb2xvci1pY29uLXRoZW1lIGlzby1jb2RlcyB3ZWJraXQyZ3RrIgogc2hvcnRfZGVzYz0i SW50dWl0aXZlIEdOT01FIHdlYiBicm93c2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1dlYiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWMyZTY3NmFhMGZlMjExODA5YTVlN2U4YTdlNDYxZDE4Mjg5MGYyNTNjNTNm NDYxMGYyNjEwMDk0YjZmYmZiNWUKK2NoZWNrc3VtPTIyOGU4MjBkN2M3Zjg1NDFlNGRiNWVjYzZj ODFiNWE4OGJkZTliMWVhMTdjYWU0YTVmMzg0NDZmNzk4OWM1NTIKCkZyb20gNThkYzNhMTQ0M2Jk NDUzMTlmNjdmYTA3MzcyNWFlNjYyMzllNmEzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3NS8xMDNdIGdub21lLWNvbnRh Y3RzOiB1cGRhdGUgdG8gMy4zNy4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxh dGUgfCAxMyArKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlCmluZGV4IDJhODIxM2E3MjQwLi5h YTRlZjk0MDEzNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE1IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1jb250YWN0cycKIHBrZ25hbWU9Z25vbWUtY29udGFj dHMKLXZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0yCi13cmtzcmM9Imdub21lLWNvbnRhY3RzLSR7 dmVyc2lvbiUuKn0iCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KLWhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhz bHQgcGtnLWNvbmZpZyB2YWxhIgoraG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBmb2xrcy1k ZXZlbCBnZXR0ZXh0IGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCiBtYWtlZGVw ZW5kcz0iY2hlZXNlLWRldmVsIGZvbGtzLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnbm9tZS1k ZXNrdG9wLWRldmVsCi0gbGliY2hhbXBsYWluLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB2YWxhLWRl dmVsIGxpYmhhbmR5LWRldmVsIgorIGxpYmNoYW1wbGFpbi1kZXZlbCBsaWJub3RpZnktZGV2ZWwg dmFsYS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMi CiBzaG9ydF9kZXNjPSJHTk9NRSBjb250YWN0cyBtYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0NvbnRhY3RzIgotZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbiUuKn0udGFyLnh6IgotY2hlY2tzdW09OTk2MDJlYzhkNjYwYzFmM2M5MmNhZTYzNTZm NjRmNzJmYjZkYjU4ZTU1YmNlMjdhNTk5MzMwYmY3YjYyMmYxMgorZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgorY2hlY2tzdW09MWQzNDY5ZDVlOTBmMjNkMTI5ZDEyNzZiMmY5Yjg4NTQ1OWYzZDdiNDMw NTRjZDA5NzU5Yjg1YWM3NmM5MThiNAoKRnJvbSBiMmU1MDJhZjM3MWEyZmY4N2E2ZDFmNWIyMjEz MTM5ZDU5Mzc0YTM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc2LzEwM10gZ25vbWUtcGhvdG9zOiB1cGRhdGUgdG8gMy4z Ny45MS4xLCB1c2UgdHJhY2tlcjMKCi0tLQogc3JjcGtncy9nbm9tZS1waG90b3MvcGF0Y2hlcy90 cmFja2VyMy5wYXRjaCB8IDQyNTQgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1w aG90b3MvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwg NDI2MCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMvdHJhY2tlcjMucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL3RyYWNrZXIzLnBhdGNoIGIvc3JjcGtncy9nbm9t ZS1waG90b3MvcGF0Y2hlcy90cmFja2VyMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uNDA2ZGNhMzBmZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2du b21lLXBob3Rvcy9wYXRjaGVzL3RyYWNrZXIzLnBhdGNoCkBAIC0wLDAgKzEsNDI1NCBAQAorRnJv bSBiNGE4ZGUxZWY3OWM5NGMxYzExYjczMDc4NzEwOGYzMDVjOTYyZTM4IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogU2FtIFRodXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CitEYXRl OiBXZWQsIDI2IEF1ZyAyMDIwIDAxOjU3OjQ2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMS80XSBw aG90b3MtdHJhY2tlci1jb250cm9sbGVyOiBMYWJlbCB1bml0IG9mIHRpbWluZworIG1lYXN1cmVt ZW50cworCitPdGhlcndpc2UsIGl0J3Mgbm90IGNsZWFyIGlmIHRoZXNlIGFyZSB0aW1pbmdzIG9y IHNvbWUga2luZCBvZiBJRAorbnVtYmVyLgorLS0tCisgc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRy b2xsZXIuYyB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5j IGIvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYworaW5kZXggYTAyZGIwNzcuLjNhNjJj ZjJkIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYworKysrIGIv c3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYworQEAgLTIzNyw3ICsyMzcsNyBAQCBwaG90 b3NfdHJhY2tlcl9jb250cm9sbGVyX2N1cnNvcl9uZXh0IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0 LCBHQXN5bmNSZXN1bHQgKnJlcworICAgICB9CisgCisgICBub3cgPSBnX2dldF9tb25vdG9uaWNf dGltZSAoKTsKKy0gIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJRdWVyeSBD dXJzb3I6ICUiIEdfR0lOVDY0X0ZPUk1BVCwgKG5vdyAtIHByaXYtPmxhc3RfcXVlcnlfdGltZSkg LyAxMDAwMDAwKTsKKysgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJRdWVy eSBDdXJzb3I6ICUiIEdfR0lOVDY0X0ZPUk1BVCAiIHNlY29uZHMiLCAobm93IC0gcHJpdi0+bGFz dF9xdWVyeV90aW1lKSAvIDEwMDAwMDApOworIAorICAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9hZGRf aXRlbV9mb3JfbW9kZSAoUEhPVE9TX0lURU1fTUFOQUdFUiAocHJpdi0+aXRlbV9tbmdyKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIT1RPU19UUkFDS0VSX0NP TlRST0xMRVJfR0VUX0NMQVNTIChzZWxmKS0+YmFzZV9pdGVtX3R5cGUsCitAQCAtMzQ2LDcgKzM0 Niw3IEBAIHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJfc2V0X3F1ZXJ5X3N0YXR1cyAoUGhvdG9z VHJhY2tlckNvbnRyb2xsZXIgKnNlbGYsIGdib29sCisgICBlbHNlCisgICAgIHsKKyAgICAgICBw aG90b3NfZGVidWcgKFBIT1RPU19ERUJVR19UUkFDS0VSLAorLSAgICAgICAgICAgICAgICAgICAg IlF1ZXJ5IEVsYXBzZWQ6ICUiIEdfR0lOVDY0X0ZPUk1BVCwKKysgICAgICAgICAgICAgICAgICAg ICJRdWVyeSBFbGFwc2VkOiAlIiBHX0dJTlQ2NF9GT1JNQVQgIiBzZWNvbmRzIiwKKyAgICAgICAg ICAgICAgICAgICAgIChub3cgLSBwcml2LT5sYXN0X3F1ZXJ5X3RpbWUpIC8gMTAwMDAwMCk7Cisg ICAgICAgcHJpdi0+bGFzdF9xdWVyeV90aW1lID0gMDsKKyAgICAgfQorLS0gCitHaXRMYWIKKwor CitGcm9tIDdjOThhODg0YmE2YTI2Nzk1ZWEyNWE4NzgwMDAyYWMxMDEwMzY4ODcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW0gVGh1cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4K K0RhdGU6IFdlZCwgMjcgTWF5IDIwMjAgMTM6MDc6NTggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAy LzRdIEZpeCBidWlsZCBmYWlsdXJlIGR1ZSB0byB1bmRlZmluZWQgTV9QSSBjb25zdGFudAorCitU aGUgPG1hdGguaD4gaGVhZGVyIG5lZWRzIHRvIGJlIGluY2x1ZGVkLgorCitQcmV2aW91c2x5IEkg c3VwcG9zZSBsaWJ0cmFja2VyLXNwYXJxbC5oIHB1bGxlZCB0aGlzIGluLgorLS0tCisgc3JjL3Bo b3Rvcy11dGlscy5jIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2Rp ZmYgLS1naXQgYS9zcmMvcGhvdG9zLXV0aWxzLmMgYi9zcmMvcGhvdG9zLXV0aWxzLmMKK2luZGV4 IDQwMWY1MmJhLi5jNjM4Mjk3YiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtdXRpbHMuYworKysr IGIvc3JjL3Bob3Rvcy11dGlscy5jCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlIDxnbGli Lmg+CisgI2luY2x1ZGUgPHRyYWNrZXItc3BhcnFsLmg+CisgI2luY2x1ZGUgPGxpYmdkL2dkLmg+ CisrI2luY2x1ZGUgPG1hdGguaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgi CisgI2luY2x1ZGUgInBob3Rvcy1kZXZpY2UtaXRlbS5oIgorLS0gCitHaXRMYWIKKworCitGcm9t IDBlNGJkN2JiYzgwNTY3NDNhOGVhMDdhYjM3MTNhZDU0M2MwMGQ0NzggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBTYW0gVGh1cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4KK0RhdGU6 IFN1biwgNyBKdW4gMjAyMCAyMTo1MzoyMCArMDIwMAorU3ViamVjdDogW1BBVENIIDMvNF0gR2Vu ZXJhdGUgcXVlcmllcyB1c2luZyBTUEFSUUwgdGVtcGxhdGVzCisKK1RoZSBjb2RlIHRvIGdlbmVy YXRlIFNQQVJRTCBxdWVyaWVzIHdhcyBzcGxpdCBhY3Jvc3MgbWFueSBkaWZmZXJlbnQKK3NvdXJj ZSBmaWxlcywgbWFraW5nIGl0IGRpZmZpY3VsdCB0byBtYWtlIGJpZyBjaGFuZ2VzLiBOb3cgdGhl CitxdWVyaWVzIGFyZSB3cml0dGVuIG91dCBhcyB0ZW1wbGF0ZXMgYW5kIHdlIHVzZSB0ZW1wbGF0 ZSBzdWJzdGl0dXRpb24KK3RvIGJ1aWxkIHRoZSBTUEFSUUwgdGhhdCB3ZSBzZW5kIHRvIFRyYWNr ZXIuCistLS0KKyBzcmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA1ICsKKyBzcmMvcGhvdG9zLWJhc2UtbWFuYWdlci5jICAgICAgICAgICAgICAgICAgIHwgIDE1 ICsrCisgc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuaCAgICAgICAgICAgICAgICAgICB8ICAgNCAr Cisgc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMgICAgICAgICAgICAgICAgICAgICB8ICAgOCAtCisg c3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmggICAgICAgICAgICAgICAgICAgICB8ICAgMyAtCisgc3Jj L3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMgICAgICAgICAgICAgICAgICB8IDIwNyArKysrKysrKyst LS0tLS0tLS0tLQorIHNyYy9waG90b3Mtc2VhcmNoLXR5cGUtbWFuYWdlci5jICAgICAgICAgICAg fCAgNTkgKy0tLS0tCisgc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5jICAgICAgICAgICAgICAgICAg ICB8ICA2NyArKystLS0tCisgc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5oICAgICAgICAgICAgICAg ICAgICB8ICAgNiArLQorIHNyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmMgICAgICAgICAgICAg ICAgfCAxODcgKysrKysrKysrKysrKysrKysrCisgc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUu aCAgICAgICAgICAgICAgICB8ICAzOCArKysrCisgc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sICAg ICAgICAgICAgICAgICAgICB8ICAgNCArCisgc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0 ZSAgICAgICAgICAgICB8ICAzMSArKysKKyBzcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwu dGVtcGxhdGUgICAgIHwgIDE0ICsrCisgc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJx bC50ZW1wbGF0ZSB8ICAxMiArKworIHNyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUg ICAgICAgICAgfCAgMTEgKysKKyAxNiBmaWxlcyBjaGFuZ2VkLCA0NDYgaW5zZXJ0aW9ucygrKSwg MjI1IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGhvdG9zLXNwYXJxbC10 ZW1wbGF0ZS5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRl LmgKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQor IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxh dGUKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJx bC50ZW1wbGF0ZQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcXVlcmllcy9waG90b3Muc3BhcnFs LnRlbXBsYXRlCisKK2RpZmYgLS1naXQgYS9zcmMvbWVzb24uYnVpbGQgYi9zcmMvbWVzb24uYnVp bGQKK2luZGV4IDk5MTlmMGNmLi5iNWIyNzU5YyAxMDA2NDQKKy0tLSBhL3NyYy9tZXNvbi5idWls ZAorKysrIGIvc3JjL21lc29uLmJ1aWxkCitAQCAtMTk1LDYgKzE5NSw3IEBAIHNvdXJjZXMgPSBj b21tb25fc291cmNlcyArIGZpbGVzKAorICAgJ3Bob3Rvcy1zb3VyY2UuYycsCisgICAncGhvdG9z LXNvdXJjZS1tYW5hZ2VyLmMnLAorICAgJ3Bob3Rvcy1zb3VyY2Utbm90aWZpY2F0aW9uLmMnLAor KyAgJ3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYycsCisgICAncGhvdG9zLXNwaW5uZXItYm94LmMn LAorICAgJ3Bob3Rvcy10aHVtYm5haWwtZmFjdG9yeS5jJywKKyAgICdwaG90b3MtdG9vbC5jJywK K0BAIC0yOTAsNiArMjkxLDEwIEBAIHJlc291cmNlX2RhdGEgPSBmaWxlcygKKyAgICdwaG90b3Mt c2VsZWN0aW9uLXRvb2xiYXIudWknLAorICAgJ3Bob3Rvcy1zaGFyZS1kaWFsb2cudWknLAorICAg J3Bob3Rvcy16b29tLWNvbnRyb2xzLnVpJywKKysgICdxdWVyaWVzL2FsbC5zcGFycWwudGVtcGxh dGUnLAorKyAgJ3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlJywKKysgICdxdWVy aWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUnLAorKyAgJ3F1ZXJpZXMvcGhvdG9z LnNwYXJxbC50ZW1wbGF0ZScsCisgKQorIAorIHNvdXJjZXMgKz0gZ25vbWUuY29tcGlsZV9yZXNv dXJjZXMoCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuYyBiL3NyYy9waG90 b3MtYmFzZS1tYW5hZ2VyLmMKK2luZGV4IGQ0OWQxOWE1Li4wNTI2MzhkNSAxMDA2NDQKKy0tLSBh L3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKKysrKyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2Vy LmMKK0BAIC0yNTAsNiArMjUwLDEyIEBAIHBob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRf d2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKQorIH0KKyAKKyAKKytz dGF0aWMgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgorK3Bob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVs dF9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFn cykKKyt7CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisgc3RhdGljIHZvaWQKKyBwaG90b3NfYmFz ZV9tYW5hZ2VyX2RlZmF1bHRfcmVtb3ZlX29iamVjdF9ieV9pZCAoUGhvdG9zQmFzZU1hbmFnZXIg KnNlbGYsIGNvbnN0IGdjaGFyICppZCkKKyB7CitAQCAtNDM4LDYgKzQ0NCw3IEBAIHBob3Rvc19i YXNlX21hbmFnZXJfY2xhc3NfaW5pdCAoUGhvdG9zQmFzZU1hbmFnZXJDbGFzcyAqY2xhc3MpCisg ICBjbGFzcy0+Z2V0X29iamVjdF9ieV9pZCA9IHBob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9n ZXRfb2JqZWN0X2J5X2lkOworICAgY2xhc3MtPmdldF9wcmV2aW91c19vYmplY3QgPSBwaG90b3Nf YmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3ByZXZpb3VzX29iamVjdDsKKyAgIGNsYXNzLT5nZXRf d2hlcmUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3doZXJlOworKyAgY2xhc3Mt PmdldF9zcGFycWxfdGVtcGxhdGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3Nw YXJxbF90ZW1wbGF0ZTsKKyAgIGNsYXNzLT5yZW1vdmVfb2JqZWN0X2J5X2lkID0gcGhvdG9zX2Jh c2VfbWFuYWdlcl9kZWZhdWx0X3JlbW92ZV9vYmplY3RfYnlfaWQ7CisgICBjbGFzcy0+c2V0X2Fj dGl2ZV9vYmplY3QgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfc2V0X2FjdGl2ZV9vYmpl Y3Q7CisgCitAQCAtNzE0LDYgKzcyMSwxNCBAQCBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVy ZSAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpCisgfQorIAorIAorK1Bob3Rv c1NwYXJxbFRlbXBsYXRlICoKKytwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxh dGUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKQorK3sKKysgIGdfcmV0dXJu X3ZhbF9pZl9mYWlsIChQSE9UT1NfSVNfQkFTRV9NQU5BR0VSIChzZWxmKSwgTlVMTCk7CisrICBy ZXR1cm4gUEhPVE9TX0JBU0VfTUFOQUdFUl9HRVRfQ0xBU1MgKHNlbGYpLT5nZXRfc3BhcnFsX3Rl bXBsYXRlIChzZWxmLCBmbGFncyk7CisrfQorKworKworIHZvaWQKKyBwaG90b3NfYmFzZV9tYW5h Z2VyX3Byb2Nlc3NfbmV3X29iamVjdHMgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBHSGFzaFRh YmxlICpuZXdfb2JqZWN0cykKKyB7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1iYXNlLW1hbmFn ZXIuaCBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmgKK2luZGV4IDk5ZDIwM2U5Li4wNGNmYTdk YiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmgKKysrKyBiL3NyYy9waG90 b3MtYmFzZS1tYW5hZ2VyLmgKK0BAIC0yNCw2ICsyNCw3IEBACisgI2RlZmluZSBQSE9UT1NfQkFT RV9NQU5BR0VSX0gKKyAKKyAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKysjaW5jbHVkZSAicGhv dG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgorIAorIEdfQkVHSU5fREVDTFMKKyAKK0BAIC00Niw2ICs0 Nyw3IEBAIHN0cnVjdCBfUGhvdG9zQmFzZU1hbmFnZXJDbGFzcworICAgZ2NoYXIgICAgICAgICAq KCpnZXRfd2hlcmUpICAgICAgICAgICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQg ZmxhZ3MpOworICAgdm9pZCAgICAgICAgICAgKCpyZW1vdmVfb2JqZWN0X2J5X2lkKSAgICAoUGhv dG9zQmFzZU1hbmFnZXIgKnNlbGYsIGNvbnN0IGdjaGFyICppZCk7CisgICBnYm9vbGVhbiAgICAg ICAoKnNldF9hY3RpdmVfb2JqZWN0KSAgICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09i amVjdCAqb2JqZWN0KTsKKysgIFBob3Rvc1NwYXJxbFRlbXBsYXRlICooKmdldF9zcGFycWxfdGVt cGxhdGUpIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncyk7CisgCisgICAvKiBz aWduYWxzICovCisgICB2b2lkICAgICAgICAgICAoKmFjdGl2ZV9jaGFuZ2VkKSAgICAgICAgIChQ aG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09iamVjdCAqb2JqZWN0KTsKK0BAIC04MCw2ICs4Miw4 IEBAIGNvbnN0IGdjaGFyICAgICAgICAqcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfdGl0bGUgICAg ICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hCisgCisgZ2NoYXIgICAgICAgICAgICAgICpwaG90 b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAgICAgICAgICAgICAgICAoUGhvdG9zQmFzZU1hbmFn ZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOworIAorK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICpwaG90b3Nf YmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpz ZWxmLCBnaW50IGZsYWdzKTsKKysKKyB2b2lkICAgICAgICAgICAgICAgIHBob3Rvc19iYXNlX21h bmFnZXJfcHJvY2Vzc19uZXdfb2JqZWN0cyAgICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwg R0hhc2hUYWJsZSAqbmV3X29iamVjdHMpOworIAorIHZvaWQgICAgICAgICAgICAgICAgcGhvdG9z X2Jhc2VfbWFuYWdlcl9yZW1vdmVfb2JqZWN0ICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2Vy ICpzZWxmLCBHT2JqZWN0ICpvYmplY3QpOworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtZmlsdGVy YWJsZS5jIGIvc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMKK2luZGV4IDM2MWIxYzI5Li5hYWE0MTA5 YyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtZmlsdGVyYWJsZS5jCisrKysgYi9zcmMvcGhvdG9z LWZpbHRlcmFibGUuYworQEAgLTY5LDE0ICs2OSw2IEBAIHBob3Rvc19maWx0ZXJhYmxlX2dldF9p ZCAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZikKKyB9CisgCisgCistZ2NoYXIgKgorLXBob3Rvc19m aWx0ZXJhYmxlX2dldF93aGVyZSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZikKKy17CistICBnX3Jl dHVybl92YWxfaWZfZmFpbCAoUEhPVE9TX0lTX0ZJTFRFUkFCTEUgKHNlbGYpLCBOVUxMKTsKKy0g IHJldHVybiBQSE9UT1NfRklMVEVSQUJMRV9HRVRfSUZBQ0UgKHNlbGYpLT5nZXRfd2hlcmUgKHNl bGYpOworLX0KKy0KKy0KKyBnYm9vbGVhbgorIHBob3Rvc19maWx0ZXJhYmxlX2lzX3NlYXJjaF9j cml0ZXJpb24gKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpCisgeworZGlmZiAtLWdpdCBhL3NyYy9w aG90b3MtZmlsdGVyYWJsZS5oIGIvc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmgKK2luZGV4IGU3Njhi Y2EwLi44YTM0MTVmYyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtZmlsdGVyYWJsZS5oCisrKysg Yi9zcmMvcGhvdG9zLWZpbHRlcmFibGUuaAorQEAgLTM3LDcgKzM3LDYgQEAgc3RydWN0IF9QaG90 b3NGaWx0ZXJhYmxlSW50ZXJmYWNlCisgICBnYm9vbGVhbiAoKmdldF9idWlsdGluKSAoUGhvdG9z RmlsdGVyYWJsZSAqc2VsZik7CisgICBnY2hhciAqKCpnZXRfZmlsdGVyKSAoUGhvdG9zRmlsdGVy YWJsZSAqc2VsZik7CisgICBjb25zdCBnY2hhciAqKCpnZXRfaWQpIChQaG90b3NGaWx0ZXJhYmxl ICpzZWxmKTsKKy0gIGdjaGFyICooKmdldF93aGVyZSkgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYp OworICAgZ2Jvb2xlYW4gKCppc19zZWFyY2hfY3JpdGVyaW9uKSAoUGhvdG9zRmlsdGVyYWJsZSAq c2VsZik7CisgfTsKKyAKK0BAIC00Nyw4ICs0Niw2IEBAIGdjaGFyICAgICAgICAgICAgICAqcGhv dG9zX2ZpbHRlcmFibGVfZ2V0X2ZpbHRlciAgICAgICAgIChQaG90b3NGaWx0ZXJhYmxlICpzZWxm CisgCisgY29uc3QgZ2NoYXIgICAgICAgICpwaG90b3NfZmlsdGVyYWJsZV9nZXRfaWQgICAgICAg ICAgICAgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworIAorLWdjaGFyICAgICAgICAgICAgICAq cGhvdG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJlICAgICAgICAgIChQaG90b3NGaWx0ZXJhYmxlICpz ZWxmKTsKKy0KKyBnYm9vbGVhbiAgICAgICAgICAgIHBob3Rvc19maWx0ZXJhYmxlX2lzX3NlYXJj aF9jcml0ZXJpb24gIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKyAKKyBHX0VORF9ERUNMUwor ZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jIGIvc3JjL3Bob3Rvcy1xdWVy eS1idWlsZGVyLmMKK2luZGV4IDZiOTk2ODExLi5lMDczNWJkZSAxMDA2NDQKKy0tLSBhL3NyYy9w aG90b3MtcXVlcnktYnVpbGRlci5jCisrKysgYi9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYwor QEAgLTI2LDExMiArMjYsNzYgQEAKKyAjaW5jbHVkZSA8c3RyaW5nLmg+CisgCisgI2luY2x1ZGUg InBob3Rvcy1iYXNlLW1hbmFnZXIuaCIKKysjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LmgiCisgI2lu Y2x1ZGUgInBob3Rvcy1xdWVyeS1idWlsZGVyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gt dHlwZS5oIgorICNpbmNsdWRlICJwaG90b3Mtc291cmNlLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAi cGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gt dHlwZS1tYW5hZ2VyLmgiCisgCisrI2RlZmluZSBQSE9UT1NfUVVFUllfQ09MTEVDVElPTlNfSURF TlRJRklFUiAicGhvdG9zOmNvbGxlY3Rpb246IgorKyNkZWZpbmUgUEhPVE9TX1FVRVJZX0xPQ0FM X0NPTExFQ1RJT05TX0lERU5USUZJRVIgInBob3Rvczpjb2xsZWN0aW9uOmxvY2FsOiIKKyAKKy1z dGF0aWMgZ2NoYXIgKgorLXBob3Rvc19xdWVyeV9idWlsZGVyX2ZpbHRlciAoUGhvdG9zU2VhcmNo Q29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFncykKKy17CistICBnY2hhciAqc3BhcnFsOwor LSAgZ19hdXRvZnJlZSBnY2hhciAqc3JjX21uZ3JfZmlsdGVyID0gTlVMTDsKKy0gIGdfYXV0b2Zy ZWUgZ2NoYXIgKnNyY2hfbXRjaF9tbmdyX2ZpbHRlciA9IE5VTEw7CistICBnX2F1dG9mcmVlIGdj aGFyICpzcmNoX3R5cF9tbmdyX2ZpbHRlciA9IE5VTEw7CisrY29uc3QgZ2NoYXIgKmNvbGxlY3Rp b25zX2RlZmF1bHRfZmlsdGVyID0gXAorKyAgIihmbjpzdGFydHMtd2l0aCAobmFvOmlkZW50aWZp ZXIgKD91cm4pLCAnIiBQSE9UT1NfUVVFUllfQ09MTEVDVElPTlNfSURFTlRJRklFUiAiJykiCisr ICAiICAgfHwgKD91cm4gPSBuZm86aW1hZ2UtY2F0ZWdvcnktc2NyZWVuc2hvdCkpIjsKKyAKKy0g IHNyY19tbmdyX2ZpbHRlciA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X2ZpbHRlciAoc3RhdGUt PnNyY19tbmdyLCBmbGFncyk7CistICBzcmNoX210Y2hfbW5ncl9maWx0ZXIgPSBwaG90b3NfYmFz ZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX210Y2hfbW5nciwgZmxhZ3MpOworLSAg c3JjaF90eXBfbW5ncl9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0 YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmlu dGYgKCJGSUxURVIgKCVzICYmICVzICYmICVzKSIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNyY19tbmdyX2ZpbHRlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjaF9t dGNoX21uZ3JfZmlsdGVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNoX3R5cF9t bmdyX2ZpbHRlcik7CistCistICByZXR1cm4gc3BhcnFsOworLX0KKysvKiBUaGlzIGluY2x1ZGVz IG1pbWV0eXBlIGJsb2NrbGlzdCAqLworK2NvbnN0IGdjaGFyICpwaG90b3NfZGVmYXVsdF9maWx0 ZXIgPSBcCisrICAiKG5pZTptaW1lVHlwZSg/dXJuKSAhPSAnaW1hZ2UvZ2lmJyAmJiBuaWU6bWlt ZVR5cGUoP3VybikgIT0gJ2ltYWdlL3gtZXBzJykiOworIAorIAorIHN0YXRpYyBnY2hhciAqCist cGhvdG9zX3F1ZXJ5X2J1aWxkZXJfb3B0aW9uYWwgKHZvaWQpCisteworLSAgcmV0dXJuIGdfc3Ry ZHVwICgiT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9yIC4gfSAiCistICAgICAg ICAgICAgICAgICAgICJPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4g fSIpOworLX0KKy0KKy0KKy1zdGF0aWMgZ2NoYXIgKgorLXBob3Rvc19xdWVyeV9idWlsZGVyX2lu bmVyX3doZXJlIChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBnYm9vbGVhbiBnbG9i YWwsIGdpbnQgZmxhZ3MpCisrcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJj aENvbnRleHRTdGF0ZSAqc3RhdGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29s ZWFuIGdsb2JhbCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBmbGFncywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvdG9zT2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0 X2NudHJscikKKyB7CistICBnX2F1dG9mcmVlIGdjaGFyICppdGVtX21uZ3Jfd2hlcmUgPSBOVUxM OworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRlbXBsYXRlOworKyAgY29uc3QgZ2NoYXIgKnBy b2plY3Rpb24gPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVM TDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNlYXJjaF9maWx0ZXIgPSBOVUxMOworKyAgZ19hdXRv ZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqb3JkZXIg PSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqb2Zmc2V0X2xpbWl0ID0gTlVMTDsKKyAgIGdj aGFyICpzcGFycWw7CistICBnX2F1dG9mcmVlIGdjaGFyICpzcmNoX3R5cF9tbmdyX3doZXJlID0g TlVMTDsKKyAKKy0gIHNyY2hfdHlwX21uZ3Jfd2hlcmUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dl dF93aGVyZSAoc3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsKKysgIHRlbXBsYXRlID0gcGhv dG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChzdGF0ZS0+c3JjaF90eXBfbW5n ciwgZmxhZ3MpOworKworKyAgcHJvamVjdGlvbiA9ICI/dXJuICIKKysgICAgICAgICAgICAgICAi bmllOnVybCAoP3VybikgIgorKyAgICAgICAgICAgICAgICJuZm86ZmlsZU5hbWUgKD91cm4pICIK KysgICAgICAgICAgICAgICAibmllOm1pbWVUeXBlICg/dXJuKSAiCisrICAgICAgICAgICAgICAg Im5pZTp0aXRsZSAoP3VybikgIgorKyAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlIChu Y286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1bGxuYW1lICg/cHVibGlzaGVyKSwgJycpICIK KysgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmZvOmZpbGVMYXN0TW9kaWZpZWQg KD91cm4pLCBuaWU6Y29udGVudExhc3RNb2RpZmllZCAoP3VybikpIEFTID9tdGltZSAiCisrICAg ICAgICAgICAgICAgIm5hbzppZGVudGlmaWVyICg/dXJuKSAiCisrICAgICAgICAgICAgICAgInJk Zjp0eXBlICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5pZTpkYXRhU291cmNlKD91cm4pICIK KysgICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5hbzpoYXNUYWcgbmFvOnByZWRlZmlu ZWQtdGFnLWZhdm9yaXRlIH0gKSAiCisrICAgICAgICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBu Y286Y29udHJpYnV0b3IgP2NvbnRyaWJ1dG9yIEZJTFRFUiAoID9jb250cmlidXRvciAhPSA/Y3Jl YXRvciApIH0gKSAiCisrICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UobmZvOmZpbGVD cmVhdGVkICg/dXJuKSwgbmllOmNvbnRlbnRDcmVhdGVkICg/dXJuKSkgIgorKyAgICAgICAgICAg ICAgICJuZm86d2lkdGggKD91cm4pICIKKysgICAgICAgICAgICAgICAibmZvOmhlaWdodCAoP3Vy bikgIgorKyAgICAgICAgICAgICAgICJuZm86ZXF1aXBtZW50ICg/dXJuKSAiCisrICAgICAgICAg ICAgICAgIm5mbzpvcmllbnRhdGlvbiAoP3VybikgIgorKyAgICAgICAgICAgICAgICJubW06ZXhw b3N1cmVUaW1lICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5tbTpmbnVtYmVyICg/dXJuKSAi CisrICAgICAgICAgICAgICAgIm5tbTpmb2NhbExlbmd0aCAoP3VybikgIgorKyAgICAgICAgICAg ICAgICJubW06aXNvU3BlZWQgKD91cm4pICIKKysgICAgICAgICAgICAgICAibm1tOmZsYXNoICg/ dXJuKSAiCisrICAgICAgICAgICAgICAgInNsbzpsb2NhdGlvbiAoP3VybikgIjsKKysKKysgIGl0 ZW1fcGF0dGVybiA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3doZXJlIChzdGF0ZS0+aXRlbV9t bmdyLCBmbGFncyk7CisgCisgICBpZiAoIShmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkZJ TFRFUkVEKSkKKyAgICAgeworLSAgICAgIGlmIChnbG9iYWwpCistICAgICAgICB7CistICAgICAg ICAgIC8qIFRPRE86IFNlYXJjaENhdGVnb3J5TWFuYWdlciAqLworLQorLSAgICAgICAgICBpdGVt X21uZ3Jfd2hlcmUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPml0ZW1f bW5nciwgZmxhZ3MpOworLSAgICAgICAgfQorKyAgICAgIHNvdXJjZV9maWx0ZXIgPSBwaG90b3Nf YmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNfbW5nciwgZmxhZ3MpOworKyAgICAg IHNlYXJjaF9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5z cmNoX210Y2hfbW5nciwgZmxhZ3MpOworICAgICB9CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9w cmludGYgKCJXSEVSRSB7ICVzICVzIH0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz cmNoX3R5cF9tbmdyX3doZXJlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbV9t bmdyX3doZXJlICE9IE5VTEwpID8gaXRlbV9tbmdyX3doZXJlIDogIiIpOworLQorLSAgcmV0dXJu IHNwYXJxbDsKKy19CistCistCistc3RhdGljIGdjaGFyICoKKy1waG90b3NfcXVlcnlfYnVpbGRl cl93aGVyZSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2Jvb2xlYW4gZ2xvYmFs LCBnaW50IGZsYWdzKQorLXsKKy0gIGNvbnN0IGdjaGFyICpjb3VudF9pdGVtcyA9ICJDT1VOVCAo P2l0ZW0pIEFTID9jb3VudCI7CistICBnYm9vbGVhbiBpdGVtX2RlZmluZWQ7CistICBnX2F1dG9m cmVlIGdjaGFyICpmaWx0ZXIgPSBOVUxMOworLSAgZ19hdXRvZnJlZSBnY2hhciAqb3B0aW9uYWwg PSBOVUxMOworLSAgZ2NoYXIgKnNwYXJxbDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKndoZXJlX3Nw YXJxbCA9IE5VTEw7CistCistICB3aGVyZV9zcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9p bm5lcl93aGVyZSAoc3RhdGUsIGdsb2JhbCwgZmxhZ3MpOworLSAgaXRlbV9kZWZpbmVkID0gc3Ry c3RyICh3aGVyZV9zcGFycWwsICI/aXRlbSIpICE9IE5VTEw7CistCistICBvcHRpb25hbCA9IHBo b3Rvc19xdWVyeV9idWlsZGVyX29wdGlvbmFsICgpOworLQorLSAgaWYgKCEoZmxhZ3MgJiBQSE9U T1NfUVVFUllfRkxBR1NfVU5GSUxURVJFRCkpCistICAgIGZpbHRlciA9IHBob3Rvc19xdWVyeV9i dWlsZGVyX2ZpbHRlciAoc3RhdGUsIGZsYWdzKTsKKy0KKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3By aW50ZiAoIldIRVJFIHt7IgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIFNFTEVD VCA/dXJuIHJkZjp0eXBlICg/dXJuKSBBUyA/dHlwZSAlcyAlcyBHUk9VUCBCWSAoP3VybikiCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIH0iCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIgICVzICVzIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1fZGVmaW5lZCA/IGNvdW50X2l0ZW1zIDogIiIs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJlX3NwYXJxbCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgb3B0aW9uYWwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IChmaWx0ZXIgIT0gTlVMTCkgPyBmaWx0ZXIgOiAiIik7CistCistICByZXR1cm4gc3BhcnFsOwor LX0KKy0KKy0KKy1zdGF0aWMgZ2NoYXIgKgorLXBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQ aG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnYm9vbGVhbiBnbG9iYWwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQg ZmxhZ3MsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob3Rvc09mZnNldENvbnRyb2xs ZXIgKm9mZnNldF9jbnRybHIpCisteworLSAgZ2NoYXIgKnNwYXJxbDsKKy0gIGdfYXV0b2ZyZWUg Z2NoYXIgKnRhaWxfc3BhcnFsID0gTlVMTDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKndoZXJlX3Nw YXJxbCA9IE5VTEw7CistCistICB3aGVyZV9zcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl93 aGVyZSAoc3RhdGUsIGdsb2JhbCwgZmxhZ3MpOworKyAgb3JkZXIgPSAiT1JERVIgQlkgREVTQyAo P210aW1lKSI7CisgCisgICBpZiAoZ2xvYmFsICYmIChmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFH U19VTkxJTUlURUQpID09IDApCisgICAgIHsKK0BAIC0xNDQsMzUgKzEwOCwxOSBAQCBwaG90b3Nf cXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKKyAg ICAgICAgICAgc3RlcCA9IHBob3Rvc19vZmZzZXRfY29udHJvbGxlcl9nZXRfc3RlcCAob2Zmc2V0 X2NudHJscik7CisgICAgICAgICB9CisgCistICAgICAgdGFpbF9zcGFycWwgPSBnX3N0cmR1cF9w cmludGYgKCJPUkRFUiBCWSBERVNDICg/bXRpbWUpIExJTUlUICVkIE9GRlNFVCAlZCIsIHN0ZXAs IG9mZnNldCk7CisrICAgICAgb2Zmc2V0X2xpbWl0ID0gZ19zdHJkdXBfcHJpbnRmICgiTElNSVQg JWQgT0ZGU0VUICVkIiwgc3RlcCwgb2Zmc2V0KTsKKyAgICAgfQorIAorLSAgc3BhcnFsID0gZ19z dHJjb25jYXQgKCJTRUxFQ1QgP3VybiAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5pZTp1 cmwgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibmZvOmZpbGVOYW1lICg/dXJu KSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5pZTptaW1lVHlwZSAoP3VybikgIgorLSAg ICAgICAgICAgICAgICAgICAgICAgICJuaWU6dGl0bGUgKD91cm4pICIKKy0gICAgICAgICAgICAg ICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5j bzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcnKSAiCistICAgICAgICAgICAgICAgICAgICAgICAg InRyYWNrZXI6Y29hbGVzY2UgKG5mbzpmaWxlTGFzdE1vZGlmaWVkICg/dXJuKSwgbmllOmNvbnRl bnRMYXN0TW9kaWZpZWQgKD91cm4pKSBBUyA/bXRpbWUgIgorLSAgICAgICAgICAgICAgICAgICAg ICAgICJuYW86aWRlbnRpZmllciAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJy ZGY6dHlwZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6ZGF0YVNvdXJj ZSg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBuYW86 aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9ICkgIgorLSAgICAgICAgICAgICAg ICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmNvOmNvbnRyaWJ1dG9yID9jb250cmlidXRvciBG SUxURVIgKCA/Y29udHJpYnV0b3IgIT0gP2NyZWF0b3IgKSB9ICkgIgorLSAgICAgICAgICAgICAg ICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlKG5mbzpmaWxlQ3JlYXRlZCAoP3VybiksIG5pZTpj b250ZW50Q3JlYXRlZCAoP3VybikpICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibmZvOndp ZHRoICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5mbzpoZWlnaHQgKD91cm4p ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibmZvOmVxdWlwbWVudCAoP3VybikgIgorLSAg ICAgICAgICAgICAgICAgICAgICAgICJuZm86b3JpZW50YXRpb24gKD91cm4pICIKKy0gICAgICAg ICAgICAgICAgICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAoP3VybikgIgorLSAgICAgICAgICAg ICAgICAgICAgICAgICJubW06Zm51bWJlciAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAg ICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAi bm1tOmlzb1NwZWVkICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5tbTpmbGFz aCAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJzbG86bG9jYXRpb24gKD91cm4p ICIsCistICAgICAgICAgICAgICAgICAgICAgICAgd2hlcmVfc3BhcnFsLAorLSAgICAgICAgICAg ICAgICAgICAgICAgIHRhaWxfc3BhcnFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwp OworKyAgc3BhcnFsID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3BhcnFsICh0ZW1wbGF0 ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2pl Y3Rpb24iLCBwcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIiLCBjb2xsZWN0aW9uc19kZWZh dWx0X2ZpbHRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0dGVybiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInBob3Rvc19kZWZhdWx0X2ZpbHRlciIsIHBob3Rvc19k ZWZhdWx0X2ZpbHRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIi LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNo X2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVyIDogIiIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmRlciIsIG9yZGVyLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0 Iiwgb2Zmc2V0X2xpbWl0ID8gb2Zmc2V0X2xpbWl0IDogIiIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworIAorICAgcmV0dXJuIHNwYXJxbDsK KyB9CitAQCAtMjMxLDEyICsxNzksMzcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY29sbGVjdGlv bl9pY29uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBjb24KKyBQaG90 b3NRdWVyeSAqCisgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY291bnRfcXVlcnkgKFBob3Rvc1NlYXJj aENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MpCisgeworLSAgUGhvdG9zUXVlcnkgKnF1 ZXJ5OworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRlbXBsYXRlOworKyAgY29uc3QgZ2NoYXIg KnByb2plY3Rpb24gPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0g TlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNlYXJjaF9maWx0ZXIgPSBOVUxMOworKyAgZ19h dXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFy ICpzcGFycWwgPSBOVUxMOworLSAgZ19hdXRvZnJlZSBnY2hhciAqd2hlcmVfc3BhcnFsID0gTlVM TDsKKysgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKysKKysgIHRlbXBsYXRlID0gcGhvdG9zX2Jhc2Vf bWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChzdGF0ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3Mp OworKworKyAgcHJvamVjdGlvbiA9ICJDT1VOVCg/dXJuKSAiOworKworKyAgaXRlbV9wYXR0ZXJu ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdz KTsKKysKKysgIGlmICghIChmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkZJTFRFUkVEKSkK KysgICAgeworKyAgICAgIHNvdXJjZV9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9m aWx0ZXIgKHN0YXRlLT5zcmNfbW5nciwgZmxhZ3MpOworKyAgICAgIHNlYXJjaF9maWx0ZXIgPSBw aG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX210Y2hfbW5nciwgZmxh Z3MpOworKyAgICB9CisrCisrICBzcGFycWwgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9z cGFycWwgKHRlbXBsYXRlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicHJvamVjdGlvbiIsIHByb2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIsIGNv bGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJuIiwgaXRlbV9wYXR0ZXJuLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGhvdG9zX2RlZmF1bHRfZmls dGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAic291cmNlX2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3Vy Y2VfZmlsdGVyIDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAi IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZGVy IiwgIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJv ZmZzZXRfbGltaXQiLCAiIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCk7CisgCistICB3aGVyZV9zcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRl cl93aGVyZSAoc3RhdGUsIFRSVUUsIGZsYWdzKTsKKy0gIHNwYXJxbCA9IGdfc3RyY29uY2F0ICgi U0VMRUNUIERJU1RJTkNUIENPVU5UKD91cm4pICIsIHdoZXJlX3NwYXJxbCwgTlVMTCk7CisgICBx dWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRlLCBzcGFycWwpOworIAorICAgcmV0dXJuIHF1 ZXJ5OworZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUtbWFuYWdlci5jIGIvc3Jj L3Bob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmMKK2luZGV4IDg3ZjQ0MWVkLi41Yzg3ZDRhNCAx MDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUtbWFuYWdlci5jCisrKysgYi9zcmMv cGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuYworQEAgLTQxLDEzICs0MSw2IEBAIHN0cnVjdCBf UGhvdG9zU2VhcmNoVHlwZU1hbmFnZXIKKyBHX0RFRklORV9UWVBFIChQaG90b3NTZWFyY2hUeXBl TWFuYWdlciwgcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXIsIFBIT1RPU19UWVBFX0JBU0VfTUFO QUdFUik7CisgCisgCistc3RhdGljIGNvbnN0IGdjaGFyICpCTEFDS0xJU1RFRF9NSU1FX1RZUEVT W10gPQorLXsKKy0gICJpbWFnZS9naWYiLAorLSAgImltYWdlL3gtZXBzIgorLX07CistCistCisg c3RhdGljIGdjaGFyICoKKyBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfZmlsdGVyIChQ aG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykKKyB7CitAQCAtNjksOSArNjIsOCBA QCBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfZmlsdGVyIChQaG90b3NCYXNlTWFuYWdl ciAqbW5nciwgZ2ludCBmbGFncykKKyAgIHJldHVybiBmaWx0ZXI7CisgfQorIAorLQorLXN0YXRp YyBnY2hhciAqCistcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X3doZXJlIChQaG90b3NC YXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykKKytzdGF0aWMgUGhvdG9zU3BhcnFsVGVtcGxh dGUgKgorK3Bob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKFBo b3Rvc0Jhc2VNYW5hZ2VyICptbmdyLCBnaW50IGZsYWdzKQorIHsKKyAgIEdPYmplY3QgKnNlYXJj aF90eXBlOworIAorQEAgLTg2LDc0ICs3OCwzOSBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdl cl9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2VyICptbmdyLCBnaW50IGZsYWdzKQorICAgZWxz ZQorICAgICBzZWFyY2hfdHlwZSA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X29iamVjdF9ieV9p ZCAobW5nciwgUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0FMTCk7CisgCistICByZXR1cm4gcGhv dG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJlIChQSE9UT1NfRklMVEVSQUJMRSAoc2VhcmNoX3R5cGUp KTsKKysgIHJldHVybiBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoUEhP VE9TX1NFQVJDSF9UWVBFIChzZWFyY2hfdHlwZSkpOworIH0KKyAKKy0KKyBzdGF0aWMgdm9pZAor IHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVNYW5hZ2Vy ICpzZWxmKQorIHsKKyAgIFBob3Rvc1NlYXJjaFR5cGUgKnNlYXJjaF90eXBlOworLSAgZ2NoYXIg Kml0ZW1fZmlsdGVyOworLSAgZ2NoYXIgKmFsbF9maWx0ZXI7CistICBnY2hhciAqYmxhY2tsaXN0 ZWRfbWltZV90eXBlc19maWx0ZXI7CistICBnY2hhciAqY29sX2ZpbHRlcjsKKy0gIGdjaGFyICoq c3RydjsKKy0gIGd1aW50IGk7CistICBndWludCBuX2VsZW1lbnRzOworLQorLSAgbl9lbGVtZW50 cyA9IEdfTl9FTEVNRU5UUyAoQkxBQ0tMSVNURURfTUlNRV9UWVBFUyk7CistICBzdHJ2ID0gKGdj aGFyICoqKSBnX21hbGxvYzBfbiAobl9lbGVtZW50cyArIDEsIHNpemVvZiAoZ2NoYXIgKikpOwor LSAgZm9yIChpID0gMDsgaSA8IG5fZWxlbWVudHM7IGkrKykKKy0gICAgc3RydltpXSA9IGdfc3Ry ZHVwX3ByaW50ZiAoIm5pZTptaW1lVHlwZSg/dXJuKSAhPSAnJXMnIiwgQkxBQ0tMSVNURURfTUlN RV9UWVBFU1tpXSk7CistCistICBibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlciA9IGdfc3Ry am9pbnYgKCIgJiYgIiwgc3Rydik7CistCistICBpdGVtX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50 ZiAoIihmbjpjb250YWlucyAoP3R5cGUsICdubW0jUGhvdG8nKSAmJiAlcykiLCBibGFja2xpc3Rl ZF9taW1lX3R5cGVzX2ZpbHRlcik7CistICBjb2xfZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgi KGZuOmNvbnRhaW5zICg/dHlwZSwgJ25mbyNEYXRhQ29udGFpbmVyJykiCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiICYmID9jb3VudCA+IDAiCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiICYmIChmbjpzdGFydHMtd2l0aCAobmFvOmlkZW50aWZpZXIgKD91cm4p LCAnJXMnKSIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgIHx8ICg/dXJu ID0gbmZvOmltYWdlLWNhdGVnb3J5LXNjcmVlbnNob3QpKSkiLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUEhPVE9TX1FVRVJZX0NPTExFQ1RJT05TX0lERU5USUZJRVIpOworLSAg YWxsX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIiglcyB8fCAlcykiLCBjb2xfZmlsdGVyLCBp dGVtX2ZpbHRlcik7CisgCisgICBzZWFyY2hfdHlwZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9uZXdf ZnVsbCAoUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0FMTCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJBbGwiKSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiP3VybiBhIHJkZnM6UmVzb3VyY2UuICIKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT1BUSU9OQUwgez9pdGVt IGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybn0iLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFsbF9maWx0ZXIpOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZTovLy9vcmcvZ25vbWUvUGhvdG9z L2FsbC5zcGFycWwudGVtcGxhdGUiKTsKKyAgIHBob3Rvc19iYXNlX21hbmFnZXJfYWRkX29iamVj dCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIEdfT0JKRUNUIChzZWFyY2hfdHlwZSkpOwor ICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBlKTsKKyAKKyAgIHNlYXJjaF90eXBlID0gcGhv dG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9UT1NfU0VBUkNIX1RZUEVfU1RPQ0tfQ09MTEVD VElPTlMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi QWxidW1zIiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ij91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4gIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICI/aXRlbSBhIG5tbTpQaG90bzsgbmllOmlzUGFydE9mID91cm4u IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfZmls dGVyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVz b3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rvcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUiKTsK KyAgIHBob3Rvc19iYXNlX21hbmFnZXJfYWRkX29iamVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAo c2VsZiksIEdfT0JKRUNUIChzZWFyY2hfdHlwZSkpOworICAgZ19vYmplY3RfdW5yZWYgKHNlYXJj aF90eXBlKTsKKyAKKyAgIHNlYXJjaF90eXBlID0gcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxs IChQSE9UT1NfU0VBUkNIX1RZUEVfU1RPQ0tfRkFWT1JJVEVTLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkZhdm9yaXRlcyIpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/dXJuIGEgbm1tOlBob3RvOyBuYW86 aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZS4gIiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRl cik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlc291 cmNlOi8vL29yZy9nbm9tZS9QaG90b3MvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSIp OworICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9hZGRfb2JqZWN0IChQSE9UT1NfQkFTRV9NQU5BR0VS IChzZWxmKSwgR19PQkpFQ1QgKHNlYXJjaF90eXBlKSk7CisgICBnX29iamVjdF91bnJlZiAoc2Vh cmNoX3R5cGUpOworIAorICAgc2VhcmNoX3R5cGUgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1 bGwgKFBIT1RPU19TRUFSQ0hfVFlQRV9TVE9DS19QSE9UT1MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiUGhvdG9zIiksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj91cm4gYSBubW06UGhvdG8iLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsYWNrbGlzdGVkX21pbWVf dHlwZXNfZmlsdGVyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rvcy9waG90b3Muc3BhcnFsLnRlbXBsYXRl Iik7CisgICBwaG90b3NfYmFzZV9tYW5hZ2VyX2FkZF9vYmplY3QgKFBIT1RPU19CQVNFX01BTkFH RVIgKHNlbGYpLCBHX09CSkVDVCAoc2VhcmNoX3R5cGUpKTsKKyAgIGdfb2JqZWN0X3VucmVmIChz ZWFyY2hfdHlwZSk7CisgCisgICBwaG90b3NfYmFzZV9tYW5hZ2VyX3NldF9hY3RpdmVfb2JqZWN0 X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgUEhPVE9TX1NFQVJDSF9UWVBFX1NU T0NLX0FMTCk7CistCistICBnX2ZyZWUgKGl0ZW1fZmlsdGVyKTsKKy0gIGdfZnJlZSAoYWxsX2Zp bHRlcik7CistICBnX2ZyZWUgKGJsYWNrbGlzdGVkX21pbWVfdHlwZXNfZmlsdGVyKTsKKy0gIGdf ZnJlZSAoY29sX2ZpbHRlcik7CistICBnX3N0cmZyZWV2IChzdHJ2KTsKKyB9CisgCisgCitAQCAt MTYzLDcgKzEyMCw3IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2NsYXNzX2luaXQgKFBo b3Rvc1NlYXJjaFR5cGVNYW5hZ2VyQ2xhc3MgKmNsYXNzKQorICAgUGhvdG9zQmFzZU1hbmFnZXJD bGFzcyAqYmFzZV9tYW5hZ2VyX2NsYXNzID0gUEhPVE9TX0JBU0VfTUFOQUdFUl9DTEFTUyAoY2xh c3MpOworIAorICAgYmFzZV9tYW5hZ2VyX2NsYXNzLT5nZXRfZmlsdGVyID0gcGhvdG9zX3NlYXJj aF90eXBlX21hbmFnZXJfZ2V0X2ZpbHRlcjsKKy0gIGJhc2VfbWFuYWdlcl9jbGFzcy0+Z2V0X3do ZXJlID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X3doZXJlOworKyAgYmFzZV9tYW5h Z2VyX2NsYXNzLT5nZXRfc3BhcnFsX3RlbXBsYXRlID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFn ZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZTsKKyB9CisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rv cy1zZWFyY2gtdHlwZS5jIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5jCitpbmRleCA0NGRjNjBl Yi4uZjNiYmFlMTUgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLmMKKysrKyBi L3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuYworQEAgLTI1LDI0ICsyNSwyMyBAQAorIAorICNpbmNs dWRlICJwaG90b3MtZmlsdGVyYWJsZS5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLXR5cGUu aCIKKysjaW5jbHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgorIAorIAorIHN0cnVjdCBf UGhvdG9zU2VhcmNoVHlwZQorIHsKKyAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworLSAgZ2No YXIgKmZpbHRlcjsKKyAgIGdjaGFyICppZDsKKyAgIGdjaGFyICpuYW1lOworLSAgZ2NoYXIgKndo ZXJlOworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnNwYXJxbF90ZW1wbGF0ZTsKKyB9OworIAor IGVudW0KKyB7CisgICBQUk9QXzAsCistICBQUk9QX0ZJTFRFUiwKKyAgIFBST1BfSUQsCisgICBQ Uk9QX05BTUUsCistICBQUk9QX1dIRVJFLAorKyAgUFJPUF9TUEFSUUxfVEVNUExBVEUsCisgfTsK KyAKKyBzdGF0aWMgdm9pZCBwaG90b3Nfc2VhcmNoX3R5cGVfZmlsdGVyYWJsZV9pZmFjZV9pbml0 IChQaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlICppZmFjZSk7CitAQCAtNTMsMTQgKzUyLDYgQEAg R19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKFBob3Rvc1NlYXJjaFR5cGUsIHBob3Rvc19zZWFyY2hf dHlwZSwgR19UWVBFX09CSkVDVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwaG90b3Nfc2VhcmNoX3R5cGVfZmlsdGVyYWJsZV9pZmFjZV9pbml0KSk7 CisgCisgCistc3RhdGljIGdjaGFyICoKKy1waG90b3Nfc2VhcmNoX3R5cGVfZ2V0X2ZpbHRlciAo UGhvdG9zRmlsdGVyYWJsZSAqaWZhY2UpCisteworLSAgUGhvdG9zU2VhcmNoVHlwZSAqc2VsZiA9 IFBIT1RPU19TRUFSQ0hfVFlQRSAoaWZhY2UpOworLSAgcmV0dXJuIGdfc3RyZHVwIChzZWxmLT5m aWx0ZXIpOworLX0KKy0KKy0KKyBzdGF0aWMgY29uc3QgZ2NoYXIgKgorIHBob3Rvc19zZWFyY2hf dHlwZV9nZXRfaWQgKFBob3Rvc0ZpbHRlcmFibGUgKmZpbHRlcmFibGUpCisgeworQEAgLTY5LDE0 ICs2MCw2IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfaWQgKFBob3Rvc0ZpbHRlcmFibGUgKmZp bHRlcmFibGUpCisgfQorIAorIAorLXN0YXRpYyBnY2hhciAqCistcGhvdG9zX3NlYXJjaF90eXBl X2dldF93aGVyZSAoUGhvdG9zRmlsdGVyYWJsZSAqaWZhY2UpCisteworLSAgUGhvdG9zU2VhcmNo VHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQRSAoaWZhY2UpOworLSAgcmV0dXJuIGdfc3Ry ZHVwIChzZWxmLT53aGVyZSk7CistfQorLQorLQorIHN0YXRpYyBnYm9vbGVhbgorIHBob3Rvc19z ZWFyY2hfdHlwZV9pc19zZWFyY2hfY3JpdGVyaW9uIChQaG90b3NGaWx0ZXJhYmxlICppZmFjZSkK KyB7CitAQCAtODQsMTUgKzY3LDIwIEBAIHBob3Rvc19zZWFyY2hfdHlwZV9pc19zZWFyY2hfY3Jp dGVyaW9uIChQaG90b3NGaWx0ZXJhYmxlICppZmFjZSkKKyB9CisgCisgCisrUGhvdG9zU3BhcnFs VGVtcGxhdGUgKgorK3Bob3Rvc19zZWFyY2hfdHlwZV9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90 b3NTZWFyY2hUeXBlICpzZWxmKQorK3sKKysgIHJldHVybiBzZWxmLT5zcGFycWxfdGVtcGxhdGU7 CisrfQorKworIHN0YXRpYyB2b2lkCisgcGhvdG9zX3NlYXJjaF90eXBlX2ZpbmFsaXplIChHT2Jq ZWN0ICpvYmplY3QpCisgeworICAgUGhvdG9zU2VhcmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFS Q0hfVFlQRSAob2JqZWN0KTsKKyAKKy0gIGdfZnJlZSAoc2VsZi0+ZmlsdGVyKTsKKyAgIGdfZnJl ZSAoc2VsZi0+aWQpOworICAgZ19mcmVlIChzZWxmLT5uYW1lKTsKKy0gIGdfZnJlZSAoc2VsZi0+ d2hlcmUpOworKyAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5zcGFycWxfdGVtcGxhdGUpOworIAor ICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19zZWFyY2hfdHlwZV9wYXJlbnRfY2xhc3MpLT5maW5h bGl6ZSAob2JqZWN0KTsKKyB9CitAQCAtMTEzLDYgKzEwMSwxMCBAQCBwaG90b3Nfc2VhcmNoX3R5 cGVfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAq dmFsdWUsCisgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nICh2YWx1ZSwgc2VsZi0+bmFtZSk7Cisg ICAgICAgYnJlYWs7CisgCisrICAgIGNhc2UgUFJPUF9TUEFSUUxfVEVNUExBVEU6CisrICAgICAg Z192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwgc2VsZi0+c3BhcnFsX3RlbXBsYXRlKTsKKysgICAg ICBicmVhazsKKysKKyAgICAgZGVmYXVsdDoKKyAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURf UFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgIGJyZWFrOworQEAg LTEyNywxMCArMTE5LDYgQEAgcGhvdG9zX3NlYXJjaF90eXBlX3NldF9wcm9wZXJ0eSAoR09iamVj dCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUgKnYKKyAKKyAgIHN3aXRjaCAo cHJvcF9pZCkKKyAgICAgeworLSAgICBjYXNlIFBST1BfRklMVEVSOgorLSAgICAgIHNlbGYtPmZp bHRlciA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOworLSAgICAgIGJyZWFrOworLQorICAg ICBjYXNlIFBST1BfSUQ6CisgICAgICAgc2VsZi0+aWQgPSBnX3ZhbHVlX2R1cF9zdHJpbmcgKHZh bHVlKTsKKyAgICAgICBicmVhazsKK0BAIC0xMzksOCArMTI3LDggQEAgcGhvdG9zX3NlYXJjaF90 eXBlX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBH VmFsdWUgKnYKKyAgICAgICBzZWxmLT5uYW1lID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7 CisgICAgICAgYnJlYWs7CisgCistICAgIGNhc2UgUFJPUF9XSEVSRToKKy0gICAgICBzZWxmLT53 aGVyZSA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOworKyAgICBjYXNlIFBST1BfU1BBUlFM X1RFTVBMQVRFOgorKyAgICAgIHNlbGYtPnNwYXJxbF90ZW1wbGF0ZSA9IGdfb2JqZWN0X3JlZiAo Z192YWx1ZV9nZXRfb2JqZWN0ICh2YWx1ZSkpOworICAgICAgIGJyZWFrOworIAorICAgICBkZWZh dWx0OgorQEAgLTE2NSwxNCArMTUzLDYgQEAgcGhvdG9zX3NlYXJjaF90eXBlX2NsYXNzX2luaXQg KFBob3Rvc1NlYXJjaFR5cGVDbGFzcyAqY2xhc3MpCisgICBvYmplY3RfY2xhc3MtPmdldF9wcm9w ZXJ0eSA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfcHJvcGVydHk7CisgICBvYmplY3RfY2xhc3Mt PnNldF9wcm9wZXJ0eSA9IHBob3Rvc19zZWFyY2hfdHlwZV9zZXRfcHJvcGVydHk7CisgCistICBn X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0ZJTFRFUiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJmaWx0ZXIiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIodHJ1ZSkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fV1JJVEFCTEUp KTsKKy0KKyAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKG9iamVjdF9jbGFzcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfSUQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nICgiaWQiLAorQEAg LTE5MCwxMSArMTcwLDExIEBAIHBob3Rvc19zZWFyY2hfdHlwZV9jbGFzc19pbml0IChQaG90b3NT ZWFyY2hUeXBlQ2xhc3MgKmNsYXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1f UkVBRFdSSVRFKSk7CisgCisgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChvYmpl Y3RfY2xhc3MsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1dIRVJF LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmlu ZyAoIndoZXJlIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJP UF9TUEFSUUxfVEVNUExBVEUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn X3BhcmFtX3NwZWNfb2JqZWN0ICgic3BhcnFsLXRlbXBsYXRlIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSE9UT1Nf VFlQRV9TUEFSUUxfVEVNUExBVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZIHwgR19QQVJBTV9X UklUQUJMRSkpOworIH0KKyAKK0BAIC0yMDIsOSArMTgyLDcgQEAgcGhvdG9zX3NlYXJjaF90eXBl X2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVDbGFzcyAqY2xhc3MpCisgc3RhdGljIHZvaWQK KyBwaG90b3Nfc2VhcmNoX3R5cGVfZmlsdGVyYWJsZV9pZmFjZV9pbml0IChQaG90b3NGaWx0ZXJh YmxlSW50ZXJmYWNlICppZmFjZSkKKyB7CistICBpZmFjZS0+Z2V0X2ZpbHRlciA9IHBob3Rvc19z ZWFyY2hfdHlwZV9nZXRfZmlsdGVyOworICAgaWZhY2UtPmdldF9pZCA9IHBob3Rvc19zZWFyY2hf dHlwZV9nZXRfaWQ7CistICBpZmFjZS0+Z2V0X3doZXJlID0gcGhvdG9zX3NlYXJjaF90eXBlX2dl dF93aGVyZTsKKyAgIGlmYWNlLT5pc19zZWFyY2hfY3JpdGVyaW9uID0gcGhvdG9zX3NlYXJjaF90 eXBlX2lzX3NlYXJjaF9jcml0ZXJpb247CisgfQorIAorQEAgLTIxNywxMiArMTk1LDEzIEBAIHBo b3Rvc19zZWFyY2hfdHlwZV9uZXcgKGNvbnN0IGdjaGFyICppZCwgY29uc3QgZ2NoYXIgKm5hbWUp CisgCisgCisgUGhvdG9zU2VhcmNoVHlwZSAqCistcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxs IChjb25zdCBnY2hhciAqaWQsIGNvbnN0IGdjaGFyICpuYW1lLCBjb25zdCBnY2hhciAqd2hlcmUs IGNvbnN0IGdjaGFyICpmaWx0ZXIpCisrcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChjb25z dCBnY2hhciAqaWQsIGNvbnN0IGdjaGFyICpuYW1lLCBjb25zdCBnY2hhciAqdGVtcGxhdGVfcGF0 aCkKKyB7CisrICBnX2F1dG9wdHIgKFBob3Rvc1NwYXJxbFRlbXBsYXRlKSB0ZW1wbGF0ZSA9IHBo b3Rvc19zcGFycWxfdGVtcGxhdGVfbmV3ICh0ZW1wbGF0ZV9wYXRoKTsKKysKKyAgIHJldHVybiBn X29iamVjdF9uZXcgKFBIT1RPU19UWVBFX1NFQVJDSF9UWVBFLAorICAgICAgICAgICAgICAgICAg ICAgICAgImlkIiwgaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIsIG5hbWUsCist ICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVyIiwgZmlsdGVyLAorLSAgICAgICAgICAgICAg ICAgICAgICAgIndoZXJlIiwgd2hlcmUsCisrICAgICAgICAgICAgICAgICAgICAgICAic3BhcnFs LXRlbXBsYXRlIiwgdGVtcGxhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyB9 CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5oIGIvc3JjL3Bob3Rvcy1zZWFy Y2gtdHlwZS5oCitpbmRleCAyZjcxMzViZC4uN2Q2OTlkZDQgMTAwNjQ0CistLS0gYS9zcmMvcGhv dG9zLXNlYXJjaC10eXBlLmgKKysrKyBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuaAorQEAgLTI0 LDYgKzI0LDcgQEAKKyAjZGVmaW5lIFBIT1RPU19TRUFSQ0hfVFlQRV9ICisgCisgI2luY2x1ZGUg PGdsaWItb2JqZWN0Lmg+CisrI2luY2x1ZGUgInBob3Rvcy1zcGFycWwtdGVtcGxhdGUuaCIKKyAK KyBHX0JFR0lOX0RFQ0xTCisgCitAQCAtMzksOCArNDAsOSBAQCBQaG90b3NTZWFyY2hUeXBlICAg ICpwaG90b3Nfc2VhcmNoX3R5cGVfbmV3ICAgICAgICAgICAgICAgIChjb25zdCBnY2hhciAqaWQs IGNvbgorIAorIFBob3Rvc1NlYXJjaFR5cGUgICAgKnBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVs bCAgICAgICAgICAgKGNvbnN0IGdjaGFyICppZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqbmFtZSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBnY2hhciAqd2hlcmUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmZpbHRlcik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpOworKworK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICpwaG90 b3Nfc2VhcmNoX3R5cGVfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoUGhvdG9zU2VhcmNoVHlwZSAqc2Vs Zik7CisgCisgR19FTkRfREVDTFMKKyAKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNwYXJxbC10 ZW1wbGF0ZS5jIGIvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYworbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAwLi5iMzI0MzdjMAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3Jj L3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYworQEAgLTAsMCArMSwxODcgQEAKKysvKgorKyAqIFBo b3RvcyAtIGFjY2Vzcywgb3JnYW5pemUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCisr ICogQ29weXJpZ2h0IMKpIDIwMjAgU2FtIFRodXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+Cisr ICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICogdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgKiAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyAqCisrICogVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICog YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisrICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrICovCisrCisr I2luY2x1ZGUgPGdpby9naW8uaD4KKysKKysjaW5jbHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0 ZS5oIgorKworKyNkZWZpbmUgTUFYX1NQQVJRTF9URU1QTEFURV9TSVpFICgxMDI0ICogMTApCisr Cisrc3RydWN0IF9QaG90b3NTcGFycWxUZW1wbGF0ZSB7CisrICBHT2JqZWN0IHBhcmVudF9pbnN0 YW5jZTsKKysgIGdjaGFyICp0ZW1wbGF0ZV9wYXRoOworKyAgZ2NoYXIgKnRlbXBsYXRlX3RleHQ7 CisrfTsKKysKKytHX0RFRklORV9UWVBFIChQaG90b3NTcGFycWxUZW1wbGF0ZSwgcGhvdG9zX3Nw YXJxbF90ZW1wbGF0ZSwgR19UWVBFX09CSkVDVCkKKysKKytlbnVtIHsKKysgIFBST1BfMCwKKysg IFBST1BfVEVNUExBVEVfUEFUSCwKKysgIE5fUFJPUFMKKyt9OworKworK1Bob3Rvc1NwYXJxbFRl bXBsYXRlICoKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX25ldyAoY29uc3QgZ2NoYXIgKnRlbXBs YXRlX3BhdGgpCisreworKyAgcmV0dXJuIGdfb2JqZWN0X25ldyAoUEhPVE9TX1RZUEVfU1BBUlFM X1RFTVBMQVRFLCAidGVtcGxhdGUtcGF0aCIsIHRlbXBsYXRlX3BhdGgsIE5VTEwpOworK30KKysK KytzdGF0aWMgdm9pZAorK3Bob3Rvc19zcGFycWxfdGVtcGxhdGVfY29uc3RydWN0ZWQgKEdPYmpl Y3QgKm9iamVjdCkKKyt7CisrICBQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZiA9IFBIT1RPU19T UEFSUUxfVEVNUExBVEUgKG9iamVjdCk7CisrICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxlID0gTlVM TDsKKysgIGdfYXV0b3B0ciAoR0ZpbGVJbnB1dFN0cmVhbSkgc3RyZWFtID0gTlVMTDsKKysgIGdj aGFyIGJ1ZmZlcltNQVhfU1BBUlFMX1RFTVBMQVRFX1NJWkUgKyAxXTsKKysgIGdzaXplIGJ5dGVz X3JlYWQ7CisrICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworKworKyAgR19PQkpF Q1RfQ0xBU1MgKHBob3Rvc19zcGFycWxfdGVtcGxhdGVfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0 ZWQgKG9iamVjdCk7CisrCisrICBmaWxlID0gZ19maWxlX25ld19mb3JfdXJpIChzZWxmLT50ZW1w bGF0ZV9wYXRoKTsKKysKKysgIHN0cmVhbSA9IGdfZmlsZV9yZWFkIChmaWxlLCBOVUxMLCAmZXJy b3IpOworKworKyAgaWYgKCFzdHJlYW0pCisrICAgIHsKKysgICAgICBnX2NyaXRpY2FsICgiRmFp bGVkIHRvIG9wZW4gdGVtcGxhdGUgJXM6ICVzIiwgc2VsZi0+dGVtcGxhdGVfcGF0aCwgZXJyb3It Pm1lc3NhZ2UpOworKyAgICB9CisrCisrICBnX2lucHV0X3N0cmVhbV9yZWFkX2FsbCAoR19JTlBV VF9TVFJFQU0gKHN0cmVhbSksIGJ1ZmZlciwgTUFYX1NQQVJRTF9URU1QTEFURV9TSVpFLCAmYnl0 ZXNfcmVhZCwgTlVMTCwgJmVycm9yKTsKKysKKysgIGlmIChlcnJvcikKKysgICAgeworKyAgICAg IGdfY3JpdGljYWwgKCJGYWlsZWQgdG8gcmVhZCB0ZW1wbGF0ZSAlczogJXMiLCBzZWxmLT50ZW1w bGF0ZV9wYXRoLCBlcnJvci0+bWVzc2FnZSk7CisrICAgIH0KKysKKysgIGJ1ZmZlcltieXRlc19y ZWFkXSA9ICdcMCc7CisrCisrICBzZWxmLT50ZW1wbGF0ZV90ZXh0ICA9IGdfc3RyZHVwIChidWZm ZXIpOworK30KKysKKytzdGF0aWMgdm9pZAorK3Bob3Rvc19zcGFycWxfdGVtcGxhdGVfZmluYWxp emUgKEdPYmplY3QgKm9iamVjdCkKKyt7CisrICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3NwYXJx bF90ZW1wbGF0ZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKKyt9CisrCisrc3Rh dGljIHZvaWQKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9wcm9wZXJ0eSAoR09iamVjdCAg ICAqb2JqZWN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAg ICAgICBwcm9wX2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFs dWUgICAgICp2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1Bh cmFtU3BlYyAqcHNwZWMpCisreworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnNlbGYgPSBQSE9U T1NfU1BBUlFMX1RFTVBMQVRFIChvYmplY3QpOworKworKyAgc3dpdGNoIChwcm9wX2lkKQorKyAg ICB7CisrICAgIGNhc2UgUFJPUF9URU1QTEFURV9QQVRIOgorKyAgICAgIGdfdmFsdWVfc2V0X3N0 cmluZyAodmFsdWUsIHNlbGYtPnRlbXBsYXRlX3BhdGgpOworKyAgICAgIGJyZWFrOworKworKyAg ICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2Jq ZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKytwaG90 b3Nfc3BhcnFsX3RlbXBsYXRlX3NldF9wcm9wZXJ0eSAoR09iamVjdCAgICAgICpvYmplY3QsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgcHJvcF9p ZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1ZhbHVlICp2 YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAg ICpwc3BlYykKKyt7CisrICBQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZiA9IFBIT1RPU19TUEFS UUxfVEVNUExBVEUgKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpCisrICAgIHsKKysg ICAgY2FzZSBQUk9QX1RFTVBMQVRFX1BBVEg6CisrICAgICAgc2VsZi0+dGVtcGxhdGVfcGF0aCA9 IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOworKyAgICAgIGJyZWFrOworKworKyAgICBkZWZh dWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBw cm9wX2lkLCBwc3BlYyk7CisrICAgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKytwaG90b3Nfc3Bh cnFsX3RlbXBsYXRlX2NsYXNzX2luaXQgKFBob3Rvc1NwYXJxbFRlbXBsYXRlQ2xhc3MgKmtsYXNz KQorK3sKKysgIEdPYmplY3RDbGFzcyAqb2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKGts YXNzKTsKKysKKysgIG9iamVjdF9jbGFzcy0+Y29uc3RydWN0ZWQgPSBwaG90b3Nfc3BhcnFsX3Rl bXBsYXRlX2NvbnN0cnVjdGVkOworKyAgb2JqZWN0X2NsYXNzLT5maW5hbGl6ZSA9IHBob3Rvc19z cGFycWxfdGVtcGxhdGVfZmluYWxpemU7CisrICBvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9 IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3Byb3BlcnR5OworKyAgb2JqZWN0X2NsYXNzLT5z ZXRfcHJvcGVydHkgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX3NldF9wcm9wZXJ0eTsKKysKKysg IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKG9iamVjdF9jbGFzcywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfVEVNUExBVEVfUEFUSCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJ0ZW1wbGF0 ZS1wYXRoIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJUZW1wbGF0ZSBwYXRoIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXRoIHRvIHRoZSB0ZW1wbGF0ZSBmaWxlLiIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fUkVBRFdSSVRFKSk7Cisr fQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9pbml0IChQaG90b3NT cGFycWxUZW1wbGF0ZSAqc2VsZikKKyt7CisrfQorKworKworK2djaGFyICoKKytwaG90b3Nfc3Bh cnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKFBob3Rvc1NwYXJxbFRlbXBsYXRlICpzZWxmLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKmZp cnN0X2JpbmRpbmdfbmFtZSwgLi4uKQorK3sKKysgIHZhX2xpc3QgdmE7CisrICBnY2hhciAqc3Bh cnFsOworKworKyAgc3BhcnFsID0gc2VsZi0+dGVtcGxhdGVfdGV4dDsKKysKKysgIC8qIEZJWE1F OiB0aGlzIGlzIGFuIGluZWZmaWNlbnQgd2F5IHRvIGRvIHRlbXBsYXRlIHN1YnN0aXR1dGlvbnMK KysgICAqIGJlY2F1c2Ugd2UgYWxsb2NhdGUgYW5kIGZyZWUgYSBjb3B5IG9mIHRoZSBzdHJpbmcg Zm9yIGVhY2ggYmluZGluZy4KKysgICAqIFdlIHNob3VsZCBjaGVjayBodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvdGVtcGxhdGUtZ2xpYi8KKysgICAqLworKyAgaWYgKGZpcnN0X2JpbmRp bmdfbmFtZSkKKysgICAgeworKyAgICAgIEdSZWdleCAqcmVnZXg7CisrICAgICAgZ2NoYXIgKm5h bWVfcmVnZXg7CisrICAgICAgY29uc3QgZ2NoYXIgKm5hbWU7CisrICAgICAgY29uc3QgZ2NoYXIg KnZhbHVlOworKworKyAgICAgIHZhX3N0YXJ0ICh2YSwgZmlyc3RfYmluZGluZ19uYW1lKTsKKysg ICAgICBuYW1lID0gZmlyc3RfYmluZGluZ19uYW1lOworKyAgICAgIGRvIHsKKysgICAgICAgIHZh bHVlID0gdmFfYXJnICh2YSwgY29uc3QgZ2NoYXIgKik7CisrCisrICAgICAgICBpZiAodmFsdWUg PT0gTlVMTCkKKysgICAgICAgICAgeworKyAgICAgICAgICAgIGdfY3JpdGljYWwgKCJNaXNzaW5n IHZhbHVlIGZvciBhcmd1bWVudCBcIiVzXCIiLCBuYW1lKTsKKysgICAgICAgICAgICBicmVhazsK KysgICAgICAgICAgfQorKworKyAgICAgICAgbmFtZV9yZWdleCA9IGdfc3RyZHVwX3ByaW50ZiAo Int7XFxzPyVzXFxzP319IiwgbmFtZSk7CisrICAgICAgICByZWdleCA9IGdfcmVnZXhfbmV3IChu YW1lX3JlZ2V4LCAwLCAwLCBOVUxMKTsKKysgICAgICAgIHNwYXJxbCA9IGdfcmVnZXhfcmVwbGFj ZV9saXRlcmFsIChyZWdleCwgc3BhcnFsLCAtMSwgMCwgdmFsdWUsIDAsIE5VTEwpIDsKKysgICAg ICB9IHdoaWxlICgobmFtZSA9IHZhX2FyZyAodmEsIGNvbnN0IGdjaGFyICopKSk7CisrCisrICAg ICAgdmFfZW5kICh2YSk7CisrICAgIH0KKysKKysgIHJldHVybiBzcGFycWw7CisrfQorZGlmZiAt LWdpdCBhL3NyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmggYi9zcmMvcGhvdG9zLXNwYXJxbC10 ZW1wbGF0ZS5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjY2MzUxYjM4 CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oCitAQCAt MCwwICsxLDM4IEBACisrLyoKKysgKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFy ZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorKyAqIENvcHlyaWdodCDCqSAyMDIwIFNhbSBUaHVyc2Zp ZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisrICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAq IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorKyAqLworKworKyNwcmFnbWEgb25jZQorKworKyNpbmNsdWRlIDxnbGli LW9iamVjdC5oPgorKworK0dfQkVHSU5fREVDTFMKKysKKysjZGVmaW5lIFBIT1RPU19UWVBFX1NQ QVJRTF9URU1QTEFURSAocGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfdHlwZSgpKQorKworK0df REVDTEFSRV9GSU5BTF9UWVBFIChQaG90b3NTcGFycWxUZW1wbGF0ZSwgcGhvdG9zX3NwYXJxbF90 ZW1wbGF0ZSwgUEhPVE9TLCBTUEFSUUxfVEVNUExBVEUsIEdPYmplY3QpCisrCisrc3RydWN0IF9Q aG90b3NTcGFycWxUZW1wbGF0ZUNsYXNzCisreworKyAgR09iamVjdENsYXNzIHBhcmVudF9jbGFz czsKKyt9OworKworK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICpwaG90b3Nfc3BhcnFsX3RlbXBsYXRl X25ldyAoY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpOworKworK2djaGFyICpwaG90b3Nfc3Bh cnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKFBob3Rvc1NwYXJxbFRlbXBsYXRlICpzZWxmLCBjb25z dCBnY2hhciAqZmlyc3RfYmluZGluZ19uYW1lLCAuLi4pICBHX0dOVUNfTlVMTF9URVJNSU5BVEVE OworKworK0dfRU5EX0RFQ0xTCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1s IGIvc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sCitpbmRleCAxMDE1YjExZC4uMzllNmQ4NDIgMTAw NjQ0CistLS0gYS9zcmMvcGhvdG9zLmdyZXNvdXJjZS54bWwKKysrKyBiL3NyYy9waG90b3MuZ3Jl c291cmNlLnhtbAorQEAgLTM1LDYgKzM1LDEwIEBACisgICAgIDxmaWxlIGFsaWFzPSJzZWxlY3Rp b24tdG9vbGJhci51aSIgcHJlcHJvY2Vzcz0ieG1sLXN0cmlwYmxhbmtzIiBjb21wcmVzc2VkPSJ0 cnVlIj5waG90b3Mtc2VsZWN0aW9uLXRvb2xiYXIudWk8L2ZpbGU+CisgICAgIDxmaWxlIGFsaWFz PSJzaGFyZS1kaWFsb2cudWkiIHByZXByb2Nlc3M9InhtbC1zdHJpcGJsYW5rcyIgY29tcHJlc3Nl ZD0idHJ1ZSI+cGhvdG9zLXNoYXJlLWRpYWxvZy51aTwvZmlsZT4KKyAgICAgPGZpbGUgYWxpYXM9 Inpvb20tY29udHJvbHMudWkiIHByZXByb2Nlc3M9InhtbC1zdHJpcGJsYW5rcyIgY29tcHJlc3Nl ZD0idHJ1ZSI+cGhvdG9zLXpvb20tY29udHJvbHMudWk8L2ZpbGU+CisrICAgIDxmaWxlIGFsaWFz PSJhbGwuc3BhcnFsLnRlbXBsYXRlIj5xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGU8L2ZpbGU+ CisrICAgIDxmaWxlIGFsaWFzPSJjb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUiPnF1ZXJpZXMv Y29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlPC9maWxlPgorKyAgICA8ZmlsZSBhbGlhcz0iZmF2 b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSI+cXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3Bh cnFsLnRlbXBsYXRlPC9maWxlPgorKyAgICA8ZmlsZSBhbGlhcz0icGhvdG9zLnNwYXJxbC50ZW1w bGF0ZSI+cXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlPC9maWxlPgorICAgPC9ncmVzb3Vy Y2U+CisgCisgICA8Z3Jlc291cmNlIHByZWZpeD0iL29yZy9nbm9tZS9QaG90b3MvZ3RrIj4KK2Rp ZmYgLS1naXQgYS9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMv YWxsLnNwYXJxbC50ZW1wbGF0ZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw Li4xY2VmOThlOAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50 ZW1wbGF0ZQorQEAgLTAsMCArMSwzMSBAQAorK1NFTEVDVCB7e3Byb2plY3Rpb259fQorK3sKKysg ICAgeworKyAgICAgICAgU0VMRUNUIHt7cHJvamVjdGlvbn19CisrICAgICAgICB7CisrICAgICAg ICAgICAgeworKyAgICAgICAgICAgICAgICBTRUxFQ1QgP3VybiBDT1VOVCg/aXRlbSkgQVMgP2Nv dW50CisrICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgICAgID91cm4gYSBuZm86 RGF0YUNvbnRhaW5lci4KKysgICAgICAgICAgICAgICAgICAgID9pdGVtIGEgbm1tOlBob3RvOyBu aWU6aXNQYXJ0T2YgP3Vybi4KKysgICAgICAgICAgICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAg ICAgICAgICAgfQorKyAgICAgICAgICAgIEZJTFRFUiAoP2NvdW50ID4gMCAmJiB7e2NvbGxlY3Rp b25zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAgICAgICB9Cisr ICAgICAgICBHUk9VUCBCWSA/dXJuCisrICAgIH0KKysgICAgVU5JT04KKysgICAgeworKyAgICAg ICAgU0VMRUNUIHt7cHJvamVjdGlvbn19CisrICAgICAgICB7CisrICAgICAgICAgICAgP3VybiBh IG5tbTpQaG90byAuCisrICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9j cmVhdG9yIC4gfQorKyAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9w dWJsaXNoZXIgLiB9CisrICAgICAgICAgICAge3tpdGVtX3BhdHRlcm59fQorKyAgICAgICAgICAg IEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAm JiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysgICAgICAgIH0KKysgICAgICAgIEdST1VQIEJZID91cm4K KysgICAgfQorK30KKyt7e29yZGVyfX0KKyt7e29mZnNldF9saW1pdH19CitkaWZmIC0tZ2l0IGEv c3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvY29s bGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAuLjIwYjM1Y2Q2CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvcXVlcmllcy9jb2xsZWN0 aW9ucy5zcGFycWwudGVtcGxhdGUKK0BAIC0wLDAgKzEsMTQgQEAKKytTRUxFQ1Qge3twcm9qZWN0 aW9ufX0KKyt7CisrICAgIHsKKysgICAgICAgIFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/ Y291bnQKKysgICAgICAgIHsKKysgICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIu CisrICAgICAgICAgICAgP2l0ZW0gYSBubW06UGhvdG87IG5pZTppc1BhcnRPZiA/dXJuLgorKyAg ICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAgIH0KKysgICAgRklMVEVSICg/Y291bnQgPiAwICYm IHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKyt9 CisrR1JPVVAgQlkgP3VybgorK3t7b3JkZXJ9fQorK3t7b2Zmc2V0X2xpbWl0fX0KK2RpZmYgLS1n aXQgYS9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1 ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwLi4wODg1YTA4YQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3F1 ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTAsMCArMSwxMiBAQAor K1NFTEVDVCB7e3Byb2plY3Rpb259fQorK3sKKysgICAgP3VybiBhIG5tbTpQaG90byAuCisrICAg ID91cm4gYSBubW06UGhvdG87IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRl IC4KKysgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9yIC4gfQorKyAgICBP UFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQorKyAgICB7e2l0ZW1f cGF0dGVybn19CisrICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3Nv dXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKyt9CisrR1JPVVAgQlkgP3Vybgor K3t7b3JkZXJ9fQorK3t7b2Zmc2V0X2xpbWl0fX0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9w aG90b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0 ZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi40ZWIxMGI3NAorLS0tIC9k ZXYvbnVsbAorKysrIGIvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTAs MCArMSwxMSBAQAorK1NFTEVDVCB7e3Byb2plY3Rpb259fQorK3sKKysgICAgP3VybiBhIG5tbTpQ aG90byAuCisrICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysg ICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0KKysgICAge3tp dGVtX3BhdHRlcm59fQorKyAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYg e3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrfQorK0dST1VQIEJZID91 cm4KKyt7e29yZGVyfX0KKyt7e29mZnNldF9saW1pdH19CistLSAKK0dpdExhYgorCisKK0Zyb20g ZDYxZDQ0MGVmZTM0MGJkYTRlMTk1ZDY0MDA2NmZiMjkyMjBkMGNiNSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFNhbSBUaHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorRGF0ZTog U2F0LCAyMyBNYXkgMjAyMCAxMzozNjoyNSArMDIwMAorU3ViamVjdDogW1BBVENIIDQvNF0gUG9y dCB0byBUcmFja2VyIDMKKworTm90YWJsZSBjaGFuZ2VzOgorCisgICogVXNlciBkYXRhIChmYXZv dXJpdGVzLCBhbGJ1bXMpIGlzIG5vdyBzdG9yZWQgaW4gYSBwcml2YXRlIGRhdGFiYXNlIGluCisg ICAgfi8ubG9jYWwvc2hhcmUvZ25vbWUtcGhvdG9zLiBUaGlzIGlzIGNvbWJpbmVkIHdpdGggdGhl IFRyYWNrZXIgTWluZXIKKyAgICBGUyBpbmRleCBvZiBwaG90b3MgYXQgcXVlcnkgdGltZS4KKyAg KiBJbnNpZGUgRmxhdHBhaywgdGhlIGFwcCBjb25uZWN0cyB0byBUcmFja2VyIHZpYSB0aGUgbmV3 CisgICAgeGRnLXRyYWNrZXItcG9ydGFsIGluc3RlYWQgb2YgdGFsa2luZyBkaXJlY3RseSBvdmVy IEQtQnVzLiBBY2Nlc3MgaXMKKyAgICBsaW1pdGVkIGJ5IHRoZSBwb3J0YWwgc28gdGhlIGFwcCBj YW4gb25seSBzZWUgdGhlIFBpY3R1cmVzIGdyYXBoLgorICAqIFRoZSBGbGF0cGFrIGJ1aWxkIGNh biB1c2UgYSBidW5kbGVkIHZlcnNpb24gb2YgVHJhY2tlciBNaW5lcnMsIGlmIGEKKyAgICBzdWl0 YWJsZSB2ZXJzaW9uIGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIGhvc3QuCisgICogQ2hhbmdlIGRl dGVjdGlvbiBpcyBkb25lIHVzaW5nIFRyYWNrZXJOb3RpZmllciBpbnN0ZWFkIG9mIHdhdGNoaW5n CisgICAgdGhlIEdyYXBoVXBkYXRlZCBELUJ1cyBzaWduYWwgZGlyZWN0bHkuCisKK0Nsb3NlcyBo dHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtcGhvdG9zLy0vaXNzdWVzLzU5CitD bG9zZXMgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXBob3Rvcy8tL2lzc3Vl cy8xNTIKKy0tLQorIGRhdGEvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArCisgZGF0YS90cmFja2VyL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAg IHwgIDMzICsrCisgLi4uZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmlu IHwgICA3ICsKKyAuLi5vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4g fCAgIDcgKworIGRhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluICB8 ICAyMCArCisgZmxhdHBhay9vcmcuZ25vbWUuUGhvdG9zLmpzb24gICAgICAgICAgICAgICAgIHwg IDU1ICstCisgbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAzICstCisgc3JjL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDE5ICstCisgLi4uZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sIHwg IDExICsKKyBzcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnhtbCAgICAgICAgfCAg NTYgKysrCisgc3JjL3Bob3Rvcy1hcHBsaWNhdGlvbi5jICAgICAgICAgICAgICAgICAgICAgIHwg MTg0ICsrKy0tLS0KKyBzcmMvcGhvdG9zLWJhc2UtaXRlbS5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMTggKy0KKyBzcmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlvbi5jICAgICAgICAg ICAgfCAgNTMgKy0KKyBzcmMvcGhvdG9zLWl0ZW0tbWFuYWdlci5jICAgICAgICAgICAgICAgICAg ICAgfCAgNjkgKy0tCisgc3JjL3Bob3Rvcy1xdWFya3MuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIwICstCisgc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMgICAgICAgICAgICAgICAg ICAgIHwgMTQ4ICsrKystLQorIHNyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuYyAgICAgICAgICAg ICAgICAgICB8ICAgMyArCisgc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5oICAgICAgICAgICAg ICAgICAgIHwgICAxICsKKyBzcmMvcGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMgICAgICAg ICAgICAgfCAgIDIgKy0KKyBzcmMvcGhvdG9zLXNvdXJjZS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTQgKy0KKyBzcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmMgICAgICAg ICAgICAgfCAxMzYgLS0tLS0KKyBzcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmggICAg ICAgICAgICAgfCAgNjQgLS0tCisgc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmMg ICAgICAgICAgIHwgNDY4IC0tLS0tLS0tLS0tLS0tLS0tLQorIHNyYy9waG90b3MtdHJhY2tlci1j aGFuZ2UtbW9uaXRvci5oICAgICAgICAgICB8ICA0MiAtLQorIHNyYy9waG90b3MtdHJhY2tlci1j b250cm9sbGVyLmMgICAgICAgICAgICAgICB8ICAxMiArLQorIHNyYy9waG90b3MtdHJhY2tlci1l eHRyYWN0LXByaW9yaXR5LnhtbCAgICAgICB8ICAgMiArLQorIHNyYy9waG90b3MtdHJhY2tlci1p bXBvcnQtY29udHJvbGxlci5jICAgICAgICB8ICA4NSArKy0tCisgc3JjL3Bob3Rvcy10cmFja2Vy LXF1ZXVlLmMgICAgICAgICAgICAgICAgICAgIHwgMjA2ICsrKysrKystCisgc3JjL3Bob3Rvcy10 cmFja2VyLXF1ZXVlLmggICAgICAgICAgICAgICAgICAgIHwgICA3ICsKKyBzcmMvcGhvdG9zLXRy YWNrZXItcmVzb3VyY2VzLnhtbCAgICAgICAgICAgICAgfCAgMzEgLS0KKyBzcmMvcGhvdG9zLXV0 aWxzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKy0KKyBzcmMvcGhvdG9zLXV0 aWxzLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKyBzcmMvcXVlcmllcy9h bGwuc3BhcnFsLnRlbXBsYXRlICAgICAgICAgICAgICAgfCAgMzQgKy0KKyBzcmMvcXVlcmllcy9j b2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUgICAgICAgfCAgMjAgKy0KKyBzcmMvcXVlcmllcy9m YXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlICAgfCAgMjAgKy0KKyBzcmMvcXVlcmllcy9w aG90b3Muc3BhcnFsLnRlbXBsYXRlICAgICAgICAgICAgfCAgMjIgKy0KKyAzNiBmaWxlcyBjaGFu Z2VkLCA3NTQgaW5zZXJ0aW9ucygrKSwgMTE0NiBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAx MDA2NDQgZGF0YS90cmFja2VyL21lc29uLmJ1aWxkCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEv dHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5p bgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFj a2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlLmluCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEvdHJh Y2tlci9vcmcuZ25vbWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1sCisg ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuYworIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmgKKyBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmMKKyBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmgKKyBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10cmFja2VyLXJlc291cmNlcy54bWwKKworZGlmZiAt LWdpdCBhL2RhdGEvbWVzb24uYnVpbGQgYi9kYXRhL21lc29uLmJ1aWxkCitpbmRleCA3ODk4YjBj Yy4uZjBkODVkNGIgMTAwNjQ0CistLS0gYS9kYXRhL21lc29uLmJ1aWxkCisrKysgYi9kYXRhL21l c29uLmJ1aWxkCitAQCAtNTQsMyArNTQsNSBAQCBpbnN0YWxsX2RhdGEoCisgICBwaG90b3NfbmFt ZXNwYWNlLnRvX2xvd2VyKCkgKyAnLmdzY2hlbWEueG1sJywKKyAgIGluc3RhbGxfZGlyOiBqb2lu X3BhdGhzKHBob3Rvc19kYXRhZGlyLCAnZ2xpYi0yLjAnLCAnc2NoZW1hcycpLAorICkKKysKKytz dWJkaXIoJ3RyYWNrZXInKQorZGlmZiAtLWdpdCBhL2RhdGEvdHJhY2tlci9tZXNvbi5idWlsZCBi L2RhdGEvdHJhY2tlci9tZXNvbi5idWlsZAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAw MDAwMDAwLi5hY2NjOTljMgorLS0tIC9kZXYvbnVsbAorKysrIGIvZGF0YS90cmFja2VyL21lc29u LmJ1aWxkCitAQCAtMCwwICsxLDMzIEBACisrIyBGaWxlcyBuZWVkZWQgZm9yIHJ1bm5pbmcgVHJh Y2tlciBpbnNpZGUgdGhlIEZsYXRwYWsgc2FuZGJveCwgZm9yIHN5c3RlbXMKKysjIHdoaWNoIGRv bid0IGhhdmUgYSBzdWl0YWJsZSB2ZXJzaW9uIG9mIFRyYWNrZXIgaW4gdGhlIGhvc3QgT1MuCisr IworKyMgV2UgbXVzdCBleHBvcnQgdGhlIC5zZXJ2aWNlIGZpbGVzIGZyb20gdGhlIHNhbmRib3gg c28gdGhleSB3b3JrIG9uIHRoZQorKyMgc2Vzc2lvbiBidXMuIFRoaXMgbWVhbnMgdGhlIFRyYWNr ZXIgZG9tYWluIG5hbWUgbXVzdCBjb3JyZXNwb25kIHdpdGggdGhlCisrIyBhcHBsaWNhdGlvbiBJ RC4KKysKKysKKytkb21haW5fb250b2xvZ2llc19kaXIgPSBnZXRfb3B0aW9uKCdkYXRhZGlyJykg LyAndHJhY2tlcjMnIC8gJ2RvbWFpbi1vbnRvbG9naWVzJworK2RidXNfc2VydmljZXNfZGlyID0g Z2V0X29wdGlvbignZGF0YWRpcicpIC8gJ2RidXMtMScgLyAnc2VydmljZXMnCisrCisrdHJhY2tl cl9kb21haW5fY29uZmlnID0gY29uZmlndXJhdGlvbl9kYXRhKCkKKyt0cmFja2VyX2RvbWFpbl9j b25maWcuc2V0KCdhcHBsaWNhdGlvbl9pZCcsIHBob3Rvc19uYW1lc3BhY2UpCisrdHJhY2tlcl9k b21haW5fY29uZmlnLnNldCgnZG9tYWluX3J1bGUnLCBnZXRfb3B0aW9uKCdwcmVmaXgnKSAvIGRv bWFpbl9vbnRvbG9naWVzX2RpciAvIHBob3Rvc19uYW1lc3BhY2UgKyAnLmRvbWFpbi5ydWxlJykK KysKKytjb25maWd1cmVfZmlsZSgKKysgIGlucHV0OiAnb3JnLmdub21lLlBob3Rvcy5kb21haW4u cnVsZS5pbicsCisrICBvdXRwdXQ6IHBob3Rvc19uYW1lc3BhY2UgKyAnLmRvbWFpbi5ydWxlJywK KysgIGNvbmZpZ3VyYXRpb246IHRyYWNrZXJfZG9tYWluX2NvbmZpZywKKysgIGluc3RhbGxfZGly OiBkb21haW5fb250b2xvZ2llc19kaXIpCisrCisrY29uZmlndXJlX2ZpbGUoCisrICBpbnB1dDog J29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluJywKKysg IG91dHB1dDogcGhvdG9zX25hbWVzcGFjZSArICcuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2 aWNlJywKKysgIGNvbmZpZ3VyYXRpb246IHRyYWNrZXJfZG9tYWluX2NvbmZpZywKKysgIGluc3Rh bGxfZGlyOiBkYnVzX3NlcnZpY2VzX2RpcikKKysKKytjb25maWd1cmVfZmlsZSgKKysgIGlucHV0 OiAnb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlLmluJywKKysg IG91dHB1dDogcGhvdG9zX25hbWVzcGFjZSArICcuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2Vydmlj ZScsCisrICBjb25maWd1cmF0aW9uOiB0cmFja2VyX2RvbWFpbl9jb25maWcsCisrICBpbnN0YWxs X2RpcjogZGJ1c19zZXJ2aWNlc19kaXIpCisrCitkaWZmIC0tZ2l0IGEvZGF0YS90cmFja2VyL29y Zy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluIGIvZGF0YS90 cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmlu CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLmViN2E4N2FhCistLS0gL2Rl di9udWxsCisrKysgYi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5l ci5FeHRyYWN0LnNlcnZpY2UuaW4KK0BAIC0wLDAgKzEsNyBAQAorK1tELUJVUyBTZXJ2aWNlXQor K05hbWU9QGFwcGxpY2F0aW9uX2lkQC5UcmFja2VyMy5NaW5lci5FeHRyYWN0CisrRXhlYz0vYXBw L2xpYmV4ZWMvdHJhY2tlci1leHRyYWN0LTMgLS1kb21haW4tb250b2xvZ3kgQGRvbWFpbl9ydWxl QAorKworKyMgTWluZXIgZGV0YWlscyBuZWVkZWQgZm9yIHRyYWNrZXItY29udHJvbAorK1BhdGg9 L29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9NaW5lci9FeHRyYWN0CisrTmFtZVN1ZmZpeD1NaW5l ci5GaWxlcworZGlmZiAtLWdpdCBhL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNr ZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4gYi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rv cy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAuLjRmYTczNzFkCistLS0gL2Rldi9udWxsCisrKysgYi9kYXRhL3RyYWNr ZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlLmluCitAQCAt MCwwICsxLDcgQEAKKytbRC1CVVMgU2VydmljZV0KKytOYW1lPUBhcHBsaWNhdGlvbl9pZEAuVHJh Y2tlcjMuTWluZXIuRmlsZXMKKytFeGVjPS9hcHAvbGliZXhlYy90cmFja2VyLW1pbmVyLWZzLTMg LS1kb21haW4tb250b2xvZ3kgQGRvbWFpbl9ydWxlQCAtLWluaXRpYWwtc2xlZXAgMAorKworKyMg TWluZXIgZGV0YWlscyBuZWVkZWQgZm9yIHRyYWNrZXItY29udHJvbAorK1BhdGg9L29yZy9mcmVl ZGVza3RvcC9UcmFja2VyMy9NaW5lci9GaWxlcworK05hbWVTdWZmaXg9TWluZXIuRmlsZXMKK2Rp ZmYgLS1naXQgYS9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5kb21haW4ucnVsZS5pbiBi L2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjhmNWZjNGExCistLS0gL2Rldi9udWxsCisrKysg Yi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5kb21haW4ucnVsZS5pbgorQEAgLTAsMCAr MSwyMCBAQAorKyMgVGhpcyBkZWZpbmVzIGEgcHJpdmF0ZSBUcmFja2VyIGRvbWFpbiBmb3IgR05P TUUgUGhvdG9zLgorKyMKKysjIEl0J3MgdXNlZCB0byBydW4gdGhlIFRyYWNrZXIgaW5kZXhlciBp bnNpZGUgYSBGbGF0cGFrIHNhbmRib3gsIHdoZW4gUGhvdG9zIGlzCisrIyBydW5uaW5nIG9uIGEg aG9zdCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHN1aXRhYmxlIHZlcnNpb24gb2YgVHJhY2tlciBpbnN0 YWxsZWQuCisrCisrW0RvbWFpbk9udG9sb2d5XQorKyMgTG9jYXRpb24gZm9yIHRoZSBUcmFja2Vy IGRhdGFiYXNlCisrQ2FjaGVMb2NhdGlvbj0kWERHX0NBQ0hFX0hPTUUvZ25vbWUtcGhvdG9zL21p bmVyL2ZpbGVzCisrCisrIyBOYW1lIG9mIHRoZSBvbnRvbG9neSB0byB1c2UsIG11c3QgYmUgb25l IGxvY2F0ZWQgaW4KKysjICQoc2hhcmVkaXIpL3RyYWNrZXIvb250b2xvZ2llcworK09udG9sb2d5 TmFtZT1uZXBvbXVrCisrCisrIyBEQnVzIG5hbWUgZm9yIHRoZSBvd25lciAobm90IG9wdGlvbmFs KS4gVHJhY2tlciB3aWxsIHVzZQorKyMgdGhlIGRvbWFpbiBhcyB0aGUgcHJlZml4IG9mIHRoZSBE QnVzIG5hbWUgZm9yIGFsbCB0aGUKKysjIHNlcnZpY2VzIHJlbGF0ZWQgdG8gdGhpcyBkb21haW4g b250b2xvZ3kuCisrRG9tYWluPUBhcHBsaWNhdGlvbl9pZEAKKysKKysjIExpc3Qgb2YgbWluZXJz IHdlIGV4cGVjdCB0byBydW4gaW4gdGhpcyBkb21haW4uCisrTWluZXJzPU1pbmVyLkZpbGVzO01p bmVyLkV4dHJhY3QKK2RpZmYgLS1naXQgYS9mbGF0cGFrL29yZy5nbm9tZS5QaG90b3MuanNvbiBi L2ZsYXRwYWsvb3JnLmdub21lLlBob3Rvcy5qc29uCitpbmRleCA1ZDE2Njg5Yy4uYWRmZGFmMzQg MTAwNjQ0CistLS0gYS9mbGF0cGFrL29yZy5nbm9tZS5QaG90b3MuanNvbgorKysrIGIvZmxhdHBh ay9vcmcuZ25vbWUuUGhvdG9zLmpzb24KK0BAIC03LDcgKzcsNyBAQAorICAgICAidGFncyI6IFsg Im5pZ2h0bHkiIF0sCisgICAgICJkZXNrdG9wLWZpbGUtbmFtZS1wcmVmaXgiOiAiKE5pZ2h0bHkp ICIsCisgICAgICJmaW5pc2gtYXJncyI6IFsKKy0gICAgICAgICItLWVudj1UUkFDS0VSX1NQQVJR TF9CQUNLRU5EPWJ1cyIsCisrICAgICAgICAiLS1hZGQtcG9saWN5PVRyYWNrZXIzLmRidXM6b3Jn LmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzPXRyYWNrZXI6UGljdHVyZXMiLAorICAg ICAgICAgIi0tZmlsZXN5c3RlbT14ZGctZG93bmxvYWQiLAorICAgICAgICAgIi0tZmlsZXN5c3Rl bT14ZGctcGljdHVyZXMiLAorICAgICAgICAgIi0tbWV0YWRhdGE9WC1EQ29uZj1taWdyYXRlLXBh dGg9L29yZy9nbm9tZS9waG90b3MvIiwKK0BAIC0xNyw4ICsxNyw4IEBACisgICAgICAgICAiLS1z b2NrZXQ9d2F5bGFuZCIsCisgICAgICAgICAiLS1zb2NrZXQ9eDExIiwKKyAgICAgICAgICItLXRh bGstbmFtZT1vcmcuZnJlZWRlc2t0b3AuRmlsZU1hbmFnZXIxIiwKKy0gICAgICAgICItLXRhbGst bmFtZT1vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEiLAorLSAgICAgICAgIi0tdGFsay1uYW1lPW9y Zy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5lci5FeHRyYWN0IiwKKysgICAgICAgICItLXRhbGst bmFtZT1vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMiLAorKyAgICAgICAgIi0t dGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5JbmRleCIsCisg ICAgICAgICAiLS10YWxrLW5hbWU9Y29tLmludGVsLmRsZXluYS1yZW5kZXJlciIsCisgICAgICAg ICAiLS10YWxrLW5hbWU9b3JnLmdub21lLkNvbnRyb2xDZW50ZXIiLAorICAgICAgICAgIi0tdGFs ay1uYW1lPW9yZy5nbm9tZS5TZXR0aW5nc0RhZW1vbiIsCitAQCAtMjQ4LDU2ICsyNDgsMjIgQEAK KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIF0KKyAgICAgICAgIH0sCistICAgICAg ICB7CistICAgICAgICAgICAgIm5hbWUiOiAidHJhY2tlciIsCistICAgICAgICAgICAgImJ1aWxk c3lzdGVtIjogIm1lc29uIiwKKy0gICAgICAgICAgICAiY2xlYW51cCI6IFsgIi9iaW4iLCAiL2V0 YyIsICIvbGliL2dpcmVwb3NpdG9yeS0xLjAiLCAiL2xpYmV4ZWMiLCAiL3NoYXJlL2RidXMtMSIs ICIvc2hhcmUvZ2lyLTEuMCIgXSwKKy0gICAgICAgICAgICAiY29uZmlnLW9wdHMiOiBbICItRGJh c2hfY29tcGxldGlvbj1ubyIsICItRGRvY3M9ZmFsc2UiLCAiLURzeXN0ZW1kX3VzZXJfc2Vydmlj ZXM9bm8iIF0sCistICAgICAgICAgICAgInNvdXJjZXMiOiBbCistICAgICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCistICAgICAgICAgICAgICAgICAg ICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLmdpdCIsCist ICAgICAgICAgICAgICAgICAgICAiYnJhbmNoIjogInRyYWNrZXItMi4zIgorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgXQorLSAgICAgICAgfSwKKy0gICAgICAgIHsKKy0gICAgICAg ICAgICAibmFtZSI6ICJpbnRsdG9vbCIsCistICAgICAgICAgICAgImNsZWFudXAiOiBbICIqIiBd LAorLSAgICAgICAgICAgICJzb3VyY2VzIjogWworLSAgICAgICAgICAgICAgICB7CistICAgICAg ICAgICAgICAgICAgICAidHlwZSI6ICJhcmNoaXZlIiwKKy0gICAgICAgICAgICAgICAgICAgICJ1 cmwiOiAiaHR0cHM6Ly9sYXVuY2hwYWQubmV0L2ludGx0b29sL3RydW5rLzAuNTEuMC8rZG93bmxv YWQvaW50bHRvb2wtMC41MS4wLnRhci5neiIsCistICAgICAgICAgICAgICAgICAgICAic2hhMjU2 IjogIjY3Yzc0ZDk0MTk2YjE1M2I3NzRhYjlmODliMmZhNmM2YmE3OTM1MjQwNzAzN2M4YzE0ZDVh ZWIzMzRlOTU5Y2QiCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBdCistICAgICAg ICB9LAorICAgICAgICAgeworICAgICAgICAgICAgICJuYW1lIjogInRyYWNrZXItbWluZXJzIiwK KyAgICAgICAgICAgICAiYnVpbGRzeXN0ZW0iOiAibWVzb24iLAorLSAgICAgICAgICAgICJjbGVh bnVwIjogWyAiL2V0YyIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIvbGliIiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgIi9saWJleGVjIiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVy LkV4dHJhY3Quc2VydmljZSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1 cy0xL3NlcnZpY2VzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5Xcml0ZWJhY2suc2VydmljZSIs CistICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvdHJhY2tlci9taW5lcnMvb3JnLmZy ZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkFwcGxpY2F0aW9ucy5zZXJ2aWNlIiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgIi9zaGFyZS90cmFja2VyL21pbmVycy9vcmcuZnJlZWRlc2t0b3Au VHJhY2tlcjEuTWluZXIuRXh0cmFjdC5zZXJ2aWNlIiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgIi9zaGFyZS90cmFja2VyL21pbmVycy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIu UlNTLnNlcnZpY2UiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL3RyYWNrZXIt bWluZXJzIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS9nbGliLTIuMC9zY2hl bWFzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyLkV4dHJhY3QuZ3NjaGVtYS54bWwiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvb3JnLmZyZWVkZXNr dG9wLlRyYWNrZXIuV3JpdGViYWNrLmdzY2hlbWEueG1sIiBdLAorLSAgICAgICAgICAgICJjb25m aWctb3B0cyI6IFsgIi1EZXh0cmFjdD1mYWxzZSIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiLURnZW5lcmljX21lZGlhX2V4dHJhY3Rvcj1ub25lIiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICItRG1pbmVyX2FwcHM9ZmFsc2UiLAorKyAgICAgICAgICAgICJjbGVhbnVw IjogWyAiL3NoYXJlL2RidXMtMS9zZXJ2aWNlcy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWlu ZXIuRXh0cmFjdC5zZXJ2aWNlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS9k YnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZp Y2UiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL2RidXMtMS9zZXJ2aWNlcy9v cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuV3JpdGViYWNrLnNlcnZpY2UiIF0sCisrICAgICAgICAg ICAgImNvbmZpZy1vcHRzIjogWyAiLURtYW49ZmFsc2UiLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi1EbWluZXJfZnM9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiLURtaW5lcl9yc3M9ZmFsc2UiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1E c3lzdGVtZF91c2VyX3NlcnZpY2VzPW5vIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICItRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1mYWxzZSIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiLUR3cml0ZWJhY2s9ZmFsc2UiIF0sCisgICAgICAgICAgICAgInNvdXJjZXMiOiBb CisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIs CisgICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS90cmFja2VyLW1pbmVycy5naXQiLAorLSAgICAgICAgICAgICAgICAgICAgImJyYW5jaCI6 ICJ0cmFja2VyLW1pbmVycy0yLjMiCisrICAgICAgICAgICAgICAgICAgICAiYnJhbmNoIjogIm1h c3RlciIKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIF0KKyAgICAgICAgIH0sCitA QCAtMzA5LDcgKzI3NSw4IEBACisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg ICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8v Z2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1waG90b3MuZ2l0IiwKKy0gICAgICAgICAgICAg ICAgICAgICJkaXNhYmxlLXNoYWxsb3ctY2xvbmUiOiAidHJ1ZSIKKysgICAgICAgICAgICAgICAg ICAgICJkaXNhYmxlLXNoYWxsb3ctY2xvbmUiOiAidHJ1ZSIsCisrICAgICAgICAgICAgICAgICAg ICAiYnJhbmNoIjogInNhbS90cmFja2VyMyIKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIF0KKyAgICAgICAgIH0KK2RpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxk CitpbmRleCA3MDgxNmQyNC4uMWM2ZjI5MDYgMTAwNjQ0CistLS0gYS9tZXNvbi5idWlsZAorKysr IGIvbWVzb24uYnVpbGQKK0BAIC0xNzIsOCArMTcyLDcgQEAgbGliZ2RhdGFfZGVwID0gZGVwZW5k ZW5jeSgnbGliZ2RhdGEnLCB2ZXJzaW9uOiAnPj0gMC4xNy4xMCcpCisgbGliZ2ZncmFwaF9kZXAg PSBkZXBlbmRlbmN5KCdsaWJnZmJncmFwaC0wLjInLCB2ZXJzaW9uOiAnPj0gMC4yLjEnKQorIGxp YmpwZWdfZGVwID0gZGVwZW5kZW5jeSgnbGlianBlZycpCisgbGlicG5nX2RlcCA9IGRlcGVuZGVu Y3koJ2xpYnBuZzE2JykKKy10cmFja2VyX2NvbnRyb2xfZGVwID0gZGVwZW5kZW5jeSgndHJhY2tl ci1jb250cm9sLTIuMCcpCistdHJhY2tlcl9zcGFycWxfZGVwID0gZGVwZW5kZW5jeSgndHJhY2tl ci1zcGFycWwtMi4wJykKKyt0cmFja2VyX3NwYXJxbF9kZXAgPSBkZXBlbmRlbmN5KCd0cmFja2Vy LXNwYXJxbC0zLjAnKQorIAorIGRidXNfZGVwID0gZGVwZW5kZW5jeSgnZGJ1cy0xJykKKyBkYnVz X3NlcnZpY2VfZGlyID0gZGJ1c19kZXAuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgKK2RpZmYgLS1n aXQgYS9zcmMvbWVzb24uYnVpbGQgYi9zcmMvbWVzb24uYnVpbGQKK2luZGV4IGI1YjI3NTljLi42 YjNiN2YwMSAxMDA2NDQKKy0tLSBhL3NyYy9tZXNvbi5idWlsZAorKysrIGIvc3JjL21lc29uLmJ1 aWxkCitAQCAtMjA1LDggKzIwNSw2IEBAIHNvdXJjZXMgPSBjb21tb25fc291cmNlcyArIGZpbGVz KAorICAgJ3Bob3Rvcy10b29sLWVuaGFuY2UuYycsCisgICAncGhvdG9zLXRvb2wtZmlsdGVyLWJ1 dHRvbi5jJywKKyAgICdwaG90b3MtdG9vbC1maWx0ZXJzLmMnLAorLSAgJ3Bob3Rvcy10cmFja2Vy LWNoYW5nZS1ldmVudC5jJywKKy0gICdwaG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jJywK KyAgICdwaG90b3MtdHJhY2tlci1jb2xsZWN0aW9uLXZpZXctY29udHJvbGxlci5jJywKKyAgICdw aG90b3MtdHJhY2tlci1jb2xsZWN0aW9ucy1jb250cm9sbGVyLmMnLAorICAgJ3Bob3Rvcy10cmFj a2VyLWNvbnRyb2xsZXIuYycsCitAQCAtMzY3LDIyICszNjUsMTggQEAgc291cmNlcyArPSBnbm9t ZS5nZGJ1c19jb2RlZ2VuKAorICAgYXV0b2NsZWFudXA6ICdhbGwnLAorICkKKyAKKy10cmFja2Vy X2V4dHJhY3RfcHJpb3JpdHkgPSAncGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eScKKy0K KyBzb3VyY2VzICs9IGdub21lLmdkYnVzX2NvZGVnZW4oCistICB0cmFja2VyX2V4dHJhY3RfcHJp b3JpdHksCistICB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHkgKyAnLnhtbCcsCistICBpbnRlcmZh Y2VfcHJlZml4OiAnb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLicsCisrICAncGhvdG9zLXRyYWNr ZXItbWluZXInLAorKyAgJ29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwnLAorKyAg aW50ZXJmYWNlX3ByZWZpeDogJ29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy4nLAorICAgbmFtZXNw YWNlOiAnVHJhY2tlcicsCisgICBhdXRvY2xlYW51cDogJ2FsbCcsCisgKQorIAorLXRyYWNrZXJf cmVzb3VyY2VzID0gJ3Bob3Rvcy10cmFja2VyLXJlc291cmNlcycKKy0KKyBzb3VyY2VzICs9IGdu b21lLmdkYnVzX2NvZGVnZW4oCistICB0cmFja2VyX3Jlc291cmNlcywKKy0gIHRyYWNrZXJfcmVz b3VyY2VzICsgJy54bWwnLAorLSAgaW50ZXJmYWNlX3ByZWZpeDogJ29yZy5mcmVlZGVza3RvcC5U cmFja2VyMS4nLAorKyAgJ3Bob3Rvcy10cmFja2VyLW1pbmVyLWluZGV4JywKKysgICdvcmcuZnJl ZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sJywKKysgIGludGVyZmFjZV9w cmVmaXg6ICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuJywKKyAgIG5hbWVzcGFjZTogJ1RyYWNr ZXInLAorICAgYXV0b2NsZWFudXA6ICdhbGwnLAorICkKK0BAIC00MDEsNyArMzk1LDYgQEAgZGVw cyA9IGNvbW1vbl9kZXBzICsgWworICAgbGliZ2RhdGFfZGVwLAorICAgbGliZ2ZncmFwaF9kZXAs CisgICBtX2RlcCwKKy0gIHRyYWNrZXJfY29udHJvbF9kZXAsCisgICB0cmFja2VyX3NwYXJxbF9k ZXAsCisgXQorIAorZGlmZiAtLWdpdCBhL3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWlu ZXIuRmlsZXMuSW5kZXgueG1sIGIvc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5G aWxlcy5JbmRleC54bWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uZTM2 OGYxZTIKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMu TWluZXIuRmlsZXMuSW5kZXgueG1sCitAQCAtMCwwICsxLDExIEBACisrPG5vZGU+CisrICA8aW50 ZXJmYWNlIG5hbWU9J29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5JbmRleCc+ CisrICAgIDxtZXRob2QgbmFtZT0nSW5kZXhMb2NhdGlvbic+CisrICAgICAgPGFyZyB0eXBlPSdz JyBuYW1lPSdmaWxlX3VyaScgZGlyZWN0aW9uPSdpbicgLz4KKysgICAgICA8YXJnIHR5cGU9J2Fz JyBuYW1lPSdncmFwaHMnIGRpcmVjdGlvbj0naW4nIC8+CisrICAgICAgPGFyZyB0eXBlPSdhcycg bmFtZT0nZmxhZ3MnIGRpcmVjdGlvbj0naW4nPiIKKysgICAgICAgIDxkb2M6ZG9jPjxkb2M6c3Vt bWFyeT5FeHRlbnNpb24gZmxhZ3MsIG5vIGFsbG93ZWQgdmFsdWVzIGF0IHRoZSBtb21lbnQ8L2Rv YzpzdW1tYXJ5PjwvZG9jOmRvYz4KKysgICAgICA8L2FyZz4KKysgICAgPC9tZXRob2Q+CisrICA8 L2ludGVyZmFjZT4KKys8L25vZGU+CitkaWZmIC0tZ2l0IGEvc3JjL29yZy5mcmVlZGVza3RvcC5U cmFja2VyMy5NaW5lci54bWwgYi9zcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnht bAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi42ZmUwOWM4NAorLS0tIC9k ZXYvbnVsbAorKysrIGIvc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwKK0BA IC0wLDAgKzEsNTYgQEAKKys8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgor KworKzxub2RlIG5hbWU9Ii8iPgorKyAgPGludGVyZmFjZSBuYW1lPSJvcmcuZnJlZWRlc2t0b3Au VHJhY2tlcjMuTWluZXIiPgorKyAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3Au REJ1cy5HTGliLkNTeW1ib2wiIHZhbHVlPSJfdHJhY2tlcl9taW5lcl9kYnVzIi8+CisrICAgIDxt ZXRob2QgbmFtZT0iU3RhcnQiPgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVz a3RvcC5EQnVzLkdMaWIuQXN5bmMiICB2YWx1ZT0idHJ1ZSIvPgorKyAgICA8L21ldGhvZD4KKysg ICAgPG1ldGhvZCBuYW1lPSJHZXRTdGF0dXMiPgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9y Zy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFy ZyB0eXBlPSJzIiBuYW1lPSJzdGF0dXMiIGRpcmVjdGlvbj0ib3V0IiAvPgorKyAgICA8L21ldGhv ZD4KKysgICAgPG1ldGhvZCBuYW1lPSJHZXRQcm9ncmVzcyI+CisrICAgICAgPGFubm90YXRpb24g bmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgdmFsdWU9InRydWUiLz4KKysg ICAgICA8YXJnIHR5cGU9ImQiIG5hbWU9InByb2dyZXNzIiBkaXJlY3Rpb249Im91dCIgLz4KKysg ICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFtZT0iR2V0UmVtYWluaW5nVGltZSI+CisrICAg ICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgdmFs dWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9ImkiIG5hbWU9InJlbWFpbmluZ190aW1lIiBk aXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFtZT0iR2V0 UGF1c2VEZXRhaWxzIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3Au REJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcgdHlwZT0iYXMiIG5h bWU9InBhdXNlX2FwcGxpY2F0aW9ucyIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgICAgPGFyZyB0 eXBlPSJhcyIgbmFtZT0icGF1c2VfcmVhc29ucyIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwv bWV0aG9kPgorKyAgICA8bWV0aG9kIG5hbWU9IlBhdXNlIj4KKysgICAgICA8YW5ub3RhdGlvbiBu YW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiAgdmFsdWU9InRydWUiLz4KKysg ICAgICA8YXJnIHR5cGU9InMiIG5hbWU9ImFwcGxpY2F0aW9uIiBkaXJlY3Rpb249ImluIiAvPgor KyAgICAgIDxhcmcgdHlwZT0icyIgbmFtZT0icmVhc29uIiBkaXJlY3Rpb249ImluIiAvPgorKyAg ICAgIDxhcmcgdHlwZT0iaSIgbmFtZT0iY29va2llIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAg PC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFtZT0iUGF1c2VGb3JQcm9jZXNzIj4KKysgICAgICA8 YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiAgdmFsdWU9 InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9InMiIG5hbWU9ImFwcGxpY2F0aW9uIiBkaXJlY3Rp b249ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0icyIgbmFtZT0icmVhc29uIiBkaXJlY3Rpb249 ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0iaSIgbmFtZT0iY29va2llIiBkaXJlY3Rpb249Im91 dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFtZT0iUmVzdW1lIj4KKysgICAg ICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiB2YWx1 ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcgdHlwZT0iaSIgbmFtZT0iY29va2llIiBkaXJlY3Rpb249 ImluIiAvPgorKyAgICA8L21ldGhvZD4KKysKKysgICAgPCEtLSBTaWduYWxzIC0tPgorKyAgICA8 c2lnbmFsIG5hbWU9IlN0YXJ0ZWQiIC8+CisrICAgIDxzaWduYWwgbmFtZT0iU3RvcHBlZCI+Cisr ICAgICAgPGFyZyB0eXBlPSJiIiBuYW1lPSJpbnRlcnJ1cHRlZCIgLz4KKysgICAgPC9zaWduYWw+ CisrICAgIDxzaWduYWwgbmFtZT0iUGF1c2VkIiAvPgorKyAgICA8c2lnbmFsIG5hbWU9IlJlc3Vt ZWQiIC8+CisrICAgIDxzaWduYWwgbmFtZT0iUHJvZ3Jlc3MiPgorKyAgICAgIDxhcmcgdHlwZT0i cyIgbmFtZT0ic3RhdHVzIiAvPgorKyAgICAgIDxhcmcgdHlwZT0iZCIgbmFtZT0icHJvZ3Jlc3Mi IC8+CisrICAgICAgPGFyZyB0eXBlPSJpIiBuYW1lPSJyZW1haW5pbmdfdGltZSIgLz4KKysgICAg PC9zaWduYWw+CisrICA8L2ludGVyZmFjZT4KKys8L25vZGU+CitkaWZmIC0tZ2l0IGEvc3JjL3Bo b3Rvcy1hcHBsaWNhdGlvbi5jIGIvc3JjL3Bob3Rvcy1hcHBsaWNhdGlvbi5jCitpbmRleCBjYjEx NGZkYS4uNWZiYmJlZjIgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLWFwcGxpY2F0aW9uLmMKKysr KyBiL3NyYy9waG90b3MtYXBwbGljYXRpb24uYworQEAgLTM2LDcgKzM2LDYgQEAKKyAjaW5jbHVk ZSA8Z2xpYi5oPgorICNpbmNsdWRlIDxnbGliL2dpMThuLmg+CisgI2luY2x1ZGUgPGdyaWxvLmg+ CistI2luY2x1ZGUgPGxpYnRyYWNrZXItY29udHJvbC90cmFja2VyLWNvbnRyb2wuaD4KKyAKKyAj aW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgiCisgI2luY2x1ZGUgInBob3Rvcy1iYXNlLWl0 ZW0uaCIKK0BAIC02OCw3ICs2Nyw4IEBACisgI2luY2x1ZGUgInBob3Rvcy1zaGFyZS1ub3RpZmlj YXRpb24uaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNoYXJlLXBvaW50LW1hbmFnZXIuaCIKKyAjaW5j bHVkZSAicGhvdG9zLXRodW1ibmFpbC1mYWN0b3J5LmgiCistI2luY2x1ZGUgInBob3Rvcy10cmFj a2VyLWV4dHJhY3QtcHJpb3JpdHkuaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItbWluZXIt aW5kZXguaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKyAjaW5jbHVkZSAi cGhvdG9zLXV0aWxzLmgiCisgCisgCitAQCAtMTI3LDcgKzEyNyw3IEBAIHN0cnVjdCBfUGhvdG9z QXBwbGljYXRpb24KKyAgIFBob3Rvc1NlYXJjaFByb3ZpZGVyICpzZWFyY2hfcHJvdmlkZXI7Cisg ICBQaG90b3NTZWxlY3Rpb25Db250cm9sbGVyICpzZWxfY250cmxyOworICAgUGhvdG9zVGh1bWJu YWlsRmFjdG9yeSAqZmFjdG9yeTsKKy0gIFRyYWNrZXJFeHRyYWN0UHJpb3JpdHkgKmV4dHJhY3Rf cHJpb3JpdHk7CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5 OworICAgZ2Jvb2xlYW4gZW1wdHlfcmVzdWx0czsKKyAgIGdib29sZWFuIG1haW5fd2luZG93X2Rl bGV0ZWQ7CisgICBndWludCBjcmVhdGVfbWluZXJzX2NvdW50OworQEAgLTE0OCw3ICsxNDgsNiBA QCBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAgfTsKKyAKKyBzdGF0aWMg dm9pZCBwaG90b3NfYXBwbGljYXRpb25fc2VhcmNoX2NvbnRleHRfaWZhY2VfaW5pdCAoUGhvdG9z U2VhcmNoQ29udGV4dEludGVyZmFjZSAqaWZhY2UpOworIAorLQorIEdfREVGSU5FX1RZUEVfV0lU SF9DT0RFIChQaG90b3NBcHBsaWNhdGlvbiwgcGhvdG9zX2FwcGxpY2F0aW9uLCBHVEtfVFlQRV9B UFBMSUNBVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJG QUNFIChQSE9UT1NfVFlQRV9TRUFSQ0hfQ09OVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGljYXRpb25fc2VhcmNoX2NvbnRl eHRfaWZhY2VfaW5pdCkpOworQEAgLTE5MSwxMSArMTkwLDExIEBAIHN0cnVjdCBfUGhvdG9zQXBw bGljYXRpb25DcmVhdGVEYXRhCisgc3RydWN0IF9QaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEK KyB7CisgICBQaG90b3NBcHBsaWNhdGlvbiAqYXBwbGljYXRpb247CisrICBUcmFja2VyTWluZXJG aWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworICAgR0ZpbGUgKmRlc3RpbmF0aW9uOwor ICAgR0ZpbGUgKmltcG9ydF9zdWJfZGlyOworICAgR0xpc3QgKmZpbGVzOworICAgUGhvdG9zQmFz ZUl0ZW0gKmNvbGxlY3Rpb247CistICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyOworICAg Z2NoYXIgKmNvbGxlY3Rpb25fdXJuOworICAgZ2ludDY0IGN0aW1lX2xhdGVzdDsKKyB9OworQEAg LTI0OCw3ICsyNDcsNyBAQCBwaG90b3NfYXBwbGljYXRpb25fY3JlYXRlX2RhdGFfZnJlZSAoUGhv dG9zQXBwbGljYXRpb25DcmVhdGVEYXRhICpkYXRhKQorIAorIHN0YXRpYyBQaG90b3NBcHBsaWNh dGlvbkltcG9ydERhdGEgKgorIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZGF0YV9uZXcgKFBo b3Rvc0FwcGxpY2F0aW9uICphcHBsaWNhdGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRyYWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRy b2xfcHJveHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpc3QgKmZp bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQ2NCBjdGltZV9s YXRlc3QpCisgeworQEAgLTI1Nyw3ICsyNTYsNyBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0 X2RhdGFfbmV3IChQaG90b3NBcHBsaWNhdGlvbiAqYXBwbGljYXRpb24sCisgICBkYXRhID0gZ19z bGljZV9uZXcwIChQaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEpOworICAgZ19hcHBsaWNhdGlv bl9ob2xkIChHX0FQUExJQ0FUSU9OIChhcHBsaWNhdGlvbikpOworICAgZGF0YS0+YXBwbGljYXRp b24gPSBhcHBsaWNhdGlvbjsKKy0gIGRhdGEtPm1hbmFnZXIgPSBnX29iamVjdF9yZWYgKG1hbmFn ZXIpOworKyAgZGF0YS0+bWluZXJfY29udHJvbF9wcm94eSA9IG1pbmVyX2NvbnRyb2xfcHJveHk7 CisgICBkYXRhLT5maWxlcyA9IGdfbGlzdF9jb3B5X2RlZXAgKGZpbGVzLCAoR0NvcHlGdW5jKSBn X29iamVjdF9yZWYsIE5VTEwpOworICAgZGF0YS0+Y3RpbWVfbGF0ZXN0ID0gY3RpbWVfbGF0ZXN0 OworICAgcmV0dXJuIGRhdGE7CitAQCAtMjc3LDggKzI3Niw4IEBAIHBob3Rvc19hcHBsaWNhdGlv bl9pbXBvcnRfZGF0YV9mcmVlIChQaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEgKmRhdGEpCisg CisgICBnX2NsZWFyX29iamVjdCAoJmRhdGEtPmRlc3RpbmF0aW9uKTsKKyAgIGdfY2xlYXJfb2Jq ZWN0ICgmZGF0YS0+aW1wb3J0X3N1Yl9kaXIpOworKyAgZ19jbGVhcl9vYmplY3QgKCZkYXRhLT5t aW5lcl9jb250cm9sX3Byb3h5KTsKKyAgIGdfbGlzdF9mcmVlX2Z1bGwgKGRhdGEtPmZpbGVzLCBn X29iamVjdF91bnJlZik7CistICBnX2NsZWFyX29iamVjdCAoJmRhdGEtPm1hbmFnZXIpOworICAg Z19mcmVlIChkYXRhLT5jb2xsZWN0aW9uX3Vybik7CisgICBnX3NsaWNlX2ZyZWUgKFBob3Rvc0Fw cGxpY2F0aW9uSW1wb3J0RGF0YSwgZGF0YSk7CisgfQorQEAgLTU4NCwyNyArNTgzLDYgQEAgcGhv dG9zX2FwcGxpY2F0aW9uX2FjdGlvbnNfdXBkYXRlIChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikK KyB9CisgCisgCistc3RhdGljIHZvaWQKKy1waG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9jbGVh cl9yZGZfdHlwZXMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBn cG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9U T1NfQVBQTElDQVRJT04gKHVzZXJfZGF0YSk7CistICBUcmFja2VyRXh0cmFjdFByaW9yaXR5ICpl eHRyYWN0X3ByaW9yaXR5ID0gVFJBQ0tFUl9FWFRSQUNUX1BSSU9SSVRZIChzb3VyY2Vfb2JqZWN0 KTsKKy0KKy0gIHsKKy0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0g ICAgaWYgKCF0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfY2FsbF9jbGVhcl9yZGZfdHlwZXNfZmlu aXNoIChleHRyYWN0X3ByaW9yaXR5LCByZXMsICZlcnJvcikpCistICAgICAgeworLSAgICAgICAg Z193YXJuaW5nICgiVW5hYmxlIHRvIGNhbGwgQ2xlYXJSZGZUeXBlczogJXMiLCBlcnJvci0+bWVz c2FnZSk7CistICAgICAgICBnb3RvIG91dDsKKy0gICAgICB9CistICB9CistCistIG91dDoKKy0g IGdfYXBwbGljYXRpb25fcmVsZWFzZSAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLX0KKy0KKy0K KyBzdGF0aWMgZ2Jvb2xlYW4KKyBwaG90b3NfYXBwbGljYXRpb25fZGVsZXRlX2V2ZW50IChQaG90 b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB7CitAQCAtNjQxLDE2ICs2MTksNiBAQCBwaG90b3NfYXBw bGljYXRpb25fZGVzdHJveSAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgICBzZWxmLT5jcmVh dGVfd2luZG93X2NhbmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9uZXcgKCk7CisgCisgICBwaG90 b3NfYXBwbGljYXRpb25fc3RvcF9taW5lcnMgKHNlbGYpOworLQorLSAgaWYgKHNlbGYtPmV4dHJh Y3RfcHJpb3JpdHkgIT0gTlVMTCkKKy0gICAgeworLSAgICAgIGdfYXBwbGljYXRpb25faG9sZCAo R19BUFBMSUNBVElPTiAoc2VsZikpOworLSAgICAgIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9j YWxsX2NsZWFyX3JkZl90eXBlcyAoc2VsZi0+ZXh0cmFjdF9wcmlvcml0eSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBw bGljYXRpb25fdHJhY2tlcl9jbGVhcl9yZGZfdHlwZXMsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKy0gICAgICBnX2NsZWFyX29i amVjdCAoJnNlbGYtPmV4dHJhY3RfcHJpb3JpdHkpOworLSAgICB9CisgfQorIAorIAorQEAgLTc0 MCw2MCArNzA4LDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2dlZ2xfaW5pdF9maXNoZXNfaWRsZSAo Z3BvaW50ZXIgdXNlcl9kYXRhKQorIH0KKyAKKyAKKy1zdGF0aWMgdm9pZAorLXBob3Rvc19hcHBs aWNhdGlvbl90cmFja2VyX3NldF9yZGZfdHlwZXMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdB c3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhvdG9zQXBwbGlj YXRpb24gKnNlbGYgPSBQSE9UT1NfQVBQTElDQVRJT04gKHVzZXJfZGF0YSk7CistICBUcmFja2Vy RXh0cmFjdFByaW9yaXR5ICpleHRyYWN0X3ByaW9yaXR5ID0gVFJBQ0tFUl9FWFRSQUNUX1BSSU9S SVRZIChzb3VyY2Vfb2JqZWN0KTsKKy0KKy0gIHsKKy0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVy cm9yID0gTlVMTDsKKy0KKy0gICAgaWYgKCF0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfY2FsbF9z ZXRfcmRmX3R5cGVzX2ZpbmlzaCAoZXh0cmFjdF9wcmlvcml0eSwgcmVzLCAmZXJyb3IpKQorLSAg ICAgIHsKKy0gICAgICAgIGlmICghZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwg R19JT19FUlJPUl9DQU5DRUxMRUQpKQorLSAgICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8g Y2FsbCBTZXRSZGZUeXBlczogJXMiLCBlcnJvci0+bWVzc2FnZSk7CistCistICAgICAgICBnb3Rv IG91dDsKKy0gICAgICB9CistICB9CistCistIG91dDoKKy0gIGdfYXBwbGljYXRpb25fcmVsZWFz ZSAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rv c19hcHBsaWNhdGlvbl90cmFja2VyX2V4dHJhY3RfcHJpb3JpdHkgKEdPYmplY3QgKnNvdXJjZV9v YmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhv dG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9UT1NfQVBQTElDQVRJT04gKHVzZXJfZGF0YSk7Cist ICBjb25zdCBnY2hhciAqY29uc3QgcmRmX3R5cGVzW10gPSB7Im5mbzpJbWFnZSIsIE5VTEx9Owor LQorLSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworLQorLSAgICBz ZWxmLT5leHRyYWN0X3ByaW9yaXR5ID0gdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5X3Byb3h5X25l d19mb3JfYnVzX2ZpbmlzaCAocmVzLCAmZXJyb3IpOworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkK Ky0gICAgICB7CistICAgICAgICBpZiAoIWdfZXJyb3JfbWF0Y2hlcyAoZXJyb3IsIEdfSU9fRVJS T1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVEKSkKKy0gICAgICAgICAgZ193YXJuaW5nICgiVW5hYmxl IHRvIGNyZWF0ZSBUcmFja2VyRXh0cmFjdFByaW9yaXR5IHByb3h5OiAlcyIsIGVycm9yLT5tZXNz YWdlKTsKKy0KKy0gICAgICAgIGdvdG8gb3V0OworLSAgICAgIH0KKy0gIH0KKy0KKy0gIGdfYXBw bGljYXRpb25faG9sZCAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLSAgdHJhY2tlcl9leHRyYWN0 X3ByaW9yaXR5X2NhbGxfc2V0X3JkZl90eXBlcyAoc2VsZi0+ZXh0cmFjdF9wcmlvcml0eSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJkZl90eXBlcywK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmNy ZWF0ZV93aW5kb3dfY2FuY2VsbGFibGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9zZXRfcmRmX3R5cGVz LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZik7 CistCistIG91dDoKKy0gIGdfYXBwbGljYXRpb25fcmVsZWFzZSAoR19BUFBMSUNBVElPTiAoc2Vs ZikpOworLX0KKy0KKy0KKyBzdGF0aWMgZ2Jvb2xlYW4KKyBwaG90b3NfYXBwbGljYXRpb25fY3Jl YXRlX3dpbmRvdyAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgeworQEAgLTgyOCwxMyArNzQy LDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2NyZWF0ZV93aW5kb3cgKFBob3Rvc0FwcGxpY2F0aW9u ICpzZWxmKQorICAgICBzZWxmLT5pbml0X2Zpc2hlc19pZCA9IGdfaWRsZV9hZGQgKHBob3Rvc19h cHBsaWNhdGlvbl9nZWdsX2luaXRfZmlzaGVzX2lkbGUsIHNlbGYpOworIAorICAgZ19hcHBsaWNh dGlvbl9ob2xkIChHX0FQUExJQ0FUSU9OIChzZWxmKSk7CistICB0cmFja2VyX2V4dHJhY3RfcHJp b3JpdHlfcHJveHlfbmV3X2Zvcl9idXMgKEdfQlVTX1RZUEVfU0VTU0lPTiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX1BST1hZX0ZMQUdTX05P TkUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmcu ZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuRXh0cmFjdCIsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIxL0V4 dHJhY3QvUHJpb3JpdHkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLT5jcmVhdGVfd2luZG93X2NhbmNlbGxhYmxlLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGljYXRpb25fdHJhY2tl cl9leHRyYWN0X3ByaW9yaXR5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmKTsKKyAKKyAgIHBob3Rvc19hcHBsaWNhdGlvbl9zdGFydF9taW5lcnMg KHNlbGYpOworICAgcmV0dXJuIFRSVUU7CitAQCAtMTExMywxOCArMTAyMCwxOCBAQCBwaG90b3Nf YXBwbGljYXRpb25fZ2V0X3N0YXRlIChQaG90b3NTZWFyY2hDb250ZXh0ICpjb250ZXh0KQorIAor IAorIHN0YXRpYyB2b2lkCistcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9pbmRleF9maWxlIChH T2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9k YXRhKQorK3Bob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfaW5kZXhfbG9jYXRpb24gKEdPYmplY3Qg KnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisg eworICAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGY7CisgICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxl ID0gR19GSUxFICh1c2VyX2RhdGEpOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9 IFRSQUNLRVJfTUlORVJfTUFOQUdFUiAoc291cmNlX29iamVjdCk7CisrICBUcmFja2VyTWluZXJG aWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5ID0gVFJBQ0tFUl9NSU5FUl9GSUxFU19JTkRF WCAoc291cmNlX29iamVjdCk7CisgCisgICBzZWxmID0gUEhPVE9TX0FQUExJQ0FUSU9OIChnX2Fw cGxpY2F0aW9uX2dldF9kZWZhdWx0ICgpKTsKKyAKKyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJy b3IpIGVycm9yID0gTlVMTDsKKyAKKy0gICAgaWYgKCF0cmFja2VyX21pbmVyX21hbmFnZXJfaW5k ZXhfZmlsZV9mb3JfcHJvY2Vzc19maW5pc2ggKG1hbmFnZXIsIHJlcywgJmVycm9yKSkKKysgICAg aWYgKCF0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4X2NhbGxfaW5kZXhfbG9jYXRpb25fZmluaXNo IChtaW5lcl9jb250cm9sX3Byb3h5LCByZXMsICZlcnJvcikpCisgICAgICAgeworICAgICAgICAg Z19hdXRvZnJlZSBnY2hhciAqdXJpID0gTlVMTDsKKyAKK0BAIC0xMzIzLDcgKzEyMzAsNiBAQCBw aG90b3NfYXBwbGljYXRpb25faW1wb3J0X2ZpbGVfY29weSAoR09iamVjdCAqc291cmNlX29iamVj dCwgR0FzeW5jUmVzdWx0ICpyZXMsCisgICBQaG90b3NBcHBsaWNhdGlvbiAqc2VsZiA9IGRhdGEt PmFwcGxpY2F0aW9uOworICAgZ19hdXRvcHRyIChHRmlsZSkgZGVzdGluYXRpb24gPSBOVUxMOwor ICAgR0ZpbGUgKnNvdXJjZSA9IEdfRklMRSAoc291cmNlX29iamVjdCk7CistICBUcmFja2VyTWlu ZXJNYW5hZ2VyICptYW5hZ2VyID0gZGF0YS0+bWFuYWdlcjsKKyAKKyAgIHsKKyAgICAgZ19hdXRv cHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKK0BAIC0xMzQ4LDYgKzEyNTQsOCBAQCBwaG90b3Nf YXBwbGljYXRpb25faW1wb3J0X2ZpbGVfY29weSAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0Fz eW5jUmVzdWx0ICpyZXMsCisgICBlbHNlCisgICAgIHsKKyAgICAgICBnX2F1dG9mcmVlIGdjaGFy ICpkZXN0aW5hdGlvbl91cmkgPSBOVUxMOworKyAgICAgIGNvbnN0IGdjaGFyICp0cmFja2VyX3By aW9yaXR5X2dyYXBoc1tdID0geyBUUkFDS0VSX1BJQ1RVUkVTX0dSQVBIIH07CisrICAgICAgY29u c3QgZ2NoYXIgKnRyYWNrZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3NbXSA9IHsgImZvci1wcm9jZXNz IiB9OworIAorICAgICAgIGdfYXNzZXJ0X3RydWUgKEdfSVNfRklMRSAoZGVzdGluYXRpb24pKTsK KyAgICAgICBnX3NldF9vYmplY3QgKCZkYXRhLT5kZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pOwor QEAgLTEzNjQsMTEgKzEyNzIsMTMgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9maWxlX2Nv cHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLAorIAorICAgICAg IGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBMSUNBVElPTiAoc2VsZikpOworICAgICAgIGdfYXBw bGljYXRpb25fbWFya19idXN5IChHX0FQUExJQ0FUSU9OIChzZWxmKSk7CistICAgICAgdHJhY2tl cl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9yX3Byb2Nlc3NfYXN5bmMgKG1hbmFnZXIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRlc3RpbmF0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2luZGV4 X2ZpbGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdfb2JqZWN0X3JlZiAoZGVzdGluYXRpb24pKTsKKysgICAgICB0cmFja2VyX21p bmVyX2ZpbGVzX2luZGV4X2NhbGxfaW5kZXhfbG9jYXRpb24gKHNlbGYtPm1pbmVyX2NvbnRyb2xf cHJveHksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXN0aW5hdGlvbl91cmksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0cmFja2VyX3ByaW9yaXR5X2dyYXBocywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrZXJfaW5kZXhf bG9jYXRpb25fZmxhZ3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9pbmRleF9sb2NhdGlv biwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdfb2JqZWN0X3JlZiAoZGVzdGluYXRpb24pKTsKKyAgICAgfQorIAorICBvdXQ6CitAQCAtMTUw OSw2ICsxNDE5LDM3IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfcmVzcG9uc2UgKEd0a0Rp YWxvZyAqZGlhbG9nLCBnaW50IHJlc3BvbnNlX2lkLCBncG9pbnRlCisgfQorIAorIAorK3N0YXRp YyBUcmFja2VyTWluZXJGaWxlc0luZGV4ICoKKytwaG90b3NfYXBwbGljYXRpb25fZ2V0X21pbmVy X2ZzX2NvbnRyb2xfcHJveHkgKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUpCisreworKyAgZ19h dXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHRyYWNrZXJfcXVldWUgPSBOVUxMOworKyAgY29u c3QgZ2NoYXIgKm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZTsKKysgIGdfYXV0b3B0ciAoR0Vycm9y KSBlcnJvciA9IE5VTEw7CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9s X3Byb3h5OworKworKyAgdHJhY2tlcl9xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9z aW5nbGV0b24gKGNhbmNlbGxhYmxlLCAmZXJyb3IpOworKworKyAgaWYgKCF0cmFja2VyX3F1ZXVl KSB7CisrICAgIGdfd2FybmluZyAoIkVycm9yIGdldHRpbmcgVHJhY2tlciBxdWV1ZTogJXMuIElt cG9ydCB3aWxsIG5vdCB3b3JrLiIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7 CisrICB9CisrCisrICBtaW5lcl9mc19jb250cm9sX2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9x dWV1ZV9nZXRfbWluZXJfZnNfY29udHJvbF9idXNuYW1lICh0cmFja2VyX3F1ZXVlKTsKKysgIG1p bmVyX2NvbnRyb2xfcHJveHkgPSB0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4X3Byb3h5X25ld19m b3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU0VTU0lPTiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJV U19QUk9YWV9GTEFHU19OT05FLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluZXJfZnNfY29udHJvbF9i dXNuYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjMvTWlu ZXIvRmlsZXMvQ29udHJvbCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmVycm9yKTsKKysgIGlmICghbWluZXJfY29udHJvbF9wcm94eSkgeworKyAgICBnX3dh cm5pbmcgKCJFcnJvciBnZXR0aW5nIFRyYWNrZXIgTWluZXIgRlMgY29udHJvbCBwcm94eTogJXMu IEltcG9ydCB3aWxsIG5vdCB3b3JrIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICByZXR1cm4gTlVM TDsKKysgIH0KKysKKysgIHJldHVybiBtaW5lcl9jb250cm9sX3Byb3h5OworK30KKysKKysKKyBz dGF0aWMgdm9pZAorIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnQgKFBob3Rvc0FwcGxpY2F0aW9u ICpzZWxmKQorIHsKK0BAIC0xNTE5LDggKzE0NjAsOCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1w b3J0IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyAgIEd0a1dpZGdldCAqZGlhbG9nOworICAg Z19hdXRvcHRyIChQaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEpIGRhdGEgPSBOVUxMOworICAg UGhvdG9zU291cmNlICpzb3VyY2U7CistICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyID0g TlVMTDsgLyogVE9ETzogdXNlIGdfYXV0b3B0ciAqLworICAgZ2ludDY0IGN0aW1lX2xhdGVzdCA9 IC0xOworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eTsKKyAK KyAgIHNvdXJjZSA9IFBIT1RPU19TT1VSQ0UgKHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X2FjdGl2 ZV9vYmplY3QgKHNlbGYtPnN0YXRlLT5zcmNfbW5ncikpOworICAgZ19yZXR1cm5faWZfZmFpbCAo UEhPVE9TX0lTX1NPVVJDRSAoc291cmNlKSk7CitAQCAtMTUzMywxNyArMTQ3NCw5IEBAIHBob3Rv c19hcHBsaWNhdGlvbl9pbXBvcnQgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAgc2VsZWN0 aW9uID0gcGhvdG9zX3NlbGVjdGlvbl9jb250cm9sbGVyX2dldF9zZWxlY3Rpb24gKHNlbGYtPnNl bF9jbnRybHIpOworICAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZWN0aW9uICE9IE5VTEwpOworIAor LSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworLQorLSAgICBtYW5h Z2VyID0gdHJhY2tlcl9taW5lcl9tYW5hZ2VyX25ld19mdWxsIChGQUxTRSwgJmVycm9yKTsKKy0g ICAgaWYgKGVycm9yICE9IE5VTEwpCistICAgICAgeworLSAgICAgICAgZ193YXJuaW5nICgiVW5h YmxlIHRvIGNyZWF0ZSBhIFRyYWNrZXJNaW5lck1hbmFnZXIsIGltcG9ydGluZyBmcm9tIGF0dGFj aGVkIGRldmljZXMgd29uJ3Qgd29yazogJXMiLAorLSAgICAgICAgICAgICAgICAgICBlcnJvci0+ bWVzc2FnZSk7CistICAgICAgICBnb3RvIG91dDsKKy0gICAgICB9CistICB9CisrICBtaW5lcl9j b250cm9sX3Byb3h5ID0gcGhvdG9zX2FwcGxpY2F0aW9uX2dldF9taW5lcl9mc19jb250cm9sX3By b3h5IChOVUxMKTsKKysgIGlmICghbWluZXJfY29udHJvbF9wcm94eSkKKysgICAgZ290byBvdXQ7 CisgCisgICBmb3IgKGwgPSBzZWxlY3Rpb247IGwgIT0gTlVMTDsgbCA9IGwtPm5leHQpCisgICAg IHsKK0BAIC0xNTcyLDE0ICsxNTA1LDE0IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnQgKFBo b3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAgZGlhbG9nID0gcGhvdG9zX2ltcG9ydF9kaWFsb2df bmV3IChHVEtfV0lORE9XIChzZWxmLT5tYWluX3dpbmRvdyksIGN0aW1lX2xhdGVzdCk7CisgICBn dGtfd2lkZ2V0X3Nob3dfYWxsIChkaWFsb2cpOworIAorLSAgZGF0YSA9IHBob3Rvc19hcHBsaWNh dGlvbl9pbXBvcnRfZGF0YV9uZXcgKHNlbGYsIG1hbmFnZXIsIGZpbGVzLCBjdGltZV9sYXRlc3Qp OworKyAgZGF0YSA9IHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZGF0YV9uZXcgKHNlbGYsIG1p bmVyX2NvbnRyb2xfcHJveHksIGZpbGVzLCBjdGltZV9sYXRlc3QpOworKworICAgZ19zaWduYWxf Y29ubmVjdCAoZGlhbG9nLAorICAgICAgICAgICAgICAgICAgICAgInJlc3BvbnNlIiwKKyAgICAg ICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfcmVz cG9uc2UpLAorICAgICAgICAgICAgICAgICAgICAgZ19zdGVhbF9wb2ludGVyICgmZGF0YSkpOwor IAorICBvdXQ6CistICBnX2NsZWFyX29iamVjdCAoJm1hbmFnZXIpOworICAgZ19saXN0X2ZyZWVf ZnVsbCAoZmlsZXMsIGdfb2JqZWN0X3VucmVmKTsKKyB9CisgCitAQCAtMjk3NCw2ICsyOTA3LDcg QEAgcGhvdG9zX2FwcGxpY2F0aW9uX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyAgIGdfY2xl YXJfb2JqZWN0ICgmc2VsZi0+aW5zdGFfYWN0aW9uKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2Vs Zi0+bG9hZF9uZXh0X2FjdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvYWRfcHJl dmlvdXNfYWN0aW9uKTsKKysgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWluZXJfY29udHJvbF9w cm94eSk7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm9wZW5fYWN0aW9uKTsKKyAgIGdfY2xl YXJfb2JqZWN0ICgmc2VsZi0+cHJldmlld19tZW51X2FjdGlvbik7CisgICBnX2NsZWFyX29iamVj dCAoJnNlbGYtPnByaW1hcnlfbWVudV9hY3Rpb24pOworQEAgLTMwMDIsNyArMjkzNiw2IEBAIHBo b3Rvc19hcHBsaWNhdGlvbl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisgICBnX2NsZWFyX29i amVjdCAoJnNlbGYtPmNhbWVyYV9jYWNoZSk7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnNl bF9jbnRybHIpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5mYWN0b3J5KTsKKy0gIGdfY2xl YXJfb2JqZWN0ICgmc2VsZi0+ZXh0cmFjdF9wcmlvcml0eSk7CisgCisgICBpZiAoc2VsZi0+c3Rh dGUgIT0gTlVMTCkKKyAgICAgeworQEAgLTMxMzAsOCArMzA2Myw3IEBAIHBob3Rvc19hcHBsaWNh dGlvbl9nZXRfbWluZXJzX3J1bm5pbmcgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAgcmV0 dXJuIHNlbGYtPm1pbmVyc19ydW5uaW5nOworIH0KKyAKKy0KKy1naW50CisraW50CisgcGhvdG9z X2FwcGxpY2F0aW9uX2dldF9zY2FsZV9mYWN0b3IgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQor IHsKKyAgIEdMaXN0ICp3aW5kb3dzOworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtYmFzZS1pdGVt LmMgYi9zcmMvcGhvdG9zLWJhc2UtaXRlbS5jCitpbmRleCAxNDM0MzFmOS4uYjM0NzA2ZjIgMTAw NjQ0CistLS0gYS9zcmMvcGhvdG9zLWJhc2UtaXRlbS5jCisrKysgYi9zcmMvcGhvdG9zLWJhc2Ut aXRlbS5jCitAQCAtMjc1Niw2ICsyNzU2LDE2IEBAIHBob3Rvc19iYXNlX2l0ZW1fdXBkYXRlX2lu Zm9fZnJvbV90eXBlIChQaG90b3NCYXNlSXRlbSAqc2VsZikKKyB9CisgCisgCisrc3RhdGljIGdk b3VibGUKKytnZXRfZG91YmxlX3dpdGhfZGVmYXVsdCAoVHJhY2tlclNwYXJxbEN1cnNvciAqY3Vy c29yLCBQaG90b3NRdWVyeUNvbHVtbnMgY29sdW1uLCBnZG91YmxlIGRlZmF1bHRfdmFsdWUpCisr eworKyAgaWYgKHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9pc19ib3VuZCAoY3Vyc29yLCBjb2x1bW4p KSB7CisrICAgIHJldHVybiB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X2RvdWJsZSAoY3Vyc29y LCBjb2x1bW4pOworKyAgfSBlbHNlIHsKKysgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWU7CisrICB9 CisrfQorKworIHN0YXRpYyB2b2lkCisgcGhvdG9zX2Jhc2VfaXRlbV9wb3B1bGF0ZV9mcm9tX2N1 cnNvciAoUGhvdG9zQmFzZUl0ZW0gKnNlbGYsIFRyYWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvcikK KyB7CitAQCAtMjg5MSwxMCArMjkwMSwxMCBAQCBwaG90b3NfYmFzZV9pdGVtX3BvcHVsYXRlX2Zy b21fY3Vyc29yIChQaG90b3NCYXNlSXRlbSAqc2VsZiwgVHJhY2tlclNwYXJxbEN1cnNvcgorICAg ICAgIHByaXYtPndpZHRoID0gaGVpZ2h0OworICAgICB9CisgCistICBwcml2LT5leHBvc3VyZV90 aW1lID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNvciwgUEhPVE9TX1FV RVJZX0NPTFVNTlNfRVhQT1NVUkVfVElNRSk7CistICBwcml2LT5mbnVtYmVyID0gdHJhY2tlcl9z cGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRk5V TUJFUik7CistICBwcml2LT5mb2NhbF9sZW5ndGggPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0 X2RvdWJsZSAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19GT0NBTF9MRU5HVEgpOworLSAg cHJpdi0+aXNvX3NwZWVkID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNv ciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfSVNPX1NQRUVEKTsKKysgIHByaXYtPmV4cG9zdXJlX3Rp bWUgPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVsdCAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1O U19FWFBPU1VSRV9USU1FLCAwLjApOworKyAgcHJpdi0+Zm51bWJlciA9IGdldF9kb3VibGVfd2l0 aF9kZWZhdWx0IChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0ZOVU1CRVIsIDAuMCk7Cisr ICBwcml2LT5mb2NhbF9sZW5ndGggPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVsdCAoY3Vyc29yLCBQ SE9UT1NfUVVFUllfQ09MVU1OU19GT0NBTF9MRU5HVEgsIDAuMCk7CisrICBwcml2LT5pc29fc3Bl ZWQgPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVsdCAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1O U19JU09fU1BFRUQsIDAuMCk7CisgCisgICBmbGFzaCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9n ZXRfc3RyaW5nIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0ZMQVNILCBOVUxMKTsKKyAg IHByaXYtPmZsYXNoID0gZ19xdWFya19mcm9tX3N0cmluZyAoZmxhc2gpOworZGlmZiAtLWdpdCBh L3NyYy9waG90b3MtaW5kZXhpbmctbm90aWZpY2F0aW9uLmMgYi9zcmMvcGhvdG9zLWluZGV4aW5n LW5vdGlmaWNhdGlvbi5jCitpbmRleCA3YjJlYTdkZC4uMTIyZDBkOTEgMTAwNjQ0CistLS0gYS9z cmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlvbi5jCisrKysgYi9zcmMvcGhvdG9zLWluZGV4 aW5nLW5vdGlmaWNhdGlvbi5jCitAQCAtMjYsMTIgKzI2LDEzIEBACisgI2luY2x1ZGUgPGdpby9n aW8uaD4KKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNpbmNsdWRlIDxnbGliL2dpMThuLmg+CistI2lu Y2x1ZGUgPGxpYnRyYWNrZXItY29udHJvbC90cmFja2VyLWNvbnRyb2wuaD4KKyAKKyAjaW5jbHVk ZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgiCisgI2luY2x1ZGUgInBob3Rvcy1nb20tbWluZXIuaCIK KyAjaW5jbHVkZSAicGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlvbi5oIgorICNpbmNsdWRlICJw aG90b3Mtbm90aWZpY2F0aW9uLW1hbmFnZXIuaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXIt cXVldWUuaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItbWluZXIuaCIKKyAKKyAKKyBzdHJ1 Y3QgX1Bob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uCitAQCAtNDEsNyArNDIsNyBAQCBzdHJ1Y3Qg X1Bob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uCisgICBHdGtXaWRnZXQgKnByaW1hcnlfbGFiZWw7 CisgICBHdGtXaWRnZXQgKnNlY29uZGFyeV9sYWJlbDsKKyAgIEd0a1dpZGdldCAqc3Bpbm5lcjsK Ky0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFnZXI7CisrICBUcmFja2VyTWluZXIgKm1pbmVy X2ZzX3Byb3h5OworICAgZ2Jvb2xlYW4gY2xvc2VkOworICAgZ2Jvb2xlYW4gb25fZGlzcGxheTsK KyAgIGd1aW50IHRpbWVvdXRfaWQ7CitAQCAtNTYsOCArNTcsNiBAQCBlbnVtCisgICBSRU1PVEVf TUlORVJfVElNRU9VVCA9IDEwIC8qIHMgKi8KKyB9OworIAorLXN0YXRpYyBjb25zdCBnY2hhciAq TUlORVJfRklMRVMgPSAib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkZpbGVzIjsKKy0K KyAKKyBzdGF0aWMgdm9pZAorIHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25fcmVtb3ZlX3Rp bWVvdXQgKFBob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uICpzZWxmKQorQEAgLTE4MCwxNiArMTc5 LDE4IEBAIHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25fY2hlY2tfbm90aWZpY2F0aW9uIChQ aG90b3NJbmRleGluZ05vdGlmaWNhdGlvbiAqc2VsCisgICBHU0xpc3QgKnJ1bm5pbmcgPSBOVUxM OworICAgZ2Jvb2xlYW4gaXNfaW5kZXhpbmdfbG9jYWwgPSBGQUxTRTsKKyAgIGdib29sZWFuIGlz X2luZGV4aW5nX3JlbW90ZSA9IEZBTFNFOworKyAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrICBn ZG91YmxlIHByb2dyZXNzOworIAorLSAgcnVubmluZyA9IHRyYWNrZXJfbWluZXJfbWFuYWdlcl9n ZXRfcnVubmluZyAoc2VsZi0+bWFuYWdlcik7CistICBpZiAoZ19zbGlzdF9maW5kX2N1c3RvbSAo cnVubmluZywgKGdjb25zdHBvaW50ZXIpIE1JTkVSX0ZJTEVTLCAoR0NvbXBhcmVGdW5jKSBnX3N0 cmNtcDApICE9IE5VTEwpCistICAgIHsKKy0gICAgICBnZG91YmxlIHByb2dyZXNzOworKyAgdHJh Y2tlcl9taW5lcl9jYWxsX2dldF9wcm9ncmVzc19zeW5jIChzZWxmLT5taW5lcl9mc19wcm94eSwg JnByb2dyZXNzLCBOVUxMLCAmZXJyb3IpOworKyAgaWYgKGVycm9yKSB7CisrICAgIGdfd2Fybmlu ZyAoIkNvdWxkbid0IGdldCBpbmRleGluZyBwcm9ncmVzcyBmcm9tIFRyYWNrZXIgTWluZXIgRlM6 ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworIAorLSAgICAgIHRyYWNrZXJfbWluZXJfbWFuYWdlcl9n ZXRfc3RhdHVzIChzZWxmLT5tYW5hZ2VyLCBNSU5FUl9GSUxFUywgTlVMTCwgJnByb2dyZXNzLCBO VUxMKTsKKy0gICAgICBpZiAocHJvZ3Jlc3MgPCAxKQorLSAgICAgICAgaXNfaW5kZXhpbmdfbG9j YWwgPSBUUlVFOworLSAgICB9CisrICAgIGdfY2xlYXJfZXJyb3IgKCZlcnJvcik7CisrICB9IGVs c2UgeworKyAgICBpZiAocHJvZ3Jlc3MgPCAxKQorKyAgICAgIGlzX2luZGV4aW5nX2xvY2FsID0g VFJVRTsKKysgIH0KKyAKKyAgIGFwcCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQgKCk7Cisg ICBtaW5lcnNfcnVubmluZyA9IHBob3Rvc19hcHBsaWNhdGlvbl9nZXRfbWluZXJzX3J1bm5pbmcg KFBIT1RPU19BUFBMSUNBVElPTiAoYXBwKSk7CitAQCAtMjIyLDcgKzIyMyw2IEBAIHBob3Rvc19p bmRleGluZ19ub3RpZmljYXRpb25fZGlzcG9zZSAoR09iamVjdCAqb2JqZWN0KQorICAgcGhvdG9z X2luZGV4aW5nX25vdGlmaWNhdGlvbl9yZW1vdmVfdGltZW91dCAoc2VsZik7CisgCisgICBnX2Ns ZWFyX29iamVjdCAoJnNlbGYtPm50ZmN0bl9tbmdyKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2Vs Zi0+bWFuYWdlcik7CisgCisgICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX2luZGV4aW5nX25vdGlm aWNhdGlvbl9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlIChvYmplY3QpOworIH0KK0BAIC0yNDAsMTMg KzI0MCwyNSBAQCBwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX2luaXQgKFBob3Rvc0luZGV4 aW5nTm90aWZpY2F0aW9uICpzZWxmKQorICAgYXBwID0gZ19hcHBsaWNhdGlvbl9nZXRfZGVmYXVs dCAoKTsKKyAKKyAgIHsKKysgICAgZ19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHRyYWNr ZXJfcXVldWU7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CisrICAgIGNv bnN0IGdjaGFyICptaW5lcl9mc19idXNuYW1lOworKworKyAgICB0cmFja2VyX3F1ZXVlID0gcGhv dG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAoTlVMTCwgJmVycm9yKTsKKysKKysgICAg aWYgKHRyYWNrZXJfcXVldWUpIHsKKysgICAgICBtaW5lcl9mc19idXNuYW1lID0gcGhvdG9zX3Ry YWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2J1c25hbWUgKHRyYWNrZXJfcXVldWUpOworKyAgICAg IHNlbGYtPm1pbmVyX2ZzX3Byb3h5ID0gdHJhY2tlcl9taW5lcl9wcm94eV9uZXdfZm9yX2J1c19z eW5jIChHX0JVU19UWVBFX1NFU1NJT04sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19O T05FLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtaW5lcl9mc19idXNuYW1lLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL29yZy9mcmVl ZGVza3RvcC9UcmFja2VyMy9NaW5lci9GaWxlcyIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZlcnJvcik7CisrICAgIH0KKyAKKy0gICAgc2VsZi0+bWFuYWdlciA9IHRyYWNrZXJfbWlu ZXJfbWFuYWdlcl9uZXdfZnVsbCAoRkFMU0UsICZlcnJvcik7CisgICAgIGlmIChlcnJvciAhPSBO VUxMKQorICAgICAgIHsKKy0gICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgYSBU cmFja2VyTWluZXJNYW5hZ2VyLCBpbmRleGluZyBwcm9ncmVzcyBub3RpZmljYXRpb24gd29uJ3Qg d29yazogJXMiLAorLSAgICAgICAgICAgICAgICAgICBlcnJvci0+bWVzc2FnZSk7CisrICAgICAg ICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIHByb3h5IGZvciBUcmFja2VyIE1pbmVyIEZT LCBpbmRleGluZyBwcm9ncmVzcyBub3RpZmljYXRpb24gd29uJ3Qgd29yayIpOworICAgICAgICAg cmV0dXJuOworICAgICAgIH0KKyAgIH0KK0BAIC0yOTMsMTAgKzMwNSwxMSBAQCBwaG90b3NfaW5k ZXhpbmdfbm90aWZpY2F0aW9uX2luaXQgKFBob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uICpzZWxm KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR19DT05ORUNUX1NXQVBQRUQpOworIAorLSAgZ19zaWduYWxfY29ubmVjdF9zd2Fw cGVkIChzZWxmLT5tYW5hZ2VyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWluZXIt cHJvZ3Jlc3MiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChwaG90 b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX2NoZWNrX25vdGlmaWNhdGlvbiksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYpOworKyAgZ19zaWduYWxfY29ubmVjdF9vYmplY3QgKHNl bGYtPm1pbmVyX2ZzX3Byb3h5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9ncmVz cyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocGhvdG9zX2luZGV4 aW5nX25vdGlmaWNhdGlvbl9jaGVja19ub3RpZmljYXRpb24pLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DT05ORUNUX1NX QVBQRUQpOworIH0KKyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWl0ZW0tbWFuYWdlci5j IGIvc3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIuYworaW5kZXggYzQ0ZmJiZmMuLmU0NTExYmIxIDEw MDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIuYworKysrIGIvc3JjL3Bob3Rvcy1p dGVtLW1hbmFnZXIuYworQEAgLTQxLDEyICs0MSw5IEBACisgI2luY2x1ZGUgInBob3Rvcy1xdWVy eS5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLWNvbnRleHQuaCIKKyAjaW5jbHVkZSAicGhv dG9zLXNpbmdsZS1pdGVtLWpvYi5oIgorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1jaGFuZ2Ut ZXZlbnQuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaCIKKyAj aW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXV0aWxz LmgiCisgCistCisgc3RydWN0IF9QaG90b3NJdGVtTWFuYWdlcgorIHsKKyAgIFBob3Rvc0Jhc2VN YW5hZ2VyIHBhcmVudF9pbnN0YW5jZTsKK0BAIC02MCw3ICs1Nyw3IEBAIHN0cnVjdCBfUGhvdG9z SXRlbU1hbmFnZXIKKyAgIFBob3Rvc0Jhc2VJdGVtICphY3RpdmVfY29sbGVjdGlvbjsKKyAgIFBo b3Rvc0Jhc2VNYW5hZ2VyICoqaXRlbV9tbmdyX2NobGRybjsKKyAgIFBob3Rvc0xvYWRTdGF0ZSBs b2FkX3N0YXRlOworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKm1vbml0b3I7CisrICBU cmFja2VyTm90aWZpZXIgKm5vdGlmaWVyOworICAgUGhvdG9zVHJhY2tlclF1ZXVlICpxdWV1ZTsK KyAgIFBob3Rvc1dpbmRvd01vZGUgbW9kZTsKKyAgIGdib29sZWFuIGZ1bGxzY3JlZW47CitAQCAt MzExLDcgKzMwOCw3IEBAIHBob3Rvc19pdGVtX21hbmFnZXJfYWRkX2N1cnNvcl9mb3JfbW9kZSAo UGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisgICBnX3JldHVybl9pZl9mYWlsIChiYXNlX2l0ZW1f dHlwZSA9PSBHX1RZUEVfTk9ORQorICAgICAgICAgICAgICAgICAgICAgfHwgKGJhc2VfaXRlbV90 eXBlICE9IFBIT1RPU19UWVBFX0JBU0VfSVRFTQorICAgICAgICAgICAgICAgICAgICAgICAgICYm IGdfdHlwZV9pc19hIChiYXNlX2l0ZW1fdHlwZSwgUEhPVE9TX1RZUEVfQkFTRV9JVEVNKSkpOwor LSAgZ19yZXR1cm5faWZfZmFpbCAoVFJBQ0tFUl9TUEFSUUxfSVNfQ1VSU09SIChjdXJzb3IpKTsK KysgIGdfcmV0dXJuX2lmX2ZhaWwgKFRSQUNLRVJfSVNfU1BBUlFMX0NVUlNPUiAoY3Vyc29yKSk7 CisgICBnX3JldHVybl9pZl9mYWlsIChtb2RlICE9IFBIT1RPU19XSU5ET1dfTU9ERV9OT05FKTsK KyAgIGdfcmV0dXJuX2lmX2ZhaWwgKG1vZGUgIT0gUEhPVE9TX1dJTkRPV19NT0RFX0VESVQpOwor ICAgZ19yZXR1cm5faWZfZmFpbCAobW9kZSAhPSBQSE9UT1NfV0lORE9XX01PREVfUFJFVklFVyk7 CitAQCAtNTI5LDIxICs1MjYsMjMgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9pdGVtX2NyZWF0ZWQg KFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLCBjb25zdCBnY2hhciAqdXJuKQorIAorIAorIHN0YXRp YyB2b2lkCistcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAoZ3Bv aW50ZXIga2V5LCBncG9pbnRlciB2YWx1ZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKQorK3Bob3Rvc19p dGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nX2ZvcmVhY2ggKGdwb2ludGVyIGRhdGEsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9k YXRhKQorIHsKKyAgIFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmID0gUEhPVE9TX0lURU1fTUFOQUdF UiAodXNlcl9kYXRhKTsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqY2hhbmdlX2V2ZW50 ID0gKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqKSB2YWx1ZTsKKy0gIFBob3Rvc1RyYWNrZXJD aGFuZ2VFdmVudFR5cGUgY2hhbmdlX3R5cGU7CisrICBUcmFja2VyTm90aWZpZXJFdmVudCAqZXZl bnQgPSAoVHJhY2tlck5vdGlmaWVyRXZlbnQgKikgZGF0YTsKKysgIFRyYWNrZXJOb3RpZmllckV2 ZW50VHlwZSBjaGFuZ2VfdHlwZTsKKyAgIGNvbnN0IGdjaGFyICpjaGFuZ2VfdXJuOworIAorLSAg Y2hhbmdlX3R5cGUgPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3R5cGUgKGNoYW5n ZV9ldmVudCk7CistICBjaGFuZ2VfdXJuID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dl dF91cm4gKGNoYW5nZV9ldmVudCk7CisrICBjaGFuZ2VfdHlwZSA9IHRyYWNrZXJfbm90aWZpZXJf ZXZlbnRfZ2V0X2V2ZW50X3R5cGUgKGV2ZW50KTsKKysgIGNoYW5nZV91cm4gPSB0cmFja2VyX25v dGlmaWVyX2V2ZW50X2dldF91cm4gKGV2ZW50KTsKKyAKKy0gIGlmIChjaGFuZ2VfdHlwZSA9PSBQ SE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfQ0hBTkdFRCkKKysgIGlmIChjaGFuZ2VfdHlwZSA9 PSBUUkFDS0VSX05PVElGSUVSX0VWRU5UX1VQREFURSkKKyAgICAgeworICAgICAgIEdPYmplY3Qg Km9iamVjdDsKKyAKKyAgICAgICBvYmplY3QgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9vYmpl Y3RfYnlfaWQgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBjaGFuZ2VfdXJuKTsKKysgICAg ICBnX21lc3NhZ2UgKCJVUERBVEUgZXZlbnQgZm9yICVzLCBvYmplY3QgJXAiLCBjaGFuZ2VfdXJu LCBvYmplY3QpOworICAgICAgIGlmIChvYmplY3QgIT0gTlVMTCkKKyAgICAgICAgIHsKKyAgICAg ICAgICAgcGhvdG9zX2Jhc2VfaXRlbV9yZWZyZXNoIChQSE9UT1NfQkFTRV9JVEVNIChvYmplY3Qp KTsKK0BAIC01NTcsMTUgKzU1NiwxNyBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVu ZGluZ19mb3JlYWNoIChncG9pbnRlciBrZXksIGdwb2ludGVyIHZhbHVlLCBncG9pbgorICAgICAg ICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfQorLSAgZWxzZSBpZiAoY2hhbmdlX3R5cGUgPT0g UEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NSRUFURUQpCisrICBlbHNlIGlmIChjaGFuZ2Vf dHlwZSA9PSBUUkFDS0VSX05PVElGSUVSX0VWRU5UX0NSRUFURSkKKyAgICAgeworKyAgICAgIGdf bWVzc2FnZSAoIkNSRUFURSBldmVudCBmb3IgJXMiLCBjaGFuZ2VfdXJuKTsKKyAgICAgICBwaG90 b3NfaXRlbV9tYW5hZ2VyX2l0ZW1fY3JlYXRlZCAoc2VsZiwgY2hhbmdlX3Vybik7CisgICAgIH0K Ky0gIGVsc2UgaWYgKGNoYW5nZV90eXBlID09IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9E RUxFVEVEKQorKyAgZWxzZSBpZiAoY2hhbmdlX3R5cGUgPT0gVFJBQ0tFUl9OT1RJRklFUl9FVkVO VF9ERUxFVEUpCisgICAgIHsKKyAgICAgICBHT2JqZWN0ICpvYmplY3Q7CisgCisgICAgICAgb2Jq ZWN0ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfb2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9N QU5BR0VSIChzZWxmKSwgY2hhbmdlX3Vybik7CisrICAgICAgZ19tZXNzYWdlICgiREVMRVRFIGV2 ZW50IGZvciAlcywgb2JqZWN0ICVwIiwgY2hhbmdlX3Vybiwgb2JqZWN0KTsKKyAgICAgICBpZiAo b2JqZWN0ICE9IE5VTEwpCisgICAgICAgICB7CisgICAgICAgICAgIHBob3Rvc19iYXNlX2l0ZW1f ZGVzdHJveSAoUEhPVE9TX0JBU0VfSVRFTSAob2JqZWN0KSk7CitAQCAtNTc3LDkgKzU3OCwxNSBA QCBwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19mb3JlYWNoIChncG9pbnRlciBr ZXksIGdwb2ludGVyIHZhbHVlLCBncG9pbgorIAorIAorIHN0YXRpYyB2b2lkCistcGhvdG9zX2l0 ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmcgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLCBHSGFz aFRhYmxlICpjaGFuZ2VzKQorLXsKKy0gIGdfaGFzaF90YWJsZV9mb3JlYWNoIChjaGFuZ2VzLCBw aG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19mb3JlYWNoLCBzZWxmKTsKKytwaG90 b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZyAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAg ICpzZXJ2aWNlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAgICAgICAqZ3JhcGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdQdHJBcnJheSAgICAgICAgICpldmVudHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICB1c2VyX2RhdGEpCisreworKyAgaWYgKGdfc3Ry X2VxdWFsIChncmFwaCwgVFJBQ0tFUl9QSUNUVVJFU19HUkFQSCkpIHsKKysgICAgZ19wdHJfYXJy YXlfZm9yZWFjaCAoZXZlbnRzLCBwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19m b3JlYWNoLCBzZWxmKTsKKysgIH0KKyB9CisgCisgCitAQCAtNzE3LDcgKzcyNCw3IEBAIHBob3Rv c19pdGVtX21hbmFnZXJfd2FpdF9mb3JfY2hhbmdlc190aW1lb3V0IChncG9pbnRlciB1c2VyX2Rh dGEpCisgICAgICAgZ19hdXRvcHRyIChQaG90b3NRdWVyeSkgcXVlcnkgPSBOVUxMOworICAgICAg IGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCistICAgICAgc3BhcnFsID0gZ19z dHJkdXBfcHJpbnRmICgiU0VMRUNUID91cm4gbmllOnVybCAoP3VybikgV0hFUkUgeyA/dXJuIG5p ZTp1cmwgJyVzJyB9IiwgdXJpKTsKKysgICAgICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJT RUxFQ1QgP3VybiBuaWU6aXNTdG9yZWRBcyAoP3VybikgV0hFUkUgeyA/dXJuIG5pZTppc1N0b3Jl ZEFzICclcycgfSIsIHVyaSk7CisgICAgICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChOVUxM LCBzcGFycWwpOworICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX3NlbGVjdCAoc2VsZi0+cXVl dWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSwKK0BAIC0xMDM4 LDcgKzEwNDUsNyBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVj dCkKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+YWN0aXZlX29iamVjdCk7CisgICBnX2NsZWFy X29iamVjdCAoJnNlbGYtPmxvYWRlcl9jYW5jZWxsYWJsZSk7CisgICBnX2NsZWFyX29iamVjdCAo JnNlbGYtPmFjdGl2ZV9jb2xsZWN0aW9uKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bW9u aXRvcik7CisrICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm5vdGlmaWVyKTsKKyAgIGdfY2xlYXJf b2JqZWN0ICgmc2VsZi0+cXVldWUpOworIAorICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19pdGVt X21hbmFnZXJfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKK0BAIC0xMDkzLDIwICsx MTAwLDI0IEBAIHBob3Rvc19pdGVtX21hbmFnZXJfaW5pdCAoUGhvdG9zSXRlbU1hbmFnZXIgKnNl bGYpCisgCisgICBzZWxmLT5tb2RlID0gUEhPVE9TX1dJTkRPV19NT0RFX05PTkU7CisgCistICBz ZWxmLT5tb25pdG9yID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZHVwX3NpbmdsZXRv biAoTlVMTCwgTlVMTCk7CistICBpZiAoR19MSUtFTFkgKHNlbGYtPm1vbml0b3IgIT0gTlVMTCkp CistICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChzZWxmLT5tb25pdG9yLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImNoYW5nZXMtcGVuZGluZyIsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0NBTExCQUNLIChwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVu ZGluZyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR19DT05ORUNUX1NXQVBQRUQpOworLQorICAgeworICAgICBnX2F1 dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworIAorICAgICBzZWxmLT5xdWV1ZSA9IHBob3Rv c190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24gKE5VTEwsICZlcnJvcik7CisgICAgIGlmIChH X1VOTElLRUxZIChlcnJvciAhPSBOVUxMKSkKKy0gICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8g Y3JlYXRlIFBob3Rvc1RyYWNrZXJRdWV1ZTogJXMiLCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAg eworKyAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBQaG90b3NUcmFja2VyUXVl dWU6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgICAgc2VsZi0+bm90aWZpZXIgPSBOVUxM OworKyAgICAgIH0KKysgICAgZWxzZQorKyAgICAgIHsKKysgICAgICAgIHNlbGYtPm5vdGlmaWVy ID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X25vdGlmaWVyIChzZWxmLT5xdWV1ZSk7CisrICAg ICAgICBnX3NpZ25hbF9jb25uZWN0X29iamVjdCAoc2VsZi0+bm90aWZpZXIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgR19DQUxMQkFDSyAocGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRp bmcpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR19DT05ORUNUX1NXQVBQRUQpOworKyAgICAgIH0KKyAg IH0KKyAKKyAgIHNlbGYtPmZ1bGxzY3JlZW4gPSBGQUxTRTsKK0BAIC0xMjQxLDcgKzEyNTIsNyBA QCBwaG90b3NfaXRlbV9tYW5hZ2VyX2FkZF9pdGVtIChQaG90b3NJdGVtTWFuYWdlciAqc2VsZiwK KyAgIGdfcmV0dXJuX2lmX2ZhaWwgKGJhc2VfaXRlbV90eXBlID09IEdfVFlQRV9OT05FCisgICAg ICAgICAgICAgICAgICAgICB8fCAoYmFzZV9pdGVtX3R5cGUgIT0gUEhPVE9TX1RZUEVfQkFTRV9J VEVNCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ190eXBlX2lzX2EgKGJhc2VfaXRlbV90 eXBlLCBQSE9UT1NfVFlQRV9CQVNFX0lURU0pKSk7CistICBnX3JldHVybl9pZl9mYWlsIChUUkFD S0VSX1NQQVJRTF9JU19DVVJTT1IgKGN1cnNvcikpOworKyAgZ19yZXR1cm5faWZfZmFpbCAoVFJB Q0tFUl9JU19TUEFSUUxfQ1VSU09SIChjdXJzb3IpKTsKKyAKKyAgIGlkID0gdHJhY2tlcl9zcGFy cWxfY3Vyc29yX2dldF9zdHJpbmcgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfVVJOLCBO VUxMKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKGlkICE9IE5VTEwgJiYgaWRbMF0gIT0gJ1wwJyk7 CitAQCAtMTM3MCw3ICsxMzgxLDcgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9jcmVhdGVfaXRlbSAo UGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisgICBnX3JldHVybl92YWxfaWZfZmFpbCAoYmFzZV9p dGVtX3R5cGUgPT0gR19UWVBFX05PTkUKKyAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoYmFz ZV9pdGVtX3R5cGUgIT0gUEhPVE9TX1RZUEVfQkFTRV9JVEVNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICYmIGdfdHlwZV9pc19hIChiYXNlX2l0ZW1fdHlwZSwgUEhPVE9TX1RZUEVfQkFT RV9JVEVNKSksIE5VTEwpOworLSAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFRSQUNLRVJfU1BBUlFM X0lTX0NVUlNPUiAoY3Vyc29yKSwgTlVMTCk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoVFJB Q0tFUl9JU19TUEFSUUxfQ1VSU09SIChjdXJzb3IpLCBOVUxMKTsKKyAKKyAgIGlkID0gdHJhY2tl cl9zcGFycWxfY3Vyc29yX2dldF9zdHJpbmcgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNf VVJOLCBOVUxMKTsKKyAgIGl0ZW0gPSBQSE9UT1NfQkFTRV9JVEVNIChwaG90b3NfYmFzZV9tYW5h Z2VyX2dldF9vYmplY3RfYnlfaWQgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBpZCkpOwor ZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtcXVhcmtzLmMgYi9zcmMvcGhvdG9zLXF1YXJrcy5jCitp bmRleCAwODcwZWY2Mi4uNWVlMjU3NDUgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXF1YXJrcy5j CisrKysgYi9zcmMvcGhvdG9zLXF1YXJrcy5jCitAQCAtMjUsNjggKzI1LDY4IEBACisgR1F1YXJr CisgcGhvdG9zX3F1YXJrc19mbGFzaF9vZmZfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdf cXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy50cmFja2VyLXByb2plY3Qub3Jn L3RlbXAvbm1tI2ZsYXNoLW9mZiIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry aW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9ubW0jZmxhc2gt b2ZmIik7CisgfQorIAorIAorIEdRdWFyaworIHBob3Rvc19xdWFya3NfZmxhc2hfb25fcXVhcmsg KHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDov L3d3dy50cmFja2VyLXByb2plY3Qub3JnL3RlbXAvbm1tI2ZsYXNoLW9uIik7CisrICByZXR1cm4g Z19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3Jn L29udG9sb2d5L3YzL25tbSNmbGFzaC1vbiIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3Nf cXVhcmtzX29yaWVudGF0aW9uX2JvdHRvbV9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19x dWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcv b250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi1ib3R0b20iKTsKKysgIHJldHVy biBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5v cmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLWJvdHRvbSIpOworIH0KKyAKKyAKKyBHUXVh cmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX2JvdHRvbV9taXJyb3JfcXVhcmsgKHZvaWQp CisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5z ZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24t Ym90dG9tLW1pcnJvciIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgi aHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRpb24t Ym90dG9tLW1pcnJvciIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVu dGF0aW9uX2xlZnRfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0 aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAw Ny8wMy8yMi9uZm8jb3JpZW50YXRpb24tbGVmdCIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9z dGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9u Zm8jb3JpZW50YXRpb24tbGVmdCIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtz X29yaWVudGF0aW9uX2xlZnRfbWlycm9yX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1 YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9v bnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLWxlZnQtbWlycm9yIik7CisrICBy ZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25v bWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRhdGlvbi1sZWZ0LW1pcnJvciIpOworIH0KKyAK KyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX3JpZ2h0X3F1YXJrICh2b2lk KQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cu c2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9u LXJpZ2h0Iik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8v dHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRhdGlvbi1yaWdodCIp OworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX3JpZ2h0X21p cnJvcl9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJp bmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIy L25mbyNvcmllbnRhdGlvbi1yaWdodC1taXJyb3IiKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21f c3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMv bmZvI29yaWVudGF0aW9uLXJpZ2h0LW1pcnJvciIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90 b3NfcXVhcmtzX29yaWVudGF0aW9uX3RvcF9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19x dWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcv b250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi10b3AiKTsKKysgIHJldHVybiBn X3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcv b250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLXRvcCIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBw aG90b3NfcXVhcmtzX29yaWVudGF0aW9uX3RvcF9taXJyb3JfcXVhcmsgKHZvaWQpCisgeworLSAg cmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rl c2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tdG9wLW1pcnJv ciIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNr ZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tdG9wLW1pcnJvciIp OworIH0KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYyBiL3NyYy9waG90 b3MtcXVlcnktYnVpbGRlci5jCitpbmRleCBlMDczNWJkZS4uNDZkNjVlOGYgMTAwNjQ0CistLS0g YS9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYworKysrIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWls ZGVyLmMKK0BAIC0yNSw2ICsyNSw3IEBACisgCisgI2luY2x1ZGUgPHN0cmluZy5oPgorIAorKyNp bmNsdWRlICJwaG90b3MtYXBwbGljYXRpb24uaCIKKyAjaW5jbHVkZSAicGhvdG9zLWJhc2UtbWFu YWdlci5oIgorICNpbmNsdWRlICJwaG90b3MtcXVlcnkuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXF1 ZXJ5LWJ1aWxkZXIuaCIKK0BAIC0zMiw2ICszMyw3IEBACisgI2luY2x1ZGUgInBob3Rvcy1zb3Vy Y2UtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuaCIK KyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuaCIKKysjaW5jbHVkZSAicGhv dG9zLXRyYWNrZXItcXVldWUuaCIKKyAKKyAjZGVmaW5lIFBIT1RPU19RVUVSWV9DT0xMRUNUSU9O U19JREVOVElGSUVSICJwaG90b3M6Y29sbGVjdGlvbjoiCisgI2RlZmluZSBQSE9UT1NfUVVFUllf TE9DQUxfQ09MTEVDVElPTlNfSURFTlRJRklFUiAicGhvdG9zOmNvbGxlY3Rpb246bG9jYWw6Igor QEAgLTQ4LDEyICs1MCwxNCBAQCBjb25zdCBnY2hhciAqcGhvdG9zX2RlZmF1bHRfZmlsdGVyID0g XAorIAorIHN0YXRpYyBnY2hhciAqCisgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rv c1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdib29sZWFuIGdsb2JhbCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No YXIgKnZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBmbGFncywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvdG9zT2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0 X2NudHJscikKKyB7CisgICBQaG90b3NTcGFycWxUZW1wbGF0ZSAqdGVtcGxhdGU7CistICBjb25z dCBnY2hhciAqcHJvamVjdGlvbiA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqbWluZXJfZnNfYnVz bmFtZSA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqbWFpbl9wcm9qZWN0aW9uID0gTlVMTDsKKysg IGNvbnN0IGdjaGFyICpzZWNvbmRfcHJvamVjdGlvbiA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdj aGFyICppdGVtX3BhdHRlcm4gPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc2VhcmNoX2Zp bHRlciA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzb3VyY2VfZmlsdGVyID0gTlVMTDsK K0BAIC02MywyOSArNjcsMzUgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1Nl YXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgCisgICB0ZW1wbGF0ZSA9IHBob3Rvc19iYXNlX21h bmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoc3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsK KyAKKy0gIHByb2plY3Rpb24gPSAiP3VybiAiCistICAgICAgICAgICAgICAgIm5pZTp1cmwgKD91 cm4pICIKKy0gICAgICAgICAgICAgICAibmZvOmZpbGVOYW1lICg/dXJuKSAiCistICAgICAgICAg ICAgICAgIm5pZTptaW1lVHlwZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICJuaWU6dGl0bGUg KD91cm4pICIKKy0gICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1l ICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcnKSAiCistICAgICAgICAg ICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5mbzpmaWxlTGFzdE1vZGlmaWVkICg/dXJuKSwgbmll OmNvbnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBBUyA/bXRpbWUgIgorLSAgICAgICAgICAgICAg ICJuYW86aWRlbnRpZmllciAoP3VybikgIgorLSAgICAgICAgICAgICAgICJyZGY6dHlwZSAoP3Vy bikgIgorLSAgICAgICAgICAgICAgICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSAiCistICAgICAgICAg ICAgICAgIiggRVhJU1RTIHsgP3VybiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZv cml0ZSB9ICkgIgorLSAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmNvOmNvbnRyaWJ1 dG9yID9jb250cmlidXRvciBGSUxURVIgKCA/Y29udHJpYnV0b3IgIT0gP2NyZWF0b3IgKSB9ICkg IgorLSAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlKG5mbzpmaWxlQ3JlYXRlZCAoP3Vy biksIG5pZTpjb250ZW50Q3JlYXRlZCAoP3VybikpICIKKy0gICAgICAgICAgICAgICAibmZvOndp ZHRoICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5mbzpoZWlnaHQgKD91cm4pICIKKy0gICAg ICAgICAgICAgICAibmZvOmVxdWlwbWVudCAoP3VybikgIgorLSAgICAgICAgICAgICAgICJuZm86 b3JpZW50YXRpb24gKD91cm4pICIKKy0gICAgICAgICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAo P3VybikgIgorLSAgICAgICAgICAgICAgICJubW06Zm51bWJlciAoP3VybikgIgorLSAgICAgICAg ICAgICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4pICIKKy0gICAgICAgICAgICAgICAibm1tOmlz b1NwZWVkICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5tbTpmbGFzaCAoP3VybikgIgorLSAg ICAgICAgICAgICAgICJzbG86bG9jYXRpb24gKD91cm4pICI7CisrICBtaW5lcl9mc19idXNuYW1l ID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2J1c25hbWUgKHN0YXRlLT5xdWV1 ZSk7CisrCisrICBtYWluX3Byb2plY3Rpb24gPSAiP3VybiAiCisrICAgICAgICAgICAgICAgICAg ICAiP2ZpbGUgIgorKyAgICAgICAgICAgICAgICAgICAgIm5mbzpmaWxlTmFtZSAoP2ZpbGUpIEFT ID9maWxlbmFtZSAiCisrICAgICAgICAgICAgICAgICAgICAibmllOm1pbWVUeXBlICg/dXJuKSBB UyA/bWltZXR5cGUgIgorKyAgICAgICAgICAgICAgICAgICAgIm5pZTp0aXRsZSAoP3VybikgQVMg P3RpdGxlICIKKysgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlIChuY286ZnVs bG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1bGxuYW1lICg/cHVibGlzaGVyKSwgJycpIEFTID9hdXRo b3JfbmFtZSAiCisrICAgICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmZvOmZp bGVMYXN0TW9kaWZpZWQgKD9maWxlKSwgbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBB UyA/bXRpbWUgIgorKyAgICAgICAgICAgICAgICAgICAgIm5hbzppZGVudGlmaWVyICg/dXJuKSBB UyA/aWRlbnRpZmllciAiCisrICAgICAgICAgICAgICAgICAgICAicmRmOnR5cGUgKD91cm4pIEFT ID90eXBlICIKKysgICAgICAgICAgICAgICAgICAgICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSBBUyA/ ZGF0YXNvdXJjZSAiCisrICAgICAgICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5jbzpj b250cmlidXRvciA/Y29udHJpYnV0b3IgRklMVEVSICggP2NvbnRyaWJ1dG9yICE9ID9jcmVhdG9y ICkgfSApIEFTID9oYXNfY29udHJpYnV0b3IgIgorKyAgICAgICAgICAgICAgICAgICAgInRyYWNr ZXI6Y29hbGVzY2UobmZvOmZpbGVDcmVhdGVkICg/ZmlsZSksIG5pZTpjb250ZW50Q3JlYXRlZCAo P3VybikpIEFTID9jdGltZSAiCisrICAgICAgICAgICAgICAgICAgICAibmZvOndpZHRoICg/dXJu KSBBUyA/d2lkdGggIgorKyAgICAgICAgICAgICAgICAgICAgIm5mbzpoZWlnaHQgKD91cm4pIEFT ID9oZWlnaHQgIgorKyAgICAgICAgICAgICAgICAgICAgIm5mbzplcXVpcG1lbnQgKD91cm4pIEFT ID9lcXVpcG1lbnQgIgorKyAgICAgICAgICAgICAgICAgICAgIm5mbzpvcmllbnRhdGlvbiAoP3Vy bikgQVMgP29yaWVudGF0aW9uICIKKysgICAgICAgICAgICAgICAgICAgICJubW06ZXhwb3N1cmVU aW1lICg/dXJuKSBBUyA/ZXhwb3N1cmVfdGltZSAiCisrICAgICAgICAgICAgICAgICAgICAibm1t OmZudW1iZXIgKD91cm4pIEFTID9mbnVtYmVyICIKKysgICAgICAgICAgICAgICAgICAgICJubW06 Zm9jYWxMZW5ndGggKD91cm4pIEFTID9mb2NhbF9sZW5ndGggIgorKyAgICAgICAgICAgICAgICAg ICAgIm5tbTppc29TcGVlZCAoP3VybikgQVMgP2lzb3NwZWVkICIKKysgICAgICAgICAgICAgICAg ICAgICJubW06Zmxhc2ggKD91cm4pIEFTID9mbGFzaCAiCisrICAgICAgICAgICAgICAgICAgICAi c2xvOmxvY2F0aW9uICg/dXJuKSBBUyA/bG9jYXRpb24gIjsKKysKKysgIHNlY29uZF9wcm9qZWN0 aW9uID0gIj91cm4gP2ZpbGUgP2ZpbGVuYW1lID9taW1ldHlwZSA/dGl0bGUgP2F1dGhvcl9uYW1l ID9tdGltZSA/aWRlbnRpZmllciA/dHlwZSA/ZGF0YXNvdXJjZSAiCisrICAgICAgICAgICAgICAg ICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2 b3JpdGUgfSApIEFTID9pc19mYXZvcml0ZSAiCisrICAgICAgICAgICAgICAgICAgICAgICI/aGFz X2NvbnRyaWJ1dG9yID9jdGltZSA/d2lkdGggP2hlaWdodCA/ZXF1aXBtZW50ID9vcmllbnRhdGlv biA/ZXhwb3N1cmVfdGltZSA/Zm51bWJlciAiCisrICAgICAgICAgICAgICAgICAgICAgICI/Zm9j YWxfbGVuZ3RoID9pc29zcGVlZCA/Zmxhc2ggP2xvY2F0aW9uICI7CisgCisgICBpdGVtX3BhdHRl cm4gPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxh Z3MpOworIAorQEAgLTk3LDcgKzEwNyw3IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQ aG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAorIAorICAgb3JkZXIgPSAiT1JERVIgQlkg REVTQyAoP210aW1lKSI7CisgCistICBpZiAoZ2xvYmFsICYmIChmbGFncyAmIFBIT1RPU19RVUVS WV9GTEFHU19VTkxJTUlURUQpID09IDApCisrICBpZiAodmFsdWVzID09IE5VTEwgJiYgKGZsYWdz ICYgUEhPVE9TX1FVRVJZX0ZMQUdTX1VOTElNSVRFRCkgPT0gMCkKKyAgICAgeworICAgICAgIGdp bnQgb2Zmc2V0ID0gMDsKKyAgICAgICBnaW50IHN0ZXAgPSA2MDsKK0BAIC0xMTIsMTIgKzEyMiwx NiBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRl ICpzdGF0ZSwKKyAgICAgfQorIAorICAgc3BhcnFsID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9n ZXRfc3BhcnFsICh0ZW1wbGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInByb2plY3Rpb24iLCBwcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWluZXJfZnNfYnVzbmFtZSIsIG1pbmVyX2Zz X2J1c25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJtYWluX3Byb2plY3Rpb24iLCBtYWluX3Byb2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWNvbmRfcHJvamVjdGlvbiIsIHNlY29uZF9w cm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiZmluYWxfcHJvamVjdGlvbiIsIHNlY29uZF9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVzIiwgdmFsdWVzID8gdmFsdWVz IDogIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJj b2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIsIGNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0 ZXJuIiwgaXRlbV9wYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAicGhvdG9zX2RlZmF1bHRfZmlsdGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVy LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic291cmNl X2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIiIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2Vh cmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8g c291cmNlX2ZpbHRlciA6ICIodHJ1ZSkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hf ZmlsdGVyIDogIih0cnVlKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJvcmRlciIsIG9yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0Iiwgb2Zmc2V0X2xpbWl0ID8gb2Zmc2V0X2xp bWl0IDogIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5VTEwpOworQEAgLTEzMyw2ICsxNDcsNyBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9jcmVhdGVf Y29sbGVjdGlvbl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKKyB7Cisg ICBnX2F1dG9wdHIgKEdEYXRlVGltZSkgbm93ID0gTlVMTDsKKyAgIFBob3Rvc1F1ZXJ5ICpxdWVy eTsKKysgIGdfYXV0b3B0ciAoVHJhY2tlclJlc291cmNlKSBjb2xsZWN0aW9uID0gTlVMTDsKKyAg IGdfYXV0b2ZyZWUgZ2NoYXIgKmlkZW50aWZpZXIgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hh ciAqc3BhcnFsID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnRpbWUgPSBOVUxMOworQEAg LTE0NCwxMyArMTU5LDE0IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2NyZWF0ZV9jb2xsZWN0aW9u X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAorICAgbm93ID0gZ19kYXRl X3RpbWVfbmV3X25vd191dGMgKCk7CisgICB0aW1lID0gZ19kYXRlX3RpbWVfZm9ybWF0X2lzbzg2 MDEgKG5vdyk7CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJJTlNFUlQgeyBfOnJl cyBhIG5mbzpEYXRhQ29udGFpbmVyIDsgYSBuaWU6RGF0YU9iamVjdCA7ICIKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm5pZTpjb250ZW50TGFzdE1vZGlmaWVkICclcycgOyAiCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6dGl0bGUgJyVzJyA7ICIKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm5hbzppZGVudGlmaWVyICclcycgfSIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRpbWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIpOworKyAgY29sbGVjdGlv biA9IHRyYWNrZXJfcmVzb3VyY2VfbmV3ICgiXzpyZXMiKTsKKysgIHRyYWNrZXJfcmVzb3VyY2Vf YWRkX3VyaSAoY29sbGVjdGlvbiwgInJkZjp0eXBlIiwgIm5mbzpEYXRhQ29udGFpbmVyIik7Cisr ICB0cmFja2VyX3Jlc291cmNlX2FkZF91cmkgKGNvbGxlY3Rpb24sICJyZGY6dHlwZSIsICJuaWU6 RGF0YU9iamVjdCIpOworKyAgdHJhY2tlcl9yZXNvdXJjZV9zZXRfc3RyaW5nIChjb2xsZWN0aW9u LCAibmllOmNvbnRlbnRMYXN0TW9kaWZpZWQiLCB0aW1lKTsKKysgIHRyYWNrZXJfcmVzb3VyY2Vf c2V0X3N0cmluZyAoY29sbGVjdGlvbiwgIm5pZTp0aXRsZSIsIG5hbWUpOworKyAgdHJhY2tlcl9y ZXNvdXJjZV9zZXRfc3RyaW5nIChjb2xsZWN0aW9uLCAibmFvOmlkZW50aWZpZXIiLCBpZGVudGlm aWVyKTsKKysKKysgIHNwYXJxbCA9IHRyYWNrZXJfcmVzb3VyY2VfcHJpbnRfc3BhcnFsX3VwZGF0 ZSAoY29sbGVjdGlvbiwgTlVMTCwgInRyYWNrZXI6UGljdHVyZXMiKTsKKyAKKyAgIHF1ZXJ5ID0g cGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJxbCk7CisgCitAQCAtMTgwLDcgKzE5Niw5IEBA IFBob3Rvc1F1ZXJ5ICoKKyBwaG90b3NfcXVlcnlfYnVpbGRlcl9jb3VudF9xdWVyeSAoUGhvdG9z U2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFncykKKyB7CisgICBQaG90b3NTcGFy cWxUZW1wbGF0ZSAqdGVtcGxhdGU7CistICBjb25zdCBnY2hhciAqcHJvamVjdGlvbiA9IE5VTEw7 CisrICBjb25zdCBnY2hhciAqbWluZXJfZnNfYnVzbmFtZSA9IE5VTEw7CisrICBjb25zdCBnY2hh ciAqY291bnRfcHJvamVjdGlvbiA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqdmFsdWVfcHJvamVj dGlvbiA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICppdGVtX3BhdHRlcm4gPSBOVUxMOwor ICAgZ19hdXRvZnJlZSBnY2hhciAqc2VhcmNoX2ZpbHRlciA9IE5VTEw7CisgICBnX2F1dG9mcmVl IGdjaGFyICpzb3VyY2VfZmlsdGVyID0gTlVMTDsKK0BAIC0xODksNyArMjA3LDEwIEBAIHBob3Rv c19xdWVyeV9idWlsZGVyX2NvdW50X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0 YXRlLCBnaW50IGZsYWdzKQorIAorICAgdGVtcGxhdGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dl dF9zcGFycWxfdGVtcGxhdGUgKHN0YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7CisgCistICBw cm9qZWN0aW9uID0gIkNPVU5UKD91cm4pICI7CisrICBtaW5lcl9mc19idXNuYW1lID0gcGhvdG9z X3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2J1c25hbWUgKHN0YXRlLT5xdWV1ZSk7CisrCisr ICB2YWx1ZV9wcm9qZWN0aW9uID0gIj91cm4gIjsKKysgIGNvdW50X3Byb2plY3Rpb24gPSAiQ09V TlQoP3VybikgIjsKKyAKKyAgIGl0ZW1fcGF0dGVybiA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0 X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFncyk7CisgCitAQCAtMjAwLDEyICsyMjEsMTYg QEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY291bnRfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRT dGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MpCisgICAgIH0KKyAKKyAgIHNwYXJxbCA9IHBob3Rvc19z cGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJxbCAodGVtcGxhdGUsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9qZWN0aW9uIiwgcHJvamVjdGlvbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pbmVyX2ZzX2J1 c25hbWUiLCBtaW5lcl9mc19idXNuYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAibWFpbl9wcm9qZWN0aW9uIiwgdmFsdWVfcHJvamVjdGlvbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlY29uZF9wcm9q ZWN0aW9uIiwgdmFsdWVfcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImZpbmFsX3Byb2plY3Rpb24iLCBjb3VudF9wcm9qZWN0aW9uLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVzIiwg IiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xs ZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIsIGNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJu IiwgaXRlbV9wYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicGhvdG9zX2RlZmF1bHRfZmlsdGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic291cmNlX2Zp bHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIiIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNo X2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291 cmNlX2ZpbHRlciA6ICIodHJ1ZSkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmls dGVyIDogIih0cnVlKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJvcmRlciIsICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAib2Zmc2V0X2xpbWl0IiwgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworQEAgLTI2NCw3ICsyODksNyBAQCBwaG90b3Nf cXVlcnlfYnVpbGRlcl9mZXRjaF9jb2xsZWN0aW9uc19sb2NhbCAoUGhvdG9zU2VhcmNoQ29udGV4 dFN0YXRlICpzdGF0ZSkKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCisg ICBzcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoc3RhdGUsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBIT1RPU19RVUVSWV9GTEFHU19DT0xMRUNUSU9OUworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgUEhPVE9TX1FVRVJZX0ZMQUdTX0xPQ0FMCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQSE9UT1NfUVVFUllfRkxBR1Nf VU5MSU1JVEVELAorQEAgLTI4NCw3ICszMDksNyBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9nbG9i YWxfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgICBQaG90b3NRdWVy eSAqcXVlcnk7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworIAorLSAgc3Bh cnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKHN0YXRlLCBUUlVFLCBmbGFncywgb2Zm c2V0X2NudHJscik7CisrICBzcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoc3Rh dGUsIE5VTEwsIGZsYWdzLCBvZmZzZXRfY250cmxyKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5 X25ldyAoc3RhdGUsIHNwYXJxbCk7CisgCisgICByZXR1cm4gcXVlcnk7CitAQCAtMzEzLDEwICsz MzgsMTkgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfc2V0X2NvbGxlY3Rpb25fcXVlcnkgKFBob3Rv c1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgICBQaG90b3NRdWVyeSAqcXVlcnk7CisgICBn X2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworIAorLSAgc3BhcnFsID0gZ19zdHJkdXBf cHJpbnRmICgiJXMgeyA8JXM+IG5pZTppc1BhcnRPZiA8JXM+IH0iLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXR0aW5nID8gIklOU0VSVCIgOiAiREVMRVRFIiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgaXRlbV91cm4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbGxlY3Rpb25fdXJuKTsKKysgIGlmIChzZXR0aW5nKQorKyAgICBzcGFycWwgPSBnX3N0cmR1 cF9wcmludGYgKCJJTlNFUlQgREFUQSB7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiICBHUkFQSCB0cmFja2VyOlBpY3R1cmVzIHsiCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiAgICA8JXM+IGEgbmllOkRhdGFPYmplY3QgLCBubW06UGhvdG8gOyAiCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgIG5pZTppc1BhcnRPZiA8JXM+ICIKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiICB9IgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJ9IiwgaXRlbV91cm4sIGNvbGxlY3Rpb25fdXJuKTsKKysgIGVsc2UKKysgICAgc3Bh cnFsID0gZ19zdHJkdXBfcHJpbnRmICgiREVMRVRFIERBVEEgeyAiCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiAgR1JBUEggdHJhY2tlcjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgICAgPCVzPiBuaWU6aXNQYXJ0T2YgPCVzPiAiCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiAgfSIKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAifSIsIGl0ZW1fdXJuLCBjb2xsZWN0aW9uX3Vybik7CisgICBxdWVyeSA9IHBob3Rvc19x dWVyeV9uZXcgKHN0YXRlLCBzcGFycWwpOworIAorICAgcmV0dXJuIHF1ZXJ5OworQEAgLTMyNiwx NyArMzYwLDE0IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX3NldF9jb2xsZWN0aW9uX3F1ZXJ5IChQ aG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAorIFBob3Rvc1F1ZXJ5ICoKKyBwaG90b3Nf cXVlcnlfYnVpbGRlcl9zaW5nbGVfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3Rh dGUsIGdpbnQgZmxhZ3MsIGNvbnN0IGdjaGFyICpyZXNvdXJjZSkKKyB7CistICBnX2F1dG9wdHIg KEdSZWdleCkgcmVnZXggPSBOVUxMOworICAgUGhvdG9zUXVlcnkgKnF1ZXJ5OworLSAgZ19hdXRv ZnJlZSBnY2hhciAqcmVwbGFjZW1lbnQgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc3Bh cnFsID0gTlVMTDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnRtcCA9IE5VTEw7CisrICBnX2F1dG9m cmVlIGdjaGFyICp2YWx1ZXMgPSBOVUxMOworKworKyAgdmFsdWVzID0gZ19zdHJkdXBfcHJpbnRm ICgiVkFMVUVTID91cm4geyA8JXM+IH0iLCByZXNvdXJjZSk7CisgCistICB0bXAgPSBwaG90b3Nf cXVlcnlfYnVpbGRlcl9xdWVyeSAoc3RhdGUsIEZBTFNFLCBmbGFncywgTlVMTCk7CisrICBzcGFy cWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoc3RhdGUsIHZhbHVlcywgZmxhZ3MsIE5V TEwpOworIAorLSAgcmVnZXggPSBnX3JlZ2V4X25ldyAoIlxcP3VybiIsIDAsIDAsIE5VTEwpOwor LSAgcmVwbGFjZW1lbnQgPSBnX3N0cmNvbmNhdCAoIjwiLCByZXNvdXJjZSwgIj4iLCBOVUxMKTsK Ky0gIHNwYXJxbCA9IGdfcmVnZXhfcmVwbGFjZSAocmVnZXgsIHRtcCwgLTEsIDAsIHJlcGxhY2Vt ZW50LCAwLCBOVUxMKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJx bCk7CisgCisgICByZXR1cm4gcXVlcnk7CitAQCAtMzU0LDcgKzM4NSwxNCBAQCBwaG90b3NfcXVl cnlfYnVpbGRlcl91cGRhdGVfbXRpbWVfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAq c3RhdGUsIGNvbnN0CisgICBub3cgPSBnX2RhdGVfdGltZV9uZXdfbm93X3V0YyAoKTsKKyAgIHRp bWUgPSBnX2RhdGVfdGltZV9mb3JtYXRfaXNvODYwMSAobm93KTsKKyAKKy0gIHNwYXJxbCA9IGdf c3RyZHVwX3ByaW50ZiAoIklOU0VSVCBPUiBSRVBMQUNFIHsgPCVzPiBuaWU6Y29udGVudExhc3RN b2RpZmllZCAnJXMnIH0iLCByZXNvdXJjZSwgdGltZSk7CisrICBzcGFycWwgPSBnX3N0cmR1cF9w cmludGYgKCJXSVRIIHRyYWNrZXI6UGljdHVyZXMgIgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiREVMRVRFIHsgPCVzPiBuaWU6Y29udGVudExhc3RNb2RpZmllZCA/dGltZSB9ICIKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIklOU0VSVCB7ICIKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIiAgPCVzPiBhIG5tbTpQaG90byA7ICIKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiAgICBuaWU6Y29udGVudExhc3RNb2RpZmllZCAnJXMnICIKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIn0iCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXSEVS RSB7IDwlcz4gbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgP3RpbWUgfSIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc291cmNlLCByZXNvdXJjZSwgdGltZSwgcmVzb3VyY2UpOworICAg cXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFsKTsKKyAKKyAgIHJldHVybiBx dWVyeTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmMgYi9zcmMvcGhv dG9zLXNlYXJjaC1jb250ZXh0LmMKK2luZGV4IDRiNTAzNzk4Li42Zjg2OTRiYyAxMDA2NDQKKy0t LSBhL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuYworKysrIGIvc3JjL3Bob3Rvcy1zZWFyY2gt Y29udGV4dC5jCitAQCAtMzEsNiArMzEsNyBAQAorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLW1h dGNoLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuaCIK KyAjaW5jbHVkZSAicGhvdG9zLXNvdXJjZS1tYW5hZ2VyLmgiCisrI2luY2x1ZGUgInBob3Rvcy10 cmFja2VyLXF1ZXVlLmgiCisgCisgCisgR19ERUZJTkVfSU5URVJGQUNFIChQaG90b3NTZWFyY2hD b250ZXh0LCBwaG90b3Nfc2VhcmNoX2NvbnRleHQsIEdfVFlQRV9PQkpFQ1QpOworQEAgLTU0LDYg KzU1LDcgQEAgcGhvdG9zX3NlYXJjaF9jb250ZXh0X3N0YXRlX25ldyAoUGhvdG9zU2VhcmNoQ29u dGV4dCAqc2VsZikKKyAgIHN0YXRlLT5zcmNoX2NudHJsciA9IHBob3Rvc19zZWFyY2hfY29udHJv bGxlcl9uZXcgKCk7CisgICBzdGF0ZS0+c3JjaF9tdGNoX21uZ3IgPSBwaG90b3Nfc2VhcmNoX21h dGNoX21hbmFnZXJfbmV3IChzdGF0ZS0+c3JjaF9jbnRybHIpOworICAgc3RhdGUtPnNyY2hfdHlw X21uZ3IgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9uZXcgKCk7CisrICBzdGF0ZS0+cXVl dWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uIChOVUxMLCBOVUxMKTsKKyAK KyAgIHJldHVybiBzdGF0ZTsKKyB9CitAQCAtNjgsNiArNzAsNyBAQCBwaG90b3Nfc2VhcmNoX2Nv bnRleHRfc3RhdGVfZnJlZSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSkKKyAgIGdf b2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF9tdGNoX21uZ3IpOworICAgZ19vYmplY3RfdW5yZWYg KHN0YXRlLT5zcmNoX3R5cF9tbmdyKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF9j bnRybHIpOworKyAgZ19jbGVhcl9vYmplY3QgKCZzdGF0ZS0+cXVldWUpOworICAgZ19zbGljZV9m cmVlIChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUsIHN0YXRlKTsKKyB9CisgCitkaWZmIC0tZ2l0 IGEvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5oIGIvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4 dC5oCitpbmRleCAyYWY2Y2Y5Ni4uNWExOGQzODYgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNl YXJjaC1jb250ZXh0LmgKKysrKyBiL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuaAorQEAgLTQx LDYgKzQxLDcgQEAgc3RydWN0IF9QaG90b3NTZWFyY2hDb250ZXh0U3RhdGUKKyAgIGdwb2ludGVy IHNyY2hfdHlwX21uZ3I7CisgICBncG9pbnRlciBvZmZzZXRfY250cmxyOworICAgZ3BvaW50ZXIg c3JjaF9jbnRybHI7CisrICBncG9pbnRlciBxdWV1ZTsKKyB9OworIAorIFBob3Rvc1NlYXJjaENv bnRleHRTdGF0ZSAgICAgICpwaG90b3Nfc2VhcmNoX2NvbnRleHRfc3RhdGVfbmV3ICAgICAgKFBo b3Rvc1NlYXJjaENvbnRleHQgKnNlbGYpOworZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNo LW1hdGNoLW1hbmFnZXIuYyBiL3NyYy9waG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYworaW5k ZXggZTZkYzQyOWEuLjJiYTFmZDBmIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtbWF0 Y2gtbWFuYWdlci5jCisrKysgYi9zcmMvcGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMKK0BA IC0xNDgsNyArMTQ4LDcgQEAgcGhvdG9zX3NlYXJjaF9tYXRjaF9tYW5hZ2VyX2luaXQgKFBob3Rv c1NlYXJjaE1hdGNoTWFuYWdlciAqc2VsZikKKyAgICAgICAgICAgICAgICAgICAiICB0cmFja2Vy OmNhc2UtZm9sZCAodHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5j bzpmdWxsbmFtZSg/cHVibGlzaGVyKSkpLCIKKyAgICAgICAgICAgICAgICAgICAiICBcIiVzXCIp IjsKKyAgIHRpdGxlX2ZpbHRlciA9ICJmbjpjb250YWlucyAoIgorLSAgICAgICAgICAgICAgICAg IiAgdHJhY2tlcjpjYXNlLWZvbGQgKHRyYWNrZXI6Y29hbGVzY2UgKG5pZTp0aXRsZSAoP3Vybiks IG5mbzpmaWxlTmFtZSg/dXJuKSkpLCIKKysgICAgICAgICAgICAgICAgICIgIHRyYWNrZXI6Y2Fz ZS1mb2xkICh0cmFja2VyOmNvYWxlc2NlIChuaWU6dGl0bGUgKD91cm4pLCBuZm86ZmlsZU5hbWUo P2ZpbGUpKSksIgorICAgICAgICAgICAgICAgICAgIiAgXCIlc1wiKSI7CisgCisgICBzZWFyY2hf bWF0Y2ggPSBwaG90b3Nfc2VhcmNoX21hdGNoX25ldyAoUEhPVE9TX1NFQVJDSF9NQVRDSF9TVE9D S19BTEwsCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zb3VyY2UuYyBiL3NyYy9waG90b3Mtc291 cmNlLmMKK2luZGV4IGRiNmYyZGU5Li41MjE5NjUyYyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mt c291cmNlLmMKKysrKyBiL3NyYy9waG90b3Mtc291cmNlLmMKK0BAIC02Miw3ICs2Miw3IEBAIEdf REVGSU5FX1RZUEVfV0lUSF9DT0RFIChQaG90b3NTb3VyY2UsIHBob3Rvc19zb3VyY2UsIEdfVFlQ RV9PQkpFQ1QsCisgRFpMX0RFRklORV9DT1VOVEVSIChpbnN0YW5jZXMsICJQaG90b3NTb3VyY2Ui LCAiSW5zdGFuY2VzIiwgIk51bWJlciBvZiBQaG90b3NTb3VyY2UgaW5zdGFuY2VzIikKKyAKKyAK Ky1zdGF0aWMgY29uc3QgZ2NoYXIgKlRSQUNLRVJfU0NIRU1BID0gIm9yZy5mcmVlZGVza3RvcC5U cmFja2VyLk1pbmVyLkZpbGVzIjsKKytzdGF0aWMgY29uc3QgZ2NoYXIgKlRSQUNLRVJfU0NIRU1B ID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcyI7Cisgc3RhdGljIGNvbnN0 IGdjaGFyICpUUkFDS0VSX0tFWV9SRUNVUlNJVkVfRElSRUNUT1JJRVMgPSAiaW5kZXgtcmVjdXJz aXZlLWRpcmVjdG9yaWVzIjsKKyAKKyAKK0BAIC05NCw3ICs5NCw3IEBAIHBob3Rvc19zb3VyY2Vf YnVpbGRfZmlsdGVyX2xvY2FsICh2b2lkKQorICAgICAgICAgY29udGludWU7CisgCisgICAgICAg dHJhY2tlcl91cmkgPSBwaG90b3NfdXRpbHNfY29udmVydF9wYXRoX3RvX3VyaSAodHJhY2tlcl9k aXJzW2ldKTsKKy0gICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmICh0cmFja2VyX2ZpbHRlciwg IiB8fCBmbjpjb250YWlucyAobmllOnVybCAoP3VybiksICclcycpIiwgdHJhY2tlcl91cmkpOwor KyAgICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKHRyYWNrZXJfZmlsdGVyLCAiIHx8IGZuOmNv bnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3VybiksICclcycpIiwgdHJhY2tlcl91cmkpOworICAg ICB9CisgCisgICBwYXRoID0gZ19nZXRfdXNlcl9zcGVjaWFsX2RpciAoR19VU0VSX0RJUkVDVE9S WV9ERVNLVE9QKTsKK0BAIC0xMDksMTEgKzEwOSwxMSBAQCBwaG90b3Nfc291cmNlX2J1aWxkX2Zp bHRlcl9sb2NhbCAodm9pZCkKKyAgIGV4cG9ydF9wYXRoID0gZ19idWlsZF9maWxlbmFtZSAocGF0 aCwgUEhPVE9TX0VYUE9SVF9TVUJQQVRILCBOVUxMKTsKKyAgIGV4cG9ydF91cmkgPSBwaG90b3Nf dXRpbHNfY29udmVydF9wYXRoX3RvX3VyaSAoZXhwb3J0X3BhdGgpOworIAorLSAgZmlsdGVyID0g Z19zdHJkdXBfcHJpbnRmICgiKCgoZm46Y29udGFpbnMgKG5pZTp1cmwgKD91cm4pLCAnJXMnKSIK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgIHx8IGZuOmNvbnRhaW5zIChuaWU6dXJs ICg/dXJuKSwgJyVzJykiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICB8fCBmbjpj b250YWlucyAobmllOnVybCAoP3VybiksICclcycpIgorKyAgZmlsdGVyID0gZ19zdHJkdXBfcHJp bnRmICgiKCgoZm46Y29udGFpbnMgKG5pZTppc1N0b3JlZEFzICg/dXJuKSwgJyVzJykiCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIgICB8fCBmbjpjb250YWlucyAobmllOmlzU3RvcmVk QXMgKD91cm4pLCAnJXMnKSIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgIHx8IGZu OmNvbnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3VybiksICclcycpIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiICAgJXMpIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAm JiAhZm46Y29udGFpbnMgKG5pZTp1cmwgKD91cm4pLCAnJXMnKSkiCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIgICYmICFmbjpjb250YWlucyAobmllOmlzU3RvcmVkQXMgKD91cm4pLCAn JXMnKSkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgfHwgZm46c3RhcnRzLXdpdGgg KG5hbzppZGVudGlmaWVyICg/dXJuKSwgJyVzJykiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIgfHwgKD91cm4gPSBuZm86aW1hZ2UtY2F0ZWdvcnktc2NyZWVuc2hvdCkpIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGVza3RvcF91cmksCitAQCAtMTQ2LDcgKzE0Niw3IEBA IHBob3Rvc19zb3VyY2VfYnVpbGRfZmlsdGVyX3Jlc291cmNlIChQaG90b3NTb3VyY2UgKnNlbGYp CisgCisgICAgICAgcm9vdCA9IGdfbW91bnRfZ2V0X3Jvb3QgKHNlbGYtPm1vdW50KTsKKyAgICAg ICB1cmkgPSBnX2ZpbGVfZ2V0X3VyaSAocm9vdCk7CistICAgICAgZmlsdGVyID0gZ19zdHJkdXBf cHJpbnRmICgiKGZuOnN0YXJ0cy13aXRoIChuaWU6dXJsICg/dXJuKSwgJyVzJykpIiwgdXJpKTsK KysgICAgICBmaWx0ZXIgPSBnX3N0cmR1cF9wcmludGYgKCIoZm46c3RhcnRzLXdpdGggKG5pZTpp c1N0b3JlZEFzICg/dXJuKSwgJyVzJykpIiwgdXJpKTsKKyAgICAgfQorICAgZWxzZQorICAgICB7 CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jIGIvc3JjL3Bo b3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IGQ1Yzc0ZWJjLi4wMDAwMDAwMAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1l dmVudC5jCisrKysgL2Rldi9udWxsCitAQCAtMSwxMzYgKzAsMCBAQAorLS8qCistICogUGhvdG9z IC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUKKy0gKiBD b3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMuCistICoKKy0gKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CistICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKy0gKiAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorLSAqCistICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCistICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy0gKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CistICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy0gKgor LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCistICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCistICovCistCistLyogQmFzZWQgb24gY29k ZSBmcm9tOgorLSAqICAgKyBEb2N1bWVudHMKKy0gKi8KKy0KKy0KKy0jaW5jbHVkZSAiY29uZmln LmgiCistCistI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oIgorLQorLQor LXN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50CisteworLSAgUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50VHlwZSB0eXBlOworLSAgZ2NoYXIgKnByZWRpY2F0ZTsKKy0gIGdjaGFyICp1cm47 CistICBnaW50MzIgcHJlZGljYXRlX2lkOworLSAgZ2ludDMyIHVybl9pZDsKKy19OworLQorLQor LXN0YXRpYyBjb25zdCBnY2hhciAqUkRGX1RZUEUgPSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS8w Mi8yMi1yZGYtc3ludGF4LW5zI3R5cGUiOworLQorLQorLXZvaWQKKy1waG90b3NfdHJhY2tlcl9j aGFuZ2VfZXZlbnRfZnJlZSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKQorLXsKKy0g IGdfZnJlZSAoc2VsZi0+cHJlZGljYXRlKTsKKy0gIGdfZnJlZSAoc2VsZi0+dXJuKTsKKy0gIGdf c2xpY2VfZnJlZSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50LCBzZWxmKTsKKy19CistCistCist UGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICoKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRf bmV3IChnaW50MzIgdXJuX2lkLCBnaW50MzIgcHJlZGljYXRlX2lkLCBnYm9vbGVhbiBpc19kZWxl dGUpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmOworLQorLSAgc2VsZiA9 IGdfc2xpY2VfbmV3MCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50KTsKKy0gIHNlbGYtPnVybl9p ZCA9IHVybl9pZDsKKy0gIHNlbGYtPnByZWRpY2F0ZV9pZCA9IHByZWRpY2F0ZV9pZDsKKy0KKy0g IGlmIChpc19kZWxldGUpCistICAgIHNlbGYtPnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0Vf RVZFTlRfREVMRVRFRDsKKy0gIGVsc2UKKy0gICAgc2VsZi0+dHlwZSA9IFBIT1RPU19UUkFDS0VS X0NIQU5HRV9FVkVOVF9DUkVBVEVEOworLQorLSAgcmV0dXJuIHNlbGY7CistfQorLQorLQorLVBo b3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2Nv cHkgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqZXZlbnQpCisteworLSAgUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICpzZWxmOworLQorLSAgc2VsZiA9IGdfc2xpY2VfbmV3MCAoUGhvdG9zVHJh Y2tlckNoYW5nZUV2ZW50KTsKKy0gIHNlbGYtPnR5cGUgPSBldmVudC0+dHlwZTsKKy0gIHNlbGYt PnByZWRpY2F0ZSA9IGdfc3RyZHVwIChldmVudC0+cHJlZGljYXRlKTsKKy0gIHNlbGYtPnVybiA9 IGdfc3RyZHVwIChldmVudC0+dXJuKTsKKy0gIHNlbGYtPnByZWRpY2F0ZV9pZCA9IGV2ZW50LT5w cmVkaWNhdGVfaWQ7CistICBzZWxmLT51cm5faWQgPSBldmVudC0+dXJuX2lkOworLQorLSAgcmV0 dXJuIHNlbGY7CistfQorLQorLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudFR5cGUKKy1waG90 b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3R5cGUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCAqc2VsZikKKy17CistICByZXR1cm4gc2VsZi0+dHlwZTsKKy19CistCistCistZ2ludDMyCist cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF9wcmVkaWNhdGVfaWQgKFBob3Rvc1RyYWNr ZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICByZXR1cm4gc2VsZi0+cHJlZGljYXRlX2lkOwor LX0KKy0KKy0KKy1jb25zdCBnY2hhciAqCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dl dF91cm4gKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICByZXR1cm4gc2Vs Zi0+dXJuOworLX0KKy0KKy0KKy1naW50MzIKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRf Z2V0X3Vybl9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKQorLXsKKy0gIHJldHVy biBzZWxmLT51cm5faWQ7CistfQorLQorLQorLXZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfbWVyZ2UgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZiwgUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICpldmVudCkKKy17CistICBnX3JldHVybl9pZl9mYWlsIChnX3N0cmNtcDAg KHNlbGYtPnVybiwgZXZlbnQtPnVybikgPT0gMCk7CistCistICBpZiAoZXZlbnQtPnR5cGUgPT0g UEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0RFTEVURUQgfHwgZXZlbnQtPnR5cGUgPT0gUEhP VE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NSRUFURUQpCistICAgIHNlbGYtPnR5cGUgPSBldmVu dC0+dHlwZTsKKy19CistCistCistdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9z ZXRfcmVzb2x2ZWRfdmFsdWVzIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy ICp1cm4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGdjaGFyICpwcmVkaWNhdGUpCisteworLSAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZi0+ cHJlZGljYXRlID09IE5VTEwpOworLSAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZi0+dXJuID09IE5V TEwpOworLQorLSAgc2VsZi0+dXJuID0gZ19zdHJkdXAgKHVybik7CistICBzZWxmLT5wcmVkaWNh dGUgPSBnX3N0cmR1cCAocHJlZGljYXRlKTsKKy0KKy0gIGlmIChnX3N0cmNtcDAgKHByZWRpY2F0 ZSwgUkRGX1RZUEUpICE9IDApCistICAgIHNlbGYtPnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFO R0VfRVZFTlRfQ0hBTkdFRDsKKy19CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNo YW5nZS1ldmVudC5oIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGVlZTRmNDBjLi4wMDAwMDAwMAorLS0tIGEvc3JjL3Bo b3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oCisrKysgL2Rldi9udWxsCitAQCAtMSw2NCArMCww IEBACistLyoKKy0gKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBo b3RvcyBvbiBHTk9NRQorLSAqIENvcHlyaWdodCDCqSAyMDEyIOKAkyAyMDE5IFJlZCBIYXQsIElu Yy4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy0gKiB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor LSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistICoKKy0gKiBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK Ky0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKy0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorLSAqCistICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gKiBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKy0gKi8K Ky0KKy0vKiBCYXNlZCBvbiBjb2RlIGZyb206CistICogICArIERvY3VtZW50cworLSAqLworLQor LSNpZm5kZWYgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0gKKy0jZGVmaW5lIFBIT1RPU19U UkFDS0VSX0NIQU5HRV9FVkVOVF9ICistCistI2luY2x1ZGUgPGdsaWIuaD4KKy0KKy1HX0JFR0lO X0RFQ0xTCistCistdHlwZWRlZiBlbnVtCisteworLSAgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VW RU5UX0NIQU5HRUQsCistICBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfQ1JFQVRFRCwKKy0g IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9ERUxFVEVECistfSBQaG90b3NUcmFja2VyQ2hh bmdlRXZlbnRUeXBlOworLQorLXR5cGVkZWYgc3RydWN0IF9QaG90b3NUcmFja2VyQ2hhbmdlRXZl bnQgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50OworLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCAgKnBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9uZXcgICAgICAgIChnaW50MzIgdXJuX2lk LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnaW50MzIgcHJlZGljYXRlX2lkLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBp c19kZWxldGUpOworLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAgKnBob3Rvc190cmFja2Vy X2NoYW5nZV9ldmVudF9jb3B5ICAgICAgIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50 KTsKKy0KKy12b2lkICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfZnJlZSAgICAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy1Q aG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9n ZXRfdHlwZSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy1naW50MzIgICAg ICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3ByZWRpY2F0 ZV9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy1jb25zdCBnY2hhciAg ICAgICAgICAgICAgICpwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3VybiAgICAoUGhv dG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy1naW50MzIgICAgICAgICAgICAgICAg ICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3Vybl9pZCAoUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy12b2lkICAgICAgICAgICAgICAgICAgICAgICBwaG90 b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbWVyZ2UgICAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2 ZW50ICpzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50KTsK Ky0KKy12b2lkICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZl bnRfc2V0X3Jlc29sdmVkX3ZhbHVlcyAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqdXJuLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBnY2hhciAqcHJlZGljYXRlKTsKKy0KKy1HX0VORF9ERUNMUworLQorLSNlbmRpZiAv KiBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfSCAqLworZGlmZiAtLWdpdCBhL3NyYy9waG90 b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1t b25pdG9yLmMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMmU5ODEwYWEuLjAwMDAw MDAwCistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuYworKysrIC9kZXYv bnVsbAorQEAgLTEsNDY4ICswLDAgQEAKKy0vKgorLSAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5p emUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCistICogQ29weXJpZ2h0IMKpIDIwMTIg 4oCTIDIwMTkgUmVkIEhhdCwgSW5jLgorLSAqCistICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0gKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCistICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCistICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorLSAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCistICoKKy0gKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLSAq IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorLSAqLworLQorLS8qIEJhc2VkIG9uIGNvZGUgZnJvbToKKy0gKiAgICsg RG9jdW1lbnRzCistICovCistCistCistI2luY2x1ZGUgImNvbmZpZy5oIgorLQorLSNpbmNsdWRl IDxnbGliLmg+CistI2luY2x1ZGUgPHRyYWNrZXItc3BhcnFsLmg+CistCistI2luY2x1ZGUgInBo b3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oIgorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1j aGFuZ2UtbW9uaXRvci5oIgorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1xdWV1ZS5oIgorLSNp bmNsdWRlICJwaG90b3MtdHJhY2tlci1yZXNvdXJjZXMuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXF1 ZXJ5LmgiCistCistCistc3RydWN0IF9QaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvcgorLXsKKy0g IEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworLSAgR0hhc2hUYWJsZSAqcGVuZGluZ19jaGFuZ2Vz OworLSAgR0hhc2hUYWJsZSAqdW5yZXNvbHZlZF9pZHM7CistICBHUXVldWUgKnBlbmRpbmdfZXZl bnRzOworLSAgUGhvdG9zVHJhY2tlclF1ZXVlICpxdWV1ZTsKKy0gIFRyYWNrZXJSZXNvdXJjZXMg KnJlc291cmNlX3NlcnZpY2U7CistICBndWludCBvdXRzdGFuZGluZ19vcHM7CistICBndWludCBw ZW5kaW5nX2V2ZW50c19pZDsKKy19OworLQorLWVudW0KKy17CistICBDSEFOR0VTX1BFTkRJTkcs CistICBMQVNUX1NJR05BTAorLX07CistCistc3RhdGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdO QUxdID0geyAwIH07CistCistc3RhdGljIHZvaWQgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0 b3JfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNlKTsKKy0KKy0KKy1H X0RFRklORV9UWVBFX0VYVEVOREVEIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciwgcGhvdG9z X3RyYWNrZXJfY2hhbmdlX21vbml0b3IsIEdfVFlQRV9PQkpFQ1QsIDAsCistICAgICAgICAgICAg ICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFIChHX1RZUEVfSU5JVEFCTEUsIHBob3Rv c190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2lmYWNlX2luaXQpKTsKKy0KKy0KKy1l bnVtCisteworLSAgQ0hBTkdFX01PTklUT1JfVElNRU9VVCA9IDUwMCwgLyogbXMgKi8KKy0gIENI QU5HRV9NT05JVE9SX01BWF9JVEVNUyA9IDUwMAorLX07CistCistCistdHlwZWRlZiBzdHJ1Y3Qg X1Bob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhIFBob3Rvc1RyYWNrZXJDaGFuZ2VN b25pdG9yUXVlcnlEYXRhOworLXR5cGVkZWYgc3RydWN0IF9UcmFja2VyUmVzb3VyY2VzRXZlbnQg VHJhY2tlclJlc291cmNlc0V2ZW50OworLQorLXN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZU1v bml0b3JRdWVyeURhdGEKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZjsK Ky0gIEdIYXNoVGFibGUgKmlkX3RhYmxlOworLSAgR1F1ZXVlICpldmVudHM7CistfTsKKy0KKy1z dHJ1Y3QgX1RyYWNrZXJSZXNvdXJjZXNFdmVudAorLXsKKy0gIGdpbnQzMiBncmFwaDsKKy0gIGdp bnQzMiBzdWJqZWN0OworLSAgZ2ludDMyIHByZWRpY2F0ZTsKKy0gIGdpbnQzMiBvYmplY3Q7Cist fTsKKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1 ZXJ5X2RhdGFfZnJlZSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEp CisteworLSAgZ19jbGVhcl9vYmplY3QgKCZkYXRhLT5zZWxmKTsKKy0KKy0gIGlmIChkYXRhLT5p ZF90YWJsZSAhPSBOVUxMKQorLSAgICBnX2hhc2hfdGFibGVfdW5yZWYgKGRhdGEtPmlkX3RhYmxl KTsKKy0KKy0gIGlmIChkYXRhLT5ldmVudHMgIT0gTlVMTCkKKy0gICAgZ19xdWV1ZV9mcmVlX2Z1 bGwgKGRhdGEtPmV2ZW50cywgKEdEZXN0cm95Tm90aWZ5KSBwaG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfZnJlZSk7CistCistICBnX3NsaWNlX2ZyZWUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25p dG9yUXVlcnlEYXRhLCBkYXRhKTsKKy19CistCistCistc3RhdGljIFBob3Rvc1RyYWNrZXJDaGFu Z2VNb25pdG9yUXVlcnlEYXRhICoKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVy eV9kYXRhX25ldyAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdIYXNoVGFibGUgKmlkX3RhYmxl LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUXVldWUg KmV2ZW50cykKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqZGF0 YTsKKy0KKy0gIGRhdGEgPSBnX3NsaWNlX25ldzAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9y UXVlcnlEYXRhKTsKKy0gIGRhdGEtPnNlbGYgPSBnX29iamVjdF9yZWYgKHNlbGYpOworLSAgZGF0 YS0+aWRfdGFibGUgPSBpZF90YWJsZTsKKy0gIGRhdGEtPmV2ZW50cyA9IGV2ZW50czsKKy0KKy0g IHJldHVybiBkYXRhOworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2No YW5nZV9tb25pdG9yX2FkZF9ldmVudCAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYs IFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqY2hhbmdlX2V2ZW50KQorLXsKKy0gIFBob3Rvc1Ry YWNrZXJDaGFuZ2VFdmVudCAqb2xkX2NoYW5nZV9ldmVudDsKKy0gIGNvbnN0IGdjaGFyICp1cm47 CistCistICB1cm4gPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3VybiAoY2hhbmdl X2V2ZW50KTsKKy0gIG9sZF9jaGFuZ2VfZXZlbnQgPSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50 ICopIGdfaGFzaF90YWJsZV9sb29rdXAgKHNlbGYtPnBlbmRpbmdfY2hhbmdlcywgdXJuKTsKKy0K Ky0gIGlmIChvbGRfY2hhbmdlX2V2ZW50ICE9IE5VTEwpCistICAgIHBob3Rvc190cmFja2VyX2No YW5nZV9ldmVudF9tZXJnZSAob2xkX2NoYW5nZV9ldmVudCwgY2hhbmdlX2V2ZW50KTsKKy0gIGVs c2UKKy0gICAgZ19oYXNoX3RhYmxlX2luc2VydCAoc2VsZi0+cGVuZGluZ19jaGFuZ2VzLCBnX3N0 cmR1cCAodXJuKSwgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2NvcHkgKGNoYW5nZV9ldmVu dCkpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25p dG9yX3JlbW92ZV90aW1lb3V0IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikKKy17 CistICBpZiAoc2VsZi0+cGVuZGluZ19ldmVudHNfaWQgIT0gMCkKKy0gICAgeworLSAgICAgIGdf c291cmNlX3JlbW92ZSAoc2VsZi0+cGVuZGluZ19ldmVudHNfaWQpOworLSAgICAgIHNlbGYtPnBl bmRpbmdfZXZlbnRzX2lkID0gMDsKKy0gICAgfQorLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBo b3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3NlbmRfZXZlbnRzIChQaG90b3NUcmFja2VyQ2hh bmdlTW9uaXRvciAqc2VsZiwgR0hhc2hUYWJsZSAqaWRfdGFibGUsIEdRdWV1ZSAqZXZlbnRzKQor LXsKKy0gIEdMaXN0ICpsOworLQorLSAgZm9yIChsID0gZXZlbnRzLT5oZWFkOyBsICE9IE5VTEw7 IGwgPSBsLT5uZXh0KQorLSAgICB7CistICAgICAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpj aGFuZ2VfZXZlbnQgPSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICopIGwtPmRhdGE7CistICAg ICAgY29uc3QgZ2NoYXIgKnByZWRpY2F0ZTsKKy0gICAgICBjb25zdCBnY2hhciAqdXJuOworLSAg ICAgIGdpbnQzMiBwcmVkaWNhdGVfaWQ7CistICAgICAgZ2ludDMyIHVybl9pZDsKKy0KKy0gICAg ICBwcmVkaWNhdGVfaWQgPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3ByZWRpY2F0 ZV9pZCAoY2hhbmdlX2V2ZW50KTsKKy0gICAgICB1cm5faWQgPSBwaG90b3NfdHJhY2tlcl9jaGFu Z2VfZXZlbnRfZ2V0X3Vybl9pZCAoY2hhbmdlX2V2ZW50KTsKKy0KKy0gICAgICBwcmVkaWNhdGUg PSAoZ2NoYXIgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAoaWRfdGFibGUsIEdJTlRfVE9fUE9JTlRF UiAocHJlZGljYXRlX2lkKSk7CistICAgICAgaWYgKEdfVU5MSUtFTFkgKHByZWRpY2F0ZSA9PSBO VUxMKSkKKy0gICAgICAgIGNvbnRpbnVlOworLQorLSAgICAgIHVybiA9IChnY2hhciAqKSBnX2hh c2hfdGFibGVfbG9va3VwIChpZF90YWJsZSwgR0lOVF9UT19QT0lOVEVSICh1cm5faWQpKTsKKy0g ICAgICBpZiAoR19VTkxJS0VMWSAodXJuID09IE5VTEwpKQorLSAgICAgICAgY29udGludWU7Cist CistICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X3NldF9yZXNvbHZlZF92YWx1ZXMg KGNoYW5nZV9ldmVudCwgdXJuLCBwcmVkaWNhdGUpOworLSAgICAgIHBob3Rvc190cmFja2VyX2No YW5nZV9tb25pdG9yX2FkZF9ldmVudCAoc2VsZiwgY2hhbmdlX2V2ZW50KTsKKy0gICAgfQorLQor LSAgZ19zaWduYWxfZW1pdCAoc2VsZiwgc2lnbmFsc1tDSEFOR0VTX1BFTkRJTkddLCAwLCBzZWxm LT5wZW5kaW5nX2NoYW5nZXMpOworLSAgZ19oYXNoX3RhYmxlX3JlbW92ZV9hbGwgKHNlbGYtPnBl bmRpbmdfY2hhbmdlcyk7CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJf Y2hhbmdlX21vbml0b3JfY3Vyc29yX25leHQgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3lu Y1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhvdG9zVHJhY2tlckNo YW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEgPSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JR dWVyeURhdGEgKikgdXNlcl9kYXRhOworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNl bGYgPSBkYXRhLT5zZWxmOworLSAgVHJhY2tlclNwYXJxbEN1cnNvciAqY3Vyc29yID0gVFJBQ0tF Ul9TUEFSUUxfQ1VSU09SIChzb3VyY2Vfb2JqZWN0KTsKKy0gIEdIYXNoVGFibGVJdGVyIGl0ZXI7 CistICBnYm9vbGVhbiB2YWxpZDsKKy0KKy0gIHsKKy0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVy cm9yID0gTlVMTDsKKy0KKy0gICAgdmFsaWQgPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfbmV4dF9m aW5pc2ggKGN1cnNvciwgcmVzLCAmZXJyb3IpOworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKy0g ICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gcmVzb2x2ZSBpdGVtIFVSTnMgZm9yIGdyYXBoIGNo YW5nZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLSAgfQorLQorLSAgaWYgKHZhbGlkKQorLSAg ICB7CistICAgICAgZ3VpbnQgaWR4OworLQorLSAgICAgIGlkeCA9IDA7CistICAgICAgZ19oYXNo X3RhYmxlX2l0ZXJfaW5pdCAoJml0ZXIsIGRhdGEtPmlkX3RhYmxlKTsKKy0gICAgICB3aGlsZSAo Z19oYXNoX3RhYmxlX2l0ZXJfbmV4dCAoJml0ZXIsIE5VTEwsIE5VTEwpKQorLSAgICAgICAgewor LSAgICAgICAgICBjb25zdCBnY2hhciAqc3RyOworLQorLSAgICAgICAgICBzdHIgPSB0cmFja2Vy X3NwYXJxbF9jdXJzb3JfZ2V0X3N0cmluZyAoY3Vyc29yLCBpZHgsIE5VTEwpOworLSAgICAgICAg ICBnX2hhc2hfdGFibGVfaXRlcl9yZXBsYWNlICgmaXRlciwgZ19zdHJkdXAgKHN0cikpOworLSAg ICAgICAgICBpZHgrKzsKKy0gICAgICAgIH0KKy0KKy0gICAgICBwaG90b3NfdHJhY2tlcl9jaGFu Z2VfbW9uaXRvcl9zZW5kX2V2ZW50cyAoc2VsZiwgZGF0YS0+aWRfdGFibGUsIGRhdGEtPmV2ZW50 cyk7CistICAgIH0KKy0KKy0gIHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9jbG9zZSAoY3Vyc29yKTsK Ky0gIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfZnJlZSAoZGF0YSk7 CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3Jf cXVlcnlfZXhlY3V0ZWQgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVz LCBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JR dWVyeURhdGEgKmRhdGEgPSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKikg dXNlcl9kYXRhOworLSAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb24gKmNvbm5lY3Rpb24gPSBUUkFD S0VSX1NQQVJRTF9DT05ORUNUSU9OIChzb3VyY2Vfb2JqZWN0KTsKKy0gIFRyYWNrZXJTcGFycWxD dXJzb3IgKmN1cnNvcjsgLyogVE9ETzogVXNlIGdfYXV0b3B0ciAqLworLQorLSAgeworLSAgICBn X2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworLQorLSAgICBjdXJzb3IgPSB0cmFja2Vy X3NwYXJxbF9jb25uZWN0aW9uX3F1ZXJ5X2ZpbmlzaCAoY29ubmVjdGlvbiwgcmVzLCAmZXJyb3Ip OworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKy0gICAgICB7CistICAgICAgICBnX3dhcm5pbmcg KCJVbmFibGUgdG8gcmVzb2x2ZSBpdGVtIFVSTnMgZm9yIGdyYXBoIGNoYW5nZXM6ICVzIiwgZXJy b3ItPm1lc3NhZ2UpOworLSAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVl cnlfZGF0YV9mcmVlIChkYXRhKTsKKy0gICAgICAgIHJldHVybjsKKy0gICAgICB9CistICB9Cist CistICB0cmFja2VyX3NwYXJxbF9jdXJzb3JfbmV4dF9hc3luYyAoY3Vyc29yLCBOVUxMLCBwaG90 b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jdXJzb3JfbmV4dCwgZGF0YSk7CistICBnX29iamVj dF91bnJlZiAoY3Vyc29yKTsKKy19CistCistCistc3RhdGljIGdib29sZWFuCistcGhvdG9zX3Ry YWNrZXJfY2hhbmdlX21vbml0b3JfcHJvY2Vzc19ldmVudHMgKFBob3Rvc1RyYWNrZXJDaGFuZ2VN b25pdG9yICpzZWxmKQorLXsKKy0gIEdIYXNoVGFibGUgKmlkX3RhYmxlOworLSAgR0hhc2hUYWJs ZUl0ZXIgaXRlcjsKKy0gIEdRdWV1ZSAqZXZlbnRzOworLSAgZ19hdXRvcHRyIChHU3RyaW5nKSBz cGFycWwgPSBOVUxMOworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRh dGE7CistICBnX2F1dG9wdHIgKFBob3Rvc1F1ZXJ5KSBxdWVyeSA9IE5VTEw7CistICBncG9pbnRl ciBpZDsKKy0KKy0gIGV2ZW50cyA9IHNlbGYtPnBlbmRpbmdfZXZlbnRzOworLSAgc2VsZi0+cGVu ZGluZ19ldmVudHMgPSBnX3F1ZXVlX25ldyAoKTsKKy0KKy0gIGlkX3RhYmxlID0gc2VsZi0+dW5y ZXNvbHZlZF9pZHM7CistICBzZWxmLT51bnJlc29sdmVkX2lkcyA9IGdfaGFzaF90YWJsZV9uZXdf ZnVsbCAoZ19kaXJlY3RfaGFzaCwgZ19kaXJlY3RfZXF1YWwsIE5VTEwsIGdfZnJlZSk7CistCist ICBzZWxmLT5wZW5kaW5nX2V2ZW50c19pZCA9IDA7CistCistICBzcGFycWwgPSBnX3N0cmluZ19u ZXcgKCJTRUxFQ1QiKTsKKy0KKy0gIGdfaGFzaF90YWJsZV9pdGVyX2luaXQgKCZpdGVyLCBpZF90 YWJsZSk7CistICB3aGlsZSAoZ19oYXNoX3RhYmxlX2l0ZXJfbmV4dCAoJml0ZXIsICZpZCwgTlVM TCkpCistICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKHNwYXJxbCwgIiB0cmFja2VyOnVyaSgl ZCkiLCBHUE9JTlRFUl9UT19JTlQgKGlkKSk7CistCistICBnX3N0cmluZ19hcHBlbmQgKHNwYXJx bCwgIiB7fSIpOworLQorLSAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChOVUxMLCBzcGFycWwt PnN0cik7CistCistICBkYXRhID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlf ZGF0YV9uZXcgKHNlbGYsIGlkX3RhYmxlLCBldmVudHMpOworLSAgcGhvdG9zX3RyYWNrZXJfcXVl dWVfc2VsZWN0IChzZWxmLT5xdWV1ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cXVlcnksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5 X2V4ZWN1dGVkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKy0KKy0gIHJldHVybiBHX1NPVVJDRV9S RU1PVkU7CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21v bml0b3JfYWRkX3BlbmRpbmdfZXZlbnQgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxm LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBUcmFja2VyUmVzb3VyY2VzRXZlbnQgKmV2ZW50LAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBpc19kZWxldGUpCisteworLSAgUGhv dG9zVHJhY2tlckNoYW5nZUV2ZW50ICpjaGFuZ2VfZXZlbnQ7CistCistICBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9yZW1vdmVfdGltZW91dCAoc2VsZik7CistCistICBnX2hhc2hfdGFi bGVfaW5zZXJ0IChzZWxmLT51bnJlc29sdmVkX2lkcywgR0lOVF9UT19QT0lOVEVSIChldmVudC0+ c3ViamVjdCksIE5VTEwpOworLSAgZ19oYXNoX3RhYmxlX2luc2VydCAoc2VsZi0+dW5yZXNvbHZl ZF9pZHMsIEdJTlRfVE9fUE9JTlRFUiAoZXZlbnQtPnByZWRpY2F0ZSksIE5VTEwpOworLQorLSAg Y2hhbmdlX2V2ZW50ID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X25ldyAoZXZlbnQtPnN1 YmplY3QsIGV2ZW50LT5wcmVkaWNhdGUsIGlzX2RlbGV0ZSk7CistICBnX3F1ZXVlX3B1c2hfdGFp bCAoc2VsZi0+cGVuZGluZ19ldmVudHMsIGNoYW5nZV9ldmVudCk7CistCistICBpZiAoc2VsZi0+ cGVuZGluZ19ldmVudHMtPmxlbmd0aCA+PSBDSEFOR0VfTU9OSVRPUl9NQVhfSVRFTVMpCistICAg IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3Byb2Nlc3NfZXZlbnRzIChzZWxmKTsKKy0g IGVsc2UKKy0gICAgc2VsZi0+cGVuZGluZ19ldmVudHNfaWQgPSBnX3RpbWVvdXRfYWRkIChDSEFO R0VfTU9OSVRPUl9USU1FT1VULAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChHU291cmNlRnVuYykgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcHJv Y2Vzc19ldmVudHMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZik7CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdl X21vbml0b3JfZ3JhcGhfdXBkYXRlZCAoVHJhY2tlclJlc291cmNlcyAqcmVzb3VyY2Vfc2Vydmlj ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAqY2xhc3NfbmFtZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHVmFyaWFudCAqZGVsZXRlX2V2ZW50cywKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAqaW5zZXJ0X2V2ZW50cywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEp CisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tF Ul9DSEFOR0VfTU9OSVRPUiAodXNlcl9kYXRhKTsKKy0gIGNvbnN0IFRyYWNrZXJSZXNvdXJjZXNF dmVudCAqZXZlbnRzOworLSAgZ3NpemUgaTsKKy0gIGdzaXplIG5fZWxlbWVudHM7CistCistICBl dmVudHMgPSAoY29uc3QgVHJhY2tlclJlc291cmNlc0V2ZW50ICopIGdfdmFyaWFudF9nZXRfZml4 ZWRfYXJyYXkgKGRlbGV0ZV9ldmVudHMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuX2VsZW1lbnRzLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YgKFRyYWNrZXJSZXNvdXJjZXNFdmVudCkpOworLSAgZm9yIChpID0g MDsgaSA8IG5fZWxlbWVudHM7IGkrKykKKy0gICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0 b3JfYWRkX3BlbmRpbmdfZXZlbnQgKHNlbGYsICZldmVudHNbaV0sIFRSVUUpOworLQorLSAgZXZl bnRzID0gKGNvbnN0IFRyYWNrZXJSZXNvdXJjZXNFdmVudCAqKSBnX3ZhcmlhbnRfZ2V0X2ZpeGVk X2FycmF5IChpbnNlcnRfZXZlbnRzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9lbGVtZW50cywKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mIChUcmFja2VyUmVzb3VyY2VzRXZlbnQpKTsKKy0gIGZvciAoaSA9IDA7 IGkgPCBuX2VsZW1lbnRzOyBpKyspCistICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X2FkZF9wZW5kaW5nX2V2ZW50IChzZWxmLCAmZXZlbnRzW2ldLCBGQUxTRSk7CistfQorLQorLQor LXN0YXRpYyBHT2JqZWN0ICoKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jb25zdHJ1 Y3RvciAoR1R5cGUgdHlwZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3VpbnQgbl9jb25zdHJ1Y3RfcGFyYW1zLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHT2JqZWN0Q29uc3RydWN0UGFyYW0gKmNvbnN0cnVjdF9wYXJh bXMpCisteworLSAgc3RhdGljIEdPYmplY3QgKnNlbGYgPSBOVUxMOworLQorLSAgaWYgKHNlbGYg PT0gTlVMTCkKKy0gICAgeworLSAgICAgIHNlbGYgPSBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3Ry YWNrZXJfY2hhbmdlX21vbml0b3JfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0b3IgKHR5cGUsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9jb25zdHJ1Y3RfcGFyYW1zLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdF9wYXJhbXMpOworLSAgICAgIGdfb2Jq ZWN0X2FkZF93ZWFrX3BvaW50ZXIgKHNlbGYsIChncG9pbnRlcikgJnNlbGYpOworLSAgICAgIHJl dHVybiBzZWxmOworLSAgICB9CistCistICByZXR1cm4gZ19vYmplY3RfcmVmIChzZWxmKTsKKy19 CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kaXNw b3NlIChHT2JqZWN0ICpvYmplY3QpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3Ig KnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiAob2JqZWN0KTsKKy0KKy0gIHBo b3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3JlbW92ZV90aW1lb3V0IChzZWxmKTsKKy0KKy0g IGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cXVldWUpOworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxm LT5yZXNvdXJjZV9zZXJ2aWNlKTsKKy0KKy0gIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlIChvYmplY3QpOworLX0KKy0K Ky0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2ZpbmFsaXpl IChHT2JqZWN0ICpvYmplY3QpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNl bGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiAob2JqZWN0KTsKKy0KKy0gIGdfaGFz aF90YWJsZV91bnJlZiAoc2VsZi0+cGVuZGluZ19jaGFuZ2VzKTsKKy0gIGdfaGFzaF90YWJsZV91 bnJlZiAoc2VsZi0+dW5yZXNvbHZlZF9pZHMpOworLQorLSAgZ19xdWV1ZV9mcmVlX2Z1bGwgKHNl bGYtPnBlbmRpbmdfZXZlbnRzLCAoR0Rlc3Ryb3lOb3RpZnkpIHBob3Rvc190cmFja2VyX2NoYW5n ZV9ldmVudF9mcmVlKTsKKy0KKy0gIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9jaGFu Z2VfbW9uaXRvcl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKKy19CistCistCist c3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9pbml0IChQaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikKKy17CistICBzZWxmLT5wZW5kaW5nX2NoYW5nZXMg PSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfc3RyX2hhc2gsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfc3RyX2VxdWFsLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2ZyZWUsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkg cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2ZyZWUpOworLQorLSAgc2VsZi0+dW5yZXNvbHZl ZF9pZHMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfZGlyZWN0X2hhc2gsIGdfZGlyZWN0X2Vx dWFsLCBOVUxMLCBnX2ZyZWUpOworLQorLSAgc2VsZi0+cGVuZGluZ19ldmVudHMgPSBnX3F1ZXVl X25ldyAoKTsKKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2Vf bW9uaXRvcl9jbGFzc19pbml0IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvckNsYXNzICpjbGFz cykKKy17CistICBHT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChj bGFzcyk7CistCistICBvYmplY3RfY2xhc3MtPmNvbnN0cnVjdG9yID0gcGhvdG9zX3RyYWNrZXJf Y2hhbmdlX21vbml0b3JfY29uc3RydWN0b3I7CistICBvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBw aG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kaXNwb3NlOworLSAgb2JqZWN0X2NsYXNzLT5m aW5hbGl6ZSA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2ZpbmFsaXplOworLQorLSAg c2lnbmFsc1tDSEFOR0VTX1BFTkRJTkddID0gZ19zaWduYWxfbmV3ICgiY2hhbmdlcy1wZW5kaW5n IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0ZS T01fQ0xBU1MgKGNsYXNzKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIC8qYWNjdW11bGF0b3IgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTlVMTCwgLyphY2N1X2RhdGEgKi8KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX0JPWEVELAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0hBU0hfVEFCTEUpOwor LX0KKy0KKy0KKy1zdGF0aWMgZ2Jvb2xlYW4KKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRv cl9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgKmluaXRhYmxlLCBHQ2FuY2VsbGFibGUgKmNhbmNl bGxhYmxlLCBHRXJyb3IgKiplcnJvcikKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRv ciAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9NT05JVE9SIChpbml0YWJsZSk7CistICBn Ym9vbGVhbiByZXRfdmFsID0gVFJVRTsKKy0KKy0gIGlmIChHX0xJS0VMWSAoc2VsZi0+cXVldWUg IT0gTlVMTCAmJiBzZWxmLT5yZXNvdXJjZV9zZXJ2aWNlICE9IE5VTEwpKQorLSAgICBnb3RvIG91 dDsKKy0KKy0gIHNlbGYtPnF1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRv biAoY2FuY2VsbGFibGUsIGVycm9yKTsKKy0gIGlmIChHX1VOTElLRUxZIChzZWxmLT5xdWV1ZSA9 PSBOVUxMKSkKKy0gICAgeworLSAgICAgIHJldF92YWwgPSBGQUxTRTsKKy0gICAgICBnb3RvIG91 dDsKKy0gICAgfQorLQorLSAgc2VsZi0+cmVzb3VyY2Vfc2VydmljZSA9IHRyYWNrZXJfcmVzb3Vy Y2VzX3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU0VTU0lPTiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNr dG9wLlRyYWNrZXIxIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9UcmFja2VyMS9S ZXNvdXJjZXMiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y KTsKKy0gIGlmIChHX1VOTElLRUxZIChzZWxmLT5yZXNvdXJjZV9zZXJ2aWNlID09IE5VTEwpKQor LSAgICB7CistICAgICAgcmV0X3ZhbCA9IEZBTFNFOworLSAgICAgIGdvdG8gb3V0OworLSAgICB9 CistCistICBnX3NpZ25hbF9jb25uZWN0IChzZWxmLT5yZXNvdXJjZV9zZXJ2aWNlLAorLSAgICAg ICAgICAgICAgICAgICAgImdyYXBoLXVwZGF0ZWQiLAorLSAgICAgICAgICAgICAgICAgICAgR19D QUxMQkFDSyAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZ3JhcGhfdXBkYXRlZCksCist ICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKy0KKy0gb3V0OgorLSAgcmV0dXJuIHJldF92YWw7 CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3Jf aW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNlKQorLXsKKy0gIGlmYWNl LT5pbml0ID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdGFibGVfaW5pdDsKKy19 CistCistCistUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKgorLXBob3Rvc190cmFja2VyX2No YW5nZV9tb25pdG9yX2R1cF9zaW5nbGV0b24gKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsIEdF cnJvciAqKmVycm9yKQorLXsKKy0gIHJldHVybiBnX2luaXRhYmxlX25ldyAoUEhPVE9TX1RZUEVf VFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiwgY2FuY2VsbGFibGUsIGVycm9yLCBOVUxMKTsKKy19Citk aWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmggYi9zcmMvcGhv dG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCA5NzQwYjA0Ni4uMDAwMDAwMDAKKy0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2Ut bW9uaXRvci5oCisrKysgL2Rldi9udWxsCitAQCAtMSw0MiArMCwwIEBACistLyoKKy0gKiBQaG90 b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorLSAq IENvcHlyaWdodCDCqSAyMDEyIOKAkyAyMDE5IFJlZCBIYXQsIEluYy4KKy0gKgorLSAqIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CistICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorLSAqIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy0gKiBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKy0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLSAq CistICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKy0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKy0gKi8KKy0KKy0vKiBCYXNlZCBvbiBj b2RlIGZyb206CistICogICArIERvY3VtZW50cworLSAqLworLQorLSNpZm5kZWYgUEhPVE9TX1RS QUNLRVJfQ0hBTkdFX01PTklUT1JfSAorLSNkZWZpbmUgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01P TklUT1JfSAorLQorLSNpbmNsdWRlIDxnaW8vZ2lvLmg+CistCistR19CRUdJTl9ERUNMUworLQor LSNkZWZpbmUgUEhPVE9TX1RZUEVfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiAocGhvdG9zX3RyYWNr ZXJfY2hhbmdlX21vbml0b3JfZ2V0X3R5cGUgKCkpCistR19ERUNMQVJFX0ZJTkFMX1RZUEUgKFBo b3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yLAorLSAgICAgICAgICAgICAgICAgICAgICBwaG90b3Nf dHJhY2tlcl9jaGFuZ2VfbW9uaXRvciwKKy0gICAgICAgICAgICAgICAgICAgICAgUEhPVE9TLAor LSAgICAgICAgICAgICAgICAgICAgICBUUkFDS0VSX0NIQU5HRV9NT05JVE9SLAorLSAgICAgICAg ICAgICAgICAgICAgICBHT2JqZWN0KTsKKy0KKy1QaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAg KnBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2R1cF9zaW5nbGV0b24gICAgKEdDYW5jZWxs YWJsZSAqY2FuY2VsbGFibGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgKiplcnJvcik7 CistCistR19FTkRfREVDTFMKKy0KKy0jZW5kaWYgLyogUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01P TklUT1JfSCAqLworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMg Yi9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jCitpbmRleCAzYTYyY2YyZC4uZjBiODFl MDIgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jCisrKysgYi9z cmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jCitAQCAtMjkyLDYgKzI5MiwxMiBAQCBwaG90 b3NfdHJhY2tlcl9jb250cm9sbGVyX3BlcmZvcm1fY3VycmVudF9xdWVyeSAoUGhvdG9zVHJhY2tl ckNvbnRyb2xsZXIgKnNlbGYpCisgCisgICBwcml2ID0gcGhvdG9zX3RyYWNrZXJfY29udHJvbGxl cl9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc2VsZik7CisgCisrICBpZiAoR19VTkxJS0VMWSAocHJp di0+cXVldWUgPT0gTlVMTCkpCisrICAgIHsKKysgICAgICBwaG90b3NfdHJhY2tlcl9jb250cm9s bGVyX3F1ZXJ5X2Vycm9yIChzZWxmLCBwcml2LT5xdWV1ZV9lcnJvcik7CisrICAgICAgZ290byBv dXQ7CisrICAgIH0KKysKKyAgIGdfY2xlYXJfb2JqZWN0ICgmcHJpdi0+Y3VycmVudF9xdWVyeSk7 CisgICBwcml2LT5jdXJyZW50X3F1ZXJ5ID0gUEhPVE9TX1RSQUNLRVJfQ09OVFJPTExFUl9HRVRf Q0xBU1MgKHNlbGYpLT5nZXRfcXVlcnkgKHNlbGYpOworICAgZ19yZXR1cm5faWZfZmFpbCAocHJp di0+Y3VycmVudF9xdWVyeSAhPSBOVUxMKTsKK0BAIC0zMDMsMTIgKzMwOSw2IEBAIHBob3Rvc190 cmFja2VyX2NvbnRyb2xsZXJfcGVyZm9ybV9jdXJyZW50X3F1ZXJ5IChQaG90b3NUcmFja2VyQ29u dHJvbGxlciAqc2VsZikKKyAgIGdfb2JqZWN0X3VucmVmIChwcml2LT5jYW5jZWxsYWJsZSk7Cisg ICBwcml2LT5jYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3ICgpOworIAorLSAgaWYgKEdf VU5MSUtFTFkgKHByaXYtPnF1ZXVlID09IE5VTEwpKQorLSAgICB7CistICAgICAgcGhvdG9zX3Ry YWNrZXJfY29udHJvbGxlcl9xdWVyeV9lcnJvciAoc2VsZiwgcHJpdi0+cXVldWVfZXJyb3IpOwor LSAgICAgIGdvdG8gb3V0OworLSAgICB9CistCisgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZWxl Y3QgKHByaXYtPnF1ZXVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5j dXJyZW50X3F1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5jYW5j ZWxsYWJsZSwKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0 eS54bWwgYi9zcmMvcGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eS54bWwKK2luZGV4IDdl M2I5YjBjLi4yYjU2MjI5OSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1leHRyYWN0 LXByaW9yaXR5LnhtbAorKysrIGIvc3JjL3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHku eG1sCitAQCAtMjEsNyArMjEsNyBAQAorIC0tPgorIAorIDxub2RlIG5hbWU9Ii8iIHhtbG5zOmRv Yz0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvZGJ1cy8xLjAvZG9jLmR0ZCI+CistICA8aW50 ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5FeHRyYWN0LlByaW9yaXR5Ij4K KysgIDxpbnRlcmZhY2UgbmFtZT0ib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLkV4dHJhY3QuUHJp b3JpdHkiPgorICAgICA8bWV0aG9kIG5hbWU9IkNsZWFyUmRmVHlwZXMiIC8+CisgICAgIDxtZXRo b2QgbmFtZT0iU2V0UmRmVHlwZXMiPgorICAgICAgIDxhcmcgbmFtZT0icmRmX3R5cGVzIiB0eXBl PSJhcyIgZGlyZWN0aW9uPSJpbiIgLz4KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXIt aW1wb3J0LWNvbnRyb2xsZXIuYyBiL3NyYy9waG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxl ci5jCitpbmRleCAwODVhY2UzYS4uZDdlZDliMjAgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXRy YWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYworKysrIGIvc3JjL3Bob3Rvcy10cmFja2VyLWltcG9y dC1jb250cm9sbGVyLmMKK0BAIC0yNCw3ICsyNCw2IEBACisgI2luY2x1ZGUgImNvbmZpZy5oIgor IAorICNpbmNsdWRlIDxnaW8vZ2lvLmg+CistI2luY2x1ZGUgPGxpYnRyYWNrZXItY29udHJvbC90 cmFja2VyLWNvbnRyb2wuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLWJhc2UtbWFuYWdlci5oIgor ICNpbmNsdWRlICJwaG90b3MtZGVidWcuaCIKK0BAIC0zNCw2ICszMyw4IEBACisgI2luY2x1ZGUg InBob3Rvcy1xdWVyeS1idWlsZGVyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtY29udGV4 dC5oIgorICNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxlci5oIgorKyNp bmNsdWRlICJwaG90b3MtdHJhY2tlci1taW5lci1pbmRleC5oIgorKyNpbmNsdWRlICJwaG90b3Mt dHJhY2tlci1xdWV1ZS5oIgorICNpbmNsdWRlICJwaG90b3MtdXRpbHMuaCIKKyAKKyAKK0BAIC00 NSw3ICs0Niw3IEBAIHN0cnVjdCBfUGhvdG9zVHJhY2tlckltcG9ydENvbnRyb2xsZXIKKyAgIFBo b3Rvc0Jhc2VNYW5hZ2VyICppdGVtX21uZ3I7CisgICBQaG90b3NCYXNlTWFuYWdlciAqc3JjX21u Z3I7CisgICBQaG90b3NPZmZzZXRDb250cm9sbGVyICpvZmZzZXRfY250cmxyOworLSAgVHJhY2tl ck1pbmVyTWFuYWdlciAqbWFuYWdlcjsKKysgIFRyYWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVy X2NvbnRyb2xfcHJveHk7CisgfTsKKyAKKyAKK0BAIC03NiwxMiArNzcsMTIgQEAgc3RhdGljIHZv aWQKKyBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbmRleCAoR09iamVjdCAqc291 cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7Cisg ICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxlID0gR19GSUxFICh1c2VyX2RhdGEpOworLSAgVHJhY2tl ck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IFRSQUNLRVJfTUlORVJfTUFOQUdFUiAoc291cmNlX29i amVjdCk7CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5ID0g VFJBQ0tFUl9NSU5FUl9GSUxFU19JTkRFWCAoc291cmNlX29iamVjdCk7CisgCisgICB7CisgICAg IGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CisgCistICAgIGlmICghdHJhY2tlcl9t aW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9yX3Byb2Nlc3NfZmluaXNoIChtYW5hZ2VyLCByZXMs ICZlcnJvcikpCisrICAgIGlmICghdHJhY2tlcl9taW5lcl9maWxlc19pbmRleF9jYWxsX2luZGV4 X2xvY2F0aW9uX2ZpbmlzaCAobWluZXJfY29udHJvbF9wcm94eSwgcmVzLCAmZXJyb3IpKQorICAg ICAgIHsKKyAgICAgICAgIGlmICghZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwg R19JT19FUlJPUl9DQU5DRUxMRUQpKQorICAgICAgICAgICB7CitAQCAtMTAyLDYgKzEwMyw4IEBA IHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX25leHRfZmlsZXMgKEdPYmplY3QgKnNv dXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsCisgICBHRmlsZUVudW1lcmF0b3IgKmVudW1lcmF0b3Ig PSBHX0ZJTEVfRU5VTUVSQVRPUiAoc291cmNlX29iamVjdCk7CisgICBHTGlzdCAqaW5mb3MgPSBO VUxMOworICAgR0xpc3QgKmw7CisrICBjb25zdCBnY2hhciAqdHJhY2tlcl9wcmlvcml0eV9ncmFw aHNbXSA9IHsgVFJBQ0tFUl9QSUNUVVJFU19HUkFQSCB9OworKyAgY29uc3QgZ2NoYXIgKnRyYWNr ZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3NbXSA9IHsgImZvci1wcm9jZXNzIiB9OworIAorICAgewor ICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworQEAgLTE4NywxMSArMTkwLDEz IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX25leHRfZmlsZXMgKEdPYmplY3Qg KnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsCisgICAgICAgICAgICAgICAgICAgICBpZiAoZ19j b250ZW50X3R5cGVfZXF1YWxzIChtaW1lX3R5cGUsIElNUE9SVEFCTEVfTUlNRV9UWVBFU1tpXSkK KyAgICAgICAgICAgICAgICAgICAgICAgICB8fCBnX2NvbnRlbnRfdHlwZV9pc19hIChtaW1lX3R5 cGUsIElNUE9SVEFCTEVfTUlNRV9UWVBFU1tpXSkpCisgICAgICAgICAgICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX21pbmVyX21hbmFnZXJfaW5kZXhfZmls ZV9mb3JfcHJvY2Vzc19hc3luYyAoc2VsZi0+bWFuYWdlciwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmlsZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+Y2FuY2VsbGFibGUsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2luZGV4LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX29iamVjdF9yZWYgKGZpbGUpKTsKKysgICAgICAgICAgICAgICAgICAg ICAgICB0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4X2NhbGxfaW5kZXhfbG9jYXRpb24gKHNlbGYt Pm1pbmVyX2NvbnRyb2xfcHJveHksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmksCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0cmFja2VyX3ByaW9yaXR5X2dyYXBocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrZXJfaW5kZXhf bG9jYXRpb25fZmxhZ3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5jYW5jZWxsYWJsZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2luZGV4LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ19vYmplY3RfcmVmIChmaWxlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg aW5kZXhpbmcgPSBUUlVFOworICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICAgfQorQEAgLTI5MSwyOCArMjk2LDYgQEAgcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRy b2xsZXJfc291cmNlX2FjdGl2ZV9jaGFuZ2VkIChQaG90b3NUcmFja2VySW1wb3J0Q29udHIKKyAg ICAgeworICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGdfcXVldWVfaXNfZW1wdHkgKHNlbGYtPnBl bmRpbmdfZGlyZWN0b3JpZXMpKTsKKyAKKy0gICAgICBpZiAoR19MSUtFTFkgKHNlbGYtPm1hbmFn ZXIgIT0gTlVMTCkpCistICAgICAgICB7CistICAgICAgICAgIGdfYXV0b3B0ciAoR0ZpbGUpIHJv b3QgPSBOVUxMOworLSAgICAgICAgICBnX2F1dG9mcmVlIGdjaGFyICp1cmkgPSBOVUxMOworLQor LSAgICAgICAgICByb290ID0gZ19tb3VudF9nZXRfcm9vdCAobW91bnQpOworLSAgICAgICAgICBn X3F1ZXVlX3B1c2hfdGFpbCAoc2VsZi0+cGVuZGluZ19kaXJlY3RvcmllcywgZ19vYmplY3RfcmVm IChyb290KSk7CistCistICAgICAgICAgIHVyaSA9IGdfZmlsZV9nZXRfdXJpIChyb290KTsKKy0g ICAgICAgICAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfSU1QT1JULCAiRW51bWVyYXRpbmcg ZGV2aWNlIGRpcmVjdG9yeSAlcyIsIHVyaSk7CistCistICAgICAgICAgIGdfZmlsZV9lbnVtZXJh dGVfY2hpbGRyZW5fYXN5bmMgKHJvb3QsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfQ09OVEVOVF9UWVBFIiwiCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJV VEVfU1RBTkRBUkRfTkFNRSIsIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1RZUEUsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9RVUVSWV9JTkZPX05PRk9MTE9XX1NZ TUxJTktTLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BS SU9SSVRZX0RFRkFVTFQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYtPmNhbmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9lbnVtZXJhdGVfY2hp bGRyZW4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYp OworLSAgICAgICAgfQorLQorICAgICAgIHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJfcmVmcmVz aF9mb3Jfb2JqZWN0IChQSE9UT1NfVFJBQ0tFUl9DT05UUk9MTEVSIChzZWxmKSk7CisgICAgIH0K KyB9CitAQCAtMzc5LDcgKzM2Miw2IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVy X2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyAKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ c3JjX21uZ3IpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5vZmZzZXRfY250cmxyKTsKKy0g IGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWFuYWdlcik7CisgCisgICBHX09CSkVDVF9DTEFTUyAo cGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZSAo b2JqZWN0KTsKKyB9CitAQCAtMzk3LDYgKzM3OSwzNyBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRf Y29udHJvbGxlcl9maW5hbGl6ZSAoR09iamVjdCAqb2JqZWN0KQorIH0KKyAKKyAKKytzdGF0aWMg VHJhY2tlck1pbmVyRmlsZXNJbmRleCAqCisrcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xs ZXJfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfcHJveHkgKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUp CisreworKyAgZ19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHRyYWNrZXJfcXVldWUgPSBO VUxMOworKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZTsKKysgIGdfYXV0 b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICpt aW5lcl9jb250cm9sX3Byb3h5OworKworKyAgdHJhY2tlcl9xdWV1ZSA9IHBob3Rvc190cmFja2Vy X3F1ZXVlX2R1cF9zaW5nbGV0b24gKGNhbmNlbGxhYmxlLCAmZXJyb3IpOworKworKyAgaWYgKCF0 cmFja2VyX3F1ZXVlKSB7CisrICAgIGdfd2FybmluZyAoIkVycm9yIGdldHRpbmcgVHJhY2tlciBx dWV1ZTogJXMuIEltcG9ydCB3aWxsIG5vdCB3b3JrLiIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAg cmV0dXJuIE5VTEw7CisrICB9CisrCisrICBtaW5lcl9mc19jb250cm9sX2J1c25hbWUgPSBwaG90 b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfY29udHJvbF9idXNuYW1lICh0cmFja2VyX3F1 ZXVlKTsKKysgIG1pbmVyX2NvbnRyb2xfcHJveHkgPSB0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4 X3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU0VTU0lPTiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19OT05FLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluZXJf ZnNfY29udHJvbF9idXNuYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3Av VHJhY2tlcjMvTWluZXIvRmlsZXMvQ29udHJvbCIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmVycm9yKTsKKysgIGlmICghbWluZXJfY29udHJvbF9wcm94eSkg eworKyAgICBnX3dhcm5pbmcgKCJFcnJvciBnZXR0aW5nIFRyYWNrZXIgTWluZXIgRlMgY29udHJv bCBwcm94eTogJXMuIEltcG9ydCB3aWxsIG5vdCB3b3JrIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAg ICByZXR1cm4gTlVMTDsKKysgIH0KKysKKysgIHJldHVybiBtaW5lcl9jb250cm9sX3Byb3h5Owor K30KKysKKysKKyBzdGF0aWMgdm9pZAorIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVy X2luaXQgKFBob3Rvc1RyYWNrZXJJbXBvcnRDb250cm9sbGVyICpzZWxmKQorIHsKK0BAIC00MjEs MTMgKzQzNCw3IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2luaXQgKFBob3Rv c1RyYWNrZXJJbXBvcnRDb250cm9sbGVyICpzZWxmKQorIAorICAgc2VsZi0+b2Zmc2V0X2NudHJs ciA9IHBob3Rvc19vZmZzZXRfaW1wb3J0X2NvbnRyb2xsZXJfZHVwX3NpbmdsZXRvbiAoKTsKKyAK Ky0gIHsKKy0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgc2Vs Zi0+bWFuYWdlciA9IHRyYWNrZXJfbWluZXJfbWFuYWdlcl9uZXdfZnVsbCAoRkFMU0UsICZlcnJv cik7CistICAgIGlmIChlcnJvciAhPSBOVUxMKQorLSAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0 byBjcmVhdGUgYSBUcmFja2VyTWluZXJNYW5hZ2VyLCBpbmRleGluZyBhdHRhY2hlZCBkZXZpY2Vz IHdvbid0IHdvcms6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLSAgfQorKyAgc2VsZi0+bWluZXJf Y29udHJvbF9wcm94eSA9IHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2dldF9taW5l cl9mc19jb250cm9sX3Byb3h5IChOVUxMKTsKKyB9CisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bo b3Rvcy10cmFja2VyLXF1ZXVlLmMgYi9zcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuYworaW5kZXgg NmFjODI5Y2QuLmE1ZjRjOTFhIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVl LmMKKysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5jCitAQCAtMzcsOSArMzcsMjAgQEAg c3RydWN0IF9QaG90b3NUcmFja2VyUXVldWUKKyAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwor ICAgR0Vycm9yICppbml0aWFsaXphdGlvbl9lcnJvcjsKKyAgIEdRdWV1ZSAqcXVldWU7CistICBU cmFja2VyU3BhcnFsQ29ubmVjdGlvbiAqY29ubmVjdGlvbjsKKysgIFRyYWNrZXJTcGFycWxDb25u ZWN0aW9uICpsb2NhbF9jb25uZWN0aW9uOworKyAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb24gKm1p bmVyX2ZzX2Nvbm5lY3Rpb247CisgICBnYm9vbGVhbiBpc19pbml0aWFsaXplZDsKKyAgIGdib29s ZWFuIHJ1bm5pbmc7CisrICBnYm9vbGVhbiBtaW5lcl9mc19yZWFkeTsKKysgIGNvbnN0IGdjaGFy ICptaW5lcl9mc19idXNuYW1lOworKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2NvbnRyb2xfYnVz bmFtZTsKKyt9OworKworK2VudW0KKyt7CisrICBQUk9QXzAsCisrICBQUk9QX01JTkVSX0ZTX1JF QURZLAorKyAgUFJPUF9NSU5FUl9GU19CVVNOQU1FCisgfTsKKyAKKyBzdGF0aWMgdm9pZCBwaG90 b3NfdHJhY2tlcl9xdWV1ZV9pbml0YWJsZV9pZmFjZV9pbml0IChHSW5pdGFibGVJZmFjZSAqaWZh Y2UpOworQEAgLTkwLDcgKzEwMSw2IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2RhdGFfZnJlZSAo UGhvdG9zVHJhY2tlclF1ZXVlRGF0YSAqZGF0YSkKKyAKKyBHX0RFRklORV9BVVRPUFRSX0NMRUFO VVBfRlVOQyAoUGhvdG9zVHJhY2tlclF1ZXVlRGF0YSwgcGhvdG9zX3RyYWNrZXJfcXVldWVfZGF0 YV9mcmVlKTsKKyAKKy0KKyBzdGF0aWMgUGhvdG9zVHJhY2tlclF1ZXVlRGF0YSAqCisgcGhvdG9z X3RyYWNrZXJfcXVldWVfZGF0YV9uZXcgKFBob3Rvc1F1ZXJ5ICpxdWVyeSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGhvdG9zVHJhY2tlclF1ZXJ5VHlwZSBxdWVyeV90eXBlLAor QEAgLTE3OSw3ICsxODksNyBAQCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jaGVjayAoUGhvdG9zVHJh Y2tlclF1ZXVlICpzZWxmKQorICAgc3dpdGNoIChkYXRhLT5xdWVyeV90eXBlKQorICAgICB7Cisg ICAgIGNhc2UgUEhPVE9TX1RSQUNLRVJfUVVFUllfU0VMRUNUOgorLSAgICAgIHRyYWNrZXJfc3Bh cnFsX2Nvbm5lY3Rpb25fcXVlcnlfYXN5bmMgKHNlbGYtPmNvbm5lY3Rpb24sCisrICAgICAgdHJh Y2tlcl9zcGFycWxfY29ubmVjdGlvbl9xdWVyeV9hc3luYyAoc2VsZi0+bG9jYWxfY29ubmVjdGlv biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFycWws CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2Fu Y2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGhvdG9zX3RyYWNrZXJfcXVldWVfY29sbGVjdG9yLAorQEAgLTE4NywxOCArMTk3LDE2IEBAIHBo b3Rvc190cmFja2VyX3F1ZXVlX2NoZWNrIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisgICAg ICAgYnJlYWs7CisgCisgICAgIGNhc2UgUEhPVE9TX1RSQUNLRVJfUVVFUllfVVBEQVRFOgorLSAg ICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2FzeW5jIChzZWxmLT5jb25uZWN0 aW9uLAorKyAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2FzeW5jIChzZWxm LT5sb2NhbF9jb25uZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzcGFycWwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbGxl Y3RvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19v YmplY3RfcmVmIChzZWxmKSk7CisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgUEhPVE9TX1RS QUNLRVJfUVVFUllfVVBEQVRFX0JMQU5LOgorLSAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rp b25fdXBkYXRlX2JsYW5rX2FzeW5jIChzZWxmLT5jb25uZWN0aW9uLAorKyAgICAgIHRyYWNrZXJf c3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2JsYW5rX2FzeW5jIChzZWxmLT5sb2NhbF9jb25uZWN0 aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzcGFycWwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2FuY2VsbGFibGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1 ZXVlX2NvbGxlY3RvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ19vYmplY3RfcmVmIChzZWxmKSk7CitAQCAtMjExLDYgKzIxOSw1MyBAQCBw aG90b3NfdHJhY2tlcl9xdWV1ZV9jaGVjayAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorIH0K KyAKKyAKKytzdGF0aWMgZ2Jvb2xlYW4KKytwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9zZXNz aW9uX21pbmVyX2ZzIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsIEdFcnJvciAqKmVycm9yKQor K3sKKysgIGNvbnN0IGdjaGFyICpidXNuYW1lID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5N aW5lci5GaWxlcyI7CisrICBjb25zdCBnY2hhciAqY29udHJvbF9idXNuYW1lID0gIm9yZy5mcmVl ZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5Db250cm9sIjsKKysKKysgIHBob3Rvc19kZWJ1 ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJDb25uZWN0aW5nIHRvICVzIiwgYnVzbmFtZSk7Cisr ICBzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uID0gdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9i dXNfbmV3IChidXNuYW1lLCBOVUxMLCBOVUxMLCBlcnJvcik7CisrICBpZiAoKmVycm9yKQorKyAg ICB7CisrICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBjb25uZWN0aW9uIGZvciBz ZXNzaW9uLXdpZGUgVHJhY2tlciBpbmRleGVyIGF0ICVzOiAlcyIsIGJ1c25hbWUsICgqZXJyb3Ip LT5tZXNzYWdlKTsKKysgICAgICByZXR1cm4gRkFMU0U7CisrICAgIH0KKysKKysgIHNlbGYtPm1p bmVyX2ZzX2J1c25hbWUgPSBidXNuYW1lOworKyAgc2VsZi0+bWluZXJfZnNfY29udHJvbF9idXNu YW1lID0gY29udHJvbF9idXNuYW1lOworKworKyAgcmV0dXJuIFRSVUU7CisrfQorKworKworK3N0 YXRpYyBnYm9vbGVhbgorK3Bob3Rvc190cmFja2VyX3F1ZXVlX3N0YXJ0X2xvY2FsX21pbmVyX2Zz IChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsIEdFcnJvciAqKmVycm9yKQorK3sKKysgIGNvbnN0 IGdjaGFyICpidXNuYW1lID0gIm9yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMi OworKyAgY29uc3QgZ2NoYXIgKmNvbnRyb2xfYnVzbmFtZSA9ICJvcmcuZ25vbWUuUGhvdG9zLlRy YWNrZXIzLk1pbmVyLkZpbGVzLkNvbnRyb2wiOworKworKyAgcGhvdG9zX2RlYnVnIChQSE9UT1Nf REVCVUdfVFJBQ0tFUiwgIkNvbm5lY3RpbmcgdG8gJXMiLCBidXNuYW1lKTsKKysgIHNlbGYtPm1p bmVyX2ZzX2Nvbm5lY3Rpb24gPSB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX2J1c19uZXcgKGJ1 c25hbWUsIE5VTEwsIE5VTEwsIGVycm9yKTsKKysgIGlmICgqZXJyb3IpCisrICAgIHsKKysgICAg ICBnX2NyaXRpY2FsICgiQ291bGQgbm90IHN0YXJ0IGxvY2FsIFRyYWNrZXIgaW5kZXhlciBhdCAl czogJXMiLCBidXNuYW1lLCAoKmVycm9yKS0+bWVzc2FnZSk7CisrICAgICAgcmV0dXJuIEZBTFNF OworKyAgICB9CisrCisrICBzZWxmLT5taW5lcl9mc19idXNuYW1lID0gYnVzbmFtZTsKKysgIHNl bGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSA9IGNvbnRyb2xfYnVzbmFtZTsKKysKKysgIHJl dHVybiBUUlVFOworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKytpbnNpZGVfZmxhdHBhayAodm9p ZCkKKyt7CisrICAgIHJldHVybiBnX2ZpbGVfdGVzdCAoIi8uZmxhdHBhay1pbmZvIiwgR19GSUxF X1RFU1RfRVhJU1RTKTsKKyt9CisrCisgc3RhdGljIEdPYmplY3QgKgorIHBob3Rvc190cmFja2Vy X3F1ZXVlX2NvbnN0cnVjdG9yIChHVHlwZSB0eXBlLCBndWludCBuX2NvbnN0cnVjdF9wYXJhbXMs IEdPYmplY3RDb25zdHJ1Y3RQYXJhbSAqY29uc3RydWN0X3BhcmFtcykKKyB7CitAQCAtMjM0LDcg KzI4OSw4IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkK KyB7CisgICBQaG90b3NUcmFja2VyUXVldWUgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAo b2JqZWN0KTsKKyAKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+Y29ubmVjdGlvbik7CisrICBn X2NsZWFyX29iamVjdCAoJnNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24pOworKyAgZ19jbGVhcl9vYmpl Y3QgKCZzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uKTsKKyAKKyAgIEdfT0JKRUNUX0NMQVNTIChw aG90b3NfdHJhY2tlcl9xdWV1ZV9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlIChvYmplY3QpOworIH0K K0BAIC0yNTgsNiArMzE0LDM4IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2luaXQgKFBob3Rvc1Ry YWNrZXJRdWV1ZSAqc2VsZikKKyAgIHNlbGYtPnF1ZXVlID0gZ19xdWV1ZV9uZXcgKCk7CisgfQor IAorK3N0YXRpYyB2b2lkCisrcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X3Byb3BlcnR5IChHT2Jq ZWN0ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBz cGVjKQorK3sKKysgIFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX1FV RVVFIChvYmplY3QpOworKworKyAgc3dpdGNoIChwcm9wX2lkKQorKyAgICB7CisrICAgIGNhc2Ug UFJPUF9NSU5FUl9GU19SRUFEWToKKysgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuICh2YWx1ZSwg c2VsZi0+bWluZXJfZnNfcmVhZHkpOworKyAgICAgIGJyZWFrOworKworKyAgICBjYXNlIFBST1Bf TUlORVJfRlNfQlVTTkFNRToKKysgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcgKHZhbHVlLCBzZWxm LT5taW5lcl9mc19idXNuYW1lKTsKKysgICAgICBicmVhazsKKysKKysgICAgZGVmYXVsdDoKKysg ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwg cHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhv dG9zX3RyYWNrZXJfcXVldWVfc2V0X3Byb3BlcnR5IChHT2JqZWN0ICpvYmplY3QsIGd1aW50IHBy b3BfaWQsIGNvbnN0IEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVjKQorK3sKKysgIHN3 aXRjaCAocHJvcF9pZCkKKysgICAgeworKyAgICAvKiBBbGwgcHJvcGVydGllcyBhcmUgcmVhZCBv bmx5ICovCisrICAgIGRlZmF1bHQ6CisrICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BF UlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKysgICAgICBicmVhazsKKysgICAgfQor K30KKyAKKyBzdGF0aWMgdm9pZAorIHBob3Rvc190cmFja2VyX3F1ZXVlX2NsYXNzX2luaXQgKFBo b3Rvc1RyYWNrZXJRdWV1ZUNsYXNzICpjbGFzcykKK0BAIC0yNjcsNiArMzU1LDI0IEBAIHBob3Rv c190cmFja2VyX3F1ZXVlX2NsYXNzX2luaXQgKFBob3Rvc1RyYWNrZXJRdWV1ZUNsYXNzICpjbGFz cykKKyAgIG9iamVjdF9jbGFzcy0+Y29uc3RydWN0b3IgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9j b25zdHJ1Y3RvcjsKKyAgIG9iamVjdF9jbGFzcy0+ZGlzcG9zZSA9IHBob3Rvc190cmFja2VyX3F1 ZXVlX2Rpc3Bvc2U7CisgICBvYmplY3RfY2xhc3MtPmZpbmFsaXplID0gcGhvdG9zX3RyYWNrZXJf cXVldWVfZmluYWxpemU7CisrICBvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc190 cmFja2VyX3F1ZXVlX2dldF9wcm9wZXJ0eTsKKysgIG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5 ID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfc2V0X3Byb3BlcnR5OworKworKyAgZ19vYmplY3RfY2xh c3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUFJPUF9NSU5FUl9GU19SRUFEWSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuICgidHJhY2tlci1taW5lci1mcy1y ZWFkeSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlRyYWNrZXIgTWluZXIgRlMgcmVhZHkiLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUUlVFIGlmIGl0IGlzIHBvc3Np YmxlIHRvIHF1ZXJ5IFRyYWNrZXIgaW5kZXhlciIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEQUJM RSkpOworKworKyAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9NSU5FUl9GU19CVVNO QU1FLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0 cmluZyAoInRyYWNrZXItbWluZXItZnMtYnVzbmFtZSIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJhY2tlciBNaW5lciBGUyBidXNu YW1lIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJELUJ1cyBuYW1lIG9mIHRoZSBUcmFja2VyIGluZGV4ZXIgZGFlbW9uIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R19QQVJBTV9SRUFEQUJMRSkpOworIH0KKyAKKyAKK0BAIC0yNzQsMTMgKzM4MCwxNiBAQCBzdGF0 aWMgZ2Jvb2xlYW4KKyBwaG90b3NfdHJhY2tlcl9xdWV1ZV9pbml0YWJsZV9pbml0IChHSW5pdGFi bGUgKmluaXRhYmxlLCBHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikK KyB7CisgICBQaG90b3NUcmFja2VyUXVldWUgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAo aW5pdGFibGUpOworKyAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb25GbGFncyB0cmFja2VyX2ZsYWdz OworKyAgZ19hdXRvcHRyIChHRmlsZSkgc3RvcmUgPSBOVUxMOworICAgZ2Jvb2xlYW4gcmV0X3Zh bCA9IEZBTFNFOworKyAgZ2Jvb2xlYW4gbWluZXJfb2sgPSBGQUxTRTsKKyAKKyAgIEdfTE9DSyAo aW5pdF9sb2NrKTsKKyAKKyAgIGlmIChzZWxmLT5pc19pbml0aWFsaXplZCkKKyAgICAgeworLSAg ICAgIGlmIChzZWxmLT5jb25uZWN0aW9uICE9IE5VTEwpCisrICAgICAgaWYgKHNlbGYtPmxvY2Fs X2Nvbm5lY3Rpb24gIT0gTlVMTCAmJiBzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uICE9IE5VTEwp CisgICAgICAgICByZXRfdmFsID0gVFJVRTsKKyAgICAgICBlbHNlCisgICAgICAgICBnX2Fzc2Vy dF9ub25udWxsIChzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7CitAQCAtMjkwLDExICszOTks NDkgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfaW5pdGFibGVfaW5pdCAoR0luaXRhYmxlICppbml0 YWJsZSwgR0NhbmNlbGxhYmxlICpjYW5jZWxsYWIKKyAKKyAgIGdfYXNzZXJ0X25vX2Vycm9yIChz ZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7CisgCistICBzZWxmLT5jb25uZWN0aW9uID0gdHJh Y2tlcl9zcGFycWxfY29ubmVjdGlvbl9nZXQgKGNhbmNlbGxhYmxlLCAmc2VsZi0+aW5pdGlhbGl6 YXRpb25fZXJyb3IpOworKyAgLyogQ29ubmVjdCB0byB0aGUgbG9jYWwgZGF0YWJhc2Ugd2hpY2gg c3RvcmVzIHVzZXIgZGF0YS4KKysgICAqCisrICAgKiBTYW1lIGZsYWdzIHRoYXQgdHJhY2tlci1t aW5lci1mcyB1c2VzIGJ5IGRlZmF1bHQuIFNlZToKKysgICAqIGh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy8tL2Jsb2IvbWFzdGVyL3NyYy9taW5lcnMvZnMvdHJh Y2tlci1tYWluLmMjTDczNSBhbmQKKysgICAqIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9N RS90cmFja2VyLW1pbmVycy8tL2Jsb2IvbWFzdGVyL2RhdGEvb3JnLmZyZWVkZXNrdG9wLlRyYWNr ZXIuRlRTLmdzY2hlbWEueG1sICovCisrICB0cmFja2VyX2ZsYWdzID0gVFJBQ0tFUl9TUEFSUUxf Q09OTkVDVElPTl9GTEFHU19GVFNfRU5BQkxFX1VOQUNDRU5UIHwKKysgICAgICAgICAgICAgICAg ICBUUkFDS0VSX1NQQVJRTF9DT05ORUNUSU9OX0ZMQUdTX0ZUU19FTkFCTEVfU1RPUF9XT1JEUyB8 CisrICAgICAgICAgICAgICAgICAgVFJBQ0tFUl9TUEFSUUxfQ09OTkVDVElPTl9GTEFHU19GVFNf SUdOT1JFX05VTUJFUlM7CisrCisrICBzdG9yZSA9IGdfZmlsZV9uZXdfYnVpbGRfZmlsZW5hbWUg KGdfZ2V0X3VzZXJfZGF0YV9kaXIgKCksICJnbm9tZS1waG90b3MiLCBOVUxMKTsKKysKKysgIHBo b3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJPcGVuaW5nIGxvY2FsIGRhdGFiYXNl IGF0ICVzIiwgZ19maWxlX3BlZWtfcGF0aCAoc3RvcmUpKTsKKysgIHNlbGYtPmxvY2FsX2Nvbm5l Y3Rpb24gPSB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX25ldyAodHJhY2tlcl9mbGFncywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RvcmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRyYWNrZXJfc3BhcnFsX2dldF9vbnRvbG9neV9uZXBvbXVrICgpLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5j ZWxsYWJsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnNlbGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsKKysKKyAgIGlmIChHX1VO TElLRUxZIChzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvciAhPSBOVUxMKSkKKyAgICAgZ290byBv dXQ7CisgCistICByZXRfdmFsID0gVFJVRTsKKysgIC8qIENvbm5lY3QgdG8gZmlsZXN5c3RlbSBp bmRleGVyLiAqLworKyAgbWluZXJfb2sgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9zZXNz aW9uX21pbmVyX2ZzIChzZWxmLCAmc2VsZi0+aW5pdGlhbGl6YXRpb25fZXJyb3IpOworKworKyAg aWYgKCFtaW5lcl9vayAmJiBpbnNpZGVfZmxhdHBhayAoKSkKKysgICAgeworKyAgICAgIGdfY2xl YXJfZXJyb3IgKCZzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7CisrICAgICAgbWluZXJfb2sg PSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9sb2NhbF9taW5lcl9mcyAoc2VsZiwgJnNlbGYt PmluaXRpYWxpemF0aW9uX2Vycm9yKTsKKysgICAgfQorKworKyAgaWYgKG1pbmVyX29rKQorKyAg ICB7CisrICAgICAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIlVzaW5nICVz IGFzIHRyYWNrZXItbWluZXItZnMiLCBzZWxmLT5taW5lcl9mc19idXNuYW1lKTsKKysgICAgICBy ZXRfdmFsID0gVFJVRTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgcGhvdG9zX2Rl YnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIkluaXRpYWxpemF0aW9uIGZhaWxlZCBkdWUgdG8g JXMiLCBzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvci0+bWVzc2FnZSk7CisrICAgICAgZ19jbGVh cl9vYmplY3QgKCZzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uKTsKKysgICAgICBnX2NsZWFyX29i amVjdCAoJnNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24pOworKyAgICAgIHJldF92YWwgPSBGQUxTRTsK KysgICAgfQorKworIAorICBvdXQ6CisgICBzZWxmLT5pc19pbml0aWFsaXplZCA9IFRSVUU7CitA QCAtMzE5LDEwICs0NjYsNDQgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfaW5pdGFibGVfaWZhY2Vf aW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNlKQorIFBob3Rvc1RyYWNrZXJRdWV1ZSAqCisgcGhv dG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAoR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJs ZSwgR0Vycm9yICoqZXJyb3IpCisgeworKyAgR09iamVjdCAqc2luZ2xldG9uOworKworICAgZ19y ZXR1cm5fdmFsX2lmX2ZhaWwgKGNhbmNlbGxhYmxlID09IE5VTEwgfHwgR19JU19DQU5DRUxMQUJM RSAoY2FuY2VsbGFibGUpLCBOVUxMKTsKKyAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChlcnJvciA9 PSBOVUxMIHx8ICplcnJvciA9PSBOVUxMLCBOVUxMKTsKKyAKKy0gIHJldHVybiBnX2luaXRhYmxl X25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9RVUVVRSwgY2FuY2VsbGFibGUsIGVycm9yLCBOVUxM KTsKKysgIHNpbmdsZXRvbiA9IGdfb2JqZWN0X25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9RVUVV RSwgTlVMTCk7CisrCisrICBpZiAoZ19pbml0YWJsZV9pbml0IChHX0lOSVRBQkxFIChzaW5nbGV0 b24pLCBjYW5jZWxsYWJsZSwgZXJyb3IpKQorKyAgICAgIHJldHVybiBQSE9UT1NfVFJBQ0tFUl9R VUVVRSAoc2luZ2xldG9uKTsKKysKKysgIC8qIE9uIGVycm9yIHdlIGRlbGliZXJhdGVseSBkb24n dCB1bnJlZiB0aGUgb2JqZWN0IHNvIHRoYXQgd2Ugd29uJ3QgdHJ5CisrICAgKiBhbmQgcmUtaW5p dGlhbGl6ZSBUcmFja2VyIHdoZW4gY2FsbGVkIGFnYWluLgorKyAgICovCisrICByZXR1cm4gTlVM TDsKKyt9CisrCisrCisrY29uc3QgZ2NoYXIgKgorK3Bob3Rvc190cmFja2VyX3F1ZXVlX2dldF9t aW5lcl9mc19idXNuYW1lIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisreworKyAgcmV0dXJu IHNlbGYtPm1pbmVyX2ZzX2J1c25hbWU7CisrfQorKworKworK2NvbnN0IGdjaGFyICoKKytwaG90 b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfY29udHJvbF9idXNuYW1lIChQaG90b3NUcmFj a2VyUXVldWUgKnNlbGYpCisreworKyAgcmV0dXJuIHNlbGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVz bmFtZTsKKyt9CisrCisrCisrVHJhY2tlck5vdGlmaWVyICoKKytwaG90b3NfdHJhY2tlcl9xdWV1 ZV9nZXRfbm90aWZpZXIgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKKyt7CisrICAvKiBXZSB3 YW50IG5vdGlmaWNhdGlvbnMgb24gZmlsZXN5c3RlbSBjaGFuZ2VzLCB3ZSBkb24ndCBuZWVkIHRo ZW0gZm9yIHRoZQorKyAgICogbG9jYWwgZGF0YWJhc2Ugd2hpY2ggd2UgbWFuYWdlIG91cnNlbHZl cy4KKysgICAqLworKyAgcmV0dXJuIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fY3JlYXRlX25v dGlmaWVyIChzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uKTsKKyB9CisgCisgCitAQCAtMzUxLDYg KzUzMiw3IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX3NlbGVjdCAoUGhvdG9zVHJhY2tlclF1ZXVl ICpzZWxmLAorIH0KKyAKKyAKKysKKyB2b2lkCisgcGhvdG9zX3RyYWNrZXJfcXVldWVfdXBkYXRl IChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQaG90b3NRdWVyeSAqcXVlcnksCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1 ZXVlLmggYi9zcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuaAoraW5kZXggOTNkOTczMDYuLjZlMzFl Y2Y2IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmgKKysrKyBiL3NyYy9w aG90b3MtdHJhY2tlci1xdWV1ZS5oCitAQCAtMjQsMTYgKzI0LDIzIEBACisgI2RlZmluZSBQSE9U T1NfVFJBQ0tFUl9RVUVVRV9ICisgCisgI2luY2x1ZGUgPGdpby9naW8uaD4KKysjaW5jbHVkZSA8 bGlidHJhY2tlci1zcGFycWwvdHJhY2tlci1zcGFycWwuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9z LXF1ZXJ5LmgiCisgCisgR19CRUdJTl9ERUNMUworIAorKyNkZWZpbmUgVFJBQ0tFUl9QSUNUVVJF U19HUkFQSCAiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My90cmFja2Vy I1BpY3R1cmVzIgorKworICNkZWZpbmUgUEhPVE9TX1RZUEVfVFJBQ0tFUl9RVUVVRSAocGhvdG9z X3RyYWNrZXJfcXVldWVfZ2V0X3R5cGUgKCkpCisgR19ERUNMQVJFX0ZJTkFMX1RZUEUgKFBob3Rv c1RyYWNrZXJRdWV1ZSwgcGhvdG9zX3RyYWNrZXJfcXVldWUsIFBIT1RPUywgVFJBQ0tFUl9RVUVV RSwgR09iamVjdCk7CisgCisgUGhvdG9zVHJhY2tlclF1ZXVlICAgICpwaG90b3NfdHJhY2tlcl9x dWV1ZV9kdXBfc2luZ2xldG9uICAgICAgICAgIChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBH RXJyb3IgKiplcnJvcik7CisgCisrY29uc3QgZ2NoYXIgKiAgICAgICAgICBwaG90b3NfdHJhY2tl cl9xdWV1ZV9nZXRfbWluZXJfZnNfYnVzbmFtZSAgICAgICAgIChQaG90b3NUcmFja2VyUXVldWUg KnNlbGYpOworK2NvbnN0IGdjaGFyICogICAgICAgICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0 X21pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKTsKKytU cmFja2VyTm90aWZpZXIgKiAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9ub3RpZmllciAg ICAgICAgICAgICAgICAgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZik7CisrCisgdm9pZCAgICAg ICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3QgICAgICAgICAgICAgICAg IChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaG90b3NRdWVyeSAqcXVl cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLAorZGlmZiAtLWdpdCBh L3NyYy9waG90b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sIGIvc3JjL3Bob3Rvcy10cmFja2VyLXJl c291cmNlcy54bWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMTgxNzdhYTAuLjAw MDAwMDAwCistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItcmVzb3VyY2VzLnhtbAorKysrIC9kZXYv bnVsbAorQEAgLTEsMzEgKzAsMCBAQAorLTwhRE9DVFlQRSBub2RlIFBVQkxJQworLSItLy9mcmVl ZGVza3RvcC8vRFREIEQtQlVTIE9iamVjdCBJbnRyb3NwZWN0aW9uIDEuMC8vRU4iCistImh0dHA6 Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJkcy9kYnVzLzEuMC9pbnRyb3NwZWN0LmR0ZCI+ CistCistPCEtLQorLSBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBo b3RvcyBvbiBHTk9NRQorLSBDb3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMu CistCistIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CistIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CistIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCistIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistCistIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorLSBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CistIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCistCistIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCistIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLS0tPgorLQorLTxub2RlIG5hbWU9Ii8iIHhtbG5zOmRv Yz0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvZGJ1cy8xLjAvZG9jLmR0ZCI+CistICA8aW50 ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5SZXNvdXJjZXMiPgorLSAgICA8 c2lnbmFsIG5hbWU9IkdyYXBoVXBkYXRlZCI+CistICAgICAgPGFyZyBuYW1lPSJjbGFzc05hbWUi IHR5cGU9InMiIC8+CistICAgICAgPGFyZyBuYW1lPSJkZWxldGVFdmVudHMiIHR5cGU9ImEoaWlp aSkiIC8+CistICAgICAgPGFyZyBuYW1lPSJpbnNlcnRFdmVudHMiIHR5cGU9ImEoaWlpaSkiIC8+ CistICAgIDwvc2lnbmFsPgorLSAgPC9pbnRlcmZhY2U+CistPC9ub2RlPgorZGlmZiAtLWdpdCBh L3NyYy9waG90b3MtdXRpbHMuYyBiL3NyYy9waG90b3MtdXRpbHMuYworaW5kZXggYzYzODI5N2Iu LmNjODU5M2Q4IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy11dGlscy5jCisrKysgYi9zcmMvcGhv dG9zLXV0aWxzLmMKK0BAIC0xMjYxLDcgKzEyNjEsMTMgQEAgcGhvdG9zX3V0aWxzX3NldF9lZGl0 ZWRfbmFtZSAoY29uc3QgZ2NoYXIgKnVybiwgY29uc3QgZ2NoYXIgKnRpdGxlKQorICAgZ19hdXRv cHRyIChQaG90b3NUcmFja2VyUXVldWUpIHF1ZXVlID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2No YXIgKnNwYXJxbCA9IE5VTEw7CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJJTlNF UlQgT1IgUkVQTEFDRSB7IDwlcz4gbmllOnRpdGxlIFwiJXNcIiB9IiwgdXJuLCB0aXRsZSk7Cisr ICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSVRIIHRyYWNrZXI6UGljdHVyZXMgIgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiREVMRVRFIHsgPCVzPiBuaWU6dGl0bGUgP3RpdGxl IH0gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSU5TRVJUIHsgIgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiICA8JXM+IGEgbm1tOlBob3RvIDsgIgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiICAgIG5pZTp0aXRsZSBcIiVzXCIgLiAiCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJ9IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUg eyA8JXM+IG5pZTp0aXRsZSA/dGl0bGUgfSIsIHVybiwgdXJuLCB0aXRsZSwgdXJuKTsKKyAgIHF1 ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVMTCwgc3BhcnFsKTsKKyAKKyAgIHsKK0BAIC0xMjg5 LDkgKzEyOTUsMTkgQEAgcGhvdG9zX3V0aWxzX3NldF9mYXZvcml0ZSAoY29uc3QgZ2NoYXIgKnVy biwgZ2Jvb2xlYW4gaXNfZmF2b3JpdGUpCisgICBnX2F1dG9wdHIgKFBob3Rvc1RyYWNrZXJRdWV1 ZSkgcXVldWUgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAK Ky0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIiVzIHsgPCVzPiBuYW86aGFzVGFnIG5hbzpw cmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KGlzX2Zhdm9yaXRlKSA/ICJJTlNFUlQgT1IgUkVQTEFDRSIgOiAiREVMRVRFIiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdXJuKTsKKysgIGlmIChpc19mYXZvcml0ZSkKKysgICAgc3Bh cnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJUIERBVEEgeyAiCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiAgR1JBUEggdHJhY2tlcjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgICAgPCVzPiBhIG5tbTpQaG90byA7ICIKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiICAgICAgbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWct ZmF2b3JpdGUgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIH0gIgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ9IiwgdXJuKTsKKysgIGVsc2UKKysgICAgc3BhcnFs ID0gZ19zdHJkdXBfcHJpbnRmICgiREVMRVRFIERBVEEgeyIKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiICBHUkFQSCB0cmFja2VyOlBpY3R1cmVzIHsiCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiAgICA8JXM+IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZh dm9yaXRlICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICB9ICIKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAifSIsIHVybik7CisgICBxdWVyeSA9IHBob3Rvc19xdWVy eV9uZXcgKE5VTEwsIHNwYXJxbCk7CisgCisgICB7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy11 dGlscy5oIGIvc3JjL3Bob3Rvcy11dGlscy5oCitpbmRleCA3OGVjMzY2OC4uZjE0NTBmN2QgMTAw NjQ0CistLS0gYS9zcmMvcGhvdG9zLXV0aWxzLmgKKysrKyBiL3NyYy9waG90b3MtdXRpbHMuaAor QEAgLTQ2LDcgKzQ2LDcgQEAgR19CRUdJTl9ERUNMUworICNkZWZpbmUgUEhPVE9TX1RSQUNLRVJf Q09OVFJPTExFUl9FWFRFTlNJT05fUE9JTlRfTkFNRSAicGhvdG9zLXRyYWNrZXItY29udHJvbGxl ciIKKyAKKyAjZGVmaW5lIFBIT1RPU19DT0xMRUNUSU9OX1NDUkVFTlNIT1QgXAorLSAgImh0dHA6 Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI2ltYWdl LWNhdGVnb3J5LXNjcmVlbnNob3QiCisrICAiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9v bnRvbG9neS92My9uZm8jaW1hZ2UtY2F0ZWdvcnktc2NyZWVuc2hvdCIKKyAjZGVmaW5lIFBIT1RP U19FWFBPUlRfU1VCUEFUSCAiRXhwb3J0cyIKKyAKKyB0eXBlZGVmIGVudW0KK2RpZmYgLS1naXQg YS9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJx bC50ZW1wbGF0ZQoraW5kZXggMWNlZjk4ZTguLjE0ZTA4MDI3IDEwMDY0NAorLS0tIGEvc3JjL3F1 ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorKysrIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50 ZW1wbGF0ZQorQEAgLTEsMzAgKzEsNDIgQEAKKy1TRUxFQ1Qge3twcm9qZWN0aW9ufX0KKytTRUxF Q1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KKytGUk9NIE5BTUVEIHRyYWNrZXI6UGljdHVyZXMKKyB7 CisgICAgIHsKKy0gICAgICAgIFNFTEVDVCB7e3Byb2plY3Rpb259fQorKyAgICAgICAgU0VMRUNU IHt7bWFpbl9wcm9qZWN0aW9ufX0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgIFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKKyAgICAgICAgICAg ICAgICAgeworKyAgICAgICAgICAgICAgICAgICAge3t2YWx1ZXN9fQorKyAgICAgICAgICAgICAg ICAgICAgVkFMVUVTICg/ZmlsZSA/ZmlsZW5hbWUgP2NyZWF0b3IgP3B1Ymxpc2hlcikgeyAoIiIg IiIgIiIgIiIpIH0KKyAgICAgICAgICAgICAgICAgICAgID91cm4gYSBuZm86RGF0YUNvbnRhaW5l ci4KKy0gICAgICAgICAgICAgICAgICAgID9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2Yg P3Vybi4KKy0gICAgICAgICAgICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAgICAgICAgICAgICAg ICAgICA/aXRlbSBhIG5tbTpQaG90byA7CisrICAgICAgICAgICAgICAgICAgICAgICBuaWU6aXNQ YXJ0T2YgP3VybiAuCisrICAgICAgICAgICAgICAgICAgICB7e2l0ZW1fcGF0dGVybn19CisrICAg ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgR1JPVVAgQlkgP3VybgorICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICBGSUxURVIgKD9jb3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19k ZWZhdWx0X2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorICAgICAgICAgfQorLSAgICAg ICAgR1JPVVAgQlkgP3VybgorICAgICB9CisgICAgIFVOSU9OCisgICAgIHsKKy0gICAgICAgIFNF TEVDVCB7e3Byb2plY3Rpb259fQorKyAgICAgICAgU0VMRUNUIHt7c2Vjb25kX3Byb2plY3Rpb259 fQorICAgICAgICAgeworLSAgICAgICAgICAgID91cm4gYSBubW06UGhvdG8gLgorLSAgICAgICAg ICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKy0gICAgICAgICAg ICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQorICAgICAgICAg ICAgIHt7aXRlbV9wYXR0ZXJufX0KKy0gICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1 bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisr ICAgICAgICAgICAgU0VSVklDRSA8ZGJ1czp7e21pbmVyX2ZzX2J1c25hbWV9fT4KKysgICAgICAg ICAgICB7CisrICAgICAgICAgICAgICAgIFNFTEVDVCB7e21haW5fcHJvamVjdGlvbn19CisrICAg ICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgICAgIHt7dmFsdWVzfX0KKysgICAgICAg ICAgICAgICAgICAgID91cm4gYSBubW06UGhvdG8gOworKyAgICAgICAgICAgICAgICAgICAgICAg IG5pZTppc1N0b3JlZEFzID9maWxlIC4KKysgICAgICAgICAgICAgICAgICAgIE9QVElPTkFMIHsg P3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysgICAgICAgICAgICAgICAgICAgIE9QVElP TkFMIHsgP3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9CisrICAgICAgICAgICAgICAg ICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVy fX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg ICB9CisgICAgICAgICB9CistICAgICAgICBHUk9VUCBCWSA/dXJuCisgICAgIH0KKyB9Cisge3tv cmRlcn19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBs YXRlIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCitpbmRleCAyMGIz NWNkNi4uNGRmYjM0NWEgMTAwNjQ0CistLS0gYS9zcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFy cWwudGVtcGxhdGUKKysrKyBiL3NyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0 ZQorQEAgLTEsMTQgKzEsMjAgQEAKKy1TRUxFQ1Qge3twcm9qZWN0aW9ufX0KKytTRUxFQ1Qge3tm aW5hbF9wcm9qZWN0aW9ufX0KKyB7CisrICAgIFNFTEVDVCB7e21haW5fcHJvamVjdGlvbn19Cisg ICAgIHsKKy0gICAgICAgIFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKKyAgICAg ICAgIHsKKy0gICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIuCistICAgICAgICAg ICAgP2l0ZW0gYSBubW06UGhvdG87IG5pZTppc1BhcnRPZiA/dXJuLgorLSAgICAgICAgfSBHUk9V UCBCWSA/dXJuCisrICAgICAgICAgICAgU0VMRUNUID91cm4gQ09VTlQoP2l0ZW0pIEFTID9jb3Vu dAorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAge3t2YWx1ZXN9fQorKyAgICAgICAg ICAgICAgICBWQUxVRVMgKD9maWxlID9maWxlbmFtZSA/Y3JlYXRvciA/cHVibGlzaGVyKSB7ICgi IiAiIiAiIiAiIikgfQorKyAgICAgICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIg LgorKyAgICAgICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90byA7CisrICAgICAgICAgICAgICAg ICAgIG5pZTppc1BhcnRPZiA/dXJuIC4KKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgR1JP VVAgQlkgP3VybgorKyAgICAgICAgfQorKyAgICAgICAgRklMVEVSICg/Y291bnQgPiAwICYmIHt7 Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKyAgICAg fQorLSAgICBGSUxURVIgKD9jb3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRl cn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorIH0KKy1HUk9VUCBCWSA/dXJuCisge3tvcmRlcn19 Cisge3tvZmZzZXRfbGltaXR9fQorZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVzL2Zhdm9yaXRlLXBo b3Rvcy5zcGFycWwudGVtcGxhdGUgYi9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFs LnRlbXBsYXRlCitpbmRleCAwODg1YTA4YS4uOWEwZDc4MDYgMTAwNjQ0CistLS0gYS9zcmMvcXVl cmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlCisrKysgYi9zcmMvcXVlcmllcy9m YXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlCitAQCAtMSwxMiArMSwyMCBAQAorLVNFTEVD VCB7e3Byb2plY3Rpb259fQorK1NFTEVDVCB7e2ZpbmFsX3Byb2plY3Rpb259fQorK0ZST00gdHJh Y2tlcjpQaWN0dXJlcworIHsKKyAgICAgP3VybiBhIG5tbTpQaG90byAuCisgICAgID91cm4gYSBu bW06UGhvdG87IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIC4KKy0gICAg T1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9yIC4gfQorLSAgICBPUFRJT05BTCB7 ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQorLSAgICB7e2l0ZW1fcGF0dGVybn19 CistICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0 ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysgICAgU0VSVklDRSA8ZGJ1czp7e21pbmVyX2Zz X2J1c25hbWV9fT4KKysgICAgeworKyAgICAgICAgU0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0K KysgICAgICAgIHsKKysgICAgICAgICAgICA/dXJuIGEgbm1tOlBob3RvIDsKKysgICAgICAgICAg ICAgICAgbmllOmlzU3RvcmVkQXMgP2ZpbGUgLgorKyAgICAgICAgICAgIE9QVElPTkFMIHsgP3Vy biBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4g bmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQorKyAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJu fX0KKysgICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tz b3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAgICAgICB9CisrICAgIH0K KyB9CistR1JPVVAgQlkgP3VybgorIHt7b3JkZXJ9fQorIHt7b2Zmc2V0X2xpbWl0fX0KK2RpZmYg LS1naXQgYS9zcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMv cGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQoraW5kZXggNGViMTBiNzQuLjZhZGUzNWUyIDEwMDY0NAor LS0tIGEvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorKysrIGIvc3JjL3F1ZXJp ZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTEsMTEgKzEsMTkgQEAKKy1TRUxFQ1Qge3tw cm9qZWN0aW9ufX0KKytTRUxFQ1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KKytGUk9NIHRyYWNrZXI6 UGljdHVyZXMKKyB7CistICAgID91cm4gYSBubW06UGhvdG8gLgorLSAgICBPUFRJT05BTCB7ID91 cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9CistICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVi bGlzaGVyID9wdWJsaXNoZXIgLiB9CistICAgIHt7aXRlbV9wYXR0ZXJufX0KKy0gICAgRklMVEVS ICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2Vh cmNoX2ZpbHRlcn19KQorKyAgICBTRVJWSUNFIDxkYnVzOnt7bWluZXJfZnNfYnVzbmFtZX19Pgor KyAgICB7CisrICAgICAgICBTRUxFQ1Qge3ttYWluX3Byb2plY3Rpb259fQorKyAgICAgICAgewor KyAgICAgICAgICAgIHt7dmFsdWVzfX0KKysgICAgICAgICAgICA/dXJuIGEgbm1tOlBob3RvIDsK KysgICAgICAgICAgICAgICAgbmllOmlzU3RvcmVkQXMgP2ZpbGUgLgorKyAgICAgICAgICAgIE9Q VElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysgICAgICAgICAgICBPUFRJ T05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQorKyAgICAgICAgICAgIHt7 aXRlbV9wYXR0ZXJufX0KKysgICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmls dGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAgICAg ICB9CisrICAgIH0KKyB9CistR1JPVVAgQlkgP3VybgorIHt7b3JkZXJ9fQorIHt7b2Zmc2V0X2xp bWl0fX0KKy0tIAorR2l0TGFiCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKaW5kZXggMWVkOGI5ODYxZWMu LjdjODNhMmU3NWQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtcGhvdG9zJwogcGtnbmFtZT1nbm9tZS1waG90b3MKLXZl cnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcuOTEuMQogcmV2aXNpb249MQogYnVpbGRfaGVscGVy PSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZG9ndGFpbD1mYWxz ZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnZXR0ZXh0IGl0c3Rvb2wgZ2xpYi1kZXZl bCBnZGstcGl4YnVmIGxpYnJzdmciCiBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgYmFibC1kZXZl bCBleGVtcGktZGV2ZWwgbGNtczItZGV2ZWwKLSBnZmJncmFwaC1kZXZlbCB0cmFja2VyLWRldmVs IGxpYmV4aWYtZGV2ZWwgbGlicnN2Zy1kZXZlbCBncmlsby1kZXZlbAorIGdmYmdyYXBoLWRldmVs IHRyYWNrZXIzLWRldmVsIGxpYmV4aWYtZGV2ZWwgbGlicnN2Zy1kZXZlbCBncmlsby1kZXZlbAog IGxpYmdleGl2Mi1kZXZlbCBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWwgZ25vbWUtZGVza3Rv cC1kZXZlbCBsaWJnZGF0YS1kZXZlbAogIGdlb2NvZGUtZ2xpYi1kZXZlbCBsaWJkYXp6bGUtZGV2 ZWwgZ2VnbC1kZXZlbCIKLWRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyB0cmFja2VyIHRyYWNr ZXItbWluZXJzIgorZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHRyYWNrZXIzIHRyYWNrZXIz LW1pbmVycyIKIHNob3J0X2Rlc2M9IkFjY2Vzcywgb3JnYW5pemUsIGFuZCBzaGFyZSB5b3VyIHBo b3RvcyBvbiBHTk9NRSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9QaG90b3MiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ25vbWUt cGhvdG9zLyR7dmVyc2lvbiUuKn0vZ25vbWUtcGhvdG9zLSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09M2M1OWM3NmVmMjg2MThlYzA1NWExNzk5ZDEwNDAyODdiOTBhMGIwMjFmZWIwYTAyYjFl YWMyOGU5YzJlYjQxYQorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dub21lLXBob3Rvcy8ke3Zl cnNpb24lLiouKn0vZ25vbWUtcGhvdG9zLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09Mjc4 ZGEyMzIzNGUyN2M1NDMwMjBkYWU5NDNhZDUyMDg2YjllY2FhNWVlM2FhZDBiMDMxYjg2ZWUwNGQz OTRhYQorcGF0Y2hfYXJncz0iLU5wMSIKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDYyMmI1ODI3ZGVjNzU4ZmY4NDI2MmI0NTI4NjVlY2Jm YTk0ZDM2ZmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwNzcvMTAzXSBlb2c6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3Jj cGtncy9lb2cvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VvZy90ZW1wbGF0ZSBi L3NyY3BrZ3MvZW9nL3RlbXBsYXRlCmluZGV4IGU0Y2FjYjcwNzllLi4yNzU5MjczODcyZSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9lb2cvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9lb2cvdGVtcGxhdGUK QEAgLTEsMjAgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VvZycKIHBrZ25hbWU9ZW9n Ci12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBl cj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGludHJvc3BlY3Rp b249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBn bGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJleGVtcGktZGV2ZWwg Z25vbWUtZGVza3RvcC1kZXZlbCBsaWJleGlmLWRldmVsIGxpYnBlYXMtZGV2ZWwKLSBsaWJyc3Zn LWRldmVsIGxjbXMyLWRldmVsIgorIGxpYnJzdmctZGV2ZWwgbGNtczItZGV2ZWwgbGlicG9ydGFs LWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSBz aGFyZWQtbWltZS1pbmZvIgogc2hvcnRfZGVzYz0iRXllIG9mIEdOT01FIGdyYXBoaWNzIHZpZXdl ciBwcm9ncmFtIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9BcHBzL0V5ZU9mR25vbWUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZW9nLyR7 dmVyc2lvbiUuKn0vZW9nLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTQ1NGExYTdhYTVl M2EzMzIxZWFiMDExNjc3ODExMGU1YTdhN2I2M2JjZjIxNjc2ZWRhMWE3YmUxODdjOWM5NQorY2hl Y2tzdW09ZTFhM2E0N2MzODY4OGNkNTM4ZGVkYTYyN2MwZWZmMTEzZDA1YzMxNmIxZGRlNjI0MzE1 MDQzNzI1OWQyZDk2Mwogc2hsaWJfcHJvdmlkZXM9ImxpYmVvZy5zbyIKIGxpYjMyZGlzYWJsZWQ9 eWVzCiAKCkZyb20gZThiN2NmNGY4ZDM5ODhjNWQ0ZDcwM2Q4MTc3OTE4ZjVkYmEzOGJiMSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BB VENIIDA3OC8xMDNdIGV2aW5jZTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2V2aW5j ZS90ZW1wbGF0ZSB8IDE0ICsrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZpbmNlL3RlbXBs YXRlIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKaW5kZXggNDAzNWYxNWM2OTAuLjBlYjgwNzUw MjUzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2V2 aW5jZS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZXZp bmNlJwogcGtnbmFtZT1ldmluY2UKLXZlcnNpb249My4zNi43Cit2ZXJzaW9uPTMuMzguMAogcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCi1j b25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikgLS1kaXNhYmxl LXNjaGVtYXMtY29tcGlsZQotIC0tZW5hYmxlLWNvbWljcyAtLWRpc2FibGUtc3RhdGljIC0tZW5h YmxlLXhwcyAtLWRpc2FibGUtdDFsaWIKLSAtLWRpc2FibGUtYnJvd3Nlci1wbHVnaW4gLS1lbmFi bGUtcHMiCi1ob3N0bWFrZWRlcGVuZHM9ImFkd2FpdGEtaWNvbi10aGVtZSBnZXR0ZXh0IGdsaWIt ZGV2ZWwgZ25vbWUtZG9jLXV0aWxzCitidWlsZF9zdHlsZT1tZXNvbgorY29uZmlndXJlX2FyZ3M9 IiQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKQorIC1EY29taWNzPWVuYWJsZWQgLURwcz1l bmFibGVkIC1EeHBzPWVuYWJsZWQgLURkdmk9ZGlzYWJsZWQKKyAtRHQxbGliPWRpc2FibGVkIC1E YnJvd3Nlcl9wbHVnaW49ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9ImFkd2FpdGEtaWNvbi10aGVt ZSBnZXR0ZXh0IGd0ay1kb2MgZ2xpYi1kZXZlbCBnbm9tZS1kb2MtdXRpbHMKICBpdHN0b29sIHBr Zy1jb25maWcgcGVybC1YTUwtUGFyc2VyIGFwcHN0cmVhbS1nbGliIgogIyBYWFggbWlzc2luZyBw YWNrYWdlcyBmb3IgRFZJIGJhY2tlbmQuCiBtYWtlZGVwZW5kcz0iYWR3YWl0YS1pY29uLXRoZW1l IGRqdnVsaWJyZS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYlNNLWRldmVsCkBAIC0xOSw3 ICsxOSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvQXBwcy9FdmluY2UiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02NWQ2 MWE0MjNlM2ZiYmUwNzAwMWY2NWU4NzQyMmRmYjdkMmU0MmI5ZWRmMGNhNmExZDQyN2FmOWEwNGI4 ZjMyCitjaGVja3N1bT0yNmRmODk3YTQxNzU0NWI0NzZkMjYwNmIxNDczMTEyMmU4NDI3OGFlOTk0 YmQ2NGVhNTM1NDQ5YzNjZjAxOTQ4CiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlv bnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBiOWZjOWMwOTMyNmNiNmYzOGNmMDhlNmM4NDY2NTE1NDUw MzY5YjQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDc5LzEwM10gZmlsZS1yb2xsZXI6IHVwZGF0ZSB0byAzLjM4LjAKCi0t LQogc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Zp bGUtcm9sbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQppbmRleCAw MzYyMmEyMjMxMy4uZjg1NmMzMjQyMjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlsZS1yb2xsZXIv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZpbGUtcm9sbGVyJwogcGtnbmFtZT1maWxlLXJvbGxl cgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ct Y29uZmlnIgpAQCAtMTIsNiArMTIsNiBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRmlsZVJvbGxlciIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPWI5MTQ0ZGU4ZjUzNmY1ODNlYzI5ZDcwM2MyYzE3MGJmMmQwMGM2YzE2 NmNkNWUzZjdlZmFiZGE1NTFmMTA0NzgKK2NoZWNrc3VtPTcyM2QxYzZlNTY3ZDM1ZGFkNWVlZWFl Yjg2YjhkMTg3MDU2NThlZTczZTBiM2I5N2VhMTZhZGM3YTRkYzMzMWEKIAogQ0ZMQUdTPSItZmNv bW1vbiIKCkZyb20gYzFlZGYyYzEzZDcwYWEyMWE0N2JlOTA2Zjc0MWI3OTg5Y2RlOGFiZiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BB VENIIDA4MC8xMDNdIGdub21lLWNhbGVuZGFyOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3Br Z3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1j YWxlbmRhci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUKaW5kZXgg OWM5MWM4YjVmNGQuLmQzYzc2Yjk3ZjBkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNhbGVu ZGFyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUKQEAgLTEs NiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1jYWxlbmRhcicKIHBrZ25hbWU9 Z25vbWUtY2FsZW5kYXIKLXZlcnNpb249My4zNi4yCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVs IHBrZy1jb25maWcgJCh2b3B0X2lmIGdpciAnZ29iamVjdC1pbnRyb3NwZWN0aW9uJykiCkBAIC0x Myw3ICsxMyw3IEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9BcHBzL0NhbGVuZGFyIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtY2FsZW5kYXIvcmF3L21hc3Rlci9ORVdTIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDBiMDUzNDVjMDU1NWEwODVlNmU1NDI2ZWFiNDk0 OTRhYmEyODI2Yzg1NmViMDZmZDdmZGI3NjJlYzBjNGMxZgorY2hlY2tzdW09YzM2ODQyNTJhNzJi YjU5MDg5ZDA3MTUxNDQ1OGE0YWViYTQxN2Y5NTUxZmY1ZDU0OGUxYTU5ODRlNDdiNDczMwogCiBi dWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gNDM4 ODM1YmRjYTViZjA2MmU5ZjFjYWE2Y2FhNTJlNzFjMDVhMTYxNSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZy aSwgMTQgQXVnIDIwMjAgMTY6NTE6NTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4MS8xMDNdIGdu b21lLW11c2ljOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtbXVzaWMvdGVt cGxhdGUgfCA5ICsrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlIGIv c3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQppbmRleCAxMjUxMTczNjQwNy4uODVhNzU2MTA1 OWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQpAQCAtMSwxOSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtbXVzaWMnCiBwa2duYW1lPWdub21lLW11c2ljCi12ZXJzaW9uPTMuMzYuMQor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5 bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtn LWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJnbm9tZS1kZXNrdG9wLWRldmVsIGdyaWxvLWRldmVsIGxp Ym1lZGlhYXJ0LWRldmVsCi0gcHl0aG9uMy1nb2JqZWN0LWRldmVsIHB5dGhvbjMtZGJ1cyB0cmFj a2VyLWRldmVsIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbAorIHB5dGhvbjMtZ29iamVjdC1k ZXZlbCBweXRob24zLWRidXMgdHJhY2tlcjMtZGV2ZWwgZ25vbWUtb25saW5lLWFjY291bnRzLWRl dmVsCiAgbGliZGF6emxlLWRldmVsIGdyaWxvLXBsdWdpbnMgcHl0aG9uMy1jYWlyby1kZXZlbCIK IGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBweXRob24zLWRidXMgcHl0aG9uMy1nb2JqZWN0 IHB5dGhvbjMtcmVxdWVzdHMKLSB0cmFja2VyIHRyYWNrZXItbWluZXJzIGdzdC1wbHVnaW5zLWdv b2QxIGdyaWxvLXBsdWdpbnMgbGliZGF6emxlIgorIHRyYWNrZXIzIHRyYWNrZXIzLW1pbmVycyBn c3QtcGx1Z2lucy1nb29kMSBncmlsby1wbHVnaW5zIGxpYmRhenpsZQorIGxpYm1lZGlhYXJ0Igog c2hvcnRfZGVzYz0iR05PTUUgbXVzaWMgcGxheWluZyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9NdXNpYyIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTdiODBmNjMwZDE1ODMzNDkzNWE4NzYwMjk2 NTUwY2M5MWI1MGQ2MDRmYTY4YjQwMmZlNTE2NWIxNTMxZWMzMzIKK2NoZWNrc3VtPTM3MGFhOTdl ZTQ2MTBkMTFiNGI4ZjY5MWU1YzljZTMwZmE1NTY2NTg3MGJmNmQ1ZjIzMTk2NThiZGZhY2Q3MDUK IGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9tIDlhNGU3YTY2ZTI5MmRkYmUzMzM0NWFlZTc2YTQ5ZWQ3 MDQ2YTY3ZjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjE1OjUwICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwODIvMTAzXSBnZWRpdDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBj b21tb24vc2hsaWJzICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUgfCAy MSArKysrKysrKysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygr KSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9z aGxpYnMKaW5kZXggMzNkMmEzNWZhMDQuLjI4YzljZDM5ZTJjIDEwMDY0NAotLS0gYS9jb21tb24v c2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM2ODMsNyArMzY4Myw3IEBAIGxpYnFodHRw ZW5naW5lLnNvLjEgcWh0dHBlbmdpbmUtMS4wLjFfMQogbGlicW1kbnNlbmdpbmUuc28uMCBxbWRu c2VuZ2luZS0wLjEuMF8xCiBsaWJ5YW5nLnNvLjEgbGlieWFuZy0xLjByNV8xCiBsaWJodHAuc28u MiBsaWJodHAtMC41LjMwXzEKLWxpYmdlZGl0LTMuMzYuc28gZ2VkaXQtMy4zNi4xXzEKK2xpYmdl ZGl0LTMuMzguc28gZ2VkaXQtMy4zNy4zXzEKIGxpYmNoZXdpbmcuc28uMyBsaWJjaGV3aW5nLTAu NS4xXzEKIGxpYmR3YXJ2ZXMuc28uMSBwYWhvbGUtMS4xMl8xCiBsaWJkd2FydmVzX2VtaXQuc28u MSBwYWhvbGUtMS4xMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dlZGl0L3RlbXBsYXRlIGIvc3Jj cGtncy9nZWRpdC90ZW1wbGF0ZQppbmRleCA0ZTI3M2FhZjE4Mi4uZGMyZGU4YjRjNDggMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0 ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2VkaXQnCiBwa2duYW1l PWdlZGl0Ci12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxk X2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIHB5Y29tcGlsZV9kaXJzPSJ1c3IvbGli L2dlZGl0L3BsdWdpbnMiCi1jb25maWd1cmVfYXJncz0iLURwbHVnaW5zPXRydWUgLUR2YXBpPSQo dm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIg dHJ1ZSBmYWxzZSkiCitjb25maWd1cmVfYXJncz0iLURwbHVnaW5zPXRydWUKKyAkKHZvcHRfYm9v bCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBl bmRzPSJpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBnZGstcGl4YnVmIHBlcmwgZ2V0dGV4 dAotICQodm9wdF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVw ZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBnc3BlbGwtZGV2ZWwgZ3Rrc291 cmNldmlldzQtZGV2ZWwKICBsaWJwZWFzLWRldmVsIGxpYnNvdXAtZGV2ZWwgdGVwbC1kZXZlbCAk KHZvcHRfaWYgZ2lyICdweXRob24zLWdvYmplY3QtZGV2ZWwnKSIKIGRlcGVuZHM9ImRlc2t0b3At ZmlsZS11dGlscyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGlzby1jb2RlcyIKQEAgLTE3LDIz ICsxNywyMiBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25v bWUub3JnL0FwcHMvR2VkaXQiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02ZGMz OGVkYTIyN2QxYzM2OGUwMzllOWJmZjQ4NWQwYmVlOWE0OWQ1Zjk1NjBjMzg3ZWUwOGY1ODE4YTRl Mzg3Ci1zaGxpYl9wcm92aWRlcz0ibGliZ2VkaXQtMy4zNi5zbyIKK2NoZWNrc3VtPTQ2Y2YwNjgw NmRlNThmNmU1ZTk1ZTM0ZmQ5OGFkMGIyYzBjNTBiM2RhZTZkMjNjYTU3ZDE2ZDVjYzQxODU2ZjgK K3NobGliX3Byb3ZpZGVzPSJsaWJnZWRpdC0zLjM4LnNvIgogcHl0aG9uX3ZlcnNpb249MwogCi1i dWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEi CitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogZ2Vk aXQtZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0gZ3Rrc291cmNldmlldy1kZXZlbCBsaWJwZWFzLWRldmVsIgorCWRlcGVuZHM9 IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBndGtzb3VyY2V2aWV3NC1kZXZl bAorCSBsaWJwZWFzLWRldmVsIHRlcGwtZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3Bt ZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92 ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgog CQkJdm1vdmUgdXNyL3NoYXJlL2dlZGl0L2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29w dGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZy b20gODM2NDRiNGQ3NWU2OTkzZjUxMzdmNjAxMzZkOWQwMmM4MWY1ODQ1ZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MTg6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4My8x MDNdIGdlZGl0LXBsdWdpbnM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nZWRpdC1w bHVnaW5zL3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dlZGl0LXBsdWdpbnMv dGVtcGxhdGUgYi9zcmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVtcGxhdGUKaW5kZXggZjJmOTRlNjNm NTkuLmI3ODMzZGIxMmRlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlCkBAIC0xLDExICsxLDExIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZWRpdC1wbHVnaW5zJwogcGtnbmFtZT1nZWRpdC1wbHVn aW5zCi12ZXJzaW9uPTMuMzYuMgordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBweWNvbXBpbGVfZGlycz0idXNyL2xpYi9nZWRpdC9wbHVnaW5zIgotaG9zdG1h a2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgYXBw c3RyZWFtLWdsaWIgcHl0aG9uMy1nb2JqZWN0Ci0gZ3VjaGFybWFwLWRldmVsIHZ0ZTMtZGV2ZWwi Citob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcg dmFsYSBhcHBzdHJlYW0tZ2xpYgorIHB5dGhvbjMtZ29iamVjdCBndWNoYXJtYXAtZGV2ZWwgdnRl My1kZXZlbCIKIG1ha2VkZXBlbmRzPSJnZWRpdC1kZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbCBn dGsrMy1kZXZlbCBsaWJnaXQyLWdsaWItZGV2ZWwKICBsaWJnbGliLWRldmVsIGxpYnBlYXMtZGV2 ZWwgcHl0aG9uLWRidXMtZGV2ZWwgcHl0aG9uMy1kZXZlbCB6ZWl0Z2Vpc3QtZGV2ZWwiCiBkZXBl bmRzPSJweXRob24zLWdvYmplY3QgZ3VjaGFybWFwIHZ0ZTMiCkBAIC0xNCw1ICsxNCw1IEBAIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvYWN0aW9u L3Nob3cvQXBwcy9HZWRpdC9QbHVnaW5zTGlzdHMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0xMTUxYjk1NTM5M2Y3NWI1ZWU1OWI1MTE1NGZkYTRmMTkyOGY0OThmZTk4NmE1NTg0 ZDNjZDQ0MDg3NmE2YWY2CitjaGVja3N1bT1iZGEyYmQ1YWQ3ZWJkZDUzNWQxY2M2Yzg3MDBjMjk1 ZGVjNjRiMjI3YzkxNzNjMGQyYmFlMDA2NzUxNjI1OWZiCiBweXRob25fdmVyc2lvbj0zCgpGcm9t IDg2YTc4OGY1N2U0ODM1MDhmNjFlMTZjNGRhNjdmYTI5MjIwNzY5MGMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjMzOjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODQvMTAz XSBnbm9tZS1sYXRleDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWxhdGV4 L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKaW5kZXggOTBkNjBiZTg2MGEuLjgzYTE2Zjlk NGEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS1sYXRleCcKIHBrZ25hbWU9Z25vbWUtbGF0ZXgKLXZlcnNpb249My4zMi4wCi1y ZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIi CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLWFw cHN0cmVhbS11dGlsIC0tZGlzYWJsZS1kY29uZi1taWdyYXRpb24KQEAgLTE1LDcgKzE1LDcgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L0dOT01FLUxhVGVYIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGYwNjljN2I0 YzY3NTQyNTVhMWM3ZTNlM2IwNTA5MjVkODA3NmY1NTQ1ODUyNmEzMGFiNTllMGE3ZDUyYWNjOQor Y2hlY2tzdW09YTgyYTlmYzZmMDU2OTI5ZWExOGQ2ZGZmZDEyMWU3MWIyYzIxNzY4ODA4Yzg2ZWYx ZjM0ZGEwZjg2ZTIyMGQ3NwogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2Rl ZmF1bHQ9ImdpciIKCkZyb20gNWE2ZGRkZmI4NmQyNjI5OWI3ODQ5ZDM0YjUxNmU3OTEwN2I5ZDVl YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MjM6MzMgKzAyMDAKU3ViamVj dDogW1BBVENIIDA4NS8xMDNdIGJhb2JhYjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dz L2Jhb2JhYi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZSBi L3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlCmluZGV4IGEwMjhiZTRjZDViLi44ODIxNTUzNTZhNCAx MDA2NDQKLS0tIGEvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iYW9iYWIv dGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiYW9iYWInCiBw a2duYW1lPWJhb2JhYgotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcg aXRzdG9vbCBnbGliLWRldmVsIHZhbGEiCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyLCBHRkRMLTEuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L2FjdGlvbi9zaG93L0FwcHMvRGlza1VzYWdlQW5hbHl6ZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT03Zjk4MWQ0ZjEzNWU0ZjgwZmJhM2Y2NmU4NmIwZWVlZGM5NGEyNDM0NjQ5 MjYyZmYwMWE1ZjBjYjAyN2IyMGM1CitjaGVja3N1bT0wNDg0NjgxNDc4NjA4MTZiOTdmMTVkNTBi M2M4NGU5YWNmMDUzOWMxNDQxY2ZlYjYzNzAzZDExMmU4NzI4MzI5CgpGcm9tIDkyNmNkNjRlZDZm NTNkOGIwZWIxMDkyZjkyMDQzOTQ1YzJkYjljYzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1 ZyAyMDIwIDA0OjMxOjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODYvMTAzXSBnbm9tZS1ib3hl czogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlIHwg NyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLWJveGVzL3RlbXBsYXRlCmluZGV4IDBmYTJhZTc2YzcyLi5lNTFkMmQxOWE1ZCAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWJv eGVzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt Ym94ZXMnCiBwa2duYW1lPWdub21lLWJveGVzCi12ZXJzaW9uPTMuMzYuNQordmVyc2lvbj0zLjM4 LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAg LTgsNyArOCw4IEBAIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcg dmFsYSBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3RrLWRldmVsIGZyZWVyZHAt ZGV2ZWwgZ3RrLXZuYy1kZXZlbCBsaWJhcmNoaXZlLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJn dWRldi1kZXZlbCBsaWJvc2luZm8tZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZGV2ZWwK ICBsaWJ1c2ItZGV2ZWwgbGlidmlydC1nbGliLWRldmVsIGxpYnhtbDItZGV2ZWwgc3BpY2UtZ3Rr LWRldmVsIHNwaWNlLXByb3RvY29sCi0gdHJhY2tlci1kZXZlbCB2YWxhLWRldmVsIHdlYmtpdDJn dGstZGV2ZWwgdnRlMy1kZXZlbCIKKyB0cmFja2VyLWRldmVsIHZhbGEtZGV2ZWwgd2Via2l0Mmd0 ay1kZXZlbCB2dGUzLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsCisgbGliaGFuZHktZGV2ZWwi CiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIGxpYm9zaW5m byBsaWJ2aXJ0LWdsaWIgcWVtdSB0cmFja2VyIgogc2hvcnRfZGVzYz0iR05PTUUgMyBhcHBsaWNh dGlvbiB0byBhY2Nlc3MgcmVtb3RlIG9yIHZpcnR1YWwgc3lzdGVtcyIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0xNiw0ICsxNyw0IEBAIGxpY2Vu c2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv QXBwcy9Cb3hlcyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29t L0dOT01FL2dub21lLWJveGVzL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTRjNTRjYWJlMzU1ZTg3OGQwNDU3NTE3MzQ2ZTQyNDdhODYwYjY4ODM0MTNk M2JmNzc2ODFkY2QxMWVmNDFiY2UKK2NoZWNrc3VtPTY5NmI1OTlmYzIxYWY5NDE5NzU2NzkyMDVm MmIxMjljZmZhMDM2MzJjNDQ0ODEwZGQ5NGIxNDA5ZDA0MWEzOGIKCkZyb20gY2JjYWFiYTRiYjk3 ODA1MDNjOWJlMTIyZWQ0NTNjZjAxZTQ2Y2IzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVn IDIwMjAgMDQ6MzU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4Ny8xMDNdIGdub21lLWNhbGN1 bGF0b3I6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3Rl bXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlCmluZGV4IDA2MjE0YjA4ZDliLi5k ZTgxZTQ4OTY5ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNhbGN1bGF0b3InCiBwa2duYW1lPWdub21lLWNh bGN1bGF0b3IKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogaG9zdG1ha2Vk ZXBlbmRzPSJjbWFrZSBnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEi CkBAIC0xNCw0ICsxNCw0IEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0NhbGN1bGF0b3IiCiBjaGFuZ2Vsb2c9Imh0dHBz Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS1jYWxjdWxhdG9yL2dub21l LTMtMzIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWEyZTgzMGY5Yzk4 NTZmYWQ2NWRhZDFkNmMwYWU2YWJhZDBmMGI0OTZjOTk4NGFjMDA1MzE1YzVjYzQyMjBkYjMKK2No ZWNrc3VtPTkwMmUyM2ZmNTUwNjkyYjAyNDU5ZTE0ZDZlYmJhOGI2NzA2NjNhOWY0YWYwZDk4ZWU1 MmZhZGVhODk1YjU3ZmUKCkZyb20gYTA2MWI3YzhjZWVhODc4YmE4OWU1NjI3NWIwNzI5Y2Y4NTg5 M2E3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NDQ6NTggKzAyMDAKU3Vi amVjdDogW1BBVENIIDA4OC8xMDNdIGdub21lLWRpc2stdXRpbGl0eTogdXBkYXRlIHRvIDMuMzgu MAoKLS0tCiBzcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1k aXNrLXV0aWxpdHkvdGVtcGxhdGUKaW5kZXggZGM2N2JiYmE3ODUuLjZlZjdiZTYxMDNlIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2dub21lLWRpc2stdXRpbGl0eScKIHBrZ25hbWU9Z25vbWUtZGlzay11dGlsaXR5 Ci12ZXJzaW9uPTMuMzYuMQotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURsb2dpbmQ9bm9uZSIKIGhvc3Rt YWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBndGstZG9jIGludGx0b29sIHBrZy1jb25maWcgbGlieHNs dCIKQEAgLTEzLDUgKzEzLDUgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9BcHBzL0Rpc2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09NzkxYjE4ZjIzMWJjYmM2ZDk0MWFmMzgzN2NhNWJlMTRmMjE1N2U1Y2UzZDMyYmRjNWI5 ZWI4OTQ3ZTEyYjQxNAorY2hlY2tzdW09NzczNGNlNjY4ZDllYzMxMjg2YWJkNzk0NGY5NTE5MDIx MDI4OGZiYzU0NzA0ZjA1YmM1NWNiZDAzNDBiNTIyMwogbGliMzJkaXNhYmxlZD15ZXMKCkZyb20g NWFjMzg4NDIwZWI3ZDk3YmQ0YWYyNDI5MDJiOWU1NzkwYjk3MmNhNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFN1biwgMTYgQXVnIDIwMjAgMDQ6NDk6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4OS8xMDNd IGdub21lLXNjcmVlbnNob3Q6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1z Y3JlZW5zaG90L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNjcmVl bnNob3QvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKaW5kZXgg OTljYWI2MmVlZTEuLmEzOTQ4M2JjNDM3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNjcmVl bnNob3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCkBA IC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zY3JlZW5zaG90Jwog cGtnbmFtZT1nbm9tZS1zY3JlZW5zaG90Ci12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249MgordmVy c2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVu ZHM9ImFwcGRhdGEtdG9vbHMgZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIK LW1ha2VkZXBlbmRzPSJsaWJjYW5iZXJyYS1kZXZlbCIKK21ha2VkZXBlbmRzPSJsaWJjYW5iZXJy YS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBz aG9ydF9kZXNjPSJTY3JlZW5zaG90IGNhcHR1cmUgdXRpbGl0eSBmb3IgR05PTUUiCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25v bWUtc2NyZWVuc2hvdCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTMzNDk1ZDg5 MjcwNzE3OTI1NGI3NDNmOGY3MGM5YTgyY2RlNWM1ZjJjN2VhM2RiNjM0YTJiYTdlYTczMzEyNjYK K2NoZWNrc3VtPWU1NTZkM2RkMTM0ZDkxMzQ0ZDI4NTdjMDY2NDM0YmZiNjRmN2M4NWJkZWM3YmMz MzczOTM2NmI5YmNkMjlmYzAKCkZyb20gNGU3MjRhZjY3OTYyNDUzNjIyNDUwNzdiNzcwNDJiMTY2 MTQ1MmE1ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTE6MDAgKzAyMDAK U3ViamVjdDogW1BBVENIIDA5MC8xMDNdIGdub21lLXN5c3RlbS1tb25pdG9yOiB1cGRhdGUgdG8g My4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUgfCA0ICsr LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKaW5kZXggZmYxMWIzNTkwYTQuLjUwNjAzNjY4 N2M0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zeXN0ZW0tbW9uaXRvcicKIHBrZ25hbWU9Z25v bWUtc3lzdGVtLW1vbml0b3IKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2Ui CkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvQXBwcy9TeXN0ZW1Nb25pdG9yIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09ODY2YjQ3YWIwZjRjNzViMGVjNTdkNjMwMDMzN2E3MzczNDYzYWFhZDVkZjk1 ZWRkZmU1MzU0YzIyYmU3YmNhMQorY2hlY2tzdW09NzNiZjdhYjRkNTUwM2MyNTY3ZDc2ZjgzMWM5 YWUzZmUyN2MzMTQ5NTc2MTg4OWFkM2IzNTFlZjRjMDY4YWZmNAoKRnJvbSBlYTNiNzA1NTQ0ZjU2 YjI1MGIzYmU2MDhmMDBmMjM4NWJmNTUyZDc5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcg MjAyMCAxODoyNDowMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkxLzEwM10gYWR3YWl0YS1pY29u LXRoZW1lOiB1cGRhdGUgdG8gMy4zOC4wLCBkcm9wIG5vYXJjaAoKLS0tCiBzcmNwa2dzL2Fkd2Fp dGEtaWNvbi10aGVtZS90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Fkd2FpdGEt aWNvbi10aGVtZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRl CmluZGV4IGZlYmQyOTE1YmU2Li44ZGRjZGU5Yjc4NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9hZHdh aXRhLWljb24tdGhlbWUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUv dGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhZHdhaXRhLWlj b24tdGhlbWUnCiBwa2duYW1lPWFkd2FpdGEtaWNvbi10aGVtZQotdmVyc2lvbj0zLjM2LjEKLXJl dmlzaW9uPTIKLWFyY2hzPW5vYXJjaAordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKIGRlcGVu ZHM9ImxpYnJzdmciCkBAIC0xMSw0ICsxMCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTMuMC1vci1sYXRlciwgQ0MtQlkt U0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9hZHdhaXRh LWljb24tdGhlbWUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNDk4NTE4NjI3 MDQ0ZGZkN2RiN2Q3OWE1YjNkNDM3ODQ4Y2FmMTk5MWVmNGVmMDM2YTJkM2EyYWMyYzFmMTRkCitj aGVja3N1bT02NjgzYTFhYWYyNDMwY2NkOWVhNjM4ZGQ0YmZlMTAwMmJjOTJiNDEyMDUwYzNkYmEy MGU0ODBmOTc5ZmFhZjk3CgpGcm9tIDc4NGQ4OWVlNmExZjNjMWEzNjZjOTI1ZGNiOWQ2OTllZjQw N2ViYTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDE5OjU3OjQzICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwOTIvMTAzXSBnbm9tZS1iYWNrZ3JvdW5kczogdXBkYXRlIHRvIDMuMzgu MCwgZHJvcCBub2FyY2gKCi0tLQogc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSB8 IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZQppbmRleCAwYjFlZTQyNzM1My4uMGZhYzBi YjNiZWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJhY2tncm91bmRzJwogcGtnbmFtZT1nbm9tZS1iYWNr Z3JvdW5kcwotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKLWFyY2hzPW5vYXJjaAordmVyc2lv bj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9 Z2V0dGV4dAogc2hvcnRfZGVzYz0iU2V0IG9mIGJhY2tncm91bmQgaW1hZ2VzIGZvciB0aGUgR05P TUUgRGVza3RvcCIKQEAgLTEwLDQgKzksNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290 dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgQ0MtQlktMi4w LCBDQy1CWS1TQS0yLjAsIENDLUJZLVNBLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ25vbWUtYmFja2dyb3VuZHMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT1iOGNiODFlNGNmOWQwODVmYmIyMzU0MDYzNWI0OTJkNWMxMjRhMWY4NjExYzJh YTlhYzYzODQxMTFkNzdiYjBiCitjaGVja3N1bT1mNzcxMmE4NzNhODBjOWE5ZmNmMzk1MjYxMWVm ZmViMmQ5YWVkMjNhM2U4YWJmY2RhOGFmYjE1YzQyN2QxZWUzCgpGcm9tIDIyNmQxYjE4ODE3M2Fj NGFhZGU3NDc0MDAxMTlmN2ZhNjhmNWQwNDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAy MDIwIDIxOjIzOjI0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTMvMTAzXSBzaW1wbGUtc2Nhbjog dXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlIHwgNyAr KystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxhdGUgYi9zcmNwa2dzL3NpbXBs ZS1zY2FuL3RlbXBsYXRlCmluZGV4IDRhZTNiODY0M2ZkLi5jNjE3YzlmMTVkMyAxMDA2NDQKLS0t IGEvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NpbXBsZS1zY2Fu L3RlbXBsYXRlCkBAIC0xLDcgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc2ltcGxlLXNj YW4nCiBwa2duYW1lPXNpbXBsZS1zY2FuCi1fZ25vbWVfdmVyc2lvbj0zLjM2Ci12ZXJzaW9uPTMu MzYuNAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0 bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSIK QEAgLTExLDUgKzEwLDUgQEAgc2hvcnRfZGVzYz0iR1RLIFNpbXBsZSBzY2FubmluZyB1dGlsaXR5 IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL3NpbXBsZS1zY2FuIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHtfZ25vbWVfdmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTU2YWYxODI5MWE3NzYzZjc2M2RhNWYwZWRlZDI0N2QyZjhlYmY5MTEyYzI4NmVmODkwMTMzNzQ5 NjlmZWY1MjUKK2Rpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTQzNTZhZmZkMDM1ZjAx YTU3YjE4MjE5OWVmZmQ5ODA4NzAwZWZjY2I0OThiZGM4MzY3YmYwOWJjZTQwNGMzMTEKCkZyb20g N2Y3MjBhZmM4Zjc0NWRlNjMwOGMyYzkxODcyMGUyM2U3ZGIzYjU5YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFN1biwgMTYgQXVnIDIwMjAgMjE6MjA6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDA5NC8xMDNd IHJ5Z2VsOiB1cGRhdGUgdG8gMC40MC4wCgotLS0KIHNyY3BrZ3MvcnlnZWwvdGVtcGxhdGUgfCAx MCArKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUgYi9zcmNwa2dzL3J5Z2Vs L3RlbXBsYXRlCmluZGV4IGQyOGRiYzJjZTA4Li42NTE0OTc1MWY1YSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9yeWdlbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlCkBAIC0xLDIy ICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdyeWdlbCcKIHBrZ25hbWU9cnlnZWwKLXZl cnNpb249MC4zOC4zCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTAuNDAuMAorcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZXhh bXBsZXM9ZmFsc2UgLUR0ZXN0cz1mYWxzZQogIC1Ec3lzdGVtZC11c2VyLXVuaXRzLWRpcj1ub25l IgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwgdmFsYSIKIG1ha2VkZXBl bmRzPSJzcWxpdGUtZGV2ZWwgZ3RrKzMtZGV2ZWwgbGlic291cC1kZXZlbCBsaWJnZWUwOC1kZXZl bAotIGd1cG5wLWF2LWRldmVsIGd1cG5wLWRsbmEtZGV2ZWwgdHJhY2tlci1kZXZlbCBsaWJtZWRp YWFydC1kZXZlbAotIGdzc2RwLWRldmVsIgorIGd1cG5wLWF2LWRldmVsIGd1cG5wLWRsbmEtZGV2 ZWwgdHJhY2tlci1kZXZlbCB0cmFja2VyMy1kZXZlbAorIGxpYm1lZGlhYXJ0LWRldmVsIGdzc2Rw LWRldmVsIGdzdDEtZWRpdGluZy1zZXJ2aWNlcy1kZXZlbCIKIGRlcGVuZHM9ImhpY29sb3ItaWNv bi10aGVtZSBkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJHTk9NRSBob21lIG1lZGlh IHNvbHV0aW9uIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvUHJvamVjdHMvUnlnZWwiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0w OGMyMWE1NzdmN2JkYWQyNjQ0NmE3NWZmYTMyNzc4YjI2ODQyYzNiMTE4ODE2NWYwYjE5ODE4NTU5 NzQ3ZDAwCitjaGVja3N1bT1kNjdlY2M4MzRlZDA2MDMzN2U4ZmFiOGNiNTVhNGYzZDBjMGNjZTQ0 NTdlMGNkMzA3OTAzYTI1MzlmNmUyYjc3CiAKIGNvbmZfZmlsZXM9Ii9ldGMvcnlnZWwuY29uZiIK IAoKRnJvbSBiODIwZTFlODYyMGE5ZTYzYWViODNhNjkwNjdlZTk1OGRjNjAzNmI5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToyMzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDk1LzEwM10gZ25vbWUtYnVpbGRlcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiAuLi4vZ25vbWUt YnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2ggfCAgMjIgLS0KIHNyY3BrZ3MvZ25v bWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoICB8IDMzNCAtLS0tLS0tLS0tLS0tLS0t LS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8ICAxNSAr LQogMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAzNjEgZGVsZXRpb25zKC0pCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0x LjAuMC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRj aGVzL21lc29uMDUyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3Bh dGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVz L2xpYmdpdDItMS4wLjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOWI0 YTJiZjFhLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9s aWJnaXQyLTEuMC4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotY29tbWl0 IDQ0MTM2YTJlNWM1MjYyM2IwZTYyYzM4ODQ2ZjUxMWYzMDc2MTVjZTIKLUF1dGhvcjogcTY2IDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KLURhdGU6ICAgU3VuIE1heSAzIDE5OjUyOjA5IDIwMjAgKzAy MDAKLQotICAgIGZpeCBidWlsZCB3aXRoIGxpYmdpdDItMS4wLjAKLQotZGlmZiAtLWdpdCBhL3Ny Yy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYyBiL3NyYy9wbHVn aW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotaW5kZXggN2YwMTA0Mi4u MmNjYzRkZiAxMDA2NDQKLS0tLSBhL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBv c2l0b3J5LWltcGwuYwotKysrIGIvc3JjL3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJlcG9z aXRvcnktaW1wbC5jCi1AQCAtMzMsMTEgKzMzLDcgQEAKLSAjaW5jbHVkZSAiaXBjLWdpdC10eXBl cy5oIgotICNpbmNsdWRlICJpcGMtZ2l0LXV0aWwuaCIKLSAKLS0jaWYgTElCR0lUMl9TT1ZFUlNJ T04gPj0gMjgKLSBHX0RFRklORV9BVVRPX0NMRUFOVVBfQ0xFQVJfRlVOQyAoZ2l0X2J1ZiwgZ2l0 X2J1Zl9kaXNwb3NlKQotLSNlbHNlCi0tR19ERUZJTkVfQVVUT19DTEVBTlVQX0NMRUFSX0ZVTkMg KGdpdF9idWYsIGdpdF9idWZfZnJlZSkKLS0jZW5kaWYKLSAKLSB0eXBlZGVmIGVudW0KLSB7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaCBi L3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA2OGMyOGU4MmMxZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwzMzQgKzAsMCBAQAotRnJvbSBjOGI4NjJiNDkxY2ZiYmI0Zjc5YjI0ZDdjZDkwZTRmYjFmMzdj YjlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGllZ28gRXNjYWxhbnRlIFVycmVs byA8ZGllZ29lQGdub21lLm9yZz4KLURhdGU6IEZyaSwgMjUgT2N0IDIwMTkgMDQ6NDk6MTUgLTA1 MDAKLVN1YmplY3Q6IFtQQVRDSF0gV0lQOiBidWlsZDogRml4IGxpbmtfd2hvbGUgdXNhZ2UgZm9y IG1lc29uIDAuNTIuMAotCi1NZXNvbiAwLjUyLjAgY2hhbmdlZCBob3cgbGlua193aG9sZSBiZWhh dmVzIGFuZCBpbiBkb2luZyBzbyBicm9rZSBvdXIKLXVzYWdlIG9mIGxpbmtfd2hvbGUgaW50ZXJu YWxseS4KLQotQSBxdWljayBnbGFuY2Ugb3ZlciBtZXNvbmJ1aWxkL2JhY2tlbmQvbmluamFiYWNr ZW5kLnB5IHNlZW1zIHRvIGNvbmZpcm0KLUNocmlzdGlhbidzIHN1c3BpY2lvbiB0aGF0IGxpbmtf d2l0aCBpcyB3aGF0IHdlIHdhbnQgZm9yIGludGVybmFsIHVzZSwKLWFuZCBsaW5rX3dob2xlIGZv ciB0aGUgZmluYWwgYmluYXJ5LgotCi1Zb3UgY2FuIHNlZSBzb21lIG1vcmUgcmVmZXJlbmNlcyB0 byB0aGlzIGFuZCBzaW1pbGFyIGlzc3VlcyBpbiB0aGUKLWZvbGxvd2luZyBqaGJ1aWxkIGNvbW1p dDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9qaGJ1aWxkL2NvbW1pdC9kYmU2Nzkw NDVmZjU5ODI1NzdmMjJlN2FmOGRjOGZkZmJkMWM2MzExCi0KLUZpeGVzOiBodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9pc3N1ZXMvMTA1NwotLS0tCi0gc3JjL2xp YmlkZS9jb2RlL21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2NvcmUvbWVz b24uYnVpbGQgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQg ICB8ICAyICstCi0gc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBz cmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZ3Jl ZXRlci9tZXNvbi5idWlsZCAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQg ICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkICAgICAgICAgfCAgMiAr LQotIHNyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlk ZS9wbHVnaW5zL21lc29uLmJ1aWxkICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Byb2plY3RzL21l c29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkICAgICB8 ICAyICstCi0gc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkIHwgIDIgKy0KLSBzcmMv bGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJpZGUvdGhlbWVz L21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVp bGQgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQgICAgICAgfCAgMiArLQot IHNyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS93 ZWJraXQvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBzcmMvbWVzb24uYnVpbGQgICAgICAgICAg ICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrLQotIDIwIGZpbGVzIGNoYW5n ZWQsIDQ0IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3Jj L2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi1p bmRleCBkZGFjZGMxNjIuLjFhNGZjNWQyNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvY29kZS9t ZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi1AQCAtMTc1LDcg KzE3NSw3IEBAIGxpYmlkZV9jb2RlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1jb2RlLScgKyBsaWJp ZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX2NvZGVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAot ICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2NvZGVfcHJpdmF0ZV9oZWFkZXJzICsgbGli aWRlX2NvZGVfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJp ZGVfY29kZV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2NvZGUsCi0rICAg ICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfY29kZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6 IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlk ZS9jb3JlL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkCi1pbmRleCAx ZmE4MmZhZDkuLmJiNzVjYmYyNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5i dWlsZAotKysrIGIvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkCi1AQCAtMTE3LDcgKzExNyw3 IEBAIGxpYmlkZV9jb3JlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1jb3JlLScgKyBsaWJpZGVfYXBp X3ZlcnNpb24sIGxpYmlkZV9jb3JlX3NvdXJjCi0gbGliaWRlX2NvcmVfZGVwID0gZGVjbGFyZV9k ZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2NvcmVfcHJpdmF0ZV9o ZWFkZXJzICsgbGliaWRlX2NvcmVfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5k ZW5jaWVzOiBsaWJpZGVfY29yZV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRl X2NvcmUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfY29yZSwKLSAgIGluY2x1ZGVf ZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0 IGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZGVidWdnZXIv bWVzb24uYnVpbGQKLWluZGV4IGRmZmNhMjBjYS4uYjVlNzJkNWMwIDEwMDY0NAotLS0tIGEvc3Jj L2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9kZWJ1Z2dlci9t ZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0LDcgQEAgbGliaWRlX2RlYnVnZ2VyID0gc3RhdGljX2xp YnJhcnkoJ2lkZS1kZWJ1Z2dlci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9kZWJ1 Z2dlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBs aWJpZGVfZGVidWdnZXJfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2RlYnVnZ2VyX2dlbmVyYXRl ZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2RlYnVnZ2VyX2RlcHMs Ci0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZGVidWdnZXIsCi0rICAgICAgICAgICAg bGlua193aXRoOiBsaWJpZGVfZGVidWdnZXIsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNs dWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZWRp dG9yL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQKLWluZGV4IDI4 Mzg0MjViNy4uODA4ZWQ3ODRmIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24u YnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi1AQCAtMTA3LDcgKzEw Nyw3IEBAIGxpYmlkZV9lZGl0b3IgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWVkaXRvci0nICsgbGli aWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfZWRpdG9yCi0gCi0gbGliaWRlX2VkaXRvcl9kZXAgPSBk ZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZWRpdG9y X2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZWRpdG9yLAotKyAgICAgICAg ICAgIGxpbmtfd2l0aDogbGliaWRlX2VkaXRvciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9l ZGl0b3JfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZm91 bmRyeS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZAotaW5kZXgg MjI2Mzk3YzE1Li5kNDg3OGFhMTEgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVz b24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZAotQEAgLTE3OCw3 ICsxNzgsNyBAQCBsaWJpZGVfZm91bmRyeSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZm91bmRyeS0n ICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIAotIGxpYmlkZV9mb3VuZHJ5X2RlcCA9IGRlY2xhcmVf ZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9mb3VuZHJ5X2RlcHMs Ci0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZm91bmRyeSwKLSsgICAgICAgICAgICBs aW5rX3dpdGg6IGxpYmlkZV9mb3VuZHJ5LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVk ZV9kaXJlY3RvcmllcygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2ZvdW5k cnlfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZ3JlZXRl ci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZAotaW5kZXggMzk2 OGNhNDFlLi4xMjFkNDk4ZDAgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24u YnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZAotQEAgLTgzLDcgKzgz LDcgQEAgbGliaWRlX2dyZWV0ZXIgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWdyZWV0ZXItJyArIGxp YmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfZ3JlZXRlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVu Y3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZ3JlZXRlcl9wcml2YXRlX2hlYWRl cnMgKyBsaWJpZGVfZ3JlZXRlcl9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRl bmNpZXM6IGxpYmlkZV9ncmVldGVyX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJp ZGVfZ3JlZXRlciwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9ncmVldGVyLAotICAg aW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRp ZmYgLS1naXQgYS9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZ3VpL21l c29uLmJ1aWxkCi1pbmRleCA5ZjQ2OWQyZmEuLjk0MzExMjgyZiAxMDA2NDQKLS0tLSBhL3NyYy9s aWJpZGUvZ3VpL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAot QEAgLTIwNCw3ICsyMDQsNyBAQCBsaWJpZGVfZ3VpID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1ndWkt JyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2d1aV9zb3VyY2VzLAotIGxpYmlkZV9ndWlf ZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRl X2d1aV9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfZ3VpX2dlbmVyYXRlZF9oZWFkZXJzLAotICAg ICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2d1aV9kZXBzLAotLSAgICAgICAgICAgbGlua193 aG9sZTogbGliaWRlX2d1aSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9ndWksCi0g ICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAot ZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2lvL21l c29uLmJ1aWxkCi1pbmRleCBiNWI2ZjRjNjguLmY0OGIzYmQ4ZCAxMDA2NDQKLS0tLSBhL3NyYy9s aWJpZGUvaW8vbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLUBA IC02Myw3ICs2Myw3IEBAIGxpYmlkZV9pbyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtaW8tJyArIGxp YmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2lvX3NvdXJjZXMsCi0gCi0gbGliaWRlX2lvX2RlcCA9 IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IFsgbGliZ2lvX2Rl cCwgbGliaWRlX2NvcmVfZGVwLCBsaWJpZGVfdGhyZWFkaW5nX2RlcCBdLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX2lvLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2lv LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkK LSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUv bHNwL21lc29uLmJ1aWxkCi1pbmRleCAyM2FiYTc0ZmEuLmM4MTQwY2EwMyAxMDA2NDQKLS0tLSBh L3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5i dWlsZAotQEAgLTg0LDcgKzg0LDcgQEAgbGliaWRlX2xzcCA9IHN0YXRpY19saWJyYXJ5KCdpZGUt bHNwLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9sc3Bfc291cmNlcywKLSBsaWJpZGVf bHNwX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxp YmlkZV9sc3BfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRl X2xzcF9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2xzcCwKLSsgICAgICAg ICAgICBsaW5rX3dpdGg6IGxpYmlkZV9sc3AsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNs dWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcGx1 Z2lucy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotaW5kZXgg YTMzYzUyOGM5Li5mZmY1OTlkYjMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVz b24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotQEAgLTUxLDcg KzUxLDcgQEAgbGliaWRlX3BsdWdpbnMgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXBsdWdpbnMtJyAr IGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfcGx1Z2luc19kZXAgPSBkZWNsYXJlX2RlcGVu ZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfcGx1Z2luc19wcml2YXRlX2hl YWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfcGx1Z2luc19kZXBzLAotLSAg ICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3BsdWdpbnMsCi0rICAgICAgICAgICAgbGlua193 aXRoOiBsaWJpZGVfcGx1Z2lucywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGly ZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9t ZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLWluZGV4IDQ2M2Zm MDZiYy4uM2NjOTcyNWM2IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5i dWlsZAotKysrIGIvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZAotQEAgLTc5LDcgKzc5 LDcgQEAgbGliaWRlX3Byb2plY3RzID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1wcm9qZWN0cy0nICsg bGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfcHIKLSBsaWJpZGVfcHJvamVjdHNfZGVwID0gZGVj bGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Byb2plY3Rz X3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9wcm9qZWN0 c19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3Byb2plY3RzLAotKyAgICAg ICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3Byb2plY3RzLAotICAgaW5jbHVkZV9kaXJlY3Rvcmll czogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGli aWRlL3NlYXJjaC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi1p bmRleCBlNWIzYjQzYWIuLmNmNzNhYTkxZCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvc2VhcmNo L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotQEAgLTUx LDcgKzUxLDcgQEAgbGliaWRlX3NlYXJjaCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtc2VhcmNoLScg KyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9zZWFyY2gKLSAKLSBsaWJpZGVfc2VhcmNoX2Rl cCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9z ZWFyY2hfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9zZWFyY2gsCi0rICAg ICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfc2VhcmNoLAotICAgaW5jbHVkZV9kaXJlY3Rvcmll czogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGli aWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24u YnVpbGQKLWluZGV4IGM0YmExMmQxZi4uOTk2NDEyOThiIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlk ZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVz b24uYnVpbGQKLUBAIC0xNTgsNyArMTU4LDcgQEAgbGliaWRlX3NvdXJjZXZpZXcgPSBzdGF0aWNf bGlicmFyeSgnaWRlLXNvdXJjZXZpZXctJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVf c291cmNldmlld19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3Vy Y2VzOiBsaWJpZGVfc291cmNldmlld19wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfc291cmNldmll d19nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zb3Vy Y2V2aWV3X2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfc291cmNldmlldywK LSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9zb3VyY2V2aWV3LAotICAgaW5jbHVkZV9k aXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQg YS9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9t ZXNvbi5idWlsZAotaW5kZXggMWQ3YzlmNzI3Li42YWZmY2FlMTQgMTAwNjQ0Ci0tLS0gYS9zcmMv bGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3Rlcm1pbmFsL21l c29uLmJ1aWxkCi1AQCAtOTMsNyArOTMsNyBAQCBsaWJpZGVfdGVybWluYWwgPSBzdGF0aWNfbGli cmFyeSgnaWRlLXRlcm1pbmFsLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3Rlcm1p bmFsX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxp YmlkZV90ZXJtaW5hbF9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6 IGxpYmlkZV90ZXJtaW5hbF9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3Rl cm1pbmFsLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3Rlcm1pbmFsLAotICAgaW5j bHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYg LS1naXQgYS9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGhlbWVz L21lc29uLmJ1aWxkCi1pbmRleCA5ZDZjOGUyNDcuLmQ4ODNhNGI4NiAxMDA2NDQKLS0tLSBhL3Ny Yy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNv bi5idWlsZAotQEAgLTQ2LDcgKzQ2LDcgQEAgbGliaWRlX3RoZW1lcyA9IHN0YXRpY19saWJyYXJ5 KCdpZGUtdGhlbWVzLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3RoZW1lc19kZXAg PSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhl bWVzX3Jlc291cmNlc1sxXSwKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90aGVtZXNf ZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90aGVtZXMsCi0rICAgICAgICAg ICAgbGlua193aXRoOiBsaWJpZGVfdGhlbWVzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5j bHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3Ro cmVhZGluZy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi1p bmRleCBkMzhkZGZiNjQuLmQ2MjhiZTJmZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhyZWFk aW5nL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAot QEAgLTY2LDcgKzY2LDcgQEAgbGliaWRlX3RocmVhZGluZyA9IHN0YXRpY19saWJyYXJ5KCdpZGUt dGhyZWFkaW5nLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV8KLSBsaWJpZGVfdGhyZWFk aW5nX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxp YmlkZV90aHJlYWRpbmdfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczog bGliaWRlX3RocmVhZGluZ19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3Ro cmVhZGluZywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV90aHJlYWRpbmcsCi0gICBp bmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlm ZiAtLWdpdCBhL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdHJlZS9t ZXNvbi5idWlsZAotaW5kZXggN2I5OTIyODI4Li41YTU5MTEwNmMgMTAwNjQ0Ci0tLS0gYS9zcmMv bGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWls ZAotQEAgLTYxLDcgKzYxLDcgQEAgbGliaWRlX3RyZWUgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRy ZWUtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX3RyZWVfc291cmMKLSBsaWJpZGVfdHJl ZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJp ZGVfdHJlZV9wcml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVf dHJlZV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3RyZWUsCi0rICAgICAg ICAgICAgbGlua193aXRoOiBsaWJpZGVfdHJlZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS92 Y3MvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZAotaW5kZXggNmIwZTE1 N2M0Li5jNzYyYWZiNjQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZAot KysrIGIvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3IEBAIGxpYmlk ZV92Y3MgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXZjcy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAot IAotIGxpYmlkZV92Y3NfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgIGRlcGVu ZGVuY2llczogbGliaWRlX3Zjc19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRl X3ZjcywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV92Y3MsCi0gICBpbmNsdWRlX2Rp cmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gICAgICAgICAgICAgICBzb3Vy Y2VzOiBsaWJpZGVfdmNzX2dlbmVyYXRlZF9oZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMv bGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxk Ci1pbmRleCBlMTc2N2FlNDYuLmZjZTQ3N2IzNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvd2Vi a2l0L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotQEAg LTM5LDcgKzM5LDcgQEAgbGliaWRlX3dlYmtpdCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtd2Via2l0 LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV93ZWJraXQKLSAKLSBsaWJpZGVfd2Via2l0 X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlk ZV93ZWJraXRfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV93ZWJraXQsCi0r ICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfd2Via2l0LAotICAgaW5jbHVkZV9kaXJlY3Rv cmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczog bGliaWRlX3dlYmtpdF9nZW5lcmF0ZWRfaGVhZGVycywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL21l c29uLmJ1aWxkIGIvc3JjL21lc29uLmJ1aWxkCi1pbmRleCAzZWI5YmE1MzUuLjExM2ExNDJhZCAx MDA2NDQKLS0tLSBhL3NyYy9tZXNvbi5idWlsZAotKysrIGIvc3JjL21lc29uLmJ1aWxkCi1AQCAt NDgsNiArNDgsMzAgQEAgZ25vbWVfYnVpbGRlcl9kZXBzID0gWwotICAgbGliaWRlX3RyZWVfZGVw LAotIF0KLSAKLStnbm9tZV9idWlsZGVyX3N0YXRpYyA9IFsKLSsgIGxpYmlkZV9jb2RlLAotKyAg bGliaWRlX2NvcmUsCi0rICBsaWJpZGVfZGVidWdnZXIsCi0rICBsaWJpZGVfZWRpdG9yLAotKyAg bGliaWRlX2ZvdW5kcnksCi0rICBsaWJpZGVfZ3JlZXRlciwKLSsgIGxpYmlkZV9ndWksCi0rICBs aWJpZGVfaW8sCi0rICBsaWJpZGVfbHNwLAotKyAgbGliaWRlX3BsdWdpbnMsCi0rICBsaWJpZGVf cHJvamVjdHMsCi0rICBsaWJpZGVfc2VhcmNoLAotKyAgbGliaWRlX3NvdXJjZXZpZXcsCi0rICBs aWJpZGVfdGVybWluYWwsCi0rICBsaWJpZGVfdGhlbWVzLAotKyAgbGliaWRlX3RocmVhZGluZywK LSsgIGxpYmlkZV90cmVlLAotKyAgbGliaWRlX3ZjcywKLSsgIGxpYmlkZV93ZWJraXQsCi0rCi0r ICBwbHVnaW5zLAotK10KLSsKLSBpZiBsaWJzeXNwcm9mX2NhcHR1cmUuZm91bmQoKQotICAgZ25v bWVfYnVpbGRlcl9kZXBzICs9IGxpYnN5c3Byb2ZfY2FwdHVyZQotIGVuZGlmCi1AQCAtNzcsNyAr MTAxLDcgQEAgZ25vbWVfYnVpbGRlciA9IGV4ZWN1dGFibGUoJ2dub21lLWJ1aWxkZXInLCAnbWFp bi5jJywgJ2J1Zy1idWRkeS5jJywKLSAgICAgICAgICAgICBjX2FyZ3M6IGxpYmlkZV9hcmdzICsg ZXhlX2NfYXJncyArIHJlbGVhc2VfYXJncywKLSAgICAgICAgICBsaW5rX2FyZ3M6IGV4ZV9saW5r X2FyZ3MsCi0gICAgICAgICAgICAgICAgcGllOiB0cnVlLAotLSAgICAgICAgbGlua193aG9sZTog cGx1Z2lucywKLSsgICAgICAgIGxpbmtfd2hvbGU6IGdub21lX2J1aWxkZXJfc3RhdGljLAotICAg ICAgaW5zdGFsbF9ycGF0aDogcGtnbGliZGlyX2FicywKLSAgICAgICBkZXBlbmRlbmNpZXM6IGdu b21lX2J1aWxkZXJfZGVwcywKLSApCi0tLSAKLTIuMjQuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLWJ1aWxkZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUK aW5kZXggOGM4YzAxNWQ4YTMuLmFkMmQ0YjZkMDNhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LWJ1aWxkZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtYnVpbGRlcicKIHBrZ25h bWU9Z25vbWUtYnVpbGRlcgotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTYKK3ZlcnNpb249My4z OC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPXFlbXUKIGNv bmZpZ3VyZV9hcmdzPSItRHdpdGhfd2Via2l0PXRydWUgLUR3aXRoX3N5c3Byb2Y9dHJ1ZSAtRGhl bHA9dHJ1ZSIKQEAgLTExLDE1ICsxMSwxNSBAQCBtYWtlZGVwZW5kcz0iY2Fpcm8tZGV2ZWwgY2xh bmcgZGV2aGVscC1kZXZlbCBlbmNoYW50Mi1kZXZlbCBmbGF0cGFrLWRldmVsCiAgZ3NwZWxsLWRl dmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbCBqc29u cnBjLWdsaWItZGV2ZWwKICBsaWJkYXp6bGUtZGV2ZWwgbGliZ2l0Mi1nbGliLWRldmVsIGxpYmds aWItZGV2ZWwgbGlib3N0cmVlLWRldmVsIGxpYnBlYXMtZGV2ZWwKICBsaWJ4bWwyLWRldmVsIHRl bXBsYXRlLWdsaWItZGV2ZWwgdmFsYS1kZXZlbCB2dGUzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwK LSBweXRob24zLWdvYmplY3QtZGV2ZWwgc3lzcHJvZi1kZXZlbCBnbGFkZTMtZGV2ZWwiCisgcHl0 aG9uMy1nb2JqZWN0LWRldmVsIHN5c3Byb2YtZGV2ZWwgZ2xhZGUzLWRldmVsIGxpYnBvcnRhbC1k ZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBmbGF0cGFrLWJ1aWxkZXIgcHl0aG9u My1seG1sIGRldmhlbHAgcHl0aG9uMy1nb2JqZWN0Igogc2hvcnRfZGVzYz0iSURFIGZvciBHTk9N RSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv QXBwcy9CdWlsZGVyIgotY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv Z25vbWUtYnVpbGRlci9yYXcvZ25vbWUtYnVpbGRlci0zLTM0L05FV1MiCitjaGFuZ2Vsb2c9Imh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1idWlsZGVyL3Jhdy9nbm9tZS1idWls ZGVyLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTBiNmU0NjEw NTdlYTgxNTFlODA1MjRjMGVhN2VmMWNiOTQ4ZTkyYWZkYTlkYzZiZDMzYWUzMzkyZjA0NTAxYTQK K2NoZWNrc3VtPWQ2ODk1MzhiYWY4ZWZiMWFjZjdlYTYwNzI2OGIxYWFhMTQxOGQ1NTE3ZDkyZDRm Njk0NmEzZGJmODE0ZWFlNTUKIHBhdGNoX2FyZ3M9Ii1OcDEiCiAKIGNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgpAQCAtMjgsMyArMjgsOCBAQCBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElO RSIgaW4KIAkJTElCUys9IiAtbGV4ZWNpbmZvIgogCQk7OwogZXNhYworCitwcmVfY29uZmlndXJl KCkgeworCSMgdGhpcyB0ZXN0IG5lZWRzIFgKKwl2c2VkIC1pICJzL3Rlc3QoJ3Rlc3QtdGV4dC1p dGVyJy8jJi8iIHNyYy90ZXN0cy9tZXNvbi5idWlsZAorfQoKRnJvbSA0NWNmODhjZDNiOTFjZjJk MDhiOTAzZGY1MmMzZWVlZDBkN2QzOTFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAy MCAwMToyMTo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDk2LzEwM10gcmV0cm8tZ3RrOiB1cGRh dGUgdG8gMS4wLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgfCAgMiArLQogc3Jj cGtncy9yZXRyby1ndGsvdGVtcGxhdGUgfCAxMiArKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdl ZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24v c2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAyOGM5Y2QzOWUyYy4uOGRlZTIxYzlkYjMgMTAw NjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzU3NCw3ICsz NTc0LDcgQEAgbGlid2xyb290cy5zby42IHdscm9vdHMtMC4xMS4wXzEKIGxpYmJhc2VlbmNvZGUu c28uMSBsaWJiYXNlZW5jb2RlLTEuMC45XzEKIGxpYmNvdHAuc28uMTIgbGliY290cC0xLjIuMV8x CiBsaWJ1bmFyci5zby4xIGxpYnVuYXJyLTEuMC4xXzEKLWxpYnJldHJvLWd0ay0wLjE0LnNvLjAg cmV0cm8tZ3RrLTAuMTYuMF8xCitsaWJyZXRyby1ndGstMS5zby4wIHJldHJvLWd0ay0xLjAuMF8x CiBsaWJtYW5ldHRlLTAuMi5zby4wIGxpYm1hbmV0dGUtMC4yLjFfMQogbGliZm10LnNvLjYgZm10 LTUuMi4xXzEKIGxpYmVsZW1lbnRhcnktY2FsZW5kYXIuc28uMCBsaWJpby5lbGVtZW50YXJ5LmNh bGVuZGFyLTQuMi4zXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmV0cm8tZ3RrL3RlbXBsYXRlIGIv c3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUKaW5kZXggZGEwYWVjY2QyNDMuLjA0YWQ5Y2YwNTFi IDEwMDY0NAotLS0gYS9zcmNwa2dzL3JldHJvLWd0ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Jl dHJvLWd0ay90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn cmV0cm8tZ3RrJwogcGtnbmFtZT1yZXRyby1ndGsKLXZlcnNpb249MC4xOC4wCit2ZXJzaW9uPTEu MC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBj b25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2Vk ZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWcgdmFsYSIKLW1ha2VkZXBlbmRzPSJndGsrMy1k ZXZlbCBsaWJlcG94eS1kZXZlbCBsaWJnbGliLWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwiCittYWtl ZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZXBveHktZGV2ZWwgbGliZ2xpYi1kZXZlbCBwdWxzZWF1 ZGlvLWRldmVsCisgbGlic2FtcGxlcmF0ZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkdUSysgTGlicmV0 cm8gZnJvbnRlbmQgZnJhbWV3b3JrIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3JldHJvLWd0ayIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPWNlZGI4ODExNzRjNDJlODg5NTRlZWNiNWRmYWM3ODk1NGExOTgxYWFl ZWJkYzg5MThjODg2MWM2YzA4YTQ1MTIKK2NoZWNrc3VtPTVjNzQzN2E3NjgxMjVhNmY2MjdkMDYz ZWQ4OTBlOTMyOGQ0MTA4ZGI1MmE2ZDVhYTEwZTUyZDJmMjViYjg4ZGIKIAogYnVpbGRfb3B0aW9u cz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKKyMgbmVlZHMgWAorZG9fY2hl Y2soKSB7CisJOgorfQorCiByZXRyby1ndGstZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJs aWJnbGliLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9y dF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCgpGcm9tIGQzOTZmY2I2OTMxZWFiZjVhMGU4 MTNhNWI2NzI4OGU0OGE4NzEzMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDE3IFNlcCAyMDIwIDAx OjI2OjAxICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTcvMTAzXSBnbm9tZS1nYW1lczogdXBkYXRl IHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRlIHwgNiArKystLS0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1nYW1lcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZ2FtZXMv dGVtcGxhdGUKaW5kZXggMjczMWRmMGY2ZDkuLjU4ZjMxMTU2ZDA2IDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWdhbWVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZ2FtZXMvdGVtcGxh dGUKQEAgLTEsMTUgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWdhbWVzJwog cGtnbmFtZT1nbm9tZS1nYW1lcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4zOC4wCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWIt ZGV2ZWwgcGtnLWNvbmZpZyB2YWxhLWRldmVsIgogbWFrZWRlcGVuZHM9ImxpYmFyY2hpdmUtZGV2 ZWwgZ3JpbG8tZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbAogIGxpYm1hbmV0dGUtZGV2 ZWwgbGlicnN2Zy1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYnhtbDItZGV2ZWwgcmV0cm8tZ3RrLWRl dmVsCi0gc3FsaXRlLWRldmVsIHRyYWNrZXItZGV2ZWwgbGliaGFuZHktZGV2ZWwiCisgc3FsaXRl LWRldmVsIHRyYWNrZXItZGV2ZWwgbGliaGFuZHkxLWRldmVsIgogc2hvcnRfZGVzYz0iQnJvd3Nl IGFuZCBwbGF5IHlvdXIgZ2FtZXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL0FwcHMvR2FtZXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0wZmQ3MjQ2ZDYxY2UyMWMwZmMxMjFjNTQ4ODA1MWE1ODY2YzE5ZGUyYzI4MzVhZDdm ZTRiMThjMDY2MjdkY2JhCitjaGVja3N1bT01Yzg2OGZkNmViMGI4ZDIzYjk5NTAzOTYzMzA0M2U5 MGQ4ZDkzODU2ZDMxNTgzMmRlM2EzMTVkN2IxZTU0ZTQ4CgpGcm9tIDY1YjY2MDIxY2YwMTc5MTg3 Y2E2ZWZjMjk0MGY3YzU4NjFmOGE1YzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIw IDIzOjIyOjM0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTgvMTAzXSBnbm9tZS1wYW5lbDogdXBk YXRlIHRvIDMuMzcuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgIHwgMiArLQog c3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZSB8IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hs aWJzIGIvY29tbW9uL3NobGlicwppbmRleCA4ZGVlMjFjOWRiMy4uMDYxODg2ODUwOGEgMTAwNjQ0 Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtNTY0LDcgKzU2NCw3 IEBAIGxpYnBhY2thZ2VraXQtZ2xpYjIuc28uMTggUGFja2FnZUtpdC0xLjEuMTJfMQogbGlicHNs LnNvLjUgbGlicHNsLTAuMjAuMl8xCiBsaWJzb3VwLTIuNC5zby4xIGxpYnNvdXAtMi4zNC4wXzEK IGxpYnNvdXAtZ25vbWUtMi40LnNvLjEgbGlic291cC1nbm9tZS0yLjM0LjBfMQotbGlicGFuZWwt YXBwbGV0LnNvLjMgZ25vbWUtcGFuZWwtMy4zMC4wXzEKK2xpYmdub21lLXBhbmVsLnNvLjAgZ25v bWUtcGFuZWwtMy4zNy4xXzEKIGxpYnVuaW51bS5zby41IGxpYnVuaW51bS0yLjdfMQogbGlidW5p cXVlLTMuMC5zby4wIGxpYnVuaXF1ZS0yLjkxLjRfMQogbGlid2Via2l0Mmd0ay00LjAuc28uMzcg d2Via2l0Mmd0ay0yLjYuMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBs YXRlIGIvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZQppbmRleCA3MGYyM2I4YjU1MS4uMjRk OWQyYjllYjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2dub21lLXBhbmVsJwogcGtnbmFtZT1nbm9tZS1wYW5lbAotdmVyc2lvbj0zLjM0 LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNy4xCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1n bnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iYXhfY3Zfem9uZWluZm9fdHpkaXI9L3Vzci9z aGFyZS96b25laW5mbyIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVs IGl0c3Rvb2wgcGtnLWNvbmZpZyB0emRhdGEgZ2V0dGV4dCIKQEAgLTE0LDcgKzE0LDcgQEAgbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4xLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lUGFuZWwiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNmJjMDI1NTI1MmVlYjRiOTY0YmNiZTU1ZmQ3 OTA4YjY5ZjkxNGMwNjJjNWVjOGRmZjVhYzAyNjJkMjliOTBkCitjaGVja3N1bT0xZDU5OGZkNjg5 MzNlNzYwMThmMmZiMTE2YTc4NzFjYmMwMDMzYzFmMTA5YmZiZmUwOGExZWNiNTYwNjdkMTUyCiBw YXRjaF9hcmdzPSItTnAxIgogCiBnbm9tZS1wYW5lbC1kZXZlbF9wYWNrYWdlKCkgewoKRnJvbSBk MGFhNDFhNjhhODI2ZGI5ZTgwNjcyZDNhOWNhM2ZjNGYxYWM0ZGVmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog RnJpLCAxNCBBdWcgMjAyMCAyMzoyNDo1MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDk5LzEwM10g bWV0YWNpdHk6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0 ZSB8IDkgKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgYi9zcmNwa2dz L21ldGFjaXR5L3RlbXBsYXRlCmluZGV4IDVhYTIzMTQ5MmU3Li40MzA5Nzc2YmQ1NCAxMDA2NDQK LS0tIGEvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21ldGFjaXR5L3Rl bXBsYXRlCkBAIC0xLDE4ICsxLDE3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXRhY2l0eScK IHBrZ25hbWU9bWV0YWNpdHkKLXJldmVydHM9IjMuMzcuMV8xIgotdmVyc2lvbj0zLjM0LjEKK3Zl cnNpb249My4zNy4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0 bWFrZWRlcGVuZHM9ImdldHRleHQgZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtn LWNvbmZpZyB5ZWxwLXRvb2xzIHplbml0eSIKIG1ha2VkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3Rv cC1zY2hlbWFzLWRldmVsIGd0ayszLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsCiAgbGliZ2xpYi1k ZXZlbCBsaWJndG9wLWRldmVsIGxpYlNNLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWGRh bWFnZS1kZXZlbAotIGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVy LWRldmVsIGxpYlgxMS1kZXZlbCBwYW5nby1kZXZlbAotIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRl dmVsIFZ1bGthbi1IZWFkZXJzIHZ1bGthbi1sb2FkZXIiCisgbGliWGZpeGVzLWRldmVsIGxpYlhp bmVyYW1hLWRldmVsIGxpYlhyZW5kZXItZGV2ZWwgbGliWDExLWRldmVsIGxpYlhyZXMtZGV2ZWwK KyBwYW5nby1kZXZlbCBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2 dWxrYW4tbG9hZGVyIgogZGVwZW5kcz0iemVuaXR5Igogc2hvcnRfZGVzYz0iV2luZG93IE1hbmFn ZXIgZm9yIHRoZSBHTk9NRSBlbnZpcm9ubWVudCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tZXRhY2l0eSIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTMxYzdkMTA0NWMzOTBhZmIzYmY0MDU3MzViMGIyNmM0NTkx OTdjYmY0M2FmMzdjNDY5ZWI4OTE4Y2UzYTQ1M2QKK2NoZWNrc3VtPTgwZDZmM2Q5NWE0MzI4ZmIy NmQwYTY0NzFmNTc1Yjc0MmIzNmI4ZjI3MjFmOGYzYzE4MDcxOTdmYTkwMGExMjYKCkZyb20gMWJj OGI4N2I4NjAzZjk3Mzc4YjI3MmQ3ZDZkMDM5MGNmZGY2ZjFmMyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZy aSwgMTQgQXVnIDIwMjAgMjM6NDA6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwMC8xMDNdIGdu b21lLWZsYXNoYmFjazogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiAuLi4vZ25vbWUtZmxhc2hiYWNr L2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0gfCAgNiArKysrCiBzcmNwa2dzL2dub21lLWZsYXNo YmFjay90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysrKy0tLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNrLnBh bQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNo YmFjay5wYW0gYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2su cGFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNzc2ZjBiMzYzMgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZs YXNoYmFjay5wYW0KQEAgLTAsMCArMSw2IEBACisjJVBBTS0xLjAKK2F1dGggICAgIGluY2x1ZGUg IHN5c3RlbS1hdXRoCithdXRoICAgICBvcHRpb25hbCBwYW1fZ25vbWVfa2V5cmluZy5zbworYWNj b3VudCAgaW5jbHVkZSAgc3lzdGVtLWF1dGgKK3Bhc3N3b3JkIGluY2x1ZGUgIHN5c3RlbS1hdXRo CitzZXNzaW9uICBpbmNsdWRlICBzeXN0ZW0tYXV0aApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1mbGFzaGJhY2svdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQpp bmRleCBkMzIxMjBjYWI2Zi4uYTA1M2E3OGFlYjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUt Zmxhc2hiYWNrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRl CkBAIC0xLDIwICsxLDM2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mbGFzaGJhY2sn CiBwa2duYW1lPWdub21lLWZsYXNoYmFjawotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249My4zNy4z CiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9Z2lyCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJl Ci1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgotaG9z dG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGdsaWItZGV2ZWwgZ2V0dGV4dCIKLW1h a2VkZXBlbmRzPSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCi0g bGliZ2xpYi1kZXZlbCBnZGstcGl4YnVmLWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVsIHBv bGtpdC1kZXZlbAotIHB1bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNiLWRl dmVsIGxpYlgxMS1kZXZlbCBwYW5nby1kZXZlbAotIGxpYnhrYmZpbGUtZGV2ZWwgZ25vbWUtYmx1 ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwiCitjb25maWd1cmVfYXJncz0iLS13aXRo LWNvbXBpei1zZXNzaW9uIC0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKK2hvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnZXR0ZXh0IGdldHRleHQtZGV2ZWwgYXV0b21ha2UgbGli dG9vbCBnbGliLWRldmVsIgorbWFrZWRlcGVuZHM9InBhbS1kZXZlbCBlbG9naW5kLWRldmVsIHVw b3dlci1kZXZlbCBpYnVzLWRldmVsIHBvbGtpdC1kZXZlbAorIHB1bHNlYXVkaW8tZGV2ZWwgbGli Y2FuYmVycmEtZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgxMS1kZXZlbCBsaWJ4a2JmaWxlLWRldmVs CisgbGliY29tcGl6Y29uZmlnLWRldmVsIGxpYmdsaWItZGV2ZWwgcGFuZ28tZGV2ZWwgZ3RrKzMt ZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbAorIGdkbS1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwg Z25vbWUtZGVza3RvcC1kZXZlbCBnbm9tZS1wYW5lbC1kZXZlbAorIGdzZXR0aW5ncy1kZXNrdG9w LXNjaGVtYXMtZGV2ZWwiCiBkZXBlbmRzPSJnbm9tZS1ibHVldG9vdGggZ25vbWUtc2Vzc2lvbiBn bm9tZS1zZXR0aW5ncy1kYWVtb24KLSBnbm9tZS1wYW5lbCBnbm9tZS10aGVtZXMtc3RhbmRhcmQg bWV0YWNpdHkiCisgZ25vbWUtcGFuZWwgZ25vbWUtdGhlbWVzLWV4dHJhIG1ldGFjaXR5Igogc2hv cnRfZGVzYz0iR05PTUUgMyBzZXNzaW9uIHdpdGggc2ltaWxhciB1c2VyIGV4cGVyaWVuY2UgdG8g dGhlIEdOT01FIDIueCBzZXJpZXMiCiBtYWludGFpbmVyPSJzaGl6b25pYyA8cmVhbHRpYXpAZ21h aWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZUZsYXNoYmFjayIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTNiZTY1Mzg4Y2QyYzhmMzk3NDFiY2MwNWRhODdlZjQwMDM1MTgzYTlh Mzk1MDJkNjc2OTYyNDJjMmFlYjQ2OWMKK2NoZWNrc3VtPTQ2ZDQ4ZDY4NzQ2NDZkMTJlYzVlYmM2 MjIxNTg0NTZkYjFjZWVhZjQ5MjRiZDFmYzhiZjU5Y2JhYWZhMWUxYzIKKworcG9zdF9leHRyYWN0 KCkgeworCXZzZWQgLWkgJ3MvbGliY29tcGl6Y29uZmlnID49IDBcLjlcLjE0XC4wL2xpYmNvbXBp emNvbmZpZyA+PSAwLjguMTYuMC8nIFwKKwkJY29uZmlndXJlLmFjCit9CisKK3ByZV9jb25maWd1 cmUoKSB7CisJYXV0b3JlY29uZiAtaWYKK30KKworcG9zdF9pbnN0YWxsKCkgeworCXZpbnN0YWxs ICR7RklMRVNESVJ9L2dub21lLWZsYXNoYmFjay5wYW0gNjQ0IC9ldGMvcGFtLmQgZ25vbWUtZmxh c2hiYWNrCisJdnNlZCAtaSAtZSAicy8gLS1zeXN0ZW1kLy9nIiBcCisJCSR7REVTVERJUn0vdXNy L2xpYmV4ZWMvZ25vbWUtZmxhc2hiYWNrLXtjb21waXosbWV0YWNpdHl9Cit9CgpGcm9tIGY2N2Yy ODY1M2UzYzk4ZjNjNGU5MzAxMjM1OGIwNGQxZjUxMzliZDUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUdWUs IDE4IEF1ZyAyMDIwIDA1OjM1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMDEvMTAzXSBidWRn aWUtZGVza3RvcDogcmVidWlsZCBmb3IgbXV0dGVyLTcKCltjaSBza2lwXQotLS0KIC4uLi9idWRn aWUtZGVza3RvcC9wYXRjaGVzL2FwcHN5cy1idWlsZC5wYXRjaCB8ICAgIDExICsKIC4uLi9idWRn aWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaCAgICB8IDEzNDcyICsrKysrKysrKysr KysrKysKIHNyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICAg ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDEzNDg0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvYXBw c3lzLWJ1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3Rv cC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRl c2t0b3AvcGF0Y2hlcy9hcHBzeXMtYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9w L3BhdGNoZXMvYXBwc3lzLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5iNjYyNWYwNDZkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvYnVkZ2ll LWRlc2t0b3AvcGF0Y2hlcy9hcHBzeXMtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0t IHNyYy9hcHBzeXMvQXBwU3lzdGVtLnZhbGEKKysrKyBzcmMvYXBwc3lzL0FwcFN5c3RlbS52YWxh CitAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWMgY2xhc3MgQXBwU3lzdGVtIDogR0xpYi5PYmplY3QK KyAgICAgfQorIAorICAgICBwcml2YXRlIHZvaWQgc2lnbmFsX3JlY2VpdmVkKEdMaWIuREJ1c0Nv bm5lY3Rpb24gY29ubmVjdGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJpbmcgc2VuZGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZz8g c2VuZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBvYmplY3Rf cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgaW50ZXJmYWNl X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHNpZ25hbF9u YW1lLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMz OC5wYXRjaCBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyZmE3NmExN2IwCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5w YXRjaApAQCAtMCwwICsxLDEzNDcyIEBACitGcm9tIDMwYmEwYjVhNDk4NmQ2YmUzNjg3YTFkN2Zi NDgyOTA2MTg1ZWE4YzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYXZpZCBNb2hh bW1lZCA8Zm9zc2ZyZWVkb21AdXNlcnMubm9yZXBseS5naXRodWIuY29tPgorRGF0ZTogVHVlLCAx OCBGZWIgMjAyMCAwNjo0MDoxMiArMDAwMAorU3ViamVjdDogW1BBVENIXSBnbm9tZSAzLjM4IGNv bXBhdGliaWxpdHkKKworU3F1YXNoZWQgYnkgQHE2NiBmcm9tOgorCitodHRwczovL2dpdGh1Yi5j b20vc29sdXMtcHJvamVjdC9idWRnaWUtZGVza3RvcC9wdWxsLzE5ODcKKworcGx1cyBhbiBhc3Nv cnRtZW50IG9mIG9sZGVyIG11dHRlciB1cGRhdGVzIGZyb20gZ2l0IG1hc3RlcgorLS0tCisgbWVz b24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArLQorIG1l c29uX29wdGlvbnMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgLQorIHNy Yy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYSAgICAgICAgICB8ICAgIDYgLQorIHNy Yy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgMTMgKy0KKyBz cmMvd20vYmFja2dyb3VuZC52YWxhICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICstCisg c3JjL3dtL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMCArLQor IHNyYy93bS9zaGltLnZhbGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKy0K KyBzcmMvd20vd20udmFsYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICst CisgLi4ue0NsdXR0ZXItNS5tZXRhZGF0YSA9PiBDbHV0dGVyLTYubWV0YWRhdGF9IHwgICAgMAor IC4uLntDbHV0dGVyLTQubWV0YWRhdGEgPT4gQ2x1dHRlci03Lm1ldGFkYXRhfSB8ICAgNDMgLQor IHZhcGkve0NvZ2wtNC5tZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICAgICB8ICAgIDAKKyB2 YXBpL3tDb2dsLTUubWV0YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAgICAgfCAgICAyIC0KKyB2 YXBpL01ldGEtMy5tZXRhZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDY2IC0KKyB2 YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4gTWV0YS02Lm1ldGFkYXRhfSAgICAgfCAgICAwCisgdmFw aS97TWV0YS00Lm1ldGFkYXRhID0+IE1ldGEtNy5tZXRhZGF0YX0gICAgIHwgICAyNSArLQorIHZh cGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2ggICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KKyB2 YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgICAgICAgICAgICAgICAgfCAgNjkxICsrKysr KysKKyB2YXBpL2xpYm11dHRlci0yLmRlcHMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5 IC0KKyB2YXBpL2xpYm11dHRlci0yLnZhcGkgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzI1 IC0tLS0tLS0tLS0tLS0tCisgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSAgICAgICAgICAg ICAgICAgIHwgICAgNiAtCisgdmFwaS9saWJtdXR0ZXItMy5kZXBzICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgOSAtCisgdmFwaS9saWJtdXR0ZXItNC5kZXBzICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgOCAtCisgdmFwaS9saWJtdXR0ZXItNC52YXBpICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMTQyNSAtLS0tLS0tLS0tLS0tLS0KKyB2YXBpL3tsaWJtdXR0ZXItNS5kZXBzID0+ IGxpYm11dHRlci02LmRlcHN9ICAgfCAgICAzICstCisgdmFwaS97bGlibXV0dGVyLTUudmFwaSA9 PiBsaWJtdXR0ZXItNi52YXBpfSAgIHwgICA0NSArLQorIHZhcGkvbGlibXV0dGVyLTctY3VzdG9t LnZhbGEgICAgICAgICAgICAgICAgICB8ICAgIDcgKworIHZhcGkvbGlibXV0dGVyLTcuZGVwcyAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKworIHZhcGkve2xpYm11dHRlci0zLnZhcGkg PT4gbGlibXV0dGVyLTcudmFwaX0gICB8ICAzOTAgKystLQorIHZhcGkvbGlibXV0dGVyLWNvZ2wt NC52YXBpICAgICAgICAgICAgICAgICAgICB8IDEyNzIgLS0tLS0tLS0tLS0tLQorIHZhcGkvbXV0 dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYSAgICAgICAgICAgICB8ICAxNTggLS0KKyAuLi5zdG9t LnZhbGEgPT4gbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYX0gfCAgIDExIC0KKyAuLi5yLWNs dXR0ZXItNS5kZXBzID0+IG11dHRlci1jbHV0dGVyLTYuZGVwc30gfCAgICAyICstCisgLi4uci1j bHV0dGVyLTUudmFwaSA9PiBtdXR0ZXItY2x1dHRlci02LnZhcGl9IHwgIDgwNiArKy0tLS0tLQor IC4uLnItY2x1dHRlci00LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNy5kZXBzfSB8ICAgIDMgKy0K KyAuLi5yLWNsdXR0ZXItNC52YXBpID0+IG11dHRlci1jbHV0dGVyLTcudmFwaX0gfCAxNjE1ICsr KystLS0tLS0tLS0tLS0tCisgLi4uLWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTYtY3VzdG9t LnZhbGF9IHwgICAgMAorIC4uLnttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNi5k ZXBzfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRlci1jb2dsLTYudmFw aX0gfCAgNDIyICstLS0tCisgLi4uLWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTctY3VzdG9t LnZhbGF9IHwgICAyMCArLQorIC4uLnttdXR0ZXItY29nbC01LmRlcHMgPT4gbXV0dGVyLWNvZ2wt Ny5kZXBzfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2dsLTcu dmFwaX0gfCAgNjcxICsrKy0tLS0KKyB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaSAgICAgICAg ICAgICAgICAgICAgfCAgIDMxICstCisgNDIgZmlsZXMgY2hhbmdlZCwgMTkyMCBpbnNlcnRpb25z KCspLCA3MjU0IGRlbGV0aW9ucygtKQorIHJlbmFtZSB2YXBpL3tDbHV0dGVyLTUubWV0YWRhdGEg PT4gQ2x1dHRlci02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97Q2x1dHRlci00Lm1l dGFkYXRhID0+IENsdXR0ZXItNy5tZXRhZGF0YX0gKDc4JSkKKyByZW5hbWUgdmFwaS97Q29nbC00 Lm1ldGFkYXRhID0+IENvZ2wtNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve0NvZ2wt NS5tZXRhZGF0YSA9PiBDb2dsLTcubWV0YWRhdGF9ICg5MSUpCisgZGVsZXRlIG1vZGUgMTAwNjQ0 IHZhcGkvTWV0YS0zLm1ldGFkYXRhCisgcmVuYW1lIHZhcGkve01ldGEtNS5tZXRhZGF0YSA9PiBN ZXRhLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tNZXRhLTQubWV0YWRhdGEgPT4g TWV0YS03Lm1ldGFkYXRhfSAoNzYlKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2dyYXBoZW5l LWdvYmplY3QtMS4wLnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMi5k ZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIudmFwaQorIGRlbGV0ZSBt b2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhCisgZGVsZXRlIG1vZGUgMTAw NjQ0IHZhcGkvbGlibXV0dGVyLTMuZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11 dHRlci00LmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNC52YXBpCisg cmVuYW1lIHZhcGkve2xpYm11dHRlci01LmRlcHMgPT4gbGlibXV0dGVyLTYuZGVwc30gKDUwJSkK KyByZW5hbWUgdmFwaS97bGlibXV0dGVyLTUudmFwaSA9PiBsaWJtdXR0ZXItNi52YXBpfSAoOTcl KQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTcuZGVwcworIHJlbmFtZSB2YXBpL3tsaWJt dXR0ZXItMy52YXBpID0+IGxpYm11dHRlci03LnZhcGl9ICg3NSUpCisgZGVsZXRlIG1vZGUgMTAw NjQ0IHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkv bXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRl ci00LWN1c3RvbS52YWxhID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9ICg5MiUpCisg cmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTUuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci02LmRl cHN9ICg2MyUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTUudmFwaSA9PiBtdXR0ZXIt Y2x1dHRlci02LnZhcGl9ICg5MyUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTQuZGVw cyA9PiBtdXR0ZXItY2x1dHRlci03LmRlcHN9ICg1NCUpCisgcmVuYW1lIHZhcGkve211dHRlci1j bHV0dGVyLTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9ICg4NiUpCisgcmVuYW1lIHZh cGkve211dHRlci1jb2dsLTUtY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFs YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTQuZGVwcyA9PiBtdXR0ZXItY29n bC02LmRlcHN9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01LnZhcGkgPT4gbXV0 dGVyLWNvZ2wtNi52YXBpfSAoNjglKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LWN1c3Rv bS52YWxhID0+IG11dHRlci1jb2dsLTctY3VzdG9tLnZhbGF9ICg4MSUpCisgcmVuYW1lIHZhcGkv e211dHRlci1jb2dsLTUuZGVwcyA9PiBtdXR0ZXItY29nbC03LmRlcHN9ICgxMDAlKQorIHJlbmFt ZSB2YXBpL3ttdXR0ZXItY29nbC00LnZhcGkgPT4gbXV0dGVyLWNvZ2wtNy52YXBpfSAoNTklKQor CitkaWZmIC0tZ2l0IG1lc29uLmJ1aWxkIG1lc29uLmJ1aWxkCitpbmRleCAyYTBlMDMxNi4uM2M0 YzZhYzEgMTAwNjQ0CistLS0gbWVzb24uYnVpbGQKKysrKyBtZXNvbi5idWlsZAorQEAgLTMyLDE2 ICszMiwxNiBAQCBhbV9jZmxhZ3MgPSBbCisgYWRkX2dsb2JhbF9hcmd1bWVudHMoYW1fY2ZsYWdz LCBsYW5ndWFnZTogJ2MnKQorIG1lc29uLmFkZF9pbnN0YWxsX3NjcmlwdCgnbWVzb25fcG9zdF9p bnN0YWxsLnNoJykKKyAKKy0jIEJ1ZGdpZSBuZWVkcyBhIG1pbmltdW0gMy4yMiBHTk9NRSBzdGFj aworLWdub21lX21pbmltdW1fdmVyc2lvbiA9ICc+PSAzLjIyLjAnCisrIyBCdWRnaWUgbmVlZHMg YSBtaW5pbXVtIDMuMjQgR05PTUUgc3RhY2sKKytnbm9tZV9taW5pbXVtX3ZlcnNpb24gPSAnPj0g My4yNC4wJworIAorIGRlcF9ndGszID0gZGVwZW5kZW5jeSgnZ3RrKy0zLjAnLCB2ZXJzaW9uOiBn bm9tZV9taW5pbXVtX3ZlcnNpb24pCistZGVwX2dsaWIgPSBkZXBlbmRlbmN5KCdnbGliLTIuMCcs IHZlcnNpb246ICc+PSAyLjQ2LjAnKQorLWRlcF9naW91bml4ID0gZGVwZW5kZW5jeSgnZ2lvLXVu aXgtMi4wJywgdmVyc2lvbjogJz49IDIuNDYuMCcpCistZGVwX3BlYXMgPSBkZXBlbmRlbmN5KCds aWJwZWFzLTEuMCcsIHZlcnNpb246ICc+PSAxLjguMCcpCisrZGVwX2dsaWIgPSBkZXBlbmRlbmN5 KCdnbGliLTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9naW91bml4ID0gZGVwZW5k ZW5jeSgnZ2lvLXVuaXgtMi4wJywgdmVyc2lvbjogJz49IDIuNjIuMCcpCisrZGVwX3BlYXMgPSBk ZXBlbmRlbmN5KCdsaWJwZWFzLTEuMCcsIHZlcnNpb246ICc+PSAxLjI0LjAnKQorIGRlcF9nZGt4 MTEgPSBkZXBlbmRlbmN5KCdnZGsteDExLTMuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVy c2lvbikKKyBkZXBfbGlidXVpZCA9IGRlcGVuZGVuY3koJ3V1aWQnKQorLWRlcF92YWxhID0gZGVw ZW5kZW5jeSgndmFwaWdlbicsIHZlcnNpb246ICc+PSAwLjQwLjAnKQorK2RlcF92YWxhID0gZGVw ZW5kZW5jeSgndmFwaWdlbicsIHZlcnNpb246ICc+PSAwLjQ2LjAnKQorIAorICMgTmVlZGVkIGZv ciBrZXlib2FyZHkgYml0cworIGRlcF9pYnVzID0gZGVwZW5kZW5jeSgnaWJ1cy0xLjAnLCB2ZXJz aW9uOiAnPj0gMS41LjEwJykKK0BAIC01MSwxMCArNTEsMTAgQEAgZGVwX2dzZXR0aW5ncyA9IGRl cGVuZGVuY3koJ2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMnLCB2ZXJzaW9uOiBnbm9tZV9taW5p bXVtX3YKKyBkZXBfZ3NkID0gZGVwZW5kZW5jeSgnZ25vbWUtc2V0dGluZ3MtZGFlbW9uJywgdmVy c2lvbjogJz49My4yOC4wJykKKyAKKyAjIHduY2sgdXNlZCBhbGwgb3ZlciB0aGUgcGxhY2UuLgor LWRlcF93bmNrID0gZGVwZW5kZW5jeSgnbGlid25jay0zLjAnLCB2ZXJzaW9uOiAnPj0gMy4xNC4w JykKKytkZXBfd25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lvbjogJz49IDMu MzIuMCcpCisgCisgIyBhY2NvdW50c3NlcnZpY2UgaW4gbXVsdGlwbGUgYXBwbGV0cworLWRlcF9h Y2NvdW50c3NlcnZpY2UgPSBkZXBlbmRlbmN5KCdhY2NvdW50c3NlcnZpY2UnLCB2ZXJzaW9uOiAn Pj0gMC42LjQwJykKKytkZXBfYWNjb3VudHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgnYWNjb3VudHNz ZXJ2aWNlJywgdmVyc2lvbjogJz49IDAuNi41NScpCisgCisgIyBDcmVhdGUgY29uZmlnLmgKKyBj ZGF0YSA9IGNvbmZpZ3VyYXRpb25fZGF0YSgpCitkaWZmIC0tZ2l0IG1lc29uX29wdGlvbnMudHh0 IG1lc29uX29wdGlvbnMudHh0CitpbmRleCBkNzFiMDliNS4uZGNhOTEyOTYgMTAwNjQ0CistLS0g bWVzb25fb3B0aW9ucy50eHQKKysrKyBtZXNvbl9vcHRpb25zLnR4dAorQEAgLTEsNSArMSw0IEBA Cisgb3B0aW9uKCd3aXRoLXN0YXRlbGVzcycsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IGZhbHNl LCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBzdGF0ZWxlc3MgWERHIHBhdGhzJykKKyBvcHRpb24oJ3dp dGgtcG9sa2l0JywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdF bmFibGUgUG9sS2l0IHN1cHBvcnQnKQorLW9wdGlvbignd2l0aC1ibHVldG9vdGgnLCB0eXBlOiAn Ym9vbGVhbicsIHZhbHVlOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBnbm9tZS1ibHVldG9v dGggc3VwcG9ydCcpCisgb3B0aW9uKCd3aXRoLWd0ay1kb2MnLCB0eXBlOiAnYm9vbGVhbicsIHZh bHVlOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0J1aWxkIGd0ay1kb2MgZG9jdW1lbnRhdGlvbicpCisg b3B0aW9uKCd3aXRoLWRlc2t0b3AtaWNvbnMnLCB0eXBlOiAnY29tYm8nLCBjaG9pY2VzOiBbJ25h dXRpbHVzJywgJ25vbmUnXSwgdmFsdWU6ICduYXV0aWx1cycsIGRlc2NyaXB0aW9uOiAnRGVza3Rv cCBpY29uIGhhbmRsaW5nJykKK2RpZmYgLS1naXQgc3JjL2FwcGxldHMvc3RhdHVzL1N0YXR1c0Fw cGxldC52YWxhIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQoraW5kZXggYjk4 MjYzOTQuLjcxZjI4N2M5IDEwMDY0NAorLS0tIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBs ZXQudmFsYQorKysrIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQorQEAgLTIw LDkgKzIwLDcgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBsZXQKKyB7 CisgCisgICAgIHByb3RlY3RlZCBHdGsuQm94IHdpZGdldDsKKy0jaWYgV0lUSF9CTFVFVE9PVEgK KyAgICAgcHJvdGVjdGVkIEJsdWV0b290aEluZGljYXRvciBibHVlOworLSNlbmRpZgorICAgICBw cm90ZWN0ZWQgU291bmRJbmRpY2F0b3Igc291bmQ7CisgICAgIHByb3RlY3RlZCBQb3dlckluZGlj YXRvciBwb3dlcjsKKyAgICAgcHJvdGVjdGVkIEd0ay5FdmVudEJveD8gd3JhcDsKK0BAIC02OCwx MiArNjYsMTAgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBsZXQKKyAg ICAgICAgIHRoaXMuc2V0dXBfcG9wb3Zlcihwb3dlci5lYm94LCBwb3dlci5wb3BvdmVyKTsKKyAg ICAgICAgIHRoaXMuc2V0dXBfcG9wb3Zlcihzb3VuZC5lYm94LCBzb3VuZC5wb3BvdmVyKTsKKyAK Ky0jaWYgV0lUSF9CTFVFVE9PVEgKKyAgICAgICAgIGJsdWUgPSBuZXcgQmx1ZXRvb3RoSW5kaWNh dG9yKCk7CisgICAgICAgICB3aWRnZXQucGFja19zdGFydChibHVlLCBmYWxzZSwgZmFsc2UsIDIp OworICAgICAgICAgYmx1ZS5zaG93X2FsbCgpOworICAgICAgICAgdGhpcy5zZXR1cF9wb3BvdmVy KGJsdWUuZWJveCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIAorICAgICBwdWJs aWMgb3ZlcnJpZGUgdm9pZCBwYW5lbF9wb3NpdGlvbl9jaGFuZ2VkKEJ1ZGdpZS5QYW5lbFBvc2l0 aW9uIHBvc2l0aW9uKQorQEAgLTkxLDkgKzg3LDcgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxl dCA6IEJ1ZGdpZS5BcHBsZXQKKyAgICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7CisgICAg ICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIucG9wb3Zlcik7 CisgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIoc291bmQuZWJveCwgc291bmQucG9w b3Zlcik7CistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3Bv cG92ZXIoYmx1ZS5lYm94LCBibHVlLnBvcG92ZXIpOworLSNlbmRpZgorICAgICB9CisgfSAvLyBF bmQgY2xhc3MKKyAKK2RpZmYgLS1naXQgc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkIHNy Yy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAoraW5kZXggNjk5ZmI4ZjQuLmI0ZDI3MDZjIDEw MDY0NAorLS0tIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAorKysrIHNyYy9hcHBsZXRz L3N0YXR1cy9tZXNvbi5idWlsZAorQEAgLTEwLDYgKzEwLDcgQEAgY3VzdG9tX3RhcmdldCgncGx1 Z2luLWZpbGUtc3RhdHVzJywKKyAgICAgaW5zdGFsbF9kaXIgOiBhcHBsZXRfc3RhdHVzX2RpcikK KyAKKyBhcHBsZXRfc3RhdHVzX3NvdXJjZXMgPSBbCisrICAgICdCbHVldG9vdGhJbmRpY2F0b3Iu dmFsYScsCisgICAgICdTdGF0dXNBcHBsZXQudmFsYScsCisgICAgICdQb3dlckluZGljYXRvci52 YWxhJywKKyAgICAgJ1NvdW5kSW5kaWNhdG9yLnZhbGEnLAorQEAgLTIwLDIyICsyMSwxMyBAQCBh cHBsZXRfc3RhdHVzX2RlcHMgPSBbCisgICAgIGRlcF9ndGszLAorICAgICBkZXBfcGVhcywKKyAg ICAgZGVwX2FjY291bnRzc2VydmljZSwKKysgICAgZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRvb3Ro LTEuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiksCisgICAgIGRlcGVuZGVuY3ko J3Vwb3dlci1nbGliJywgdmVyc2lvbjogJz49IDAuOTkuMCcpLAorICAgICBsaW5rX2xpYnBsdWdp biwKKyAgICAgZ3ZjLmdldF92YXJpYWJsZSgnbGliZ3ZjX2RlcCcpLAorICAgICBtZXNvbi5nZXRf Y29tcGlsZXIoJ2MnKS5maW5kX2xpYnJhcnkoJ20nLCByZXF1aXJlZDogZmFsc2UpLAorIF0KKyAK Ky0jIEJsdWV0b290aCBpcyBvcHRpb25hbCB0byBhbGxvdyBzbWFsbGVyIGJ1aWxkcworLXdpdGhf Ymx1ZXRvb3RoID0gZ2V0X29wdGlvbignd2l0aC1ibHVldG9vdGgnKQorLWFwcGxldF9zdGF0dXNf dmFsYV9hcmdzID0gW10KKy0KKy1pZiB3aXRoX2JsdWV0b290aCA9PSB0cnVlCistICAgIGFwcGxl dF9zdGF0dXNfZGVwcyArPSBkZXBlbmRlbmN5KCdnbm9tZS1ibHVldG9vdGgtMS4wJywgdmVyc2lv bjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorLSAgICBhcHBsZXRfc3RhdHVzX3NvdXJjZXMgKz0g J0JsdWV0b290aEluZGljYXRvci52YWxhJworLSAgICBhcHBsZXRfc3RhdHVzX3ZhbGFfYXJncyAr PSBbJy1EJywgJ1dJVEhfQkxVRVRPT1RIJ10KKy1lbmRpZgorLQorIHNoYXJlZF9saWJyYXJ5KAor ICAgICAnc3RhdHVzYXBwbGV0JywKKyAgICAgYXBwbGV0X3N0YXR1c19zb3VyY2VzLAorQEAgLTUw LDcgKzQyLDYgQEAgc2hhcmVkX2xpYnJhcnkoCisgICAgICAgICAnLS1wa2cnLCAnZ3ZjLTEuMCcs CisgICAgICAgICAnLS1wa2cnLCAnZ2lvLXVuaXgtMi4wJywKKyAgICAgICAgICctLXZhcGlkaXIn LCBqb2luX3BhdGhzKG1lc29uLnNvdXJjZV9yb290KCksICd2YXBpJyksCistICAgICAgICBhcHBs ZXRfc3RhdHVzX3ZhbGFfYXJncywKKyAgICAgXSwKKyAgICAgaW5zdGFsbDogdHJ1ZSwKKyAgICAg aW5zdGFsbF9kaXI6IGFwcGxldF9zdGF0dXNfZGlyLAorZGlmZiAtLWdpdCBzcmMvd20vYmFja2dy b3VuZC52YWxhIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKK2luZGV4IDA4NGFhOWFiLi5iMzMxZTBj NCAxMDA2NDQKKy0tLSBzcmMvd20vYmFja2dyb3VuZC52YWxhCisrKysgc3JjL3dtL2JhY2tncm91 bmQudmFsYQorQEAgLTIwNCw4ICsyMDQsMTMgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZUJhY2tncm91 bmQgOiBDbHV0dGVyLkFjdG9yCisgCisgICAgICAgICB2YXIgYWN0b3IgPSBuZXcgTWV0YS5CYWNr Z3JvdW5kQWN0b3IoZGlzcGxheSwgaW5kZXgpOworICAgICAgICAgdmFyIGJhY2tncm91bmQgPSBu ZXcgTWV0YS5CYWNrZ3JvdW5kKGRpc3BsYXkpOworKyNpZiBIQVZFX01VVFRFUl82CisgICAgICAg ICBhY3Rvci5zZXRfYmFja2dyb3VuZChiYWNrZ3JvdW5kKTsKKy0KKysjZWxzZQorKyAgICAgICAg dmFyIGNvbnRlbnQgPSBhY3Rvci5nZXRfY29udGVudCgpOworKyAgICAgICAgdW5vd25lZCBNZXRh LkJhY2tncm91bmRDb250ZW50IGJhY2tncm91bmRfY29udGVudCA9IChNZXRhLkJhY2tncm91bmRD b250ZW50KSBjb250ZW50OworKyAgICAgICAgYmFja2dyb3VuZF9jb250ZW50LnNldF9iYWNrZ3Jv dW5kKGJhY2tncm91bmQpOworKyNlbmRpZgorICAgICAgICAgcmVjdCA9IGRpc3BsYXkuZ2V0X21v bml0b3JfZ2VvbWV0cnkoaW5kZXgpOworICAgICAgICAgYWN0b3Iuc2V0X3NpemUocmVjdC53aWR0 aCwgcmVjdC5oZWlnaHQpOworICAgICAgICAgYWN0b3Iuc2V0KCJvcGFjaXR5IiwgMCk7CitAQCAt MjIxLDEzICsyMjYsMjEgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZUJhY2tncm91bmQgOiBDbHV0dGVy LkFjdG9yCisgICAgICAgICBzaGFkaW5nX2RpcmVjdGlvbiA9IChHRGVza3RvcC5CYWNrZ3JvdW5k U2hhZGluZylzZXR0aW5ncy5nZXRfZW51bShDT0xPUl9TSEFESU5HX1RZUEVfS0VZKTsKKyAgICAg ICAgIHZhciBjb2xvcl9zdHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5nKFBSSU1BUllfQ09MT1JfS0VZ KTsKKyAgICAgICAgIGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsK KysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgICAgIHByaW1hcnlfY29sb3IgPSBDbHV0dGVy LkNvbG9yLmZyb21fc3RyaW5nKGNvbG9yX3N0cik7CisrI2Vsc2UKKysgICAgICAgICAgICBDbHV0 dGVyLkNvbG9yLmZyb21fc3RyaW5nKG91dCBwcmltYXJ5X2NvbG9yLCBjb2xvcl9zdHIpOworKyNl bmRpZgorICAgICAgICAgICAgIGNvbG9yX3N0ciA9IG51bGw7CisgICAgICAgICB9CisgCisgICAg ICAgICBjb2xvcl9zdHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5nKFNFQ09OREFSWV9DT0xPUl9LRVkp OworICAgICAgICAgaWYgKGNvbG9yX3N0ciAhPSBudWxsICYmIGNvbG9yX3N0ciAhPSAiIikgewor KyNpZiBIQVZFX01VVFRFUl82CisgICAgICAgICAgICAgc2Vjb25kYXJ5X2NvbG9yID0gQ2x1dHRl ci5Db2xvci5mcm9tX3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAgICAgICAgQ2x1 dHRlci5Db2xvci5mcm9tX3N0cmluZyhvdXQgc2Vjb25kYXJ5X2NvbG9yLCBjb2xvcl9zdHIpOwor KyNlbmRpZgorICAgICAgICAgICAgIGNvbG9yX3N0ciA9IG51bGw7CisgICAgICAgICB9CisgCitk aWZmIC0tZ2l0IHNyYy93bS9tZXNvbi5idWlsZCBzcmMvd20vbWVzb24uYnVpbGQKK2luZGV4IGUz OWI4Njc4Li41ODNjZTc5MCAxMDA2NDQKKy0tLSBzcmMvd20vbWVzb24uYnVpbGQKKysrKyBzcmMv d20vbWVzb24uYnVpbGQKK0BAIC0xNywyMCArMTcsMTggQEAgYnVkZ2llX3dtX3NvdXJjZXMgPSBb CisgCisgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgPSBbXQorIAorLXZhcGlfbXV0dGVyID0g J2xpYm11dHRlci0zJworLWRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItMycsIHZl cnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorLWlmIG5vdCBk ZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRl ci00JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDogZmFsc2UpCisr ZGVwX2dyYXBoZW5lID0gZGVwZW5kZW5jeSgnZ3JhcGhlbmUtZ29iamVjdC0xLjAnLCB2ZXJzaW9u OiAnPj0gMS4xMCcpCisrZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci03JywgdmVy c2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDogZmFsc2UpCisraWYgZGVwX211 dHRlci5mb3VuZCgpCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAn SEFWRV9NVVRURVJfNyddCisrICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNyBBQkkg ZnJvbSBHTk9NRSAzLjM4JykKKysgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTcnCisrZWxz ZQorKyAgICBkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTYnLCB2ZXJzaW9uOiBn bm9tZV9taW5pbXVtX3ZlcnNpb24pCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9 IFsnLUQnLCAnSEFWRV9NVVRURVJfNiddCisgICAgIGlmIGRlcF9tdXR0ZXIuZm91bmQoKQorLSAg ICAgICAgbWVzc2FnZSgnVXNpbmcgbmV3IGxpYm11dHRlci00IEFCSSBmcm9tIEdOT01FIDMuMzIn KQorLSAgICAgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTQnCistICAgIGVsc2UKKy0gICAg ICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNScsIHZlcnNpb246IGdub21l X21pbmltdW1fdmVyc2lvbikKKy0gICAgICAgIGlmIGRlcF9tdXR0ZXIuZm91bmQoKQorLSAgICAg ICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNSBBQkkgZnJvbSBHTk9NRSAzLjM0 JykKKy0gICAgICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNScKKy0gICAgICAgICAg ICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVSXzUnXQor LSAgICAgICAgZW5kaWYKKysgICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNiBB QkkgZnJvbSBHTk9NRSAzLjM2JykKKysgICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci02 JworICAgICBlbmRpZgorIGVuZGlmCisgCitAQCAtNDIsOCArNDAsOCBAQCBidWRnaWVfd21fZGVw cyA9IFsKKyAgICAgZGVwX2lidXMsCisgXQorIAorLWlmIGRlcF9nc2QudmVyc2lvbigpLnZlcnNp b25fY29tcGFyZSgnPj0zLjMxLjkxJykKKy0gICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3Mg Kz0gWyctRCcsICdIQVZFX0dTRF8zMzInXQorK2lmIGRlcF9nc2QudmVyc2lvbigpLnZlcnNpb25f Y29tcGFyZSgnPj0zLjM2LjAnKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBb Jy1EJywgJ0hBVkVfR1NEX1NVUFBPUlRFRCddCisgZW5kaWYKKyAKKyBidWRnaWVfd21fdmFsYV9h cmdzID0gIFsKK0BAIC02MCw3ICs1OCw3IEBAIGJ1ZGdpZV93bV92YWxhX2FyZ3MgPSAgWworIAor IHJwYXRoID0gJycKKyAKKy1pZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUo Jz49My4yOC4wJykKKytpZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49 My4zNi4wJykKKyAgICAgcnBhdGggPSBkZXBfbXV0dGVyLmdldF9wa2djb25maWdfdmFyaWFibGUo J3R5cGVsaWJkaXInKQorICAgICBidWRnaWVfd21fdmFsYV9hcmdzICs9IFsnLS1naXJkaXInLCBy cGF0aF0KKyBlbmRpZgorZGlmZiAtLWdpdCBzcmMvd20vc2hpbS52YWxhIHNyYy93bS9zaGltLnZh bGEKK2luZGV4IDRjZGZhMGIwLi5mYzI0YjI4OSAxMDA2NDQKKy0tLSBzcmMvd20vc2hpbS52YWxh CisrKysgc3JjL3dtL3NoaW0udmFsYQorQEAgLTE0LDcgKzE0LDcgQEAgbmFtZXNwYWNlIEJ1ZGdp ZSB7CisgcHVibGljIHN0cnVjdCBHc2RBY2NlbCB7CisgICAgIHN0cmluZyBhY2NlbGVyYXRvcjsK KyAgICAgdWludCBmbGFnczsKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVfR1NEX1NVUFBP UlRFRAorICAgICBNZXRhLktleUJpbmRpbmdGbGFncyBncmFiX2ZsYWdzOworICNlbmRpZgorIH0K K0BAIC0xOTMsMTEgKzE5Myw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9iamVj dAorICAgICAgICAgb3NkX3Byb3h5ID0gbnVsbDsKKyAgICAgfQorIAorLSNpZiBIQVZFX01VVFRF Ul81CisgICAgIHByaXZhdGUgdm9pZCBvbl9hY2NlbGVyYXRvcl9hY3RpdmF0ZWQodWludCBhY3Rp b24sIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2LCB1aW50IGRldmljZV9pZCkKKy0jZWxzZQorLSAg ICBwcml2YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0aW9uLCB1aW50 IGRldmljZV9pZCkKKy0jZW5kaWYKKyAgICAgeworICAgICAgICAgSGFzaFRhYmxlPHN0cmluZyxW YXJpYW50PiBwYXJhbXMgPSBuZXcgSGFzaFRhYmxlPHN0cmluZyxWYXJpYW50PihzdHJfaGFzaCwg c3RyX2VxdWFsKTsKKyAKK0BAIC0yMzAsNyArMjI2LDcgQEAgcHVibGljIGNsYXNzIFNoZWxsU2hp bSA6IEdMaWIuT2JqZWN0CisgICAgICAgICB9CisgICAgIH0KKyAKKy0jaWYgSEFWRV9HU0RfMzMy CisrI2lmIEhBVkVfR1NEX1NVUFBPUlRFRAorICAgICBwcml2YXRlIHVpbnQgX2dyYWIoc3RyaW5n IHNlbmRlciwgc3RyaW5nIHNlcSwgdWludCBmbGFnLCBNZXRhLktleUJpbmRpbmdGbGFncyBncmFi X2ZsYWdzKQorICAgICB7CisgICAgICAgICB2YXIgcmV0ID0gZGlzcGxheS5ncmFiX2FjY2VsZXJh dG9yKHNlcSwgZ3JhYl9mbGFncyk7CitAQCAtMjczLDcgKzI2OSw3IEBAIHB1YmxpYyBjbGFzcyBT aGVsbFNoaW0gOiBHTGliLk9iamVjdAorICAgICAgICAgICAgIG9uX2J1c19hY3F1aXJlZCwgbnVs bCwgbnVsbCk7CisgICAgIH0KKyAKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVfR1NEX1NV UFBPUlRFRAorICAgICBwdWJsaWMgdWludCBHcmFiQWNjZWxlcmF0b3IoQnVzTmFtZSBzZW5kZXIs IHN0cmluZyBhY2NlbGVyYXRvciwgdWludCBmbGFncywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3Jh Yl9mbGFncykKKyAgICAgeworICAgICAgICAgcmV0dXJuIF9ncmFiKHNlbmRlciwgYWNjZWxlcmF0 b3IsIGZsYWdzLCBncmFiX2ZsYWdzKTsKK2RpZmYgLS1naXQgc3JjL3dtL3dtLnZhbGEgc3JjL3dt L3dtLnZhbGEKK2luZGV4IGZlZTg5NDQzLi5iY2NmM2I5NSAxMDA2NDQKKy0tLSBzcmMvd20vd20u dmFsYQorKysrIHNyYy93bS93bS52YWxhCitAQCAtMTM3LDggKzEzNyw4IEBAIHB1YmxpYyBjbGFz cyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nW10/IG9s ZF9hcmdzOworICAgICBwdWJsaWMgc3RhdGljIGJvb2wgd2F5bGFuZCA9IGZhbHNlOworIAorLSAg ICBzdGF0aWMgQ2x1dHRlci5Qb2ludCBQVl9DRU5URVI7CistICAgIHN0YXRpYyBDbHV0dGVyLlBv aW50IFBWX05PUk07CisrICAgIHN0YXRpYyBHcmFwaGVuZS5Qb2ludCBQVl9DRU5URVI7CisrICAg IHN0YXRpYyBHcmFwaGVuZS5Qb2ludCBQVl9OT1JNOworIAorICAgICBwcml2YXRlIE1ldGEuQmFj a2dyb3VuZEdyb3VwPyBiYWNrZ3JvdW5kX2dyb3VwOworIAorQEAgLTE3MSwxMCArMTcxLDEwIEBA IHB1YmxpYyBjbGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICAgICAgbGljZW5z ZSA9ICJHUEwtMi4wIiwKKyAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJCdWRnaWUgV2luZG93 IE1hbmFnZXIiCisgICAgICAgICB9OworLSAgICAgICAgUFZfQ0VOVEVSID0gQ2x1dHRlci5Qb2lu dC5hbGxvYygpOworKyAgICAgICAgUFZfQ0VOVEVSID0gR3JhcGhlbmUuUG9pbnQoKTsKKysgICAg ICAgIFBWX05PUk0gPSBHcmFwaGVuZS5Qb2ludCgpOworICAgICAgICAgUFZfQ0VOVEVSLnggPSAw LjVmOworICAgICAgICAgUFZfQ0VOVEVSLnkgPSAwLjVmOworLSAgICAgICAgUFZfTk9STSA9IENs dXR0ZXIuUG9pbnQuYWxsb2MoKTsKKyAgICAgICAgIFBWX05PUk0ueCA9IDAuMGY7CisgICAgICAg ICBQVl9OT1JNLnkgPSAwLjBmOworICAgICB9CitAQCAtMTAwMSw3ICsxMDAxLDcgQEAgcHVibGlj IGNsYXNzIEJ1ZGdpZVdNIDogTWV0YS5QbHVnaW4KKyAgICAgICAgIHRpbGVfcHJldmlldy5zZXQo InNjYWxlLXgiLCBOT1RJRklDQVRJT05fTUFQX1NDQUxFX1gsICJzY2FsZS15IiwgTk9USUZJQ0FU SU9OX01BUF9TQ0FMRV9ZLAorICAgICAgICAgICAgICJwaXZvdC1wb2ludCIsIFBWX0NFTlRFUik7 CisgCistICAgICAgICB0aWxlX3ByZXZpZXcubG93ZXIod2luX2FjdG9yKTsKKysgICAgICAgIC8v dGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisgICAgICAgICB0aWxlX3ByZXZpZXcudGls ZV9yZWN0ID0gdGlsZV9yZWN0OworIAorICAgICAgICAgdGlsZV9wcmV2aWV3LnNob3coKTsKK2Rp ZmYgLS1naXQgdmFwaS9DbHV0dGVyLTUubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTYubWV0YWRhdGEK K3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9DbHV0dGVyLTUubWV0YWRh dGEKK3JlbmFtZSB0byB2YXBpL0NsdXR0ZXItNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBpL0Ns dXR0ZXItNC5tZXRhZGF0YSB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRl eCA3OCUKK3JlbmFtZSBmcm9tIHZhcGkvQ2x1dHRlci00Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFw aS9DbHV0dGVyLTcubWV0YWRhdGEKK2luZGV4IDVjMjEyZTg1Li4xODU1Mjc0ZCAxMDA2NDQKKy0t LSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YQorKysrIHZhcGkvQ2x1dHRlci03Lm1ldGFkYXRhCitA QCAtMSwxMyArMSwxMCBAQAorIC8vIE5vbiBtaW5pLW9iamVjdAorIEFjdG9yQm94IHN0cnVjdAor IENvbG9yIHN0cnVjdAorLUZvZyBzdHJ1Y3QKKy1HZW9tZXRyeSBzdHJ1Y3QKKyBLbm90IHN0cnVj dAorIFBhdGhOb2RlIHN0cnVjdAorIFBlcnNwZWN0aXZlIHN0cnVjdAorIFVuaXRzIHN0cnVjdAor LVZlcnRleCBzdHJ1Y3QKKyAKKyAqLnJlZiB1bm93bmVkCisgCitAQCAtMTcsNyArMTQsNiBAQCBp bml0X3dpdGhfYXJncworIEFjdG9yCisgCS5hcHBseV90cmFuc2Zvcm0ubWF0cml4IHJlZgorIAku Z2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQorLQkuZ2V0X2FsbG9j YXRpb25fdmVydGljZXMudmVydHMgb3V0PWZhbHNlCisgQ2FudmFzCisgCS5uZXcgc3ltYm9sX3R5 cGU9ImNvbnN0cnVjdG9yIgorIEV2ZW50LnR5cGUjbWV0aG9kIG5hbWU9ImdldF90eXBlIgorQEAg LTI3LDcgKzIzLDYgQEAgSW1hZ2UKKyAvLyA/Pz8KKyBBY3Rvci5oYXNfcG9pbnRlciNtZXRob2Qg bmFtZT0iZ2V0X2hhc19wb2ludGVyIgorIEluaXRFcnJvciBlcnJvcmRvbWFpbj1mYWxzZQorLXJl ZHJhdyBza2lwCisgCisgLy8gTm90IGFsbCBiYWNraW5nIHN5bWJvbHMgYXJlIGRlcHJlY2F0ZWQK KyBBY3Rvci5waWNrIGRlcHJlY2F0ZWQ9ZmFsc2UKK0BAIC01NSw3ICs1MCw2IEBAIENvbnRhaW5l cgorIAkubG93ZXIgdmlydHVhbAorIAkucmFpc2UgdmlydHVhbAorIAkuKl9jaGlsZF9tZXRhI3Zp cnR1YWxfbWV0aG9kIHZpcnR1YWwKKy0JLmZvcmVhY2hfd2l0aF9pbnRlcm5hbHMjdmlydHVhbF9t ZXRob2QgdmlydHVhbAorIAorIC8vIERlZmF1bHQgdmFsdWVzCisgQ29udGFpbmVyCitAQCAtNzAs MzIgKzY0LDIxIEBAIFRleHQKKyAvLyBSZXBhcmVudGVkIGZ1bmNzIG1ldGhvZHMgY2FuJ3QgYmUg aW5zdGFuY2UgbWV0aG9kcworIGZlYXR1cmVfYXZhaWxhYmxlIHNraXAKKyBmZWF0dXJlX2dldF9h bGwgc2tpcAorLUZlYXR1cmVGbGFncy50ZXh0dXJlX25wb3Qgc2tpcAorIAorIC8vIFNraXBwZWQg YnkgZy1pIGZvciB1bmtub3duIHJlYXNvbnMKKyBMYXlvdXRNYW5hZ2VyCisgCS5jcmVhdGVfY2hp bGRfbWV0YSBza2lwPWZhbHNlCistTW9kZWwKKy0JLmluc2VydF9yb3cgc2tpcD1mYWxzZQorIAor IC8vIFZhcmlhZGljIGFyZ3VtZW50cworLUFjdG9yCistCS5hbmltYXRlIHNraXA9ZmFsc2UKKy0J LmFuaW1hdGVfd2l0aF9hbHBoYSBza2lwPWZhbHNlCistCS5hbmltYXRlX3dpdGhfdGltZWxpbmUg c2tpcD1mYWxzZQorLUFuaW1hdG9yCistCS5zZXQgc2tpcD1mYWxzZQorIEJveAorIAkucGFjayBz a2lwPWZhbHNlCisgCS5wYWNrX2FmdGVyIHNraXA9ZmFsc2UKKyAJLnBhY2tfYXQgc2tpcD1mYWxz ZQorIAkucGFja19iZWZvcmUgc2tpcD1mYWxzZQorIENvbnRhaW5lcgorLQkuYWRkX3ZhbGlzdCBz a2lwPWZhbHNlCisgCS5jaGlsZF9nZXQgc2tpcD1mYWxzZQorIAkuY2hpbGRfc2V0IHNraXA9ZmFs c2UKKyAJLnJlbW92ZSBza2lwPWZhbHNlCistCS5yZW1vdmVfdmFsaXN0IHNraXA9ZmFsc2UKKyBJ bnRlcnZhbAorIAkubmV3IHNraXA9ZmFsc2UKKyAJLmdldF9pbnRlcnZhbCBza2lwPWZhbHNlCitA QCAtMTA1LDE1ICs4OCw2IEBAIEludGVydmFsCisgTGF5b3V0TWFuYWdlcgorIAkuY2hpbGRfZ2V0 IHNraXA9ZmFsc2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNlCistTGlzdE1vZGVsCistCS5uZXcg c2tpcD1mYWxzZQorLU1vZGVsCistCS5hcHBlbmQgc2tpcD1mYWxzZQorLQkuaW5zZXJ0IHNraXA9 ZmFsc2UKKy0JLnByZXBlbmQgc2tpcD1mYWxzZQorLU1vZGVsSXRlcgorLQkuZ2V0IHNraXA9ZmFs c2UKKy0JLnNldCBza2lwPWZhbHNlCisgU2NyaXB0CisgCS5nZXRfb2JqZWN0cyBza2lwPWZhbHNl CisgCitAQCAtMTIyLDE3ICs5NiwxMSBAQCBUZXh0dXJlCisgCS5uZXdfZnJvbV9maWxlIHRocm93 cz0iQ2x1dHRlci5UZXh0dXJlRXJyb3IiCisgCisgLy8gU2tpcHBlZCB1cHN0cmVhbSBmb3IgdW5r bm93biByZWFzb25zCistQWxwaGEucmVnaXN0ZXJfZnVuYyBza2lwPWZhbHNlCistVGltZW91dFBv b2wgc2tpcD1mYWxzZQorIEludGVydmFsLnJlZ2lzdGVyX3Byb2dyZXNzX2Z1bmMgc2tpcD1mYWxz ZQorLWZyYW1lX3NvdXJjZV8qIHNraXA9ZmFsc2UKKyBnZXRfb3B0aW9uX2dyb3VwIHNraXA9ZmFs c2UKKyBnZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCBza2lwPWZhbHNlCistdGhyZWFkc19h ZGRfZnJhbWVfc291cmNlIHNraXA9ZmFsc2UKKy10aHJlYWRzX2FkZF9mcmFtZV9zb3VyY2VfZnVs bCBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfaWRsZSBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRf aWRsZV9mdWxsIHNraXA9ZmFsc2UKKy10aHJlYWRzX3NldF9sb2NrX2Z1bmN0aW9ucyBza2lwPWZh bHNlCisgdGhyZWFkc19hZGRfdGltZW91dCBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfdGltZW91 dF9mdWxsIHNraXA9ZmFsc2UKKyAKK0BAIC0xNDMsMTUgKzExMSwxMiBAQCBBY3RvckJveAorIFVu aXRzLmZyb21fKiBza2lwCisgQ29sb3IKKyAJLm5ldyBza2lwCistVmVydGV4Lm5ldyBza2lwCisg CisgLy8gQ2xhc3MgbWV0aG9kcworIGNvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5 IHNraXAKKyBjb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIHNraXAKKyAKKyAv LyBNb3ZlIHN5bWJvbHMKKy1nZXRfYWN0b3JfYnlfZ2lkIHBhcmVudD0iQ2x1dHRlci5BY3RvciIg bmFtZT0iZ2V0X2J5X2dpZCIKKy1nZXRfaW5wdXRfZGV2aWNlX2Zvcl9pZCBwYXJlbnQ9IkNsdXR0 ZXIuSW5wdXREZXZpY2UiIG5hbWU9ImdldF9mb3JfaWQiCisgdW5pdHNfZnJvbV8qIHNraXAKKyAK KyAvLyBDbGFzc2VzIG1hcmtlZCBhcyBvdXQgYnV0IG5vdCBkb3VibGUgcHRyCitAQCAtMjAyLDIz ICsxNjcsMTUgQEAgUEFUSF9SRUxBVElWRSBza2lwPWZhbHNlCisgUFJJT1JJVFlfUkVEUkFXIHNr aXA9ZmFsc2UKKyAKKyAvLyBDbHV0dGVyIGRldnMgZG9uJ3QgbGlrZSB1cyBjcmVhdGluZyBuZXN0 ZWQgbmFtZXNwYWNlcworLWZyYW1lX3NvdXJjZV8qIG5hbWU9ImZyYW1lX3NvdXJjZV8oLispIiBw YXJlbnQ9IkNsdXR0ZXIuRnJhbWVTb3VyY2UiCisgdmFsdWVfKiBuYW1lPSJ2YWx1ZV8oLispIiBw YXJlbnQ9IkNsdXR0ZXIuVmFsdWUiCisgdGhyZWFkc18qIG5hbWU9InRocmVhZHNfKC4rKSIgcGFy ZW50PSJDbHV0dGVyLlRocmVhZHMiCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlIG5hbWU9ImFk ZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuRnJhbWVTb3VyY2UiCistdGhyZWFkc19hZGRfZnJh bWVfc291cmNlX2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLkZy YW1lU291cmNlIgorIHRocmVhZHNfYWRkX2lkbGUgbmFtZT0iYWRkIiBwYXJlbnQ9IkNsdXR0ZXIu VGhyZWFkcy5JZGxlIgorIHRocmVhZHNfYWRkX2lkbGVfZnVsbCBuYW1lPSJhZGRfZnVsbCIgcGFy ZW50PSJDbHV0dGVyLlRocmVhZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF90aW1lb3V0IG5hbWU9ImFk ZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuVGltZW91dCIKKyB0aHJlYWRzX2FkZF90aW1lb3V0 X2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLlRpbWVvdXQiCist dXRpbF9uZXh0X3AyIG5hbWU9Im5leHRfcG93ZXJfb2ZfMiIgcGFyZW50PSJDbHV0dGVyLlV0aWwi CisgCisgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyBDb2xvci5hbGxvYyBzeW1ib2xfdHlw ZT0iZnVuY3Rpb24iCistUG9pbnQuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVJlY3Qu YWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVNpemUuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1 bmN0aW9uIgorLVZlcnRleC5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCisgCisgQmluQWxp Z25tZW50IGRlcHJlY2F0ZWQ9ZmFsc2UgZGVwcmVjYXRlZF9zaW5jZT1udWxsCisgQmluQWxpZ25t ZW50LiogZGVwcmVjYXRlZAorZGlmZiAtLWdpdCB2YXBpL0NvZ2wtNC5tZXRhZGF0YSB2YXBpL0Nv Z2wtNi5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL0Nv Z2wtNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ29nbC02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0 IHZhcGkvQ29nbC01Lm1ldGFkYXRhIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGlu ZGV4IDkxJQorcmVuYW1lIGZyb20gdmFwaS9Db2dsLTUubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBp L0NvZ2wtNy5tZXRhZGF0YQoraW5kZXggMDkyYjVlMjkuLmU1MmJmYTM1IDEwMDY0NAorLS0tIHZh cGkvQ29nbC01Lm1ldGFkYXRhCisrKysgdmFwaS9Db2dsLTcubWV0YWRhdGEKK0BAIC05LDEyICs5 LDEwIEBAIGNyZWF0ZV9zaGFkZXIgc2tpcAorIAorIAorIGlzX2JpdG1hcCBza2lwCistaXNfbWF0 ZXJpYWwgc2tpcAorIGlzX29mZnNjcmVlbiBza2lwCisgaXNfcHJvZ3JhbSBza2lwCisgaXNfc2hh ZGVyIHNraXAKKyBpc190ZXh0dXJlIHNraXAKKy1pc192ZXJ0ZXhfYnVmZmVyIHNraXAKKyAKKyBN YXRyaXggc3RydWN0CisgICAuZ2V0X2FycmF5IGFycmF5PXRydWUgYXJyYXlfbGVuZ3RoX2lkeD0t MQorZGlmZiAtLWdpdCB2YXBpL01ldGEtMy5tZXRhZGF0YSB2YXBpL01ldGEtMy5tZXRhZGF0YQor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAzNzBkNDk5Ni4uMDAwMDAwMDAKKy0tLSB2 YXBpL01ldGEtMy5tZXRhZGF0YQorKysrIC9kZXYvbnVsbAorQEAgLTEsNjYgKzAsMCBAQAorLUJh Y2tlbmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tlbmQuaCIKKy1CYWNrZ3JvdW5k IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiCistQmFja2dyb3VuZEFj dG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiCistQmFj a2dyb3VuZEdyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgiCistQmFja2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCIKKy1EaXNwbGF5IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvZGlzcGxh eS5oIgorLU1ldGEgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tYWluLmgiCistTW9uaXRvck1hbmFn ZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIgorLVJlY3Rh bmdsZSBzdHJ1Y3QKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5o IgorLVBsdWdpbkluZm8gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorLXBy ZWZzXyogY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJlbnQ9Ik1ldGEuUHJlZnMi CistYWRkX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistZGVidWdfc3Bld19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90 cmFwX3BvcCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CisteDExX2Vycm9yX3RyYXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCisteDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1leHRlcm5hbF9iaW5k aW5nX25hbWVfZm9yX2FjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhfc3RybmR1cCBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ2V0X2xvY2FsZV9k aXJlY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLWdldF9vdmVybGF5X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCistZ3Jhdml0eV90b19zdHJpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX2RlYnVnZ2luZyBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfc3luY2luZyBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfdmVyYm9zZSBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfd2F5 bGFuZF9jb21wb3NpdG9yIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy1sYXRlcl9hZGQgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLWxhdGVyX3JlbW92ZSBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistcG9wX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXB1c2hfbm9fbXNnX3ByZWZpeCBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcmVjdCBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcmVtb3Zl X3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy10b3BpY19yZWFsIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy11bnNpZ25lZF9sb25nX2Vx dWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy11 bnNpZ25lZF9sb25nX2hhc2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLXZlcmJvc2VfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistd2FybmluZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistc2hvd19kaWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9zdGFnZV9mb3JfZGlzcGxheSBwYXJl bnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIgorLWdldF93aW5kb3dfYWN0b3JzIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X3dpbmRvd19ncm91 cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNw bGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiCistZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0i TWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiCistZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3Np dG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW5hYmxl X3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVn aW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5D b21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCist Zm9jdXNfc3RhZ2Vfd2luZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBwYXJlbnQ9 Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIgorLWtleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEuS2V5Qmlu ZGluZyIgbmFtZT0ic2V0X2N1c3RvbV9oYW5kbGVyIgorLUtleUhhbmRsZXJGdW5jLmV2ZW50IHR5 cGU9IkNsdXR0ZXIuS2V5RXZlbnQ/IgorLWdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5CYWNrZW5k IgorLVdpbmRvdy5mb2N1cyNzaWduYWwgc2tpcD10cnVlCistV2luZG93LmdldF94d2luZG93IHNr aXA9ZmFsc2UKKy1nZXRfb3B0aW9uX2NvbnRleHQgc2tpcD1mYWxzZQorLXNldF9nbm9tZV93bV9r ZXliaW5kaW5ncyBza2lwPWZhbHNlCistc2V0X3dtX25hbWUgc2tpcD1mYWxzZQorLWluaXQgc2tp cD1mYWxzZQorLXJ1biBza2lwPWZhbHNlCistc2hvd19kaWFsb2cgc2tpcD1mYWxzZQorLWdldF9i YWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCitkaWZmIC0tZ2l0 IHZhcGkvTWV0YS01Lm1ldGFkYXRhIHZhcGkvTWV0YS02Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGlu ZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvTWV0YS01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFw aS9NZXRhLTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9NZXRhLTQubWV0YWRhdGEgdmFwaS9N ZXRhLTcubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggNzYlCityZW5hbWUgZnJvbSB2YXBpL01l dGEtNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvTWV0YS03Lm1ldGFkYXRhCitpbmRleCBhZTJh NzgxNy4uNzI2MjlmYmEgMTAwNjQ0CistLS0gdmFwaS9NZXRhLTQubWV0YWRhdGEKKysrKyB2YXBp L01ldGEtNy5tZXRhZGF0YQorQEAgLTEsMjYgKzEsMjEgQEAKKyBCYWNrZW5kIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCisgQmFja2dyb3VuZCBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtYmFja2dyb3VuZC5oIgorIEJhY2tncm91bmRBY3RvciBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorK0JhY2tncm91bmRDb250ZW50IGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWNvbnRlbnQuaCIKKyBCYWNrZ3Jv dW5kR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIK KyBCYWNrZ3JvdW5kSW1hZ2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCIKKyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oIgorIEJhcnJpZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9i YXJyaWVyLmgiCisgQmFycmllckV2ZW50IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYmFycmllci5o IgorLUJveGVzIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYm94ZXMuaCIKKyBDbG9zZURpYWxvZyBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiCistQ29tcG9zaXRvciBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3IuaCIKKy1Db21wb3NpdG9yTXV0dGVyIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBDdXJzb3JUcmFja2Vy IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oIgorIERpc3BsYXkg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9kaXNwbGF5LmgiCisgRG5kIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvbWV0YS1kbmQuaCIKKy1Hcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2dyb3VwLmgi CisgSWRsZU1vbml0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o IgorIEluaGliaXRTaG9ydGN1dHNEaWFsb2cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oIgorLUtleWJpbmRpbmdzIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEva2V5YmluZGluZ3MuaCIKKyBMYXVuY2hDb250ZXh0IGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oIgorIE1ldGEgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9t YWluLmgiCisgTW9uaXRvck1hbmFnZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oIgorLVBsdWdpbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcGx1Z2lu LmgiCisgUHJlZmVyZW5jZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3ByZWZzLmgiCisgUmVtb3Rl QWNjZXNzQ29udHJvbGxlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgiCisgUmVtb3RlQWNjZXNzSGFuZGxlIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCIKK0BAIC0zMSw5ICsyNiw3IEBAIFNv dW5kUGxheWVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCIKKyBT dGFnZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhZ2UuaCIKKyBTdGFydHVwTm90aWZp Y2F0aW9uIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o IgorIFRoZW1lIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdGhlbWUuaCIKKy1UeXBlcyBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3R5cGVzLmgiCistVXRpbCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy1WZXJzaW9uIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS12ZXJzaW9uLmgiCisr V2F5bGFuZENsaWVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2F5bGFuZC1jbGllbnQu aCIKKyBXaW5kb3cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS93aW5kb3cuaCIKKyBXaW5kb3dBY3Rv ciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2luZG93LWFjdG9yLmgiCisgV2luZG93R3Jv dXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIgorQEAgLTQ2LDE3 ICszOSwxMSBAQCBQbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgor IFBsdWdpbkluZm8gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorIHByZWZz XyogY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJlbnQ9Ik1ldGEuUHJlZnMiCisg YWRkX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistZGVidWdfc3Bld19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFw X3BvcCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisg eDExX2Vycm9yX3RyYXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCisgeDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBleHRlcm5hbF9iaW5kaW5n X25hbWVfZm9yX2FjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhfc3RybmR1cCBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZ2V0X2xvY2FsZV9kaXJl Y3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LWdldF9vdmVybGF5X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCisgZ3Jhdml0eV90b19zdHJpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX2RlYnVnZ2luZyBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgaXNfc3luY2luZyBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCitAQCAtNjgsMTMgKzU1LDgg QEAgcG9wX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorIHB1c2hfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgcmVjdCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgcmVtb3ZlX3ZlcmJvc2VfdG9waWMgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNldF9zdGFnZV9p bnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy10b3BpY19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKyB1bnNpZ25lZF9sb25nX2VxdWFsIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB1bnNpZ25lZF9sb25nX2hhc2ggcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXZlcmJvc2Vf cmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist d2FybmluZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi Cisgc2hvd19kaWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorIGdldF9zdGFnZV9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGdldF93aW5kb3df YWN0b3JzIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiCitAQCAtODMsMTAgKzY1LDcgQEAgZ2V0X3RvcF93aW5kb3dfZ3Jv dXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEKKyBnZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBv c2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBkaXNh YmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBlbmFibGVfdW5yZWRpcmVj dF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50 PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNvbXBvc2l0b3Ii IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBmb2N1c19zdGFn ZV93aW5kb3cgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zdGFnZV9pc19mb2N1c2VkIHBhcmVudD0iTWV0YS5Db21w b3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisga2V5 YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIHBhcmVudD0iTWV0YS5LZXlCaW5kaW5nIiBuYW1l PSJzZXRfY3VzdG9tX2hhbmRsZXIiCisgS2V5SGFuZGxlckZ1bmMuZXZlbnQgdHlwZT0iQ2x1dHRl ci5LZXlFdmVudD8iCisgZ2V0X2JhY2tlbmQgcGFyZW50PSJNZXRhLkJhY2tlbmQiCitkaWZmIC0t Z2l0IHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2ggdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFw aS5zaAoraW5kZXggNmIwNzAyNDAuLmIyMzNlNTg2IDEwMDc1NQorLS0tIHZhcGkvZ2VuZXJhdGUt bXV0dGVyLXZhcGkuc2gKKysrKyB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoCitAQCAtMSw3 ICsxLDcgQEAKKyAjIS9iaW4vYmFzaAorIHNldCAteGUKKyAKKy12ZXJzaW9uPSR7MS00fQorK3Zl cnNpb249JHs2LTd9CisgZ2lyZGlyPSQocGtnLWNvbmZpZyBsaWJtdXR0ZXItJHZlcnNpb24gLS12 YXJpYWJsZT1naXJkaXIpCisgCisgY2QgJChkaXJuYW1lICQwKQorZGlmZiAtLWdpdCB2YXBpL2dy YXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjY5ODAxNTM1CistLS0gL2Rldi9u dWxsCisrKysgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCitAQCAtMCwwICsxLDY5MSBA QAorKy8qIGdyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRv IG5vdCBtb2RpZnkuICovCisrCisrW0NDb2RlIChjcHJlZml4ID0gIkdyYXBoZW5lIiwgZ2lyX25h bWVzcGFjZSA9ICJHcmFwaGVuZSIsIGdpcl92ZXJzaW9uID0gIjEuMCIsIGxvd2VyX2Nhc2VfY3By ZWZpeCA9ICJncmFwaGVuZV8iKV0KKytuYW1lc3BhY2UgR3JhcGhlbmUgeworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVf Ym94X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2JveF9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgQm94IHsKKysJCXB1YmxpYyBib29s IGNvbnRhaW5zX2JveCAoR3JhcGhlbmUuQm94IGIpOworKwkJcHVibGljIGJvb2wgY29udGFpbnNf cG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLkJveD8gZW1wdHkgKCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUu Qm94IGIpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmQgKEdyYXBoZW5lLlBvaW50M0Qg cG9pbnQpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmRfc2NhbGFyIChmbG9hdCBzY2Fs YXIpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmRfdmVjMyAoR3JhcGhlbmUuVmVjMyB2 ZWMpOworKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSBnZXRfYm91bmRpbmdfc3BoZXJlICgpOwor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2NlbnRlciAoKTsKKysJCXB1YmxpYyBmbG9h dCBnZXRfZGVwdGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludDNEIGdldF9tYXggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQz RCBnZXRfbWluICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3NpemUgKCk7CisrCQlw dWJsaWMgdm9pZCBnZXRfdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBy ZWYgR3JhcGhlbmUuVmVjMyB2ZXJ0aWNlc1s4XSk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRo ICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5maW5pdGUgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/ IG1pbiwgR3JhcGhlbmUuUG9pbnQzRD8gbWF4KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LkJveD8gaW5pdF9mcm9tX2JveCAoR3JhcGhlbmUuQm94IHNyYyk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV9wb2ludHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2Nu YW1lID0gIm5fcG9pbnRzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5 cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuUG9pbnQzRFtdIHBvaW50cyk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBtaW4sIEdy YXBoZW5lLlZlYzM/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRf ZnJvbV92ZWN0b3JzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3ZlY3RvcnMiLCBh cnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFw aGVuZS5WZWMzW10gdmVjdG9ycyk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKEdyYXBo ZW5lLkJveCBiLCBvdXQgR3JhcGhlbmUuQm94IHJlcyk7CisrCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgR3JhcGhlbmUuQm94PyBtaW51c19vbmUgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQg R3JhcGhlbmUuQm94PyBvbmUgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu Qm94PyBvbmVfbWludXNfb25lICgpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCB1bmlvbiAoR3Jh cGhlbmUuQm94IGIpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gemVy byAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVj dC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZXVsZXJfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfZXVs ZXJfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMg c3RydWN0IEV1bGVyIHsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5FdWxlciBiKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhh ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRf YmV0YSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X2dhbW1hICgpOworKwkJcHVibGljIEdyYXBoZW5lLkV1bGVyT3JkZXIgZ2V0X29yZGVyICgp OworKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJcHVibGljIGZsb2F0IGdldF95ICgpOwor KwkJcHVibGljIGZsb2F0IGdldF96ICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVs ZXI/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXI/IHNyYyk7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhl bmUuTWF0cml4PyBtLCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fcXVhdGVybmlvbiAoR3JhcGhlbmUuUXVhdGVy bmlvbj8gcSwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9y YWRpYW5zIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBHcmFwaGVuZS5FdWxlck9yZGVyIG9y ZGVyKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fdmVjMyAo R3JhcGhlbmUuVmVjMz8gdiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF93aXRoX29yZGVyIChmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB6LCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5FdWxlciByZW9yZGVyIChHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5NYXRyaXggdG9fbWF0cml4ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHRvX3F1YXRlcm5pb24gKCk7CisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjMyB0b192ZWMzICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9mcnVzdHVt X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2ZydXN0dW1fZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEZydXN0dW0geworKwkJcHVibGlj IGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkZydXN0 dW0gYik7CisrCQlwdWJsaWMgdm9pZCBnZXRfcGxhbmVzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlBsYW5lIHBsYW5lc1s2XSk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0IChHcmFwaGVuZS5QbGFuZSBwMCwgR3JhcGhlbmUuUGxh bmUgcDEsIEdyYXBoZW5lLlBsYW5lIHAyLCBHcmFwaGVuZS5QbGFuZSBwMywgR3JhcGhlbmUuUGxh bmUgcDQsIEdyYXBoZW5lLlBsYW5lIHA1KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkZy dXN0dW0/IGluaXRfZnJvbV9mcnVzdHVtIChHcmFwaGVuZS5GcnVzdHVtIHNyYyk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5N YXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfYm94IChHcmFwaGVuZS5C b3ggYm94KTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfc3BoZXJlIChHcmFwaGVuZS5TcGhl cmUgc3BoZXJlKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUt Z29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfbWF0cml4X3QiLCB0eXBlX2lkID0gImdyYXBo ZW5lX21hdHJpeF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CisrCQlw dWJsaWMgYm9vbCBkZWNvbXBvc2UgKG91dCBHcmFwaGVuZS5WZWMzIHRyYW5zbGF0ZSwgb3V0IEdy YXBoZW5lLlZlYzMgc2NhbGUsIG91dCBHcmFwaGVuZS5RdWF0ZXJuaW9uIHJvdGF0ZSwgb3V0IEdy YXBoZW5lLlZlYzMgc2hlYXIsIG91dCBHcmFwaGVuZS5WZWM0IHBlcnNwZWN0aXZlKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkZXRlcm1pbmFudCAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3Jh cGhlbmUuTWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1Ymxp YyBib29sIGVxdWFsX2Zhc3QgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF9yb3cgKHVpbnQgaW5kZXhf KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfdmFs dWUgKHVpbnQgcm93LCB1aW50IGNvbCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgZ2V0X3hfc2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94X3RyYW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95X3NjYWxlICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV90cmFuc2xhdGlv biAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRf el9zY2FsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxv YXQgZ2V0X3pfdHJhbnNsYXRpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV8yZCAoZG91YmxlIHh4 LCBkb3VibGUgeXgsIGRvdWJsZSB4eSwgZG91YmxlIHl5LCBkb3VibGUgeF8wLCBkb3VibGUgeV8w KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLk1hdHJpeD8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gZmxvYXQgdlsxNl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRy aXggc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgdjAsIEdyYXBo ZW5lLlZlYzQgdjEsIEdyYXBoZW5lLlZlYzQgdjIsIEdyYXBoZW5lLlZlYzQgdjMpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4 PyBpbml0X2ZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZs b2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfaWRlbnRp dHkgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5NYXRyaXg/IGluaXRfbG9va19hdCAoR3JhcGhlbmUuVmVjMyBleWUsIEdyYXBoZW5l LlZlYzMgY2VudGVyLCBHcmFwaGVuZS5WZWMzIHVwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9vcnRobyAoZmxv YXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IHRvcCwgZmxvYXQgYm90dG9tLCBmbG9hdCB6X25l YXIsIGZsb2F0IHpfZmFyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9wZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwg ZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9y b3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3Nj YWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9za2V3IChmbG9h dCB4X3NrZXcsIGZsb2F0IHlfc2tldyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfdHJhbnNsYXRlIChHcmFwaGVu ZS5Qb2ludDNEIHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLk1hdHJpeCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuTWF0cml4IGIsIGRvdWJsZSBmYWN0 b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaW52ZXJz ZSAob3V0IEdyYXBoZW5lLk1hdHJpeCByZXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIGJvb2wgaXNfMmQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgYm9vbCBpc19iYWNrZmFjZV92aXNpYmxlICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfaWRlbnRpdHkgKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc19zaW5ndWxhciAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggbXVsdGlw bHkgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5NYXRyaXggYiwgZmxvYXQgZXBzaWxvbik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IG5v cm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5NYXRyaXggcGVyc3BlY3RpdmUgKGZsb2F0IGRlcHRoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHByaW50ICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHByb2plY3RfcG9pbnQgKEdyYXBo ZW5lLlBvaW50IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdy YXBoZW5lLlF1YWQgcHJvamVjdF9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgcHJvamVjdF9yZWN0X2Jv dW5kcyAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMgYXhpcyk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIg KEdyYXBoZW5lLkV1bGVyIGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVi bGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24gcSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfeCAoZmxvYXQg YW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90 YXRlX3kgKGZsb2F0IGFuZ2xlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyB2b2lkIHJvdGF0ZV96IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgZmFjdG9yX3gsIGZsb2F0IGZhY3Rv cl95LCBmbG9hdCBmYWN0b3Jfeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdm9pZCBza2V3X3h5IChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2tld194eiAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeXogKGZsb2F0IGZhY3Rv cik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCB0b18yZCAo b3V0IGRvdWJsZSB4eCwgb3V0IGRvdWJsZSB5eCwgb3V0IGRvdWJsZSB4eSwgb3V0IGRvdWJsZSB5 eSwgb3V0IGRvdWJsZSB4XzAsIG91dCBkb3VibGUgeV8wKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gcmVmIGZsb2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHRyYW5zZm9ybV9ib3VuZHMgKEdyYXBoZW5lLlJlY3Qg cik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuQm94 IHRyYW5zZm9ybV9ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCB0cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5l LlBvaW50IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50M0QgdHJhbnNmb3JtX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5IHRyYW5zZm9y bV9yYXkgKEdyYXBoZW5lLlJheSByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5RdWFkIHRyYW5zZm9ybV9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSB0 cmFuc2Zvcm1fc3BoZXJlIChHcmFwaGVuZS5TcGhlcmUgcyk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0cmFuc2Zvcm1fdmVjMyAoR3JhcGhl bmUuVmVjMyB2KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWM0IHRyYW5zZm9ybV92ZWM0IChHcmFwaGVuZS5WZWM0IHYpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChHcmFwaGVuZS5Qb2lu dDNEIHBvcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuTWF0cml4IHRyYW5zcG9zZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHVucHJvamVjdF9wb2ludDNkIChHcmFwaGVuZS5NYXRy aXggbW9kZWx2aWV3LCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHVudHJhbnNmb3JtX2JvdW5kcyAo R3JhcGhlbmUuUmVjdCByLCBHcmFwaGVuZS5SZWN0IGJvdW5kcyk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCB1bnRyYW5zZm9ybV9wb2ludCAoR3JhcGhlbmUu UG9pbnQgcCwgR3JhcGhlbmUuUmVjdCBib3VuZHMsIG91dCBHcmFwaGVuZS5Qb2ludCByZXMpOwor Kwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBj bmFtZSA9ICJncmFwaGVuZV9wbGFuZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9wbGFuZV9nZXRf dHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3Qg UGxhbmUgeworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50 KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5QbGFuZSBiKTsKKysJCXB1YmxpYyBm bG9hdCBnZXRfY29uc3RhbnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfbm9ybWFs ICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXQgKEdyYXBoZW5lLlZl YzM/IG5vcm1hbCwgZmxvYXQgY29uc3RhbnQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu UGxhbmU/IGluaXRfZnJvbV9wbGFuZSAoR3JhcGhlbmUuUGxhbmUgc3JjKTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlZlYzMgbm9y bWFsLCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlBsYW5lPyBpbml0X2Zyb21fcG9pbnRzIChHcmFwaGVuZS5Qb2ludDNEIGEsIEdyYXBoZW5lLlBv aW50M0QgYiwgR3JhcGhlbmUuUG9pbnQzRCBjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlBsYW5lPyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMpOworKwkJcHVibGljIEdy YXBoZW5lLlBsYW5lIG5lZ2F0ZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSBub3JtYWxp emUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlBsYW5lIHRyYW5zZm9ybSAoR3JhcGhlbmUuTWF0cml4IG1hdHJpeCwgR3JhcGhlbmUuTWF0cml4 PyBub3JtYWxfbWF0cml4KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcG9pbnRfdCIsIHR5cGVfaWQgPSAi Z3JhcGhlbmVfcG9pbnRfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwlwdWJsaWMgc3RydWN0IFBvaW50IHsKKysJCXB1YmxpYyBmbG9hdCB4OworKwkJcHVibGlj IGZsb2F0IHk7CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50IGIsIG91 dCBmbG9hdCBkX3gsIG91dCBmbG9hdCBkX3kpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBo ZW5lLlBvaW50IGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IGluaXQgKGZs b2F0IHgsIGZsb2F0IHkpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IGluaXRf ZnJvbV9wb2ludCAoR3JhcGhlbmUuUG9pbnQgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zyb21fdmVjMiAo R3JhcGhlbmUuVmVjMiBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGludGVycG9sYXRl IChHcmFwaGVuZS5Qb2ludCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBib29sIG5lYXIg KEdyYXBoZW5lLlBvaW50IGIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgdG9fdmVjMiAoKTsKKysJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVf cG9pbnQzZF90IiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInBvaW50M2QiLCB0eXBlX2lkID0gImdy YXBoZW5lX3BvaW50M2RfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwlwdWJsaWMgc3RydWN0IFBvaW50M0QgeworKwkJcHVibGljIGZsb2F0IHg7CisrCQlwdWJs aWMgZmxvYXQgeTsKKysJCXB1YmxpYyBmbG9hdCB6OworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 M0QgY3Jvc3MgKEdyYXBoZW5lLlBvaW50M0QgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50M0QgYiwgb3V0IEdy YXBoZW5lLlZlYzMgZGVsdGEpOworKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuUG9pbnQz RCBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5Qb2ludDNEIGIpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0X2Zyb21fcG9p bnQgKEdyYXBoZW5lLlBvaW50M0Qgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBv aW50M0Q/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzIHYpOworKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50M0QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlBvaW50M0QgYiwgZG91YmxlIGZhY3Rv cik7CisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJcHVibGljIGJvb2wgbmVhciAoR3Jh cGhlbmUuUG9pbnQzRCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dDNEIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludDNEIG5vcm1hbGl6ZV92aWV3cG9ydCAoR3JhcGhlbmUuUmVjdCB2aWV3 cG9ydCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQzRCBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHRvX3Zl YzMgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gemVybyAo KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5o IiwgY25hbWUgPSAiZ3JhcGhlbmVfcXVhZF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9xdWFkX2dl dF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVj dCBRdWFkIHsKKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGJvdW5kcyAoKTsKKysJCXB1YmxpYyBi b29sIGNvbnRhaW5zIChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlBvaW50PyBnZXRfcG9pbnQgKHVpbnQgaW5kZXhfKTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlF1YWQ/IGluaXQgKEdyYXBoZW5lLlBvaW50IHAxLCBHcmFwaGVuZS5Qb2ludCBwMiwg R3JhcGhlbmUuUG9pbnQgcDMsIEdyYXBoZW5lLlBvaW50IHA0KTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXRfZnJvbV9w b2ludHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2ludCBwb2lu dHNbNF0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhZD8gaW5pdF9mcm9tX3JlY3Qg KEdyYXBoZW5lLlJlY3Qgcik7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdy YXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3F1YXRlcm5pb25fdCIsIHR5cGVf aWQgPSAiZ3JhcGhlbmVfcXVhdGVybmlvbl9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUXVhdGVybmlvbiB7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gYWRkIChHcmFw aGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuUXVhdGVy bmlvbiBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdCAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeiwgZmxvYXQgdyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0 ZXJuaW9uPyBpbml0X2Zyb21fYW5nbGVfdmVjMyAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMg YXhpcyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21f YW5nbGVzIChmbG9hdCBkZWdfeCwgZmxvYXQgZGVnX3ksIGZsb2F0IGRlZ196KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5p b24/IGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZSk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRyaXgg bSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fcXVh dGVybmlvbiAoR3JhcGhlbmUuUXVhdGVybmlvbiBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3JhZGlhbnMgKGZsb2F0IHJhZF94LCBmbG9hdCBy YWRfeSwgZmxvYXQgcmFkX3opOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlv bj8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfaWRlbnRpdHkgKCk7CisrCQlwdWJsaWMgR3JhcGhl bmUuUXVhdGVybmlvbiBpbnZlcnQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbXVsdGlwbHkgKEdyYXBoZW5lLlF1YXRlcm5p b24gYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBub3JtYWxpemUgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24g c2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBzbGVy cCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiLCBmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIHZvaWQg dG9fYW5nbGVfdmVjMyAob3V0IGZsb2F0IGFuZ2xlLCBvdXQgR3JhcGhlbmUuVmVjMyBheGlzKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2FuZ2xlcyAo b3V0IGZsb2F0IGRlZ194LCBvdXQgZmxvYXQgZGVnX3ksIG91dCBmbG9hdCBkZWdfeik7CisrCQlw dWJsaWMgR3JhcGhlbmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHRvX3JhZGlhbnMgKG91dCBmbG9hdCByYWRfeCwgb3V0 IGZsb2F0IHJhZF95LCBvdXQgZmxvYXQgcmFkX3opOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzQg dG9fdmVjNCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUt Z29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmF5X3QiLCB0eXBlX2lkID0gImdyYXBoZW5l X3JheV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCXB1Ymxp YyBzdHJ1Y3QgUmF5IHsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5SYXkgYik7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2xvc2VzdF9wb2ludF90b19wb2ludCAoR3Jh cGhlbmUuUG9pbnQzRCBwKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9kaXJlY3Rpb24g KCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BsYW5lIChHcmFwaGVuZS5QbGFu ZSBwKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfZGlzdGFuY2VfdG9fcG9pbnQgKEdyYXBoZW5lLlBv aW50M0QgcCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfb3JpZ2luICgpOworKwkJ cHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X3Bvc2l0aW9uX2F0IChmbG9hdCB0KTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdCAoR3JhcGhlbmUuUG9pbnQzRD8gb3JpZ2lu LCBHcmFwaGVuZS5WZWMzPyBkaXJlY3Rpb24pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu UmF5PyBpbml0X2Zyb21fcmF5IChHcmFwaGVuZS5SYXkgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlJheT8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IG9yaWdpbiwgR3Jh cGhlbmUuVmVjMz8gZGlyZWN0aW9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3RfYm94IChHcmFw aGVuZS5Cb3ggYiwgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3Rfc3Bo ZXJlIChHcmFwaGVuZS5TcGhlcmUgcywgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBp bnRlcnNlY3RfdHJpYW5nbGUgKEdyYXBoZW5lLlRyaWFuZ2xlIHQsIG91dCBmbG9hdCB0X291dCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0 c19ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfdHJp YW5nbGUgKEdyYXBoZW5lLlRyaWFuZ2xlIHQpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9yZWN0X3QiLCB0 eXBlX2lkID0gImdyYXBoZW5lX3JlY3RfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFJlY3QgeworKwkJcHVibGljIEdyYXBoZW5lLlBv aW50IG9yaWdpbjsKKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNpemU7CisrCQlwdWJsaWMgc3Rh dGljIEdyYXBoZW5lLlJlY3Q/IGFsbG9jICgpOworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9p bnQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoR3Jh cGhlbmUuUmVjdCBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5SZWN0IGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgZXhw YW5kIChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0 X2JvdHRvbV9sZWZ0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9ib3R0b21fcmln aHQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X2NlbnRlciAoKTsKKysJCXB1Ymxp YyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF90b3Bf bGVmdCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX3JpZ2h0ICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlZlYzIgdmVydGljZXNb NF0pOworKwkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRf eCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlJlY3Q/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln aHQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gaW5pdF9mcm9tX3JlY3QgKEdy YXBoZW5lLlJlY3Qgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluc2V0 IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBpbnNldF9yIChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuUmVjdCBiLCBkb3Vi bGUgZmFjdG9yKTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdGlvbiAoR3JhcGhlbmUuUmVjdCBi LCBvdXQgR3JhcGhlbmUuUmVjdCByZXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVj dD8gbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlJlY3Qgbm9ybWFsaXplX3IgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5SZWN0PyBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IG9mZnNldF9yIChmbG9hdCBkX3gs IGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qg cm91bmQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlJlY3Qgcm91bmRfZXh0ZW50cyAoKTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlJlY3Q/IHJvdW5kX3RvX3BpeGVsICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHNjYWxlIChmbG9hdCBzX2gs IGZsb2F0IHNfdik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bmlvbiAoR3JhcGhlbmUuUmVj dCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBHcmFwaGVuZS5SZWN0PyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaW1kNGZfdCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFNpbWQ0RiB7CisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0g ImdyYXBoZW5lX3NpbWQ0eDRmX3QiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0 cnVjdCBTaW1kNFg0RiB7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBo ZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NpemVfdCIsIHR5cGVfaWQgPSAiZ3Jh cGhlbmVfc2l6ZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CXB1YmxpYyBzdHJ1Y3QgU2l6ZSB7CisrCQlwdWJsaWMgZmxvYXQgd2lkdGg7CisrCQlwdWJsaWMg ZmxvYXQgaGVpZ2h0OworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlNpemUgYik7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQg aGVpZ2h0KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/IGluaXRfZnJvbV9zaXpl IChHcmFwaGVuZS5TaXplIHNyYyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBpbnRlcnBvbGF0 ZSAoR3JhcGhlbmUuU2l6ZSBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5T aXplIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBo ZW5lLlNpemU/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdy YXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NwaGVyZV90IiwgdHlwZV9pZCA9 ICJncmFwaGVuZV9zcGhlcmVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwlwdWJsaWMgc3RydWN0IFNwaGVyZSB7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19w b2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2Ug KEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5l LlNwaGVyZSBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZ2V0X2JvdW5kaW5nX2JveCAoKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxv YXQgZ2V0X3JhZGl1cyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNwaGVyZT8gaW5p dCAoR3JhcGhlbmUuUG9pbnQzRD8gY2VudGVyLCBmbG9hdCByYWRpdXMpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xl bmd0aF9jbmFtZSA9ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xl bmd0aF90eXBlID0gImd1aW50IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMsIEdyYXBoZW5l LlBvaW50M0Q/IGNlbnRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGlu aXRfZnJvbV92ZWN0b3JzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3ZlY3RvcnMi LCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBH cmFwaGVuZS5WZWMzW10gdmVjdG9ycywgR3JhcGhlbmUuUG9pbnQzRD8gY2VudGVyKTsKKysJCXB1 YmxpYyBib29sIGlzX2VtcHR5ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSB0cmFuc2xh dGUgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV90cmlhbmdsZV90 IiwgdHlwZV9pZCA9ICJncmFwaGVuZV90cmlhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgVHJpYW5nbGUgeworKwkJcHVibGlj IGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgYm9v bCBlcXVhbCAoR3JhcGhlbmUuVHJpYW5nbGUgYik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEg KCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfYmFyeWNvb3JkcyAoR3JhcGhlbmUuUG9pbnQzRD8gcCwg b3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZ2V0X2JvdW5k aW5nX2JveCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9taWRwb2ludCAoKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9ub3JtYWwgKCk7CisrCQlwdWJsaWMgR3JhcGhl bmUuUGxhbmUgZ2V0X3BsYW5lICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50cyAob3V0IEdy YXBoZW5lLlBvaW50M0QgYSwgb3V0IEdyYXBoZW5lLlBvaW50M0QgYiwgb3V0IEdyYXBoZW5lLlBv aW50M0QgYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wg Z2V0X3V2IChHcmFwaGVuZS5Qb2ludDNEPyBwLCBHcmFwaGVuZS5WZWMyIHV2X2EsIEdyYXBoZW5l LlZlYzIgdXZfYiwgR3JhcGhlbmUuVmVjMiB1dl9jLCBvdXQgR3JhcGhlbmUuVmVjMiByZXMpOwor KwkJcHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChvdXQgR3JhcGhlbmUuVmVjMyBhLCBvdXQgR3Jh cGhlbmUuVmVjMyBiLCBvdXQgR3JhcGhlbmUuVmVjMyBjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9mcm9t X2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgYVszXSwgW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGJbM10sIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdCBjWzNdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlRyaWFu Z2xlPyBpbml0X2Zyb21fcG9pbnQzZCAoR3JhcGhlbmUuUG9pbnQzRD8gYSwgR3JhcGhlbmUuUG9p bnQzRD8gYiwgR3JhcGhlbmUuUG9pbnQzRD8gYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5UcmlhbmdsZT8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IGEsIEdyYXBoZW5lLlZl YzM/IGIsIEdyYXBoZW5lLlZlYzM/IGMpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWMyX3QiLCB0eXBl X2lkID0gImdyYXBoZW5lX3ZlYzJfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWMy IHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMy IGFkZCAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWMyIGRpdmlkZSAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlZlYzIg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAo R3JhcGhlbmUuVmVjMiB2Mik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/ IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHNy Y1syXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5WZWMyPyBpbml0X2Zyb21fdmVjMiAoR3JhcGhlbmUuVmVjMiBzcmMpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGludGVycG9s YXRlIChHcmFwaGVuZS5WZWMyIHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtYXggKEdyYXBoZW5lLlZlYzIg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj MiBtaW4gKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtdWx0aXBseSAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlZl YzIgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzIgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/ IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWMyIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzIgYik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzJdKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5W ZWMyPyB4X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg c3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8geV9heGlzICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHpl cm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3ZlYzNfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdmVj M19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IFZlYzMgeworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgYWRkIChHcmFwaGVuZS5WZWMz IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzMgY3Jvc3MgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBkaXZpZGUgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5W ZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1 YWwgKEdyYXBoZW5lLlZlYzMgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5MCAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXowICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3h5 ejEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjNCBnZXRfeHl6dyAoZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgZ2V0X3ogKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlZlYzM/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIGZsb2F0IHNyY1szXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVj MyBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWMzIGludGVycG9sYXRlIChHcmFwaGVuZS5WZWMzIHYyLCBkb3VibGUgZmFjdG9yKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtYXgg KEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjMyBtaW4gKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtdWx0aXBseSAoR3JhcGhlbmUu VmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5l YXIgKEdyYXBoZW5lLlZlYzMgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbmVnYXRlICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbm9ybWFsaXplICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLlZlYzM/IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWMzIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgc3VidHJhY3QgKEdyYXBo ZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9p ZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0 WzNdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBHcmFwaGVuZS5WZWMzPyB4X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8geV9heGlzICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdy YXBoZW5lLlZlYzM/IHpfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB6ZXJvICgpOworKwl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJn cmFwaGVuZV92ZWM0X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzRfZ2V0X3R5cGUgKCkiKV0K KysJcHVibGljIHN0cnVjdCBWZWM0IHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWM0IGFkZCAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGRpdmlkZSAoR3JhcGhl bmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9h dCBkb3QgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuVmVjNCB2Mik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3cgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBnZXRfeHkgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfeHl6ICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95ICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF96ICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuVmVjND8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdyk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0 PyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBz cmNbNF0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjLCBmbG9hdCB6 LCBmbG9hdCB3KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzIHNyYywgZmxv YXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGludGVycG9s YXRlIChHcmFwaGVuZS5WZWM0IHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtYXggKEdyYXBoZW5lLlZlYzQg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj NCBtaW4gKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtdWx0aXBseSAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlZl YzQgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzQgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/ IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWM0IHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzQgYik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzRdKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5W ZWM0PyB3X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg c3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHlf YXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHcmFwaGVuZS5WZWM0PyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gemVybyAoKTsK KysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiZ3JhcGhlbmVfZXVsZXJfb3JkZXJfdCIsIGNwcmVmaXggPSAiR1JBUEhFTkVfRVVM RVJfT1JERVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJcHVibGljIGVudW0gRXVsZXJPcmRlciB7CisrCQlERUZBVUxULAorKwkJWFlaLAor KwkJWVpYLAorKwkJWlhZLAorKwkJWFpZLAorKwkJWVhaLAorKwkJWllYLAorKwkJU1hZWiwKKysJ CVNYWVgsCisrCQlTWFpZLAorKwkJU1haWCwKKysJCVNZWlgsCisrCQlTWVpZLAorKwkJU1lYWiwK KysJCVNZWFksCisrCQlTWlhZLAorKwkJU1pYWiwKKysJCVNaWVgsCisrCQlTWllaLAorKwkJUlpZ WCwKKysJCVJYWVgsCisrCQlSWVpYLAorKwkJUlhaWCwKKysJCVJYWlksCisrCQlSWVpZLAorKwkJ UlpYWSwKKysJCVJZWFksCisrCQlSWVhaLAorKwkJUlpYWiwKKysJCVJYWVosCisrCQlSWllaCisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX3JheV9pbnRlcnNlY3Rpb25fa2luZF90IiwgY3ByZWZpeCA9ICJHUkFQ SEVORV9SQVlfSU5URVJTRUNUSU9OX0tJTkRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIFJheUludGVyc2VjdGlvbktp bmQgeworKwkJTk9ORSwKKysJCUVOVEVSLAorKwkJTEVBVkUKKysJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfSEFT X0dDQyIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19HQ0M7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfU0NB TEFSIildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX1NDQUxBUjsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX0hBU19T U0UiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfU1NFOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfUEkiKV0KKysJ cHVibGljIGNvbnN0IGRvdWJsZSBQSTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdy YXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJXzIiKV0KKysJcHVibGljIGNv bnN0IGRvdWJsZSBQSV8yOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUt Z29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfU0lNRF9TIildCisrCXB1YmxpYyBjb25zdCBz dHJpbmcgU0lNRF9TOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29i amVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVDMl9MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzJfTEVOOworKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVD M19MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50 IFZFQzNfTEVOOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVj dC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVDNF9MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzRfTEVOOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZmFsc2UiKV0KKysJcHVi bGljIGNvbnN0IGludCBAZmFsc2U7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJ0cnVlIildCisrCXB1YmxpYyBjb25zdCBpbnQgQHRy dWU7CisrfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0yLmRlcHMgdmFwaS9saWJtdXR0ZXIt Mi5kZXBzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDFmM2M5MDc5Li4wMDAwMDAw MAorLS0tIHZhcGkvbGlibXV0dGVyLTIuZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOSArMCww IEBACistY2Fpcm8KKy1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCistZ2RrLTMuMAorLWdkay1w aXhidWYtMi4wCistZ3RrKy0zLjAKKy14MTEKKy14Zml4ZXMtNC4wCistY2x1dHRlci0xLjAKKy1j b2dsLTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0yLnZhcGkgdmFwaS9saWJtdXR0ZXIt Mi52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDBhNmM0MzU3Li4wMDAwMDAw MAorLS0tIHZhcGkvbGlibXV0dGVyLTIudmFwaQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMyNSAr MCwwIEBACistLyogbGlibXV0dGVyLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBt b2RpZnkuICovCistCistW0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNlID0g Ik1ldGEiLCBnaXJfdmVyc2lvbiA9ICIzLjAiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8i KV0KKy1uYW1lc3BhY2UgTWV0YSB7CistCW5hbWVzcGFjZSBQcmVmcyB7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg YWRkX2xpc3RlbmVyIChNZXRhLlByZWZzQ2hhbmdlZEZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg YmVsbF9pc19hdWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2VfbmFtZSAo aW50IGksIHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gZ2V0 X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxl YmFyQWN0aW9uIGdldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBH RGVza3RvcC5UaXRsZWJhckFjdGlvbiBnZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3RpdGxlYmFyICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVi bGljIHN0YXRpYyBib29sIGdldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBnZXRfYXV0b19tYXhpbWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXV0b19yYWlzZSAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgaW50IGdldF9hdXRvX3JhaXNlX2RlbGF5ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRv bkxheW91dCBnZXRfYnV0dG9uX2xheW91dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfY2VudGVyX25l d193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9jb21wb3NpdGluZ19tYW5hZ2VyICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyBpbnQgZ2V0X2N1cnNvcl9zaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBn ZXRfY3Vyc29yX3RoZW1lICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9kaXNhYmxlX3dvcmthcm91bmRz ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyBpbnQgZ2V0X2RyYWdfdGhyZXNob2xkICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0 X2RyYWdnYWJsZV9ib3JkZXJfd2lkdGggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2R5bmFtaWNfd29y a3NwYWNlcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZWRnZV90aWxpbmcgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgZ2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9w LkZvY3VzTW9kZSBnZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNOZXdX aW5kb3dzIGdldF9mb2N1c19uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZm9yY2Vf ZnVsbHNjcmVlbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBnZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRf aWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5n QWN0aW9uIGdldF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQg Z2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBn ZXRfbW91c2VfYnV0dG9uX21vZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfbW91c2VfYnV0dG9uX3Jl c2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9udW1fd29ya3NwYWNlcyAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBnZXRfcmFpc2Vfb25fY2xpY2sgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3Nob3dfZmFsbGJhY2tf YXBwX21lbnUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udERlc2NyaXB0aW9uIGdldF90 aXRsZWJhcl9mb250ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF92aXN1YWxfYmVsbCAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgR0Rlc2t0b3AuVmlzdWFsQmVsbFR5cGUgZ2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgc3RyaW5nIGdldF93b3Jrc3BhY2VfbmFtZSAoaW50IGkpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIGdldF93b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0 ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIG92ZXJyaWRlX3ByZWZlcmVuY2Vfc2NoZW1hIChzdHJpbmcga2V5 LCBzdHJpbmcgc2NoZW1hKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfbGlzdGVuZXIgKE1ldGEuUHJl ZnNDaGFuZ2VkRnVuYyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9yY2VfZnVsbHNjcmVlbiAo Ym9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRs ZWJhciAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbnVtX3dvcmtzcGFjZXMgKGlu dCBuX3dvcmtzcGFjZXMpOworLQl9CistCW5hbWVzcGFjZSBVdGlsIHsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfYWRkX3ZlcmJvc2Vf dG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5E ZWJ1Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIm1ldGFfYnVnIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYnVnIChz dHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV9kZWJ1Z19zcGV3X3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBkZWJ1Z19zcGV3X3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVf dW5yZWRpcmVjdF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91 bnJlZGlyZWN0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0 eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJl ZGlyZWN0X2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFibGVfdW5yZWRp cmVjdF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFwX3BvcCIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVycm9yX3RyYXBfcG9wIChNZXRhLkRpc3BsYXkgZGlz cGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJtZXRhX2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVycm9y X3RyYXBfcHVzaCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFwX3B1c2hfd2l0 aF9yZXR1cm4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3B1c2hfd2l0aF9y ZXR1cm4gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zv cl9hY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4dGVybmFsX2JpbmRpbmdfbmFt ZV9mb3JfYWN0aW9uICh1aW50IGtleWJpbmRpbmdfYWN0aW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZmF0YWwiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBmYXRhbCAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZnJlZV9nc2xp c3RfYW5kX2VsZW1lbnRzIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJlZV9nc2xpc3RfYW5k X2VsZW1lbnRzIChHTGliLlNMaXN0PHZvaWQqPiBsaXN0X3RvX2RlZXBfZnJlZSk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRm OF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3Ry aW5nIHNyYywgc2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorLQkJcHVibGlj IHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf Z2V0X292ZXJsYXlfd2luZG93IildCistCQlwdWJsaWMgc3RhdGljIFguV2luZG93IGdldF9vdmVy bGF5X3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBn cmF2aXR5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIm1ldGFfaXNfZGVidWdnaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVi dWdnaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAibWV0YV9pc19zeW5jaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfc3lu Y2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIm1ldGFfaXNfdmVyYm9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcmJv c2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJtZXRhX2lzX3dheWxhbmRfY29tcG9zaXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IGlzX3dheWxhbmRfY29tcG9zaXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMgc3Rh dGljIHVpbnQgbGF0ZXJfYWRkIChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNvdXJj ZUZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX2xhdGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxh dGVyX3JlbW92ZSAodWludCBsYXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4IildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgcG9wX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNnX3By ZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf cmVjdCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgsIGlu dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9w aWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuU2NyZWVuIHNj cmVlbiwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Nob3dfZGlhbG9nIildCistCQlwdWJs aWMgc3RhdGljIEdMaWIuUGlkIHNob3dfZGlhbG9nIChzdHJpbmcgdHlwZSwgc3RyaW5nIG1lc3Nh Z2UsIHN0cmluZz8gdGltZW91dCA9IG51bGwsIHN0cmluZz8gZGlzcGxheSA9IG51bGwsIHN0cmlu Zz8gb2tfdGV4dCA9IG51bGwsIHN0cmluZz8gY2FuY2VsX3RleHQgPSBudWxsLCBzdHJpbmc/IGlj b25fbmFtZSA9IG51bGwsIGludCB0cmFuc2llbnRfZm9yID0gMCwgR0xpYi5TTGlzdDxzdHJpbmc+ PyBjb2x1bW5zID0gbnVsbCwgR0xpYi5TTGlzdDxzdHJpbmc+PyBlbnRyaWVzID0gbnVsbCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X3RvcGljX3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB0b3BpY19yZWFsIChNZXRhLkRl YnVnVG9waWMgdG9waWMsIHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdfZXF1 YWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHVuc2lnbmVkX2xvbmdfZXF1YWwgKHZvaWQqIHYx LCB2b2lkKiB2Mik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdfaGFzaCIpXQorLQkJcHVibGljIHN0YXRpYyB1 aW50IHVuc2lnbmVkX2xvbmdfaGFzaCAodm9pZCogdik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3ZlcmJvc2VfcmVhbCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHZlcmJvc2VfcmVhbCAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf d2FybmluZyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHdhcm5pbmcgKHN0cmluZyBmb3JtYXQs IC4uLik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg dHlwZV9pZCA9ICJtZXRhX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0 IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2VuZC5oIiwgY25hbWUgPSAibWV0YV9n ZXRfYmFja2VuZCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFja2VuZCBnZXRf YmFja2VuZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgp OworLQkJcHVibGljIHZvaWQgbG9ja19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9rZXltYXAgKHN0cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmlu ZyBvcHRpb25zKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2Jq ZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2Jq ZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tn cm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCistCXB1 YmxpYyBjbGFzcyBCYWNrZ3JvdW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEJhY2tncm91bmQgKE1ldGEuU2Ny ZWVuIHNjcmVlbik7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CistCQlw dWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBk b3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJ cHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0 eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNo YWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29s b3Igc2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEu U2NyZWVuIG1ldGFfc2NyZWVuIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBjaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91 bmRfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRBY3RvciA6 IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0 dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1Ymxp YyBCYWNrZ3JvdW5kQWN0b3IgKE1ldGEuU2NyZWVuIHNjcmVlbiwgaW50IG1vbml0b3IpOworLQkJ cHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0 bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0bmVzcyB7IGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNjcmVlbiBtZXRhX3NjcmVl biB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBpbnQgbW9uaXRvciB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIHZpZ25ldHRlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSB2aWduZXR0ZV9zaGFycG5lc3MgeyBnZXQ7IHNldDsg fQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ3JvdXBfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5J bXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kR3JvdXAgKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlIDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tn cm91bmRJbWFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9zdWNjZXNzICgpOworLQkJcHVibGlj IHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIGJvb2wgaXNf bG9hZGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxvYWRlZCAoKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIsIHR5 cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2NhY2hlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3Jv dW5kSW1hZ2VDYWNoZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tncm91 bmRJbWFnZUNhY2hlIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIE1ldGEuQmFja2dyb3VuZElt YWdlIGxvYWQgKEdMaWIuRmlsZSBmaWxlKTsKKy0JCXB1YmxpYyB2b2lkIHB1cmdlIChHTGliLkZp bGUgZmlsZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIEJhcnJpZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsKKy0JCXB1YmxpYyB2b2lk IGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CistCQlwdWJsaWMgdm9p ZCByZWxlYXNlIChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0aW9ucyB7IGdldDsgY29u c3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkg ZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVi bGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJt ZXRhX2JhcnJpZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBj bGFzcyBCYXJyaWVyRXZlbnQgeworLQkJcHVibGljIGludCBkdDsKKy0JCXB1YmxpYyBkb3VibGUg ZHg7CistCQlwdWJsaWMgZG91YmxlIGR5OworLQkJcHVibGljIGludCBldmVudF9pZDsKKy0JCXB1 YmxpYyBib29sIGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxlYXNlZDsKKy0JCXB1YmxpYyB1 aW50MzIgdGltZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1YmxpYyBkb3VibGUgeTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLmgiKV0KKy0J W0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBDb21wb3NpdG9yIHsKKy0JCXB1YmxpYyB2b2lkIGFk ZF93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgp OworLQkJcHVibGljIGJvb2wgZmlsdGVyX2tleWJpbmRpbmcgKE1ldGEuS2V5QmluZGluZyBiaW5k aW5nKTsKKy0JCXB1YmxpYyB2b2lkIGZsYXNoX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi LCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIGZvY3VzX3N0YWdlX3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0 YW1wKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3Jfc2NyZWVuIildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmVlZGJhY2tfZ3JvdXBf Zm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9zdGFn ZV9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8g Z2V0X3N0YWdlX2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9nZXRfdG9wX3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgQ2x1dHRlci5BY3Rvcj8gZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0 YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfYWN0b3JzIildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3dBY3Rvcj4/ IGdldF93aW5kb3dfYWN0b3JzIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf Z2V0X3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q2x1dHRlci5BY3Rvcj8gZ2V0X3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBz Y3JlZW4pOworLQkJcHVibGljIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlwdWJsaWMg dm9pZCBoaWRlX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZm ZWN0KTsKKy0JCXB1YmxpYyB2b2lkIG1hbmFnZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ29t cG9zaXRvciBAbmV3IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgdm9pZCBxdWV1 ZV9mcmFtZV9kcmF3biAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIG5vX2RlbGF5X2ZyYW1lKTsK Ky0JCXB1YmxpYyB2b2lkIHJlbW92ZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlw dWJsaWMgdm9pZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLlJl Y3RhbmdsZSB0aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsKKy0JCXB1YmxpYyB2 b2lkIHNob3dfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuQ29tcEVmZmVjdCBlZmZl Y3QpOworLQkJcHVibGljIHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93 LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlwdWJsaWMgdm9p ZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2lu ZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgdm9pZCBz aXplX2NoYW5nZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5TaXplQ2hhbmdlIHdo aWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xl IG9sZF9idWZmZXJfcmVjdCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zdGFnZV9pc19mb2N1c2VkIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgc3RhZ2VfaXNfZm9jdXNlZCAoTWV0YS5TY3JlZW4gc2NyZWVu KTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIGZyb20s IE1ldGEuV29ya3NwYWNlIHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJ cHVibGljIHZvaWQgc3luY19zdGFjayAoR0xpYi5MaXN0PE1ldGEuV2luZG93QWN0b3I+IHN0YWNr KTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfdXBkYXRlc19mcm96ZW4gKE1ldGEuV2luZG93IHdpbmRv dyk7CistCQlwdWJsaWMgdm9pZCBzeW5jX3dpbmRvd19nZW9tZXRyeSAoTWV0YS5XaW5kb3cgd2lu ZG93LCBib29sIGRpZF9wbGFjZW1lbnQpOworLQkJcHVibGljIHZvaWQgdW5tYW5hZ2UgKCk7Cist CQlwdWJsaWMgdm9pZCB3aW5kb3dfb3BhY2l0eV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cp OworLQkJcHVibGljIHZvaWQgd2luZG93X3NoYXBlX2NoYW5nZWQgKE1ldGEuV2luZG93IHdpbmRv dyk7CistCQlwdWJsaWMgdm9pZCB3aW5kb3dfc3VyZmFjZV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3 aW5kb3cpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfdHJhY2tlcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgQ3Vyc29yVHJhY2tlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBDdXJz b3JUcmFja2VyICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tl ciBnZXRfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyB2b2lkIGdl dF9ob3QgKG91dCBpbnQgeCwgb3V0IGludCB5KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wb2ludGVy IChpbnQgeCwgaW50IHksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworLQkJcHVibGljIHVu b3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9p bnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNv cl9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rp c3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERpc3BsYXkgKCk7CistCQlwdWJsaWMg dm9pZCBhZGRfaWdub3JlZF9jcm9zc2luZ19zZXJpYWwgKHVsb25nIHNlcmlhbCk7CistCQlwdWJs aWMgdWludCBhZGRfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUsIEdMaWIuU2V0dGluZ3Mgc2V0dGlu Z3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5j IGhhbmRsZXIpOworLQkJcHVibGljIGJvb2wgYmVnaW5fZ3JhYl9vcCAoTWV0YS5TY3JlZW4gc2Ny ZWVuLCBNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuR3JhYk9wIG9wLCBib29sIHBvaW50ZXJfYWxy ZWFkeV9ncmFiYmVkLCBib29sIGZyYW1lX2FjdGlvbiwgaW50IGJ1dHRvbiwgdWxvbmcgbW9kbWFz aywgdWludDMyIHRpbWVzdGFtcCwgaW50IHJvb3RfeCwgaW50IHJvb3RfeSk7CistCQlwdWJsaWMg dm9pZCBjbGVhcl9tb3VzZV9tb2RlICgpOworLQkJcHVibGljIHZvaWQgZW5kX2dyYWJfb3AgKHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2ZvY3VzX3dpbmRv dyAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lk IGZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLkNvbXBvc2l0b3IgZ2V0X2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9j dXJyZW50X3RpbWUgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWVfcm91bmR0 cmlwICgpOworLQkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfZm9jdXNfd2luZG93ICgpOworLQkJcHVibGljIE1l dGEuR3JhYk9wIGdldF9ncmFiX29wICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2tleWJpbmRpbmdf YWN0aW9uICh1aW50IGtleWNvZGUsIHVsb25nIG1hc2spOworLQkJcHVibGljIHVpbnQzMiBnZXRf bGFzdF91c2VyX3RpbWUgKCk7CistCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgp OworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50IChNZXRhLlRh Ykxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyBHTGliLkxp c3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0 YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBn ZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Us IE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworLQkJcHVibGljIHVub3duZWQg WC5EaXNwbGF5IGdldF94ZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3hpbnB1dF9vcGNv ZGUgKCk7CistCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0 b3IpOworLQkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworLQkJcHVibGljIGJvb2wgaXNfcG9p bnRlcl9lbXVsYXRpbmdfc2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2Up OworLQkJcHVibGljIHVub3duZWQgTWV0YS5Hcm91cCBsb29rdXBfZ3JvdXAgKFguV2luZG93IGdy b3VwX2xlYWRlcik7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAoc3RyaW5nIG5h bWUpOworLQkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cg d2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBH TGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xp Yi5TTGlzdDxNZXRhLldpbmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19l eHRlbmRlZF9iYXJyaWVycyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWlu dCBhY3Rpb25faWQpOworLQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFuYWdlX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2Ny ZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19i ZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsKKy0JCXB1YmxpYyBib29sIHh3aW5k b3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAsIHVp bnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuU2NyZWVu IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBncmFiX29wX2VuZCAoTWV0YS5TY3JlZW4gb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwg TWV0YS5HcmFiT3AgcDEpOworLQkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVy YXRvcl9hY3RpdmF0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7 CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgcmVzdGFydCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9v bCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVjdGFuZ2xlIHAwLCBpbnQg cDEsIGludCBwMik7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXN0YXJ0X21lc3NhZ2Ug KHN0cmluZz8gbWVzc2FnZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2NyZWF0ZWQg KE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2RlbWFu ZHNfYXR0ZW50aW9uIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHdpbmRvd19tYXJrZWRfdXJnZW50IChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIildCistCVtDb21wYWN0XQorLQlw dWJsaWMgY2xhc3MgRnJhbWUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2dyb3VwLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBHcm91cCB7CistCQlw dWJsaWMgaW50IGdldF9zaXplICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFy dHVwX2lkICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93 aW5kb3dzICgpOworLQkJcHVibGljIGJvb2wgcHJvcGVydHlfbm90aWZ5IChYLkV2ZW50IGV2ZW50 KTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9sYXllcnMgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIsIHR5cGVfaWQgPSAibWV0 YV9pZGxlX21vbml0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIElkbGVNb25pdG9y IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIElkbGVNb25pdG9yICgpOworLQkJcHVibGljIHVpbnQgYWRkX2lk bGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0 Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2gg KG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2Vf aWQpOworLQkJcHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHJl bW92ZV93YXRjaCAodWludCBpZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBp bnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9r ZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEtl eUJpbmRpbmcgeworLQkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CistCQlwdWJsaWMgTWV0YS5W aXJ0dWFsTW9kaWZpZXIgZ2V0X21vZGlmaWVycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2J1aWx0aW4gKCk7CistCQlwdWJsaWMg Ym9vbCBpc19yZXZlcnNlZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2tleWJpbmRpbmdzLmgiLCBjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFu ZGxlciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5n IG5hbWUsIG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBl X2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0 cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdlciA6IEdMaWIuREJ1c0ludGVyZmFjZVNrZWxldG9uLCBH TGliLkRCdXNJbnRlcmZhY2UgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOworLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0 X21vbml0b3JfZm9yX291dHB1dCAodWludCBpZCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29u ZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBs dWdpbiAoKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFsIChNZXRhLk1vZGFsT3B0aW9ucyBv cHRpb25zLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGNvbXBsZXRlX2Rpc3Bs YXlfY2hhbmdlIChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1Ymxp YyB2b2lkIGRlc3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1 YmxpYyB2b2lkIGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5T Y3JlZW4gZ2V0X3NjcmVlbiAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIGJvb2wga2V5YmluZGluZ19maWx0ZXIgKE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFj ZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2luZG93 X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHN0YXRpYyB2b2lk IG1hbmFnZXJfc2V0X3BsdWdpbl90eXBlIChHTGliLlR5cGUgZ3R5cGUpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsK Ky0JCXB1YmxpYyB2b2lkIG1hcF9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWluaW1pemUgKE1ldGEuV2lu ZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWluaW1pemVfY29tcGxldGVkIChNZXRh LldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1 bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gcGx1Z2luX2luZm8gKCk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2lu ZG93LCBNZXRhLlJlY3RhbmdsZSB0aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnUg KE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50 IHkpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193aW5kb3df bWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1l bnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgc2l6ZV9jaGFuZ2UgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IsIE1ldGEuU2l6ZUNo YW5nZSB3aGljaF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJl Y3RhbmdsZSBvbGRfYnVmZmVyX3JlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2VfY29t cGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgc3dpdGNoX3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5Nb3Rpb25E aXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2VfY29t cGxldGVkICgpOworLSAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVubWlu aW1pemUgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6 ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIGJvb2wgeGV2ZW50X2ZpbHRlciAoWC5FdmVudCBldmVudCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvc2NyZWVuLmgiLCB0eXBlX2lkID0g Im1ldGFfc2NyZWVuX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTY3JlZW4gOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgU2NyZWVuICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/ IGFwcGVuZF9uZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGltZXN0YW1wKTsK Ky0JCXB1YmxpYyB2b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgp OworLQkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRf bW9uaXRvcl9mb3JfcG9zIChpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5E aXNwbGF5IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9tb25p dG9yX2dlb21ldHJ5IChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgYm9vbCBnZXRfbW9uaXRvcl9p bl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2lu ZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21v bml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9yLCBNZXRhLlNjcmVlbkRpcmVj dGlvbiBkaXIpOworLQkJcHVibGljIGludCBnZXRfbl9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRv ciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CistCQlwdWJsaWMgdm9p ZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7 CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8TWV0YS5Xb3Jrc3BhY2U+IGdldF93b3Jrc3Bh Y2VzICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94cm9vdCAoKTsKKy0JCXB1YmxpYyB2b2lk IG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuU2NyZWVuQ29ybmVyIHN0YXJ0aW5nX2Nv cm5lciwgYm9vbCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2NvbHVtbnMpOwor LQkJcHVibGljIHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNl LCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworLQkJcHVi bGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBpbl9m dWxsc2NyZWVuX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hh bmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXN0YWNrZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgc3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmplY3QpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0b3IgKGludCBvYmplY3QsIE1l dGEuV2luZG93IHAwKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbGVmdF9tb25pdG9y IChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29y a2FyZWFzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVk IChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAo aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChp bnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCByZWZf ZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRf dHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMg KGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93 X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWlu dCAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5k b3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9z dHJpY3RseSk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lk IHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZmFjdG9yeV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhZG93RmFjdG9yeSA6IEdMaWIuT2JqZWN0IHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBTaGFk b3dGYWN0b3J5ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuU2hhZG93RmFjdG9y eSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvd1BhcmFtcyBnZXRfcGFyYW1z IChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRv dyBnZXRfc2hhZG93IChNZXRhLldpbmRvd1NoYXBlIHNoYXBlLCBpbnQgd2lkdGgsIGludCBoZWln aHQsIHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIHZvaWQgc2V0 X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCwgTWV0YS5TaGFkb3dQYXJh bXMgQHBhcmFtcyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0 eXBlX2lkID0gIm1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIFNoYXBlZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0 ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg U2hhcGVkVGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fp cm8uUmVjdGFuZ2xlSW50IGNsaXApOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdl dF90ZXh0dXJlICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNy ZWF0ZV9taXBtYXBzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4 dHVyZSBtYXNrX3RleHR1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93 bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9h cmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3RoZW1lLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaGVtZSB7 CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5UaGVtZSBnZXRf ZGVmYXVsdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgQG5ldyAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVfaWQgPSAibWV0 YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXByb3RlY3RlZCBXaW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWlu dDMyIGN1cnJlbnRfdGltZSk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX3dvcmtzcGFj ZSAodWludDMyIGN1cnJlbnRfdGltZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1 YmxpYyBib29sIGFsbG93c19tb3ZlICgpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX3Jlc2l6ZSAo KTsKKy0JCXB1YmxpYyB2b2lkIGJlZ2luX2dyYWJfb3AgKE1ldGEuR3JhYk9wIG9wLCBib29sIGZy YW1lX2FjdGlvbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCBjYW5fY2xvc2Ug KCk7CistCQlwdWJsaWMgYm9vbCBjYW5fbWF4aW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5f bWluaW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fc2hhZGUgKCk7CistCQlwdWJsaWMgdm9p ZCBjaGFuZ2Vfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGlj IHZvaWQgY2hhbmdlX3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IHNwYWNlX2luZGV4LCBib29sIGFw cGVuZCk7CistCQlwdWJsaWMgdm9pZCBjaGVja19hbGl2ZSAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgY2xpZW50X3JlY3RfdG9fZnJhbWVfcmVjdCAoTWV0YS5S ZWN0YW5nbGUgY2xpZW50X3JlY3QpOworLQkJcHVibGljIHZvaWQgY29tcHV0ZV9ncm91cCAoKTsK Ky0JCXB1YmxpYyB2b2lkIEBkZWxldGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5XaW5kb3cgZmluZF9yb290X2FuY2VzdG9yICgpOworLQkJcHVibGljIHZvaWQg Zm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF9hbmNlc3Rv ciAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hf dHJhbnNpZW50IChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1l X3JlY3QpOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGhfcG9zID0gMC4xLCBhcnJheV9sZW5ndGhf dHlwZSA9ICJnc2l6ZSIpXQorLQkJcHVibGljIGludFtdIGdldF9hbGxfbW9uaXRvcnMgKCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdM aWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5 IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5GcmFtZSBnZXRfZnJhbWUg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9ib3VuZHMgKCk7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7CistCQlwdWJsaWMg TWV0YS5GcmFtZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh Lkdyb3VwIGdldF9ncm91cCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2Fw cF9tZW51X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtf YXBwbGljYXRpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBs aWNhdGlvbl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3Rr X21lbnViYXJfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0 a190aGVtZV92YXJpYW50ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdW5p cXVlX2J1c19uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfd2luZG93 X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2ljb25fZ2VvbWV0cnkgKG91dCBN ZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVy ICgpOworLQkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworLQkJ cHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf bXV0dGVyX2hpbnRzICgpOworLQkJcHVibGljIGludCBnZXRfcGlkICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9yb2xlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5TY3JlZW4g Z2V0X3NjcmVlbiAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9zdGFibGVfc2VxdWVuY2UgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXJ0dXBfaWQgKCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldpbmRvdz8gZ2V0X3RpbGVfbWF0Y2ggKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3RpdGxlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3Ry YW5zaWVudF9mb3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF91c2VyX3RpbWUgKCk7CistCQlw dWJsaWMgTWV0YS5XaW5kb3dUeXBlIGdldF93aW5kb3dfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfd21fY2xhc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3dtX2NsYXNzX2luc3RhbmNlICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3Jr X2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3Jr X2FyZWFfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93 b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cg Z2V0X3h3aW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBncm91cF9sZWFkZXJfY2hhbmdlZCAoKTsK Ky0JCXB1YmxpYyBib29sIGhhc19mb2N1cyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fib3ZlICgp OworLQkJcHVibGljIGJvb2wgaXNfYWx3YXlzX29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVi bGljIGJvb2wgaXNfYW5jZXN0b3Jfb2ZfdHJhbnNpZW50IChNZXRhLldpbmRvdyB0cmFuc2llbnQp OworLQkJcHVibGljIGJvb2wgaXNfYXR0YWNoZWRfZGlhbG9nICgpOworLQkJcHVibGljIGJvb2wg aXNfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2hpZGRlbiAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX21vbml0b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9hbGxfd29y a3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX3ByaW1hcnlfbW9uaXRvciAoKTsKKy0J CXB1YmxpYyBib29sIGlzX292ZXJyaWRlX3JlZGlyZWN0ICgpOworLQkJcHVibGljIGJvb2wgaXNf cmVtb3RlICgpOworLQkJcHVibGljIGJvb2wgaXNfc2NyZWVuX3NpemVkICgpOworLQkJcHVibGlj IGJvb2wgaXNfc2hhZGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2tpcF90YXNrYmFyICgpOwor LQkJcHVibGljIHZvaWQga2lsbCAoKTsKKy0JCXB1YmxpYyBib29sIGxvY2F0ZWRfb25fd29ya3Nw YWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQgbG93ZXIgKCk7 CistCQlwdWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgbWFrZV9mdWxs c2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgbWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBk aXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplICgpOworLQkJcHVibGljIHZvaWQg bW92ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95X253KTsK Ky0JCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290 X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7CistCQlwdWJsaWMgdm9pZCBtb3Zl X3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJ cHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJv b2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBz ZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKy0JCXB1YmxpYyB2b2lk IHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21l dHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaGFkZSAodWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzaG92ZV90aXRsZWJhcl9vbnNjcmVlbiAoKTsK Ky0JCXB1YmxpYyBib29sIHNob3dpbmdfb25faXRzX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIHNodXRkb3duX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgc3RpY2sgKCk7CistCQlwdWJs aWMgYm9vbCB0aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9h Ym92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGlj IHZvaWQgdW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVi bGljIHZvaWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2V0X2RlbWFuZHNfYXR0 ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgdW5zaGFkZSAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCB1bnN0aWNrICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgYm9vbCBhYm92ZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Ym9vbCBhcHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBib29sIGRlbWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0 a19hcHBsaWNhdGlvbl9pZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRp b25fb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX21lbnViYXJfb2Jq ZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3VuaXF1ZV9idXNfbmFtZSB7 IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfd2luZG93X29iamVjdF9wYXRoIHsgZ2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGljb24geyBv d25lZCBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1p emVkX2hvcml6b250YWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgYm9vbCBtYXhpbWl6ZWRfdmVydGljYWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBtaW5pX2ljb24geyBvd25lZCBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWluaW1pemVkIHsgZ2V0OyB9Cist CQlwdWJsaWMgc3RyaW5nIG11dHRlcl9oaW50cyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBvbl9hbGxfd29ya3NwYWNlcyB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXNpemVhYmxlIHsgZ2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHNraXBfdGFza2JhciB7IGdldDsgfQorLQkJ cHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCB1cmdlbnQgeyBnZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHVzZXJfdGltZSB7IGdl dDsgfQorLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSB3aW5kb3dfdHlwZSB7IGdldDsgfQorLQkJ cHVibGljIHN0cmluZyB3bV9jbGFzcyB7IGdldDsgfQorLQkJW0NDb2RlIChjbmFtZSA9ICJmb2N1 cyIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGZvY3VzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgcG9zaXRpb25fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByYWlzZWQg KCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vf Y2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1w bGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIu U2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldp bmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKy0J CXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0 OyBzZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhX3dpbmRvd19zaGFwZS5oIiwgcmVm X2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3JlZiIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfc2hhcGVfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFw ZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFdpbmRvd1NoYXBlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBXaW5k b3dTaGFwZSAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CistCQlwdWJsaWMgYm9vbCBlcXVhbCAoTWV0 YS5XaW5kb3dTaGFwZSBzaGFwZV9iKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3JkZXJzIChpbnQg Ym9yZGVyX3RvcCwgaW50IGJvcmRlcl9yaWdodCwgaW50IGJvcmRlcl9ib3R0b20sIGludCBib3Jk ZXJfbGVmdCk7CistCQlwdWJsaWMgdWludCBoYXNoICgpOworLQkJcHVibGljIE1ldGEuV2luZG93 U2hhcGUgQHJlZiAoKTsKKy0JCXB1YmxpYyBDYWlyby5SZWdpb24gdG9fcmVnaW9uIChpbnQgY2Vu dGVyX3dpZHRoLCBpbnQgY2VudGVyX2hlaWdodCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93b3Jrc3BhY2UuaCIsIHR5 cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdv cmtzcGFjZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBh Y3RpdmF0ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRo X2ZvY3VzIChNZXRhLldpbmRvdyBmb2N1c190aGlzLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9uZWlnaGJvciAoTWV0YS5Nb3Rpb25EaXJl Y3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3Jl ZW4gKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRv cnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRv ciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsKKy0JCXB1Ymxp YyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGlj IHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ+IHN0cnV0cyk7 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCB3b3Jrc3BhY2VfaW5kZXgg eyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfYWRkZWQgKE1ldGEuV2luZG93 IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X3JlbW92ZWQgKE1ldGEuV2lu ZG93IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBCdXR0b25MYXlv dXQgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5h dGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uW10gbGVmdF9i dXR0b25zOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJt aW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBib29sW10gbGVmdF9idXR0b25zX2hhc19z cGFjZXI7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1p bmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb25bXSByaWdo dF9idXR0b25zOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90 ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBib29sW10gcmlnaHRfYnV0dG9uc19o YXNfc3BhY2VyOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVz LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBFZGdlIHsKKy0JCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBzaWRlX3R5cGU7 CistCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J cHVibGljIHN0cnVjdCBGcmFtZUJvcmRlcnMgeworLQkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJs ZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIGludmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVy IHRvdGFsOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgc3RydWN0IFBsdWdpbkluZm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7 CistCQlwdWJsaWMgd2VhayBzdHJpbmcgdmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBh dXRob3I7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbGljZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0 cmluZyBkZXNjcmlwdGlvbjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLXBsdWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3Qg UGx1Z2luVmVyc2lvbiB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworLQkJcHVibGlj IHVpbnQgdmVyc2lvbl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CistCQlw dWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3Qg UmVjdGFuZ2xlIHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1Ymxp YyBpbnQgd2lkdGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JCXB1YmxpYyBpbnQgYXJlYSAo KTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3Jl Y3QpOworLQkJcHVibGljIGJvb2wgY291bGRfZml0X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVy X3JlY3QpOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuUmVjdGFuZ2xlIHNyYzIpOworLQkJ cHVibGljIGJvb2wgaG9yaXpfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVi bGljIGJvb2wgaW50ZXJzZWN0IChNZXRhLlJlY3RhbmdsZSBzcmMyLCBvdXQgTWV0YS5SZWN0YW5n bGUgZGVzdCk7CistCQlwdWJsaWMgYm9vbCBvdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgdW5pb24gKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsK Ky0JCXB1YmxpYyBib29sIHZlcnRfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7 CistCQlwdWJsaWMgaW50IHJhZGl1czsKKy0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CistCQlwdWJs aWMgaW50IHhfb2Zmc2V0OworLQkJcHVibGljIGludCB5X29mZnNldDsKKy0JCXB1YmxpYyB1aW50 OCBvcGFjaXR5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVz LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1dCB7CistCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjcHJlZml4 ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGly ZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQmFycmllckRp cmVjdGlvbiB7CistCQlQT1NJVElWRV9YLAorLQkJUE9TSVRJVkVfWSwKKy0JCU5FR0FUSVZFX1gs CistCQlORUdBVElWRV9ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAi bWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQnV0dG9u RnVuY3Rpb24geworLQkJTUVOVSwKKy0JCU1JTklNSVpFLAorLQkJTUFYSU1JWkUsCistCQlDTE9T RSwKKy0JCVNIQURFLAorLQkJQUJPVkUsCistCQlTVElDSywKKy0JCVVOU0hBREUsCistCQlVTkFC T1ZFLAorLQkJVU5TVElDSywKKy0JCUFQUE1FTlUsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NP TVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBDb21wRWZmZWN0IHsKKy0JCUNSRUFURSwKKy0JCVVOTUlOSU1JWkUsCist CQlERVNUUk9ZLAorLQkJTUlOSU1JWkUsCistCQlOT05FCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5 cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ3Vyc29y IHsKKy0JCU5PTkUsCistCQlERUZBVUxULAorLQkJTk9SVEhfUkVTSVpFLAorLQkJU09VVEhfUkVT SVpFLAorLQkJV0VTVF9SRVNJWkUsCistCQlFQVNUX1JFU0laRSwKKy0JCVNFX1JFU0laRSwKKy0J CVNXX1JFU0laRSwKKy0JCU5FX1JFU0laRSwKKy0JCU5XX1JFU0laRSwKKy0JCU1PVkVfT1JfUkVT SVpFX1dJTkRPVywKKy0JCUJVU1ksCistCQlETkRfSU5fRFJBRywKKy0JCURORF9NT1ZFLAorLQkJ RE5EX0NPUFksCistCQlETkRfVU5TVVBQT1JURURfVEFSR0VULAorLQkJUE9JTlRJTkdfSEFORCwK Ky0JCUNST1NTSEFJUiwKKy0JCUlCRUFNLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBl X2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJs aWMgZW51bSBEZWJ1Z1RvcGljIHsKKy0JCVZFUkJPU0UsCistCQlGT0NVUywKKy0JCVdPUktBUkVB LAorLQkJU1RBQ0ssCistCQlUSEVNRVMsCistCQlTTSwKKy0JCUVWRU5UUywKKy0JCVdJTkRPV19T VEFURSwKKy0JCVdJTkRPV19PUFMsCistCQlHRU9NRVRSWSwKKy0JCVBMQUNFTUVOVCwKKy0JCVBJ TkcsCistCQlYSU5FUkFNQSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJU1lOQywKKy0JCUVSUk9SUywK Ky0JCVNUQVJUVVAsCistCQlQUkVGUywKKy0JCUdST1VQUywKKy0JCVJFU0laSU5HLAorLQkJU0hB UEVTLAorLQkJQ09NUE9TSVRPUiwKKy0JCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAi TUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIp XQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZULAorLQkJUklH SFQsCistCQlUT1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCistCQlIT1JJWk9OVEFM LAorLQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i b3hlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlw ZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CistCQlXSU5ET1csCist CQlNT05JVE9SLAorLQkJU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4 aXRfY29kZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUND RVNTLAorLQkJRVJST1IKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVf ZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBGcmFtZUZsYWdz IHsKKy0JCUFMTE9XU19ERUxFVEUsCistCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9XU19BUFBNRU5V LAorLQkJQUxMT1dTX01JTklNSVpFLAorLQkJQUxMT1dTX01BWElNSVpFLAorLQkJQUxMT1dTX1ZF UlRJQ0FMX1JFU0laRSwKKy0JCUFMTE9XU19IT1JJWk9OVEFMX1JFU0laRSwKKy0JCUhBU19GT0NV UywKKy0JCVNIQURFRCwKKy0JCVNUVUNLLAorLQkJTUFYSU1JWkVELAorLQkJQUxMT1dTX1NIQURF LAorLQkJQUxMT1dTX01PVkUsCistCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCistCQlB Qk9WRSwKKy0JCVRJTEVEX0xFRlQsCistCQlUSUxFRF9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZ UEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGVudW0gRnJhbWVUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxP RywKKy0JCVVUSUxJVFksCistCQlNRU5VLAorLQkJQk9SREVSLAorLQkJQVRUQUNIRUQsCistCQlM QVNUOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoTWV0YS5GcmFtZVR5cGUgdHlw ZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj cHJlZml4ID0gIk1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCUNPTVBPU0lUT1Is CistCQlXQVlMQU5EX1BPUFVQLAorLQkJV0lORE9XX0JBU0UsCistCQlGUkFNRV9CVVRUT04sCist CQlNT1ZJTkcsCistCQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlSRVNJWklOR19O RSwKKy0JCVJFU0laSU5HX0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5HX1MsCistCQlS RVNJWklOR19TRSwKKy0JCVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcsCistCQlLRVlC T0FSRF9SRVNJWklOR19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcsCistCQlLRVlC T0FSRF9SRVNJWklOR19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlLRVlCT0FSRF9S RVNJWklOR19FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FSRF9SRVNJWklO R19TLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19XCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXgg PSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdf YWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24gewor LQkJTk9ORSwKKy0JCVdPUktTUEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BBQ0Vf MywKKy0JCVdPUktTUEFDRV80LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwKKy0J CVdPUktTUEFDRV83LAorLQkJV09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdPUktT UEFDRV8xMCwKKy0JCVdPUktTUEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktTUEFD RV9MRUZULAorLQkJV09SS1NQQUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09SS1NQ QUNFX0RPV04sCistCQlXT1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMsCist CQlTV0lUQ0hfQVBQTElDQVRJT05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJU1dJ VENIX0dST1VQX0JBQ0tXQVJELAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lORE9X U19CQUNLV0FSRCwKKy0JCVNXSVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tXQVJE LAorLQkJQ1lDTEVfR1JPVVAsCistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xFX1dJ TkRPV1MsCistCQlDWUNMRV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAorLQkJ Q1lDTEVfUEFORUxTX0JBQ0tXQVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJTl9N RU5VLAorLQkJUEFORUxfUlVOX0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlTRVRf U1BFV19NQVJLLAorLQkJQUNUSVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFNDUkVF TiwKKy0JCVRPR0dMRV9NQVhJTUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRPR0dM RV9USUxFRF9SSUdIVCwKKy0JCVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJ TUlaRSwKKy0JCVRPR0dMRV9TSEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJQkVH SU5fTU9WRSwKKy0JCUJFR0lOX1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNFUywK Ky0JCU1PVkVfVE9fV09SS1NQQUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJTU9W RV9UT19XT1JLU1BBQ0VfMywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RPX1dP UktTUEFDRV81LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQQUNF XzcsCistCQlNT1ZFX1RPX1dPUktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwKKy0J CU1PVkVfVE9fV09SS1NQQUNFXzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlNT1ZF X1RPX1dPUktTUEFDRV8xMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZFX1RP X1dPUktTUEFDRV9SSUdIVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfRE9XTiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RPX01P TklUT1JfTEVGVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9OSVRP Ul9VUCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCistCQlS QUlTRSwKKy0JCUxPV0VSLAorLQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpFX0hP UklaT05UQUxMWSwKKy0JCU1PVkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJfTkUs CistCQlNT1ZFX1RPX0NPUk5FUl9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9WRV9U T19TSURFX04sCistCQlNT1ZFX1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJTU9W RV9UT19TSURFX1csCistCQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJSVNP X05FWFRfR1JPVVAsCistCQlBTFdBWVNfT05fVE9QLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJ TkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIild CistCVtGbGFnc10KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKy0JCU5PTkUsCist CQlQRVJfV0lORE9XLAorLQkJQlVJTFRJTiwKKy0JCUlTX1JFVkVSU0VECistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVS XyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIExhdGVyVHlwZSB7CistCQlSRVNJWkUsCistCQlDQUxDX1NIT1dJTkcsCistCQlDSEVDS19G VUxMU0NSRUVOLAorLQkJU1lOQ19TVEFDSywKKy0JCUJFRk9SRV9SRURSQVcsCistCQlJRExFCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9 ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTG9jYWxlRGlyZWN0aW9uIHsKKy0JCUxU UiwKKy0JCVJUTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRv dy5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6 ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIE1heGltaXpl RmxhZ3MgeworLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMLAorLQkJQk9USAorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJlZml4ID0g Ik1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCki KV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworLQkJUE9JTlRFUl9B TFJFQURZX0dSQUJCRUQsCistCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9N T1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxF RlQsCistCQlSSUdIVCwKKy0JCVVQX0xFRlQsCistCQlVUF9SSUdIVCwKKy0JCURPV05fTEVGVCwK Ky0JCURPV05fUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRhX3ByZWZlcmVu Y2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7CistCQlNT1VTRV9C VVRUT05fTU9EUywKKy0JCUZPQ1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9XUywKKy0JCUFU VEFDSF9NT0RBTF9ESUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJT05fRE9VQkxF X0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJBUiwKKy0JCUFD VElPTl9SSUdIVF9DTElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlBVVRPX1JBSVNF X0RFTEFZLAorLQkJRk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJVExFQkFSX0ZP TlQsCistCQlOVU1fV09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywKKy0JCUtFWUJJ TkRJTkdTLAorLQkJRElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlPVVQsCistCQlX T1JLU1BBQ0VfTkFNRVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVMTCwKKy0JCVZJ U1VBTF9CRUxMX1RZUEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05PTUVfQU5JTUFU SU9OUywKKy0JCUNVUlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVTSVpFX1dJVEhf UklHSFRfQlVUVE9OLAorLQkJRURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NSRUVOLAorLQkJ V09SS1NQQUNFU19PTkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAor LQkJQVVUT19NQVhJTUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNI T0xEOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoTWV0YS5QcmVmZXJlbmNlIHBy ZWYpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVlbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2Nvcm5lcl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5Db3JuZXIgeworLQkJVE9QTEVGVCwK Ky0JCVRPUFJJR0hULAorLQkJQk9UVE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4 ID0gIk1FVEFfU0NSRUVOXyIsIHR5cGVfaWQgPSAibWV0YV9zY3JlZW5fZGlyZWN0aW9uX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNjcmVlbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURP V04sCistCQlMRUZULAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWVudW0tdHlwZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8i LCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gU2hhZG93TW9kZSB7CistCQlBVVRPLAorLQkJRk9SQ0VEX09GRiwKKy0JCUZPUkNFRF9PTgor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZp eCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gU2lkZSB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RU T00KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWVudW0tdHlw ZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6 ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CistCQlN QVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxMU0NSRUVO CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJl Zml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVyX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIFN0YWNrTGF5ZXIgeworLQkJREVTS1RPUCwKKy0JCUJPVFRP TSwKKy0JCU5PUk1BTCwKKy0JCVRPUCwKKy0JCURPQ0ssCistCQlGVUxMU0NSRUVOLAorLQkJRk9D VVNFRF9XSU5ET1csCistCQlPVkVSUklERV9SRURJUkVDVCwKKy0JCUxBU1QKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFf VEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFRhYkxpc3QgeworLQkJTk9STUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwKKy0J CU5PUk1BTF9BTEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNw bGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9z aG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiU2hvd1R5cGUgeworLQkJ SUNPTiwKKy0JCUlOU1RBTlRMWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRh X3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51 bSBWaXJ0dWFsTW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0JCUNPTlRST0xfTUFTSywKKy0J CUFMVF9NQVNLLAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFTSywKKy0JCUhZUEVSX01BU0ss CistCQlNT0QyX01BU0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0X01BU0ssCistCQlNT0Q1X01B U0sKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNw cmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRv d19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dDbGllbnRU eXBlIHsKKy0JCVdBWUxBTkQsCistCQlYMTEKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBl X2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51 bSBXaW5kb3dNZW51VHlwZSB7CistCQlXTSwKKy0JCUFQUAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0 eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g V2luZG93VHlwZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9DSywKKy0JCURJQUxP RywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAorLQkJVVRJTElUWSwK Ky0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCistCQlQT1BVUF9NRU5VLAorLQkJ VE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5ELAorLQkJT1ZFUlJJ REVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRvciwgdWludCB3 YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBp bnN0YW5jZV9wb3MgPSA1LjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVu YyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIE1ldGEuU2NyZWVuIHNjcmVlbiwgTWV0YS5XaW5kb3c/ IHdpbmRvdywgQ2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5n KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGluc3RhbmNl X3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdlZEZ1bmMgKE1l dGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv d2luZG93LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBX aW5kb3dGb3JlYWNoRnVuYyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFN RSIpXQorLQlwdWJsaWMgY29uc3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJ R0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQor LQlwdWJsaWMgY29uc3QgaW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorLQlwdWJs aWMgY29uc3QgaW50IE1BSk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorLQlwdWJsaWMg Y29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMg Y29uc3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCistCXB1Ymxp YyBjb25zdCBpbnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKy0JcHVibGlj IGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQorLQlwdWJs aWMgY29uc3QgaW50IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFX IildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfQkVGT1JFX1JFRFJBVzsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklU WV9QUkVGU19OT1RJRlkiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJ Rlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Ik1FVEFfUFJJT1JJVFlfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVE UkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJNRVRBX1BSSU9SSVRZX1JFU0laRSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JF U0laRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBW SVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKy0J cHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3Rp dmF0ZV9zZXNzaW9uICgpOworLSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2luaXQgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg ZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRl eHQgZ2V0X29wdGlvbl9jb250ZXh0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRf d20gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19yZXN0YXJ0ICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHF1aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0 aF9zZXNzaW9uICgpOworLSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmcgbWVzc2FnZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGlj IGludCBydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcg d21fa2V5YmluZGluZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7 CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhIHZhcGkvbGlibXV0 dGVyLTMtY3VzdG9tLnZhbGEKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMjllNTk3 N2QuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorKysrIC9kZXYv bnVsbAorQEAgLTEsNiArMCwwIEBACistbmFtZXNwYWNlIE1ldGEgeworLQlwdWJsaWMgYWJzdHJh Y3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24s IEdMaWIuREJ1c0ludGVyZmFjZSB7CistCQkvKiBub3QgZXhwb3J0ZWQgKi8KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkICgpOworLQl9CistfQorZGlmZiAtLWdpdCB2YXBp L2xpYm11dHRlci0zLmRlcHMgdmFwaS9saWJtdXR0ZXItMy5kZXBzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDFmM2M5MDc5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTMu ZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOSArMCwwIEBACistY2Fpcm8KKy1nc2V0dGluZ3Mt ZGVza3RvcC1zY2hlbWFzCistZ2RrLTMuMAorLWdkay1waXhidWYtMi4wCistZ3RrKy0zLjAKKy14 MTEKKy14Zml4ZXMtNC4wCistY2x1dHRlci0xLjAKKy1jb2dsLTEuMAorZGlmZiAtLWdpdCB2YXBp L2xpYm11dHRlci00LmRlcHMgdmFwaS9saWJtdXR0ZXItNC5kZXBzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDM2N2MzNWI5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTQu ZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOCArMCwwIEBACistZ2RrLTMuMAorLWdkay1waXhi dWYtMi4wCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWd0aystMy4wCistbXV0dGVyLWNs dXR0ZXItNAorLW11dHRlci1jb2dsLTQKKy14MTEKKy14Zml4ZXMtNC4wCitkaWZmIC0tZ2l0IHZh cGkvbGlibXV0dGVyLTQudmFwaSB2YXBpL2xpYm11dHRlci00LnZhcGkKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggZTBkMzU2YTAuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXIt NC52YXBpCisrKysgL2Rldi9udWxsCitAQCAtMSwxNDI1ICswLDAgQEAKKy0vKiBsaWJtdXR0ZXIt NC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworLQorLVtDQ29k ZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24g PSAiNCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorLW5hbWVzcGFjZSBNZXRhIHsK Ky0JbmFtZXNwYWNlIENvbXBvc2l0b3IgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGly ZWN0X2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGly ZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9l bXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9z dGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg ZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBj bmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IGZvY3VzX3N0YWdlX3dpbmRvdyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIHVpbnQzMiB0aW1lc3Rh bXApOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmVlZGJhY2tfZ3JvdXBf Zm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9z dGFnZV9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X3N0YWdlX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9nZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3Bs YXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfYWN0 b3JzIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0ZXIuQWN0b3I+ IGdldF93aW5kb3dfYWN0b3JzIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9nZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5 IGRpc3BsYXksIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworLQl9CistCW5hbWVzcGFjZSBQcmVm cyB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19iZWxsX2lzX2F1ZGlibGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBw cmVmc19iZWxsX2lzX2F1ZGlibGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19jaGFuZ2Vfd29ya3NwYWNlX25hbWUi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19jaGFuZ2Vfd29ya3NwYWNlX25hbWUgKGlu dCBpLCBzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX2RvdWJsZV9jbGlja190aXRs ZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVmc19n ZXRfYWN0aW9uX2RvdWJsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hY3Rpb25f bWlkZGxlX2NsaWNrX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxl YmFyQWN0aW9uIHByZWZzX2dldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRp YyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3Rp dGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2F1dG9fbWF4aW1pemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRf YXV0b19tYXhpbWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdXRvX3JhaXNlIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F1dG9fcmFpc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19y YWlzZV9kZWxheSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2F1dG9fcmFpc2Vf ZGVsYXkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfYnV0dG9uX2xheW91dCIpXQorLQkJcHVibGljIHN0YXRp YyBNZXRhLkJ1dHRvbkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9jZW50ZXJfbmV3X3dpbmRvd3MiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19n ZXRfY2VudGVyX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFn ZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY29tcG9zaXRpbmdfbWFuYWdl ciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3Jfc2l6ZSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQg cHJlZnNfZ2V0X2N1cnNvcl9zaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2N1cnNvcl90aGVtZSIpXQor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBwcmVmc19nZXRfY3Vyc29yX3RoZW1lICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBwcmVmc19nZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9kcmFn X3RocmVzaG9sZCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2RyYWdfdGhyZXNo b2xkICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2RyYWdnYWJsZV9ib3JkZXJfd2lkdGgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgaW50IHByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2R5bmFtaWNfd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZz X2dldF9keW5hbWljX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZWRnZV90aWxpbmciKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZWRnZV90aWxpbmcgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf Z2V0X2ZvY3VzX21vZGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNNb2RlIHBy ZWZzX2dldF9mb2N1c19tb2RlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX25ld193aW5kb3dzIild CistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2luZG93cyBwcmVmc19nZXRfZm9j dXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVlbiIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9mb3JjZV9mdWxsc2NyZWVuICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVm c19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9hbmltYXRp b25zIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMg TWV0YS5LZXlCaW5kaW5nQWN0aW9uIHByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5n IG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51IildCistCQlwdWJsaWMgc3Rh dGljIGludCBwcmVmc19nZXRfbW91c2VfYnV0dG9uX21lbnUgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbW91 c2VfYnV0dG9uX21vZHMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIg cHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRv bl9yZXNpemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9tb3VzZV9idXR0b25f cmVzaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X251bV93b3Jrc3BhY2VzIildCistCQlwdWJsaWMgc3Rh dGljIGludCBwcmVmc19nZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfcmFpc2Vf b25fY2xpY2siKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfcmFpc2Vfb25fY2xp Y2sgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHByZWZzX2dldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51ICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X3RpdGxlYmFyX2ZvbnQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5G b250RGVzY3JpcHRpb24gcHJlZnNfZ2V0X3RpdGxlYmFyX2ZvbnQgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRf dmlzdWFsX2JlbGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfdmlzdWFsX2Jl bGwgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19nZXRfdmlzdWFsX2JlbGxfdHlwZSIpXQorLQkJcHVibGljIHN0YXRp YyBHRGVza3RvcC5WaXN1YWxCZWxsVHlwZSBwcmVmc19nZXRfdmlzdWFsX2JlbGxfdHlwZSAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF93b3Jrc3BhY2VfbmFtZSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IHN0cmluZyBwcmVmc19nZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF93 b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZz X2dldF93b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2luaXQiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19pbml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2ZvcmNlX2Z1 bGxzY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfZm9yY2VfZnVsbHNj cmVlbiAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9udW1fd29ya3NwYWNlcyIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9udW1fd29ya3NwYWNlcyAoaW50IG5fd29ya3Nw YWNlcyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIHByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IChib29sIHdoZXRo ZXIpOworLQl9CistCW5hbWVzcGFjZSBVdGlsIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfYWRkX3ZlcmJvc2VfdG9waWMiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRv cGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24iKV0KKy0JCXB1YmxpYyBz dGF0aWMgc3RyaW5nIGV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1aW50IGtleWJp bmRpbmdfYWN0aW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfZ191dGY4X3N0cm5kdXAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3Ry aW5nIGdfdXRmOF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9sb2NhbGVf ZGlyZWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuTG9jYWxlRGlyZWN0aW9uIGdldF9s b2NhbGVfZGlyZWN0aW9uICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv dXRpbC5oIiwgY25hbWUgPSAibWV0YV9ncmF2aXR5X3RvX3N0cmluZyIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIHN0cmluZyBncmF2aXR5X3RvX3N0cmluZyAoaW50IGdyYXZpdHkpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9p c19kZWJ1Z2dpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19kZWJ1Z2dpbmcgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRh X2lzX3N5bmNpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19zeW5jaW5nICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9p c192ZXJib3NlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdmVyYm9zZSAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNf d2F5bGFuZF9jb21wb3NpdG9yIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfd2F5bGFuZF9j b21wb3NpdG9yICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV9sYXRlcl9hZGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCBsYXRl cl9hZGQgKE1ldGEuTGF0ZXJUeXBlIHdoZW4sIG93bmVkIEdMaWIuU291cmNlRnVuYyBmdW5jKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1l dGFfbGF0ZXJfcmVtb3ZlIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgbGF0ZXJfcmVtb3ZlICh1 aW50IGxhdGVyX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfcG9wX25vX21zZ19wcmVmaXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBwb3Bfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcHVzaF9ub19tc2dfcHJlZml4IildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgcHVzaF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9yZWN0IildCistCQlw dWJsaWMgc3RhdGljIE1ldGEuUmVjdGFuZ2xlPyByZWN0IChpbnQgeCwgaW50IHksIGludCB3aWR0 aCwgaW50IGhlaWdodCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX3JlbW92ZV92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgcmVtb3ZlX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRh X3Nob3dfZGlhbG9nIildCistCQlwdWJsaWMgc3RhdGljIEdMaWIuUGlkIHNob3dfZGlhbG9nIChz dHJpbmcgdHlwZSwgc3RyaW5nIG1lc3NhZ2UsIHN0cmluZyB0aW1lb3V0LCBzdHJpbmcgZGlzcGxh eSwgc3RyaW5nIG9rX3RleHQsIHN0cmluZyBjYW5jZWxfdGV4dCwgc3RyaW5nIGljb25fbmFtZSwg aW50IHRyYW5zaWVudF9mb3IsIEdMaWIuU0xpc3Q8dm9pZCo+IGNvbHVtbnMsIEdMaWIuU0xpc3Q8 dm9pZCo+IGVudHJpZXMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRp bC5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFsIildCistCQlwdWJsaWMgc3Rh dGljIGludCB1bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV91bnNp Z25lZF9sb25nX2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCB1bnNpZ25lZF9sb25nX2hh c2ggKHZvaWQqIHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3JfdHJhcF9wb3AiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCB4MTFfZXJyb3JfdHJhcF9wb3AgKE1ldGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRh X3gxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQg eDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3Bs YXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV94MTFfZXJyb3JfdHJhcF9wdXNoIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgeDEx X2Vycm9yX3RyYXBfcHVzaCAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5KTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIHR5cGVfaWQg PSAibWV0YV9iYWNrZW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBC YWNrZW5kIDogR0xpYi5PYmplY3QsIEdMaWIuSW5pdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIGNuYW1lID0g Im1ldGFfZ2V0X2JhY2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tl bmQgZ2V0X2JhY2tlbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRuZCBnZXRfZG5kICgp OworLQkJcHVibGljIHVub3duZWQgTWV0YS5SZW1vdGVBY2Nlc3NDb250cm9sbGVyIGdldF9yZW1v dGVfYWNjZXNzX2NvbnRyb2xsZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9zdGFnZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlk eCk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZh cmlhbnRzLCBzdHJpbmcgb3B0aW9ucyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbnVtbG9jayAoYm9v bCBudW1sb2NrX3N0YXRlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVp bnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChp bnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQg KGJvb2wgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEJhY2tncm91bmQg KE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2Fs bCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZp bGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBz dHlsZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOwor LQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3Jv dW5kU3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChHRGVza3RvcC5C YWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5Db2xvciBjb2xvciwg Q2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQgPSAi bWV0YV9iYWNrZ3JvdW5kX2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNr Z3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3Iq IildCistCQlwdWJsaWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50 IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3Vu ZCBiYWNrZ3JvdW5kKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoYm9vbCBlbmFibGVk LCBpbnQgaGVpZ2h0LCBkb3VibGUgdG9uZV9zdGFydCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9u aXRvciAoaW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRlIChib29sIGVu YWJsZWQsIGRvdWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSBicmln aHRuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJv b2wgZ3JhZGllbnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgaW50IGdyYWRpZW50X2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBkb3VibGUgZ3JhZGllbnRfbWF4X2RhcmtuZXNzIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3Bs YXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7 IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEdyb3VwICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNr Z3JvdW5kSW1hZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2xvYWRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0 eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dy b3VuZEltYWdlQ2FjaGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZ3Jv dW5kSW1hZ2VDYWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmRJ bWFnZSBsb2FkIChHTGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5G aWxlIGZpbGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgQmFycmllciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYXJyaWVyICgp OworLQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2FjdGl2ZSAo KTsKKy0JCXB1YmxpYyB2b2lkIHJlbGVhc2UgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFycmllckRpcmVjdGlvbiBkaXJl Y3Rpb25zIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4MSB7IGdldDsgY29uc3RydWN0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDIgeyBnZXQ7IGNvbnN0cnVjdDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkxIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MiB7IGdldDsgY29u c3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaGl0IChNZXRhLkJhcnJpZXJFdmVudCBl dmVudCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGVmdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZl bnQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLQlb Q29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXJFdmVudCB7CistCQlwdWJsaWMgaW50IGR0 OworLQkJcHVibGljIGRvdWJsZSBkeDsKKy0JCXB1YmxpYyBkb3VibGUgZHk7CistCQlwdWJsaWMg aW50IGV2ZW50X2lkOworLQkJcHVibGljIGJvb2wgZ3JhYmJlZDsKKy0JCXB1YmxpYyBib29sIHJl bGVhc2VkOworLQkJcHVibGljIHVpbnQzMiB0aW1lOworLQkJcHVibGljIGRvdWJsZSB4OworLQkJ cHVibGljIGRvdWJsZSB5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3RyYWNr ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGliLk9i amVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgQ3Vyc29yVHJhY2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRh LkN1cnNvclRyYWNrZXIgZ2V0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cist CQlwdWJsaWMgdm9pZCBnZXRfaG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMg dm9pZCBnZXRfcG9pbnRlciAoaW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2Rz KTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVi bGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJz b3JfbW92ZWQgKGZsb2F0IG9iamVjdCwgZmxvYXQgcDApOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERp c3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBhZGRfaWdub3JlZF9jcm9zc2luZ19zZXJpYWwgKHVs b25nIHNlcmlhbCk7CistCQlwdWJsaWMgdWludCBhZGRfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUs IEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzLCBvd25l ZCBNZXRhLktleUhhbmRsZXJGdW5jIGhhbmRsZXIpOworLQkJcHVibGljIGJvb2wgYmVnaW5fZ3Jh Yl9vcCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBwb2ludGVyX2Fs cmVhZHlfZ3JhYmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVsb25nIG1vZG1h c2ssIHVpbnQzMiB0aW1lc3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOworLQkJcHVibGlj IHZvaWQgY2xlYXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsb3NlICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93ICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdl dF9jdXJyZW50X3RpbWUgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWVfcm91 bmR0cmlwICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRv dyAoKTsKKy0JCXB1YmxpYyBNZXRhLkdyYWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1 aW50IGdldF9rZXliaW5kaW5nX2FjdGlvbiAodWludCBrZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0J CXB1YmxpYyB1aW50MzIgZ2V0X2xhc3RfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEuUmVj dGFuZ2xlIGdldF9tb25pdG9yX2dlb21ldHJ5IChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgYm9v bCBnZXRfbW9uaXRvcl9pbl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgaW50 IGdldF9tb25pdG9yX2luZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X21vbml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9yLCBN ZXRhLkRpc3BsYXlEaXJlY3Rpb24gZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMg KCk7CistCQlwdWJsaWMgc3RyaW5nIGdldF9wYWRfYWN0aW9uX2xhYmVsIChDbHV0dGVyLklucHV0 RGV2aWNlIHBhZCwgTWV0YS5QYWRBY3Rpb25UeXBlIGFjdGlvbl90eXBlLCB1aW50IGFjdGlvbl9u dW1iZXIpOworLQkJcHVibGljIGludCBnZXRfcHJpbWFyeV9tb25pdG9yICgpOworLQkJcHVibGlj IHZvaWQgZ2V0X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuU291bmRQbGF5ZXIgZ2V0X3NvdW5kX3BsYXllciAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUs IE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0 YS5XaW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNl PyB3b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0 IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRv dz8gd2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3Nw YWNlTWFuYWdlciBnZXRfd29ya3NwYWNlX21hbmFnZXIgKCk7CistCQlwdWJsaWMgdWludCBncmFi X2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZs YWdzKTsKKy0JCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0 dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKy0JCXB1YmxpYyBib29sIHJlbW92ZV9rZXli aW5kaW5nIChzdHJpbmcgbmFtZSk7CistCQlwdWJsaWMgdm9pZCByZXF1ZXN0X3BhZF9vc2QgKENs dXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25fbW9kZSk7CistCQlwdWJsaWMgdm9p ZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8 d2VhayBNZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1l dGEuV2luZG93PiB3aW5kb3dzKTsKKy0JCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2Jh cnJpZXJzICgpOworLQkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9p ZCk7CistCQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50 MzIgdGltZTIpOworLQkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQor LQkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3Qs IHVpbnQgcDAsIHVpbnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl91cGRhdGVk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdsX3ZpZGVvX21lbW9yeV9wdXJnZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9iZWdpbiAoTWV0YS5EaXNwbGF5IG9iamVjdCwg TWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBn cmFiX29wX2VuZCAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3Jh Yk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBpbl9mdWxsc2NyZWVuX2NoYW5nZWQgKCk7 CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJzX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5X2tleSAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBwYWRfbW9kZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCB1aW50 IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXN0YWNrZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIGJvb2wgcmVzdGFydCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93 X29zZCAoaW50IG9iamVjdCwgc3RyaW5nIHAwLCBzdHJpbmcgcDEpOworLQkJcHVibGljIHNpZ25h bCB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IHNob3dfcGFkX29zZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBwYWQsIEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MsIHN0cmluZyBsYXlvdXRfcGF0aCwgYm9vbCBl ZGl0aW9uX21vZGUsIGludCBtb25pdG9yX2lkeCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hv d19yZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBp bnQgcDIpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJp bmc/IG1lc3NhZ2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVza3RvcF9jaGFu Z2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRv dyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlv biAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50 ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgd2luZG93X2xlZnRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19tYXJrZWRfdXJnZW50IChNZXRhLldpbmRv dyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfb3BlbmVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfZG5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEbmQgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgRG5kICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9lbnRlciAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBkbmRfbGVhdmUgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5k X3Bvc2l0aW9uX2NoYW5nZSAoaW50IG9iamVjdCwgaW50IHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRnJhbWUgeworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfaWRsZV9tb25pdG9yX2dldF90eXBlICgpIildCistCXB1 YmxpYyBjbGFzcyBJZGxlTW9uaXRvciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBJZGxlTW9uaXRvciAoKTsK Ky0JCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3du ZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHVpbnQg YWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBj YWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRf Y29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9m b3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUg KCk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9 ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCki KV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsKKy0JCXB1YmxpYyB1 aW50IGdldF9tYXNrICgpOworLQkJcHVibGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIGdldF9tb2Rp ZmllcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CistCQlwdWJs aWMgYm9vbCBpc19idWlsdGluICgpOworLQkJcHVibGljIGJvb2wgaXNfcmV2ZXJzZWQgKCk7Cist CQlbQ0NvZGUgKGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVyIChzdHJpbmcgbmFtZSwg b3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQg PSAibWV0YV9sYXVuY2hfY29udGV4dF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgTGF1 bmNoQ29udGV4dCA6IEdMaWIuQXBwTGF1bmNoQ29udGV4dCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgTGF1bmNoQ29udGV4dCAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF90aW1lc3RhbXAgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIHZvaWQgc2V0X3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQg dGltZXN0YW1wIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSB7IG93bmVkIGdldDsgc2V0OyB9CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIHR5 cGVfaWQgPSAibWV0YV9tb25pdG9yX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOwor LQkJcHVibGljIGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgTWV0YS5Nb25pdG9yTWFuYWdlciBAZ2V0ICgpOworLQkJcHVibGljIHN0YXRpYyBpbnQg Z2V0X2Rpc3BsYXlfY29uZmlndXJhdGlvbl90aW1lb3V0ICgpOworLQkJcHVibGljIGJvb2wgZ2V0 X2lzX2J1aWx0aW5fZGlzcGxheV9vbiAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfZm9y X2Nvbm5lY3RvciAoc3RyaW5nIGNvbm5lY3Rvcik7CistCQlwdWJsaWMgTWV0YS5Nb25pdG9yU3dp dGNoQ29uZmlnVHlwZSBnZXRfc3dpdGNoX2NvbmZpZyAoKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRj aF9jb25maWcgKE1ldGEuTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgY29uZmlnX3R5cGUpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZW5kIGJhY2tlbmQgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxh eV9jaGFuZ2UgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkX2ludGVybmFsICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHBvd2VyX3NhdmVfbW9kZV9jaGFuZ2VkICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCB0eXBlX2lkID0g Im1ldGFfcGx1Z2luX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQbHVn aW4gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgUGx1Z2luICgpOworLQkJcHVibGljIGJvb2wgYmVnaW5fbW9k YWwgKE1ldGEuTW9kYWxPcHRpb25zIG9wdGlvbnMsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIHZvaWQgY29tcGxldGVfZGlzcGxheV9jaGFuZ2UgKGJvb2wgb2spOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3kgKE1ldGEuV2luZG93 QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgZGVzdHJveV9jb21wbGV0ZWQgKE1ldGEuV2lu ZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgZW5kX21vZGFsICh1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gZ2V0X2luZm8gKCk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX3RpbGVfcHJldmlldyAoKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWJpbmRpbmdfZmlsdGVyIChNZXRh LktleUJpbmRpbmcgYmluZGluZyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5U eXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAo TWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtYXBfY29tcGxldGVkIChN ZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIG1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lk IG1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IHBsdWdpbl9p bmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd190aWxl X3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBp bnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBzaG93X3dpbmRvd19tZW51IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93 TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRv dywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNpemVfY2hhbmdlIChNZXRhLldpbmRv d0FjdG9yIGFjdG9yLCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3Rhbmds ZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCXB1 YmxpYyB2b2lkIHNpemVfY2hhbmdlX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZWQgKE1l dGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgc3RhcnQgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBz d2l0Y2hfd29ya3NwYWNlIChpbnQgZnJvbSwgaW50IHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBk aXJlY3Rpb24pOworLQkJcHVibGljIHZvaWQgc3dpdGNoX3dvcmtzcGFjZV9jb21wbGV0ZWQgKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmltaXplIChNZXRh LldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVfY29tcGxldGVk IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCBib29sIHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBl X2lkID0gIm1ldGFfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyX2dldF90eXBlICgpIildCistCXB1 YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NDb250cm9sbGVyIDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90 ZUFjY2Vzc0NvbnRyb2xsZXIgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbmV3X2hhbmRsZSAo TWV0YS5SZW1vdGVBY2Nlc3NIYW5kbGUgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX3JlbW90ZV9hY2Nlc3NfaGFuZGxlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBS ZW1vdGVBY2Nlc3NIYW5kbGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzSGFuZGxlICgp OworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzdG9wICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHN0b3BwZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFj dF0KKy0JcHVibGljIGNsYXNzIFNldHRpbmdzIHsKKy0JCXB1YmxpYyBpbnQgZ2V0X2ZvbnRfZHBp ICgpOworLQkJcHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93 X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0KKy0J W0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworLQkJcHVibGljIHZvaWQgZ2V0X2Jv dW5kcyAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3 aW5kb3dfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1YmxpYyB2b2lk IHBhaW50IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyLCBpbnQgd2luZG93X3gsIGludCB3 aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNp dHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKy0JCXB1YmxpYyBN ZXRhLlNoYWRvdyBAcmVmICgpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZmFjdG9yeV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgU2hhZG93RmFjdG9yeSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBTaGFkb3dGYWN0b3J5ICgpOworLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuU2hhZG93RmFjdG9yeSBnZXRfZGVmYXVsdCAoKTsK Ky0JCXB1YmxpYyBNZXRhLlNoYWRvd1BhcmFtcyBnZXRfcGFyYW1zIChzdHJpbmcgY2xhc3NfbmFt ZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBnZXRfc2hhZG93IChNZXRh LldpbmRvd1NoYXBlIHNoYXBlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHN0cmluZyBjbGFzc19u YW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIHZvaWQgc2V0X3BhcmFtcyAoc3RyaW5nIGNs YXNzX25hbWUsIGJvb2wgZm9jdXNlZCwgTWV0YS5TaGFkb3dQYXJhbXMgQHBhcmFtcyk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRh X3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0 dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUg KCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUlu dCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFwcyk7 CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190ZXh0 dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5SZWdp b24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgsIGlu dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVf Y2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg U291bmRQbGF5ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5GaWxl IGZpbGUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUg PSBudWxsKTsKKy0JCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUsIHN0 cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuU3RhZ2UsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5B bmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFn ZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mb2N1c2VkIChNZXRhLkRpc3BsYXkgZGlz cGxheSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWN0b3JzX3BhaW50ZWQgKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX25vdGlmaWNhdGlvbl9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgU3RhcnR1cE5vdGlmaWNhdGlvbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFy dHVwTm90aWZpY2F0aW9uICgpOworLQkJcHVibGljIE1ldGEuTGF1bmNoQ29udGV4dCBjcmVhdGVf bGF1bmNoZXIgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3Bs YXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0 YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFN0YXJ0dXBTZXF1 ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7CistCQlwdWJsaWMgdm9p ZCBjb21wbGV0ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYXBwbGljYXRpb25f aWQgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfY29tcGxldGVkICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9pY29uX25hbWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGlj IHVpbnQ2NCBnZXRfdGltZXN0YW1wICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93 bWNsYXNzICgpOworLQkJcHVibGljIGludCBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIHN0 cmluZyBhcHBsaWNhdGlvbl9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5n IGljb25fbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIGlkIHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgY29uc3RydWN0OyB9 CistCQlwdWJsaWMgdWludDY0IHRpbWVzdGFtcCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJs aWMgc3RyaW5nIHdtY2xhc3MgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIGludCB3b3Jr c3BhY2UgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaGVtZSB7CistCQlwdWJsaWMgdm9pZCBm cmVlICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90eXBlICgpIild CistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93 ICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBjdXJyZW50X3RpbWUpOworLQkJ cHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVpbnQzMiBjdXJyZW50X3RpbWUs IE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfbW92ZSAo KTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBiZWdp bl9ncmFiX29wIChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9hY3Rpb24sIHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgpOworLQkJcHVibGljIGJvb2wgY2Fu X21heGltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX21pbmltaXplICgpOworLQkJcHVibGlj IGJvb2wgY2FuX3NoYWRlICgpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtzcGFjZSAoTWV0 YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2Vf YnlfaW5kZXggKGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBlbmQpOworLQkJcHVibGljIHZvaWQg Y2hlY2tfYWxpdmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGNsaWVudF9yZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0KTsK Ky0JCXB1YmxpYyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBAZGVsZXRl ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGZpbmRf cm9vdF9hbmNlc3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1ldGEuV2luZG93Rm9yZWFjaEZ1 bmMgZnVuYyk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5zaWVudCAoTWV0YS5XaW5kb3dG b3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0X3Rv X2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKy0JCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSBnZXRfYnVmZmVyX3JlY3QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2NsaWVudF9tYWNoaW5lICgpOworLQkJcHVibGljIE1ldGEuV2luZG93Q2xpZW50VHlwZSBn ZXRfY2xpZW50X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfY29t cG9zaXRvcl9wcml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNjcmlw dGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENhaXJvLlJlZ2lvbj8gZ2V0X2ZyYW1lX2JvdW5kcyAoKTsKKy0J CXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfZnJhbWVfcmVjdCAoKTsKKy0JCXB1YmxpYyBNZXRh LkZyYW1lVHlwZSBnZXRfZnJhbWVfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9ndGtfYXBwbGljYXRpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2d0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X2d0a190aGVtZV92YXJpYW50ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9ndGtfdW5pcXVlX2J1c19uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9n dGtfd2luZG93X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2ljb25fZ2VvbWV0 cnkgKG91dCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyB1aW50NjQgZ2V0X2lkICgp OworLQkJcHVibGljIE1ldGEuU3RhY2tMYXllciBnZXRfbGF5ZXIgKCk7CistCQlwdWJsaWMgTWV0 YS5NYXhpbWl6ZUZsYWdzIGdldF9tYXhpbWl6ZWQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25p dG9yICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9tdXR0ZXJfaGludHMgKCk7Cist CQlwdWJsaWMgaW50IGdldF9waWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Jv bGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NhbmRib3hlZF9hcHBfaWQgKCk7 CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3c/IGdldF90aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRs ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFuc2llbnRfZm9yICgp OworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEuV2lu ZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzc19pbnN0 YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25p dG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2N1cnJlbnRf bW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9t b25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtz cGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94d2luZG93ICgp OworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgYm9v bCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fu Y2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsKKy0JCXB1YmxpYyBi b29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2NsaWVudF9kZWNv cmF0ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19mdWxsc2NyZWVuICgpOworLQkJcHVibGljIGJv b2wgaXNfaGlkZGVuICgpOworLQkJcHVibGljIGJvb2wgaXNfbW9uaXRvcl9zaXplZCAoKTsKKy0J CXB1YmxpYyBib29sIGlzX29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGJvb2wgaXNf b25fcHJpbWFyeV9tb25pdG9yICgpOworLQkJcHVibGljIGJvb2wgaXNfb3ZlcnJpZGVfcmVkaXJl Y3QgKCk7CistCQlwdWJsaWMgYm9vbCBpc19yZW1vdGUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19z Y3JlZW5fc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zaGFkZWQgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19za2lwX3Rhc2tiYXIgKCk7CistCQlwdWJsaWMgdm9pZCBraWxsICgpOworLQkJcHVi bGljIGJvb2wgbG9jYXRlZF9vbl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7 CistCQlwdWJsaWMgdm9pZCBsb3dlciAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfYWJvdmUgKCk7 CistCQlwdWJsaWMgdm9pZCBtYWtlX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCBtYXhp bWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgbWlu aW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCBy b290X3hfbncsIGludCByb290X3lfbncpOworLQkJcHVibGljIHZvaWQgbW92ZV9yZXNpemVfZnJh bWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywgaW50IHcsIGlu dCBoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0b3IpOworLQkJ cHVibGljIHZvaWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfYnlwYXNzX2Nv bXBvc2l0b3IgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBhc3NfY29tcG9z aXRvciAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUgKEdMaWIuT2Jq ZWN0IHByaXYpOworLQkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJ cHVibGljIHZvaWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyByZWN0KTsKKy0J CXB1YmxpYyB2b2lkIHNoYWRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNo b3ZlX3RpdGxlYmFyX29uc2NyZWVuICgpOworLQkJcHVibGljIGJvb2wgc2hvd2luZ19vbl9pdHNf d29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgc2h1dGRvd25fZ3JvdXAgKCk7CistCQlwdWJs aWMgdm9pZCBzdGljayAoKTsKKy0JCXB1YmxpYyBib29sIHRpdGxlYmFyX2lzX29uc2NyZWVuICgp OworLQkJcHVibGljIHZvaWQgdW5tYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgdW5tYWtl X2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1heGltaXplIChNZXRhLk1heGltaXpl RmxhZ3MgZGlyZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplICgpOworLQkJcHVi bGljIHZvaWQgdW5zZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCB1bnNo YWRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVuc3RpY2sgKCk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFib3ZlIHsgZ2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFwcGVhcnNfZm9jdXNlZCB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkZWNvcmF0ZWQgeyBnZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVtYW5kc19hdHRlbnRpb24g eyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVl biB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggeyBn ZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX2lkIHsgZ2V0OyB9CistCQlw dWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVi bGljIHN0cmluZyBndGtfbWVudWJhcl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0 cmluZyBndGtfdW5pcXVlX2J1c19uYW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a193 aW5kb3dfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIHZvaWQqIGljb24geyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgbWF4aW1pemVkX2hvcml6b250YWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBtYXhpbWl6ZWRfdmVydGljYWxseSB7IGdldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdm9pZCogbWluaV9pY29uIHsgZ2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdldDsgfQorLQkJ cHVibGljIHN0cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgdXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3RpbWUgeyBnZXQ7 IH0KKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwb3Np dGlvbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHJhaXNlZCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBzaG93biAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2No YW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2VkICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfd2luZG93X2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5B bmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXaW5k b3dBY3RvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRv dyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7Cist CQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93ICgpOworLQkJcHVibGljIGJvb2wgaXNfZGVz dHJveWVkICgpOworLQkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOworLQkJcHVibGlj IE1ldGEuV2luZG93IG1ldGFfd2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNo YWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2Nv bXBsZXRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgV2luZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgV2luZG93R3JvdXAgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRv d19zaGFwZV9yZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3NoYXBlX2dldF90eXBlICgpIiwg dW5yZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfdW5yZWYiKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93U2hhcGUgKENhaXJvLlJlZ2lvbiBy ZWdpb24pOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuV2luZG93U2hhcGUgc2hhcGVfYik7 CistCQlwdWJsaWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJvcmRlcl90b3AsIGludCBib3JkZXJf cmlnaHQsIGludCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xlZnQpOworLQkJcHVibGljIHVp bnQgaGFzaCAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1NoYXBlIEByZWYgKCk7CistCQlwdWJs aWMgQ2Fpcm8uUmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93aWR0aCwgaW50IGNlbnRlcl9o ZWlnaHQpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAi bWV0YV93b3Jrc3BhY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZSA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAo dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX2ZvY3VzIChN ZXRhLldpbmRvdyBmb2N1c190aGlzLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu V29ya3NwYWNlIGdldF9uZWlnaGJvciAoTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsK Ky0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsK Ky0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQg d2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGluZGV4ICgpOworLQkJcHVibGljIEdMaWIu TGlzdDx3ZWFrIE1ldGEuV2luZG93PiBsaXN0X3dpbmRvd3MgKCk7CistCQlwdWJsaWMgdm9pZCBz ZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD8+IHN0cnV0cyk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCB3b3Jrc3BhY2VfaW5kZXggeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfYWRkZWQgKE1ldGEuV2luZG93IG9iamVj dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X3JlbW92ZWQgKE1ldGEuV2luZG93IG9i amVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfbWFuYWdlcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV29ya3NwYWNlTWFuYWdlciA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBXb3Jrc3BhY2VNYW5hZ2VyICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3Bh Y2UgYXBwZW5kX25ld193b3Jrc3BhY2UgKGJvb2wgYWN0aXZhdGUsIHVpbnQzMiB0aW1lc3RhbXAp OworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X2FjdGl2ZV93b3Jrc3BhY2Ug KCk7CistCQlwdWJsaWMgaW50IGdldF9hY3RpdmVfd29ya3NwYWNlX2luZGV4ICgpOworLQkJcHVi bGljIGludCBnZXRfbl93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jr c3BhY2UgZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKy0JCXB1YmxpYyB2b2lk IG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19j b3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsK Ky0JCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFj ZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgaW50IG5fd29ya3NwYWNlcyB7IGdldDsg fQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjdGl2ZV93b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB3b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmplY3QsIGludCBwMCwgTWV0YS5Nb3Rp b25EaXJlY3Rpb24gcDEpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfeDExX2Rpc3BsYXlf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgWDExRGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5k b3cgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jh c2UgKCk7CistCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJcHVibGljIGlu dCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRf aW5wdXRfZm9jdXNfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUs IHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3Vz X3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRvdyk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfY25hbWUgPSAiTWV0 YUNsb3NlRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIENsb3NlRGlhbG9nIDogR0xpYi5PYmplY3Qg eworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgZm9jdXMgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qg dm9pZCBoaWRlICgpOworLQkJcHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0JCXB1YmxpYyBh YnN0cmFjdCB2b2lkIHNob3cgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBh YnN0cmFjdCBNZXRhLldpbmRvdyB3aW5kb3cgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ W0hhc0VtaXR0ZXJdCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuQ2xvc2VE aWFsb2dSZXNwb25zZSByZXNwb25zZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUlu aGliaXRTaG9ydGN1dHNEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9z aG9ydGN1dHNfZGlhbG9nX2dldF90eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgSW5oaWJp dFNob3J0Y3V0c0RpYWxvZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lk IGhpZGUgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93ICgpOworLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYWJzdHJhY3QgTWV0YS5XaW5kb3cgd2luZG93IHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2b2lk IHJlc3BvbnNlIChNZXRhLkluaGliaXRTaG9ydGN1dHNEaWFsb2dSZXNwb25zZSByZXNwb25zZSk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEJ1dHRv bkxheW91dCB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3 ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworLQkJW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNf c3BhY2VyWzRdOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMg d2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07CistCQlbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19o YXNfc3BhY2VyWzRdOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IHN0cnVjdCBFZGdlIHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGlj IE1ldGEuU2lkZSBzaWRlX3R5cGU7CistCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEZyYW1l Qm9yZGVycyB7CistCQlwdWJsaWMgR3RrLkJvcmRlciB2aXNpYmxlOworLQkJcHVibGljIEd0ay5C b3JkZXIgaW52aXNpYmxlOworLQkJcHVibGljIEd0ay5Cb3JkZXIgdG90YWw7CistCQlwdWJsaWMg dm9pZCBjbGVhciAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLXBsdWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1 Z2luSW5mbyB7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB3ZWFrIHN0 cmluZyB2ZXJzaW9uOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGF1dGhvcjsKKy0JCXB1YmxpYyB3 ZWFrIHN0cmluZyBsaWNlbnNlOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBQbHVnaW5W ZXJzaW9uIHsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7CistCQlwdWJsaWMgdWludCB2 ZXJzaW9uX21pbm9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKy0JCXB1YmxpYyB1 aW50IHZlcnNpb25fYXBpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKy0JCXB1YmxpYyBpbnQg eDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7CistCQlwdWJsaWMgaW50 IGhlaWdodDsKKy0JCXB1YmxpYyBpbnQgYXJlYSAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5z X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIE1ldGEuUmVjdGFu Z2xlPyBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgY291bGRfZml0X3JlY3QgKE1ldGEuUmVjdGFu Z2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuUmVjdGFuZ2xlIHNy YzIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyBib29sIGhvcml6X292ZXJs YXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIGludGVyc2VjdCAoTWV0 YS5SZWN0YW5nbGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRlc3QpOworLQkJcHVibGljIGJv b2wgb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIE1ldGEuUmVjdGFu Z2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCB2ZXJ0X292 ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsKKy0JCXB1YmxpYyBpbnQgcmFk aXVzOworLQkJcHVibGljIGludCB0b3BfZmFkZTsKKy0JCXB1YmxpYyBpbnQgeF9vZmZzZXQ7Cist CQlwdWJsaWMgaW50IHlfb2Zmc2V0OworLQkJcHVibGljIHVpbnQ4IG9wYWNpdHk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFN0cnV0IHsKKy0JCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBzaWRlOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGlj IGVudW0gQmFycmllckRpcmVjdGlvbiB7CistCQlQT1NJVElWRV9YLAorLQkJUE9TSVRJVkVfWSwK Ky0JCU5FR0FUSVZFX1gsCistCQlORUdBVElWRV9ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9CVVRUT05fRlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBCdXR0b25GdW5jdGlvbiB7CistCQlNRU5VLAorLQkJ TUlOSU1JWkUsCistCQlNQVhJTUlaRSwKKy0JCUNMT1NFLAorLQkJTEFTVAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9j bG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ2xvc2VE aWFsb2dSZXNwb25zZSB7CistCQlXQUlULAorLQkJRk9SQ0VfQ0xPU0UKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBDb21wRWZmZWN0IHsKKy0JCUNSRUFURSwKKy0J CVVOTUlOSU1JWkUsCistCQlERVNUUk9ZLAorLQkJTUlOSU1JWkUsCistCQlOT05FCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNwcmVmaXggPSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBDdXJzb3IgeworLQkJTk9ORSwKKy0JCURFRkFVTFQs CistCQlOT1JUSF9SRVNJWkUsCistCQlTT1VUSF9SRVNJWkUsCistCQlXRVNUX1JFU0laRSwKKy0J CUVBU1RfUkVTSVpFLAorLQkJU0VfUkVTSVpFLAorLQkJU1dfUkVTSVpFLAorLQkJTkVfUkVTSVpF LAorLQkJTldfUkVTSVpFLAorLQkJTU9WRV9PUl9SRVNJWkVfV0lORE9XLAorLQkJQlVTWSwKKy0J CURORF9JTl9EUkFHLAorLQkJRE5EX01PVkUsCistCQlETkRfQ09QWSwKKy0JCURORF9VTlNVUFBP UlRFRF9UQVJHRVQsCistCQlQT0lOVElOR19IQU5ELAorLQkJQ1JPU1NIQUlSLAorLQkJSUJFQU0s CistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0g Im1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51 bSBEZWJ1Z1RvcGljIHsKKy0JCVZFUkJPU0UsCistCQlGT0NVUywKKy0JCVdPUktBUkVBLAorLQkJ U1RBQ0ssCistCQlUSEVNRVMsCistCQlTTSwKKy0JCUVWRU5UUywKKy0JCVdJTkRPV19TVEFURSwK Ky0JCVdJTkRPV19PUFMsCistCQlHRU9NRVRSWSwKKy0JCVBMQUNFTUVOVCwKKy0JCVBJTkcsCist CQlYSU5FUkFNQSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJU1lOQywKKy0JCUVSUk9SUywKKy0JCVNU QVJUVVAsCistCQlQUkVGUywKKy0JCUdST1VQUywKKy0JCVJFU0laSU5HLAorLQkJU0hBUEVTLAor LQkJQ09NUE9TSVRPUiwKKy0JCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGlyZWN0aW9uIHsKKy0JCUxF RlQsCistCQlSSUdIVCwKKy0JCVRPUCwKKy0JCUJPVFRPTSwKKy0JCVVQLAorLQkJRE9XTiwKKy0J CUhPUklaT05UQUwsCistCQlWRVJUSUNBTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRElT UExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gRGlzcGxheUNvcm5lciB7CistCQlUT1BMRUZULAorLQkJVE9QUklHSFQsCist CQlCT1RUT01MRUZULAorLQkJQk9UVE9NUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIERpc3BsYXlEaXJlY3Rpb24geworLQkJVVAsCistCQlET1dOLAor LQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5 cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRWRn ZVR5cGUgeworLQkJV0lORE9XLAorLQkJTU9OSVRPUiwKKy0JCVNDUkVFTgorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfRVhJVF8iLCB0eXBlX2lkID0gIm1ldGFfZXhpdF9jb2RlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIEV4aXRDb2RlIHsKKy0JCVNVQ0NFU1MsCistCQlFUlJPUgor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1l X2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRnJhbWVGbGFn cyB7CistCQlBTExPV1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfTUlOSU1J WkUsCistCQlBTExPV1NfTUFYSU1JWkUsCistCQlBTExPV1NfVkVSVElDQUxfUkVTSVpFLAorLQkJ QUxMT1dTX0hPUklaT05UQUxfUkVTSVpFLAorLQkJSEFTX0ZPQ1VTLAorLQkJU0hBREVELAorLQkJ U1RVQ0ssCistCQlNQVhJTUlaRUQsCistCQlBTExPV1NfU0hBREUsCistCQlBTExPV1NfTU9WRSwK Ky0JCUZVTExTQ1JFRU4sCistCQlJU19GTEFTSElORywKKy0JCUFCT1ZFLAorLQkJVElMRURfTEVG VCwKKy0JCVRJTEVEX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBF XyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIEZyYW1lVHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0cs CistCQlVVElMSVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVELAorLQkJTEFT VDsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNw cmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29wX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIEdyYWJPcCB7CistCQlOT05FLAorLQkJV0lORE9XX0JBU0Us CistCQlDT01QT1NJVE9SLAorLQkJV0FZTEFORF9QT1BVUCwKKy0JCUZSQU1FX0JVVFRPTiwKKy0J CU1PVklORywKKy0JCVJFU0laSU5HX05XLAorLQkJUkVTSVpJTkdfTiwKKy0JCVJFU0laSU5HX05F LAorLQkJUkVTSVpJTkdfRSwKKy0JCVJFU0laSU5HX1NXLAorLQkJUkVTSVpJTkdfUywKKy0JCVJF U0laSU5HX1NFLAorLQkJUkVTSVpJTkdfVywKKy0JCUtFWUJPQVJEX01PVklORywKKy0JCUtFWUJP QVJEX1JFU0laSU5HX1VOS05PV04sCistCQlLRVlCT0FSRF9SRVNJWklOR19OVywKKy0JCUtFWUJP QVJEX1JFU0laSU5HX04sCistCQlLRVlCT0FSRF9SRVNJWklOR19ORSwKKy0JCUtFWUJPQVJEX1JF U0laSU5HX0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19TVywKKy0JCUtFWUJPQVJEX1JFU0laSU5H X1MsCistCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1cKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxPR19SRVNQT05T RV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jlc3BvbnNlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEluaGliaXRTaG9ydGN1dHNEaWFsb2dSZXNwb25z ZSB7CistCQlBTExPVywKKy0JCURFTlkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWUJJ TkRJTkdfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19hY3Rpb25fZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0FjdGlvbiB7CistCQlOT05FLAorLQkJ V09SS1NQQUNFXzEsCistCQlXT1JLU1BBQ0VfMiwKKy0JCVdPUktTUEFDRV8zLAorLQkJV09SS1NQ QUNFXzQsCistCQlXT1JLU1BBQ0VfNSwKKy0JCVdPUktTUEFDRV82LAorLQkJV09SS1NQQUNFXzcs CistCQlXT1JLU1BBQ0VfOCwKKy0JCVdPUktTUEFDRV85LAorLQkJV09SS1NQQUNFXzEwLAorLQkJ V09SS1NQQUNFXzExLAorLQkJV09SS1NQQUNFXzEyLAorLQkJV09SS1NQQUNFX0xFRlQsCistCQlX T1JLU1BBQ0VfUklHSFQsCistCQlXT1JLU1BBQ0VfVVAsCistCQlXT1JLU1BBQ0VfRE9XTiwKKy0J CVdPUktTUEFDRV9MQVNULAorLQkJU1dJVENIX0FQUExJQ0FUSU9OUywKKy0JCVNXSVRDSF9BUFBM SUNBVElPTlNfQkFDS1dBUkQsCistCQlTV0lUQ0hfR1JPVVAsCistCQlTV0lUQ0hfR1JPVVBfQkFD S1dBUkQsCistCQlTV0lUQ0hfV0lORE9XUywKKy0JCVNXSVRDSF9XSU5ET1dTX0JBQ0tXQVJELAor LQkJU1dJVENIX1BBTkVMUywKKy0JCVNXSVRDSF9QQU5FTFNfQkFDS1dBUkQsCistCQlDWUNMRV9H Uk9VUCwKKy0JCUNZQ0xFX0dST1VQX0JBQ0tXQVJELAorLQkJQ1lDTEVfV0lORE9XUywKKy0JCUNZ Q0xFX1dJTkRPV1NfQkFDS1dBUkQsCistCQlDWUNMRV9QQU5FTFMsCistCQlDWUNMRV9QQU5FTFNf QkFDS1dBUkQsCistCQlTSE9XX0RFU0tUT1AsCistCQlQQU5FTF9NQUlOX01FTlUsCistCQlQQU5F TF9SVU5fRElBTE9HLAorLQkJVE9HR0xFX1JFQ09SRElORywKKy0JCVNFVF9TUEVXX01BUkssCist CQlBQ1RJVkFURV9XSU5ET1dfTUVOVSwKKy0JCVRPR0dMRV9GVUxMU0NSRUVOLAorLQkJVE9HR0xF X01BWElNSVpFRCwKKy0JCVRPR0dMRV9USUxFRF9MRUZULAorLQkJVE9HR0xFX1RJTEVEX1JJR0hU LAorLQkJVE9HR0xFX0FCT1ZFLAorLQkJTUFYSU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJVE9H R0xFX1NIQURFRCwKKy0JCU1JTklNSVpFLAorLQkJQ0xPU0UsCistCQlCRUdJTl9NT1ZFLAorLQkJ QkVHSU5fUkVTSVpFLAorLQkJVE9HR0xFX09OX0FMTF9XT1JLU1BBQ0VTLAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfMSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzIsCistCQlNT1ZFX1RPX1dPUktTUEFD RV8zLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzUsCist CQlNT1ZFX1RPX1dPUktTUEFDRV82LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNywKKy0JCU1PVkVf VE9fV09SS1NQQUNFXzgsCistCQlNT1ZFX1RPX1dPUktTUEFDRV85LAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfMTAsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMSwKKy0JCU1PVkVfVE9fV09SS1NQQUNF XzEyLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfTEVGVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1JJ R0hULAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfVVAsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9ET1dO LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfTEFTVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9MRUZULAor LQkJTU9WRV9UT19NT05JVE9SX1JJR0hULAorLQkJTU9WRV9UT19NT05JVE9SX1VQLAorLQkJTU9W RV9UT19NT05JVE9SX0RPV04sCistCQlSQUlTRV9PUl9MT1dFUiwKKy0JCVJBSVNFLAorLQkJTE9X RVIsCistCQlNQVhJTUlaRV9WRVJUSUNBTExZLAorLQkJTUFYSU1JWkVfSE9SSVpPTlRBTExZLAor LQkJTU9WRV9UT19DT1JORVJfTlcsCistCQlNT1ZFX1RPX0NPUk5FUl9ORSwKKy0JCU1PVkVfVE9f Q09STkVSX1NXLAorLQkJTU9WRV9UT19DT1JORVJfU0UsCistCQlNT1ZFX1RPX1NJREVfTiwKKy0J CU1PVkVfVE9fU0lERV9TLAorLQkJTU9WRV9UT19TSURFX0UsCistCQlNT1ZFX1RPX1NJREVfVywK Ky0JCU1PVkVfVE9fQ0VOVEVSLAorLQkJT1ZFUkxBWV9LRVksCistCQlJU09fTkVYVF9HUk9VUCwK Ky0JCUFMV0FZU19PTl9UT1AsCistCQlTV0lUQ0hfTU9OSVRPUiwKKy0JCVJPVEFURV9NT05JVE9S LAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlw ZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10K Ky0JcHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKy0JCU5PTkUsCistCQlQRVJfV0lORE9X LAorLQkJQlVJTFRJTiwKKy0JCUlTX1JFVkVSU0VELAorLQkJTk9OX01BU0tBQkxFLAorLQkJSUdO T1JFX0FVVE9SRVBFQVQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVf aWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExhdGVy VHlwZSB7CistCQlSRVNJWkUsCistCQlDQUxDX1NIT1dJTkcsCistCQlDSEVDS19GVUxMU0NSRUVO LAorLQkJU1lOQ19TVEFDSywKKy0JCUJFRk9SRV9SRURSQVcsCistCQlJRExFCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2Nh bGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlv biB7CistCQlMVFIsCistCQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpF XyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxh Z3NdCistCXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3MgeworLQkJSE9SSVpPTlRBTCwKKy0JCVZF UlRJQ0FMLAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlw ZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlw dWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworLQkJUE9JTlRFUl9BTFJFQURZX0dSQUJCRUQsCist CQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01P TklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hfY29u ZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTW9uaXRvclN3aXRjaENvbmZp Z1R5cGUgeworLQkJQUxMX01JUlJPUiwKKy0JCUFMTF9MSU5FQVIsCistCQlFWFRFUk5BTCwKKy0J CUJVSUxUSU4sCistCQlVTktOT1dOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCist CQlSSUdIVCwKKy0JCVVQX0xFRlQsCistCQlVUF9SSUdIVCwKKy0JCURPV05fTEVGVCwKKy0JCURP V05fUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9p ZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBQ YWRBY3Rpb25UeXBlIHsKKy0JCUJVVFRPTiwKKy0JCVJJTkcsCistCQlTVFJJUAorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfUFJFRl8iLCB0eXBlX2lkID0gIm1ldGFfcHJlZmVyZW5jZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBQcmVmZXJlbmNlIHsKKy0JCU1PVVNFX0JVVFRPTl9N T0RTLAorLQkJRk9DVVNfTU9ERSwKKy0JCUZPQ1VTX05FV19XSU5ET1dTLAorLQkJQVRUQUNIX01P REFMX0RJQUxPR1MsCistCQlSQUlTRV9PTl9DTElDSywKKy0JCUFDVElPTl9ET1VCTEVfQ0xJQ0tf VElUTEVCQVIsCistCQlBQ1RJT05fTUlERExFX0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX1JJ R0hUX0NMSUNLX1RJVExFQkFSLAorLQkJQVVUT19SQUlTRSwKKy0JCUFVVE9fUkFJU0VfREVMQVks CistCQlGT0NVU19DSEFOR0VfT05fUE9JTlRFUl9SRVNULAorLQkJVElUTEVCQVJfRk9OVCwKKy0J CU5VTV9XT1JLU1BBQ0VTLAorLQkJRFlOQU1JQ19XT1JLU1BBQ0VTLAorLQkJS0VZQklORElOR1Ms CistCQlESVNBQkxFX1dPUktBUk9VTkRTLAorLQkJQlVUVE9OX0xBWU9VVCwKKy0JCVdPUktTUEFD RV9OQU1FUywKKy0JCVZJU1VBTF9CRUxMLAorLQkJQVVESUJMRV9CRUxMLAorLQkJVklTVUFMX0JF TExfVFlQRSwKKy0JCUdOT01FX0FDQ0VTU0lCSUxJVFksCistCQlHTk9NRV9BTklNQVRJT05TLAor LQkJQ1VSU09SX1RIRU1FLAorLQkJQ1VSU09SX1NJWkUsCistCQlSRVNJWkVfV0lUSF9SSUdIVF9C VVRUT04sCistCQlFREdFX1RJTElORywKKy0JCUZPUkNFX0ZVTExTQ1JFRU4sCistCQlXT1JLU1BB Q0VTX09OTFlfT05fUFJJTUFSWSwKKy0JCURSQUdHQUJMRV9CT1JERVJfV0lEVEgsCistCQlBVVRP X01BWElNSVpFLAorLQkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4 ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNoYWRvd01vZGUgeworLQkJQVVUTywKKy0JCUZPUkNF RF9PRkYsCistCQlGT1JDRURfT04KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwg dHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2lkZSB7 CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00KKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaXplQ2hhbmdlIHsKKy0JCU1BWElNSVpFLAor LQkJVU5NQVhJTUlaRSwKKy0JCUZVTExTQ1JFRU4sCistCQlVTkZVTExTQ1JFRU4KKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURFU0tUT1AsCist CQlCT1RUT00sCistCQlOT1JNQUwsCistCQlUT1AsCistCQlET0NLLAorLQkJT1ZFUlJJREVfUkVE SVJFQ1QsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfTElTVF8iLCB0 eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFi TGlzdCB7CistCQlOT1JNQUwsCistCQlET0NLUywKKy0JCUdST1VQLAorLQkJTk9STUFMX0FMTAor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3Rh Yl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiU2hvd1R5cGUgewor LQkJSUNPTiwKKy0JCUlOU1RBTlRMWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVklSVFVB TF8iLCB0eXBlX2lkID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIpXQorLQlb RmxhZ3NdCistCXB1YmxpYyBlbnVtIFZpcnR1YWxNb2RpZmllciB7CistCQlTSElGVF9NQVNLLAor LQkJQ09OVFJPTF9NQVNLLAorLQkJQUxUX01BU0ssCistCQlNRVRBX01BU0ssCistCQlTVVBFUl9N QVNLLAorLQkJSFlQRVJfTUFTSywKKy0JCU1PRDJfTUFTSywKKy0JCU1PRDNfTUFTSywKKy0JCU1P RDRfTUFTSywKKy0JCU1PRDVfTUFTSworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9X X0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CistCQlXQVlMQU5ELAor LQkJWDExCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lk ID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBX aW5kb3dNZW51VHlwZSB7CistCQlXTSwKKy0JCUFQUAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURFU0tUT1AsCistCQlE T0NLLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVE9PTEJBUiwKKy0JCU1FTlUs CistCQlVVElMSVRZLAorLQkJU1BMQVNIU0NSRUVOLAorLQkJRFJPUERPV05fTUVOVSwKKy0JCVBP UFVQX01FTlUsCistCQlUT09MVElQLAorLQkJTk9USUZJQ0FUSU9OLAorLQkJQ09NQk8sCistCQlE TkQsCistCQlPVkVSUklERV9PVEhFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9u aXRvciBtb25pdG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSld CistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlz cGxheSwgTWV0YS5XaW5kb3cgd2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2ZW50 KiIpXSBDbHV0dGVyLktleUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgUHJlZnND aGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0g MS45KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2lu ZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0NVUlJFTlRfVElNRSIpXQorLQlwdWJs aWMgY29uc3QgaW50IENVUlJFTlRfVElNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9J Q09OX05BTUUiKV0KKy0JcHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09O X0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29u c3QgaW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0K Ky0JcHVibGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9N SUNST19WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlDUk9fVkVSU0lPTjsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1J TklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQor LQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFf TUlOT1JfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50 IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JF X1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1BSRUZTX05PVElGWSIpXQorLQlwdWJsaWMgY29u c3QgaW50IFBSSU9SSVRZX1BSRUZTX05PVElGWTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJ VFlfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklP UklUWV9SRVNJWkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9LRVlCT0FSRF9J RCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRDsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKy0JcHVibGljIGNvbnN0 IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJv b2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZXhp dCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg R0xpYi5PcHRpb25Db250ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJs aWMgc3RhdGljIGJvb2wgZ2V0X3JlcGxhY2VfY3VycmVudF93bSAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNf cmVzdGFydCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcXVpdCAoTWV0YS5FeGl0 Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9z ZXNzaW9uICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/ IG1lc3NhZ2UpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21f a2V5YmluZGluZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAo c3RyaW5nIHdtX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9n ZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy19CitkaWZmIC0tZ2l0IHZhcGkvbGli bXV0dGVyLTUuZGVwcyB2YXBpL2xpYm11dHRlci02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggNTAl CityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci01LmRlcHMKK3JlbmFtZSB0byB2YXBpL2xpYm11 dHRlci02LmRlcHMKK2luZGV4IDQ4YWE3NTYzLi4yMjM1MjVlNCAxMDA2NDQKKy0tLSB2YXBpL2xp Ym11dHRlci01LmRlcHMKKysrKyB2YXBpL2xpYm11dHRlci02LmRlcHMKK0BAIC0xLDUgKzEsNiBA QAorIGd0aystMy4wCisganNvbi1nbGliLTEuMAorLW11dHRlci1jbHV0dGVyLTUKKyttdXR0ZXIt Y2x1dHRlci02CisgeDExCisgeGZpeGVzLTQuMAorK2dyYXBoZW5lLWdvYmplY3QtMS4wCitkaWZm IC0tZ2l0IHZhcGkvbGlibXV0dGVyLTUudmFwaSB2YXBpL2xpYm11dHRlci02LnZhcGkKK3NpbWls YXJpdHkgaW5kZXggOTclCityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci01LnZhcGkKK3JlbmFt ZSB0byB2YXBpL2xpYm11dHRlci02LnZhcGkKK2luZGV4IGI5NWEyOGU2Li5iMzZiZTFiNyAxMDA2 NDQKKy0tLSB2YXBpL2xpYm11dHRlci01LnZhcGkKKysrKyB2YXBpL2xpYm11dHRlci02LnZhcGkK K0BAIC0xLDEyICsxLDEwIEBACistLyogbGlibXV0dGVyLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFw aWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXItNi52YXBpIGdlbmVyYXRlZCBi eSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRh IiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNSIsIGxvd2VyX2Nhc2Vf Y3ByZWZpeCA9ICJtZXRhXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVz cGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJt ZXRhXyIpXQorIG5hbWVzcGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBvc2l0b3IgeworIAkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNu YW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMg c3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkg ZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxh eSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5 IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkg KE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRv dyIpXQorQEAgLTIxLDggKzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRp YyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAoTWV0 YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3Jf ZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dp bmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0g Im1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNl dF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdp b24gcmVnaW9uKTsKKyAJfQorIAluYW1lc3BhY2UgUHJlZnMgeworIAkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9pc19h dWRpYmxlIildCitAQCAtMTY0LDcgKzE2MCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyB2b2lkIHNldF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIGtleW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9s YXlvdXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IGxhc3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lk IGxhc3RfZGV2aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIs IHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAtMTc0LDcgKzE3 MCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2Fs bCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZp bGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBz dHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOwor LQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3Jv dW5kU3R5bGUgc3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8gZmls ZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9n cmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENs dXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorQEAgLTI3NSw3ICsyNzEsNyBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29y X21vdmVkIChmbG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBj dXJzb3JfbW92ZWQgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHZp c2liaWxpdHlfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQor QEAgLTMyNyw2ICszMjMsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgYm9vbCB4c2Vy dmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CisgCQlwdWJs aWMgTWV0YS5XaW5kb3cgZm9jdXNfd2luZG93IHsgZ2V0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmlj ZSBwMCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2xvc2luZyAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJf b3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJP cCBwMSk7CitAQCAtMzUwLDYgKzM0Nyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4 MTFfZGlzcGxheV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5 X29wZW5lZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9zZXR1cCAoKTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWRuZC5oIiwgdHlw ZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRG5kIDogR0xp Yi5PYmplY3QgeworQEAgLTM3MCwxMSArMzY4LDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0 YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHVpbnQgYWRkX3Vz ZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFj ayk7CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2 aWNlIChpbnQgZGV2aWNlX2lkKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7Cisg CQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworIAkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJs aWMgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitA QCAtNTM2LDE1ICs1MzMsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3Rv ciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IEdM aWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJs aWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKysJ CXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xp cCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CisgCQlw dWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworIAkJ cHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9w YXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5n ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5cGUgKCkiKV0K K0BAIC03NTYsMTcgKzc1MiwxNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1 dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3Rl ZCBXaW5kb3dBY3RvciAoKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENh aXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBn ZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90 ZXh0dXJlICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TaGFwZWRUZXh0dXJlIGdldF90ZXh0 dXJlICgpOworIAkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworIAkJcHVibGljIHZvaWQg c3luY192aXNpYmlsaXR5ICgpOworIAkJcHVibGljIE1ldGEuV2luZG93IG1ldGFfd2luZG93IHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHN0cmlu ZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0KKysJ CXB1YmxpYyBzaWduYWwgdm9pZCBkYW1hZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGVm ZmVjdHNfY29tcGxldGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGZpcnN0X2ZyYW1lICgp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRoYXdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIiwgdHlwZV9pZCA9ICJtZXRh X3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgV2luZG93R3JvdXAg OiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1 dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtODEzLDcgKzgwOCw3IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9h Y3RpdmVfd29ya3NwYWNlICgpOworIAkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9p bmRleCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7 CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtzcGFjZV9ieV9pbmRl eCAoaW50IGluZGV4KTsKKyAJCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQg KE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0 LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jr c3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CisgCQlw dWJsaWMgdm9pZCByZW9yZGVyX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBp bnQgbmV3X2luZGV4KTsKK0BAIC04MzMsMTEgKzgyOCwxMyBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFgxMURpc3BsYXkgKCk7 CisrCQlwdWJsaWMgdm9pZCBjbGVhcl9zdGFnZV9pbnB1dF9yZWdpb24gKCk7CisgCQlwdWJsaWMg aW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9u dW1iZXIgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworIAkJcHVi bGljIGJvb2wgaGFzX3NoYXBlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NtX3NlbGVjdGlvbiAo KTsKKysJCXB1YmxpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKFguWHNlcnZlclJlZ2lv biByZWdpb24pOworIAkJcHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3VzX3dpbmRvdyAo WC5XaW5kb3cgeHdpbmRvdyk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUNsb3NlRGlhbG9nSW50 ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorQEAg LTg5OSw3ICs4OTYsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9u X21pY3JvOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgc3RydWN0IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50IHg7CisgCQlwdWJsaWMgaW50IHk7 CitAQCAtMTQ0Myw2ICsxNDQwLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2 YXRlX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0 ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFn cywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1l dGEuRXhpdENvZGUgY29kZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNy Yywgc2l6ZV90IG4pOworQEAgLTE0NTksNiArMTQ1OCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWdpc3Rlcl93aXRoX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2NsdXR0 ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRy YXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3Mp OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGlj IHN0YXRpYyB2b2lkIHJlc3RhcnQgKHN0cmluZz8gbWVzc2FnZSk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7 CitAQCAtMTQ2Nyw1ICsxNDY4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF93 bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0ICgpOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIHgxMV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOworIH0KK2RpZmYg LS1naXQgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRlci03LWN1c3Rv bS52YWxhCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjFlMGI5MTdjCist LS0gL2Rldi9udWxsCisrKysgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorQEAgLTAsMCAr MSw3IEBACisrW0NDb2RlIChoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGJl Zm9yZV9mcmFtZSB7CisrfQorKworK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVi bGljIHN0cnVjdCBmcmFtZSB7CisrfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci03LmRlcHMg dmFwaS9saWJtdXR0ZXItNy5kZXBzCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MDAuLjJlZjkxOWVlCistLS0gL2Rldi9udWxsCisrKysgdmFwaS9saWJtdXR0ZXItNy5kZXBzCitA QCAtMCwwICsxLDYgQEAKKytndGsrLTMuMAorK2pzb24tZ2xpYi0xLjAKKyttdXR0ZXItY2x1dHRl ci03CisreDExCisreGZpeGVzLTQuMAorK2dyYXBoZW5lLWdvYmplY3QtMS4wCitkaWZmIC0tZ2l0 IHZhcGkvbGlibXV0dGVyLTMudmFwaSB2YXBpL2xpYm11dHRlci03LnZhcGkKK3NpbWlsYXJpdHkg aW5kZXggNzUlCityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci0zLnZhcGkKK3JlbmFtZSB0byB2 YXBpL2xpYm11dHRlci03LnZhcGkKK2luZGV4IDE3MTVhYThmLi45MGM0MTU5MCAxMDA2NDQKKy0t LSB2YXBpL2xpYm11dHRlci0zLnZhcGkKKysrKyB2YXBpL2xpYm11dHRlci03LnZhcGkKK0BAIC0x LDEyICsxLDEwIEBACistLyogbGlibXV0dGVyLTMudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwg ZG8gbm90IG1vZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXItNy52YXBpIGdlbmVyYXRlZCBieSB2YXBp Z2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2ly X25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMyIsIGxvd2VyX2Nhc2VfY3ByZWZp eCA9ICJtZXRhXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9 ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIp XQorIG5hbWVzcGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBvc2l0b3IgeworIAkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0g Im1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGlj IHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxh eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNw bGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisg CQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEu RGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQor QEAgLTIxLDggKzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB1bm93 bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNw bGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxh eSIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19n cm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf c2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFn ZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVn aW9uKTsKKyAJfQorIAluYW1lc3BhY2UgUHJlZnMgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxl IildCitAQCAtNDcsNiArNDMsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGlj IE1ldGEuQnV0dG9uTGF5b3V0IHByZWZzX2dldF9idXR0b25fbGF5b3V0ICgpOworIAkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf Z2V0X2NlbnRlcl9uZXdfd2luZG93cyIpXQorIAkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dl dF9jZW50ZXJfbmV3X3dpbmRvd3MgKCk7CisrCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY2hlY2tfYWxpdmVfdGltZW91 dCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50IHByZWZzX2dldF9jaGVja19hbGl2ZV90aW1lb3V0 ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIiKV0KKyAJCXB1YmxpYyBzdGF0 aWMgYm9vbCBwcmVmc19nZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9j dXJzb3Jfc2l6ZSIpXQorQEAgLTc1LDggKzczLDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5ICgpOworIAkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19n ZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9pZ25vcmVfcmVxdWVzdF9oaWRl X3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2lnbm9yZV9yZXF1 ZXN0X2hpZGVfdGl0bGViYXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24iKV0K KyAJCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIHByZWZzX2dldF9rZXliaW5k aW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51 IildCitAQCAtMTA1LDggKzEwMSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0 aWMgdm9pZCBwcmVmc19pbml0ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0K KyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfZm9yY2VfZnVsbHNjcmVlbiAoYm9vbCB3 aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGVi YXIgKGJvb2wgd2hldGhlcik7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMiKV0KKyAJCXB1 YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFj ZXMpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KK0BAIC0xMTcsMTIg KzExMSwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3Zl cmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdf bmFtZV9mb3JfYWN0aW9uIildCisgCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5k aW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9z dHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5n IHNyYywgc2l6ZV90IG4pOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRp bC5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorIAkJcHVibGljIHN0 YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAoKTsKKyAJCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ3Jh dml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0 eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJp bmcgZ3Jhdml0eV90b19zdHJpbmcgKE1ldGEuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVidWdn aW5nIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworIAkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19zeW5j aW5nIildCitAQCAtMTY1LDEyICsxNTcsMTMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IHVub3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuUmVt b3RlQWNjZXNzQ29udHJvbGxlciBnZXRfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyICgpOworIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2UgKCk7CisrCQlwdWJsaWMgYm9v bCBpc19yZW5kZXJpbmdfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBs b2NrX2xheW91dF9ncm91cCAodWludCBpZHgpOworIAkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAo c3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJpYW50cywgc3RyaW5nIG9wdGlvbnMpOworIAkJcHVi bGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0ZSk7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFw X2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworIAkJ cHVibGljIHNpZ25hbCB2b2lkIGxpZF9pc19jbG9zZWRfY2hhbmdlZCAoYm9vbCBvYmplY3QpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC5o IiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ2V0X3R5cGUgKCkiKV0KK0BAIC0xODAsNyAr MTczLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJlc2hf YWxsICgpOworIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdMaWIu RmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxl IHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7 CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJhY2tn cm91bmRTdHlsZSBzdHlsZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlPyBm aWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGljIHZvaWQgc2V0 X2dyYWRpZW50IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwg Q2x1dHRlci5Db2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOworIAkJW05v QWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93 bmVkIGdldDsgY29uc3RydWN0OyB9CitAQCAtMTkwLDkgKzE4MywxOCBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgQmFja2dyb3VuZEFjdG9yIChN ZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50IG1vbml0b3IpOworKwkJW05vQWNjZXNzb3JNZXRob2Rd CisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbW9uaXRvciB7IGdl dDsgY29uc3RydWN0OyB9CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1iYWNrZ3JvdW5kLWNvbnRlbnQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2Nv bnRlbnRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEJhY2tncm91bmRDb250ZW50IDog R0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQmFja2dyb3VuZENvbnRlbnQgKCk7Cisr CQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQ29udGVudCBAbmV3IChNZXRhLkRpc3BsYXkgZGlzcGxh eSwgaW50IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFj a2dyb3VuZCBiYWNrZ3JvdW5kKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoYm9vbCBl bmFibGVkLCBpbnQgaGVpZ2h0LCBkb3VibGUgdG9uZV9zdGFydCk7CistCQlwdWJsaWMgdm9pZCBz ZXRfbW9uaXRvciAoaW50IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRlIChi b29sIGVuYWJsZWQsIGRvdWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kIHsg b3duZWQgZ2V0OyBzZXQ7IH0KK0BAIC0yNzcsMTQgKzI3OSwxNCBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJzb3JUcmFja2VyIGdldF9mb3JfZGlz cGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJcHVibGljIHZvaWQgZ2V0X2hvdCAob3V0 IGludCB4LCBvdXQgaW50IHkpOworIAkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXIgKGludCB4LCBp bnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7CisrCQlwdWJsaWMgYm9vbCBnZXRfcG9p bnRlcl92aXNpYmxlICgpOworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJp dGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUp OworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5CYWNrZW5kIGJhY2tlbmQg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9j aGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfZGJ1c19kaXNwbGF5X2NvbmZpZ19z a2VsZXRvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgREJ1c0Rpc3BsYXlDb25maWdT a2VsZXRvbiA6IEdMaWIuREJ1c0ludGVyZmFjZVNrZWxldG9uLCBHTGliLkRCdXNJbnRlcmZhY2Ug eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIERCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24gKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg Y3Vyc29yX21vdmVkIChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB2 aXNpYmlsaXR5X2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGNsYXNzIERpc3BsYXkgOiBHTGliLk9iamVjdCB7CitAQCAtMzA5LDMyICszMTEs MzkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVs bHNjcmVlbiAoaW50IG1vbml0b3IpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9m b3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CisgCQlwdWJsaWMgaW50IGdldF9tb25pdG9y X25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5EaXNwbGF5RGlyZWN0aW9u IGRpcik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X21vbml0b3Jfc2NhbGUgKGludCBtb25pdG9yKTsK KyAJCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CisgCQlwdWJsaWMgc3RyaW5nIGdldF9w YWRfYWN0aW9uX2xhYmVsIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgTWV0YS5QYWRBY3Rpb25U eXBlIGFjdGlvbl90eXBlLCB1aW50IGFjdGlvbl9udW1iZXIpOworIAkJcHVibGljIGludCBnZXRf cHJpbWFyeV9tb25pdG9yICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TZWxlY3Rpb24gZ2V0 X3NlbGVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBv dXQgaW50IGhlaWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNvdW5kUGxheWVyIGdldF9z b3VuZF9wbGF5ZXIgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1 cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworIAkJ cHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFi TGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsKKyAJCXB1YmxpYyB1bm93bmVk IE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3Nw YWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9vbCBiYWNrd2FyZCk7CisgCQlw dWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZU1hbmFnZXIgZ2V0X3dvcmtzcGFjZV9tYW5hZ2Vy ICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9y KTsKKysJCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvciwg TWV0YS5LZXlCaW5kaW5nRmxhZ3MgZmxhZ3MpOworIAkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9l bXVsYXRpbmdfc2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UpOworIAkJ cHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2 b2lkIHJlcXVlc3RfcGFkX29zZCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIGJvb2wgZWRpdGlv bl9tb2RlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1ldGEuQ3Vyc29yIGN1cnNvcik7 CisrCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXMgKE1ldGEuV2luZG93IHdpbmRvdywgYm9v bCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3 ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIuU0xpc3Q8TWV0 YS5XaW5kb3c+IHdpbmRvd3MpOworIAkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0ZW5kZWRfYmFy cmllcnMgKCk7CisgCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVz dGFtcCk7CisgCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQgYWN0aW9uX2lk KTsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7Cisr CQlwdWJsaWMgdm9pZCB1bnNldF9pbnB1dF9mb2N1cyAodWludDMyIHRpbWVzdGFtcCk7CisgCQlw dWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0 aW1lMik7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgZm9jdXNfd2luZG93IHsgZ2V0OyB9CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgdWlu dCBwMCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZh dGVkICh1aW50IG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZSBwMCwgdWludCBwMSk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJz b3JfdXBkYXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVy Z2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxh eSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAw LCBNZXRhLkdyYWJPcCBwMSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9j aGFuZ2VkICgpOworKwkJcHVibGljIHNpZ25hbCBib29sIGluaXRfeHNlcnZlciAoR0xpYi5UYXNr IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJzX2FjY2VsZXJhdG9yX2Fj dGl2YXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5X2tleSAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBwYWRfbW9kZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2Jq ZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKK0BAIC0zNDUsNyArMzU0LDYgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzaXplX3BvcHVwIChib29sIG9iamVj dCwgTWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAyKTsKKyAJCXB1YmxpYyBzaWduYWwg Ym9vbCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBzdGFydHVwX3NlcXVlbmNlX2NoYW5nZWQgKHZvaWQqIG9iamVjdCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgd2luZG93X2NyZWF0ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgd2luZG93X2RlbWFuZHNfYXR0ZW50aW9uIChNZXRhLldpbmRvdyBvYmpl Y3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0b3IgKGludCBv YmplY3QsIE1ldGEuV2luZG93IHAwKTsKK0BAIC0zNTQsNiArMzYyLDcgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgeDExX2Rpc3BsYXlfb3BlbmVkICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9k aXNwbGF5X3NldHVwICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtZG5kLmgiLCB0eXBlX2lkID0gIm1ldGFfZG5kX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBjbGFzcyBEbmQgOiBHTGliLk9iamVjdCB7CitAQCAtMzYzLDcgKzM3Miw3IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfbGVhdmUgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgZG5kX3Bvc2l0aW9uX2NoYW5nZSAoaW50IG9iamVjdCwgaW50IHAwKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBGcmFt ZSB7CisgCX0KK0BAIC0zNzQsMTMgKzM4MywxMiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEu SWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50IGFkZF91c2Vy X2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2sp OworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7 CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2Rldmlj ZSAoaW50IGRldmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworIAkJ cHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGlj IENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94 ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRh X2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3Mg S2V5QmluZGluZyB7CisgCQlwdWJsaWMgdWludCBnZXRfbWFzayAoKTsKK0BAIC0zOTEsOCArMzk5 LDIxIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCVtDQ29kZSAoY25hbWUgPSAibWV0YV9rZXliaW5k aW5nc19zZXRfY3VzdG9tX2hhbmRsZXIiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3Vz dG9tX2hhbmRsZXIgKHN0cmluZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5k bGVyKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgiLCB0eXBlX2lkID0gIm1ldGFfbGF1bmNoX2NvbnRleHRfZ2V0X3R5cGUgKCki KV0KKysJcHVibGljIGNsYXNzIExhdW5jaENvbnRleHQgOiBHTGliLkFwcExhdW5jaENvbnRleHQg eworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVj dGVkIExhdW5jaENvbnRleHQgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfdGltZXN0YW1wICh1aW50 MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIHNldF93b3Jrc3BhY2UgKE1ldGEuV29ya3Nw YWNlIHdvcmtzcGFjZSk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkRp c3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKysJCXB1YmxpYyB1aW50IHRpbWVzdGFtcCB7IGdldDsgc2V0OyB9CisrCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UgeyBvd25lZCBn ZXQ7IHNldDsgfQorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90 eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdlciA6IE1ldGEu REJ1c0Rpc3BsYXlDb25maWdTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlLCBHTGliLkRCdXNJ bnRlcmZhY2UgeworKwlwdWJsaWMgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLk9iamVjdCB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0 ZWQgTW9uaXRvck1hbmFnZXIgKCk7CisgCQlwdWJsaWMgYm9vbCBjYW5fc3dpdGNoX2NvbmZpZyAo KTsKK0BAIC00MDcsNiArNDI4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25h bCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg bW9uaXRvcnNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFu Z2VkX2ludGVybmFsICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHBvd2VyX3NhdmVfbW9kZV9j aGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt cGx1Z2luLmgiLCB0eXBlX2lkID0gIm1ldGFfcGx1Z2luX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBQbHVnaW4gOiBHTGliLk9iamVjdCB7CitAQCAtNDMwLDYgKzQ1Miw4 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF9zd2l0Y2hf d29ya3NwYWNlICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2ls bF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CisrCQlbTm9XcmFwcGVy XQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBsb2NhdGVfcG9pbnRlciAoKTsKKyAJCXB1YmxpYyBz dGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKyAJ CVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3Rv ciBhY3Rvcik7CitAQCAtNDY1LDI2ICs0ODksNTYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJs aWMgY2xhc3MgUmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBSZW1vdGVB Y2Nlc3NDb250cm9sbGVyICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF9yZW1vdGVfYWNjZXNz ICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X3JlbW90ZV9hY2Nlc3MgKCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgbmV3X2hhbmRsZSAoTWV0YS5SZW1vdGVBY2Nlc3NIYW5kbGUgb2JqZWN0 KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfaGFuZGxl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NIYW5kbGUgOiBHTGli Lk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzSGFuZGxlICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Rp c2FibGVfYW5pbWF0aW9ucyAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgaXNfcmVjb3JkaW5nIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzdG9wcGVkICgpOworIAl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9z ZWxlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFNlbGVjdGlvbiA6IEdMaWIu T2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJ CXB1YmxpYyBTZWxlY3Rpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1YmxpYyBHTGli Lkxpc3Q8c3RyaW5nPiBnZXRfbWltZXR5cGVzIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9u X3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X293bmVyIChNZXRhLlNlbGVjdGlvblR5cGUgc2Vs ZWN0aW9uX3R5cGUsIE1ldGEuU2VsZWN0aW9uU291cmNlIG93bmVyKTsKKysJCXB1YmxpYyBhc3lu YyBib29sIHRyYW5zZmVyX2FzeW5jIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUs IHN0cmluZyBtaW1ldHlwZSwgc3NpemVfdCBzaXplLCBHTGliLk91dHB1dFN0cmVhbSBvdXRwdXQs IEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1 YmxpYyB2b2lkIHVuc2V0X293bmVyIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUs IE1ldGEuU2VsZWN0aW9uU291cmNlIG93bmVyKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBvd25l cl9jaGFuZ2VkICh1aW50IG9iamVjdCwgTWV0YS5TZWxlY3Rpb25Tb3VyY2UgcDApOworKwl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0 YV9zZWxlY3Rpb25fc291cmNlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rp b25Tb3VyY2UgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU2VsZWN0aW9uU291cmNlICgpOworKwkJcHVibGlj IHZpcnR1YWwgR0xpYi5MaXN0PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoKTsKKysJCXB1YmxpYyBi b29sIGlzX2FjdGl2ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGFzeW5jIEdMaWIuSW5wdXRTdHJl YW0gcmVhZF9hc3luYyAoc3RyaW5nIG1pbWV0eXBlLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxs YWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBh Y3RpdmF0ZWQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkZWFjdGl2YXRlZCAo KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBl X2lkID0gIm1ldGFfc2VsZWN0aW9uX3NvdXJjZV9tZW1vcnlfZ2V0X3R5cGUgKCkiKV0KKysJcHVi bGljIGNsYXNzIFNlbGVjdGlvblNvdXJjZU1lbW9yeSA6IE1ldGEuU2VsZWN0aW9uU291cmNlIHsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIk1ldGFT ZWxlY3Rpb25Tb3VyY2UqIildCisrCQlwdWJsaWMgU2VsZWN0aW9uU291cmNlTWVtb3J5IChzdHJp bmcgbWltZXR5cGUsIEdMaWIuQnl0ZXMgY29udGVudCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zZXR0aW5ncy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgeworIAkJcHVibGljIGludCBn ZXRfZm9udF9kcGkgKCk7CisgCQlwdWJsaWMgaW50IGdldF91aV9zY2FsaW5nX2ZhY3RvciAoKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRh X3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVm IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHJlZl9mdW5j dGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2dldF90eXBl ICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0KKyAJW0NvbXBhY3Rd CisgCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworIAkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAoaW50 IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVp Z2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50IChp bnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19o ZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmlj dGx5KTsKKysJCXB1YmxpYyB2b2lkIHBhaW50IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVy LCBpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRv d19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0 cmljdGx5KTsKKyAJCXB1YmxpYyBNZXRhLlNoYWRvdyBAcmVmICgpOworIAkJcHVibGljIHZvaWQg dW5yZWYgKCk7CisgCX0KK0BAIC00OTksMjggKzU1Myw3NCBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lkID0gIm1ldGFf c2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYXBlZFRleHR1 cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwg Q2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBjbGFzcyBT aGFwZWRUZXh0dXJlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hhcGVkVGV4 dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFu Z2xlSW50IGNsaXApOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFnZSAoQ2Fpcm8u UmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRf dGV4dHVyZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVh dGVfbWlwbWFwcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1 cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25l ZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJl YSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90 eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc291bmQt cGxheWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIildCisr CXB1YmxpYyBjbGFzcyBTb3VuZFBsYXllciA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTb3VuZFBsYXllciAo KTsKKysJCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV9maWxlIChHTGliLkZpbGUgZmlsZSwgc3RyaW5n IGRlc2NyaXB0aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpOworKwkJ cHVibGljIHZvaWQgcGxheV9mcm9tX3RoZW1lIChzdHJpbmcgbmFtZSwgc3RyaW5nIGRlc2NyaXB0 aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpOworKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc3RhZ2UuaCIsIHR5cGVfaWQgPSAibWV0 YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLlN0 YWdlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU3RhZ2UgKCk7CisgCQlwdWJsaWMgc3RhdGljIGJv b2wgaXNfZm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIGFjdG9yc19wYWludGVkICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFy dHVwX25vdGlmaWNhdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU3RhcnR1cE5v dGlmaWNhdGlvbiA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwTm90aWZpY2F0aW9uICgpOworKwkJ cHVibGljIE1ldGEuTGF1bmNoQ29udGV4dCBjcmVhdGVfbGF1bmNoZXIgKCk7CisrCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAodm9pZCogb2JqZWN0 KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBl X2lkID0gIm1ldGFfc3RhcnR1cF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xh c3MgU3RhcnR1cFNlcXVlbmNlIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFN0YXJ0dXBTZXF1ZW5jZSAoKTsK KysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYXBwbGljYXRpb25faWQgKCk7CisrCQlwdWJs aWMgYm9vbCBnZXRfY29tcGxldGVkICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9p Y29uX25hbWUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2lkICgpOworKwkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVpbnQ2NCBnZXRfdGlt ZXN0YW1wICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bWNsYXNzICgpOworKwkJ cHVibGljIGludCBnZXRfd29ya3NwYWNlICgpOworKwkJcHVibGljIHN0cmluZyBhcHBsaWNhdGlv bl9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIGljb25fbmFtZSB7IGdl dDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIGlkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgdWlu dDY0IHRpbWVzdGFtcCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIHdtY2xh c3MgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGludCB3b3Jrc3BhY2UgeyBnZXQ7IGNv bnN0cnVjdDsgfQorKwkJW0hhc0VtaXR0ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29tcGxl dGUgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdGhlbWUuaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFRoZW1l IHsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS13YXlsYW5kLWNsaWVudC5oIiwgdHlwZV9pZCA9ICJtZXRhX3dheWxh bmRfY2xpZW50X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBXYXlsYW5kQ2xpZW50IDog R0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorKwkJcHVibGljIFdheWxhbmRDbGllbnQgKEdMaWIuU3VicHJvY2Vzc0xhdW5jaGVyIGxhdW5j aGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2b2lkIGhpZGVfZnJvbV93aW5kb3df bGlzdCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyBib29sIG93bnNfd2luZG93IChN ZXRhLldpbmRvdyB3aW5kb3cpOworKwkJcHVibGljIHZvaWQgc2hvd19pbl93aW5kb3dfbGlzdCAo TWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyBHTGliLlN1YnByb2Nlc3Mgc3Bhd252IChN ZXRhLkRpc3BsYXkgZGlzcGxheSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlf bnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldIHN0cmluZ1tdIGFyZ3YpIHRocm93cyBHTGliLkVycm9y OworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgdHlw ZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgV2luZG93IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorQEAgLTU0Nyw2ICs2NDcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVjdCAoTWV0YS5SZWN0 YW5nbGUgZnJhbWVfcmVjdCk7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9y ZWN0ICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsK KysJCXB1YmxpYyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0X2NsaWVudF90eXBlICgpOworIAkJ cHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoKTsKKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CisgCQlwdWJsaWMgdW5v d25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CitAQCAtNTYxLDYgKzY2Miw3IEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9i dXNfbmFtZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmpl Y3RfcGF0aCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5S ZWN0YW5nbGUgcmVjdCk7CisrCQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsKKyAJCXB1YmxpYyBN ZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworIAkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFn cyBnZXRfbWF4aW1pemVkICgpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKK0BAIC02 MTAsOCArNzEyLDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHZvaWQgbW92ZV9yZXNp emVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywgaW50 IHcsIGludCBoKTsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0b3Ip OworIAkJcHVibGljIHZvaWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfYnlw YXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBhc3Nf Y29tcG9zaXRvciAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUgKEdM aWIuT2JqZWN0IHByaXYpOworIAkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgp OworIAkJcHVibGljIHZvaWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyByZWN0 KTsKK0BAIC02NzIsMjQgKzc3MiwyNSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgc2hvd24gKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCB1bm1hbmFnaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9jaGFu Z2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2FjdG9yX2dldF90eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1l bnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5B Y3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFp bmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworKwkJcHVibGljIHZv aWQgZnJlZXplICgpOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFnZSAoQ2Fpcm8u UmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9t ZXRhX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1 cmUgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93ICgpOworKwkJcHVibGljIHVu b3duZWQgTWV0YS5TaGFwZWRUZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIGJvb2wg aXNfZGVzdHJveWVkICgpOworIAkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOworKwkJ cHVibGljIHZvaWQgdGhhdyAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7 IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJp bmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBl ZmZlY3RzX2NvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAo KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0 YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdpbmRvd0dyb3Vw IDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENs dXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTcyMCw3ICs4MjEsOSBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJl YV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworIAkJcHVibGljIGludCBpbmRleCAo KTsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgp OworLQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3Ry dXQ+IHN0cnV0cyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xp c3Q8TWV0YS5TdHJ1dD8+IHN0cnV0cyk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1Ymxp YyBib29sIGFjdGl2ZSB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMg dWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTczNiwy NyArODM5LDMzIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29y a3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworIAkJcHVibGljIGludCBnZXRfYWN0aXZl X3dvcmtzcGFjZV9pbmRleCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXgg KGludCBpbmRleCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtz cGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKyAJCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtz cGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVy dGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKyAJCXB1YmxpYyB2b2lk IHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVz dGFtcCk7CisrCQlwdWJsaWMgdm9pZCByZW9yZGVyX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ug d29ya3NwYWNlLCBpbnQgbmV3X2luZGV4KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVi bGljIGludCBsYXlvdXRfY29sdW1ucyB7IGdldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisr CQlwdWJsaWMgaW50IGxheW91dF9yb3dzIHsgZ2V0OyB9CisgCQlwdWJsaWMgaW50IG5fd29ya3Nw YWNlcyB7IGdldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGFjdGl2ZV93b3Jrc3BhY2VfY2hh bmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAo KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBvYmplY3QpOwor IAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0KTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmplY3QsIGludCBw MCwgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtz cGFjZXNfcmVvcmRlcmVkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEteDExLWRpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV94MTFfZGlzcGxheV9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBY MTFEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2ZvY3VzX3dpbmRvdyAo dWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBjbGVhcl9zdGFnZV9pbnB1dF9yZWdp b24gKCk7CisgCQlwdWJsaWMgaW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsKKyAJCXB1Ymxp YyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVu dF9iYXNlICgpOworIAkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworIAkJcHVibGljIHZvaWQg c2V0X2NtX3NlbGVjdGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5k b3cgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFt cCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdp b24gcmVnaW9uKTsKKyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cg KFguV2luZG93IHh3aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0lu dGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BA IC03NzksMjQgKzg4OCwyNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbSGFzRW1pdHRlcl0KKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCByZXNwb25zZSAoTWV0YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9n UmVzcG9uc2UgcmVzcG9uc2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMg c3RydWN0IEJ1dHRvbkxheW91dCB7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0K Ky0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzVdOworKwkJ cHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiBsZWZ0X2J1dHRvbnNbNF07CisgCQlbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgbGVmdF9idXR0 b25zX2hhc19zcGFjZXJbNV07CisrCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNf c3BhY2VyWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMg d2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNV07CisrCQlwdWJsaWMgd2Vh ayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07CisgCQlbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNf c3BhY2VyWzVdOworKwkJcHVibGljIHdlYWsgYm9vbCByaWdodF9idXR0b25zX2hhc19zcGFjZXJb NF07CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBFZGdlIHsKKyAJ CXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworIAkJcHVibGljIE1ldGEuU2lkZSBzaWRlX3R5 cGU7CisgCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKyAJCXB1YmxpYyBHdGsu Qm9yZGVyIHZpc2libGU7CisgCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7CitAQCAtODEx LDE0ICs5MjAsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHdlYWsgc3RyaW5nIGxp Y2Vuc2U7CisgCQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3JpcHRpb247CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBQbHVnaW5WZXJzaW9uIHsKKyAJCXB1 YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pbm9yOwor IAkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fYXBp OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCB0eXBl X2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKyAJCXB1YmxpYyBp bnQgeDsKKyAJCXB1YmxpYyBpbnQgeTsKK0BAIC04MzYsNyArOTQ1LDcgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0 Mik7CisgCQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3Qg U2hhZG93UGFyYW1zIHsKKyAJCXB1YmxpYyBpbnQgcmFkaXVzOworIAkJcHVibGljIGludCB0b3Bf ZmFkZTsKK0BAIC04NDQsMTIgKzk1MywxMiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg aW50IHlfb2Zmc2V0OworIAkJcHVibGljIHVpbnQ4IG9wYWNpdHk7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBTdHJ1dCB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5n bGUgcmVjdDsKKyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9E SVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgp IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXgg PSAiTUVUQV9CQVJSSUVSX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9kaXJl Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBCYXJyaWVyRGly ZWN0aW9uIHsKKyAJCVBPU0lUSVZFX1gsCitAQCAtODU3LDIxICs5NjYsMjAgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJTkVHQVRJVkVfWCwKKyAJCU5FR0FUSVZFX1kKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05f RlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0g Ik1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworIAkJTUVOVSwK KyAJCU1JTklNSVpFLAorIAkJTUFYSU1JWkUsCisgCQlDTE9TRSwKKy0JCUFQUE1FTlUsCisgCQlM QVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCIsIGNwcmVmaXggPSAiTUVUQV9DTE9TRV9ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9p ZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0Vf RElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2Vf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQ2xvc2VEaWFsb2dSZXNwb25zZSB7CisgCQlX QUlULAorIAkJRk9SQ0VfQ0xPU0UKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9p ZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0 eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0g Q29tcEVmZmVjdCB7CisgCQlDUkVBVEUsCisgCQlVTk1JTklNSVpFLAorQEAgLTg3OSw3ICs5ODcs NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNSU5JTUlaRSwKKyAJCU5PTkUKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9D VVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09S XyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0g Q3Vyc29yIHsKKyAJCU5PTkUsCisgCQlERUZBVUxULAorQEAgLTkwMCw5ICsxMDA4LDEwIEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCVBPSU5USU5HX0hBTkQsCisgCQlDUk9TU0hBSVIsCisgCQlJQkVB TSwKKysJCUJMQU5LLAorIAkJTEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFf ZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RFQlVHXyIsIHR5cGVfaWQgPSAibWV0YV9k ZWJ1Z190b3BpY19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIERlYnVn VG9waWMgeworIAkJVkVSQk9TRSwKK0BAIC05MjgsOSArMTAzNywxMCBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlTSEFQRVMsCisgCQlDT01QT1NJVE9SLAorIAkJRURHRV9SRVNJU1RBTkNFLAorLQkJ REJVUworKwkJREJVUywKKysJCUlOUFVUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIsIHR5cGVfaWQg PSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lk ID0gIm1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVu dW0gRGlyZWN0aW9uIHsKKyAJCUxFRlQsCitAQCAtOTQyLDIxICsxMDUyLDIxIEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCUhPUklaT05UQUwsCisgCQlWRVJUSUNBTAorIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZ XyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2Nvcm5lcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRElT UExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGVudW0gRGlzcGxheUNvcm5lciB7CisgCQlUT1BMRUZULAorIAkJVE9QUklHSFQsCisg CQlCT1RUT01MRUZULAorIAkJQk9UVE9NUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBl X2lkID0gIm1ldGFfZGlzcGxheV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlf IiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCXB1 YmxpYyBlbnVtIERpc3BsYXlEaXJlY3Rpb24geworIAkJVVAsCisgCQlET1dOLAorIAkJTEVGVCwK KyAJCVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMu aCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CisgCQlXSU5ET1csCisgCQlNT05JVE9S LAorQEAgLTk2NywxMiArMTA3NywxMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlTVUNDRVNTLAor IAkJRVJST1IKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3Nf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV9mbGFnc19n ZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3MgeworIAkJ QUxMT1dTX0RFTEVURSwKKyAJCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX0FQUE1FTlUsCisgCQlB TExPV1NfTUlOSU1JWkUsCisgCQlBTExPV1NfTUFYSU1JWkUsCisgCQlBTExPV1NfVkVSVElDQUxf UkVTSVpFLAorQEAgLTk4NCwxMiArMTA5MywxMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlBTExP V1NfU0hBREUsCisgCQlBTExPV1NfTU9WRSwKKyAJCUZVTExTQ1JFRU4sCistCQlJU19GTEFTSElO RywKKyAJCUFCT1ZFLAorIAkJVElMRURfTEVGVCwKKyAJCVRJTEVEX1JJR0hUCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFf RlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1F VEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgZW51bSBGcmFtZVR5cGUgeworIAkJTk9STUFMLAorIAkJRElBTE9HLAorQEAg LTEwMDEsNyArMTEwOSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUxBU1Q7CisgCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9p ZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9 ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gR3JhYk9wIHsKKyAJ CU5PTkUsCisgCQlXSU5ET1dfQkFTRSwKK0BAIC0xMDI4LDEyICsxMTM2LDI2IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorIAkJS0VZQk9BUkRfUkVTSVpJTkdf VworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElB TE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2df cmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQVZJVFlfIiwgdHlwZV9pZCA9ICJtZXRhX2dy YXZpdHlfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gR3Jhdml0eSB7CisrCQlOT05FLAor KwkJTk9SVEhfV0VTVCwKKysJCU5PUlRILAorKwkJTk9SVEhfRUFTVCwKKysJCVdFU1QsCisrCQlD RU5URVIsCisrCQlFQVNULAorKwkJU09VVEhfV0VTVCwKKysJCVNPVVRILAorKwkJU09VVEhfRUFT VCwKKysJCVNUQVRJQworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0Vf IiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2Ug eworIAkJQUxMT1csCisgCQlERU5ZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBl X2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5E SU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworIAkJTk9ORSwKKyAJCVdP UktTUEFDRV8xLAorQEAgLTExMjIsMjIgKzEyNDQsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ TU9WRV9UT19TSURFX1csCisgCQlNT1ZFX1RPX0NFTlRFUiwKKyAJCU9WRVJMQVlfS0VZLAorKwkJ TE9DQVRFX1BPSU5URVJfS0VZLAorIAkJSVNPX05FWFRfR1JPVVAsCisgCQlBTFdBWVNfT05fVE9Q LAorIAkJU1dJVENIX01PTklUT1IsCisgCQlST1RBVEVfTU9OSVRPUiwKKyAJCUxBU1QKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJN RVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5n X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gS2V5QmluZGlu Z0ZsYWdzIHsKKyAJCU5PTkUsCisgCQlQRVJfV0lORE9XLAorIAkJQlVJTFRJTiwKKyAJCUlTX1JF VkVSU0VELAorLQkJTk9OX01BU0tBQkxFCisrCQlOT05fTUFTS0FCTEUsCisrCQlJR05PUkVfQVVU T1JFUEVBVCwKKysJCU5PX0FVVE9fR1JBQgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0gIm1l dGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRh X2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTGF0ZXJUeXBlIHsKKyAJ CVJFU0laRSwKKyAJCUNBTENfU0hPV0lORywKK0BAIC0xMTQ2LDI1ICsxMjcxLDI1IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCUJFRk9SRV9SRURSQVcsCisgCQlJRExFCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9E SVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTG9jYWxlRGlyZWN0aW9uIHsKKyAJCUxU UiwKKyAJCVJUTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRv dy5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6 ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwgdHlwZV9pZCA9ICJtZXRhX21h eGltaXplX2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gTWF4 aW1pemVGbGFncyB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwsCisgCQlCT1RICisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGNwcmVm aXggPSAiTUVUQV9NT0RBTF8iLCB0eXBlX2lkID0gIm1ldGFfbW9kYWxfb3B0aW9uc19nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5 cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworIAkJUE9J TlRFUl9BTFJFQURZX0dSQUJCRUQsCisgCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o IiwgY3ByZWZpeCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1l dGFfbW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PTklUT1Jf U1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUg eworIAkJQUxMX01JUlJPUiwKKyAJCUFMTF9MSU5FQVIsCitAQCAtMTE3Miw3ICsxMjk3LDcgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJQlVJTFRJTiwKKyAJCVVOS05PV04KKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJ T05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgZW51bSBNb3Rpb25EaXJlY3Rpb24geworIAkJVVAsCisgCQlET1dOLAorQEAg LTExODMsNyArMTMwOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURPV05fTEVGVCwKKyAJCURP V05fUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5 LmgiLCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfcGFkX2Fj dGlvbl90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0 YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gUGFkQWN0aW9u VHlwZSB7CisgCQlCVVRUT04sCisgCQlSSU5HLAorQEAgLTEyMjMsMzAgKzEzNDgsMzkgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKyAJCUFVVE9fTUFYSU1J WkUsCisgCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9MRDsKKysJCURSQUdf VEhSRVNIT0xELAorKwkJTE9DQVRFX1BPSU5URVIsCisrCQlDSEVDS19BTElWRV9USU1FT1VUOwor IAkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwgY3ByZWZpeCA9ICJN RVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfIiwgdHlwZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl90eXBlX2dldF90eXBlICgpIild CisrCXB1YmxpYyBlbnVtIFNlbGVjdGlvblR5cGUgeworKwkJU0VMRUNUSU9OX1BSSU1BUlksCisr CQlTRUxFQ1RJT05fQ0xJUEJPQVJELAorKwkJU0VMRUNUSU9OX0RORCwKKysJCU5fU0VMRUNUSU9O X1RZUEVTCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9k ZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKyAJCUFVVE8sCisg CQlGT1JDRURfT0ZGLAorIAkJRk9SQ0VEX09OCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0g Im1ldGFfc2lkZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lk ZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaWRlIHsKKyAJCUxFRlQsCisgCQlSSUdI VCwKKyAJCVRPUCwKKyAJCUJPVFRPTQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBl X2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdFXyIs IHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51 bSBTaXplQ2hhbmdlIHsKKyAJCU1BWElNSVpFLAorIAkJVU5NQVhJTUlaRSwKKyAJCUZVTExTQ1JF RU4sCisgCQlVTkZVTExTQ1JFRU4KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFf c3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9z dGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKyAJ CURFU0tUT1AsCisgCQlCT1RUT00sCitAQCAtMTI1NiwxOSArMTM5MCwxOSBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlPVkVSUklERV9SRURJUkVDVCwKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJ U1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfTElT VF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVu dW0gVGFiTGlzdCB7CisgCQlOT1JNQUwsCisgCQlET0NLUywKKyAJCUdST1VQLAorIAkJTk9STUFM X0FMTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIs IGNwcmVmaXggPSAiTUVUQV9UQUJfU0hPV18iLCB0eXBlX2lkID0gIm1ldGFfdGFiX3Nob3dfdHlw ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93 X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gVGFiU2hvd1R5cGUgeworIAkJSUNP TiwKKyAJCUlOU1RBTlRMWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3Zp cnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJt ZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMg ZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworIAkJU0hJRlRfTUFTSywKK0BAIC0xMjgyLDE3ICsxNDE2 LDE3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1PRDRfTUFTSywKKyAJCU1PRDVfTUFTSworIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9 ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVu dF90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9 ICJtZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBX aW5kb3dDbGllbnRUeXBlIHsKKyAJCVdBWUxBTkQsCisgCQlYMTEKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1df TUVOVV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1F VEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93TWVudVR5cGUgeworIAkJV00sCisgCQlBUFAK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVm aXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgeworIAkJTk9STUFMLAorIAkJREVTS1RP UCwKK0BAIC0xMzExLDUxICsxNDQ1LDU3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURORCwKKyAJ CU9WRVJSSURFX09USEVSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9y IG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJcHVibGljIGRl bGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLldp bmRvdyB3aW5kb3csIFtDQ29kZSAodHlwZSA9ICJDbHV0dGVyS2V5RXZlbnQqIildIENsdXR0ZXIu S2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAx LjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlByZWZl cmVuY2UgcHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5o IiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wg V2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUi KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi TUVUQV9DVVJSRU5UX1RJTUUiKV0KKyAJcHVibGljIGNvbnN0IGludCBDVVJSRU5UX1RJTUU7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVU QV9ERUZBVUxUX0lDT05fTkFNRSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCisgCXB1YmxpYyBj b25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05f SEVJR0hUIildCisgCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX1dJRFRI IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Ik1FVEFfSUNPTl9XSURUSCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElDT05fV0lEVEg7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9N QUpPUl9WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1B Sk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5o IiwgY25hbWUgPSAiTUVUQV9NSUNST19WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorIAlw dWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fSEVJR0hUIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFf TUlOSV9JQ09OX0hFSUdIVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAi TUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKyAJcHVibGljIGNv bnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVS U0lPTiIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJ X1ZFUlNJT04iKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBQ TFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJ VFlfQkVGT1JFX1JFRFJBVyIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9S RURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25h bWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJ RlkiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklP UklUWV9SRURSQVciKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQ UklPUklUWV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUi KV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVf S0VZQk9BUkRfSUQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKyAJcHVibGljIGNv bnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRF Ul9JRCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCisgCXB1YmxpYyBjb25zdCBpbnQg VklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBz dGF0aWMgdm9pZCBhZGRfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVi dWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tE ZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgpOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2 b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1 cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0aW9uQ29udGV4 dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JlcGxhY2VfY3VycmVudF93 bSAoKTsKK0BAIC0xMzY4LDYgKzE1MDgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQg cmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0dGVyX2RlYnVn X2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdG bGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMg dm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworQEAgLTEz NzUsNiArMTUxNywxNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfZ25vbWVfd21fa2V5YmluZGluZ3MgKHN0cmluZyB3bV9rZXliaW5kaW5ncyk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS14MTEtZGlzcGxheS5oIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0ICgp OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGlj IHN0YXRpYyBib29sIHgxMV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOwor IH0KKytbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3VzdG9tLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGJlZm9yZV9mcmFtZSB7CisrfQor K1tDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJsaWJtdXR0ZXItNy1jdXN0b20uaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3QgZnJhbWUgeworK30KK2RpZmYgLS1naXQg dmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkgdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggN2RjMTg0NzYuLjAwMDAwMDAwCistLS0gdmFw aS9saWJtdXR0ZXItY29nbC00LnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEyNzIgKzAsMCBA QAorLS8qIGxpYm11dHRlci1jb2dsLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90 IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2Ug PSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8i KV0KKy1uYW1lc3BhY2UgQ29nbCB7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBCaXRtYXAgOiBDb2dsLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQml0bWFwICgpOworLQkJcHVibGljIHN0 YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Qml0bWFwLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBn ZXRfZm9ybWF0ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBp bnQgZ2V0X2hlaWdodCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgaW50IGdldF9yb3dzdHJpZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUgKHN0cmluZyBmaWxl bmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1l X2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNCIpXQorLQlwdWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94 ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2ds X21hdGVyaWFsX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgTWF0 ZXJpYWwgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29n bC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZv cmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJp ZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3Ig KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wu Q29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Vt aXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBs YXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3Jh cF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9p bmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBn ZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5 ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6 ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wu Q29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRs ZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRp YyBDb2dsLkhhbmRsZSBAcmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGlj IHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLk1hdGVyaWFsQWxw aGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2Ug KENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wu Q29sb3IgY29uc3RhbnRfY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUs IGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29s b3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xv ciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Np b24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChp bnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9jb21iaW5lX2NvbnN0 YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9sYXllcl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxG aWx0ZXIgbWluX2ZpbHRlciwgQ29nbC5NYXRlcmlhbEZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0 cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRf bGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wu Qm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRl cmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1v ZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dy YXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3Qg KGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXpl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9h dCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVj dWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFs KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBNYXRlcmlhbExh eWVyIHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRlciAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9t b2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0K Ky0JcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT2JqZWN0ICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9v ZmZzY3JlZW5fZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2ds Lk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4 dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVu cmVmICh2b2lkKiBvZmZzY3JlZW4pOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVy ZSB0ZXh0dXJlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBPbnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBPbnNjcmVl biAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5PbnNj cmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFy Z2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNrLCBDb2ds LlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBhZGRfcmVzaXpl X2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2Ny ZWVuUmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/ IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBhZGRfc3dhcF9i dWZmZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNrKTsKKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRFUiAoaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJs aWMgaW50IGdldF9idWZmZXJfYWdlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K Ky0JCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGhpZGUgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2RpcnR5X2NhbGxi YWNrIChDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29n bC5GcmFtZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXpl Q2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVt b3ZlX3N3YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJvb2wgcmVzaXph YmxlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNob3cg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9i dWZmZXJzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lk IHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3Rhbmds ZXMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBf cmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcyk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29n bF9vbnNjcmVlbl9kaXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIGNsYXNzIE9uc2NyZWVuRGlydHlD bG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX3Jlc2l6ZV9jbG9zdXJlX2dldF9ndHlw ZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJs aWMgY2xhc3MgT25zY3JlZW5SZXNpemVDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0X2d0 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQaXBl bGluZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBp cGVsaW5lIGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLlBpcGVsaW5lTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUFs cGhhRnVuYyBnZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVzdF9yZWZlcmVuY2UgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAo Q29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yTWFzayBnZXRfY29sb3JfbWFzayAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2Rl IGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNv bG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBD b2dsLldpbmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWFn X2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWluX2ZpbHRlciAoaW50 IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBD b2dsLkJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVy X2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25l ZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2Rl IGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVy X3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2Rl X3QgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hp bmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg Z2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0cmluZyB1bmlm b3JtX25hbWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wu SGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVu Y3Rpb24gKENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVm ZXJlbmNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29sb3Ig Y29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9v bCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0 YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxv YXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCBy ZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xv ck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgY3Vs bF9mYWNlX21vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Np b24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zy b250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmlu ZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXll cl9jb21iaW5lX2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXll cl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWluX2ZpbHRl ciwgQ29nbC5QaXBlbGluZUZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBD b2dsLlRleHR1cmVUeXBlIHRleHR1cmVfdHlwZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2Vu YWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJy b3I7CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBD b2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlw ZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5Q aXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wu UGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoQ29nbC5Cb29sIGVu YWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9h dCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9s b2NhdGlvbiwgZmxvYXQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFs dWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Vu aWZvcm1fZmxvYXQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQg Y291bnQsIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF91bmlmb3JtX2ludCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBuX2Nv bXBvbmVudHMsIGludCBjb3VudCwgaW50IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX21hdHJpeCAoaW50IHVuaWZvcm1fbG9j YXRpb24sIGludCBkaW1lbnNpb25zLCBpbnQgY291bnQsIENvZ2wuQm9vbCB0cmFuc3Bvc2UsIGZs b2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24geworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZWJ1 ZmZlcl9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBGcmFtZWJ1ZmZlciA6IENv Z2wuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVycywgQ29nbC5Db2xv ciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBj bGVhcjRmICh1bG9uZyBidWZmZXJzLCBmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVl LCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCBkaXNjYXJkX2J1ZmZlcnMgKHVsb25nIGJ1ZmZlcnMpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfbXVsdGl0ZXh0dXJlZF9yZWN0YW5nbGUg KENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIs IGZsb2F0IHlfMiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nv b3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBkcmF3X3JlY3RhbmdsZSAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwg ZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3JlY3RhbmdsZXMgKENvZ2wu UGlwZWxpbmUgcGlwZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtd IGNvb3JkaW5hdGVzLCB1aW50IG5fcmVjdGFuZ2xlcyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5nbGUgKENvZ2wuUGlw ZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlf MiwgZmxvYXQgc18xLCBmbG9hdCB0XzEsIGZsb2F0IHNfMiwgZmxvYXQgdF8yKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3RleHR1cmVkX3JlY3Rh bmdsZXMgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSBmbG9hdFtdIGNvb3JkaW5hdGVzLCB1aW50IG5fcmVjdGFuZ2xlcyk7CistCQlwdWJsaWMg c3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCBmaW5pc2ggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZs b2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9ibHVlX2Jp dHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xv ck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9l bmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBn ZXRfZ3JlZW5fYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5NYXRyaXgg Z2V0X21vZGVsdmlld19tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3JlZF9iaXRzICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3NhbXBsZXNfcGVy X3BpeGVsICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyBDb2ds LlN0ZXJlb01vZGUgZ2V0X3N0ZXJlb19tb2RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3ZpZXdwb3J0NGZ2IChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gb3V0IHVub3duZWQgZmxvYXQgdmlld3BvcnRbNF0pOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF9oZWlnaHQgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3ZpZXdw b3J0X3dpZHRoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZs b2F0IGdldF92aWV3cG9ydF94ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIGZsb2F0IGdldF92aWV3cG9ydF95ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgaWRlbnRpdHlfbWF0cml4ICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8x LCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHBlcnNwZWN0 aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFy KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwb3BfY2xp cCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwb3Bf bWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHB1c2hfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4 XzIsIGZsb2F0IHlfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29s IHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAoaW50 IHgsIGludCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJpdG1h cCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCByZXNvbHZl X3NhbXBsZXMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9p ZCByZXNvbHZlX3NhbXBsZXNfcmVnaW9uIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl aWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcm90 YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVs ZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg cm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3RleHR1cmVf ZW5hYmxlZCAoQ29nbC5Cb29sIGVuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChDb2dsLkJvb2wgZGVw dGhfd3JpdGVfZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBkaXRoZXJfZW5hYmxlZCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X21vZGVsdmll d19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBt YXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3NhbXBsZXNfcGVyX3BpeGVsIChpbnQgc2FtcGxlc19wZXJfcGl4ZWwpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zdGVyZW9fbW9kZSAoQ29nbC5T dGVyZW9Nb2RlIHN0ZXJlb19tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF92aWV3cG9ydCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgs IGZsb2F0IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBpbnRl cmZhY2UgVGV4dHVyZSA6IENvZ2wuT2JqZWN0IHsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2Nh dGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9x dWFyayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5U ZXh0dXJlQ29tcG9uZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2Rh dGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7 CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFu ZGxlLCBvdXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKy0JCXB1YmxpYyB1aW50IGdldF9oZWlnaHQg KCk7CistCQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcHJlbXVsdGlwbGllZCAoKTsKKy0J CXB1YmxpYyB1aW50IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfc2xpY2Vk ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5l d19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFn cywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwg aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9y bWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWlu dDggZGF0YSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1 cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFn cywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgi LCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9t X2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwgdWlu dCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4ZWxG b3JtYXQgZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJl IG5ld19mcm9tX3N1Yl90ZXh0dXJlIChpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0 aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIG5ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb21wb25l bnRzIChDb2dsLlRleHR1cmVDb21wb25lbnRzIGNvbXBvbmVudHMpOworLQkJcHVibGljIENvZ2wu Qm9vbCBzZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIHVp bnQ4IGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ByZW11bHRpcGxpZWQgKENvZ2wuQm9v bCBwcmVtdWx0aXBsaWVkKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbiAoaW50IHNy Y194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWlu dCBkc3RfaGVpZ2h0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9y bWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBz cmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVp bnQgZHN0X2hlaWdodCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCistCXB1YmxpYyBz dHJ1Y3QgQW5nbGUgOiBpbnQzMiB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0IEJvb2wgOiBp bnQgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5 cGVfaWQgPSAiY29nbF9jb2xvcl9nZXRfZ3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RydWN0IENvbG9yIHsKKy0JCXB1YmxpYyBDb2dsLkNvbG9yPyBj b3B5ICgpOworLQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZXF1YWwgKHZvaWQqIHYxLCB2b2lk KiB2Mik7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhICgpOworLQkJcHVibGljIHVpbnQ4IGdl dF9hbHBoYV9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYV9mbG9hdCAoKTsKKy0J CXB1YmxpYyBmbG9hdCBnZXRfYmx1ZSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfYmx1ZV9ieXRl ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9ibHVlX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0 IGdldF9ncmVlbiAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfZ3JlZW5fYnl0ZSAoKTsKKy0JCXB1 YmxpYyBmbG9hdCBnZXRfZ3JlZW5fZmxvYXQgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3JlZCAo KTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfcmVkX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0 X3JlZF9mbG9hdCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIGluaXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxv YXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg aW5pdF9mcm9tXzRmdiAoZmxvYXQgY29sb3JfYXJyYXkpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBn cmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTYiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0X2Zyb21faHNsIChvdXQgQ29nbC5Db2xv ciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBmbG9hdCBsdW1pbmFuY2UpOwor LQkJcHVibGljIHZvaWQgcHJlbXVsdGlwbHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV9ieXRlICh1aW50OCBh bHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf YWxwaGFfZmxvYXQgKGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9ibHVlIChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsdWVfZmxv YXQgKGZsb2F0IGJsdWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zy b21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAodWludDggcmVk LCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW5fYnl0 ZSAodWludDggZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2dyZWVuX2Zsb2F0IChmbG9hdCBncmVlbik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVkIChmbG9hdCByZWQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZF9ieXRlICh1aW50OCBy ZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jl ZF9mbG9hdCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlw dWJsaWMgdm9pZCB0b19oc2wgKG91dCBmbG9hdCBodWUsIG91dCBmbG9hdCBzYXR1cmF0aW9uLCBv dXQgZmxvYXQgbHVtaW5hbmNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIHVucHJlbXVsdGlwbHkgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0cnVjdCBEZWJ1Z09iamVjdFR5cGVJbmZvIHsKKy0J CXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGljIHVsb25nIGluc3RhbmNlX2NvdW50 OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb U2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBIYW5kbGUgeworLQkJcHVibGljIHN0YXRpYyBH TGliLlR5cGUgZ2V0X3R5cGUgKCk7CistCQlwdWJsaWMgQ29nbC5IYW5kbGUgQHJlZiAoKTsKKy0J CXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9tYXRyaXhfZ2V0X2d0eXBlICgpIildCist CXB1YmxpYyBzdHJ1Y3QgTWF0cml4IHsKKy0JCXB1YmxpYyBmbG9hdCB4eDsKKy0JCXB1YmxpYyBm bG9hdCB5eDsKKy0JCXB1YmxpYyBmbG9hdCB6eDsKKy0JCXB1YmxpYyBmbG9hdCB3eDsKKy0JCXB1 YmxpYyBmbG9hdCB4eTsKKy0JCXB1YmxpYyBmbG9hdCB5eTsKKy0JCXB1YmxpYyBmbG9hdCB6eTsK Ky0JCXB1YmxpYyBmbG9hdCB3eTsKKy0JCXB1YmxpYyBmbG9hdCB4ejsKKy0JCXB1YmxpYyBmbG9h dCB5ejsKKy0JCXB1YmxpYyBmbG9hdCB6ejsKKy0JCXB1YmxpYyBmbG9hdCB3ejsKKy0JCXB1Ymxp YyBmbG9hdCB4dzsKKy0JCXB1YmxpYyBmbG9hdCB5dzsKKy0JCXB1YmxpYyBmbG9hdCB6dzsKKy0J CXB1YmxpYyBmbG9hdCB3dzsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1Ymxp YyBDb2dsLk1hdHJpeD8gY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20s IGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlwdWJsaWMgdW5vd25l ZCBmbG9hdFtdIGdldF9hcnJheSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsK Ky0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlw dWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5p b24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF90 cmFuc2xhdGlvbiAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX2lkZW50aXR5ICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQg ZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25f eiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQg d29ybGRfdXBfeCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20s IGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQg eV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCXB1 YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6 X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQg bl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBz dHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworLQkJcHVibGljIHZv aWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENv Z2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0J CXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN6KTsKKy0JCXB1 YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludCAocmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYg ZmxvYXQgeiwgcmVmIGZsb2F0IHcpOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50cyAo aW50IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXpl X3Qgc3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKy0JCXB1Ymxp YyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJhbnNwb3NlICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9pbl9mcnVzdHVt IChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0 IHpfbmVhciwgZmxvYXQgel8yZCwgZmxvYXQgd2lkdGhfMmQsIGZsb2F0IGhlaWdodF8yZCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCB2aWV3XzJkX2luX3Bl cnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0 IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IE9uc2NyZWVuRGly dHlJbmZvIHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBp bnQgd2lkdGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IHN0cnVjdCBUZXh0dXJlVmVydGV4IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZs b2F0IHk7CistCQlwdWJsaWMgZmxvYXQgejsKKy0JCXB1YmxpYyBmbG9hdCB0eDsKKy0JCXB1Ymxp YyBmbG9hdCB0eTsKKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGNvbG9yOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdHJ1Y3QgVXNlckRhdGFLZXkg eworLQkJcHVibGljIGludCB1bnVzZWQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xDb2xvclNpemVDaGVjayIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IF9Db2xvclNpemVDaGVjayB7CistCQlbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxl X3RpbWVfYXNzZXJ0X0NvZ2xDb2xvcl9zaXplOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsTWF0cml4U2l6ZUNoZWNrIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX01hdHJpeFNpemVDaGVjayB7Cist CQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJbXSBj b21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xNYXRyaXhfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbFRleHR1cmVWZXJ0ZXhT aXplQ2hlY2siLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBfVGV4dHVy ZVZlcnRleFNpemVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0J CXB1YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xUZXh0dXJlVmVydGV4 X3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX0FUVFJJQlVURV9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEF0dHJpYnV0ZVR5cGUg eworLQkJQllURSwKKy0JCVVOU0lHTkVEX0JZVEUsCistCQlTSE9SVCwKKy0JCVVOU0lHTkVEX1NI T1JULAorLQkJRkxPQVQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQklUTUFQX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIEJpdG1hcEVy cm9yIHsKKy0JCUZBSUxFRCwKKy0JCVVOS05PV05fVFlQRSwKKy0JCUNPUlJVUFRfSU1BR0UKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfQkxFTkRfU1RSSU5HX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEJsZW5kU3RyaW5nRXJyb3Igewor LQkJUEFSU0VfRVJST1IsCistCQlBUkdVTUVOVF9QQVJTRV9FUlJPUiwKKy0JCUlOVkFMSURfRVJS T1IsCistCQlHUFVfVU5TVVBQT1JURURfRVJST1I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBx dWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfQlVGRkVSX0JJVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEJ1ZmZl ckJpdCB7CistCQlDT0xPUiwKKy0JCURFUFRILAorLQkJU1RFTkNJTAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CistCXB1YmxpYyBlbnVtIEJ1ZmZlclRhcmdldCB7CistCQlXSU5ET1dfQlVGRkVSLAorLQkJT0ZG U0NSRUVOX0JVRkZFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05FLAorLQkJUkVE LAorLQkJR1JFRU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfREVQVEhf VEVTVF9GVU5DVElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRGVw dGhUZXN0RnVuY3Rpb24geworLQkJTkVWRVIsCistCQlMRVNTLAorLQkJRVFVQUwsCistCQlMRVFV QUwsCistCQlHUkVBVEVSLAorLQkJTk9URVFVQUwsCistCQlHRVFVQUwsCistCQlBTFdBWVMKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlU RVhUVVJFX1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVRFWFRVUkVfWVVWLAorLQkJ VEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCVNIQURFUlNfR0xTTCwKKy0JCU9GRlNDUkVFTiwKKy0J CU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9CTElULAorLQkJRk9VUl9DTElQ X1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJ R05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJVEVYVFVSRV9OUE9UX0JBU0lD LAorLQkJVEVYVFVSRV9OUE9UX01JUE1BUCwKKy0JCVRFWFRVUkVfTlBPVF9SRVBFQVQsCistCQlQ T0lOVF9TUFJJVEUsCistCQlURVhUVVJFXzNELAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0J CU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9U RVhUVVJFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IGVudW0gRmlsdGVyUmV0dXJuIHsKKy0JCUNPTlRJTlVFLAorLQkJUkVNT1ZFCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZP R19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBlbnVtIEZvZ01vZGUgeworLQkJTElORUFSLAorLQkJRVhQT05FTlRJQUws CistCQlFWFBPTkVOVElBTF9TUVVBUkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZSQU1FX0VWRU5UXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQlwdWJsaWMgZW51 bSBGcmFtZUV2ZW50IHsKKy0JCVNZTkMsCistCQlDT01QTEVURQorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRUJVRkZF Ul9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRnJhbWVidWZm ZXJFcnJvciB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRlJBTUVCVUZGRVJfRVJST1JfQUxM T0NBVEUiKV0KKy0JCUZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRFOworLQkJcHVibGljIHN0YXRp YyB1aW50MzIgcXVhcmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0lORElDRVNfVFlQRV9VTlNJR05FRF8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gSW5kaWNlc1R5cGUgeworLQkJQllURSwK Ky0JCVNIT1JULAorLQkJSU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0FMUEhBX0ZVTkNfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsQWxwaGFGdW5jIHsKKy0JCU5F VkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRFUiwKKy0JCU5P VEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0ZJTFRFUl8i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxGaWx0ZXIgewor LQkJTkVBUkVTVCwKKy0JCUxJTkVBUiwKKy0JCU5FQVJFU1RfTUlQTUFQX05FQVJFU1QsCistCQlM SU5FQVJfTUlQTUFQX05FQVJFU1QsCistCQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCistCQlMSU5F QVJfTUlQTUFQX0xJTkVBUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVt IE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9NQVRFUklBTF9M QVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7Cist CQlSRVBFQVQsCistCQlDTEFNUF9UT19FREdFLAorLQkJQVVUT01BVElDCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVM SU5FX0FMUEhBX0ZVTkNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFBp cGVsaW5lQWxwaGFGdW5jIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVR VUFMLAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX1BJUEVMSU5FX0NVTExfRkFDRV9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgZW51bSBQaXBlbGluZUN1bGxGYWNlTW9kZSB7CistCQlOT05FLAorLQkJRlJPTlQs CistCQlCQUNLLAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9GSUxURVJfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lRmlsdGVyIHsKKy0JCU5FQVJFU1Qs CistCQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElORUFSX01JUE1B UF9ORUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElORUFSX01JUE1BUF9M SU5FQVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfUElQRUxJTkVfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lV3Jh cE1vZGUgeworLQkJUkVQRUFULAorLQkJTUlSUk9SRURfUkVQRUFULAorLQkJQ0xBTVBfVE9fRURH RSwKKy0JCUFVVE9NQVRJQworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVhFTF9GT1JNQVRfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMg ZW51bSBQaXhlbEZvcm1hdCB7CistCQlBTlksCistCQlBXzgsCistCQlSR0JfNTY1LAorLQkJUkdC QV80NDQ0LAorLQkJUkdCQV81NTUxLAorLQkJWVVWLAorLQkJR184LAorLQkJUkdfODgsCistCQlS R0JfODg4LAorLQkJQkdSXzg4OCwKKy0JCVJHQkFfODg4OCwKKy0JCUJHUkFfODg4OCwKKy0JCUFS R0JfODg4OCwKKy0JCUFCR1JfODg4OCwKKy0JCVJHQkFfMTAxMDEwMiwKKy0JCUJHUkFfMTAxMDEw MiwKKy0JCUFSR0JfMjEwMTAxMCwKKy0JCUFCR1JfMjEwMTAxMCwKKy0JCVJHQkFfODg4OF9QUkUs CistCQlCR1JBXzg4ODhfUFJFLAorLQkJQVJHQl84ODg4X1BSRSwKKy0JCUFCR1JfODg4OF9QUkUs CistCQlSR0JBXzQ0NDRfUFJFLAorLQkJUkdCQV81NTUxX1BSRSwKKy0JCVJHQkFfMTAxMDEwMl9Q UkUsCistCQlCR1JBXzEwMTAxMDJfUFJFLAorLQkJQVJHQl8yMTAxMDEwX1BSRSwKKy0JCUFCR1Jf MjEwMTAxMF9QUkUsCistCQlERVBUSF8xNiwKKy0JCURFUFRIXzMyLAorLQkJREVQVEhfMjRfU1RF TkNJTF84CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0g UmVhZFBpeGVsc0ZsYWdzIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9SRUFEX1BJWEVMU19D T0xPUl9CVUZGRVIiKV0KKy0JCVJFQURfUElYRUxTX0NPTE9SX0JVRkZFUgorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRU5E RVJFUl9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gUmVuZGVy ZXJFcnJvciB7CistCQlYTElCX0RJU1BMQVlfT1BFTiwKKy0JCUJBRF9DT05TVFJBSU5UCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX1NIQURFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFNoYWRlclR5cGUgeworLQkJVkVSVEVYLAorLQkJ RlJBR01FTlQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfU1RFUkVPXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJs aWMgZW51bSBTdGVyZW9Nb2RlIHsKKy0JCUJPVEgsCistCQlMRUZULAorLQkJUklHSFQKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfU1lTVEVNX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFN5c3RlbUVycm9yIHsKKy0JCVVOU1VQUE9SVEVE LAorLQkJTk9fTUVNT1JZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfQ09NUE9ORU5UU18iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIGVudW0g VGV4dHVyZUNvbXBvbmVudHMgeworLQkJQSwKKy0JCVJHLAorLQkJUkdCLAorLQkJUkdCQSwKKy0J CURFUFRICistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZUVycm9yIHsK Ky0JCVNJWkUsCistCQlGT1JNQVQsCistCQlCQURfUEFSQU1FVEVSLAorLQkJVFlQRTsKKy0JCXB1 YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIGVudW0gVGV4dHVyZUZsYWdzIHsKKy0JCU5PTkUsCistCQlOT19BVVRPX01JUE1BUCwK Ky0JCU5PX1NMSUNJTkcsCistCQlOT19BVExBUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX1RZUEVfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBlbnVtIFRleHR1cmVUeXBlIHsKKy0JCUAyRCwKKy0JCUAzRCwKKy0JCVJFQ1RBTkdMRQorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9WRVJUSUNFU19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFZlcnRpY2VzTW9kZSB7CistCQlQT0lOVFMs CistCQlMSU5FUywKKy0JCUxJTkVfTE9PUCwKKy0JCUxJTkVfU1RSSVAsCistCQlUUklBTkdMRVMs CistCQlUUklBTkdMRV9TVFJJUCwKKy0JCVRSSUFOR0xFX0ZBTgorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5ESU5HXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBXaW5kaW5nIHsKKy0JCUNMT0NL V0lTRSwKKy0JCUNPVU5URVJfQ0xPQ0tXSVNFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1dJTlNZU19GRUFUVVJFXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBXaW5zeXNGZWF0dXJlIHsKKy0JCU1V TFRJUExFX09OU0NSRUVOLAorLQkJU1dBUF9USFJPVFRMRSwKKy0JCVZCTEFOS19DT1VOVEVSLAor LQkJVkJMQU5LX1dBSVQsCistCQlURVhUVVJFX0ZST01fUElYTUFQLAorLQkJU1dBUF9CVUZGRVJT X0VWRU5ULAorLQkJU1dBUF9SRUdJT04sCistCQlTV0FQX1JFR0lPTl9USFJPVFRMRSwKKy0JCVNX QVBfUkVHSU9OX1NZTkNIUk9OSVpFRCwKKy0JCUJVRkZFUl9BR0UsCistCQlTWU5DX0FORF9DT01Q TEVURV9FVkVOVCwKKy0JCU5fRkVBVFVSRVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0Rm9yZWFjaFR5 cGVDYWxsYmFjayAoQ29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgQ29nbC5Cb29sIE1hdGVyaWFsTGF5ZXJD YWxsYmFjayAoQ29nbC5NYXRlcmlhbCBtYXRlcmlhbCwgaW50IGxheWVyX2luZGV4KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45 KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQg T25zY3JlZW5EaXJ0eUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLk9uc2Ny ZWVuRGlydHlJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAzLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENvZ2wuT25z Y3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1Ymxp YyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9u c2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBQaXBlbGluZUxheWVyQ2FsbGJh Y2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCist CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVy IGZyYW1lYnVmZmVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRhdGFE ZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0FGSVJTVF9CSVQiKV0KKy0JcHVibGljIGNv bnN0IGludCBBRklSU1RfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjbmFtZSA9ICJDT0dMX0FfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgQV9CSVQ7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNP R0xfQkdSX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIild CistCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BSRU1VTFRfQklUIildCistCXB1Ymxp YyBjb25zdCBpbnQgUFJFTVVMVF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfU1RFTkNJTF9CSVQiKV0KKy0JcHVibGljIGNvbnN0 IGludCBTVEVOQ0lMX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01BWF9XQVNURSIpXQorLQlwdWJsaWMgY29uc3Qg aW50IFRFWFRVUkVfTUFYX1dBU1RFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGJlZ2lu X2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjaGVja19leHRlbnNpb24gKHN0cmluZyBuYW1lLCBz dHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVhciAoQ29nbC5Db2xvciBjb2xvciwgdWxvbmcg YnVmZmVycyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVS IChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0dGVyX3dpbnN5 c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVyZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19tYXRyaXhfcHJpbnQgKENv Z2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBkZWJ1Z19vYmplY3RfZm9yZWFjaF90eXBlIChDb2dsLkRlYnVnT2JqZWN0Rm9yZWFjaFR5cGVD YWxsYmFjayBmdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRl YnVnX29iamVjdF9wcmludF9pbnN0YW5jZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkJvb2wgZmVhdHVyZXNfYXZhaWxhYmxlIChDb2dsLkZlYXR1cmVGbGFncyBmZWF0dXJlcyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmbHVzaCAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44LjIiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBm bG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0IGludCBibHVl LCBvdXQgaW50IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9kZXB0aF90ZXN0X2VuYWJs ZWQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZy YW1lYnVmZmVyIGdldF9kcmF3X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4 IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBHTGliLk9w dGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9w cm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCogZ2V0X3Nv dXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBndHlwZV9tYXRy aXhfZ2V0X3R5cGUgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu Qm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX29uc2NyZWVuICh2b2lkKiBvYmplY3QpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19waXBlbGluZSAodm9p ZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX3ZlcnRleF9i dWZmZXJfaW5kaWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxv YXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBlcnNwZWN0aXZl IChmbG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAoQ29nbC5UZXh0 dXJlVmVydGV4IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIENvZ2wuQm9vbCB1c2VfY29sb3Ip OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHBvcF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgcG9wX3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHJlY3RhbmdsZSAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8y KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRo X211bHRpdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0 IHkyLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB0ZXhfY29vcmRzLCBp bnQgdGV4X2Nvb3Jkc19sZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgcmVjdGFuZ2xlX3dpdGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxv YXQgeDIsIGZsb2F0IHkyLCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwgZmxvYXQgdHgyLCBmbG9hdCB0 eTIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlcyAo W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0 cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNf d2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0 W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmds ZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2NhbGUgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxsaW5n X2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVz dF9lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvZyAoQ29n bC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5zaXR5LCBmbG9h dCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJp eCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRy aXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQg Ymx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3Vy Y2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFs cGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3RleHR1cmUgKENv Z2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF92aWV3 cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBzdHJpbmcgc2hh ZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFk ZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5Cb29sIHNoYWRlcl9pc19jb21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJp dG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGlu dGVybmFsX2Zvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0 dXJlX25ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxh Z3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVy bmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFt ZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIHRleHR1cmVfbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFy Z2V0LCB1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3Bv dF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhl aWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm0gKENvZ2wuTWF0 cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2FkZCAoQ29nbC5IYW5kbGUgaGFu ZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUsIHVpbnQ4IG5fY29tcG9uZW50cywgQ29nbC5BdHRy aWJ1dGVUeXBlIHR5cGUsIENvZ2wuQm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lk KiBwb2ludGVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5k bGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9i dWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBD b2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmVydGV4X2J1ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wu VmVydGljZXNNb2RlIG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGlu dCBtYXhfaW5kZXgsIGludCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmli dXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENv Z2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfaW5k aWNlc19nZXRfZm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSW5kaWNl c1R5cGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRsZSBpbmRpY2Vz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0aWNl cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNl ID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWludCB3aWR0aCwg dWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1YWxfeGlkIChD b2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNj cmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfb25zY3Jl ZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMy IHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDExTWFza0NhbGxi YWNrIHVwZGF0ZSk7CistfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9t LnZhbGEgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IGI4ZDgzOGQwLi4wMDAwMDAwMAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0 ZXItNS1jdXN0b20udmFsYQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTU4ICswLDAgQEAKKy1uYW1l c3BhY2UgQ2x1dHRlciB7CistICBbQ0NvZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9S X0JPWCIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1Ymxp YyBzdHJ1Y3QgQWN0b3JCb3ggeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3Jf Ym94X2Zyb21fdmVydGljZXMiKV0KKy0gICAgcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMg KENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworLSAgfQorLQorLSAgcHVibGljIHN0cnVjdCBNYXRy aXggOiBDb2dsLk1hdHJpeCB7CistICB9CistCistICBwdWJsaWMgY2xhc3MgQmFja2VuZCA6IEdM aWIuT2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBh ZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25Hcm91cCBncm91cCk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIuRXJy b3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRl ci5TdGFnZVdpbmRvdyBjcmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dz IEdMaWIuRXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQg ZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgICBbTm9XcmFwcGVyXQor LSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfZGV2 aWNlX21hbmFnZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIENs dXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0g ICAgcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2ZlYXR1cmVzICgpOworLSAgICBbTm9XcmFw cGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIHBvc3RfcGFyc2UgKCkgdGhyb3dzIEdMaWIu RXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3Bh cnNlICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMg dmlydHVhbCB2b2lkIHJlZHJhdyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistICB9CistCistICBb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfYm94X2dldF90eXBlICgpIildCistICBwdWJsaWMgY2xhc3MgQm94IDogQ2x1dHRl ci5BY3RvciB7CistICAgIHB1YmxpYyBDbHV0dGVyLkxheW91dE1hbmFnZXIgbGF5b3V0X21hbmFn ZXIgeyBnZXQ7IHNldDsgfQorLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJf VFlQRV9DT0xPUiIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0g IHB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29s b3JfZnJvbV9obHMiKV0KKy0gICAgcHVibGljIENvbG9yLmZyb21faGxzIChmbG9hdCBodWUsIGZs b2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistICAgIFtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl9jb2xvcl9mcm9tX3BpeGVsIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX3BpeGVs ICh1aW50MzIgcGl4ZWwpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJv bV9zdHJpbmciKV0KKy0gICAgcHVibGljIENvbG9yLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsK Ky0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistICAg IHB1YmxpYyBib29sIHBhcnNlX3N0cmluZyAoc3RyaW5nIHN0cik7CistICAgIHB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBnZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9y IGNvbG9yKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jb250YWluZXJfZ2V0X3R5cGUgKCkiKV0K Ky0gIHB1YmxpYyBpbnRlcmZhY2UgQ29udGFpbmVyIDogR0xpYi5PYmplY3QgeworLSAgICBwdWJs aWMgdm9pZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKy0gICAgW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5Iild CistICAgIHB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJv cGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2NvbnRhaW5lcl9jbGFzc19saXN0X2NoaWxkX3Byb3BlcnRpZXMiKV0KKy0gICAgcHVibGlj IGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNwZWNbXSBsaXN0X2NoaWxkX3Byb3BlcnRpZXMgKCk7 CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2V2ZW50X2dldF90eXBlICgpIildCistICBb Q29tcGFjdF0KKy0gIHB1YmxpYyBjbGFzcyBFdmVudCB7CistICAgIHB1YmxpYyBDbHV0dGVyLkFu eUV2ZW50IGFueSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlFdmVudCAqKSIpXSBnZXQ7 IH0KKy0gICAgcHVibGljIENsdXR0ZXIuQnV0dG9uRXZlbnQgYnV0dG9uIHsgW0NDb2RlIChjbmFt ZSA9ICIoQ2x1dHRlckJ1dHRvbkV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRl ci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckNyb3Nz aW5nRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLktleUV2ZW50IGtleSB7 IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVi bGljIENsdXR0ZXIuTW90aW9uRXZlbnQgbW90aW9uIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRl ck1vdGlvbkV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5TY3JvbGxFdmVu dCBzY3JvbGwgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU2Nyb2xsRXZlbnQgKikiKV0gZ2V0 OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVudCBzdGFnZV9zdGF0ZSB7IFtD Q29kZSAoY25hbWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gZ2V0OyB9CistICAg IHB1YmxpYyBDbHV0dGVyLlRvdWNoRXZlbnQgdG91Y2ggeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0 dGVyVG91Y2hFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuVG91Y2hwYWRQ aW5jaEV2ZW50IHRvdWNocGFkX3BpbmNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNo cGFkUGluY2hFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuVG91Y2hwYWRT d2lwZUV2ZW50IHRvdWNocGFkX3N3aXBlIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNo cGFkU3dpcGVFdmVudCAqKSIpXSBnZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9 ICJjbHV0dGVyX3N0YWdlX2dldF90eXBlICgpIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5Hcm91cCB7Cist ICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0gICAgcHVibGljIHZvaWQg cmVkcmF3ICgpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5P YmplY3QgeworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRf cmVkcmF3X2NsaXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0gICAgW05v V3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVy Lkdlb21ldHJ5IGdlb21ldHJ5KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3Ry YWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIGFic3RyYWN0IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfd3JhcHBlciAoKTsKKy0gICAg W05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgaGFzX3JlZHJhd19jbGlwcyAo KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsK Ky0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgaWdub3JpbmdfcmVk cmF3X2NsaXBzICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9v bCByZWFsaXplICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9p ZCByZXNpemUgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistICAgIFtOb1dyYXBwZXJdCistICAg IHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9jdXJzb3JfdmlzaWJsZSAoYm9vbCBjdXJzb3Jfdmlz aWJsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9m dWxsc2NyZWVuIChib29sIGlzX2Z1bGxzY3JlZW4pOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF91c2VyX3Jlc2l6YWJsZSAoYm9v bCBpc19yZXNpemFibGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qg dm9pZCBzaG93IChib29sIGRvX3JhaXNlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGlj IGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lk ID0gImNsdXR0ZXJfdGV4dHVyZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3Rv ciB7CistICAgIHB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBnZXQ7IHNldDsg fQorLSAgICBwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9Cist ICB9CistCistICBbQ29tcGFjdF0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGNsYXNzIFRpbWVvdXRQb29sIHsKKy0gICAgW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLSAgICBwdWJsaWMgVGltZW91 dFBvb2wgKGludCBwcmlvcml0eSk7CistICB9CistCistICBbQ0NvZGUgKGNwcmVmaXggPSAiQ0xV VFRFUl9GRUFUVVJFXyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0gIFtGbGFnc10KKy0gIHB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistICAgIFRFWFRVUkVf TlBPVDsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfYXZhaWxhYmxlIild CistICAgIHB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX2ZlYXR1cmVfZ2V0X2FsbCIpXQorLSAgICBwdWJsaWMgc3RhdGljIENsdXR0ZXIu RmVhdHVyZUZsYWdzIEBnZXQgKCk7CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAiQ0xV VFRFUl9UWVBFX1VOSVRTIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLSAgcHVibGljIHN0cnVjdCBVbml0cyB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl91bml0c19mcm9tX2NtIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX2NtIChmbG9hdCBjbSk7 CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtIildCistICAgIHB1 YmxpYyBVbml0cy5mcm9tX2VtIChmbG9hdCBlbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl91bml0c19mcm9tX2VtX2Zvcl9mb250IildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX2Vt X2Zvcl9mb250IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistICAgIFtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl91bml0c19mcm9tX21tIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX21t IChmbG9hdCBtbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3Bp eGVscyIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9waXhlbHMgKGludCBweCk7CistICAgIFtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3B0IildCistICAgIHB1YmxpYyBVbml0 cy5mcm9tX3B0IChmbG9hdCBwdCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0 c19mcm9tX3N0cmluZyIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9zdHJpbmcgKHN0cmluZyBz dHIpOworLSAgfQorLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00LWN1c3RvbS52 YWxhIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQorc2ltaWxhcml0eSBpbmRleCA5 MiUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYQorcmVuYW1l IHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQoraW5kZXggYjhkODM4ZDAuLjg5 MjI0YmU2IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYQorKysr IHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQorQEAgLTEsOSArMSw0IEBACisgbmFt ZXNwYWNlIENsdXR0ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RP Ul9CT1giLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJs aWMgc3RydWN0IEFjdG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9y X2JveF9mcm9tX3ZlcnRpY2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2Vz IChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKy0gIH0KKyAKKyAgIHB1YmxpYyBzdHJ1Y3QgTWF0 cml4IDogQ29nbC5NYXRyaXggeworICAgfQorQEAgLTE4LDggKzEzLDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3Vy ZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAgICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9t YW5hZ2VyICgpOworLSAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCBDbHV0dGVy LkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1 YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CitAQCAtODMsMTAgKzc2LDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAorICAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCisgICBwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5P YmplY3QgeworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRf cmVkcmF3X2NsaXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0gICAgW05v V3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVy Lkdlb21ldHJ5IGdlb21ldHJ5KTsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIGFic3Ry YWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKyAgICAgW05vV3JhcHBlcl0KK2RpZmYgLS1n aXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMgdmFwaS9tdXR0ZXItY2x1dHRlci02LmRlcHMK K3NpbWlsYXJpdHkgaW5kZXggNjMlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTUu ZGVwcworcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitpbmRleCAzZjVhOTJh Ni4uN2E3MGQ2ZGYgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMKKysrKyB2 YXBpL211dHRlci1jbHV0dGVyLTYuZGVwcworQEAgLTEsNCArMSw0IEBACisgYXRrCisgY2Fpcm8K KyBqc29uLWdsaWItMS4wCistbXV0dGVyLWNvZ2wtNQorK211dHRlci1jb2dsLTYKK2RpZmYgLS1n aXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkgdmFwaS9tdXR0ZXItY2x1dHRlci02LnZhcGkK K3NpbWlsYXJpdHkgaW5kZXggOTMlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTUu dmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitpbmRleCAyNGY3ZjZi MS4uMDEzMGE5M2MgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkKKysrKyB2 YXBpL211dHRlci1jbHV0dGVyLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNs dXR0ZXItNS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8q IG11dHRlci1jbHV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlm eS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAi Q2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRl cl8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1 dHRlciIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8i KV0KKyBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCW5hbWVzcGFjZSBLZXkgeworIAkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY25hbWUgPSAiQ0xVVFRFUl9L RVlfMCIpXQorQEAgLTQ2NjEsMjIgKzQ2NjEsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHZvaWQgYWxsb2NhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWxsb2NhdGlvbkZs YWdzIGZsYWdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFuaW1hdGlvbiBhbmltYXRlICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9uLCAuLi4pOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1h dGVfd2l0aF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgLi4uKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxw aGF2IChDbHV0dGVyLkFscGhhIGFscGhhLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41KV0gc3RyaW5nW10gcHJvcGVydGll cywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDEuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90aW1lbGlu ZSAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgLi4uKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dp dGhfdGltZWxpbmV2ICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUg PSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIuVmFsdWVbXSB2 YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5p bWF0aW9uIGFuaW1hdGV2ICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9uLCBbQ0NvZGUgKGFycmF5 X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0g c3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9w ZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFw cGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3Is IENsdXR0ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3JlbGF0aXZlX3Ry YW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIEdyYXBoZW5lLlBvaW50 M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtOb1dy YXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X3RyYW5zZm9ybSAocmVmIENsdXR0 ZXIuTWF0cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLlZlcnRl eCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKEdyYXBo ZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgdm9pZCBiaW5kX21vZGVs IChHTGliLkxpc3RNb2RlbD8gbW9kZWwsIG93bmVkIENsdXR0ZXIuQWN0b3JDcmVhdGVDaGlsZEZ1 bmMgY3JlYXRlX2NoaWxkX2Z1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAg LTQ2ODgsMjAgKzQ2ODAsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgY29udGFpbnMgKENsdXR0ZXIuQWN0b3IgZGVz Y2VuZGFudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBj b250aW51ZV9wYWludCAoKTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BhaW50IChDbHV0dGVy LlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3Bp Y2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5Db250ZXh0IGNyZWF0ZV9wYW5nb19jb250ZXh0 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkxheW91 dCBjcmVhdGVfcGFuZ29fbGF5b3V0IChzdHJpbmc/IHRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGRlc3Ryb3lfYWxsX2NoaWxkcmVuICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGRldGFjaF9hbmltYXRpb24gKCk7CisgCQlb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZl bnQsIGJvb2wgY2FwdHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CisrCQlwdWJsaWMgdm9pZCBnZXRf YWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBH cmFwaGVuZS5Qb2ludDNEIHZlcnRzWzRdKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQXRr Lk9iamVjdCBnZXRfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0aW9uIGdldF9hY3Rpb24gKHN0cmluZyBuYW1l KTsKK0BAIC00NzA5LDE2ICs0NzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBnZXRfYWxs b2NhdGlvbl9ib3ggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2Vv bWV0cnkgZ2V0X2FsbG9jYXRpb25fZ2VvbWV0cnkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5B Y3Rvcj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZl cnRleCB2ZXJ0c1s0XSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fu Y2hvcl9wb2ludCAob3V0IGZsb2F0IGFuY2hvcl94LCBvdXQgZmxvYXQgYW5jaG9yX3kpOworKwkJ cHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0b3I/IGFuY2Vz dG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0 c1s0XSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRf YW5jaG9yX3BvaW50X2dyYXZpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BbmltYXRpb24gZ2V0X2FuaW1hdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYmFja2dyb3VuZF9j b2xvciAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9nZXRfYWN0b3JfYnlfZ2lkIild CitAQCAtNDc2OCw4ICs0NzUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJv b2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uX3NldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yRmxhZ3MgZ2V0X2ZsYWdzICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIHVpbnQzMiBnZXRfZ2lkICgpOworIAkJW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX2FjdG9yX2hhc19wb2ludGVyIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX3BvaW50ZXIgKCk7CitAQCAtNDg0OCw4ICs0ODMx LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuVGV4dERpcmVjdGlv biBnZXRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm0gKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm1hdGlvbl9tYXRyaXgg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLlBhaW50Vm9sdW1lIGdldF90cmFuc2Zvcm1lZF9wYWludF92b2x1bWUgKENsdXR0ZXIuQWN0 b3IgcmVsYXRpdmVfdG9fYW5jZXN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor QEAgLTQ4OTIsNyArNDg3Myw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29s IGhhc19tYXBwZWRfY2xvbmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIHZpcnR1YWwgYm9vbCBoYXNfb3ZlcmxhcHMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQor KwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV9hbGwgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2Fi b3ZlIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsKK0BAIC00 OTEyLDEwICs0ODkzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgaXNf c2NhbGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyBib29s IGlzX3Zpc2libGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXIgKENsdXR0ZXIuQWN0b3I/ IGFib3ZlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlcl9ib3R0b20gKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoKTsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC42IildCitAQCAtNDkyOCwxNyArNDkwNSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgYm9vbCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50 YXRpb24pOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfbm9k ZSAoQ2x1dHRlci5QYWludE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGlj IHZvaWQgcGlja19ib3ggKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0LCBDbHV0dGVy LkFjdG9yQm94IGJveCk7CisgCQlwdWJsaWMgdm9pZCBwb3BfaW50ZXJuYWwgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9pbnRlcm5hbCAoKTsKKyAJCXB1YmxpYyB2 b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXdfd2l0aF9jbGlwIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNs aXApOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlIChDbHV0dGVyLkFjdG9yPyBiZWxvdyk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgcmFpc2VfdG9wICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX2FjdGlvbiAoQ2x1dHRlci5BY3Rpb24gYWN0aW9u KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTYwLDggKzQ5MzIsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZWZmZWN0X2J5X25hbWUg KHN0cmluZyBuYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCByZW1vdmVfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0K Ky0JCXB1YmxpYyB2b2lkIHJlcGFyZW50IChDbHV0dGVyLkFjdG9yIG5ld19wYXJlbnQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlcGxhY2VfY2hpbGQg KENsdXR0ZXIuQWN0b3Igb2xkX2NoaWxkLCBDbHV0dGVyLkFjdG9yIG5ld19jaGlsZCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwNDYsOCArNTAxNiw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZSAoZG91YmxlIHNjYWxlX3gsIGRv dWJsZSBzY2FsZV95KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2Nh bGVfZnVsbCAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95LCBmbG9hdCBjZW50ZXJfeCwg ZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9z Y2FsZV93aXRoX2dyYXZpdHkgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgQ2x1dHRl ci5HcmF2aXR5IGdyYXZpdHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9zY2FsZV96IChkb3VibGUgc2NhbGVfeik7CisgCQlwdWJsaWMgdm9pZCBz ZXRfc2l6ZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CitAQCAtNTExMCwxMSArNTA3OCw4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisg CQlwdWJsaWMgYm9vbCBjaGlsZF90cmFuc2Zvcm1fc2V0IHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBjbGlwIHsgb3duZWQgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY2xpcF9yZWN0IHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjbGlwX3RvX2Fs bG9jYXRpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTE5OSwx MiArNTE2NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBvcGFjaXR5 IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBpdm90X3BvaW50IHsgb3duZWQg Z2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVk IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZs b2F0IHBpdm90X3BvaW50X3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUG9pbnQgcG9z aXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBvc2l0 aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJ CXB1YmxpYyBib29sIHJlYWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorQEAgLTUyMjUsMTMgKzUxOTAsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGRvdWJsZSByb3RhdGlvbl9hbmdsZV96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlv bl9jZW50ZXJfeCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQz RCByb3RhdGlvbl9jZW50ZXJfeCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRp b25fY2VudGVyX3kgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 M0Qgcm90YXRpb25fY2VudGVyX3kgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0 aW9uX2NlbnRlcl96IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dDNEIHJvdGF0aW9uX2NlbnRlcl96IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgcm90 YXRpb25fY2VudGVyX3pfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CitAQCAtNTI1Nyw3ICs1MjIyLDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgc2hvd19vbl9zZXRfcGFyZW50 IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0 OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rp b24gdGV4dF9kaXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitA QCAtNTMxOSwxMSArNTI4NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgYm9vbCBtb3Rpb25fZXZlbnQgKENsdXR0ZXIuTW90aW9uRXZlbnQgZXZlbnQp OworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWlu dCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYXJlbnRfc2V0IChD bHV0dGVyLkFjdG9yPyBvbGRfcGFyZW50KTsKKysJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1 dHRlci5Db2xvciBjb2xvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNrIChD bHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHF1 ZXVlX3JlbGF5b3V0ICgpOworQEAgLTUzNjEsNiArNTMyNywxMSBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzdHJp bmcgbmFtZSB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25vZGVfZ2V0X3R5 cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNvbnN0cmFpbnQg OiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTUzODgsMTkgKzUzNTksMTIgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVsb25n IGdldF9tb2RlICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGlt ZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGlj IHVsb25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfZnVu YyAoQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOworIAkJ cHVibGljIHZvaWQgc2V0X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25n IG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRp bWVsaW5lKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBoYS53aXRoX2Z1bmMgKENs dXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOwor IAkJcHVibGljIGRvdWJsZSBhbHBoYSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KK0BAIC01 NDExLDM1ICs1Mzc1LDI2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNzIEFu aW1hdGlvbiA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIEFuaW1hdGlvbiAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmQgKHN0cmluZyBwcm9wZXJ0 eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5p bWF0aW9uIGJpbmRfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBvd25lZCBDbHV0dGVy LkludGVydmFsIGludGVydmFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFscGhhIGdldF9hbHBoYSAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9kdXJhdGlv biAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW50ZXJ2YWwgZ2V0X2ludGVydmFsIChz dHJpbmcgcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKyAJCXB1 YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdl dF9vYmplY3QgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1l bGluZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25h bWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRl ci5BbHBoYSBhbHBoYSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3Mp OworIAkJcHVibGljIHZvaWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfbW9kZSAodWxvbmcgbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb2JqZWN0IChHTGliLk9i amVjdCBvYmplY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVs aW5lPyB0aW1lbGluZSk7CistCQlwdWJsaWMgdm9pZCB1bmJpbmRfcHJvcGVydHkgKHN0cmluZyBw cm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIHVwZGF0 ZSAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHZv aWQgdXBkYXRlX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgQ2x1dHRlci5JbnRlcnZh bCBpbnRlcnZhbCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1 dHRlci5BbHBoYSBhbHBoYSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCBkdXJh dGlvbiB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKyAJ CXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBHTGliLk9iamVjdCBv YmplY3QgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgR0xp Yi5PYmplY3Qgb2JqZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLlRp bWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNFbWl0dGVyXQorIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgc3RhcnRlZCAoKTsKKyAJfQorQEAgLTU0NjAsMjEgKzU0MTUsMTggQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CisgCQlbTm9XcmFwcGVyXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25Hcm91cCBncm91 cCk7CistCQlwdWJsaWMgdm9pZCBiZWxsX25vdGlmeSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlw dWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVycm9yOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5TdGFnZVdp bmRvdyBjcmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dzIEdMaWIuRXJy b3I7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29udGV4 dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgpOwor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQgKCk7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2Zl YXR1cmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHVub3du ZWQgQ2Fpcm8uRm9udE9wdGlvbnMgZ2V0X2ZvbnRfb3B0aW9ucyAoKTsKKyAJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuSW5wdXRNZXRob2QgZ2V0X2lucHV0X21ldGhvZCAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7CisgCQlwdWJsaWMgZG91YmxlIGdl dF9yZXNvbHV0aW9uICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg aW5pdF9ldmVudHMgKCk7CitAQCAtNTQ5Niw5NSArNTQ0OCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg c2V0dGluZ3NfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIEJlaGF2aW91 ciA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJlaGF2aW91ciAoKTsKKy0J CXB1YmxpYyB2b2lkIGFjdG9yc19mb3JlYWNoIChDbHV0dGVyLkJlaGF2aW91ckZvcmVhY2hGdW5j IGZ1bmMpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxwaGFfbm90 aWZ5IChkb3VibGUgYWxwaGFfdmFsdWUpOworLQkJcHVibGljIHZvaWQgYXBwbHkgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLkFjdG9yPiBn ZXRfYWN0b3JzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEg KCk7CistCQlwdWJsaWMgaW50IGdldF9uX2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X250aF9hY3RvciAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBpc19hcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgpOwor LQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JCXB1Ymxp YyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFwcGxpZWQgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgcmVtb3ZlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2JlaGF2aW91cl9kZXB0aF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIild CistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJEZXB0aCA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJEZXB0aCAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGlu dCBkZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgaW50IGRlcHRoX3N0YXJ0LCBvdXQg aW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBzZXRfYm91bmRzIChpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMg aW50IGRlcHRoX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfc3RhcnQgeyBnZXQ7 IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfb3BhY2l0eV9nZXRfdHlwZSAoKSIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42 Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJPcGFjaXR5IDogQ2x1 dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJ cHVibGljIEJlaGF2aW91ck9wYWNpdHkgKENsdXR0ZXIuQWxwaGE/IGFscGhhLCB1aW50OCBvcGFj aXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgdWludDggb3BhY2l0eV9zdGFydCwg b3V0IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNp dHlfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9l bmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBv cGFjaXR5X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX3Nj YWxlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2 aW91clNjYWxlIDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVo YXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91clNjYWxlIChDbHV0dGVyLkFscGhhPyBhbHBo YSwgZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9z Y2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgZG91YmxlIHhfc2NhbGVfc3RhcnQs IG91dCBkb3VibGUgeV9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB4X3NjYWxlX2VuZCwgb3V0IGRv dWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgdm9pZCBzZXRfYm91bmRzIChkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91YmxlIHlfc2NhbGVf c3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRv dWJsZSB4X3NjYWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9zdGFy dCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgZG91YmxlIHlfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9iaW5fbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KyAJcHVibGljIGNsYXNzIEJpbkxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5 b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCaW5MYXlvdXQgKENsdXR0ZXIuQmluQWxpZ25tZW50 IHhfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCwgQ2x1dHRlci5CaW5BbGlnbm1l bnQgeV9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJUKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgdm9pZCBhZGQgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQmlu QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/ IGNoaWxkLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuQmlu QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4 X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJpbkFsaWdubWVudCB4 X2FsaWduIHsgZ2V0OyBzZXQ7IH0KK0BAIC01NzU4LDM3ICs1NjI2LDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfY2Fpcm9fdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgY2xhc3MgQ2Fpcm9UZXh0dXJlIDogQ2x1dHRlci5UZXh0dXJlLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQ2Fpcm9UZXh0dXJlICh1aW50IHdpZHRo LCB1aW50IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZV9yZWdpb24gKGludCB4X29mZnNldCwgaW50 IHlfb2Zmc2V0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2F1dG9fcmVzaXplICgpOworLQkJcHVibGljIHZv aWQgZ2V0X3N1cmZhY2Vfc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0 ZV9yZWN0YW5nbGUgKENhaXJvLlJlY3RhbmdsZUludD8gcmVjdCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXNpemUgKGJvb2wgdmFsdWUp OworLQkJcHVibGljIHZvaWQgc2V0X3N1cmZhY2Vfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWln aHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJvb2wgYXV0b19y ZXNpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWlu dCBzdXJmYWNlX2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyB1aW50IHN1cmZhY2Vfd2lkdGggeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIENhaXJvLlN1cmZhY2UgY3Jl YXRlX3N1cmZhY2UgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYXcgKENhaXJvLkNv bnRleHQgY3IpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYW52YXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIENhbnZhcyA6IEdMaWIuT2Jq ZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworQEAgLTU5MjAsNjIgKzU3NTcsMjQgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZG91YmxlIGZhY3Rvcik7Cisg CQlwdWJsaWMgZG91YmxlIGZhY3RvciB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Rl dmljZV9tYW5hZ2VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K Ky0JcHVibGljIGFic3RyYWN0IGNsYXNzIERldmljZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg RGV2aWNlTWFuYWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IGFkZF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVy LktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIu RXZlbnQgdG9fZGlzY2FyZCk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1 dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRl dmljZV90eXBlKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmlj ZSBnZXRfY29yZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsK Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RlZmF1 bHQgKCk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0 X2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0 dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2b2lk IGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZpY2VUeXBlIGdl dF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7CistCQlwdWJsaWMgR0xpYi5TTGlz dDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4gcGVla19kZXZpY2VzICgpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVtb3ZlX2RldmljZSAoQ2x1 dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgc2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlw dWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdz IHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tf dHlwZSAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworLQkJ cHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTEx eVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENs dXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQg KHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1 aW50IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2VsbF9j bGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlj a190eXBlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0ZWQg KENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5 cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJf YTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVy LlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklu cHV0RGV2aWNlVG9vbCBwMCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIERyYWdB Y3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorIAkJcHVibGljIERyYWdBY3Rp b24gKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3QgZHJhZ19h cmVhKTsKKysJCXB1YmxpYyBib29sIGdldF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJlY3QgZHJhZ19h cmVhKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7CisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKyAJCXB1Ymxp YyB2b2lkIGdldF9kcmFnX3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91dCB1aW50 IHlfdGhyZXNob2xkKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChvdXQgZmxv YXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlwdWJsaWMgdm9pZCBnZXRfcHJl c3NfY29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworLQkJcHVi bGljIHZvaWQgc2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOworKwkJcHVi bGljIHZvaWQgc2V0X2RyYWdfYXJlYSAoR3JhcGhlbmUuUmVjdD8gZHJhZ19hcmVhKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9kcmFnX2F4aXMgKENsdXR0ZXIuRHJhZ0F4aXMgYXhpcyk7CisgCQlwdWJs aWMgdm9pZCBzZXRfZHJhZ19oYW5kbGUgKENsdXR0ZXIuQWN0b3I/IGhhbmRsZSk7CisgCQlwdWJs aWMgdm9pZCBzZXRfZHJhZ190aHJlc2hvbGQgKGludCB4X3RocmVzaG9sZCwgaW50IHlfdGhyZXNo b2xkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgZHJhZ19hcmVhIHsgb3duZWQgZ2V0OyBzZXQ7IH0K KysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgYm9vbCBkcmFnX2FyZWFfc2V0IHsgZ2V0OyB9CitAQCAtNjAxMSwxMyArNTgxMCwxMyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg Ym9vbCBtb2RpZnlfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7Cisg CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5FZmZl Y3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0 ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQsIENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBm bGFncyk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0 dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNr IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBwb3N0X3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9p ZCBwb3N0X3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIGJvb2wgcHJlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250 ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVl X3JlcGFpbnQgKCk7CisgCX0KK0BAIC02MDY4LDcgKzU4NjcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdWludCBnZXRfbW9kZV9ncm91cCAoKTsKKyAJCXB1YmxpYyBib29sIGdl dF9wYWRfZXZlbnRfZGV0YWlscyAob3V0IHVpbnQgbnVtYmVyLCBvdXQgdWludCBtb2RlLCBvdXQg ZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMg dm9pZCBnZXRfcG9zaXRpb24gKENsdXR0ZXIuUG9pbnQgcG9zaXRpb24pOworKwkJcHVibGljIHZv aWQgZ2V0X3Bvc2l0aW9uIChHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9yZWxh dGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC02MzA4LDcgKzYxMDcs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgYm9vbCBnZXRfYXhpc192YWx1ZSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIGRvdWJsZVtdIGF4ZXMsIENsdXR0ZXIuSW5wdXRBeGlzIGF4aXMsIG91dCBkb3VibGUgdmFs dWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9j b29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIENsdXR0ZXIuUG9pbnQgcG9p bnQpOworKwkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBz ZXF1ZW5jZSwgR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIGludCBnZXRfZGV2aWNlX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorQEAgLTYzMjIsNyArNjEyMSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBib29sIGdldF9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2dyYWJiZWRfYWN0b3IgKCk7 CistCQlwdWJsaWMgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworKwkJcHVibGlj IHZpcnR1YWwgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19jdXJzb3IgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjM0NCwxNiArNjE0MywxNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9wb2ludGVy X3N0YWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfcHJvZHVjdF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu U2VhdCBnZXRfc2VhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBnZXRfc2xhdmVfZGV2aWNlcyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3ZlbmRvcl9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdm9pZCBncmFiIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBib29sIGlz X2dyb3VwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKy0JCXB1YmxpYyBi b29sIGlzX21vZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91cCwgdWludCBidXR0b24pOworKwkJ cHVibGljIHZpcnR1YWwgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVy X2RldmljZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX21vZGVfc3dpdGNoX2J1dHRvbiAo dWludCBncm91cCwgdWludCBidXR0b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwg dWludCBldmRldl9rZXljb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5Y29kZV90b19l dmRldiAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig c2VxdWVuY2VfZ2V0X2dyYWJiZWRfYWN0b3IgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBzZXF1ZW5j ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTYzNjksMTIgKzYxNjksMTEg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgdW5ncmFiICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgdXBkYXRlX2Zyb21fZXZlbnQg KENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgdXBkYXRlX3N0YWdlKTsKKysJCVtOb1dyYXBwZXJd CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9mcm9tX3Rvb2wgKENsdXR0ZXIuSW5wdXRE ZXZpY2VUb29sIHRvb2wpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5h Z2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0TW9k ZSBkZXZpY2VfbW9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc3RyaW5nIGRldmlj ZV9ub2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K K0BAIC02Mzk3LDYgKzYxOTYsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgc3Ry aW5nIG5hbWUgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgcHJvZHVjdF9pZCB7IGdldDsgY29uc3RydWN0OyB9 CisrCQlwdWJsaWMgQ2x1dHRlci5TZWF0IHNlYXQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdmVuZG9yX2lkIHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKyAJfQorQEAgLTY0MzQsNyArNjIzNCw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jYW5fc2hvd19wcmVlZGl0IChib29sIGNhbl9zaG93 X3ByZWVkaXQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfaGludHMgKENsdXR0ZXIuSW5w dXRDb250ZW50SGludEZsYWdzIGhpbnQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcHVy cG9zZSAoQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIHB1cnBvc2UpOworLQkJcHVibGljIHZv aWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZv aWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUp OworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X3ByZWVkaXRfdGV4 dCAoc3RyaW5nIHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKK0BAIC02NDUzLDcgKzYyNTMsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9p ZCByZXNldCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9j dXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUp OworIAkJcHVibGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nPyBwcmVlZGl0LCB1aW50 IGN1cnNvcik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY0NzAsNyArNjI3MCw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgY29udGVu dF9wdXJwb3NlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25h bCB2b2lkIGNvbW1pdCAoc3RyaW5nIHRleHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNv cl9sb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLlJlY3Qgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoR3JhcGhlbmUuUmVjdCBvYmplY3QpOwor IAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5n ICh1aW50IG9mZnNldCwgdWludCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0X3Bh bmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOworQEAgLTY1NDYsMjcg KzYzNDYsMzEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEtleW1hcCAoKTsKKyAJCXB1YmxpYyB2 aXJ0dWFsIGJvb2wgZ2V0X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIFBh bmdvLkRpcmVjdGlvbiBnZXRfZGlyZWN0aW9uICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9vbCBn ZXRfbnVtX2xvY2tfc3RhdGUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhdGVfY2hhbmdl ZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgY2xhc3MgTGF5ZXJOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0K KysJCXB1YmxpYyBMYXllck5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24sIENhaXJvLlJlY3Rh bmdsZSB2aWV3cG9ydCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgdWludDggb3BhY2l0eSk7 CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2xheW91dF9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIExheW91dE1hbmFn ZXIgOiBHTGliLkluaXRpYWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIExheW91dE1hbmFnZXIgKCk7CisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENs dXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3Mp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5B bHBoYSBiZWdpbl9hbmltYXRpb24gKHVpbnQgZHVyYXRpb24sIHVsb25nIG1vZGUpOworIAkJcHVi bGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIu QWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXRfcHJvcGVydHkgKENs dXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHBy b3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0 IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7 CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9zZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNv bnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIu VmFsdWUgdmFsdWUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQg Q2x1dHRlci5MYXlvdXRNZXRhIGNyZWF0ZV9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBj b250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKysJCVtO b1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRpb24gKCk7CisgCQlw dWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcg bmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0 dWFsIGRvdWJsZSBnZXRfYW5pbWF0aW9uX3Byb2dyZXNzICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGdldF9jaGls ZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworQEAgLTY2MjMsMTIgKzY0MjcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVj dGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENvZ2wuSGFuZGxlIGNy ZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93 bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAo b3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS44IildCisgCQlw dWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwgb3V0IGZsb2F0IGhl aWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQg Q29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50 X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0IChDbHV0dGVy LlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFnZV90dXJu X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAt NjY0NSw2ICs2NDQ5LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUg cGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMgeyBnZXQ7IHNldDsg fQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0 dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQ YWludENvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQg cG9wX2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcHVzaF9mcmFtZWJ1ZmZlciAoQ29n bC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBh aW50Q29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BhaW50X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBhaW50Tm9kZSB7CitAQCAtNjY1NCw3ICs2 NDY4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWRkX211bHRpdGV4 dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgdGV4dF9jb29yZHMs IHVpbnQgdGV4dF9jb29yZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lkIGFkZF9yZWN0YW5nbGUgKENs dXR0ZXIuQWN0b3JCb3ggcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBhZGRfdGV4dHVyZV9yZWN0YW5n bGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhf MiwgZmxvYXQgeV8yKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHVub3du ZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBw YWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlBhaW50Tm9kZSBAcmVmICgpOworIAkJcHVibGljIHZvaWQgc2V0X25hbWUg KHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworQEAgLTY2NzIsNyArNjQ4 Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGdldF9vcmlnaW4gKCk7CisrCQlwdWJsaWMg dm9pZCBnZXRfb3JpZ2luIChvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY2ODIsNyArNjQ5Nyw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9oZWlnaHQgKGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCistCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0dGVyLlZlcnRleCBvcmlnaW4p OworKwkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoR3JhcGhlbmUuUG9pbnQzRCBvcmlnaW4pOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3dpZHRoIChm bG9hdCB3aWR0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjc2OSwyNiAr NjU4NCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoIHBh dGggeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIG5vZGVfcmVhY2hlZCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgdWludCBpbmRleCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlj a19jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfZ2V0X3R5cGUg KCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF91bnJlZiIpXQorKwlb Q29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBpY2tDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRl c3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBpY2tDb250ZXh0IEByZWYgKCk7 CisrCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlwZWxpbmVfbm9k ZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMg Y2xhc3MgUGlwZWxpbmVOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFBpcGVsaW5lTm9kZSAo KTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50X2dldF90eXBlICgpIildCistCVtDb21w YWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUG9pbnQg eworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBzdGF0 aWMgQ2x1dHRlci5Qb2ludCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IGNvcHkg KCk7CistCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIuUG9pbnQgYiwgb3V0IGZsb2F0 IHhfZGlzdGFuY2UsIG91dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0JCXB1YmxpYyBib29sIGVxdWFs cyAoQ2x1dHRlci5Qb2ludCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlBvaW50IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOworLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgemVybyAoKTsKKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf cHJvcGVydHlfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0aW9uIDogQ2x1dHRlci5UcmFu c2l0aW9uLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTY3OTgsMzMgKzY2MDYsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAoc3RyaW5n PyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7IGdldDsg c2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90eXBlICgpIildCistCVtD b21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUmVj dCB7CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsKKy0JCXB1YmxpYyB3ZWFr IENsdXR0ZXIuU2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlJlY3QgYWxsb2Mg KCk7CistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0JCXB1YmxpYyBib29sIGNv bnRhaW5zX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyBib29sIGNvbnRh aW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY29weSAo KTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIHZv aWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENsdXR0ZXIuUG9pbnQgY2Vu dGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGZsb2F0IGdl dF93aWR0aCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBn ZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBpbml0IChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGluc2V0 IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKENs dXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0 IG5vcm1hbGl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxvYXQgZF94LCBmbG9hdCBk X3kpOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxvYXQgc195KTsKKy0JCXB1 YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0IHJlcyk7CistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7CistCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIild CisgCXB1YmxpYyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CitAQCAtNjkwNyw4ICs2Njg4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9y KiIpXQorIAkJcHVibGljIFNjcm9sbEFjdG9yICgpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xs TW9kZSBnZXRfc2Nyb2xsX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQg KENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKENs dXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19wb2ludCAoR3JhcGhl bmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKEdyYXBoZW5l LlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2Nyb2xsX21vZGUgKENsdXR0ZXIuU2Ny b2xsTW9kZSBtb2RlKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgc2Nyb2xsX21vZGUg eyBnZXQ7IHNldDsgfQorIAl9CitAQCAtNjkzMCw2ICs2NzExLDQ0IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3NlYXRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGFic3RyYWN0IGNsYXNzIFNlYXQg OiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisrCQlwcm90ZWN0ZWQgU2VhdCAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmly dHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5n cyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGJlbGxfbm90aWZ5ICgpOworKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQs IENsdXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZp cnR1YWwgdm9pZCBjb3B5X2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgc3JjLCBDbHV0dGVyLkV2 ZW50IGRlc3QpOworKwkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2Ug Y3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlw ZSk7CisrCQlwdWJsaWMgdm9pZCBlbnN1cmVfYTExeV9zdGF0ZSAoKTsKKysJCVtOb1dyYXBwZXJd CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZyZWVfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBl dmVudCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2Jk QTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRl ci5JbnB1dERldmljZSBnZXRfa2V5Ym9hcmQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVk IENsdXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVk IENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X3BvaW50ZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRf cG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGlu Z3MpOworKwkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3Vw cG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5cGVzICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3RvdWNo X21vZGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLklucHV0 RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0 dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2b2lk IHNldF9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1dHRlci5Qb2ludGVyQTExeUR3 ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTEx eV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgd2FycF9wb2ludGVyIChpbnQgeCwgaW50IHkpOworKwkJW05vQWNj ZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGJvb2wgdG91Y2hfbW9kZSB7IGdldDsgfQorKwkJ cHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmpl Y3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0 RGV2aWNlIG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hh bmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21h c2ssIHVpbnQgbG9ja2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X2R3 ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBl IGNsaWNrX3R5cGUpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3Rh cnRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1l b3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lk IHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENs dXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tlZCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNl IG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9z ZXR0aW5nc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1 YmxpYyBjbGFzcyBTZXR0aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDAyLDE4ICs2ODIxLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0g ImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3NpemVfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9hdCBo ZWlnaHQ7CistCQlwdWJsaWMgZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIu U2l6ZSBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1Ymxp YyBib29sIGVxdWFscyAoQ2x1dHRlci5TaXplIGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQg aGVpZ2h0KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25zdHJh aW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC03MDUyLDE0ICs2ODU5LDEyIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGZyZWV6ZV91cGRhdGVzICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2FjY2VwdF9mb2N1cyAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAoQ2x1 dHRlci5QaWNrTW9kZSBwaWNrX21vZGUsIGludCB4LCBpbnQgeSk7CisrCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19t b2RlLCBmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBib29sIGdldF9jYXB0dXJlX2ZpbmFs X3NpemUgKENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGZs b2F0IHNjYWxlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X2RlZmF1bHQgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGdldF9mb2cgKCk7Cisg CQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlfZm9jdXMg KCk7CitAQCAtNzA2NywxOSArNjg3MiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdm9pZCBnZXRfbWluaW11bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9tb3Rp b25fZXZlbnRzX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgYm9vbCBnZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNw ZWN0aXZlIGdldF9wZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2JvdW5kcyAoKTsK KysJCXB1YmxpYyBDYWlyby5SZWdpb24gZ2V0X3JlZHJhd19jbGlwICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Rocm90dGxlX21vdGlvbl9ldmVu dHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3RpdGxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVi bGljIGJvb2wgZ2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg Ym9vbCBnZXRfdXNlX2ZvZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIGhpZGVfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KK0BAIC03MDk0LDE2 ICs2ODk0LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9hY2Nl cHRfZm9jdXMgKGJvb2wgYWNjZXB0X2ZvY3VzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29s b3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9mb2cgKENsdXR0ZXIuRm9nIGZvZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfa2V5X2ZvY3VzIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbWluaW11 bV9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50c19lbmFibGVkIChib29sIGVu YWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X25vX2NsZWFyX2hpbnQgKGJvb2wgbm9fY2xlYXIpOworIAkJcHVibGljIHZvaWQgc2V0X3BlcnNw ZWN0aXZlIChDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRz IChib29sIHRocm90dGxlKTsKK0BAIC03MTExLDggKzY5MDcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FscGhhIChib29sIHVz ZV9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9mb2cg KGJvb2wgZm9nKTsKKyAJCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29yICgpOworIAkJcHVibGljIHZv aWQgdGhhd191cGRhdGVzICgpOworIAkJcHVibGljIHZvaWQgdXBkYXRlX3Jlc291cmNlX3NjYWxl cyAoKTsKK0BAIC03MTIyLDIwICs2OTE2LDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJcHVibGljIGJvb2wgY3Vyc29yX3Zpc2libGUgeyBnZXQ7IHNldDsgfQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBmb2cgeyBnZXQ7IHNldDsgfQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Iga2V5X2Zv Y3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyBib29sIG5vX2NsZWFyX2hpbnQgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7 IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHN0cmluZyB0 aXRsZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJs aWMgYm9vbCB1c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyBib29sIHVzZV9mb2cgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGUgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yMCIpXQorQEAgLTcxNTgsOCArNjk0Niw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBHTGliLlNM aXN0PHdlYWsgQ2x1dHRlci5TdGFnZT4gbGlzdF9zdGFnZXMgKCk7CisgCQlwdWJsaWMgdW5vd25l ZCBHTGliLlNMaXN0PENsdXR0ZXIuU3RhZ2U+IHBlZWtfc3RhZ2VzICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlZmF1bHRfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugc3Rh Z2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuU3Rh Z2UgZGVmYXVsdF9zdGFnZSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor QEAgLTcyMDYsMTYgKzY5OTIsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVf bmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuU3RhdGVLZXk+IGdldF9rZXlzIChzdHJpbmc/ IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVj dD8gb2JqZWN0LCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhdGUgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIHN0cmluZz4gZ2V0X3N0YXRlcyAoKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGlu ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfa2V5IChzdHJp bmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9i amVjdD8gb2JqZWN0LCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwg c3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgdWludCBkdXJhdGlvbik7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGF0ZSBzZXRfa2V5IChzdHJpbmc/IHNv dXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0IG9i amVjdCwgc3RyaW5nIHByb3BlcnR5X25hbWUsIHVpbnQgbW9kZSwgR0xpYi5WYWx1ZSB2YWx1ZSwg ZG91YmxlIHByZV9kZWxheSwgZG91YmxlIHBvc3RfZGVsYXkpOworQEAgLTcyMzYsMjQgKzcwMTYs OCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTdGF0ZUtleSB7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIGRvdWJsZSBnZXRfcG9zdF9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgZG91YmxlIGdldF9wcmVfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1lICgpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyBHTGliLlR5cGUgZ2V0X3Byb3BlcnR5X3R5cGUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zb3VyY2Vfc3RhdGVfbmFt ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Rh cmdldF9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdl dF92YWx1ZSAoR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N3aXBlX2FjdGlv bl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNzI2NSw1 MyArNzAyOSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBzd2lwZSAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgQ2x1dHRlci5Td2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl90YWJsZV9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVi bGljIGNsYXNzIFRhYmxlTGF5b3V0IDogQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJMYXlvdXRN YW5hZ2VyKiIpXQorLQkJcHVibGljIFRhYmxlTGF5b3V0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBD bHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50 IHlfYWxpZ24pOworLQkJcHVibGljIGludCBnZXRfY29sdW1uX2NvdW50ICgpOworLQkJcHVibGlj IHVpbnQgZ2V0X2NvbHVtbl9zcGFjaW5nICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1aW50IGdldF9lYXNpbmdfZHVyYXRpb24gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHVsb25nIGdldF9lYXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBnZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2V4cGFu ZCwgb3V0IGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGwsIG91dCBib29s IHlfZmlsbCk7CistCQlwdWJsaWMgaW50IGdldF9yb3dfY291bnQgKCk7CistCQlwdWJsaWMgdWlu dCBnZXRfcm93X3NwYWNpbmcgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3BhbiAoQ2x1dHRlci5B Y3RvciBhY3Rvciwgb3V0IGludCBjb2x1bW5fc3Bhbiwgb3V0IGludCByb3dfc3Bhbik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbmltYXRpb25zICgpOworLQkJ cHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVtbiwgaW50IHJv dyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVy LlRhYmxlQWxpZ25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIHZvaWQgc2V0X2NvbHVtbl9zcGFj aW5nICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9lYXNpbmdfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4 X2V4cGFuZCwgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9maWxsLCBib29sIHlfZmls bCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcm93X3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlw dWJsaWMgdm9pZCBzZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVtbl9zcGFu LCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91 c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCXB1YmxpYyB1aW50IGNvbHVtbl9zcGFj aW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBlYXNp bmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCByb3dfc3BhY2lu ZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgdXNlX2Fu aW1hdGlvbnMgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YXBfYWN0aW9uX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBjbGFzcyBU YXBBY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworQEAgLTczMzksNyArNzA1Niw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jdXJzb3Jf Y29sb3IgKCk7CisgCQlwdWJsaWMgaW50IGdldF9jdXJzb3JfcG9zaXRpb24gKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChv dXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29y X3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdWludCBn ZXRfY3Vyc29yX3NpemUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY3Vyc29yX3Zpc2libGUgKCk7 CisgCQlwdWJsaWMgYm9vbCBnZXRfZWRpdGFibGUgKCk7CitAQCAtNzQ1OCw3ICs3MTc1LDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAoQ2x1dHRl ci5HZW9tZXRyeSBnZW9tZXRyeSk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJz b3JfZXZlbnQgKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfdGV4dCAo aW50IHN0YXJ0X3BvcywgaW50IGVuZF9wb3MpOworQEAgLTc0OTcsOTIgKzcyMTQsOSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91dD8gbGF5b3V0 LCBDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5 cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4 dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9y KiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3Ry aW5nIGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX21h dGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFu ZGxlIGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENs dXR0ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wgcmVwZWF0X3gs IG91dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBn ZXRfc3luY19zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHNldF9h cmVhX2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtd IGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo dCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRo cm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9j b2dsX21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRsZSBjb2dsX3Rl eCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRlcl9xdWFsaXR5 IChDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93 cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9t X3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBi b29sIGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQg YnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwgaW50IGhlaWdo dCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRpbyAoYm9vbCBr ZWVwX2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRf YXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29sIHBpY2tfd2l0aF9h bHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlcGVhdCAoYm9v bCByZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOworKwlwdWJsaWMgY2xhc3MgVGV4 dHVyZSA6IENsdXR0ZXIuQWN0b3IgeworIAkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29nbF9tYXRl cmlhbCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7 IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRpc2Fi bGVfc2xpY2luZyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCXB1Ymxp YyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5IHsgZ2V0OyBzZXQgY29uc3Ry dWN0OyB9CistCQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRpbyB7IGdldDsgc2V0OyB9Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9hc3luYyB7IHNldDsgfQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfZGF0YV9hc3luYyB7IHNldDsgfQor LQkJcHVibGljIGJvb2wgcGlja193aXRoX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3ggeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeSB7IGdldDsgc2V0OyB9Cist CQlwdWJsaWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgaW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBsb2FkX2ZpbmlzaGVkIChHTGliLkVycm9y IGVycm9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaXhidWZfY2hhbmdl ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlIChpbnQg d2lkdGgsIGludCBoZWlnaHQpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX25vZGVfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NjA4LDcgKzcyNDIs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXZlcnNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0 ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgYm9vbCBnZXRfY3Vi aWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNf Mik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfY3Vy cmVudF9yZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitAQCAtNzY0NSw3 ICs3Mjc5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmV2ZXJzZSAoYm9vbCByZXZlcnNlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6 aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJ cHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18x LCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2RlbGF5ICh1aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KK0BAIC03NzQ0LDYgKzczNzgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJh bnNmb3JtX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRyYW5zZm9ybU5vZGUg OiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIFRyYW5zZm9y bU5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90cmFuc2l0 aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1lbGluZSwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKK0BAIC03NzgzLDcgKzc0MjIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg VmlydHVhbElucHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBnZXRfZGV2aWNlX3R5cGUgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X21hbmFnZXIgKCk7 CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9tb3Rpb24gKHVpbnQ2NCB0 aW1lX3VzLCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3Rp ZnlfYnV0dG9uICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwgQ2x1dHRlci5CdXR0b25T dGF0ZSBidXR0b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfZGlzY3Jl dGVfc2Nyb2xsICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxEaXJlY3Rpb24gZGlyZWN0 aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsKK0BAIC03Nzk0LDI1ICs3 NDMyLDI1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90 aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJs ZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX21vdGlvbiAodWludDY0 IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2aWNl X21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIuSW5w dXREZXZpY2VUeXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vz c29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNzIFpvb21BY3Rpb24gOiBD bHV0dGVyLkdlc3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBab29tQWN0aW9u ICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50 KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Q b2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBv aW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAo R3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgZ2V0X3pv b21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMgKENsdXR0ZXIuWm9vbUF4 aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29tX2F4aXMgeyBnZXQ7IHNl dDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBh Y3RvciwgQ2x1dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBHcmFwaGVu ZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9jbmFtZSA9ICJDbHV0dGVy QW5pbWF0YWJsZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRhYmxlX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgi LCBzaW5jZSA9ICIxLjAiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3QgYm9v bCBhbmltYXRlX3Byb3BlcnR5IChDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRpb24sIHN0cmluZyBw cm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGluaXRpYWxfdmFsdWUsIEdMaWIuVmFsdWUgZmluYWxf dmFsdWUsIGRvdWJsZSBwcm9ncmVzcywgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBHTGliLlBhcmFtU3Bl YyBmaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CitAQCAtNzgzMCw4ICs3NDY4 LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gImFkZCIp XQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9hY3RvciAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQg YWRkX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQg KENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CitAQCAtNzg1MywxMCArNzQ4OSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZmluZF9jaGlsZF9ieV9uYW1lIChzdHJpbmcgY2hpbGRfbmFt ZSk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNzX2ZpbmRfY2hp bGRfcHJvcGVydHkiKV0KKyAJCXB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZp bmRfY2hpbGRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40 IildCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBAZm9yZWFjaCAoQ2x1dHRlci5DYWxsYmFjayBj YWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBmb3Jl YWNoX3dpdGhfaW50ZXJuYWxzIChDbHV0dGVyLkNhbGxiYWNrIGNhbGxiYWNrKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5D aGlsZE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KK0BAIC03ODc0LDggKzc1MDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb Q0NvZGUgKHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVi bGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChDbHV0dGVyLkFj dG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCisg CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworQEAg LTc4OTIsNyArNzUyMiw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFj dCB2b2lkIGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRl X3NpemUgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRf Y29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSk7Cisr CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9y LCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250 ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorQEAgLTc5MDgsMTAgKzc1MzgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCisgCXB1YmxpYyBpbnRlcmZhY2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0 dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsK KyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBz ICgpOworIAkJW05vV3JhcHBlcl0KK0BAIC03OTM5LDE0ICs3NTY1LDE2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxp emUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNs dXR0ZXJfYWN0b3JfYm94X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3gg eworIAkJcHVibGljIGZsb2F0IHgxOworIAkJcHVibGljIGZsb2F0IHkxOworIAkJcHVibGljIGZs b2F0IHgyOworIAkJcHVibGljIGZsb2F0IHkyOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWxsb2MgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsK KysJCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGFtcF90b19waXhlbCAocmVmIENsdXR0ZXIuQWN0b3JC b3ggYm94KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNv bnRhaW5zIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K K0BAIC03OTU1LDggKzc1ODMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9v bCBlcXVhbCAoQ2x1dHRlci5BY3RvckJveCBib3hfYik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistCQlwdWJsaWMgQWN0b3JCb3guZnJvbV92 ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCitAQCAtODAwMiw3ICs3NjI4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHdlYWsgQ2Fpcm8uU3VyZmFjZSBpbWFnZTsKKyAJCXB1YmxpYyBDYWlyby5SZWN0YW5n bGVJbnQgcmVjdDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xPUiIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJD TFVUVEVSX1RZUEVfQ09MT1IiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xvciB7CisgCQlwdWJsaWMg dWludDggcmVkOworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgwNDEsMjQgKzc2NjcsNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlw dWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9nX2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdHJ1Y3QgRm9nIHsKKy0JCXB1Ymxp YyBmbG9hdCB6X25lYXI7CistCQlwdWJsaWMgZmxvYXQgel9mYXI7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2dlb21ldHJ5X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdHJ1Y3QgR2VvbWV0cnkgewor LQkJcHVibGljIGludCB4OworLQkJcHVibGljIGludCB5OworLQkJcHVibGljIHVpbnQgd2lkdGg7 CistCQlwdWJsaWMgdWludCBoZWlnaHQ7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5MSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSB1 bmlvbiAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeV9iKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJcHVibGljIHN0cnVjdCBLYmRBMTF5U2V0dGluZ3MgeworIAkJcHVibGljIENsdXR0ZXIuS2V5 Ym9hcmRBMTF5RmxhZ3MgY29udHJvbHM7CitAQCAtODA2OSw3ICs3Njc3LDcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIGludCBtb3VzZWtleXNfbWF4X3NwZWVkOworIAkJcHVibGlj IGludCBtb3VzZWtleXNfYWNjZWxfdGltZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RydWN0IEtub3QgeworIAkJcHVibGljIGlu dCB4OworQEAgLTgxMjEsNyArNzcyOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBkb3VibGUgdmFsdWU7CisgCQlwdWJsaWMgdWludDMyIG1vZGU7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1 Y3QgUGF0aE5vZGUgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aE5vZGVUeXBlIHR5cGU7CitAQCAt ODEzMSw3ICs3NzM5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1 YWwgKENsdXR0ZXIuUGF0aE5vZGUgbm9kZV9iKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNs dXR0ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorIAlwdWJsaWMgc3RydWN0IFBlcnNwZWN0aXZlIHsKKyAJCXB1YmxpYyBmbG9hdCBmb3Z5 OworQEAgLTgxNjIsNyArNzc3MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3 ZWFrIENsdXR0ZXIuQWN0b3Igc291cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5JbnB1dERl dmljZSBkZXZpY2U7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi Q0xVVFRFUl9UWVBFX1VOSVRTIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVi bGljIHN0cnVjdCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0cz8gY29weSAoKTsKK0BA IC04MTg2LDIzICs3Nzk0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0 IHRvX3BpeGVscyAoKTsKKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQlwdWJsaWMgc3RydWN0IFZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1Ymxp YyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlZlcnRleD8gYWxsb2MgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXg/IGNvcHkgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1 dHRlci5WZXJ0ZXggdmVydGV4X2IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlZlcnRleD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0FDVE9SX0FMSUdOXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9hY3Rvcl9hbGlnbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAlwdWJsaWMgZW51bSBBY3RvckFsaWduIHsKK0BAIC04MzQwLDYgKzc5MzEsMjcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9USAorIAl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9E RUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlb RmxhZ3NdCisrCXB1YmxpYyBlbnVtIERlYnVnRmxhZyB7CisrCQlNSVNDLAorKwkJQUNUT1IsCisr CQlURVhUVVJFLAorKwkJRVZFTlQsCisrCQlQQUlOVCwKKysJCVBBTkdPLAorKwkJQkFDS0VORCwK KysJCVNDSEVEVUxFUiwKKysJCVNDUklQVCwKKysJCVNIQURFUiwKKysJCU1VTFRJU1RBR0UsCisr CQlBTklNQVRJT04sCisrCQlMQVlPVVQsCisrCQlQSUNLLAorKwkJRVZFTlRMT09QLAorKwkJQ0xJ UFBJTkcsCisrCQlPT0JfVFJBTlNGT1JNUworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9EUkFHXyIsIHR5cGVf aWQgPSAiY2x1dHRlcl9kcmFnX2F4aXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAlwdWJsaWMgZW51bSBEcmFnQXhpcyB7CitAQCAtODM0Nyw2ICs3OTU5LDE5 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAi Q0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhd19kZWJ1Z19mbGFnX2dldF90 eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRHJhd0RlYnVnRmxhZyB7CisrCQlE SVNBQkxFX1NXQVBfRVZFTlRTLAorKwkJRElTQUJMRV9DTElQUEVEX1JFRFJBV1MsCisrCQlSRURS QVdTLAorKwkJUEFJTlRfVk9MVU1FUywKKysJCURJU0FCTEVfQ1VMTElORywKKysJCURJU0FCTEVf T0ZGU0NSRUVOX1JFRElSRUNULAorKwkJQ09OVElOVU9VU19SRURSQVcsCisrCQlQQUlOVF9ERUZP Uk1fVElMRVMsCisrCQlQQUlOVF9EQU1BR0VfUkVHSU9OCisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VGRkVD VF9QQUlOVF9BQ1RPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2ZsYWdzX2dl dF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRWZmZWN0UGFpbnRGbGFncyB7 CitAQCAtODM5OCw4ICs4MDIzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgZW51 bSBGZWF0dXJlRmxhZ3MgeworIAkJVEVYVFVSRV9OUE9ULAorIAkJU1dBUF9USFJPVFRMRSwKKy0J CVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKyAJCVNUQUdFX1NUQVRJQywK KyAJCVNUQUdFX0NVUlNPUiwKKyAJCVNIQURFUlNfR0xTTCwKK0BAIC04NjU3LDYgKzgyODAsMTEg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8K KyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfREVCVUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2Rl YnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVi dWdGbGFnIHsKKysJCVBJQ0tJTkcKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0g ImNsdXR0ZXJfcGlja19tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJcHVibGljIGVudW0gUGlja01vZGUgeworQEAgLTg4NTEsMTMgKzg0NzksNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf VEFCTEVfQUxJR05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFibGVBbGlnbm1l bnQgeworLQkJU1RBUlQsCistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVY VF9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9uX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVudW0gVGV4dERp cmVjdGlvbiB7CitAQCAtODkzMywyOCArODU1NCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlWQUxVRTsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfVEVYVFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor LQlwdWJsaWMgZXJyb3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9NRU1PUlksCist CQlOT19ZVVYsCistCQlCQURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1 YXJrICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0Iild CisgCXB1YmxpYyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChH TGliLk9iamVjdCBpdGVtKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKyAJcHVi bGljIGRlbGVnYXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9w b3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2 aW91ckZvcmVhY2hGdW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CXB1YmxpYyBkZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9iamVjdCBnb2Jq ZWN0LCBzdHJpbmcgYWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5 cGUgbW9kaWZpZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgQ2Fs bGJhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBFbWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1 dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRlckZ1bmMgKENs dXR0ZXIuRXZlbnQgZXZlbnQpOworQEAgLTg5ODUsOSArODU5Nyw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBS SU9SSVRZX1JFRFJBVzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBzdGF0aWMg Q2x1dHRlci5BY3RvckJveD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGJh c2VfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtOTA1MSw5ICs4NjYwLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5Gb250TWFwIGdldF9mb250X21hcCAoKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X2tleWJvYXJkX2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBz dGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDYxLDE3ICs4NjY3 LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3Jv dXAgZ2V0X29wdGlvbl9ncm91cF93aXRob3V0X2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9wb2ludGVyX2dy YWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBz dHJpbmcgZ2V0X3NjcmlwdF9pZCAoR0xpYi5PYmplY3QgZ29iamVjdCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJkIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIu SW5pdEVycm9yIGluaXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gImFyZ2MiLCBhcnJh eV9sZW5ndGhfcG9zID0gMC41KV0gcmVmIHVub3duZWQgc3RyaW5nW10/IGFyZ3YpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorQEAgLTkwODcsMjkgKzg2ODQsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZvaWQqIGZ1bmMp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfYWRk X2RhdGFfZnVsbCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0YUZ1bmMgdGVz dF9mdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0 ZXN0X2NoZWNrX2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBv aW50IHBvaW50LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rvcj8gcmVzdWx0 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2No ZWNrX2NvbG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBv aW50LCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1bHQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgdGVzdF9nZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0IChpbnQgYXJn Yywgc3RyaW5nIGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRp YyBpbnQgdGVzdF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAodWludDMyIHdjKTsK KyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzIHZhcGkvbXV0dGVyLWNs dXR0ZXItNy5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDU0JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0 ZXItY2x1dHRlci00LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTcuZGVwcwor aW5kZXggOTUwOTQwMjYuLjZiZDFjY2Y3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXIt NC5kZXBzCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK0BAIC0xLDUgKzEsNCBAQAor IGF0aworIGNhaXJvCisganNvbi1nbGliLTEuMAorLW11dHRlci1jb2dsLTQKKy1wYW5nbworK211 dHRlci1jb2dsLTcKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00LnZhcGkgdmFwaS9t dXR0ZXItY2x1dHRlci03LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggODYlCityZW5hbWUgZnJvbSB2 YXBpL211dHRlci1jbHV0dGVyLTQudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXIt Ny52YXBpCitpbmRleCBjOGExZDIzYi4uYWVhNmEzMWEgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXIt Y2x1dHRlci00LnZhcGkKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQorQEAgLTEsNiAr MSw2IEBACistLyogbXV0dGVyLWNsdXR0ZXItNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBk byBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jbHV0dGVyLTcudmFwaSBnZW5lcmF0ZWQgYnkg dmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRl ciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9j YXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIs IGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNl X2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKyBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCW5hbWVzcGFj ZSBLZXkgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY25hbWUgPSAiQ0xVVFRFUl9LRVlfMCIpXQorQEAgLTQ1NzYsMjAgKzQ1NzYsOCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHN0YXRpYyB1aW50IGFkZF9yZXBhaW50X2Z1bmNfZnVsbCAoQ2x1dHRlci5SZXBhaW50RmxhZ3Mg ZmxhZ3MsIG93bmVkIEdMaWIuU291cmNlRnVuYyBmdW5jKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBlbnRlciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBpbml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxl YXZlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQg cmVtb3ZlX3JlcGFpbnRfZnVuYyAodWludCBoYW5kbGVfaWQpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2xvY2tfZnVuY3Rpb25zIChHTGliLkNh bGxiYWNrIGVudGVyX2ZuLCBHTGliLkNhbGxiYWNrIGxlYXZlX2ZuKTsKKyAJfQorIAluYW1lc3Bh Y2UgVmFsdWUgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCitAQCAtNDYzNiw3ICs0NjI0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHN0YXRpYyB2b2lkIHRha2VfcGFpbnRfbm9kZSAoR0xpYi5WYWx1ZSB2YWx1ZSwgQ2x1dHRl ci5QYWludE5vZGU/IG5vZGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rpb25fZ2V0X3R5cGUgKCki KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg QWN0aW9uIDogQ2x1dHRlci5BY3Rvck1ldGEgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdGlvbiAoKTsKK0BAIC00NjY0LDMzICs0 NjUxLDIzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdm9pZCBhZGRfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUsIENsdXR0ZXIu VHJhbnNpdGlvbiB0cmFuc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBDbHV0 dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9j YXRlIChDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hbGlnbl9maWxsIChDbHV0dGVyLkFjdG9yQm94IGJv eCwgZG91YmxlIHhfYWxpZ24sIGRvdWJsZSB5X2FsaWduLCBib29sIHhfZmlsbCwgYm9vbCB5X2Zp bGwsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2b2lkIGFsbG9j YXRlX2FsaWduX2ZpbGwgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBkb3VibGUgeF9hbGlnbiwgZG91 YmxlIHlfYWxpZ24sIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hdmFpbGFibGVfc2l6ZSAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgYXZhaWxhYmxlX3dpZHRoLCBmbG9hdCBhdmFpbGFibGVfaGVp Z2h0LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdm9pZCBhbGxv Y2F0ZV9hdmFpbGFibGVfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgYXZhaWxhYmxlX3dp ZHRoLCBmbG9hdCBhdmFpbGFibGVfaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKy0JCXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFsbG9j YXRpb25GbGFncyBmbGFncyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgLi4u KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlv biBhbmltYXRlX3dpdGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93 aXRoX2FscGhhdiAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25h bWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0cmluZ1tdIHBy b3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFy cmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhf dGltZWxpbmUgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIC4uLik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5p bWF0ZV93aXRoX3RpbWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGlu ZSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro X2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZh bHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFuaW1hdGlvbiBhbmltYXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgW0NDb2Rl IChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0g Im5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFs dWVzKTsKKysJCXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChmbG9hdCB4LCBm bG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LlZlcnRleCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/ IGFuY2VzdG9yLCBDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV9y ZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBHcmFw aGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7 CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFuc2Zvcm0g KHJlZiBDbHV0dGVyLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoQ2x1 dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3JtX3RvX3Bv aW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNE IHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIHZvaWQg YmluZF9tb2RlbCAoR0xpYi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFjdG9yQ3Jl YXRlQ2hpbGRGdW5jIGNyZWF0ZV9jaGlsZF9mdW5jKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJs aWMgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVfcmVzb3VyY2Vfc2NhbGUgKGludCBwaGFzZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBjbGVhcl9hY3Rpb25z ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ3MDAsMjAgKzQ2NzcsMTkg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIGJvb2wgY29udGFpbnMgKENsdXR0ZXIuQWN0b3IgZGVzY2VuZGFudCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoKTsK KysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWlu dF9jb250ZXh0KTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BpY2sgKENsdXR0ZXIuUGlja0Nv bnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyBQYW5nby5Db250ZXh0IGNyZWF0ZV9wYW5nb19jb250ZXh0ICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkxheW91dCBjcmVhdGVfcGFuZ29fbGF5 b3V0IChzdHJpbmc/IHRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIGRlc3Ryb3lfYWxsX2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIGRldGFjaF9hbmltYXRpb24gKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfYWN0b3JfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1 YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgY2FwdHVyZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2Fs bG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVy LlZlcnRleCB2ZXJ0c1s0XSk7CisrCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVy dGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2ludDNEIHZl cnRzWzRdKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQXRrLk9iamVjdCBnZXRfYWNjZXNz aWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWN0aW9uIGdldF9hY3Rpb24gKHN0cmluZyBuYW1lKTsKK0BAIC00NzIxLDIxICs0 Njk3LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENs dXR0ZXIuQWN0aW9uPiBnZXRfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGdldF9hbGxvY2F0aW9uX2JveCAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBnZXRfYWxsb2NhdGlv bl9nZW9tZXRyeSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIENsdXR0ZXIuVmVydGV4IHZlcnRzWzRdKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYW5jaG9yX3BvaW50IChvdXQgZmxv YXQgYW5jaG9yX3gsIG91dCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfYW5jaG9yX3BvaW50X2dyYXZpdHkgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gZ2V0X2Fu aW1hdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1 dHRlci5Db2xvciBnZXRfYmFja2dyb3VuZF9jb2xvciAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl9nZXRfYWN0b3JfYnlfZ2lkIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYnlfZ2lkICh1aW50MzIgaWRfKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9jaGlsZF9hdF9pbmRleCAoaW50IGluZGV4Xyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorQEAgLTQ3NjIsOCArNDcyNSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIGdldF9jb250ZW50X3NjYWxpbmdfZmlsdGVycyAob3V0IENsdXR0ZXIuU2Nh bGluZ0ZpbHRlciBtaW5fZmlsdGVyLCBvdXQgQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1hZ19maWx0 ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuUGFpbnRWb2x1bWUgZ2V0X2RlZmF1bHRfcGFpbnRfdm9sdW1lICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBmbG9hdCBnZXRfZGVwdGggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kZWxheSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCitAQCAtNDc3NiwxMiArNDczNywxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5FZmZlY3Q+IGdldF9lZmZlY3RzICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZ2V0X2ZpcnN0X2NoaWxkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0 aW9uIChvdXQgZmxvYXQgeCwgb3V0IGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu OCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uX3NldCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yRmxhZ3MgZ2V0X2Zs YWdzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHVpbnQzMiBnZXRfZ2lkICgpOwor IAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2hhc19wb2ludGVyIildCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX3BvaW50ZXIgKCk7 CitAQCAtNDgzOSwxNyArNDc5OSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Ym9vbCBnZXRfcmVhY3RpdmUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlw dWJsaWMgQ2x1dHRlci5SZXF1ZXN0TW9kZSBnZXRfcmVxdWVzdF9tb2RlICgpOworLQkJcHVibGlj IGJvb2wgZ2V0X3Jlc291cmNlX3NjYWxlIChvdXQgZmxvYXQgcmVzb3VyY2Vfc2NhbGUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0aW9uIChDbHV0dGVyLlJv dGF0ZUF4aXMgYXhpcywgb3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5LCBvdXQgZmxvYXQgeik7Cisr CQlwdWJsaWMgZmxvYXQgZ2V0X3Jlc291cmNlX3NjYWxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0aW9uX2FuZ2xlIChDbHV0dGVy LlJvdGF0ZUF4aXMgYXhpcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJs aWMgdm9pZCBnZXRfc2NhbGUgKG91dCBkb3VibGUgc2NhbGVfeCwgb3V0IGRvdWJsZSBzY2FsZV95 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc2NhbGVfY2VudGVyIChv dXQgZmxvYXQgY2VudGVyX3gsIG91dCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfc2NhbGVfZ3Jhdml0eSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9zY2FsZV96ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTQ4NjAsOCArNDgxNCw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0X3Rl eHRfZGlyZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1Ymxp YyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4ICgpOworKwkJ cHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2V4dGVudHMgKG91dCB1bm93bmVkIEdyYXBoZW5l LlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlBhaW50Vm9sdW1lIGdldF90cmFuc2Zvcm1lZF9wYWludF92b2x1bWUgKENs dXR0ZXIuQWN0b3IgcmVsYXRpdmVfdG9fYW5jZXN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorQEAgLTQ4ODUsMTAgKzQ4MzgsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgYm9vbCBnZXRfeV9leHBhbmQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIGZsb2F0IGdldF96X3Bvc2l0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3pfcm90YXRpb25fZ3Jhdml0eSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWJfa2V5X2ZvY3Vz ICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBoYXNfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgYm9vbCBoYXNfYWN0aW9ucyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTAwLDE4ICs0ODUyLDIwIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19lZmZlY3RzICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2tleV9mb2N1cyAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgYm9vbCBoYXNfbWFwcGVkX2Ns b25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOworKwkJcHVibGljIHZvaWQgaW5o aWJpdF9jdWxsaW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIGluc2VydF9jaGlsZF9hYm92ZSAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5B Y3Rvcj8gc2libGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgaW5zZXJ0X2NoaWxkX2F0X2luZGV4IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBpbnQgaW5k ZXhfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNl cnRfY2hpbGRfYmVsb3cgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0b3I/IHNpYmxp bmcpOworKwkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV90cmFuc2Zvcm0gKCk7CisrCQlwdWJsaWMg Ym9vbCBpc19lZmZlY3RpdmVseV9vbl9zdGFnZV92aWV3IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGlzX2luX2Ns b25lX3BhaW50ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KK0BAIC00OTI0LDMz ICs0ODc4LDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGlzX3NjYWxl ZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgYm9vbCBpc192 aXNpYmxlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9yPyBhYm92 ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIHZvaWQgbW92ZV9hbmNob3JfcG9pbnQgKGZsb2F0IGFuY2hvcl94 LCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgbW92 ZV9hbmNob3JfcG9pbnRfZnJvbV9ncmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBtb3ZlX2J5IChmbG9h dCBkeCwgZmxvYXQgZHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1Ymxp YyBib29sIG5lZWRzX2V4cGFuZCAoQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbik7Cisg CQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF9ub2RlIChDbHV0dGVy LlBhaW50Tm9kZSByb290KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwb3Bf aW50ZXJuYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcHVzaF9pbnRl cm5hbCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLlN0YWdlVmlldz4g cGVla19zdGFnZV92aWV3cyAoKTsKKysJCXB1YmxpYyB2b2lkIHBpY2tfYm94IChDbHV0dGVyLlBp Y2tDb250ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRlci5BY3RvckJveCBib3gpOworKwkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5GcmFtZUNsb2NrIHBpY2tfZnJhbWVfY2xvY2sgKCk7CisgCQlwdWJs aWMgdm9pZCBxdWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVjdGFuZ2xlSW50 PyBjbGlwKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rvcj8gYmVsb3cp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIuQWN0aW9uIGFj dGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk3Miw4ICs0OTEzLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2VmZmVjdF9ieV9u YW1lIChzdHJpbmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgcmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4y IildCistCQlwdWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdfcGFyZW50KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZXBsYWNlX2No aWxkIChDbHV0dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdfY2hpbGQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC00OTgxLDExICs0OTIwLDcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNhdmVfZWFzaW5nX3N0YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9yQm94IGJveCwg Q2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9hbmNob3JfcG9pbnQgKGZsb2F0IGFuY2hvcl94LCBmbG9hdCBhbmNob3Jf eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FuY2hvcl9wb2ludF9m cm9tX2dyYXZpdHkgKENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKysJCXB1YmxpYyB2b2lkIHNl dF9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmRfY29sb3IgKENsdXR0ZXIu Q29sb3I/IGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTAwOCw4 ICs0OTQzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRl bnRfcmVwZWF0IChDbHV0dGVyLkNvbnRlbnRSZXBlYXQgcmVwZWF0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9zY2FsaW5nX2ZpbHRl cnMgKENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtaW5fZmlsdGVyLCBDbHV0dGVyLlNjYWxpbmdGaWx0 ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoIChmbG9hdCBkZXB0 aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Vh c2luZ19kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTUwMzksOCArNDk3Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHNldF9vZmZzY3JlZW5fcmVkaXJlY3QgKENsdXR0ZXIuT2Zmc2NyZWVuUmVkaXJlY3QgcmVkaXJl Y3QpOworIAkJcHVibGljIHZvaWQgc2V0X29wYWNpdHkgKHVpbnQ4IG9wYWNpdHkpOworIAkJcHVi bGljIHZvaWQgc2V0X29wYWNpdHlfb3ZlcnJpZGUgKGludCBvcGFjaXR5KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCBzZXRfcGFyZW50IChDbHV0dGVyLkFjdG9yIHBhcmVudCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Bpdm90X3BvaW50IChmbG9hdCBw aXZvdF94LCBmbG9hdCBwaXZvdF95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitA QCAtNTA1MCwxNiArNDk4MSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9p ZCBzZXRfcmVhY3RpdmUgKGJvb2wgcmVhY3RpdmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3JlcXVlc3RfbW9kZSAoQ2x1dHRlci5SZXF1ZXN0TW9k ZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfcm90YXRpb24g KENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMsIGRvdWJsZSBhbmds ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2Nh bGUgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3NjYWxlX2Z1bGwgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2Nh bGVfeSwgZmxvYXQgY2VudGVyX3gsIGZsb2F0IGNlbnRlcl95KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfd2l0aF9ncmF2aXR5IChkb3VibGUgc2NhbGVfeCwg ZG91YmxlIHNjYWxlX3ksIENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfeiAoZG91YmxlIHNjYWxl X3opOworIAkJcHVibGljIHZvaWQgc2V0X3NpemUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQp OworQEAgLTUwODUsMTcgKzUwMTAsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZvaWQgc2V0X3lfZXhwYW5kIChib29sIGV4cGFuZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3pfcG9zaXRpb24gKGZsb2F0IHpfcG9zaXRpb24p OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF96X3JvdGF0aW9uX2Zyb21f Z3Jhdml0eSAoZG91YmxlIGFuZ2xlLCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlwdWJs aWMgYm9vbCBzaG91bGRfcGlja19wYWludCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIHNob3dfYWxsICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorIAkJcHVibGljIGJvb2wgdHJhbnNmb3JtX3N0YWdlX3BvaW50IChmbG9hdCB4LCBmbG9hdCB5 LCBvdXQgZmxvYXQgeF9vdXQsIG91dCBmbG9hdCB5X291dCk7CisrCQlwdWJsaWMgdm9pZCB1bmlu aGliaXRfY3VsbGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgdW5tYXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZv aWQgdW5wYXJlbnQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg dm9pZCB1bnNldF9mbGFncyAoQ2x1dHRlci5BY3RvckZsYWdzIGZsYWdzKTsKKyAJCVtOb0FjY2Vz c29yTWV0aG9kXQorQEAgLTUxMDMsMTYgKzUwMjMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgQ2x1dHRlci5BY3Rpb24gYWN0aW9ucyB7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5B Y3RvckJveCBhbGxvY2F0aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGFuY2hvcl9ncmF2aXR5IHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0J CXB1YmxpYyBmbG9hdCBhbmNob3JfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZmxvYXQgYW5jaG9yX3kgeyBnZXQ7IHNl dDsgfQorKwkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiB7IG93bmVkIGdldDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9y IGJhY2tncm91bmRfY29sb3IgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitA QCAtNTEyMiwxMSArNTAzMyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBjaGlsZF90cmFuc2Zvcm1fc2V0IHsgZ2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRy eSBjbGlwIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY2xpcF9yZWN0IHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGNsaXBfcmVjdCB7IG93bmVk IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9v bCBjbGlwX3RvX2FsbG9jYXRpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2Rd CitAQCAtNTE0MCw4ICs1MDQ4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENs dXR0ZXIuQ29udGVudEdyYXZpdHkgY29udGVudF9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db250ZW50UmVwZWF0 IGNvbnRlbnRfcmVwZWF0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgZmxvYXQgZGVwdGggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgQ2x1dHRlci5FZmZlY3QgZWZmZWN0 IHsgc2V0OyB9CitAQCAtNTIxMSwxMiArNTExNywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdWludCBvcGFjaXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50 IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorIAkJcHVibGljIGZsb2F0IHBpdm90X3BvaW50X3ogeyBnZXQ7IHNldDsgfQorIAkJ W05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVi bGljIENsdXR0ZXIuUG9pbnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGlj IEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIHJlYWN0aXZlIHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMjUsOCArNTEzMSw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVy LlJlcXVlc3RNb2RlIHJlcXVlc3RfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBmbG9hdCByZXNvdXJjZV9zY2FsZSB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91 YmxlIHJvdGF0aW9uX2FuZ2xlX3ggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2Rd CitAQCAtNTIzNiwyNyArNTE0MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgcm90YXRpb25fYW5nbGVfeiB7IGdl dDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ggeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIu VmVydGV4IHJvdGF0aW9uX2NlbnRlcl95IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlv bl9jZW50ZXJfeiB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0aW9uX2NlbnRlcl96X2dy YXZpdHkgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIGZsb2F0IHNjYWxlX2NlbnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBzY2Fs ZV9jZW50ZXJfeSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHNjYWxlX2dyYXZpdHkgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgZG91YmxlIHNjYWxlX3ggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCitAQCAtNTI2OSw3ICs1MTUyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGJvb2wgc2hvd19vbl9zZXRfcGFyZW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vz c29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6 ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gdGV4dF9kaXJlY3Rpb24geyBnZXQ7IHNl dDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTI5OSw4ICs1MTgyLDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgeV9leHBhbmQgeyBnZXQ7IHNldDsgfQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCB6X3Bvc2l0aW9uIHsg Z2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBhbGxvY2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBDbHV0dGVy LkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisg CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBidXR0b25fcHJlc3NfZXZlbnQgKENsdXR0ZXIu QnV0dG9uRXZlbnQgZXZlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorQEAgLTUz MzEsMjIgKzUyMTIsMjUgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwg c2lnbmFsIGJvb2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50KTsKKyAJ CVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKENs dXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3NldCAoQ2x1dHRl ci5BY3Rvcj8gb2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIu Q29sb3IgY29sb3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRl ci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBxdWV1ZV9y ZWxheW91dCAoKTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIwLjgiKV0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlYWxpemUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCByZXNvdXJjZV9zY2FsZV9jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc2Nyb2xsX2V2ZW50IChDbHV0 dGVyLlNjcm9sbEV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc2hvdyAoKTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCBzdGFnZV92aWV3c19jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHRvdWNoX2V2 ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CitAQCAtNTM1OCwyMSArNTI0MiwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCB1bnJlYWxpemUgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9y X21ldGFfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJs aWMgYWJzdHJhY3QgY2xhc3MgQWN0b3JNZXRhIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBB Y3Rvck1ldGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyBib29sIGdldF9lbmFibGVkICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworIAkJW05v V3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2FjdG9yIChDbHV0dGVyLkFjdG9y PyBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZW5hYmxlZCAoYm9vbCBpc19lbmFibGVkKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0 X2VuYWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBnZXQ7IH0KKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGVuYWJsZWQgeyBnZXQ7 IHNldDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHN0cmluZyBu YW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3Jfbm9kZV9nZXRfdHlwZSAo KSIpXQorKwlwdWJsaWMgY2xhc3MgQWN0b3JOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBh aW50Tm9kZSoiKV0KKysJCXB1YmxpYyBBY3Rvck5vZGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor Kwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9hbGlnbl9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIEFsaWduQ29uc3RyYWludCA6IENs dXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNTM4MCw4MSArNTI3NiwxOCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgQWxpZ25Db25zdHJhaW50IChDbHV0dGVyLkFjdG9yPyBzb3VyY2Us IENsdXR0ZXIuQWxpZ25BeGlzIGF4aXMsIGZsb2F0IGZhY3Rvcik7CisgCQlwdWJsaWMgQ2x1dHRl ci5BbGlnbkF4aXMgZ2V0X2FsaWduX2F4aXMgKCk7CisgCQlwdWJsaWMgZmxvYXQgZ2V0X2ZhY3Rv ciAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9waXZvdF9wb2ludCAob3V0IHVub3duZWQgR3JhcGhl bmUuUG9pbnQgcGl2b3RfcG9pbnQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBn ZXRfc291cmNlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2FsaWduX2F4aXMgKENsdXR0ZXIuQWxp Z25BeGlzIGF4aXMpOworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZmxvYXQgZmFjdG9yKTsK KysJCXB1YmxpYyB2b2lkIHNldF9waXZvdF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9p bnQpOworIAkJcHVibGljIHZvaWQgc2V0X3NvdXJjZSAoQ2x1dHRlci5BY3Rvcj8gc291cmNlKTsK KyAJCXB1YmxpYyBDbHV0dGVyLkFsaWduQXhpcyBhbGlnbl9heGlzIHsgZ2V0OyBzZXQgY29uc3Ry dWN0OyB9CisgCQlwdWJsaWMgZmxvYXQgZmFjdG9yIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2lu dCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBzb3VyY2UgeyBn ZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxwaGFfZ2V0X3R5cGUgKCki KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEFscGhhIDogR0xpYi5Jbml0aWFs bHlVbm93bmVkLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEFscGhhICgpOworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIEFscGhhLmZ1bGwgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIHVsb25n IG1vZGUpOworLQkJcHVibGljIGRvdWJsZSBnZXRfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfY2xvc3VyZSAoR0xp Yi5DbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHN0YXRpYyB1bG9uZyByZWdpc3Rlcl9mdW5jIChDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jbG9zdXJl IChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZnVuYyAob3duZWQg Q2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7CistCQlwdWJsaWMgdm9pZCBzZXRf dGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIEFscGhhLndpdGhfZnVuYyAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgb3du ZWQgQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlwdWJsaWMgZG91YmxlIGFscGhhIHsgZ2V0 OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdWxvbmcgbW9kZSB7 IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGltZWxpbmUgdGltZWxp bmUgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fZ2V0X3R5cGUgKCki KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIEFuaW1hdGlvbiA6IEdMaWIuT2Jq ZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEFuaW1hdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQW5pbWF0aW9uIGJpbmQgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVl IGZpbmFsKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmRfaW50ZXJ2 YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBvd25lZCBDbHV0dGVyLkludGVydmFsIGludGVydmFs KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFscGhhIGdl dF9hbHBoYSAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuSW50ZXJ2YWwgZ2V0X2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFt ZSk7CistCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKy0JCXB1YmxpYyB1bG9uZyBnZXRfbW9k ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCXB1Ymxp YyBib29sIGhhc19wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7Cist CQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJcHVibGljIHZvaWQg c2V0X2xvb3AgKGJvb2wgbG9vcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9k ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb2JqZWN0IChHTGliLk9iamVjdCBvYmplY3QpOworLQkJ cHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lPyB0aW1lbGluZSk7Cist CQlwdWJsaWMgdm9pZCB1bmJpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIHVwZGF0ZSAoc3RyaW5nIHByb3BlcnR5 X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX2ludGVydmFs IChzdHJpbmcgcHJvcGVydHlfbmFtZSwgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsg fQorLQkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJcHVibGljIGJvb2wg bG9vcCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0OyB9Cist CQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0 dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworLQkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgc3RhcnRlZCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBh Y3RdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC01NDY3LDM3ICs1MzAwLDE0IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmFja2VuZF9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBjbGFzcyBCYWNrZW5k IDogR0xpYi5PYmplY3QgeworKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdMaWIu T2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLQkJcHVibGljIHZv aWQgYmVsbF9ub3RpZnkgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9v bCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdl IChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ug c3RhZ2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRl ci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X2RlZmF1bHRfc2VhdCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENhaXJvLkZvbnRPcHRp b25zIGdldF9mb250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0 TWV0aG9kIGdldF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLktl eW1hcCBnZXRfa2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRfcmVzb2x1dGlvbiAoKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAoKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHBvc3RfcGFyc2UgKCkgdGhy b3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBw cmVfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2ZvbnRfb3B0aW9ucyAoQ2Fpcm8u Rm9udE9wdGlvbnMgb3B0aW9ucyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfbWV0aG9kIChD bHV0dGVyLklucHV0TWV0aG9kIG1ldGhvZCk7CitAQCAtNTUwOCw5NSArNTMxOCwxMSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgc2V0dGluZ3NfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZp b3VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNs YXNzIEJlaGF2aW91ciA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJlaGF2 aW91ciAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdG9yc19mb3JlYWNoIChDbHV0dGVyLkJlaGF2aW91 ckZvcmVhY2hGdW5jIGZ1bmMpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgYWxwaGFfbm90aWZ5IChkb3VibGUgYWxwaGFfdmFsdWUpOworLQkJcHVibGljIHZvaWQgYXBw bHkgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0 dGVyLkFjdG9yPiBnZXRfYWN0b3JzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBo YSBnZXRfYWxwaGEgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX2FjdG9ycyAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250aF9hY3RvciAoaW50IGluZGV4Xyk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBpc19hcHBsaWVkIChDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZSAoQ2x1dHRlci5BY3RvciBh Y3Rvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1v dmVfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhh KTsKKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFwcGxp ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVtb3ZlZCAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9kZXB0aF9nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2lu Y2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJEZXB0aCA6IENsdXR0ZXIuQmVo YXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJEZXB0aCAoQ2x1dHRlci5BbHBo YT8gYWxwaGEsIGludCBkZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgaW50IGRlcHRo X3N0YXJ0LCBvdXQgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9l bmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgaW50IGRlcHRoX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhf c3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfb3BhY2l0eV9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJP cGFjaXR5IDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZp b3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91ck9wYWNpdHkgKENsdXR0ZXIuQWxwaGE/IGFscGhh LCB1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgdWludDggb3Bh Y2l0eV9zdGFydCwgb3V0IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKHVpbnQ4IG9wYWNpdHlfc3RhcnQs IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVp bnQgb3BhY2l0eV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgdWludCBvcGFjaXR5X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf YmVoYXZpb3VyX3NjYWxlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGlj IGNsYXNzIEJlaGF2aW91clNjYWxlIDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91clNjYWxlIChDbHV0dGVy LkFscGhhPyBhbHBoYSwgZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0 LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgZG91YmxlIHhf c2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeV9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB4X3NjYWxl X2VuZCwgb3V0IGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91 YmxlIHlfc2NhbGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5k KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIGRvdWJsZSB4X3NjYWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUg eF9zY2FsZV9zdGFydCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9lbmQgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9iaW5fbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJcHVibGljIGNsYXNzIEJpbkxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFu YWdlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCaW5MYXlvdXQgKENsdXR0ZXIu QmluQWxpZ25tZW50IHhfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCwgQ2x1dHRl ci5CaW5BbGlnbm1lbnQgeV9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJUKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBhZGQgKENsdXR0ZXIuQWN0b3IgY2hpbGQs IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxp Z24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENs dXR0ZXIuQWN0b3I/IGNoaWxkLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgb3V0 IENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBDbHV0dGVyLkJp bkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJp bkFsaWdubWVudCB4X2FsaWduIHsgZ2V0OyBzZXQ7IH0KK0BAIC01NjQ0LDk4ICs1MzcwLDI5IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJFZmZlY3QqIildCisgCQlwdWJsaWMgQmx1ckVmZmVjdCAo KTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfYm94X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKy0JcHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBs ZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQm94 IChDbHV0dGVyLkxheW91dE1hbmFnZXIgbWFuYWdlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWFuYWdlciBnZXRfbGF5b3V0X21hbmFnZXIg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2Fm dGVyIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nLCAuLi4pOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2tfYXQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIGludCBwb3NpdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg dm9pZCBwYWNrX2JlZm9yZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2li bGluZywgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrdiAoQ2x1 dHRlci5BY3RvciBhY3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0 aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQi KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9w cm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAi Z3VpbnQiKV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yPyBjb2xvcik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheW91dF9tYW5hZ2VyIChDbHV0dGVyLkxheW91dE1h bmFnZXIgbWFuYWdlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29s b3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIGJvb2wgY29sb3Jfc2V0IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1Ymxp YyBDbHV0dGVyLkxheW91dE1hbmFnZXIgbGF5b3V0X21hbmFnZXIgeyBnZXQ7IHNldDsgfQorLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9ib3hfbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJcHVibGljIGNsYXNzIEJveExheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFu YWdlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCb3hMYXlvdXQgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3Rv ciBhY3Rvciwgb3V0IENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJv eEFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWludCBn ZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bG9u ZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wg Z2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmls bCwgb3V0IGJvb2wgeV9maWxsKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyBib29sIGdldF9ob21vZ2VuZW91cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCQlwdWJsaWMgQ2x1dHRlci5PcmllbnRhdGlvbiBnZXRfb3JpZW50YXRpb24gKCk7Cisg CQlwdWJsaWMgYm9vbCBnZXRfcGFja19zdGFydCAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9zcGFj aW5nICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0 aW9ucyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfdmVydGljYWwg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgYm9vbCBleHBhbmQsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCwgQ2x1dHRlci5C b3hBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGlnbik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5Cb3hBbGlnbm1l bnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2lu Z19kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZv aWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIGV4cGFuZCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbGwgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfaG9tb2dlbmVvdXMgKGJvb2wgaG9tb2dlbmVv dXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9v cmllbnRhdGlvbiAoQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbik7CisgCQlwdWJsaWMg dm9pZCBzZXRfcGFja19zdGFydCAoYm9vbCBwYWNrX3N0YXJ0KTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF91c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdm9pZCBzZXRfdmVydGljYWwgKGJvb2wgdmVydGljYWwpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsgc2V0OyB9Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsgZ2V0OyBzZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhvbW9nZW5l b3VzIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJs aWMgQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbiB7IGdldDsgc2V0OyB9CisgCQlwdWJs aWMgYm9vbCBwYWNrX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1aW50IHNwYWNpbmcg eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmlt YXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB2 ZXJ0aWNhbCB7IGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JyaWdodG5lc3NfY29udHJh c3RfZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitA QCAtNTc0OSw5ICs1NDA2LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg c2V0X2NvbnRyYXN0IChmbG9hdCBjb250cmFzdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udHJh c3RfZnVsbCAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSk7CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3MgeyBnZXQ7IHNl dDsgfQorKwkJcHVibGljIENsdXR0ZXIuQ29sb3IgYnJpZ2h0bmVzcyB7IG93bmVkIGdldDsgc2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbnRy YXN0IHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbnRyYXN0IHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCitAQCAtNTc3 MCwzNyArNTQyNyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4Owor IAkJcHVibGljIGZsb2F0IHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhaXJvX3RleHR1cmVfZ2V0X3R5 cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIENhaXJvVGV4dHVyZSA6 IENsdXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENs dXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVi bGljIENhaXJvVGV4dHVyZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJcHVibGljIHZv aWQgY2xlYXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBj cmVhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVh dGVfcmVnaW9uIChpbnQgeF9vZmZzZXQsIGludCB5X29mZnNldCwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGdldF9h dXRvX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zdXJmYWNlX3NpemUgKG91dCB1aW50 IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xlIChDYWlyby5SZWN0YW5nbGVJ bnQ/IHJlY3QpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2F1dG9fcmVzaXplIChib29sIHZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zdXJmYWNl X3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyBib29sIGF1dG9fcmVzaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV9oZWlnaHQgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNlX3dpZHRoIHsg Z2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCBDYWlyby5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNlICh1aW50IHdpZHRoLCB1aW50 IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgYm9vbCBkcmF3IChDYWlyby5Db250ZXh0IGNyKTsKKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Y2FudmFzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1 YmxpYyBjbGFzcyBDYW52YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC01 ODI3LDE3ICs1NDUzLDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVy LkNvbnRhaW5lciBjb250YWluZXIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9jbGlja19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAlwdWJsaWMgY2xhc3MgQ2xpY2tBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9u KiIpXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsaWNrQWN0aW9u ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVpbnQgZ2V0X2J1 dHRvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdl dF9jb29yZHMgKG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5Nb2RpZmllclR5cGUgZ2V0 X3N0YXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQg cmVsZWFzZSAoKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorIAkJcHVibGljIGJvb2wgaGVsZCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTg0Niw3ICs1NDc1LDkgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVi bGljIGludCBsb25nX3ByZXNzX3RocmVzaG9sZCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIHBy ZXNzZWQgeyBnZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGNsaWNrZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgbG9u Z19wcmVzcyAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Mb25nUHJlc3NTdGF0ZSBzdGF0 ZSk7CitAQCAtNTg4OCw4ICs1NTE5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVj dGVkIENvbnN0cmFpbnQgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9p ZCB1cGRhdGVfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3RvckJv eCBhbGxvY2F0aW9uKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVw ZGF0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5PcmllbnRh dGlvbiBkaXJlY3Rpb24sIGZsb2F0IGZvcl9zaXplLCBmbG9hdCBtaW5pbXVtX3NpemUsIGZsb2F0 IG5hdHVyYWxfc2l6ZSk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9wcmVmZXJyZWRf c2l6ZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5PcmllbnRhdGlvbiBkaXJlY3Rpb24s IGZsb2F0IGZvcl9zaXplLCByZWYgZmxvYXQgbWluaW11bV9zaXplLCByZWYgZmxvYXQgbmF0dXJh bF9zaXplKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCitAQCAtNTg5OCw2ICs1 NTI4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5JbnB1 dERldmljZSBkZXZpY2U7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudEZsYWdzIGZsYWdzOworIAkJ cHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciByZWxhdGVkOworKwkJcHVibGljIHdlYWsgQ2x1dHRl ci5FdmVudFNlcXVlbmNlIHNlcXVlbmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBz b3VyY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLlN0YWdlIHN0YWdlOworIAkJcHVibGljIHVp bnQzMiB0aW1lOworQEAgLTU5MzEsOTggKzU1NjIsMjEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgZG91 YmxlIGZhY3RvciB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RldmljZV9tYW5hZ2Vy X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIGFi c3RyYWN0IGNsYXNzIERldmljZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRGV2aWNlTWFuYWdl ciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9kZXZpY2Ug KENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0 aW5ncyBzZXR0aW5ncyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBj b21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9fZGlz Y2FyZCk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVh dGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsK Ky0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfY29yZV9k ZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RlZmF1bHQgKCk7CistCQlw dWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2RldmljZSAoaW50 IGRldmljZV9pZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0 ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIu VmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsK Ky0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9kZXZp Y2VzICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLklucHV0RGV2aWNl PiBwZWVrX2RldmljZXMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCByZW1vdmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZWxlY3Rfc3RhZ2VfZXZlbnRzIChDbHV0dGVy LlN0YWdlIHN0YWdlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1 dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVy LklucHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxh Z3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRj aGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xf Y2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VU b29sIHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgRHJhZ0FjdGlvbiA6IENs dXR0ZXIuQWN0aW9uIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMgRHJhZ0FjdGlvbiAoKTsKKy0J CXB1YmxpYyBib29sIGdldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEpOworLQkJ cHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZ2V0X2RyYWdfYXhpcyAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2RyYWdfaGFuZGxlICgpOworLQkJcHVibGljIHZvaWQgZ2V0 X2RyYWdfdGhyZXNob2xkIChvdXQgdWludCB4X3RocmVzaG9sZCwgb3V0IHVpbnQgeV90aHJlc2hv bGQpOworLQkJcHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29yZHMgKG91dCBmbG9hdCBtb3Rpb25f eCwgb3V0IGZsb2F0IG1vdGlvbl95KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wcmVzc19jb29yZHMg KG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CistCQlwdWJsaWMgdm9pZCBz ZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3Q/IGRyYWdfYXJlYSk7CistCQlwdWJsaWMgdm9pZCBz ZXRfZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOworLQkJcHVibGljIHZvaWQgc2V0 X2RyYWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOworLQkJcHVibGljIHZvaWQgc2V0 X2RyYWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9sZCk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9v bCBkcmFnX2FyZWFfc2V0IHsgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBkcmFn X2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuQWN0b3IgZHJhZ19oYW5kbGUg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHhfZHJh Z190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgaW50IHlfZHJhZ190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgZHJhZ19iZWdpbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRf eCwgZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfZW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBm bG9hdCBldmVudF94LCBmbG9hdCBldmVudF95LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RpZmll cnMpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJhZ19tb3Rpb24gKENsdXR0ZXIu QWN0b3IgYWN0b3IsIGZsb2F0IGRlbHRhX3gsIGZsb2F0IGRlbHRhX3kpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYWdfcHJv Z3Jlc3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGRlbHRhX3gsIGZsb2F0IGRlbHRhX3kp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9kcm9wX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBjbGFzcyBEcm9wQWN0aW9uIDogQ2x1dHRlci5B Y3Rpb24geworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckFjdGlvbioiKV0KKy0JCXB1YmxpYyBEcm9wQWN0aW9uICgpOworLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIGJvb2wgY2FuX2Ryb3AgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0 IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg ZHJvcCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRy b3BfY2FuY2VsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBldmVu dF95KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfaW4gKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgb3Zlcl9vdXQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRWZm ZWN0IDogQ2x1dHRlci5BY3Rvck1ldGEgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEVmZmVjdCAoKTsKKyAJCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9wYWludF92b2x1bWUgKENsdXR0ZXIuUGFpbnRWb2x1 bWUgdm9sdW1lKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9kaWZ5X3BhaW50X3ZvbHVtZSAo Q2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250 ZXh0LCBDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworIAkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdz KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNr X2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9w YWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoQ2x1dHRlci5QYWlu dENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgYm9vbCBwcmVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAo Q2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50ICgpOworIAl9CitAQCAtNjAz Myw4ICs1NTg3LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2 ZW50VHlwZSB0eXBlOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHVibGljIEV2ZW50IChDbHV0dGVyLkV2ZW50VHlwZSB0eXBlKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgc3RhdGljIHVpbnQgYWRkX2ZpbHRlciAoQ2x1 dHRlci5TdGFnZT8gc3RhZ2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDIuMiwgZGVz dHJveV9ub3RpZnlfcG9zID0gMi4xKV0gb3duZWQgQ2x1dHRlci5FdmVudEZpbHRlckZ1bmMgZnVu Yyk7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudCBjb3B5ICgpOworIAkJcHVibGljIHZvaWQgZnJl ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1 dHRlci5FdmVudCBAZ2V0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1 YmxpYyBkb3VibGUgZ2V0X2FuZ2xlIChDbHV0dGVyLkV2ZW50IHRhcmdldCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCitAQCAtNjA3Myw3ICs1NjMxLDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJsaWMgYm9vbCBn ZXRfcGFkX2V2ZW50X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0 IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2 b2lkIGdldF9wb3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVs YXRlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjEwNiw4ICs1NjY0 LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19zaGlmdF9tb2Rp ZmllciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBp c19wb2ludGVyX2VtdWxhdGVkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorKwkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnQgcGVlayAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHB1dCAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2ZpbHRlciAodWlu dCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRf YnV0dG9uICh1aW50MzIgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BA IC02MTQwLDE2ICs1NzAyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg c2V0X3N0YXRlIChDbHV0dGVyLk1vZGlmaWVyVHlwZSBzdGF0ZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGltZSAodWludDMyIHRpbWVfKTsKKy0J CXB1YmxpYyBDbHV0dGVyLkFueUV2ZW50IGFueSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckFu eUV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRv biB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckJ1dHRvbkV2ZW50ICopIildICBnZXQ7IH0KKy0J CXB1YmxpYyBDbHV0dGVyLkNyb3NzaW5nRXZlbnQgY3Jvc3Npbmcge1tDQ29kZSAoY25hbWUgPSAi KENsdXR0ZXJDcm9zc2luZ0V2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLktl eUV2ZW50IGtleSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlcktleUV2ZW50ICopIildICBnZXQ7 IH0KKy0JCXB1YmxpYyBDbHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7W0NDb2RlIChjbmFtZSA9 ICIoQ2x1dHRlck1vdGlvbkV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlNj cm9sbEV2ZW50IHNjcm9sbCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9sbEV2ZW50ICop IildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVudCBzdGFnZV9zdGF0 ZSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclN0YWdlU3RhdGVFdmVudCAqKSIpXSAgZ2V0OyB9 CistCQlwdWJsaWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHtbQ0NvZGUgKGNuYW1lID0gIihD bHV0dGVyVG91Y2hFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Ub3VjaHBh ZFBpbmNoRXZlbnQgdG91Y2hwYWRfcGluY2gge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3Vj aHBhZFBpbmNoRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hwYWRT d2lwZUV2ZW50IHRvdWNocGFkX3N3aXBlIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hw YWRTd2lwZUV2ZW50ICopIildICBnZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2V2ZW50 X3NlcXVlbmNlX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTYxOTgsMTAgKzU3NTAs MjQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0K KyAJCXB1YmxpYyBib29sIHNuYXBfdG9fZ3JpZCB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2ZyYW1lX2Nsb2NrX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUNsb2Nr IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorKwkJcHVibGljIEZyYW1lQ2xvY2sgKGZsb2F0IHJlZnJlc2hfcmF0ZSwgQ2x1dHRlci5G cmFtZUxpc3RlbmVySWZhY2UgaWZhY2UsIHZvaWQqIHVzZXJfZGF0YSk7CisrCQlwdWJsaWMgdm9p ZCBhZGRfdGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOworKwkJcHVibGljIGZs b2F0IGdldF9yZWZyZXNoX3JhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBpbmhpYml0ICgpOworKwkJ cHVibGljIHZvaWQgcmVtb3ZlX3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsK KysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKysJCXB1YmxpYyB2b2lkIHNjaGVk dWxlX3VwZGF0ZV9ub3cgKCk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXQgKCk7CisrCQlbSGFz RW1pdHRlcl0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXN0cm95ICgpOworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9nZXN0dXJlX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCisgCXB1YmxpYyBjbGFzcyBHZXN0dXJlQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24gewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRl ckFjdGlvbioiKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBHZXN0 dXJlQWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2 b2lkIGNhbmNlbCAoKTsKK0BAIC02MjExLDYgKzU3NzcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKHVpbnQg cG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuRXZlbnQgZ2V0X2xhc3RfZXZlbnQgKHVpbnQgcG9pbnQpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29yZHMgKHVpbnQg cG9pbnQsIG91dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZsb2F0IG1vdGlvbl95KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X21vdGlvbl9kZWx0YSAo dWludCBwb2ludCwgb3V0IGZsb2F0IGRlbHRhX3gsIG91dCBmbG9hdCBkZWx0YV95KTsKK0BAIC02 MjE4LDcgKzU3ODUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBnZXRf bl9jdXJyZW50X3BvaW50cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgaW50IGdldF9uX3RvdWNoX3BvaW50cyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9wcmVzc19jb29yZHMgKHVpbnQgcG9pbnQsIG91dCBm bG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfcmVsZWFzZV9jb29yZHMgKHVpbnQgcG9pbnQsIG91 dCBmbG9hdCByZWxlYXNlX3gsIG91dCBmbG9hdCByZWxlYXNlX3kpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBn ZXRfc2VxdWVuY2UgKHVpbnQgcG9pbnQpOworQEAgLTYyNDYsOSArNTgxNSwxMyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgdGhyZXNob2xkX3RyaWdnZXJfZGlzdGFuY2Vf eSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJ cHVibGljIENsdXR0ZXIuR2VzdHVyZVRyaWdnZXJFZGdlIHRocmVzaG9sZF90cmlnZ2VyX2VkZ2Ug eyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9iZWdpbiAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBnZXN0dXJlX2NhbmNlbCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBnZXN0dXJl X2VuZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBnZXN0dXJlX3Byb2dyZXNzIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ3JpZF9sYXlvdXRfZ2V0X3R5cGUgKCki KV0KK0BAIC02Mjc4LDE5ICs1ODUxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGJvb2wgcm93X2hvbW9nZW5lb3VzIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1aW50IHJvd19z cGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ3JvdXBfZ2V0X3R5cGUgKCki KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgR3JvdXAgOiBD bHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIEdyb3VwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fY2hp bGRyZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B Y3RvciBnZXRfbnRoX2NoaWxkIChpbnQgaW5kZXhfKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1v dmVfYWxsICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9pbWFnZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgSW1hZ2UgOiBHTGliLk9iamVj dCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC02MzA2LDYgKzU4NjYsOCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCXB1YmxpYyBjbGFzcyBJbnB1dERldmljZSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBJbnB1 dERldmljZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVl bmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2Fzc29jaWF0ZWRfZGV2aWNlICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMTMsNyArNTg3NSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9heGlz X3ZhbHVlIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZG91YmxlW10gYXhlcywgQ2x1 dHRlci5JbnB1dEF4aXMgYXhpcywgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNl cXVlbmNlPyBzZXF1ZW5jZSwgQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgYm9vbCBn ZXRfY29vcmRzIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBHcmFwaGVuZS5Qb2lu dCBwb2ludCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgaW50IGdl dF9kZXZpY2VfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjMyNSwx MiArNTg4Nyw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0 RGV2aWNlVHlwZSBnZXRfZGV2aWNlX3R5cGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl9nZXRfaW5wdXRfZGV2aWNlX2Zvcl9pZCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9mb3JfaWQgKGlu dCBpZF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X2dyYWJiZWRfYWN0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9n cm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworKwkJcHVibGljIHZpcnR1YWwgaW50IGdldF9ncm91 cF9uX21vZGVzIChpbnQgZ3JvdXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIGJvb2wgZ2V0X2hhc19jdXJzb3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCitAQCAtNjM0NiwyMyArNTkwNSwyMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgaW50IGdldF9uX21vZGVfZ3JvdXBzICgpOworIAkJcHVibGljIGludCBnZXRfbl9yaW5ncyAo KTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fc3RyaXBzICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3Bo eXNpY2FsX3NpemUgKGRvdWJsZSB3aWR0aCwgZG91YmxlIGhlaWdodCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9wb2lu dGVyX2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb2R1Y3RfaWQg KCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X3NlYXQgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5J bnB1dERldmljZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF92ZW5kb3JfaWQgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZ3JhYiAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCQlwdWJsaWMgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2 aWNlIG90aGVyX2RldmljZSk7CistCQlwdWJsaWMgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24g KHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfZ3Jv dXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworKwkJcHVibGljIHZpcnR1 YWwgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBrZXljb2RlX3Rv X2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7CisrCQlw dWJsaWMgdmlydHVhbCBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29k ZSwgdWludCBldmRldl9rZXljb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNlX2dldF9ncmFiYmVkX2FjdG9y IChDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KK0BAIC02Mzc4LDEyICs1OTM1LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJ CXB1YmxpYyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29s IHVwZGF0ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1 cGRhdGVfZnJvbV90b29sIChDbHV0dGVyLklucHV0RGV2aWNlVG9vbCB0b29sKTsKKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENs dXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENs dXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUgZGV2aWNlX21vZGUgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7IGdldDsgY29uc3RydWN0OyB9 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtNjQwNiw2ICs1OTYyLDcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5n IHByb2R1Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBz ZWF0IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisg CQlwdWJsaWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdldDsgY29uc3RydWN0OyB9CisgCX0KK0BAIC02 NDMwLDcgKzU5ODcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBjb21taXRfdGV4dCAoc3RyaW5nIHRleHQpOworIAkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9m ZnNldCwgdWludCBsZW4pOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBkZWxldGVfc3Vycm91bmRp bmcgKGludCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBib29sIGZpbHRlcl9rZXlfZXZl bnQgKENsdXR0ZXIuS2V5RXZlbnQga2V5KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIGZvY3VzX2luIChDbHV0dGVyLklucHV0TWV0aG9kIGlucHV0X21ldGhvZCk7CitA QCAtNjQ0Myw3ICs2MDAwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg c2V0X2Nhbl9zaG93X3ByZWVkaXQgKGJvb2wgY2FuX3Nob3dfcHJlZWRpdCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfY29udGVudF9oaW50cyAoQ2x1dHRlci5JbnB1dENvbnRlbnRIaW50RmxhZ3MgaGlu dCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9wdXJwb3NlIChDbHV0dGVyLklucHV0Q29u dGVudFB1cnBvc2UgcHVycG9zZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9u IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9u IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0 YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBzZXRfcHJlZWRpdF90ZXh0IChzdHJpbmcgcHJlZWRpdCwgdWlu dCBjdXJzb3IpOworQEAgLTY0NjIsNyArNjAxOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlc2V0ICgpOworIAkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRl ci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9u IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0 YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRf cHJlZWRpdF90ZXh0IChzdHJpbmc/IHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKKyAJCVtOb1dyYXBw ZXJdCitAQCAtNjQ3OSw5ICs2MDM2LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9zZSBjb250ZW50X3B1cnBvc2UgeyBnZXQ7IHNldDsg fQorIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29tbWl0IChzdHJpbmcg dGV4dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKENs dXR0ZXIuUmVjdCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlv bl9jaGFuZ2VkIChHcmFwaGVuZS5SZWN0IG9iamVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfc3Vycm91bmRpbmcgKHVpbnQgb2Zmc2V0LCB1aW50IGxl bik7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nIChpbnQgb2Zmc2V0 LCB1aW50IGxlbik7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5wdXRfcGFuZWxfc3RhdGUgKENs dXR0ZXIuSW5wdXRQYW5lbFN0YXRlIG9iamVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCByZXF1ZXN0X3N1cnJvdW5kaW5nICgpOworQEAgLTY1NTUsMjggKzYxMTIs MjggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEtleW1hcCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFs IGJvb2wgZ2V0X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIFBhbmdvLkRp cmVjdGlvbiBnZXRfZGlyZWN0aW9uICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfbnVt X2xvY2tfc3RhdGUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhdGVfY2hhbmdlZCAoKTsK KyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xh c3MgTGF5ZXJOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1 YmxpYyBMYXllck5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24sIENhaXJvLlJlY3RhbmdsZSB2 aWV3cG9ydCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgdWludDggb3BhY2l0eSk7CisrCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2xheW91dF9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIExheW91dE1hbmFnZXIgOiBH TGliLkluaXRpYWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIExheW91dE1hbmFnZXIgKCk7CistCQlwdWJsaWMgdmly dHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIu QWN0b3JCb3ggYWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5BbHBoYSBi ZWdpbl9hbmltYXRpb24gKHVpbnQgZHVyYXRpb24sIHVsb25nIG1vZGUpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVy LkFjdG9yQm94IGFsbG9jYXRpb24pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVy LkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJs aWMgdm9pZCBjaGlsZF9nZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwg Q2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFs dWUpOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWlu ZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9zZXRf cHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rv ciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW05vV3JhcHBl cl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGNyZWF0ZV9j aGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5kX2FuaW1h dGlvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJv cGVydHkgKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVh bCBkb3VibGUgZ2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hpbGRf bWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsK KyAJCVtOb1dyYXBwZXJdCitAQCAtNjYzMiwxMiArNjE4OSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuRWZmZWN0ICgpOworIAkJcHVibGljIHZpcnR1YWwg Q29nbC5IYW5kbGUgY3JlYXRlX3RleHR1cmUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdldF90YXJnZXRf cmVjdCAob3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIGJvb2wgZ2V0 X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9 ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF90YXJnZXRfc2l6ZSAob3V0IGZsb2F0IHdpZHRo LCBvdXQgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgcGFpbnRfdGFyZ2V0ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90 YXJnZXQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9wYWdlX3R1cm5fZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KK0BAIC02NjU0LDYgKzYyMTEsMTcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGRvdWJsZSBwZXJpb2QgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGZsb2F0IHJhZGl1 cyB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9yZWYi LCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1 bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0KKysJ cHVibGljIGNsYXNzIFBhaW50Q29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOwor KwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24gZ2V0X3JlZHJhd19jbGlwICgpOworKwkJcHVi bGljIHZvaWQgcG9wX2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcHVzaF9mcmFtZWJ1 ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlBhaW50Q29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7Cisr CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BhaW50X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBhaW50Tm9kZSB7CitAQCAt NjY2Myw3ICs2MjMxLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWRk X211bHRpdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgdGV4 dF9jb29yZHMsIHVpbnQgdGV4dF9jb29yZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lkIGFkZF9yZWN0 YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBhZGRfdGV4dHVy ZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBmbG9hdCB5XzEs IGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50ICgpOworKwkJcHVi bGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJs aWMgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Tm9kZSBAcmVmICgpOworIAkJcHVibGljIHZvaWQg c2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworQEAgLTY2 ODEsNyArNjI1MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGdldF9vcmlnaW4gKCk7Cisr CQlwdWJsaWMgdm9pZCBnZXRfb3JpZ2luIChvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZl cnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0 X3dpZHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY2OTEsNyArNjI2 MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9oZWlnaHQgKGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0dGVyLlZlcnRl eCBvcmlnaW4pOworKwkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoR3JhcGhlbmUuUG9pbnQzRCBv cmlnaW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3dpZHRoIChmbG9hdCB3aWR0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAt Njc3OCw4OCArNjM0NywyOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRl ci5QYXRoIHBhdGggeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIG5vZGVfcmVh Y2hlZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgdWludCBpbmRleCk7CisgCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNs dXR0ZXJfcGlja19jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2NvbnRleHRf Z2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF91bnJl ZiIpXQorKwlbQ29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBpY2tDb250ZXh0IHsKKysJCXB1Ymxp YyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBpY2tDb250ZXh0 IEByZWYgKCk7CisrCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlw ZWxpbmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAlwdWJsaWMgY2xhc3MgUGlwZWxpbmVOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFBpcGVs aW5lTm9kZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50X2dldF90eXBlICgpIild CistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xh c3MgUG9pbnQgeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1 YmxpYyBzdGF0aWMgQ2x1dHRlci5Qb2ludCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlBv aW50IGNvcHkgKCk7CistCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIuUG9pbnQgYiwg b3V0IGZsb2F0IHhfZGlzdGFuY2UsIG91dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0JCXB1YmxpYyBi b29sIGVxdWFscyAoQ2x1dHRlci5Qb2ludCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOwor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgemVybyAoKTsKKy0JfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfcHJvcGVydHlfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0aW9uIDogQ2x1 dHRlci5UcmFuc2l0aW9uLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclRyYW5zaXRpb24qIildCisg CQlwdWJsaWMgUHJvcGVydHlUcmFuc2l0aW9uIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworKwkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclRy YW5zaXRpb24qIildCisrCQlwdWJsaWMgUHJvcGVydHlUcmFuc2l0aW9uLmZvcl9hY3RvciAoQ2x1 dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wcm9w ZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIHN0cmluZyBwcm9w ZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RfZ2V0 X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CXB1YmxpYyBjbGFzcyBSZWN0IHsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuUG9pbnQgb3JpZ2lu OworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5TaXplIHNpemU7CistCQlwdWJsaWMgc3RhdGljIENs dXR0ZXIuUmVjdCBhbGxvYyAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsYW1wX3RvX3BpeGVsICgpOwor LQkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJ cHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIENs dXR0ZXIuUmVjdCBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlJlY3Qg Yik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2NlbnRlciAo Q2x1dHRlci5Qb2ludCBjZW50ZXIpOworLQkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7Cist CQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIGZsb2F0IGdldF94ICgpOwor LQkJcHVibGljIGZsb2F0IGdldF95ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5SZWN0 IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQkJ cHVibGljIHZvaWQgaW5zZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1YmxpYyBib29s IGludGVyc2VjdGlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdD8gcmVzKTsKKy0JCXB1 YmxpYyBDbHV0dGVyLlJlY3Qgbm9ybWFsaXplICgpOworLQkJcHVibGljIHZvaWQgb2Zmc2V0IChm bG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc194LCBm bG9hdCBzX3kpOworLQkJcHVibGljIHZvaWQgdW5pb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVy LlJlY3QgcmVzKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgemVybyAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3RhbmdsZSA6IENsdXR0ZXIuQWN0 b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgUmVjdGFu Z2xlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9i b3JkZXJfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Jv cmRlcl93aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvcmRlcl9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xv cik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvcmRlcl93aWR0aCAo dWludCB3aWR0aCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9y IGNvbG9yKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgUmVjdGFuZ2xlLndpdGhfY29sb3Ig KENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgYm9yZGVyX2Nv bG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IGJvcmRlcl93aWR0aCB7IGdldDsgc2V0 OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGhhc19ib3JkZXIgeyBnZXQ7IHNldDsgfQor KwkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlfbmFtZSk7 CisrCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9yb290X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFJvb3ROb2Rl IDogQ2x1dHRlci5QYWludE5vZGUgeworQEAgLTY4ODAsMTUgKzYzOTAsMTEgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIFNjcmlwdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KKyAJCXB1YmxpYyB2b2lkIGFkZF9zZWFyY2hfcGF0aHMgKFtDQ29kZSAoYXJyYXlfbGVu Z3RoX2NuYW1lID0gIm5fcGF0aHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS4xLCBhcnJheV9sZW5n dGhfdHlwZSA9ICJnc2l6ZSIpXSBzdHJpbmdbXSBwYXRocyk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZvaWQgYWRkX3N0YXRlcyAoc3RyaW5nPyBuYW1lLCBDbHV0dGVyLlN0YXRlIHN0 YXRlKTsKKyAJCXB1YmxpYyB2b2lkIGNvbm5lY3Rfc2lnbmFscyAodm9pZCogdXNlcl9kYXRhKTsK KyAJCXB1YmxpYyB2b2lkIGNvbm5lY3Rfc2lnbmFsc19mdWxsIChDbHV0dGVyLlNjcmlwdENvbm5l Y3RGdW5jIGZ1bmMpOworIAkJcHVibGljIHZvaWQgZW5zdXJlX29iamVjdHMgKCk7CisgCQlwdWJs aWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0IChzdHJpbmcgbmFtZSk7CisgCQlwdWJs aWMgaW50IGdldF9vYmplY3RzICguLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuU3RhdGUgZ2V0X3N0YXRlcyAoc3RyaW5nPyBuYW1lKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RyYW5z bGF0aW9uX2RvbWFpbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIEdMaWIuVHlwZSBnZXRfdHlwZV9m cm9tX25hbWUgKHN0cmluZyB0eXBlX25hbWUpOworQEAgLTY5MTYsOCArNjQyMiw4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1YmxpYyBTY3JvbGxBY3RvciAoKTsKKyAJ CXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgZ2V0X3Njcm9sbF9tb2RlICgpOworLQkJcHVibGlj IHZvaWQgc2Nyb2xsX3RvX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2 b2lkIHNjcm9sbF90b19yZWN0IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBz Y3JvbGxfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIHNj cm9sbF90b19yZWN0IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3Nj cm9sbF9tb2RlIChDbHV0dGVyLlNjcm9sbE1vZGUgbW9kZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5T Y3JvbGxNb2RlIHNjcm9sbF9tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJfQorQEAgLTY5MzksNiArNjQ0 NSw0NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1Ymxp YyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZWF0X2dldF90eXBlICgpIildCisrCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBTZWF0IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlYXQgKCk7CisrCQlbTm9X cmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAo Q2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9p ZCBiZWxsX25vdGlmeSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9u IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworKwkJW05v V3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29weV9ldmVudF9kYXRhIChDbHV0dGVy LkV2ZW50IHNyYywgQ2x1dHRlci5FdmVudCBkZXN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0 ZXIuVmlydHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1 dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOworKwkJcHVibGljIHZvaWQgZW5zdXJlX2ExMXlfc3Rh dGUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBmcmVlX2V2ZW50 X2RhdGEgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5 X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMg dmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2tleWJvYXJkICgpOworKwkJ cHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworKwkJ cHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9wb2ludGVyICgp OworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2lu dGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyBib29sIGdldF90b3VjaF9tb2Rl ICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF91bmZvY3VzICgpOworKwkJcHVibGljIGJvb2wg aXNfdW5mb2N1c19pbmhpYml0ZWQgKCk7CisrCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRl ci5JbnB1dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQgc2V0X2tiZF9h MTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJs aWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRl ckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2lu dGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7 CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgd2FycF9wb2ludGVyIChpbnQgeCwgaW50IHkpOworKwkJW05vQWNjZXNzb3JNZXRob2Rd CisrCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVj dDsgfQorKwkJcHVibGljIGJvb2wgdG91Y2hfbW9kZSB7IGdldDsgfQorKwkJcHVibGljIHNpZ25h bCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVi bGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVj dCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgaXNfdW5mb2N1c19pbmhpYml0ZWRfY2hhbmdlZCAo KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNl dHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg a2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2Nr ZWRfbWFzayk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xpY2tfdHlw ZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChDbHV0dGVy LklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVv dXRfdHlwZSwgdWludCBkZWxheSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGlt ZW91dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVy QTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgYm9vbCBjbGlja2VkKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0 dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NldHRpbmdzX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIFNl dHRpbmdzIDogR0xpYi5PYmplY3QgeworQEAgLTcwMTEsMTggKzY1NTgsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwcm90ZWN0ZWQgU2hhZGVyTWF0cml4ICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2l6 ZV9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JcHVibGljIGNsYXNzIFNpemUgeworLQkJcHVibGljIGZsb2F0IGhlaWdodDsKKy0JCXB1 YmxpYyBmbG9hdCB3aWR0aDsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5TaXplIGFsbG9jICgp OworLQkJcHVibGljIENsdXR0ZXIuU2l6ZSBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxz IChDbHV0dGVyLlNpemUgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5TaXplIGluaXQgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9zbmFwX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorIAlwdWJsaWMgY2xhc3MgU25hcENvbnN0cmFpbnQgOiBDbHV0dGVy LkNvbnN0cmFpbnQgeworQEAgLTcwNDMsMTM1ICs2NTc4LDY2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkdyb3VwLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuQWN0b3IsIEF0 ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKyAJCXB1YmxpYyBTdGFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhcHR1cmUgKGJvb2wgcGFp bnQsIENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBDbHV0dGVyLkNhcHR1cmUgY2FwdHVyZXMsIGlu dCBuX2NhcHR1cmVzKTsKKyAJCXB1YmxpYyB2b2lkIGNhcHR1cmVfaW50byAoYm9vbCBwYWludCwg Q2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIHVpbnQ4IGRhdGEpOworKwkJcHVibGljIHZvaWQgY2xl YXJfc3RhZ2Vfdmlld3MgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfc3RhZ2VfZXZl bnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBib29sIGVtaXRf ZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9jdXJyZW50ICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZW5zdXJlX3JlZHJh dyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGVuc3Vy ZV92aWV3cG9ydCAoKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV91cGRhdGVzICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2FjY2VwdF9mb2N1cyAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAoQ2x1 dHRlci5QaWNrTW9kZSBwaWNrX21vZGUsIGludCB4LCBpbnQgeSk7CisrCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19t b2RlLCBmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBib29sIGdldF9jYXB0dXJlX2ZpbmFs X3NpemUgKENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGZs b2F0IHNjYWxlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X2RlZmF1bHQgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGdldF9mb2cgKCk7Cisg CQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfZnVsbHNjcmVlbiAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tl eV9mb2N1cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lk IGdldF9taW5pbXVtX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X21vdGlvbl9ldmVu dHNfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBi b29sIGdldF9ub19jbGVhcl9oaW50ICgpOworIAkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUg Z2V0X3BlcnNwZWN0aXZlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIENhaXJvLlJlY3RhbmdsZUludCBnZXRfcmVkcmF3X2NsaXBfYm91bmRzICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Rocm90dGxlX21vdGlv bl9ldmVudHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3RpdGxlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor IAkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgYm9vbCBnZXRfdXNlX2ZvZyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyBib29sIGdldF91c2VyX3Jlc2l6YWJsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGhpZGVfY3Vyc29yICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyBib29sIGlzX2RlZmF1bHQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQor LQkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3ICgpOworKwkJcHVibGljIGJvb2wgcGFpbnRfdG9f YnVmZmVyIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgZmxvYXQgc2NhbGUsIHVpbnQ4IGRhdGEs IGludCBzdHJpZGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDbHV0dGVyLlBhaW50RmxhZyBw YWludF9mbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBwYWludF90b19m cmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgQ2Fpcm8uUmVjdGFuZ2xl SW50IHJlY3QsIGZsb2F0IHNjYWxlLCBDbHV0dGVyLlBhaW50RmxhZyBwYWludF9mbGFncyk7Cisg CQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKyAJCXB1YmxpYyB1aW50OFtdIHJlYWRf cGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCA9IC0xLCBpbnQgaGVpZ2h0ID0gLTEpOwor LQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3JlZHJhdyIpXQorLQkJcHVibGljIHZvaWQgcmVk cmF3ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2FjY2VwdF9mb2N1cyAoYm9vbCBhY2NlcHRfZm9jdXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2ZvZyAoQ2x1dHRlci5Gb2cgZm9nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mdWxsc2NyZWVuIChib29sIGZ1bGxzY3JlZW4p OworKwkJcHVibGljIHZvaWQgc2NoZWR1bGVfdXBkYXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRlci5BY3Rvcj8g YWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0 X21pbmltdW1fc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAo Ym9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9ub19jbGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9wZXJzcGVjdGl2ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0bGVfbW90aW9u X2V2ZW50cyAoYm9vbCB0aHJvdHRsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisg CQlwdWJsaWMgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FscGhhIChib29sIHVzZV9hbHBo YSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9mb2cgKGJvb2wg Zm9nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91 c2VyX3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworLQkJcHVibGljIHZvaWQgc2hvd19jdXJz b3IgKCk7CistCQlwdWJsaWMgdm9pZCB0aGF3X3VwZGF0ZXMgKCk7CistCQlwdWJsaWMgdm9pZCB1 cGRhdGVfcmVzb3VyY2Vfc2NhbGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIGJvb2wgYWNjZXB0X2ZvY3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg Q2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVlbl9zZXQgeyBnZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9m b2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgYm9vbCBub19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyBib29sIG9mZnNjcmVlbiB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVj dGl2ZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVj dGl2ZSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHN0 cmluZyB0aXRsZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgYm9vbCB1c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0K Ky0JCXB1YmxpYyBib29sIHVzZV9mb2cgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgdXNlcl9yZXNpemFibGUgeyBnZXQ7IHNldDsgfQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgYWN0aXZhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQorLQkJcHVibGlj IHNpZ25hbCB2b2lkIGFmdGVyX3BhaW50ICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFmdGVy X3BhaW50IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBh ZnRlcl91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIGJlZm9yZV9wYWludCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgYmVmb3JlX3VwZGF0ZSAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkZWFj dGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIGJvb2wgZGVsZXRlX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGZ1 bGxzY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCB1bmZ1bGxzY3JlZW4gKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBwYWludF92aWV3IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3LCBDYWlyby5SZWdpb24g cmVkcmF3X2NsaXApOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9tYW5hZ2VyX2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03MTg1LDggKzY2NTEsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOworIAkJcHVi bGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChDbHV0dGVy LlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLlN0YWdlIGRlZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KK0BAIC03MjA2LDYzICs2NjcwLDMzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB1aW50MzIgdGltZTsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0eXBlOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9zdGF0ZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCistCXB1YmxpYyBjbGFzcyBTdGF0ZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNj cmlwdGFibGUgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2Vfdmlld19nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgY2xhc3MgU3RhZ2VWaWV3IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBTdGF0 ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKHN0 cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5 PiBnZXRfa2V5cyAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3Rh dGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXRlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJpbmc+IGdldF9z dGF0ZXMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5U aW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgcmVtb3ZlX2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRf c3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHN0cmluZz8g c291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRp b24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUg c2V0X2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9u YW1lLCBHTGliLk9iamVjdCBvYmplY3QsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUs IEdMaWIuVmFsdWUgdmFsdWUsIGRvdWJsZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0X2RlbGF5KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIHNl dF9zdGF0ZSAoc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIHdhcnBfdG9fc3RhdGUgKHN0cmluZyB0 YXJnZXRfc3RhdGVfbmFtZSk7CisrCQlwcm90ZWN0ZWQgU3RhZ2VWaWV3ICgpOworKwkJcHVibGlj IHZvaWQgYXNzaWduX25leHRfc2Nhbm91dCAoQ29nbC5TY2Fub3V0IHNjYW5vdXQpOworKwkJcHVi bGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJs aWMgdm9pZCBnZXRfbGF5b3V0IChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCk7CisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIGdldF9vZmZzY3JlZW5fdHJhbnNmb3JtYXRpb25fbWF0cml4IChDb2dsLk1h dHJpeCBtYXRyaXgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfb25z Y3JlZW4gKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3NjYWxlICgpOworKwkJcHVibGljIHZvaWQg aW52YWxpZGF0ZV9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoKTsKKysJCVtOb1dyYXBwZXJdCisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldHVwX29mZnNjcmVlbl9ibGl0X3BpcGVsaW5lIChDb2ds LlBpcGVsaW5lIHBpcGVsaW5lKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHRyYW5zZm9ybV9yZWN0X3RvX29uc2NyZWVuIChDYWlyby5SZWN0YW5nbGVJbnQgc3JjX3Jl Y3QsIGludCBkc3Rfd2lkdGgsIGludCBkc3RfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgZHN0 X3JlY3QpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENhaXJvLlJlY3Rhbmds ZUludCBsYXlvdXQgeyBvd25lZCBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBzdHJpbmcgc3RhdGUgeyBvd25l ZCBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIGNvbXBsZXRlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRlX2tleV9n ZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQlwdWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 bG9uZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBH TGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBk b3VibGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRv dWJsZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90YXJnZXRfc3RhdGVf bmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdmFsdWUgKEdM aWIuVmFsdWUgdmFsdWUpOworKwkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGZsb2F0IHJlZnJlc2hf cmF0ZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlw dWJsaWMgZmxvYXQgc2NhbGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29y TWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU3RhZ2Ugc3RhZ2UgeyBvd25lZCBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9vbCB1c2Vfc2hhZG93 ZmIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcyNzQsNTMgKzY3 MDgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIENsdXR0ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf dGFibGVfbGF5b3V0X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBj bGFzcyBUYWJsZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdl cioiKV0KKy0JCXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRl ci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2Fs aWduKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50 IGdldF9jb2x1bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWlu dCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9leHBhbmQsIG91 dCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRf ZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQgYm9vbCB5X2Zp bGwpOworLQkJcHVibGljIGludCBnZXRfcm93X2NvdW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0 X3Jvd19zcGFjaW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NwYW4gKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIG91dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCXB1Ymxp YyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW4sIGludCByb3cpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5UYWJs ZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2x1bW5fc3BhY2luZyAo dWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFz aW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9leHBh bmQsIGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOwor LQkJcHVibGljIHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJcHVibGlj IHZvaWQgc2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW5fc3BhbiwgaW50 IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2Fu aW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMgdWludCBjb2x1bW5fc3BhY2luZyB7 IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5nX2R1 cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcg ZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgcm93X3NwYWNpbmcgeyBn ZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmltYXRp b25zIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFwX2FjdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgVGFwQWN0 aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzQ4LDcgKzY3MzUsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vyc29yX2NvbG9y ICgpOworIAkJcHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVu b3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0 IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVpbnQgZ2V0X2N1 cnNvcl9zaXplICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxlICgpOworIAkJ cHVibGljIGJvb2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0NjcsNyArNjg1NCw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0ZXIuR2Vv bWV0cnkgZ2VvbWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2 ZW50IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3RleHQgKGludCBz dGFydF9wb3MsIGludCBlbmRfcG9zKTsKK0BAIC03NTA1LDk0ICs2ODkyLDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKyAJCXB1YmxpYyBUZXh0Tm9kZSAoUGFuZ28uTGF5 b3V0PyBsYXlvdXQsIENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4 dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1Ymxp YyBjbGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVy LkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFj dG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBUZXh0dXJlICgpOworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIFRleHR1cmUuZnJvbV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIFRleHR1cmUuZnJv bV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBDbHV0dGVyLlRleHR1cmVFcnJvcjsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgdm9pZCBnZXRfYmFzZV9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhl aWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUg Z2V0X2NvZ2xfbWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHVub3du ZWQgQ29nbC5IYW5kbGUgZ2V0X2NvZ2xfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBnZXRfZmlsdGVyX3F1YWxpdHkgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2tlZXBfYXNwZWN0X3JhdGlvICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2FzeW5jICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2RhdGFfYXN5bmMgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGludCBnZXRfbWF4X3RpbGVfd2FzdGUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3BpY2tfd2l0aF9hbHBoYSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfcmVwZWF0IChvdXQgYm9v bCByZXBlYXRfeCwgb3V0IGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBib29sIGdldF9zeW5jX3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IGJvb2wgc2V0X2FyZWFfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB4LCBpbnQgeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFn cyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2NvZ2xfbWF0ZXJpYWwgKENvZ2wuSGFuZGxlIGNvZ2xfbWF0ZXJpYWwpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX3RleHR1cmUgKENvZ2wuSGFu ZGxlIGNvZ2xfdGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmls dGVyX3F1YWxpdHkgKENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxpdHkpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX2ZpbGUgKHN0cmluZyBmaWxl bmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJv b2wgc2V0X2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50 OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dz dHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5F cnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV95dXZfZGF0 YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJy b3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2tlZXBfYXNwZWN0X3Jh dGlvIChib29sIGtlZXBfYXNwZWN0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfbG9hZF9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfbG9hZF9kYXRhX2FzeW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9waWNrX3dpdGhfYWxwaGEgKGJvb2wg cGlja193aXRoX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf cmVwZWF0IChib29sIHJlcGVhdF94LCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfc3luY19zaXplIChib29sIHN5bmNfc2l6ZSk7CistCQlwdWJs aWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBD b2dsLlRleHR1cmUgY29nbF90ZXh0dXJlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgZGlzYWJsZV9zbGljaW5nIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzdHJpbmcgZmlsZW5hbWUgeyBv d25lZCBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVy X3F1YWxpdHkgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBib29sIGtlZXBfYXNw ZWN0X3JhdGlvIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9v bCBsb2FkX2FzeW5jIHsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wg bG9hZF9kYXRhX2FzeW5jIHsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBwaWNrX3dpdGhfYWxwaGEg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBl YXRfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29s IHJlcGVhdF95IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIHN5bmNfc2l6ZSB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgdGlsZV93YXN0ZSB7 IGdldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IGxvYWRfZmluaXNoZWQgKEdMaWIuRXJyb3IgZXJyb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIHBpeGJ1Zl9jaGFuZ2UgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgc2l6ZV9jaGFuZ2UgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3RleHR1cmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgVGV4dHVyZU5vZGUgOiBDbHV0dGVyLlBpcGVsaW5lTm9k ZSB7CitAQCAtNzYwNCw3ICs2OTAzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMg Y2xhc3MgVGltZWxpbmUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBUaW1lbGluZSAodWludCBtc2Vjcyk7CisrCQlwdWJsaWMg VGltZWxpbmUgKHVpbnQgZHVyYXRpb25fbXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKyAJCXB1YmxpYyB2b2lkIGFkZF9tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSwgZG91Ymxl IHByb2dyZXNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03NjEyLDEyICs2 OTExLDE1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkdmFuY2UgKHVp bnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQg YWR2YW5jZV90b19tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIENsdXR0ZXIuVGltZWxpbmUgY2xvbmUgKCk7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUuZm9yX2FjdG9y IChDbHV0dGVyLkFjdG9yIGFjdG9yLCB1aW50IGR1cmF0aW9uX21zKTsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBUaW1lbGluZS5mb3JfZnJh bWVfY2xvY2sgKENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jaywgdWludCBkdXJhdGlvbl9t cyk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hdXRvX3JldmVyc2Ug KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2N1 YmljX2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18y KTsKKysJCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBv aW50IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X3JlcGVhdCAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KK0BAIC03NjMxLDggKzY5MzMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludDY0IGdldF9kdXJh dGlvbl9oaW50ICgpOworIAkJcHVibGljIHVpbnQgZ2V0X2VsYXBzZWRfdGltZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K KyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Byb2dyZXNzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KK0BAIC03NjUxLDE4ICs2OTUxLDE4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9tYXJrZXIg KHN0cmluZyBtYXJrZXJfbmFtZSk7CisgCQlwdWJsaWMgdm9pZCByZXdpbmQgKCk7CisrCQlwdWJs aWMgdm9pZCBzZXRfYWN0b3IgKENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJvb2wgcmV2 ZXJzZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQg Y18yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5l LlBvaW50IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGlyZWN0aW9uIChDbHV0dGVy LlRpbWVsaW5lRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworKwkJcHVibGljIHZvaWQgc2V0X2ZyYW1l X2Nsb2NrIChDbHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2spOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wcm9ncmVzc19mdW5jIChvd25lZCBD bHV0dGVyLlRpbWVsaW5lUHJvZ3Jlc3NGdW5jPyBmdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCitAQCAtNzY3NCw2ICs2OTc0LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHZvaWQgc2tpcCAodWludCBtc2Vjcyk7CisgCQlwdWJsaWMgdm9pZCBzdGFydCAoKTsK KyAJCXB1YmxpYyB2b2lkIHN0b3AgKCk7CisrCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBhY3RvciB7 IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIGJvb2wgYXV0b19yZXZlcnNlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KK0BAIC03NjgyLDggKzY5ODMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZURpcmVjdGlvbiBkaXJlY3Rpb24geyBnZXQ7IHNldDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVpbnQgZHVyYXRpb24g eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7IHNldDsgfQorKwkJ W05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Ns b2NrIHsgb3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQW5pbWF0aW9uTW9kZSBwcm9ncmVzc19tb2RlIHsg Z2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzY5NywxMiAr Njk5OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzdG9wcGVkIChib29sIGlzX2Zpbmlz aGVkKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgVGltZW91dFBv b2wgKGludCBwcmlvcml0eSk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc3NTMsNiArNzA0OCwxMSBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl90cmFuc2Zvcm1fbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xh c3MgVHJhbnNmb3JtTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisr CQlwdWJsaWMgVHJhbnNmb3JtTm9kZSAoQ29nbC5NYXRyaXggcHJvamVjdGlvbik7CisrCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFRyYW5zaXRpb24gOiBDbHV0dGVyLlRp bWVsaW5lLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTc3OTIsNyArNzA5Miw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBWaXJ0dWFsSW5wdXREZXZpY2UgKCk7CisgCQlwdWJsaWMgaW50IGdl dF9kZXZpY2VfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdl ciBnZXRfbWFuYWdlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Fic29sdXRl X21vdGlvbiAodWludDY0IHRpbWVfdXMsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMg dmlydHVhbCB2b2lkIG5vdGlmeV9idXR0b24gKHVpbnQ2NCB0aW1lX3VzLCB1aW50MzIgYnV0dG9u LCBDbHV0dGVyLkJ1dHRvblN0YXRlIGJ1dHRvbl9zdGF0ZSk7CisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIG5vdGlmeV9kaXNjcmV0ZV9zY3JvbGwgKHVpbnQ2NCB0aW1lX3VzLCBDbHV0dGVyLlNjcm9s bERpcmVjdGlvbiBkaXJlY3Rpb24sIENsdXR0ZXIuU2Nyb2xsU291cmNlIHNjcm9sbF9zb3VyY2Up OworQEAgLTc4MDMsMjggKzcxMDIsMjcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfZG93biAodWludDY0IHRpbWVfdXMsIGludCBzbG90 LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91 Y2hfbW90aW9uICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7 CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF91cCAodWludDY0IHRpbWVfdXMs IGludCBzbG90KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuRGV2 aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlw dWJsaWMgQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUgeyBnZXQ7IGNvbnN0cnVj dDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5TZWF0IHNlYXQg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl96b29tX2FjdGlvbl9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJsaWMgY2xh c3MgWm9vbUFjdGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorIAkJ cHVibGljIFpvb21BY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKENs dXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2ZvY2Fs X3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9w b2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9y bWVkX2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlwdWJsaWMgQ2x1dHRl ci5ab29tQXhpcyBnZXRfem9vbV9heGlzICgpOworIAkJcHVibGljIHZvaWQgc2V0X3pvb21fYXhp cyAoQ2x1dHRlci5ab29tQXhpcyBheGlzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIHpv b21fYXhpcyB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29t IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUg ZmFjdG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIEdyYXBoZW5lLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFjdG9yKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2NuYW1lID0gIkNsdXR0ZXJBbmltYXRhYmxlSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2FuaW1hdGFibGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBBbmltYXRhYmxl IDogR0xpYi5PYmplY3QgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGFic3RyYWN0IGJv b2wgYW5pbWF0ZV9wcm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9uLCBzdHJpbmcg cHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFs X3ZhbHVlLCBkb3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xpYi5QYXJhbVNw ZWMgZmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworKwkJcHVibGljIGFic3Ry YWN0IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfaW5pdGlhbF9zdGF0ZSAo c3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorQEAgLTc4MzUsMTIgKzcxMzMsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9jb250YWluZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2JqZWN0IHsK Ky0JCXB1YmxpYyB2b2lkIGFkZCAocGFyYW1zIENsdXR0ZXIuQWN0b3JbXSBhY3RvcnMpOworIAkJ W0NDb2RlICh2ZnVuY19uYW1lID0gImFkZCIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIGFkZF9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgYWRkX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJz dF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzg2MCwxOCArNzE1NSwxMCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3lfY2hpbGRfbWV0 YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAoc3RyaW5n IGNoaWxkX25hbWUpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFz c19maW5kX2NoaWxkX3Byb3BlcnR5IildCistCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBh cmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENsdXR0ZXIu Q2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgZm9yZWFjaF93aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVk IENsdXR0ZXIuQ2hpbGRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rv cj4gZ2V0X2NoaWxkcmVuICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5l cl9jbGFzc19saXN0X2NoaWxkX3Byb3BlcnRpZXMiKV0KKy0JCXB1YmxpYyBjbGFzcyB1bm93bmVk IEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOworIAkJW0NDb2RlICh2 ZnVuY19uYW1lID0gImxvd2VyIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBsb3dlcl9jaGlsZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8g c2libGluZyA9IG51bGwpOworQEAgLTc4ODMsOCArNzE3MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJyZW1vdmUiKV0KKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40Iild CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV92YWxpc3QgKENs dXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjYiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNvcnRfZGVwdGhfb3JkZXIgKCk7CisgCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3Rvcl9hZGRlZCAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CitAQCAtNzkwMSw3ICs3MTg2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZSAoKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGlu dmFsaWRhdGVfc2l6ZSAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBu b2RlKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUsIENsdXR0ZXIuUGFpbnRDb250ZXh0IHBh aW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGF0dGFjaGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzkxNSw0NyArNzIwMCwxNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3VzdG9tX3Byb3BlcnR5 IChDbHV0dGVyLlNjcmlwdCBzY3JpcHQsIHN0cmluZyBuYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsK KyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9pZCAoc3RyaW5nIGlkXyk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBp bnRlcmZhY2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0 YWdlX3JlY3RhbmdsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQg Z2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dyYXBw ZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgaGFzX3JlZHJh d19jbGlwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRl ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGlnbm9yaW5nX3Jl ZHJhd19jbGlwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBy ZWFsaXplICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlc2l6 ZSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2libGUpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9mdWxsc2NyZWVuIChib29s IGlzX2Z1bGxzY3JlZW4pOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lk IHNldF90aXRsZSAoc3RyaW5nIHRpdGxlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgaXNfcmVzaXphYmxlKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93IChib29sIGRvX3JhaXNlKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxpemUgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0 b3JfYm94X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworIAkJcHVi bGljIGZsb2F0IHgxOworIAkJcHVibGljIGZsb2F0IHkxOworIAkJcHVibGljIGZsb2F0IHgyOwor IAkJcHVibGljIGZsb2F0IHkyOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1 YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWxsb2MgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKysJCXB1Ymxp YyBzdGF0aWMgdm9pZCBjbGFtcF90b19waXhlbCAocmVmIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChm bG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03OTY0 LDggKzcyMTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAo Q2x1dHRlci5BY3RvckJveCBib3hfYik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9y X2JveF9mcm9tX3ZlcnRpY2VzIildCistCQlwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAo Q2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CitAQCAtNzk4Niw2ICs3MjM4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZv aWQgaW5pdF9yZWN0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9y Qm94IGludGVycG9sYXRlIChDbHV0dGVyLkFjdG9yQm94IGZpbmFsLCBkb3VibGUgcHJvZ3Jlc3Mp OworKwkJcHVibGljIGJvb2wgaXNfaW5pdGlhbGl6ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc2NhbGUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTgwMTEsNyArNzI2NCw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJsaWMgQ2Fp cm8uUmVjdGFuZ2xlSW50IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9jb2xvcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IENv bG9yIHsKKyAJCXB1YmxpYyB1aW50OCByZWQ7CisgCQlwdWJsaWMgdWludDggZ3JlZW47CitAQCAt ODAyNywxMiArNzI4MCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBl cXVhbCAoQ2x1dHRlci5Db2xvciB2Mik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisg CQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9y X2Zyb21faGxzIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9obHMgKGZsb2F0IGh1ZSwgZmxvYXQg bHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl9jb2xvcl9mcm9tX3BpeGVsIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9waXhlbCAodWludDMy IHBpeGVsKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIp XQorLQkJcHVibGljIENvbG9yLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKysJCXB1YmxpYyBz dGF0aWMgdm9pZCBmcm9tX2hscyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIGZsb2F0IGh1ZSwg ZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9p ZCBmcm9tX3BpeGVsIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgdWludDMyIHBpeGVsKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgYm9vbCBmcm9tX3N0 cmluZyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBzdHIpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQ29sb3I/ IGdldF9zdGF0aWMgKENsdXR0ZXIuU3RhdGljQ29sb3IgY29sb3IpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVpbnQgaGFzaCAoKTsKK0BAIC04MDQxLDggKzcyOTMs NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgQ2x1dHRlci5Db2xvciBpbnRlcnBvbGF0ZSAoQ2x1dHRlci5Db2xvciBmaW5hbCwg ZG91YmxlIHByb2dyZXNzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGxpZ2h0ZW4gKCk7Cist CQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0JCXB1Ymxp YyBib29sIHBhcnNlX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBzaGFkZSAoZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBzdWJ0cmFj dCAoQ2x1dHRlci5Db2xvciBiKTsKKyAJCXB1YmxpYyB2b2lkIHRvX2hscyAob3V0IGZsb2F0IGh1 ZSwgb3V0IGZsb2F0IGx1bWluYW5jZSwgb3V0IGZsb2F0IHNhdHVyYXRpb24pOworQEAgLTgwNTAs MjMgKzczMDAsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuMiIpXQorIAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2ZvZ19nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0IEZv ZyB7CistCQlwdWJsaWMgZmxvYXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0IHpfZmFyOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9nZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0 IEdlb21ldHJ5IHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1Ymxp YyB1aW50IHdpZHRoOworLQkJcHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRyeSBn ZW9tZXRyeTEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENsdXR0 ZXIuR2VvbWV0cnkgdW5pb24gKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IEZyYW1lTGlzdGVuZXJJZmFjZSB7CisrCQlwdWJsaWMg d2VhayBnbG9iYWw6OmJlZm9yZV9mcmFtZSBiZWZvcmVfZnJhbWU7CisrCQlwdWJsaWMgd2VhayBn bG9iYWw6OmZyYW1lIGZyYW1lOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0 IEtiZEExMXlTZXR0aW5ncyB7CitAQCAtODA3OCw3ICs3MzE1LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGludCBtb3VzZWtleXNfbWF4X3NwZWVkOworIAkJcHVibGljIGludCBt b3VzZWtleXNfYWNjZWxfdGltZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RydWN0IEtub3QgeworIAkJcHVibGljIGludCB4Owor QEAgLTgwODcsOCArNzMyNCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9v bCBlcXVhbCAoQ2x1dHRlci5Lbm90IGtub3RfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXggOiBDb2dsLk1h dHJpeCB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHN0YXRpYyBD bHV0dGVyLk1hdHJpeD8gYWxsb2MgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor KwkJcHVibGljIHZvaWQgZnJlZSAoKTsKKysJCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGdldF90 eXBlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuTWF0cml4PyBpbml0X2Zyb21fYXJyYXkgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSBmbG9hdCB2YWx1ZXNbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJpeCAoQ2x1 dHRlci5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfaWRlbnRpdHkgKCk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGFkQnV0dG9uRXZlbnQgeworQEAgLTgxMzAsNyArNzM3 OCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgdmFsdWU7CisgCQlw dWJsaWMgdWludDMyIG1vZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgUGF0aE5vZGUgeworIAkJcHVi bGljIENsdXR0ZXIuUGF0aE5vZGVUeXBlIHR5cGU7CitAQCAtODE0MCw3ICs3Mzg4LDcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuUGF0aE5vZGUg bm9kZV9iKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNw ZWN0aXZlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5j dGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVyc3BlY3RpdmVfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RydWN0 IFBlcnNwZWN0aXZlIHsKKyAJCXB1YmxpYyBmbG9hdCBmb3Z5OworQEAgLTgxNDksNiArNzM5Nywx OSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgel9mYXI7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgUG9pbnRlckExMXlTZXR0aW5ncyB7CisrCQlw dWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUZsYWdzIGNvbnRyb2xzOworKwkJcHVibGljIENsdXR0 ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBkd2VsbF9jbGlja190eXBlOworKwkJcHVibGlj IENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbE1vZGUgZHdlbGxfbW9kZTsKKysJCXB1YmxpYyBDbHV0 dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9zaW5nbGU7CisrCQlw dWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfZG91 YmxlOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9n ZXN0dXJlX2RyYWc7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9u IGR3ZWxsX2dlc3R1cmVfc2Vjb25kYXJ5OworKwkJcHVibGljIGludCBzZWNvbmRhcnlfY2xpY2tf ZGVsYXk7CisrCQlwdWJsaWMgaW50IGR3ZWxsX2RlbGF5OworKwkJcHVibGljIGludCBkd2VsbF90 aHJlc2hvbGQ7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI4 IildCisgCXB1YmxpYyBzdHJ1Y3QgUHJveGltaXR5RXZlbnQgeworIAkJcHVibGljIENsdXR0ZXIu RXZlbnRUeXBlIHR5cGU7CitAQCAtODE1OCw0NyArNzQxOSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFr IENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRT IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNv cHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2Zy ZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfdW5pdHNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFVuaXRzIHsKKyAJCXB1YmxpYyBDbHV0 dGVyLlVuaXRzPyBjb3B5ICgpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2NtIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9j bSAoZmxvYXQgY20pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW0i KV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX2VtIChmbG9hdCBlbSk7CistCQlbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQorLQkJcHVibGljIFVuaXRzLmZy b21fZW1fZm9yX2ZvbnQgKHN0cmluZyBmb250X25hbWUsIGZsb2F0IGVtKTsKKy0JCVtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX21tIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9t bSAoZmxvYXQgbW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcGl4 ZWxzIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9waXhlbHMgKGludCBweCk7CistCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLQkJcHVibGljIFVuaXRzLmZyb21f cHQgKGZsb2F0IHB0KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3N0 cmluZyIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKyAJCXB1 YmxpYyBDbHV0dGVyLlVuaXRUeXBlIGdldF91bml0X3R5cGUgKCk7CisgCQlwdWJsaWMgZmxvYXQg Z2V0X3VuaXRfdmFsdWUgKCk7CisgCQlwdWJsaWMgZmxvYXQgdG9fcGl4ZWxzICgpOworIAkJcHVi bGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3ZlcnRleF9nZXRfdHlw ZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdHJ1Y3QgVmVy dGV4IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMg ZmxvYXQgejsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuVmVydGV4PyBhbGxvYyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleD8gY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlZlcnRleCB2ZXJ0ZXhfYik7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBmcmVlICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu VmVydGV4PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfQUNUT1JfQUxJR05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2FsaWduX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBlbnVtIEFjdG9y QWxpZ24geworQEAgLTgyMjMsMTQgKzc0NTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZ X0FYSVMsCisgCQlCT1RICisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9h bGxvY2F0aW9uX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBBbGxvY2F0aW9uRmxhZ3MgeworLQkJQUxMT0NB VElPTl9OT05FLAorLQkJQUJTT0xVVEVfT1JJR0lOX0NIQU5HRUQsCistCQlERUxFR0FURV9MQVlP VVQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1hdGlvbl9tb2Rl X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVu dW0gQW5pbWF0aW9uTW9kZSB7CitAQCAtODMzNiw2ICs3NTU4LDI3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlw dWJsaWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJVEVYVFVSRSwK KysJCUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisrCQlTQ0hFRFVM RVIsCisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJQU5JTUFUSU9O LAorKwkJTEFZT1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQSU5HLAorKwkJ T09CX1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lkID0gImNsdXR0 ZXJfZHJhZ19heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJcHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDMsMTEgKzc1ODYsMjQgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJWF9BWElTLAorIAkJWV9BWElTCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VG RkVDVF9QQUlOVF9BQ1RPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2ZsYWdz X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJf ZHJhd19kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0g RHJhd0RlYnVnRmxhZyB7CisrCQlESVNBQkxFX1NXQVBfRVZFTlRTLAorKwkJRElTQUJMRV9DTElQ UEVEX1JFRFJBV1MsCisrCQlSRURSQVdTLAorKwkJUEFJTlRfVk9MVU1FUywKKysJCURJU0FCTEVf Q1VMTElORywKKysJCURJU0FCTEVfT0ZGU0NSRUVOX1JFRElSRUNULAorKwkJQ09OVElOVU9VU19S RURSQVcsCisrCQlQQUlOVF9ERUZPUk1fVElMRVMsCisrCQlQQUlOVF9EQU1BR0VfUkVHSU9OCisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0 X3BhaW50X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRWZm ZWN0UGFpbnRGbGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNMVVRURVJfRUZGRUNUX1BBSU5U X0FDVE9SX0RJUlRZIildCistCQlBQ1RPUl9ESVJUWQorKwkJQUNUT1JfRElSVFksCisrCQlCWVBB U1NfRUZGRUNUCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VWRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9l dmVudF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCitAQCAtODM5MiwyMSArNzY0OCwx MiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorIAlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9OUE9ULAor LQkJU1dBUF9USFJPVFRMRSwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVM UywKKyAJCVNUQUdFX1NUQVRJQywKKy0JCVNUQUdFX1VTRVJfUkVTSVpFLAorIAkJU1RBR0VfQ1VS U09SLAorIAkJU0hBREVSU19HTFNMLAorIAkJT0ZGU0NSRUVOLAorIAkJU1RBR0VfTVVMVElQTEUs CistCQlTV0FQX0VWRU5UUzsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2F2 YWlsYWJsZSIpXQorLQkJcHVibGljIGJvb2wgaXNfYXZhaWxhYmxlICgpOworLQkJW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfZ2V0X2FsbCIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0 dGVyLkZlYXR1cmVGbGFncyBAZ2V0ICgpOworKwkJU1dBUF9FVkVOVFMKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfRkxPV18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZmxvd19vcmllbnRhdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtODQxNCwxMiArNzY2MSwxMCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfRk9OVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9udF9mbGFnc19nZXRfdHlw ZSAoKSIpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjIyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEZvbnRG bGFncyB7CistCQlNSVBNQVBQSU5HLAorLQkJSElOVElORworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRlJBTUVfUkVT VUxUXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mcmFtZV9yZXN1bHRfZ2V0X3R5cGUgKCkiKV0KKysJ cHVibGljIGVudW0gRnJhbWVSZXN1bHQgeworKwkJUEVORElOR19QUkVTRU5URUQsCisrCQlJRExF CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX0dFU1RVUkVfVFJJR0dFUl9FREdFXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9nZXN0dXJlX3RyaWdnZXJfZWRnZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorQEAgLTg2MzQsNyArNzg3OSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZW51bSBPZmZzY3JlZW5SZWRp cmVjdCB7CisgCQlBVVRPTUFUSUNfRk9SX09QQUNJVFksCistCQlBTFdBWVMKKysJCUFMV0FZUywK KysJCU9OX0lETEUKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfT1JJRU5UQVRJT05fIiwgdHlwZV9pZCA9ICJj bHV0dGVyX29yaWVudGF0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCitAQCAtODY0Miw2ICs3ODg4LDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUhP UklaT05UQUwsCisgCQlWRVJUSUNBTAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QQUlOVF9GTEFHXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9wYWludF9mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJ cHVibGljIGVudW0gUGFpbnRGbGFnIHsKKysJCU5PTkUsCisrCQlOT19DVVJTT1JTLAorKwkJRk9S Q0VfQ1VSU09SUworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QQU5fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bh bl9heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1 YmxpYyBlbnVtIFBhbkF4aXMgeworQEAgLTg2NjEsNiArNzkxNCwxMSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlSRUxfTElORV9UTywKKyAJCVJFTF9DVVJWRV9UTworIAl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRF Ul9ERUJVR19OT1BfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tfZGVidWdfZmxhZ19nZXRfdHlw ZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBpY2tEZWJ1Z0ZsYWcgeworKwkJUElD S0lORworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QSUNLXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX21v ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMg ZW51bSBQaWNrTW9kZSB7CitAQCAtODY2OCwxMyArNzkyNiw0NiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlSRUFDVElWRSwKKyAJCUFMTAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX0NM SUNLX1RZUEVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190 eXBlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxDbGlja1R5 cGUgeworKwkJTk9ORSwKKysJCVBSSU1BUlksCisrCQlTRUNPTkRBUlksCisrCQlNSURETEUsCisr CQlET1VCTEUsCisrCQlEUkFHCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfRFdFTExfRElSRUNUSU9O XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfZGlyZWN0aW9uX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24geworKwkJ Tk9ORSwKKysJCUxFRlQsCisrCQlSSUdIVCwKKysJCVVQLAorKwkJRE9XTgorKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9BMTFZX0RXRUxMX01PREVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9k d2VsbF9tb2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxN b2RlIHsKKysJCVdJTkRPVywKKysJCUdFU1RVUkUKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV8iLCB0 eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2ZsYWdzX2dldF90eXBlICgpIildCisrCVtG bGFnc10KKysJcHVibGljIGVudW0gUG9pbnRlckExMXlGbGFncyB7CisrCQlTRUNPTkRBUllfQ0xJ Q0tfRU5BQkxFRCwKKysJCURXRUxMX0VOQUJMRUQKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9USU1F T1VUX1RZUEVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV90aW1lb3V0X3R5cGVf Z2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gUG9pbnRlckExMXlUaW1lb3V0VHlwZSB7Cisr CQlTRUNPTkRBUllfQ0xJQ0ssCisrCQlEV0VMTCwKKysJCUdFU1RVUkUKKysJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfUkVQQUlOVF9GTEFHU18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVwYWludF9mbGFnc19nZXRf dHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1 YmxpYyBlbnVtIFJlcGFpbnRGbGFncyB7CisgCQlQUkVfUEFJTlQsCistCQlQT1NUX1BBSU5ULAor LQkJUVVFVUVfUkVEUkFXX09OX0FERAorKwkJUE9TVF9QQUlOVAorIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9S RVFVRVNUXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZXF1ZXN0X21vZGVfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTg3NTUsOCArODA0Niw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisg CXB1YmxpYyBlbnVtIFN0YWdlU3RhdGUgeworLQkJRlVMTFNDUkVFTiwKKy0JCU9GRlNDUkVFTiwK KyAJCUFDVElWQVRFRAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9DT0xPUl8iLCB0eXBlX2lkID0gImNsdXR0 ZXJfc3RhdGljX2NvbG9yX2dldF90eXBlICgpIildCitAQCAtODgyMywxMyArODExMiw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCUxFRlQsCisgCQlSSUdIVAorIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9U QUJMRV9BTElHTk1FTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2FsaWdubWVudF9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBUYWJsZUFsaWdubWVu dCB7CistCQlTVEFSVCwKKy0JCUNFTlRFUiwKKy0JCUVORAorLQl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9URVhU X0RJUkVDVElPTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dF9kaXJlY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgZW51bSBUZXh0RGly ZWN0aW9uIHsKK0BAIC04OTA1LDI4ICs4MTg3LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CVZBTFVFOworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAi Q0xVVFRFUl9URVhUVVJFX0VSUk9SXyIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CXB1YmxpYyBlcnJvcmRvbWFpbiBUZXh0dXJlRXJyb3IgeworLQkJT1VUX09GX01FTU9SWSwKKy0J CU5PX1lVViwKKy0JCUJBRF9GT1JNQVQ7CistCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVh cmsgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0K KyAJcHVibGljIGRlbGVnYXRlIENsdXR0ZXIuQWN0b3IgQWN0b3JDcmVhdGVDaGlsZEZ1bmMgKEdM aWIuT2JqZWN0IGl0ZW0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJs aWMgZGVsZWdhdGUgZG91YmxlIEFscGhhRnVuYyAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3Bv cyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgQmVoYXZp b3VyRm9yZWFjaEZ1bmMgKENsdXR0ZXIuQmVoYXZpb3VyIGJlaGF2aW91ciwgQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJ cHVibGljIGRlbGVnYXRlIGJvb2wgQmluZGluZ0FjdGlvbkZ1bmMgKEdMaWIuT2JqZWN0IGdvYmpl Y3QsIHN0cmluZyBhY3Rpb25fbmFtZSwgdWludCBrZXlfdmFsLCBDbHV0dGVyLk1vZGlmaWVyVHlw ZSBtb2RpZmllcnMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBDYWxs YmFjayAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisrCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIEVtaXRJbnB1dERldmljZUV2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0 dGVyLklucHV0RGV2aWNlIGRldmljZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE4IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEV2ZW50RmlsdGVyRnVuYyAoQ2x1 dHRlci5FdmVudCBldmVudCk7CitAQCAtODk1Nyw5ICs4MjI3LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJ T1JJVFlfUkVEUkFXOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIHN0YXRpYyBD bHV0dGVyLkFjdG9yQm94PyBhY3Rvcl9ib3hfYWxsb2MgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgYmFz ZV9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC04OTcxLDM3ICs4MjM4LDEy IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIHN0YXRpYyBib29sIGNoZWNrX3dpbmRvd2luZ19iYWNrZW5kIChzdHJpbmcgYmFja2Vu ZF90eXBlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVhcl9nbHlwaF9j YWNoZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9mcm9tX2hscyAob3V0IENsdXR0ZXIuQ29s b3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9mcm9tX3BpeGVsIChvdXQgQ2x1dHRlci5Db2xvciBjb2xv ciwgdWludDMyIHBpeGVsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyBib29sIGNvbG9yX2Zyb21fc3RyaW5nIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgc3RyaW5n IHN0cik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBD bHV0dGVyLkNvbG9yPyBjb2xvcl9nZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9y KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxl X2FjY2Vzc2liaWxpdHkgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0 aWMgdm9pZCBkb19ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgZXZlbnRfYWRkX2ZpbHRlciAoQ2x1dHRlci5T dGFnZT8gc3RhZ2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDIuMiwgZGVzdHJveV9u b3RpZnlfcG9zID0gMi4xKV0gb3duZWQgQ2x1dHRlci5FdmVudEZpbHRlckZ1bmMgZnVuYyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5FdmVudCBldmVu dF9nZXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDbHV0dGVyLkV2ZW50IGV2ZW50X3BlZWsgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgZXZlbnRfcmVtb3ZlX2ZpbHRlciAodWludCBpZCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBldmVudHNfcGVuZGluZyAo KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitA QCAtOTAxNCw5ICs4MjU2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdWludDMyIGdldF9jdXJyZW50X2V2ZW50X3Rp bWUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlYnVnX2VuYWJsZWQgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkJhY2tlbmQg Z2V0X2RlZmF1bHRfYmFja2VuZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTAyNiwxOCArODI2NSw5IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0 ZXIuVGV4dERpcmVjdGlvbiBnZXRfZGVmYXVsdF90ZXh0X2RpcmVjdGlvbiAoKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Gb250RmxhZ3MgZ2V0X2ZvbnRfZmxhZ3MgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5G b250TWFwIGdldF9mb250X21hcCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGlj IHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleWJvYXJkX2dyYWIgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAi MC42IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19lbmFibGVkICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3Jv dXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTA0NSwyNiArODI3NSw4IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXBf d2l0aG91dF9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFiICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9zY3JpcHRfaWQg KEdMaWIuT2JqZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0YXRpYyBib29s IGdldF9zaG93X2ZwcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdWxvbmcgZ2V0X3RpbWVzdGFtcCAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfa2V5Ym9h cmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXJfZm9yX2RldmljZSAoQ2x1 dHRlci5BY3RvciBhY3RvciwgaW50IGlkXyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIuSW5pdEVycm9y IGluaXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gImFyZ2MiLCBhcnJheV9sZW5ndGhf cG9zID0gMC41KV0gcmVmIHVub3duZWQgc3RyaW5nW10/IGFyZ3YpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjAuMiIpXQorQEAgLTkwODAsNDEgKzgyOTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZvaWQqIGZ1bmMpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZWZhdWx0X2ZyYW1lX3JhdGUgKHVpbnQg ZnJhbWVzX3Blcl9zZWMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9m b250X2ZsYWdzIChDbHV0dGVyLkZvbnRGbGFncyBmbGFncyk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50c19lbmFibGVkIChib29sIGVuYWJsZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9hZGRfZGF0 YV9mdWxsIChzdHJpbmcgdGVzdF9wYXRoLCBvd25lZCBHTGliLlRlc3REYXRhRnVuYyB0ZXN0X2Z1 bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHRlc3Rf Y2hlY2tfYWN0b3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0ZXIuUG9pbnQg cG9pbnQsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLkFjdG9yPyByZXN1bHQpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHRlc3RfY2hlY2tf Y29sb3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQs IENsdXR0ZXIuQ29sb3IgY29sb3IsIG91dCBDbHV0dGVyLkNvbG9yIHJlc3VsdCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciB0 ZXN0X2dldF9zdGFnZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2luaXQgKGludCBhcmdjLCBz dHJpbmcgYXJndik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGlu dCB0ZXN0X3J1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHVuZ3JhYl9rZXlib2FyZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHVuZ3JhYl9wb2ludGVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHVuZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKGludCBpZF8pOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50IHVuaWNvZGVfdG9fa2V5c3ltICh1 aW50MzIgd2MpOworIH0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxh IHZhcGkvbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFsYQorc2ltaWxhcml0eSBpbmRleCAxMDAlCity ZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2YXBp L211dHRlci1jb2dsLTYtY3VzdG9tLnZhbGEKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC00 LmRlcHMgdmFwaS9tdXR0ZXItY29nbC02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVu YW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1j b2dsLTYuZGVwcworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTUudmFwaSB2YXBpL211dHRl ci1jb2dsLTYudmFwaQorc2ltaWxhcml0eSBpbmRleCA2OCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0 dGVyLWNvZ2wtNS52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LnZhcGkKK2luZGV4 IGE4OTYxMjI0Li4xOTVlM2IxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTUudmFwaQor KysrIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitAQCAtMSw2ICsxLDYgQEAKKy0vKiBtdXR0ZXIt Y29nbC01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyog bXV0dGVyLWNvZ2wtNi52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAq LworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwg Z2lyX3ZlcnNpb24gPSAiNSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorK1tDQ29k ZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24g PSAiNiIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorIG5hbWVzcGFjZSBDb2dsIHsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29n bEhhbmRsZSIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIildCisgCVtDb21w YWN0XQorQEAgLTI4LDkgKzI4LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29s IHNldF9kYXRhIChzaXplX3Qgb2Zmc2V0LCBbQ0NvZGUgKGFycmF5X2xlbmd0aF90eXBlID0gInNp emVfdCIpXSB1aW50OFtdIGRhdGEpOworIAkJcHVibGljIHZvaWQgdW5tYXAgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRXVsZXIgeworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfY29udGV4dF9n ZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIENvbnRleHQgOiBDb2dsLk9iamVjdCB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQg Q29udGV4dCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0eXBlICgpIild CisgCVtDb21wYWN0XQorQEAgLTY1LDYyICs2NiwxNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE1h dGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNv cHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9sYXllciAo Q29nbC5NYXRlcmlhbExheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wu Q29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9s YXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJf d3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXll cl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMg dW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2Vy X3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2 b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhh RnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChD b2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRf YmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBj b25zdGFudF9jb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Nv bG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQg YWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAo dWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1 c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29n bC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2xheWVyIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1cmUpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5k ZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworQEAgLTEzMyw0MSAr ODksMTMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBi b29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRl eCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwgQ29nbC5N YXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVy X3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2Rl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2Rl X3QgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9z aXplKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChm bG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9z cGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVy aWFsKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBNYXRlcmlh bExheWVyIHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRl ciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVf cCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IGdldF93cmFwX21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5N YXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2JqZWN0X2dldF9n dHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKK0BAIC0xNzgsMTMg KzEwNiw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNsYXNzIE9mZnNjcmVlbiA6IENv Z2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE9mZnNjcmVlbi50b190 ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg dW5yZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAoQ29nbC5UZXh0 dXJlIHRleHR1cmUpOworIAl9CitAQCAtMTk2LDkgKzEyMCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxsYmFjayAo W0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRpcnR5Q2Fs bGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25zY3JlZW5SZXNp emVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3Bv cyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2Vy RGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNOb3Rp ZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9zZXRf c2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNCIpXQorQEAgLTIxMyw4ICsxMzQsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJhbWVDbG9zdXJl IGNsb3N1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg cmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgY2xvc3Vy ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9zd2FwX2J1ZmZl cnNfY2FsbGJhY2sgKHVpbnQgaWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorQEAgLTI0NCw3ICsxNjMsOCBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29n bF9waXBlbGluZV9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5lIDogQ29n bC5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIFBpcGVsaW5lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor KwkJcHVibGljIFBpcGVsaW5lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorQEAgLTI1NCwxNiArMTc0LDEwIEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRf YWxwaGFfdGVzdF9yZWZlcmVuY2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lQ3Vs bEZhY2VNb2RlIGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9u IChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyBDb2dsLldpbmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRf bGF5ZXJfbWFnX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKK0BAIC0yNzQsOCArMTg4LDYgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5l V3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBn ZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93 cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKK0BAIC0yODYsMTAgKzE5OCw2IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9h dCBnZXRfcG9pbnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9j YXRpb24gKHN0cmluZyB1bmlmb3JtX25hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKK0BA IC0yOTgsMTAgKzIwNiw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBp cGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29n bC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9ibGVuZCAoc3RyaW5n IGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29u c3RhbnRfY29sb3IpOworQEAgLTMxNCwxMCArMjE4LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2N1bGxfZmFjZV9t b2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNv bG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRpbmcgKENvZ2wu V2luZGluZyBmcm9udF93aW5kaW5nKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBi bGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworQEAgLTMzNSw4ICsyMzUsNiBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFw TW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3Jh cE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdy YXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVX cmFwTW9kZSBtb2RlKTsKK0BAIC0zNDUsMTAgKzI0Myw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXpl IChmbG9hdCBwb2ludF9zaXplKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Ig c3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X3VuaWZvcm1fMWYgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBmbG9hdCB2YWx1ZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xaSAo aW50IHVuaWZvcm1fbG9jYXRpb24sIGludCB2YWx1ZSk7CitAQCAtMzgyLDEwICsyNzYsNiBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5pZm9ybV9tYXRyaXggKGlu dCB1bmlmb3JtX25vLCBpbnQgc2l6ZSwgYm9vbCB0cmFuc3Bvc2UsIFtDQ29kZSAoYXJyYXlfbGVu Z3RoX3BvcyA9IDIuOSldIGZsb2F0W10gdmFsdWUpOworIAkJcHVibGljIHZvaWQgdXNlICgpOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24gewor LQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0g IkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfcmVmIiwgdW5yZWZfZnVu Y3Rpb24gPSAiY29nbF9zaGFkZXJfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFz cyBTaGFkZXIgOiBDb2dsLkhhbmRsZSB7CitAQCAtNDY1LDEyICszNTUsMTAgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJcHVibGljIGludCBnZXRfYWxwaGFfYml0cyAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2JsdWVfYml0cyAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuQ29udGV4dCBnZXRf Y29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQg Z2V0X2RlcHRoX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVi bGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9kZXB0aF90ZXh0dXJlICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9kZXB0aF90ZXh0dXJlX2Vu YWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIGJvb2wg Z2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CitAQCAtNTE2LDYgKzQwNCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHB1 c2hfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIs IGZsb2F0IHlfMik7CisrCQlwdWJsaWMgdm9pZCBwdXNoX3JlZ2lvbl9jbGlwIChDYWlyby5SZWdp b24gcmVnaW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MjksMTMgKzQxOCw5IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAo Q29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOwor KwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKGJvb2wgZW5hYmxlZCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRl X2VuYWJsZWQgKGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCitAQCAtNjM1LDEwICs1MjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJs aWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZs b2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4 IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorQEAgLTY2Miw3ICs1NDMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMg d2VhayBzdHJpbmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gIkNP R0xfVFlQRV9NQVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3Ry dWN0IE1hdHJpeCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7CitA QCAtNjkyLDggKzU3Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIGdldF9p bnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNv Z2xfbWF0cml4X2luaXRfaWRlbnRpdHkiKV0KKyAJCXB1YmxpYyBNYXRyaXguaWRlbnRpdHkgKCk7 CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJ cHVibGljIHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJu aW9uKTsKKysJCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVs ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgaW5pdF90 cmFuc2xhdGlvbiAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCitAQCAtNzAyLDE5ICs1ODIsMTUgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5ZV9w b3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0IG9i amVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxvYXQgd29ybGRfdXBf eSwgZmxvYXQgd29ybGRfdXBfeik7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X211 bHRpcGx5IildCisgCQlwdWJsaWMgTWF0cml4Lm11bHRpcGx5IChDb2dsLk1hdHJpeCBhLCBDb2ds Lk1hdHJpeCBiKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQg cmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhp YyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFy LCBmbG9hdCBmYXIpOworIAkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBm bG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGljIHZvaWQg cHJvamVjdF9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQq IHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3Bv aW50cyk7CisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9h dCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJu aW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5F dWxlciBldWxlcik7CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBm bG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCBy ZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKysJCXB1YmxpYyBzdGF0aWMg dm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBDb2dsLk1hdHJpeCBtYXRyaXgsIHJlZiBmbG9hdCB4 LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKyAJCXB1YmxpYyB2b2lk IHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZv aWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBu X3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZs b2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC04MTgsMzggKzY5NCwz MyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlOT05FLAorIAkJTk9fR0VUX0RBVEEKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf RkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJF X1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCistCQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JF RU5fTVVMVElTQU1QTEUsCistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9CVUZGRVIs CistCQlWQk9TLAorLQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJREVQVEhf UkFOR0UsCistCQlQT0lOVF9TUFJJVEUsCistCQlNQVBfQlVGRkVSX0ZPUl9SRUFELAorLQkJTUFQ X0JVRkZFUl9GT1JfV1JJVEUsCistCQlPTlNDUkVFTl9NVUxUSVBMRSwKKy0JCURFUFRIX1RFWFRV UkUKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX0ZFQVRVUkVfSURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIEZlYXR1cmVJRCB7CisrCQlbQ0NvZGUgKGNu YW1lID0gIkNPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUyIpXQorKwkJT0dMX0ZF QVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xf RkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFEIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBf QlVGRkVSX0ZPUl9SRUFELAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQ X0JVRkZFUl9GT1JfV1JJVEUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dS SVRFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VW RU5UIildCisrCQlPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQsCisrCQlbQ0NvZGUg KGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSIpXQorKwkJT0dMX0ZF QVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVB VFVSRV9JRF9GRU5DRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfRkVOQ0UsCisrCQlbQ0NvZGUgKGNu YW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHIildCisrCQlPR0xfRkVBVFVSRV9JRF9U RVhUVVJFX1JHLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FH RSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSwKKysJCVtDQ29kZSAoY25hbWUgPSAi Q09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMIildCisrCQlPR0xfRkVB VFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTAorIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEZpbHRlclJldHVybiB7CisgCQlDT05U SU5VRSwKKyAJCVJFTU9WRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsK Ky0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGVudW0gRnJhbWVFdmVudCB7CitAQCAtODYyLDYgKzcz MywxNCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsK KyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9HUkFQSElDU19SRVNF VF9TVEFUVVNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBlbnVtIEdyYXBoaWNz UmVzZXRTdGF0dXMgeworKwkJTk9fRVJST1IsCisrCQlHVUlMVFlfQ09OVEVYVF9SRVNFVCwKKysJ CUlOTk9DRU5UX0NPTlRFWFRfUkVTRVQsCisrCQlVTktOT1dOX0NPTlRFWFRfUkVTRVQsCisrCQlQ VVJHRURfQ09OVEVYVF9SRVNFVAorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKyAJCUJZVEUs CitAQCAtODg4LDEyICs3NjcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlORUFSRVNUX01JUE1B UF9MSU5FQVIsCisgCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlF Ul9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUg PSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVS X1RZUEVfVEVYVFVSRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gTWF0 ZXJpYWxXcmFwTW9kZSB7CitAQCAtOTcxLDYgKzg0NCw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CURFUFRIXzE2LAorIAkJREVQVEhfMzIsCisgCQlERVBUSF8yNF9TVEVOQ0lMXzg7CisrCQlwdWJs aWMgaW50IGdldF9ieXRlc19wZXJfcGl4ZWwgKGludCBwbGFuZSk7CisrCQlwdWJsaWMgaW50IGdl dF9uX3BsYW5lcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorQEAgLTEw NjQsOSArOTM5LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0Rm9yZWFjaFR5 cGVDYWxsYmFjayAoQ29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBNYXRlcmlhbExheWVyQ2FsbGJh Y2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisr CVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwIildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZlYXR1 cmVDYWxsYmFjayAoQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGlydHlD YWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5mbyBp bmZvKTsKK0BAIC0xMDc0LDEzICs5NDksOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5SZXNpemVD YWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9z ID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sg KENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiBldmVudF9tYXNrKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGlu ZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3Bv cyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2ds LkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIGJv b2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRlcm5hbEFsbG9jIChDb2dsLlRleHR1cmUyRCB0ZXhfMmQp IHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBVc2Vy RGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0YSk7CitAQCAtMTA5Miw2ICs5NjMsOCBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9ERVBUSF9CSVQi KV0KKyAJcHVibGljIGNvbnN0IGludCBERVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUElYRUxfRk9STUFUX01BWF9QTEFO RVMiKV0KKysJcHVibGljIGNvbnN0IGludCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5FUzsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVN VUxUX0JJVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklU IildCitAQCAtMTA5OSwxOSArOTcyLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFY X1dBU1RFIildCisgCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgYmxpdF9mcmFtZWJ1 ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBzcmMsIENvZ2wuRnJhbWVidWZmZXIgZGVzdCwgaW50IHNy Y194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCBpbnQgd2lkdGgsIGludCBoZWln aHQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJp bmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29s b3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJfY2hlY2tfZXh0ZW5zaW9uX0NM VVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX3dpbnN5 c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVyZSk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCitAQCAtMTEyOSw1NyArOTkxLDM4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2Jq ZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZvZyAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZmVhdHVy ZXNfYXZhaWxhYmxlIChDb2dsLkZlYXR1cmVGbGFncyBmZWF0dXJlcyk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBmbHVzaCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20s IGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBmb3JlYWNoX2ZlYXR1cmUgKENvZ2wu Q29udGV4dCBjb250ZXh0LCBDb2dsLkZlYXR1cmVDYWxsYmFjayBjYWxsYmFjayk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGlj IGJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF9i aXRtYXNrcyAob3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGlu dCBhbHBoYSk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCXB1YmxpYyBzdGF0aWMg aW50NjQgZ2V0X2Nsb2NrX3RpbWUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgYm9v bCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKysJcHVibGlj IHN0YXRpYyBDb2dsLkdyYXBoaWNzUmVzZXRTdGF0dXMgZ2V0X2dyYXBoaWNzX3Jlc2V0X3N0YXR1 cyAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9w dGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuQ2FsbGJhY2sgZ2V0X3By b2NfYWRkcmVzcyAoc3RyaW5nIHMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlv bl9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3VyY2UgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gb3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4X2dldF90 eXBlICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGhhc19mZWF0 dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfY29udGV4dCAodm9pZCogb2Jq ZWN0KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisrCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1 ZmZlciAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtMTE5Myw1MyArMTAz Niw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIHN0YXRpYyBib29sIGlzX3RleHR1cmVfMmRfc2xpY2VkICh2b2lkKiBvYmplY3QpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjQiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcnRleF9idWZmZXJfaW5kaWNlcyAoQ29n bC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIHN0YXRpYyBib29s IG1hdHJpeF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxv YXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBlcnNwZWN0aXZl IChmbG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAoQ29nbC5UZXh0 dXJlVmVydGV4IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIGJvb2wgdXNlX2NvbG9yKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBv cF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0 aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5Miwg W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRl eF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJl Y3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgy LCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzX3dpdGhf dGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZl cnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFi bGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KK0BAIC0xMjQ3LDUzICsxMDQ2LDExIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVi bGljIHN0YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBt b2RlLCBmbG9hdCBkZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3Ip OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQg cmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3Jl ZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfc291cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisg CXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5k bGUgaGFuZGxlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxl IGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5I YW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBz aGFkZXIsIHN0cmluZyBzb3VyY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5I YW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE4Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1 cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorQEAgLTEzMDYsNTkgKzEwNjMsNiBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5U ZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENv Z2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRy aXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3Ry aW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlw ZSB0eXBlLCBib29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50ZXIpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0 cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kaXNhYmxl IChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNN b2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVm ZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUg bW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1heF9pbmRleCwg aW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZm ZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNf Z2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBl IHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0 aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCist CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3JlZiAoQ29n bC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1pdCAoQ29n bC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5yZWYgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZpZXdwb3J0ICh1 aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3Zp c3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlkIChDb2dsLk9u c2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2Ny ZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wuT25zY3JlZW5Y MTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wt NC1jdXN0b20udmFsYSB2YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkg aW5kZXggODElCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEKK3Jl bmFtZSB0byB2YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK2luZGV4IDI1NTE4ODVhLi5j NGQ0YjkzYSAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEKKysrKyB2 YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK0BAIC0xLDEwICsxLDQgQEAKKyBuYW1lc3Bh Y2UgQ29nbCB7CistCVtDb21wYWN0XQorLQlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0K Ky0JcHVibGljIGNsYXNzIEJpdG1hcDogSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMgQml0bWFw IG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCX0K Ky0KKyAJW0NvbXBhY3RdCisgCVtDQ29kZSAoY25hbWUgPSAiQ29nbEhhbmRsZSIpXQorIAlwdWJs aWMgY2xhc3MgQnVmZmVyOiBIYW5kbGUgeworQEAgLTQyLDcgKzM2LDcgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIGJvb2wgaXNfdmVydGV4X2J1ZmZlciAoKTsKKyAJfQorIAorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImNv Z2xfcGF0aF9jb3B5IildIAorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjb3B5X2Z1bmN0aW9uID0gImNvZ2xfcGF0aF9jb3B5IildCisgCVtDb21wYWN0XQorIAlw dWJsaWMgY2xhc3MgUGF0aCB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgQG5ldyAoKTsKK0BAIC04 MiwxOCArNzYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzb3VyY2UgKHN0 cmluZyBzb3VyY2UpOworIAl9CisgCistCVtDb21wYWN0XQorLQlbQ0NvZGUgKGNuYW1lID0gIkNv Z2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3JlZiIsIHVucmVmX2Z1bmN0 aW9uID0gImNvZ2xfdGV4dHVyZV91bnJlZiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZTogSGFu ZGxlIHsKKy0JCXB1YmxpYyBDb2dsLlBpeGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlwdWJs aWMgdWludCBnZXRfcm93c3RyaWRlICgpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9iaXRtYXAg KENvZ2wuQml0bWFwIGJtcF9oYW5kbGUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBp eGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2RhdGEg KHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCB1aW50 IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVjaGFyW10gZGF0YSk7 CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0 dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fc3ViX3RleHR1cmUgKENvZ2wuVGV4 dHVyZSBmdWxsX3RleHR1cmUsIGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBp bnQgc3ViX2hlaWdodCk7CistCQlwdWJsaWMgVGV4dHVyZS53aXRoX3NpemUgKHVpbnQgd2lkdGgs IHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworLQl9CistCisgCVtDb21wYWN0XQorIAlbQ0NvZGUgKGNuYW1lID0g IkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVu cmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl91bnJlZiIpXQorIAlwdWJsaWMgY2xh c3MgVmVydGV4QnVmZmVyOiBIYW5kbGUgeworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTUu ZGVwcyB2YXBpL211dHRlci1jb2dsLTcuZGVwcworc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5h bWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUuZGVwcworcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNv Z2wtNy5kZXBzCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpIHZhcGkvbXV0dGVy LWNvZ2wtNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDU5JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0 ZXItY29nbC00LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTcudmFwaQoraW5kZXgg NWRlOGY0NDcuLjYyMGMyMzE3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpCisr KysgdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK0BAIC0xLDEyICsxLDEzIEBACistLyogbXV0dGVy LWNvZ2wtNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8q IG11dHRlci1jb2dsLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4g Ki8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIs IGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKytbQ0Nv ZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9u ID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNv Z2xIYW5kbGUiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorLQlbQ29t cGFjdF0KKy0JcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuSGFuZGxlIHsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9n ZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuT2JqZWN0IHsKKysJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBC aXRtYXAgKCk7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNvZ2xCaXRtYXAq IildCisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQml0bWFwLmZyb21fZmlsZSAoc3RyaW5n IGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCitAQCAtMTYsMTAgKzE3LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9zaXpl X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdo dCk7CisrCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmls ZW5hbWUsIG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBzdGF0 aWMgQ29nbC5CaXRtYXAgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjbmFtZSA9ICJDb2dsSGFuZGxlIildCisgCVtDb21wYWN0XQorQEAgLTI4LDE1ICsyOCwyOCBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoc2l6ZV90IG9mZnNl dCwgW0NDb2RlIChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXplX3QiKV0gdWludDhbXSBkYXRhKTsK KyAJCXB1YmxpYyB2b2lkIHVubWFwICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0eXBlICgpIildCisrCXB1Ymxp YyBjbGFzcyBDb250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENvbnRleHQgKCk7CisrCQlwdWJsaWMg Ym9vbCBpc19oYXJkd2FyZV9hY2NlbGVyYXRlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Ns b3N1cmVfZ2V0X2d0eXBlICgpIildCisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsKKyAJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVfaW5m b19nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEZyYW1lSW5mbyA6IENvZ2wuT2JqZWN0 IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3Rl Y3RlZCBGcmFtZUluZm8gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVi bGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKysJCXB1YmxpYyBpbnQ2NCBnZXRfcHJlc2VudGF0aW9uX3RpbWUgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9yZWZyZXNoX3JhdGUg KCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgcmVm X2Z1bmN0aW9uID0gImNvZ2xfaGFuZGxlX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfaGFu ZGxlX3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgSGFuZGxlIHsKK0BAIC02 NSw2NSArNzgsMjAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNh bGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRf YW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJp dGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGlu dCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJf d3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxp c3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgQHJl ZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXll ciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBoYV9mdW5j LCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9y KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3Ry aW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRf YmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBj b25zdGFudF9jb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Nv bG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQg YWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAo dWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1 c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29n bC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2xheWVyIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1cmUpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXll cl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJs aWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRf c3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNv bG9yIGNvbnN0YW50KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCitAQCAtMTMxLDQzICs5OSwxNSBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBD b2dsLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4 LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENv Z2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlh bFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9s YXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUg bW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBf bW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKysJ CXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBs YXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBz aGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxh ciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZv aWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBNYXRlcmlhbExheWVy IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRlciAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93 cmFwX21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlh bFdyYXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2JqZWN0X2dldF9ndHlwZSAo KSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKK0BAIC0xNzgsMTMgKzExOCw5 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNsYXNzIE9mZnNjcmVlbiA6IENvZ2wuT2Jq ZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE9mZnNjcmVlbi50b190ZXh0dXJl IChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYg KHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRl eHR1cmUpOworIAl9CitAQCAtMTk0LDE3ICsxMzAsMTYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ cHJvdGVjdGVkIE9uc2NyZWVuICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJ CXB1YmxpYyBDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxsYmFjayAoW0ND b2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRpcnR5Q2FsbGJh Y2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBDb2dsLkZyYW1lQ2xvc3VyZSBh ZGRfZnJhbWVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENv Z2wuRnJhbWVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8g ZGVzdHJveSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5P bnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0 ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxiYWNrIGNhbGxiYWNr LCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFjayAoQ29nbC5Td2Fw QnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9i YWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludCBnZXRfYnVmZmVyX2FnZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1l X2NvdW50ZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29n bC5Cb29sIGdldF9yZXNpemFibGUgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfcmVzaXphYmxlICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgaGlkZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCitAQCAtMjEzLDE4ICsxNDgsMTYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2ds LkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNpemVD bG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1v dmVfc3dhcF9idWZmZXJzX2NhbGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKENvZ2wuQm9vbCByZXNpemFi bGUpOworKwkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2hvdyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnMgKCk7 CisrCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnMgKENvZ2wuRnJhbWVJbmZvIGZyYW1lX2luZm8p OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVm ZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworKwkJ cHVibGljIHZvaWQgc3dhcF9idWZmZXJzX3dpdGhfZGFtYWdlIChpbnQgcmVjdGFuZ2xlcywgaW50 IG5fcmVjdGFuZ2xlcywgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9yZWdpb24gKGludCByZWN0YW5nbGVzLCBp bnQgbl9yZWN0YW5nbGVzKTsKKysJCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFu Z2xlcywgaW50IG5fcmVjdGFuZ2xlcywgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi Y29nbF9vbnNjcmVlbl9kaXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0K K0BAIC0yNDQsNyArMTc3LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0X2d0 eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQaXBl bGluZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBQaXBlbGlu ZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KK0BAIC0yNTQsNDQgKzE4OCwzMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJl bmNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1 bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lv biAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0 X2xheWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21pbl9m aWx0ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQg KGludCBsYXllcl9pbmRleCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRl X2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVy ZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wu UGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdy YXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcGVyX3Zl cnRleF9wb2ludF9zaXplICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRf c2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBn ZXRfcG9pbnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRp b24gKHN0cmluZyB1bmlmb3JtX25hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKK0BAIC0z MDAsMTEgKzIyMCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBpcGVs aW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5D b2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5kIChzdHJp bmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9i bGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENv Z2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor QEAgLTMxMyw0NiArMjI5LDM1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHNl dF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBo YSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29s b3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcl9t YXNrIChDb2dsLkNvbG9yTWFzayBjb2xvcl9tYXNrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5QaXBlbGluZUN1 bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29n bC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJvbnRfd2luZGlu Zyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNl dF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRo cm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBs YXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmlu ZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVy cyAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wu UGlwZWxpbmVGaWx0ZXIgbWFnX2ZpbHRlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2ds Lk1hdHJpeCBtYXRyaXgpOworKwkJcHVibGljIHZvaWQgc2V0X2xheWVyX21heF9taXBtYXBfbGV2 ZWwgKGludCBsYXllciwgaW50IG1heF9sZXZlbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2lu ZGV4LCBDb2dsLlRleHR1cmVUeXBlIHRleHR1cmVfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfbnVsbF90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nv b3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBH TGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNf ZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7 CisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2ds LlRleHR1cmUgdGV4dHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxp bmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVs aW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBl bGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlw ZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoQ29nbC5Cb29sIGVuYWJs ZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfcGVyX3ZlcnRleF9wb2lu dF9zaXplIChib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRf c2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf c2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFm IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xv Y2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM2MSw3ICsyNjYsNyBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9y bV9pbnQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQgY291bnQs IGludCB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGltZW5zaW9u cywgaW50IGNvdW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7CisrCQlwdWJs aWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGlt ZW5zaW9ucywgaW50IGNvdW50LCBib29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAo Q29nbC5IYW5kbGUgcHJvZ3JhbSk7CisgCX0KK0BAIC0zODgsNyArMjkzLDcgQEAgbmFtZXNwYWNl IENvZ2wgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRl cm5pb24geworKwlwdWJsaWMgY2xhc3MgU2Nhbm91dCB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5j dGlvbiA9ICJjb2dsX3NoYWRlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3NoYWRlcl91 bnJlZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00MDEsNDggKzMwNiwyMyBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlwdWJsaWMgYm9vbCBpc19jb21waWxlZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNvdXJj ZSAoc3RyaW5nIHNvdXJjZSk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3Rl eHR1cmVfcmVmIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIiwgdW5yZWZf ZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgVGV4dHVyZSA6IENvZ2wuSGFuZGxlIHsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2Nh dGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9x dWFyayAoKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBibXBf aGFuZGxlLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5h bF9mb3JtYXQpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1aW50IHdpZHRoLCB1aW50 IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0 LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOworLQkJcHVibGljIFRleHR1 cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlw dWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1cmUgZnVsbF90ZXh0dXJl LCBpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmVDb21w b25lbnRzIGdldF9jb21wb25lbnRzICgpOworLQkJcHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCXB1Ymxp YyBDb2dsLlBpeGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBvdXRfZ2xfdGFy Z2V0KTsKKy0JCXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgaW50IGdldF9t YXhfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfcHJlbXVsdGlwbGllZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3dzdHJp ZGUgKCk7CistCQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29nbC5Cb29s IGlzX3NsaWNlZCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wu VGV4dHVyZSBuZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJl RmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChp bnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVs Rm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dz dHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJl RmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xp Yi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVy ZSBuZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQg d2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBD b2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENv Z2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGlu dCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhl aWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBz ZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKy0JCXB1 YmxpYyBDb2dsLkJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93 c3RyaWRlLCB1aW50OCBkYXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVk IChDb2dsLkJvb2wgcHJlbXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdp b24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rf d2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVs Rm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0 bWFwIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0 X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCQlwdWJsaWMg VGV4dHVyZS53aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBsb3dlcl9jYXNlX2NzdWZmaXggPSAi dGV4dHVyZV8yZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJkX2dldF9ndHlwZSAoKSIpXQor KwlwdWJsaWMgY2xhc3MgVGV4dHVyZTJEIDogQ29nbC5PYmplY3QsIENvZ2wuVGV4dHVyZSB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQg VGV4dHVyZTJEICgpOworKwkJcHVibGljIHZvaWQgZWdsX2ltYWdlX2V4dGVybmFsX2FsbG9jX2Zp bmlzaCAodm9pZCogdXNlcl9kYXRhLCBHTGliLkRlc3Ryb3lOb3RpZnkgZGVzdHJveSk7CisrCQlw dWJsaWMgdm9pZCBlZ2xfaW1hZ2VfZXh0ZXJuYWxfYmluZCAoKTsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KysJCXB1YmxpYyBUZXh0dXJlMkQuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJfY2Fz ZV9jc3VmZml4ID0gInRleHR1cmVfMmRfc2xpY2VkIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVf MmRfc2xpY2VkX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVGV4dHVyZTJEU2xpY2Vk IDogQ29nbC5PYmplY3QsIENvZ2wuVGV4dHVyZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgVGV4dHVyZTJEU2xpY2VkICgpOworKwkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTYiKV0KKysJCXB1YmxpYyBUZXh0dXJlMkRTbGljZWQuZnJvbV9iaXRtYXAgKENv Z2wuQml0bWFwIGJtcCwgaW50IG1heF93YXN0ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlv biA9ICJjb2dsX3ZlcnRleF9idWZmZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0 ZXhfYnVmZmVyX3VucmVmIildCisgCVtDb21wYWN0XQorQEAgLTQ2OCw3ICszNDgsNyBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IHR5cGVfaWQgPSAiY29nbF9mcmFtZWJ1ZmZlcl9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGlu dGVyZmFjZSBGcmFtZWJ1ZmZlciA6IENvZ2wuT2JqZWN0IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJy b3I7CisrCQlwdWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGNsZWFyICh1bG9uZyBidWZm ZXJzLCBDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BA IC00ODgsNiArMzY4LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHN0YXRpYyB1aW50 MzIgZXJyb3JfcXVhcmsgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgZmluaXNoICgpOworKwkJcHVibGljIHZvaWQgZmx1c2ggKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwg ZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0 IHpfZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC00OTUsMjIgKzM3Niwx OCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlw dWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CisrCQlwdWJsaWMg dW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0X2NvbnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVw dGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMg Q29nbC5Cb29sIGdldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxl ZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGl0aGVyX2Vu YWJsZWQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZGl0aGVyX2VuYWJsZWQgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9ncmVlbl9iaXRzICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfaGVpZ2h0ICgp OworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaXNfc3RlcmVvICgpOworKwkJcHVibGljIGJvb2wg Z2V0X2lzX3N0ZXJlbyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorQEAgLTU0NywxMiArNDI0LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CXB1YmxpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQg eV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CisrCQlwdWJsaWMgdm9pZCBwdXNoX3JlZ2lvbl9j bGlwIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGludCB5LCBpbnQgd2lk dGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyBDb2dsLkJvb2wgcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludDggcGl4ZWxzKTsKKysJCXB1YmxpYyBi b29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29n bC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAo aW50IHgsIGludCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJp dG1hcCk7CisrCQlwdWJsaWMgYm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAoaW50IHgsIGlu dCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJpdG1hcCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCByZXNvbHZlX3NhbXBs ZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTYwLDE5ICs0MzgsMTMg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1 bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlv bik7CisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRo X3RleHR1cmVfZW5hYmxlZCAoQ29nbC5Cb29sIGVuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChDb2ds LkJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3Jp dGVfZW5hYmxlZCAoYm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAoQ29nbC5Cb29s IGRpdGhlcl9lbmFibGVkKTsKKysJCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAoYm9v bCBkaXRoZXJfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU4OCw2ICs0NjAsMzkgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHRy YW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0 X2d0eXBlICgpIildCisrCXB1YmxpYyBpbnRlcmZhY2UgVGV4dHVyZSA6IENvZ2wuT2JqZWN0IHsK KysJCXB1YmxpYyBib29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGlj IHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorKwkJcHVibGljIENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7 CisrCQlwdWJsaWMgaW50IGdldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCBy b3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdPyBkYXRhKTsK KysJCXB1YmxpYyBib29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBv dXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKysJCXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7Cisr CQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorKwkJcHVibGljIGJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CisrCQlwdWJsaWMgdWlu dCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgYm9vbCBpc19zbGljZWQgKCk7CisrCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fYml0bWFwIChD b2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9y bWF0IGludGVybmFsX2Zvcm1hdCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisrCQlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wu VGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhy b3dzIEdMaWIuRXJyb3I7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIENvZ2wuVGV4dHVy ZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lk dGgsIGludCBzdWJfaGVpZ2h0KTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisrCQlwdWJsaWMgc3RhdGlj IENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9u ZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKysJCXB1YmxpYyBib29s IHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgaW50IGxldmVsKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgdm9p ZCBzZXRfcHJlbXVsdGlwbGllZCAoYm9vbCBwcmVtdWx0aXBsaWVkKTsKKysJCXB1YmxpYyBib29s IHNldF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwg dWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBD b2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorKwkJcHVibGljIGJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1hcCAoaW50IHNyY194LCBpbnQg c3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVp Z2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbU2ltcGxlVHlwZV0KKyAJcHVibGljIHN0cnVjdCBBbmds ZSA6IGludDMyIHsKK0BAIC02MzUsMTAgKzU0MCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1 YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfZmxvYXQgKGZsb2F0IGJsdWUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNGYgKGZsb2F0IHJlZCwg ZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWlu dDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCitAQCAtNjYyLDcgKzU2Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1Ymxp YyB3ZWFrIHN0cmluZyBuYW1lOworIAkJcHVibGljIHVsb25nIGluc3RhbmNlX2NvdW50OworIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAi Q09HTF9UWVBFX01BVFJJWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAi Z19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisgCXB1YmxpYyBz dHJ1Y3QgTWF0cml4IHsKKyAJCXB1YmxpYyBmbG9hdCB4eDsKKyAJCXB1YmxpYyBmbG9hdCB5eDsK K0BAIC02ODksMzIgKzU5MCwyNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBm cnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3As IGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGljIHVub3duZWQgZmxvYXRbXSBn ZXRfYXJyYXkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29n bC5Cb29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CisrCQlwdWJsaWMg Ym9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJW0NDb2RlIChj bmFtZSA9ICJjb2dsX21hdHJpeF9pbml0X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0cml4Lmlk ZW50aXR5ICgpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1 bGVyKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5p b24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5l LkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIGluaXRfdHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19pZGVudGl0 eSAoKTsKKysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gs IGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0 X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxv YXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNv Z2xfbWF0cml4X211bHRpcGx5IildCisgCQlwdWJsaWMgTWF0cml4Lm11bHRpcGx5IChDb2dsLk1h dHJpeCBhLCBDb2dsLk1hdHJpeCBiKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQg bGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBm bG9hdCBmYXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8y LCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZs b2F0IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJ cHVibGljIHZvaWQgcHJvamVjdF9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJp ZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19v dXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAo Q29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVy IChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gs IGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJl ZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKysJCXB1 YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBDb2dsLk1hdHJpeCBtYXRyaXgs IHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKyAJ CXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBz dHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50 c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC04 MDEsMTYgKzY5Nyw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVdJTkRPV19CVUZGRVIsCisgCQlP RkZTQ1JFRU5fQlVGRkVSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0NPTE9SX01BU0tfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQ29sb3JNYXNrIHsKKy0JCU5PTkUsCistCQlS RUQsCistCQlHUkVFTiwKKy0JCUJMVUUsCistCQlBTFBIQSwKKy0JCUFMTAorLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9ERVBU SF9URVNUX0ZVTkNUSU9OXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBE ZXB0aFRlc3RGdW5jdGlvbiB7CisgCQlORVZFUiwKK0BAIC04MjIsNDYgKzcwOCw0MSBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlHRVFVQUwsCisgCQlBTFdBWVMKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0VHTF9JTUFHRV9GTEFHXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGlj IGVudW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfUkVDVEFOR0xFLAorLQkJVEVYVFVSRV9O UE9ULAorLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJU0hBREVS U19HTFNMLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExFLAorLQkJT0ZG U0NSRUVOX0JMSVQsCistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9CVUZGRVIsCist CQlWQk9TLAorLQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJREVQVEhfUkFO R0UsCistCQlURVhUVVJFX05QT1RfQkFTSUMsCistCQlURVhUVVJFX05QT1RfTUlQTUFQLAorLQkJ VEVYVFVSRV9OUE9UX1JFUEVBVCwKKy0JCVBPSU5UX1NQUklURSwKKy0JCVRFWFRVUkVfM0QsCist CQlNQVBfQlVGRkVSX0ZPUl9SRUFELAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJVEUsCistCQlPTlND UkVFTl9NVUxUSVBMRSwKKy0JCURFUFRIX1RFWFRVUkUKKysJcHVibGljIGVudW0gRWdsSW1hZ2VG bGFncyB7CisrCQlOT05FLAorKwkJTk9fR0VUX0RBVEEKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV9JRF8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVi bGljIGVudW0gRmVhdHVyZUlEIHsKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lE X1VOU0lHTkVEX0lOVF9JTkRJQ0VTIildCisrCQlPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRf SU5ESUNFUywKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJf Rk9SX1JFQUQiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQsCisrCQlb Q0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSIpXQor KwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUsCisrCQlbQ0NvZGUgKGNuYW1l ID0gIkNPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQiKV0KKysJCU9HTF9GRUFUVVJF X0lEX1NXQVBfQlVGRkVSU19FVkVOVCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJF X0lEX1BSRVNFTlRBVElPTl9USU1FIildCisrCQlPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05f VElNRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0ZFTkNFIildCisrCQlP R0xfRkVBVFVSRV9JRF9GRU5DRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lE X1RFWFRVUkVfUkciKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkcsCisrCQlbQ0NvZGUg KGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdFIildCisrCQlPR0xfRkVBVFVSRV9J RF9CVUZGRVJfQUdFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVS RV9FR0xfSU1BR0VfRVhURVJOQUwiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lN QUdFX0VYVEVSTkFMLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQkxJVF9G UkFNRUJVRkZFUiIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQkxJVF9GUkFNRUJVRkZFUgorIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEZpbHRlclJl dHVybiB7CisgCQlDT05USU5VRSwKKyAJCVJFTU9WRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg ZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJ QUxfU1FVQVJFRAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGVudW0gRnJhbWVFdmVudCB7 CitAQCAtODc0LDYgKzc1NSwxNCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlGUkFNRUJVRkZFUl9F UlJPUl9BTExPQ0FURTsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworIAl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9HUkFQSElDU19SRVNFVF9TVEFUVVNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1Ymxp YyBlbnVtIEdyYXBoaWNzUmVzZXRTdGF0dXMgeworKwkJTk9fRVJST1IsCisrCQlHVUlMVFlfQ09O VEVYVF9SRVNFVCwKKysJCUlOTk9DRU5UX0NPTlRFWFRfUkVTRVQsCisrCQlVTktOT1dOX0NPTlRF WFRfUkVTRVQsCisrCQlQVVJHRURfQ09OVEVYVF9SRVNFVAorKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVf VU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEluZGljZXNU eXBlIHsKKyAJCUJZVEUsCitAQCAtOTAwLDEyICs3ODksNiBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCisgCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9NQVRFUklBTF9MQVlFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0J CVtDQ29kZSAoY25hbWUgPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0J CU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ cHVibGljIGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7CitAQCAtOTcwLDYgKzg1MywxMCBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlCR1JBXzEwMTAxMDIsCisgCQlBUkdCXzIxMDEwMTAsCisgCQlBQkdS XzIxMDEwMTAsCisrCQlSR0JBX0ZQXzE2MTYxNjE2LAorKwkJQkdSQV9GUF8xNjE2MTYxNiwKKysJ CUFSR0JfRlBfMTYxNjE2MTYsCisrCQlBQkdSX0ZQXzE2MTYxNjE2LAorIAkJUkdCQV84ODg4X1BS RSwKKyAJCUJHUkFfODg4OF9QUkUsCisgCQlBUkdCXzg4ODhfUFJFLAorQEAgLTk4MCw5ICs4Njcs MTYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJQkdSQV8xMDEwMTAyX1BSRSwKKyAJCUFSR0JfMjEw MTAxMF9QUkUsCisgCQlBQkdSXzIxMDEwMTBfUFJFLAorKwkJUkdCQV9GUF8xNjE2MTYxNl9QUkUs CisrCQlCR1JBX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFSR0JfRlBfMTYxNjE2MTZfUFJFLAorKwkJ QUJHUl9GUF8xNjE2MTYxNl9QUkUsCisgCQlERVBUSF8xNiwKKyAJCURFUFRIXzMyLAorLQkJREVQ VEhfMjRfU1RFTkNJTF84CisrCQlERVBUSF8yNF9TVEVOQ0lMXzg7CisrCQlwdWJsaWMgaW50IGdl dF9ieXRlc19wZXJfcGl4ZWwgKGludCBwbGFuZSk7CisrCQlwdWJsaWMgaW50IGdldF9uX3BsYW5l cyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1JF QURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbRmxhZ3NdCitAQCAt MTA0MSwxMyArOTM1LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTk9fU0xJQ0lORywKKyAJCU5P X0FUTEFTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZVR5cGUgewor LQkJQDJELAorLQkJQDNELAorLQkJUkVDVEFOR0xFCistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1ZFUlRJQ0VTX01PREVfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVi bGljIGVudW0gVmVydGljZXNNb2RlIHsKK0BAIC0xMDY3LDcgKzk1NCw2IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX1dJTlNZU19GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJs aWMgZW51bSBXaW5zeXNGZWF0dXJlIHsKKyAJCU1VTFRJUExFX09OU0NSRUVOLAorLQkJU1dBUF9U SFJPVFRMRSwKKyAJCVZCTEFOS19DT1VOVEVSLAorIAkJVkJMQU5LX1dBSVQsCisgCQlURVhUVVJF X0ZST01fUElYTUFQLAorQEAgLTEwODIsOSArOTY4LDEyIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0g MS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9p ZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5m byBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5z dGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIENv Z2wuQm9vbCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGlu dCBsYXllcl9pbmRleCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwIildCisr CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZlYXR1cmVDYWxsYmFjayAoQ29nbC5GZWF0dXJlSUQgZmVh dHVyZSk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3Rh bmNlX3BvcyA9IDMuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIEZyYW1lQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wu RnJhbWVFdmVudCBldmVudCwgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGly dHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5m byBpbmZvKTsKK0BAIC0xMDkyLDEyICs5ODEsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVz aXplQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdo dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNl X3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxi YWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSld CisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9v bCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXll cl9pbmRleCk7CisrCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFBpcGVsaW5lTGF5ZXJDYWxsYmFjayAo Q29nbC5QaXBlbGluZSBwaXBlbGluZSwgaW50IGxheWVyX2luZGV4KTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVi bGljIGRlbGVnYXRlIHZvaWQgU3dhcEJ1ZmZlcnNOb3RpZnkgKENvZ2wuRnJhbWVidWZmZXIgZnJh bWVidWZmZXIpOworKwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBUZXh0dXJlMkRFR0xJbWFnZUV4dGVy bmFsQWxsb2MgKENvZ2wuVGV4dHVyZTJEIHRleF8yZCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJnZXQgPSBmYWxz ZSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxiYWNrICh2b2lk KiBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ09HTF9BRklSU1RfQklUIildCitAQCAtMTEwOCw2ICs5OTUsOCBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9ERVBUSF9CSVQiKV0KKyAJcHVi bGljIGNvbnN0IGludCBERVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUElYRUxfRk9STUFUX01BWF9QTEFORVMiKV0KKysJ cHVibGljIGNvbnN0IGludCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5FUzsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIp XQorIAlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCitAQCAt MTExNSwyMSArMTAwNCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUi KV0KKyAJcHVibGljIGNvbnN0IGludCBURVhUVVJFX01BWF9XQVNURTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5z aW9uIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wu Q29sb3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVj a19leHRlbnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworKwlwdWJsaWMg c3RhdGljIGJvb2wgYmxpdF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBzcmMsIENvZ2wu RnJhbWVidWZmZXIgZGVzdCwgaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRz dF95LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0 dXJlIGZlYXR1cmUpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2Zl YXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjb2xvcl9lcXVhbCAodm9pZCogdjEsIHZv aWQqIHYyKTsKKysJcHVibGljIHN0YXRpYyBib29sIGNvbG9yX2VxdWFsICh2b2lkKiB2MSwgdm9p ZCogdjIpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGNvbG9yX2lu aXRfZnJvbV9oc2wgKG91dCBDb2dsLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IHNhdHVy YXRpb24sIGZsb2F0IGx1bWluYW5jZSk7CitAQCAtMTE0MywyMzQgKzEwMjMsODcgQEAgbmFtZXNw YWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBzdGF0aWMg dm9pZCBkZWJ1Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2Fi bGVfZm9nICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5Cb29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVy ZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu OC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCBy aWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIp OworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgZm9y ZWFjaF9mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sg Y2FsbGJhY2spOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxl ZCAoKTsKKysJcHVibGljIHN0YXRpYyBib29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQg KCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVu LCBvdXQgaW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NCIpXQorKwlwdWJsaWMgc3RhdGljIGludDY0IGdldF9jbG9ja190aW1lIChDb2dsLkNvbnRleHQg Y29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOwor KwlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2Ry YXdfZnJhbWVidWZmZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZs YWdzIGdldF9mZWF0dXJlcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19t YXRyaXggKCk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3RhdHVzIGdldF9n cmFwaGljc19yZXNldF9zdGF0dXMgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBH TGliLkNhbGxiYWNrIGdldF9wcm9jX2FkZHJlc3MgKHN0cmluZyBzKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5N YXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkKiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBl IGd0eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5Cb29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOworKwlwdWJsaWMg c3RhdGljIGJvb2wgaGFzX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBDb2dsLkZlYXR1 cmVJRCBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5C b29sIGlzX29uc2NyZWVuICh2b2lkKiBvYmplY3QpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNf Y29udGV4dCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZV9pbmZvICh2b2lkKiBvYmplY3Qp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBtYXRyaXhfZXF1 YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0 aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxv YXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92 eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2 ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9zb3Vy Y2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5n bGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1 cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29y ZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3Rhbmds ZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9h dCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsKKysJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX2ZyYW1lYnVm ZmVyICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgcmVjdGFuZ2xlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVy dHMsIHVpbnQgbl9yZWN0cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1Ymxp YyBzdGF0aWMgYm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgu NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1cmVfY29vcmRz IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3Jl Y3RzKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wg aXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRlIChmbG9hdCBh bmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBp c190ZXh0dXJlXzJkICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVi bGljIHN0YXRpYyBib29sIGlzX3RleHR1cmVfMmRfc2xpY2VkICh2b2lkKiBvYmplY3QpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5n KTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgbWF0 cml4X2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZXB0aF90 ZXN0X2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNl dF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBk ZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJcHVibGljIHN0YXRpYyB2b2lk IHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CisrCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfdHJhY2luZ19kaXNhYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CisrCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZCAodm9pZCogZGF0 YSwgc3RyaW5nIGdyb3VwLCBzdHJpbmcgZmlsZW5hbWUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVl biwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUs IHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3Rl eHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBz dHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKysJcHVibGlj IHN0YXRpYyB2b2lkIHNldF90cmFjaW5nX2VuYWJsZWRfb25fdGhyZWFkX3dpdGhfZmQgKHZvaWQq IGRhdGEsIHN0cmluZyBncm91cCwgaW50IGZkKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNo YWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIHNo YWRlcl9pc19jb21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBD b2dsLkhhbmRsZSBzaGFkZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lk IHNoYWRlcl9zb3VyY2UgKENvZ2wuSGFuZGxlIHNoYWRlciwgc3RyaW5nIHNvdXJjZSk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2hhZGVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVi bGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0 bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50 ZXJuYWxfZm9ybWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1 cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFn cyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJu YWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKysJcHVibGljIHN0YXRpYyBD b2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIHN0YXRpYyBD b2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wu VGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhy b3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0 dXJlX25ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWlu dCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUs IENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5U ZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENv Z2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRy aXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3Ry aW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlw ZSB0eXBlLCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCogcG9pbnRl cik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxlIGhhbmRs ZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Rp c2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0 aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRl eF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2Vz TW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQgbWF4X2lu ZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4 X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1l KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2dsLkhhbmRs ZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfaW5k aWNlc19nZXRfZm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSW5kaWNl c1R5cGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRsZSBpbmRpY2Vz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX25ldyAodWludCBu X3ZlcnRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIi KV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVm IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0 IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAo Q29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3Bv cnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9n ZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENv Z2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4g b25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNj cmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUpOworIH0KK2RpZmYgLS1naXQgdmFwaS9wb2xraXQt Z29iamVjdC0xLnZhcGkgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKK2luZGV4IDkzZWZmOGE1 Li5mZWRjNmE0YSAxMDA2NDQKKy0tLSB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaQorKysrIHZh cGkvcG9sa2l0LWdvYmplY3QtMS52YXBpCitAQCAtNyw3ICs3LDcgQEAgbmFtZXNwYWNlIFBvbGtp dCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90 ZWN0ZWQgQWN0aW9uRGVzY3JpcHRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2FjdGlvbl9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYW5ub3RhdGlvbiAo c3RyaW5nIGtleSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGdldF9hbm5vdGF0aW9uIChz dHJpbmcga2V5KTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxf dGVybWluYXRlZCA9IHRydWUpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nW10gZ2V0X2Fubm90 YXRpb25fa2V5cyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24g KCk7CitAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXB1YmxpYyBQb2xr aXQuQXV0aG9yaXR5RmVhdHVyZXMgZ2V0X2JhY2tlbmRfZmVhdHVyZXMgKCk7CisgCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2JhY2tlbmRfbmFtZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfYmFja2VuZF92ZXJzaW9uICgpOworLQkJcHVibGljIHN0cmluZyBnZXRfb3duZXIg KCk7CisrCQlwdWJsaWMgc3RyaW5nPyBnZXRfb3duZXIgKCk7CisgCQlwdWJsaWMgc3RhdGljIFBv bGtpdC5BdXRob3JpdHkgZ2V0X3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0g bnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgYXN5bmMgYm9vbCByZWdpc3Rlcl9h dXRoZW50aWNhdGlvbl9hZ2VudCAoUG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5nIGxvY2Fs ZSwgc3RyaW5nIG9iamVjdF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhy b3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgYm9vbCByZWdpc3Rlcl9hdXRoZW50aWNhdGlvbl9h Z2VudF9zeW5jIChQb2xraXQuU3ViamVjdCBzdWJqZWN0LCBzdHJpbmcgbG9jYWxlLCBzdHJpbmcg b2JqZWN0X3BhdGgsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dz IEdMaWIuRXJyb3I7CitAQCAtNTYsMjEgKzU2LDIyIEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAlw dWJsaWMgY2xhc3MgQXV0aG9yaXphdGlvblJlc3VsdCA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBBdXRob3JpemF0 aW9uUmVzdWx0IChib29sIGlzX2F1dGhvcml6ZWQsIGJvb2wgaXNfY2hhbGxlbmdlLCBQb2xraXQu RGV0YWlscz8gZGV0YWlscyk7CistCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0YWlscyBnZXRf ZGV0YWlscyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIFBvbGtpdC5EZXRhaWxzPyBnZXRfZGV0YWls cyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwMSIpXQorIAkJcHVibGljIGJvb2wgZ2V0 X2Rpc21pc3NlZCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pc19hdXRob3JpemVkICgpOworIAkJ cHVibGljIGJvb2wgZ2V0X2lzX2NoYWxsZW5nZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9yZXRh aW5zX2F1dGhvcml6YXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RlbXBv cmFyeV9hdXRob3JpemF0aW9uX2lkICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRf dGVtcG9yYXJ5X2F1dGhvcml6YXRpb25faWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X2RldGFpbHNfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERldGFpbHMgOiBHTGliLk9iamVjdCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgRGV0YWls cyAoKTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWlu YXRlZCA9IHRydWUpXQorLQkJcHVibGljIHN0cmluZ1tdIGdldF9rZXlzICgpOworKwkJcHVibGlj IHN0cmluZ1tdPyBnZXRfa2V5cyAoKTsKKyAJCXB1YmxpYyB2b2lkIGluc2VydCAoc3RyaW5nIGtl eSwgc3RyaW5nPyB2YWx1ZSk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgbG9va3VwIChzdHJp bmcga2V5KTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gbG9va3VwIChzdHJpbmcga2V5KTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgdHlw ZV9pZCA9ICJwb2xraXRfcGVybWlzc2lvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3Mg UGVybWlzc2lvbiA6IEdMaWIuUGVybWlzc2lvbiwgR0xpYi5Bc3luY0luaXRhYmxlLCBHTGliLklu aXRhYmxlIHsKK0BAIC04OCw3ICs4OSw4IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFN5c3RlbUJ1 c05hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CistCQlwdWJs aWMgUG9sa2l0LlN1YmplY3QgZ2V0X3Byb2Nlc3Nfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2Fu Y2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBQb2xraXQuU3Vi amVjdD8gZ2V0X3Byb2Nlc3Nfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBu dWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBQb2xraXQuVW5peFVzZXI/IGdldF91 c2VyX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdM aWIuRXJyb3I7CisgCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IEBuZXcgKHN0cmluZyBu YW1lKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMg c3RyaW5nIG5hbWUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KK0BAIC0xNDYsOSArMTQ4LDEwIEBA IG5hbWVzcGFjZSBQb2xraXQgeworIAkJcHJvdGVjdGVkIFVuaXhTZXNzaW9uICgpOworIAkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9zZXNzaW9uX2lkICgpOworIAkJcHVibGljIHN0YXRpYyBQ b2xraXQuU3ViamVjdCBAbmV3IChzdHJpbmcgc2Vzc2lvbl9pZCk7CistCQlwdWJsaWMgc3RhdGlj IGFzeW5jIFBvbGtpdC5TdWJqZWN0IG5ld19mb3JfcHJvY2VzcyAoaW50IHBpZCwgR0xpYi5DYW5j ZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRp YyBQb2xraXQuU3ViamVjdCBuZXdfZm9yX3Byb2Nlc3Nfc3luYyAoaW50IHBpZCwgR0xpYi5DYW5j ZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1Ymxp YyBzdGF0aWMgYXN5bmMgUG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2VzcyAoaW50IHBpZCwg R0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVi bGljIHN0YXRpYyBQb2xraXQuU3ViamVjdD8gbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGludCBwaWQs IEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7 CisgCQlwdWJsaWMgdm9pZCBzZXRfc2Vzc2lvbl9pZCAoc3RyaW5nIHNlc3Npb25faWQpOworKwkJ W05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgaW50IHBpZCB7IGNvbnN0cnVjdDsgfQorIAkJ cHVibGljIHN0cmluZyBzZXNzaW9uX2lkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KK0BA IC0xNTYsMTcgKzE1OSwxNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVibGljIGNsYXNzIFVu aXhVc2VyIDogR0xpYi5PYmplY3QsIFBvbGtpdC5JZGVudGl0eSB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgVW5peFVzZXIgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBz dHJpbmc/IGdldF9uYW1lICgpOworIAkJcHVibGljIGludCBnZXRfdWlkICgpOworIAkJcHVibGlj IHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgQG5ldyAoaW50IHVpZCk7CistCQlwdWJsaWMgc3RhdGlj IFBvbGtpdC5JZGVudGl0eSBuZXdfZm9yX25hbWUgKHN0cmluZyBuYW1lKSB0aHJvd3MgR0xpYi5F cnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5PyBuZXdfZm9yX25hbWUgKHN0 cmluZyBuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyB2b2lkIHNldF91aWQgKGlu dCB1aWQpOworIAkJcHVibGljIGludCB1aWQgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgdHlwZV9pZCA9 ICJwb2xraXRfaWRlbnRpdHlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBJZGVu dGl0eSA6IEdMaWIuT2JqZWN0IHsKKyAJCXB1YmxpYyBhYnN0cmFjdCBib29sIGVxdWFsIChQb2xr aXQuSWRlbnRpdHkgYik7CistCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBmcm9tX3N0 cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIFBv bGtpdC5JZGVudGl0eT8gZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9y OworIAkJcHVibGljIGFic3RyYWN0IHVpbnQgaGFzaCAoKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCBz dHJpbmcgdG9fc3RyaW5nICgpOworIAl9CitAQCAtMjAxLDcgKzIwNCw3IEBAIG5hbWVzcGFjZSBQ b2xraXQgeworIAkJQURNSU5JU1RSQVRPUl9BVVRIRU5USUNBVElPTl9SRVFVSVJFRF9SRVRBSU5F RCwKKyAJCUFVVEhPUklaRUQ7CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9zdHJpbmcgKHN0 cmluZyBzdHJpbmcsIFBvbGtpdC5JbXBsaWNpdEF1dGhvcml6YXRpb24gb3V0X2ltcGxpY2l0X2F1 dGhvcml6YXRpb24pOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcg KFBvbGtpdC5JbXBsaWNpdEF1dGhvcml6YXRpb24gaW1wbGljaXRfYXV0aG9yaXphdGlvbik7Cisr CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCBjcHJlZml4ID0gIlBPTEtJVF9FUlJP Ul8iKV0KKyAJcHVibGljIGVycm9yZG9tYWluIEVycm9yIHsKK0BAIC0yMTIsNyArMjE1LDcgQEAg bmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIpXQor LQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBpZGVudGl0eV9mcm9tX3N0cmluZyAoc3Ry aW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50 aXR5PyBpZGVudGl0eV9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0KKyAJcHVi bGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBzdWJqZWN0X2Zyb21fc3RyaW5nIChzdHJpbmcgc3Ry KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNw a2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1w bGF0ZQppbmRleCBiMzJlNzczNGQzYi4uYWU1YTlkNWY3NjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv YnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2J1ZGdpZS1kZXNrdG9w JwogcGtnbmFtZT1idWRnaWUtZGVza3RvcAogdmVyc2lvbj0xMC41LjEKLXJldmlzaW9uPTMKK3Jl dmlzaW9uPTQKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Z2lyCiBjb25maWd1cmVf YXJncz0iLUR3aXRoLWd0ay1kb2M9ZmFsc2UgLUR3aXRoLWRlc2t0b3AtaWNvbnM9bm9uZSIKCkZy b20gMzQ3ZTdhN2VkODcxZmI4YzZkYmVjZjE3MjQzODAxOWI3ZWY2OGZkZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTcgU2VwIDIwMjAgMDY6MjM6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwMi8x MDNdIE5ldyBwYWNrYWdlOiBnbm9tZS1jb3JlLTMuMzYuMAoKLS0tCiBzcmNwa2dzL2dub21lLWNv cmUvdGVtcGxhdGUgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZ25vbWUtY29yZS90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29yZS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY29yZS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMDM3NDk3Y2NiNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2dub21lLWNvcmUvdGVtcGxhdGUKQEAgLTAsMCArMSw1NCBAQAorIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtY29yZScKK3BrZ25hbWU9Z25vbWUtY29yZQordmVyc2lvbj0zLjM4LjAKK3Jl dmlzaW9uPTEKK2J1aWxkX3N0eWxlPW1ldGEKK3Nob3J0X2Rlc2M9IkdOT01FIG1ldGEtcGFja2Fn ZSBmb3IgVm9pZCBMaW51eCAtIGNvcmUgY29tcG9uZW50cyIKK21haW50YWluZXI9InE2NiA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5LCBMR1BMLTIuMC1vbmx5 IgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lmdub21lLm9yZyIKKworZGVwZW5kcz0iCisgYWR3YWl0 YS1pY29uLXRoZW1lPj0zLjM4LjAKKyBhdC1zcGkyLWNvcmU+PTIuMzguMAorIGF0LXNwaTItYXRr Pj0yLjM4LjAKKyBjYW50YXJlbGwtZm9udHM+PTAuMjAxCisgY2FyaWJvdT49MC40LjIxCisgZGNv bmY+PTAuMzYuMAorIGV2b2x1dGlvbi1kYXRhLXNlcnZlcj49My4zOC4wCisgZm9sa3M+PTAuMTQu MAorIGZvbnQtYWRvYmUtc291cmNlLWNvZGUtcHJvPj0yLjAzMFIKKyBnY3I+PTMuMzYuMAorIGdk bT49My4zOC4wCisgZ2VvY29kZS1nbGliPj0zLjI2LjAKKyBnZmJncmFwaD49MC4yLjQKKyBnanM+ PTEuNjYuMAorIGdsaWI+PTIuNjYuMAorIGdsaWItbmV0d29ya2luZz49Mi42Ni4wCisgZ21pbWUz Pj0zLjIuNworIGdub21lLWJhY2tncm91bmRzPj0zLjM4LjAKKyBnbm9tZS1ibHVldG9vdGg+PTMu MzQuMQorIGdub21lLWNvbG9yLW1hbmFnZXI+PTMuMzYuMAorIGdub21lLWNvbnRyb2wtY2VudGVy Pj0zLjM4LjAKKyBnbm9tZS1kZXNrdG9wPj0zLjM4LjAKKyBnbm9tZS1nZXR0aW5nLXN0YXJ0ZWQt ZG9jcz49My4zNi4yCisgZ25vbWUtaW5pdGlhbC1zZXR1cD49My4zOC4wCisgZ25vbWUta2V5cmlu Zz49My4zNi4wCisgZ25vbWUtb25saW5lLWFjY291bnRzPj0zLjM3LjkwCisgZ25vbWUtb25saW5l LW1pbmVycz49My4zNC4wCisgZ25vbWUtc2Vzc2lvbj49My4zOC4wCisgZ25vbWUtc2V0dGluZ3Mt ZGFlbW9uPj0zLjM4LjAKKyBnbm9tZS1zaGVsbD49My4zOC4wCisgZ25vbWUtc2hlbGwtZXh0ZW5z aW9ucz49My4zOC4wCisgZ25vbWUtdGhlbWVzLXN0YW5kYXJkPj0zLjI4CisgZ25vbWUtdXNlci1k b2NzPj0zLjM4LjAKKyBnbm9tZS12aWRlby1lZmZlY3RzPj0wLjUuMAorIGdzZXR0aW5ncy1kZXNr dG9wLXNjaGVtYXM+PTMuMzguMAorIGd2ZnM+PTEuNDYuMAorIG11dHRlcj49My4zOC4wCisgbmF1 dGlsdXM+PTMuMzguMAorIHN1c2hpPj0zLjM0LjAKKyB0cmFja2VyMz49My4wLjAKKyB5ZWxwPj0z LjM4LjAKKyB4ZGctZGVza3RvcC1wb3J0YWwtZ3RrPj0xLjguMAorIHplbml0eT49My4zMi4wIgoK RnJvbSBjZjUyOTIxYmY1NTNiMTM1NzE4ZGUwZmI2ZjI3M2RlMDM4MDAxYmJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwNjoyNDowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAz LzEwM10gZ25vbWU6IHVwZGF0ZSB0byAzLjM4LjAKCltjaSBza2lwXQotLS0KIHNyY3BrZ3MvZ25v bWUvdGVtcGxhdGUgfCAyNDEgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUvdGVtcGxh dGUKaW5kZXggOWU3YjZjMjEzMzYuLmFlMTEyNDQxZjMxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2du b21lL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUvdGVtcGxhdGUKQEAgLTEsMTgxICsxLDk4 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZScKIHBrZ25hbWU9Z25vbWUKLXZlcnNpb249 My4zMi4wCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9bWV0YQogc2hvcnRfZGVzYz0iR05PTUUgbWV0YS1wYWNrYWdlIGZvciBWb2lkIExpbnV4Igog bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb25seSwgTEdQTC0yLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5nbm9t ZS5vcmciCiAKLWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyPj0xLjE0LjBfMQotIGFkd2FpdGEtaWNv bi10aGVtZT49My4zMi4wCi0gYXQtc3BpMi1hdGs+PTIuMzIuMAotIGF0LXNwaTItY29yZT49Mi4z Mi4wCi0gYXRrPj0yLjMyLjAKLSBhdGttbT49Mi4yNC4yCi0gY2Fpcm9tbT49MS4xMi4yXzIKLSBj YW50YXJlbGwtZm9udHM+PTAuMC4yNQotIGNhcmlib3U+PTAuNC4yMQotIGNocm9tZS1nbm9tZS1z aGVsbD49MTAuMC4wCi0gY2x1dHRlcj49MS4yNi4yCi0gY2x1dHRlci1nc3QzPj0zLjAuMjQKLSBj bHV0dGVyLWd0az49MS44LjQKLSBjb2dsPj0xLjIyLjIKLSBkY29uZj49MC4zMC4wCi0gZW9nPj0z LjMyLjAKLSBldmluY2U+PTMuMzIuMAotIGV2b2x1dGlvbi1kYXRhLXNlcnZlcj49My4zMi4wCi0g ZmlsZS1yb2xsZXI+PTMuMzIuMAotIGZvbGtzPj0wLjExLjQKLSBmb250LWFkb2JlLXNvdXJjZS1j b2RlLXBybz49Mi4wMzBSCi0gZ2NhYj49MC43Ci0gZ2NyPj0zLjI4LjAKLSBnZGstcGl4YnVmPj0y LjM4LjAKLSBnZG0+PTMuMzIuMAotIGdlb2NvZGUtZ2xpYj49My4yNi4wXzEKLSBnZmJncmFwaD49 MC4yLjMKLSBnanM+PTEuNTYuMAotIGdsaWI+PTIuNjAuMAotIGdsaWItbmV0d29ya2luZz49Mi42 MC4wCi0gZ2xpYm1tPj0yLjYwLjAKLSBnbWltZT49Mi42LjIzCi0gZ25vbWUtYmFja2dyb3VuZHM+ PTMuMzIuMAotIGdub21lLWJsdWV0b290aD49My4zMi4wCi0gZ25vbWUtY29sb3ItbWFuYWdlcj49 My4zMi4wCi0gZ25vbWUtY29udHJvbC1jZW50ZXI+PTMuMzIuMAotIGdub21lLWRlc2t0b3A+PTMu MzIuMAotIGdub21lLWdldHRpbmctc3RhcnRlZC1kb2NzPj0zLjMyLjAKLSBnbm9tZS1pbml0aWFs LXNldHVwPj0zLjMyLjAKLSBnbm9tZS1rZXlyaW5nPj0zLjI4LjEKLSBnbm9tZS1vbmxpbmUtYWNj b3VudHM+PTMuMzIuMAotIGdub21lLW9ubGluZS1taW5lcnM+PTMuMzAuMAotIGdub21lLXNlc3Np b24+PTMuMzIuMAotIGdub21lLXNldHRpbmdzLWRhZW1vbj49My4zMi4wCi0gZ25vbWUtc2hlbGw+ PTMuMzIuMAotIGdub21lLXNoZWxsLWV4dGVuc2lvbnM+PTMuMzIuMAotIGdub21lLXRoZW1lcy1z dGFuZGFyZD49My4yMi4zCi0gZ25vbWUtdHdlYWtzPj0zLjMyLjAKLSBnbm9tZS11c2VyLWRvY3M+ PTMuMzIuMAotIGdub21lLXZpZGVvLWVmZmVjdHM+PTAuNC4zCi0gZ29iamVjdC1pbnRyb3NwZWN0 aW9uPj0xLjYwLjAKLSBnb20+PTAuMy4yXzEKLSBncmlsbz49MC4zLjQKLSBncmlsby1wbHVnaW5z Pj0wLjMuNQotIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXM+PTMuMzIuMAorZGVwZW5kcz0iCisg Z25vbWUtY29yZT49JHt2ZXJzaW9ufQorIGJhb2JhYj49My4zOC4wCisgY2hlZXNlPj0zLjM4LjAK KyBlb2c+PTMuMzguMAorIGV2aW5jZT49My4zOC4wCisgZmlsZS1yb2xsZXI+PTMuMzguMAorIGdl ZGl0Pj0zLjM4LjAKKyBnbm9tZS1jYWxjdWxhdG9yPj0zLjM4LjAKKyBnbm9tZS1jYWxlbmRhcj49 My4zOC4wCisgZ25vbWUtY2hhcmFjdGVycz49My4zNC4wCisgZ25vbWUtY2xvY2tzPj0zLjM4LjAK KyBnbm9tZS1jb250YWN0cz49My4zNy4yCisgZ25vbWUtZGlzay11dGlsaXR5Pj0zLjM4LjAKKyBn bm9tZS1mb250LXZpZXdlcj49My4zNC4wCisgZ25vbWUtbWFwcz49My4zOC4wCisgZ25vbWUtbXVz aWM+PTMuMzguMAorIGdub21lLXNjcmVlbnNob3Q+PTMuMzguMAorIGdub21lLXN5c3RlbS1tb25p dG9yPj0zLjM4LjAKKyBnbm9tZS10ZXJtaW5hbD49My4zOC4wCisgZ25vbWUtdHdlYWtzPj0zLjM0 LjAKKyBnbm9tZS13ZWF0aGVyPj0zLjM2LjEKICBnc291bmQ+PTEuMC4yCi0gZ3NwZWxsPj0xLjgu MAotIGdzc2RwPj0xLjAuMgotIGd0ayszPj0zLjI0LjAKLSBndGttbT49My4yMi4xCi0gZ3Rrc291 cmNldmlldz49My4yNC40Ci0gZ3VwbnA+PTEuMC4yCi0gZ3VwbnAtYXY+PTAuMTIuMTAKLSBndXBu cC1kbG5hPj0wLjEwLjUKLSBndXBucC1pZ2Q+PTAuMi40Ci0gZ3Zmcz49MS40MC4wCi0ganNvbi1n bGliPj0xLjQuMgotIGxpYmNyb2NvPj0wLjYuMTIKLSBsaWJnZGF0YT49MC4xNi4xXzIKLSBsaWJn ZWUwOD49MC4yMC4wCi0gbGliZ2VwdWI+PTAuNF8xCi0gbGliZ25vbWVrYmQ+PTMuMjYuMAotIGxp YmdzZj49MS4xNC40MQotIGxpYmd0b3A+PTIuNDAuMAotIGxpYmd3ZWF0aGVyPj0zLjMyLjAKLSBs aWJneHBzPj0wLjIuNV8xCi0gbGlibWVkaWFhcnQ+PTEuOS40Ci0gbGlibm90aWZ5Pj0wLjcuNl80 Ci0gbGlicGVhcz49MS4yMi4wCi0gbGlicnN2Zz49Mi40NC4wCi0gbGlic2VjcmV0Pj0wLjE4LjUK LSBsaWJzaWdjKys+PTIuMTAuMAotIGxpYnNvdXA+PTIuNjAuMAotIGxpYnhtbDI+PTIuNi4zMAot IGxpYnhzbHQ+PTEuMS4yMgotIGxpYnphcG9qaXQ+PTAuMC4zCi0gbW0tY29tbW9uPj0wLjkuMTBf MgotIG1vdXNldHdlYWtzPj0zLjEyLjAKLSBtdXR0ZXI+PTMuMzIuMAotIG5hdXRpbHVzPj0zLjMy LjAKKyBnc3BlbGw+PTEuOC4zCisgbW91c2V0d2Vha3M+PTMuMzIuMAogIG5ldHdvcmstbWFuYWdl ci1hcHBsZXQ+PTEuOC4yCi0gb3JjYT49My4zMi4wCi0gcGFuZ28+PTEuNDIuMAotIHBhbmdvbW0+ PTIuNDAuMQotIHBob2Rhdj49Mi4yCi0gcHl0aG9uLWF0c3BpPj0yLjI2LjAKLSBweXRob24tZ29i amVjdD49My4yNi4wCi0gcmVzdD49MC44LjAKLSB0cmFja2VyPj0yLjAuMAotIHZhbGE+PTAuNDQu MAotIHZ0ZTM+PTAuNTQuMAotIHllbHA+PTMuMzIuMAotIHllbHAtdG9vbHM+PTMuMzIuMAotIHll bHAteHNsPj0zLjMyLjAKLSB6ZW5pdHk+PTMuMzIuMCIKKyBvcmNhPj0zLjM4LjAKKyBwaG9kYXY+ PTIuNQorIHNpbXBsZS1zY2FuPj0zLjM4LjAKKyB0b3RlbT49My4zOC4wCisgeWVscC10b29scz49 My4zOC4wIgogCi1fYXBwc19kZXBlbmRzPSJiYW9iYWI+PTMuMzIuMAotIGNoZWVzZT49My4zMi4w Ci0gZGNvbmYtZWRpdG9yPj0zLjMyLjAKLSBkZXZoZWxwPj0zLjMyLjAKLSBlcGlwaGFueT49My4z Mi4wCi0gZXZvbHV0aW9uPj0zLjMyLjAKLSBnaGV4Pj0zLjE4LjMKLSBnaXRnPj0zLjI2LjAKLSBn ZWRpdD49My4zMi4wCi0gZ2VkaXQtcGx1Z2lucz49My4zMi4wCi0gZ25vbWUtYm94ZXM+PTMuMzIu MAotIGdub21lLWJ1aWxkZXI+PTMuMzIuMAotIGdub21lLWNhbGN1bGF0b3I+PTMuMzIuMAotIGdu b21lLWNhbGVuZGFyPj0zLjMyLjAKLSBnbm9tZS1jaGFyYWN0ZXJzPj0zLjMyLjAKLSBnbm9tZS1j bG9ja3M+PTMuMzIuMAotIGdub21lLWRpY3Rpb25hcnk+PTMuMjYuMAotIGdub21lLWRpc2stdXRp bGl0eT49My4zMi4wCi0gZ25vbWUtZG9jdW1lbnRzPj0zLjMyLjAKLSBnbm9tZS1mb250LXZpZXdl cj49My4zMi4wCi0gZ25vbWUtbWFwcz49My4zMi4wCi0gZ25vbWUtbXVzaWM+PTMuMzIuMAorX2Fw cHNfZGVwZW5kcz0iCisgZGNvbmYtZWRpdG9yPj0zLjM4LjAKKyBkZXZoZWxwPj0zLjM4LjAKKyBl cGlwaGFueT49My4zOC4wCisgZXZvbHV0aW9uPj0zLjM4LjAKKyBnaGV4Pj0zLjE4LjQKKyBnaXRn Pj0zLjMyLjEKKyBnZWRpdC1wbHVnaW5zPj0zLjM4LjAKKyBnbm9tZS1ib3hlcz49My4zOC4wCisg Z25vbWUtYnVpbGRlcj49My4zOC4wCisgZ25vbWUtY2FsY3VsYXRvcj49My4zOC4wCisgZ25vbWUt Y2FsZW5kYXI+PTMuMzguMAorIGdub21lLWNoYXJhY3RlcnM+PTMuMzQuMAorIGdub21lLWNsb2Nr cz49My4zOC4wCisgZ25vbWUtZGljdGlvbmFyeT49My4yNi4xCisgZ25vbWUtZGlzay11dGlsaXR5 Pj0zLjM4LjAKKyBnbm9tZS1kb2N1bWVudHM+PTMuMzQuMAorIGdub21lLWZvbnQtdmlld2VyPj0z LjM0LjAKKyBnbm9tZS1tYXBzPj0zLjM4LjAKKyBnbm9tZS1tdXNpYz49My4zOC4wCiAgZ25vbWUt bmV0dG9vbD49My44LjEKLSBnbm9tZS1waG90b3M+PTMuMzIuMAotIGdub21lLXJlY2lwZXM+PTIu MC4wCi0gZ25vbWUtc2NyZWVuc2hvdD49My4zMi4wCi0gZ25vbWUtc291bmQtcmVjb3JkZXI+PTMu MzIuMAotIGdub21lLXN5c3RlbS1tb25pdG9yPj0zLjMyLjAKLSBnbm9tZS10ZXJtaW5hbD49My4z Mi4wCi0gZ25vbWUtdHdlYWtzPj0zLjMyLjAKLSBndGstdm5jPj0wLjYuMF8yCi0gbGliY2hhbXBs YWluPj0wLjEyLjE2Ci0gbmF1dGlsdXMtc2VuZHRvPj0zLjguMAorIGdub21lLXBob3Rvcz49My4z Ny45MS4xCisgZ25vbWUtcmVjaXBlcz49Mi4wLjIKKyBnbm9tZS1zY3JlZW5zaG90Pj0zLjM4LjAK KyBnbm9tZS1zb3VuZC1yZWNvcmRlcj49My4zNC4wCisgZ25vbWUtc3lzdGVtLW1vbml0b3I+PTMu MzguMAorIGdub21lLXRlcm1pbmFsPj0zLjM4LjAKICBuZW1pdmVyPj0wLjkuNgotIHBvbGFyaT49 My4zMi4wCi0gcnlnZWw+PTAuMzYuMAotIHNpbXBsZS1zY2FuPj0zLjMyLjAKLSBzdXNoaT49My4z Mi4wCi0gdG90ZW0+PTMuMzIuMAotIHRvdGVtLXBsLXBhcnNlcj49My4yNi4wCisgcG9sYXJpPj0z LjM2LjMKKyByeWdlbD49MC40MC4wCisgc2ltcGxlLXNjYW4+PTMuMzguMAorIHRvdGVtPj0zLjM4 LjAKICB2aW5vPj0zLjIyLjAiCiAKIF9nYW1lc19jb2xsZWN0aW9uX2RlcGVuZHM9IgotIGFpc2xl cmlvdD49My4yMi4zCi0gZml2ZS1vci1tb3JlPj0zLjMyLjAKLSBmb3VyLWluLWEtcm93Pj0zLjMy LjAKLSBnbm9tZS0yMDQ4Pj0zLjMyLjAKLSBnbm9tZS1jaGVzcz49My4zMi4wCi0gZ25vbWUta2xv dHNraT49My4zMi4wCi0gZ25vbWUtbWFoam9uZ2c+PTMuMzIuMAotIGdub21lLW1pbmVzPj0zLjMy LjAKLSBnbm9tZS1uaWJibGVzPj0zLjI0LjAKLSBnbm9tZS1yb2JvdHM+PTMuMzIuMAotIGdub21l LXN1ZG9rdT49My4zMi4wCi0gZ25vbWUtdGV0cmF2ZXg+PTMuMzIuMAotIGhpdG9yaT49My4yMi40 Ci0gaWFnbm8+PTMuMzIuMAotIGxpZ2h0c29mZj49My4yNi4wCi0gcXVhZHJhcGFzc2VsPj0zLjMy LjAKLSBzd2VsbC1mb29wPj0zLjI2LjAKLSB0YWxpPj0zLjMyLjAKLSIKKyBhaXNsZXJpb3Q+PTMu MjIuMTIKKyBmaXZlLW9yLW1vcmU+PTMuMzIuMgorIGZvdXItaW4tYS1yb3c+PTMuMzYuNAorIGdu b21lLTIwNDg+PTMuMzYuNAorIGdub21lLWNoZXNzPj0zLjM2LjEKKyBnbm9tZS1rbG90c2tpPj0z LjM2LjMKKyBnbm9tZS1tYWhqb25nZz49My4zNi4yCisgZ25vbWUtbWluZXM+PTMuMzYuMQorIGdu b21lLW5pYmJsZXM+PTMuMjYuMQorIGdub21lLXJvYm90cz49My4zNi4xCisgZ25vbWUtc3Vkb2t1 Pj0zLjM2LjAKKyBnbm9tZS10ZXRyYXZleD49My4zNi40CisgaGl0b3JpPj0zLjM4LjAKKyBpYWdu bz49My4zNi40CisgbGlnaHRzb2ZmPj0zLjM2LjAKKyBxdWFkcmFwYXNzZWw+PTMuMzYuMDUKKyBz d2VsbC1mb29wPj0zLjM0LjEKKyB0YWxpPj0zLjM2LjQiCiAKIGdub21lLWFwcHNfcGFja2FnZSgp IHsKIAlkZXBlbmRzPSIkX2FwcHNfZGVwZW5kcyIK --===============4697709555141492826==--