From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 30320 invoked from network); 16 Sep 2020 23:03:24 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 16 Sep 2020 23:03:24 -0000 Content-Type: multipart/mixed; boundary="===============3261510543049625968==" 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 01:03:16 +0200 List-Id: Message-ID: <20200916230316.jAJs52F4h9Th6z0-013KcMdHi38gMxv2OP_XPnRG_-0@z> GitHub notification mails are now in MIME to allow UTF8. --===============3261510543049625968== 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 ZXJnZWQNCi0gWyBdIG1ha2Ugc3VyZSBjcm9zc2J1aWxkcyB3b3JrDQotIFsgXSB0ZXN0IG9uIG1v cmUgcGxhdGZvcm1zDQotIFsgXSBmaXggdGhlIG1ldGFwYWNrYWdlcyAodGhleSBoYXZlbid0IGJl ZW4gdG91Y2hlZCwgcG9zc2libHkgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzIyOTM2KQ0KLSBbIF0gfn5kcm9wIHRoZSBgdmFsYWAgb3B0aW9uIGlu IHRoZSByZXN0IG9mIHRoZSBwYWNrYWdlc35+IHByb2JhYmx5IGdvbm5hIGRvIHRoYXQgb25jZSB0 aGlzIFBSIGlzIG1lcmdlZA0KDQojIFN0YWJsZSB1cGRhdGVzDQoNCi0gW3hdIG1vempzNzggLT4g NzguMS4wICoqKG5ldykqKg0KLSBbeF0gdmFsYSAtPiAwLjUwLjANCi0gW3hdIHZhbGFkb2MgLT4g MC41MC4wIA0KLSBbeF0gdmFsYWJpbmQgLT4gKHJldmJ1bXApIA0KLSBbeF0gZGV2aGVscCAtPiAz LjM4LjANCi0gW3hdIGdkbCAtPiAzLjM0LjANCi0gW3hdIGdsYWRlMyAtPiAzLjM4LjANCi0gW3hd IGxpYmhhbmR5IC0+IChyZXZidW1wKQ0KLSBbeF0gbGliaGFuZHkxIC0+IDEuMC4wDQotIFt4XSBs aWJ4ZmNlNHVpIC0+IChyZXZidW1wKQ0KLSBbeF0gbGliZGF6emxlIC0+IDMuMzguMA0KLSBbeF0g YW5qdXRhIC0+IChyZXZidW1wKQ0KLSBbeF0gc3lzcHJvZiAtPiAzLjM4LjANCi0gW3hdIHRyYWNr ZXIgLT4gMi4zLjYNCi0gW3hdIHRyYWNrZXItbWluZXJzIC0+IDIuMy41DQotIFt4XSB0cmFja2Vy MyAtPiAzLjAuMCAqKihuZXcpKioNCi0gW3hdIHRyYWNrZXIzLW1pbmVycyAtPiAzLjAuMCAqKihu ZXcpKioNCi0gW3hdIGJpamliZW4gLT4gMy4zNi4zDQotIFt4XSBncmFwaGVuZSAtPiAxLjEwLjIN Ci0gW3hdIGFtdGsgLT4gNS4yLjANCi0gW3hdIGlvLmVsZW1lbnRhcnkuY29kZSAtPiAocmV2YnVt cCkNCi0gW3hdIHBob2RhdiAtPiAyLjUNCi0gW3hdIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMg LT4gMy4zOC4wDQotIFt4XSBnbGliLW5ldHdvcmtpbmcgLT4gMi42Ni4wDQotIFt4XSBhdC1zcGky LWNvcmUgLT4gMi4zOC4wDQotIFt4XSBhdC1zcGkyLWF0ayAtPiAyLjM4LjANCi0gW3hdIGxpYmd3 ZWF0aGVyIC0+IDMuMzYuMQ0KLSBbeF0gZ25vbWUtbWVudXMgLT4gMy4zNi4wDQotIFt4XSBnbm9t ZS1kZXNrdG9wIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uIC0+IDMuMzgu MA0KLSBbeF0gbXV0dGVyIC0+IDMuMzguMA0KLSBbeF0gY2hlZXNlIC0+IDMuMzguMA0KLSBbeF0g ZXZvbHV0aW9uLWRhdGEtc2VydmVyIC0+IDMuMzguMA0KLSBbeF0gZm9sa3MgLT4gMC4xNC4wDQot IFt4XSBnbm9tZS1vbmxpbmUtYWNjb3VudHMgLT4gMy4zNy45MCAqKipiZXRhIHZlcnNpb24gbnVt YmVyLCBidXQgaW4gdGhlIDMuMzguMCByZWxlYXNlKioqDQotIFt4XSBnbm9tZS1jb250cm9sLWNl bnRlciAtPiAzLjM4LjANCi0gW3hdIGRjb25mLWVkaXRvciAtPiAzLjM4LjANCi0gW3hdIGdqcyAt PiAxLjY2LjANCi0gW3hdIGdub21lLXNoZWxsIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtc2hlbGwt ZXh0ZW5zaW9ucyAtPiAzLjM4LjANCi0gW3hdIGdkbSAtPiAzLjM4LjANCi0gW3hdIGdub21lLXNl c3Npb24gLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1pbml0aWFsLXNldHVwIC0+IDMuMzguMA0KLSBb eF0geGRnLWRlc2t0b3AtcG9ydGFsLWd0ayAtPiAxLjguMA0KLSBbeF0gbmF1dGlsdXMgLT4gMy4z OC4wDQoNCiMgT3RoZXIgdXBkYXRlcyAoc3RpbGwgVE9ETykNCg0KLSBbeF0gZ25vbWUtbWFwcyAt PiAzLjM3LjkxICoqKmJldGEqKioNCi0gW3hdIGV2b2x1dGlvbiAtPiAzLjM3LjkwICoqKmJldGEq KioNCi0gW3hdIGV2b2x1dGlvbi1ld3MgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBweXRo b24zLWF0c3BpIC0+IDIuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gcHl0aG9uLWF0c3BpIC0+IDIu MzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gb3JjYSAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hd IGdub21lLXdlYXRoZXIgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIHZ0ZTMgLT4gMC42 MS45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS10ZXJtaW5hbCAtPiAzLjM3LjkwICoqKmJldGEq KioNCi0gW3hdIGdub21lLWdldHRpbmctc3RhcnRlZC1kb2NzIC0+IDMuMzYuMiAqKnN0YWJsZSoq DQotIFt4XSBnbm9tZS11c2VyLWRvY3MgLT4gMy4zNi4yICoqc3RhYmxlKioNCi0gW3hdIGdub21l LWVwdWItdGh1bWJuYWlsZXIgLT4gMS42ICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWJvb2tzIC0+ IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1jaGFyYWN0ZXJzIC0+IChyZXZidW1w KSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1kb2N1bWVudHMgLT4gKHJldmJ1bXApICoqc3RhYmxl KioNCi0gW3hdIGdub21lLWZvbnQtdmlld2VyIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4 XSBnbm9tZS1zY3JlZW5zYXZlciAtPiAocmV2YnVtcCArIGJ1aWxkIGZpeCkgKipzdGFibGUqKg0K LSBbeF0gdG90ZW0gLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWNsb2NrcyAt PiAzLjM3LjkxICoqKmJldGEqKioNCi0gW3hdIGVwaXBoYW55IC0+IDMuMzcuOTEgKioqYmV0YSoq Kg0KLSBbeF0gZ25vbWUtY29udGFjdHMgLT4gMy4zNy4yICp1bnN0YWJsZSoNCi0gW3hdIGVvZyAt PiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXBob3RvcyAtPiAzLjM3LjkxLjEgKioq YmV0YSoqKg0KLSBbeF0gZXZpbmNlIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZmlsZS1y b2xsZXIgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jYWxlbmRhciAtPiAocmV2 YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtbXVzaWMgLT4gMy4zNy4zICp1bnN0YWJsZSoN Ci0gW3hdIGdub21lLXBhbmVsIC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4XSBtZXRhY2l0eSAt PiAzLjM3LjEgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtZmxhc2hiYWNrIC0+IDMuMzcuMiAqdW5z dGFibGUqDQotIFt4XSB0ZXBsIC0+IDQuNDkuMyAqdW5zdGFibGUqDQotIFt4XSBnZWRpdCAtPiAz LjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ2VkaXQtcGx1Z2lucyAtPiAocmV2YnVtcCkgKipzdGFi bGUqKg0KLSBbeF0gZ25vbWUtbGF0ZXggLT4gMy4zNy4yICp1bnN0YWJsZSoNCi0gW3hdIGJhb2Jh YiAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWJveGVzIC0+IDMuMzcuOTAgKioq YmV0YSoqKg0KLSBbeF0gZ25vbWUtY2FsY3VsYXRvciAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0g W3hdIGdub21lLWRpc2stdXRpbGl0eSAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUt c2NyZWVuc2hvdCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXN5c3RlbS1tb25p dG9yIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0KLSBbeF0gZ3Rrc291cmNldmlldzQgLT4gNC43Ljkw ICoqKmJldGEqKioNCi0gW3hdIHN5c3Byb2YgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBn anMgLT4gMS42NS45MSAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1idWlsZGVyIC0+IDMuMzcuOTAg KioqYmV0YSoqKg0KLSBbeF0gYWR3YWl0YS1pY29uLXRoZW1lIC0+IDMuMzcuMiAqdW5zdGFibGUq DQotIFt4XSBnbm9tZS1iYWNrZ3JvdW5kcyAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gcG9s YXJpIC0+IDMuMzcuMyAqdW5zdGFibGUqDQotIFt4XSBndmZzIC0+IDEuNDUuOTAgKioqYmV0YSoq Kg0KLSBbeF0gbGlic291cCAtPiAyLjcxLjAgKnVuc3RhYmxlKg0KLSBbeF0gcnlnZWwgLT4gMC4z OS4yICp1bnN0YWJsZSoNCi0gW3hdIHNpbXBsZS1zY2FuIC0+IDMuMzcuMyAqdW5zdGFibGUqDQot IFt4XSB5ZWxwLXhzbCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHllbHAgLT4gMy4zNy45 MCAqKipiZXRhKioqDQotIFt4XSB5ZWxwLXRvb2xzIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBb eF0gYnVkZ2llLWRlc2t0b3AgLT4gKHJlYnVpbGQpICoqc3RhYmxlKioNCg0KIyMgTWVyZ2VkDQoN Ci0gW3hdIGxpYnNpZ2MrKzMgLT4gMy4wLjMgKG5ldykNCi0gW3hdIG1tLWNvbW1vbiAtPiAxLjAu MQ0KLSBbeF0gZ2xpYm1tIC0+IDIuNjQuMg0KLSBbeF0gcGFuZ29tbSAtPiAyLjQyLjENCi0gW3hd IGxpYm5vdGlmeSAtPiAwLjcuOQ0KLSBbeF0gYXRrIC0+IDIuMzYuMA0KLSBbeF0gZ3RrKzMgLT4g My4yNC4yMg0KLSBbeF0gbGlicG9ydGFsIC0+IDAuMyAobmV3KQ0KLSBbeF0gY29nbCAtPiAxLjIy LjI4DQotIFt4XSBnZW9jb2RlLWdsaWIgLT4gMy4yNi4yDQotIFt4XSBnZmJncmFwaCAtPiAwLjIu NA0KLSBbeF0gbGliZ3NmIC0+IDEuMTQuNDcNCi0gW3hdIGxpYnNlY3JldCAtPiAwLjIwLjMNCi0g W3hdIGxpYmNoYW1wbGFpbiAtPiAwLjEyLjIwDQotIFt4XSBnb20gLT4gMC40DQotIFt4XSBnc3Nk cCAtPiAxLjIuMw0KLSBbeF0gZ3RrLXZuYyAtPiAxLjAuMCAoZHJvcHMgdW51c2VkIGd0azIgc3Vw cG9ydCkNCi0gW3hdIGd1cG5wIC0+IDEuMi40DQotIFt4XSBnbm9tZS12aWRlby1lZmZlY3RzIC0+ IDAuNS4wDQotIFt4XSBnbGliIC0+IDIuNjYuMA0KLSBbeF0gd2Via2l0Mmd0ayAtPiAyLjMwLjAN Cg0KIyMgVE9ETw0KDQotIFsgXSByZXRyby1ndGsNCi0gWyBdIGdub21lLWdhbWVzCgpBIHBhdGNo IGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMjQyNjAucGF0Y2ggaXMgYXR0YWNoZWQ= --===============3261510543049625968== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSBiN2U5NDUxOGUyZjRjYzVlNWJiY2U2YjI2MzA4MGIzYTI1NjIwMTM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjoyMzowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv OThdIE5ldyBwYWNrYWdlOiBtb3pqczc4LTc4LjEuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9tb3pqczc4LWRldmVs ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi8wMDEtc2lsZW5jZS1zYW5kYm94 LXZpb2xhdGlvbnMucGF0Y2ggICAgICB8ICAyNyArKysrKwogc3JjcGtncy9tb3pqczc4L3BhdGNo ZXMvMDAyLWZpeC1zb25hbWUucGF0Y2ggIHwgIDIyICsrKysKIC4uLi9tb3pqczc4L3BhdGNoZXMv MDAzLWZpeC13YXNtLWFybS5wYXRjaCAgICB8ICAxNiArKysKIC4uLi9tb3pqczc4L3BhdGNoZXMv MDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoICB8ICAxNyArKysKIC4uLi8wMDUtc3BpZGVybW9ua2V5 LWNoZWNrcy1kaXNhYmxlLnBhdGNoICAgICB8ICAxMiArKwogLi4uLzAwNi1tb3pqczc4LnBjLWhv bm9yLXN5c3Jvb3QucGF0Y2ggICAgICAgIHwgIDEwICsrCiAuLi4vcGF0Y2hlcy8wMDctZml4LW1p cHMtc2dpZGVmc19oLnBhdGNoICAgICAgfCAgMTEgKysKIHNyY3BrZ3MvbW96anM3OC9wYXRjaGVz L2NvdmVyYWdlLWFwaS5wYXRjaCAgICB8IDEwNyArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mv bW96anM3OC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICA3MyArKysrKysrKysrKysK IHNyY3BrZ3MvbW96anM3OC91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAx MiBmaWxlcyBjaGFuZ2VkLCAyOTggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNy Y3BrZ3MvbW96anM3OC1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9w YXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9ucy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgt bXVzbC1idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRj aGVzLzAwNS1zcGlkZXJtb25rZXktY2hlY2tzLWRpc2FibGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDYtbW96anM3OC5wYy1ob25vci1zeXNyb290 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZp eC1taXBzLXNnaWRlZnNfaC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3 OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bW96anM3OC90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC91cGRh dGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBmZWNm MTBhZjA5Yi4uOGQzNjJlMTg0OTYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29t bW9uL3NobGlicwpAQCAtMzUzOCw2ICszNTM4LDcgQEAgbGliS0Y1U3luZGljYXRpb24uc28uNSBz eW5kaWNhdGlvbi01LjUwLjBfMQogbGlibHFyLTEuc28uMCBsaWJscXItMC40LjJfMQogbGlibW96 anMtNjAuc28uMCBtb3pqczYwLTYwLjAuMl8xCiBsaWJtb3pqcy02OC5zby4wIG1vempzNjgtNjgu OC4wXzEKK2xpYm1vempzLTc4LnNvLjAgbW96anM3OC03OC4xLjBfMQogbGliZWJ1cjEyOC5zby4x IGxpYmVidXIxMjgtMS4yLjRfMQogbGliZ3Rrc291cmNldmlldy00LnNvLjAgZ3Rrc291cmNldmll dzQtNC4wLjJfMQogbGlid3hfZ3RrM3VfcHJvcGdyaWQtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMt My4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4LWRldmVsIGIvc3JjcGtncy9tb3pq czc4LWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi43NzEzNTk5 MzU2ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC1kZXZlbApAQCAtMCwwICsx IEBACittb3pqczc4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tb3pqczc4L3BhdGNoZXMvMDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNo IGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25z LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzAxMTk0YjY0 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMS1zaWxlbmNl LXNhbmRib3gtdmlvbGF0aW9ucy5wYXRjaApAQCAtMCwwICsxLDI3IEBACisiQ2FycmllZCBvdmVy ICsgdXBkYXRlZCBmcm9tIG1vempzNjgiCitVcHN0cmVhbTogbm8KK0Zyb20gOWFkMTA1NjllMTFh MmZiOTYzNzcxODhmODk1YmM2NmFiY2M5NTExZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IE1hcmMtQW50b2luZSBQZXJlbm5vdSA8TWFyYy1BbnRvaW5lQFBlcmVubm91LmNvbT4KK0Rh dGU6IFdlZCwgNSBTZXAgMjAxOCAxNTowNToyNCArMDIwMAorU3ViamVjdDogW1BBVENIXSBzaWxl bmNlIHNhbmRib3ggdmlvbGF0aW9ucworCitTaWduZWQtb2ZmLWJ5OiBNYXJjLUFudG9pbmUgUGVy ZW5ub3UgPE1hcmMtQW50b2luZUBQZXJlbm5vdS5jb20+CistLS0KKyBweXRob24vbW96YnVpbGQv bW96YnVpbGQvZnJvbnRlbmQvZW1pdHRlci5weSB8IDUgLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwg NSBkZWxldGlvbnMoLSkKKworLS0tIGEvcHl0aG9uL21vemJ1aWxkL21vemJ1aWxkL2Zyb250ZW5k L2VtaXR0ZXIucHkKKysrKyBiL3B5dGhvbi9tb3pidWlsZC9tb3pidWlsZC9mcm9udGVuZC9lbWl0 dGVyLnB5CitAQCAtMTIzOSwxMiArMTIzOSw2IEBAIGNsYXNzIFRyZWVNZXRhZGF0YUVtaXR0ZXIo TG9nZ2luZ01peGluKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2lzIGEgZmlsZW5hbWUsIGJ1dCBhIGRpcmVjdG9yeSBpcyByZXF1aXJlZDogJXMg JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKHJl c29sdmVkIHRvICVzKScgJSAobG9jYWxfaW5jbHVkZSwgZnVsbF9wYXRoKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCkKKy0gICAgICAg ICAgICBpZiAoZnVsbF9wYXRoID09IGNvbnRleHQuY29uZmlnLnRvcHNyY2RpciBvcgorLSAgICAg ICAgICAgICAgICAgICAgZnVsbF9wYXRoID09IGNvbnRleHQuY29uZmlnLnRvcG9iamRpcik6Cist ICAgICAgICAgICAgICAgIHJhaXNlIFNhbmRib3hWYWxpZGF0aW9uRXJyb3IoCistICAgICAgICAg ICAgICAgICAgICAnUGF0aCBzcGVjaWZpZWQgaW4gTE9DQUxfSU5DTFVERVMgJworLSAgICAgICAg ICAgICAgICAgICAgJyglcykgcmVzb2x2ZXMgdG8gdGhlIHRvcHNyY2RpciBvciB0b3BvYmpkaXIg KCVzKSwgd2hpY2ggaXMgJworLSAgICAgICAgICAgICAgICAgICAgJ25vdCBhbGxvd2VkJyAlIChs b2NhbF9pbmNsdWRlLCBmdWxsX3BhdGgpLCBjb250ZXh0KQorICAgICAgICAgICAgIGluY2x1ZGVf b2JqID0gTG9jYWxJbmNsdWRlKGNvbnRleHQsIGxvY2FsX2luY2x1ZGUpCisgICAgICAgICAgICAg bG9jYWxfaW5jbHVkZXMuYXBwZW5kKGluY2x1ZGVfb2JqLnBhdGguZnVsbF9wYXRoKQorICAgICAg ICAgICAgIHlpZWxkIGluY2x1ZGVfb2JqCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0 Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1m aXgtc29uYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5j YzU0MzEwOTM5OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAw Mi1maXgtc29uYW1lLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKKyJDYXJyaWVkIG92ZXIgZnJvbSBt b3pqczY4IgorLS0tIGEvanMvc3JjL2J1aWxkL01ha2VmaWxlLmluCisrKysgYi9qcy9zcmMvYnVp bGQvTWFrZWZpbGUuaW4KK0BAIC03OCw2ICs3OCw4IEBACisgZW5kaWYKKyBpZm5lcSAoLCQoU0hB UkVEX0xJQlJBUlkpKQorIAkkKFNZU0lOU1RBTEwpICQoU0hBUkVEX0xJQlJBUlkpICQoREVTVERJ UikkKGxpYmRpcikKKysJbXYgLWYgJChERVNURElSKSQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZ KSAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpLjAKKysJbG4gLXMgJChTSEFS RURfTElCUkFSWSkuMCAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpCisgaWZl cSAoJChPU19BUkNIKSxEYXJ3aW4pCisgCWluc3RhbGxfbmFtZV90b29sIC1pZCAkKGFic3BhdGgg JChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpKSAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVE X0xJQlJBUlkpCisgZW5kaWYKKy0tLSBhL2pzL3NyYy9idWlsZC9tb3ouYnVpbGQKKysrKyBiL2pz L3NyYy9idWlsZC9tb3ouYnVpbGQKK0BAIC0yNSw2ICsyNSw3IEBACisgaWYgQ09ORklHWydKU19T SEFSRURfTElCUkFSWSddOgorICAgICBHZWNrb1NoYXJlZExpYnJhcnkoJ2pzJywgbGlua2FnZT1O b25lKQorICAgICBTSEFSRURfTElCUkFSWV9OQU1FID0gQ09ORklHWydKU19MSUJSQVJZX05BTUUn XQorKyAgICBMREZMQUdTICs9IFsnLVdsLC1zb25hbWUsbGlie30uc28uMCcuZm9ybWF0KFNIQVJF RF9MSUJSQVJZX05BTUUpXQorIAorICAgICAjIEVuc3VyZSBzeW1ib2wgdmVyc2lvbnMgb2Ygc2hh cmVkIGxpYnJhcnkgb24gTGludXggZG8gbm90IGNvbmZsaWN0CisgICAgICMgd2l0aCB0aG9zZSBp biBsaWJ4dWwuCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdh c20tYXJtLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODkxYTc2NTIwNTYK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20t YXJtLnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKKyJUYWtlbiBmcm9tIGZpcmVmb3gtZXNyIgorLS0t IGEvanMvc3JjL3dhc20vV2FzbVNpZ25hbEhhbmRsZXJzLmNwcAorKysrIGIvanMvc3JjL3dhc20v V2FzbVNpZ25hbEhhbmRsZXJzLmNwcAorQEAgLTI0Myw5ICsyNDMsOSBAQAorIC8vIElmIHlvdSBy dW4gaW50byBjb21waWxlIHByb2JsZW1zIG9uIGEgdGllci0zIHBsYXRmb3JtLCB5b3UgY2FuIGRp c2FibGUgdGhlCisgLy8gZW11bGF0aW9uIGhlcmUuCisgCistI2lmIGRlZmluZWQoX19saW51eF9f KSAmJiBkZWZpbmVkKF9fYXJtX18pCistIyAgZGVmaW5lIFdBU01fRU1VTEFURV9BUk1fVU5BTElH TkVEX0ZQX0FDQ0VTUworLSNlbmRpZgorKy8vICNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVm aW5lZChfX2FybV9fKQorKy8vICMgIGRlZmluZSBXQVNNX0VNVUxBVEVfQVJNX1VOQUxJR05FRF9G UF9BQ0NFU1MKKysvLyAjZW5kaWYKKyAKKyAjaWZkZWYgV0FTTV9FTVVMQVRFX0FSTV9VTkFMSUdO RURfRlBfQUNDRVNTCisgIyAgaW5jbHVkZSA8c3lzL3VzZXIuaD4KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1idWlsZC5wYXRjaCBiL3NyY3BrZ3MvbW96 anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uZjYyOWZhMmFjMzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL21vempzNzgvcGF0Y2hlcy8wMDQtZml4LW11c2wtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwx NyBAQAorIkNhcnJpZWQgb3ZlciBmcm9tIG1vempzNjAiCitVcHN0cmVhbTogTm8KK1JlYXNvbjog bW96anM2OCBtaXNjb21waWxlcyBvbiBtdXNsIGlmIGJ1aWx0IHdpdGggSEFWRV9USFJFQURfVExT X0tFWVdPUkQ6CitodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lz c3Vlcy8yNTk4CitkaWZmIC0tZ2l0IGEvanMvc3JjL29sZC1jb25maWd1cmUuaW4gYi9qcy9zcmMv b2xkLWNvbmZpZ3VyZS5pbgorLS0tIGEvanMvc3JjL29sZC1jb25maWd1cmUuaW4KKysrKyBiL2pz L3NyYy9vbGQtY29uZmlndXJlLmluCitAQCAtMTI3Miw2ICsxMjcyLDkgQEAKKyAgICAgKi1hbmRy b2lkKnwqLWxpbnV4YW5kcm9pZCopCisgICAgICAgOgorICAgICAgIDs7CisrICAgICotbXVzbCop CisrICAgICAgOgorKyAgICAgIDs7CisgICAgICopCisgICAgICAgQUNfREVGSU5FKEhBVkVfVEhS RUFEX1RMU19LRVlXT1JEKQorICAgICAgIDs7CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgv cGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoIGIvc3JjcGtncy9t b3pqczc4L3BhdGNoZXMvMDA1LXNwaWRlcm1vbmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjZlYWJhYmQxZjIKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNr cy1kaXNhYmxlLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKK1NvdXJjZTpGZWRvcmEKK1JlYXNvbjog Q2hlY2tzIGZhaWxlZChUb2RvOiBGaWd1cmUgb3V0IHdoeSkKKysrKyBhL2NvbmZpZy9ydW5fc3Bp ZGVybW9ua2V5X2NoZWNrcy5weQorKysrIGIvY29uZmlnL3J1bl9zcGlkZXJtb25rZXlfY2hlY2tz LnB5CitAQCAtMTEsNSArMTEsNSBAQAorICAgICBmb3Igc2NyaXB0IGluIHNjcmlwdHM6CisgICAg ICAgICByZXRjb2RlID0gc3VicHJvY2Vzcy5jYWxsKAorICAgICAgICAgICAgIFtzeXMuZXhlY3V0 YWJsZSwgc2NyaXB0XSwgY3dkPWJ1aWxkY29uZmlnLnRvcHNyY2RpcikKKy0gICAgICAgIGlmIHJl dGNvZGUgIT0gMDoKKy0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oc2NyaXB0ICsgIiBmYWls ZWQiKQorKyAgICAgICAgI2lmIHJldGNvZGUgIT0gMDoKKysgICAgICAgICMgICAgcmFpc2UgRXhj ZXB0aW9uKHNjcmlwdCArICIgZmFpbGVkIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9w YXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2ggYi9zcmNwa2dzL21vempz NzgvcGF0Y2hlcy8wMDYtbW96anM3OC5wYy1ob25vci1zeXNyb290LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MTIxNGI4ZWNjZgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3Qu cGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorIkNhcnJpZWQgb3ZlciBmcm9tIG1vempzNjAiCitSZWFz b246IEZpeCB0aGUgJy1pbmNsdWRlJyBkaXJlY3RpdmUsIG90aGVyd2lzZSBpdCB0cmllcyB0byB1 c2UgdGhlIGhvc3QncyBoZWFkZXIKKy0tLSBhL2pzL3NyYy9idWlsZC9qcy5wYy5pbgorKysrIGIv anMvc3JjL2J1aWxkL2pzLnBjLmluCitAQCAtMTEsNCArMTEsNCBAQAorICMgVXNlIC1pc3lzdGVt IGZvciBpbmNsdWRlcyByYXRoZXIgdGhhbiAtSSwgdG8gbWFyayB0aGVtIGFzICJzeXN0ZW0gaGVh ZGVycyIKKyAjIHRoYXQgZG9uJ3QgZ2VuZXJhdGUgd2FybmluZyBkaWFnbm9zdGljcy4gRm9yIGp1 c3RpZmljYXRpb24sIHNlZQorICMgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9MTUzOTAzNgorLUNmbGFnczogLWluY2x1ZGUgJHtpbmNsdWRlZGlyfS9ASlNfTElC UkFSWV9OQU1FQC9qcy9SZXF1aXJlZERlZmluZXMuaCAtaXN5c3RlbSAke2luY2x1ZGVkaXJ9L0BK U19MSUJSQVJZX05BTUVACisrQ2ZsYWdzOiAtaW5jbHVkZSAke3BjX3N5c3Jvb3RkaXJ9JHtpbmNs dWRlZGlyfS9ASlNfTElCUkFSWV9OQU1FQC9qcy9SZXF1aXJlZERlZmluZXMuaCAtaXN5c3RlbSAk e2luY2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05BTUVACmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempz NzgvcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dpZGVmc19oLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDA3LWZpeC1taXBzLXNnaWRlZnNfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uYWJiMTQwMjMzYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL21vempzNzgvcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dpZGVmc19oLnBhdGNoCkBAIC0wLDAg KzEsMTEgQEAKKy0tLSBhL21mYnQvUmFuZG9tTnVtLmNwcAkyMDIwLTA0LTI5IDIzOjQ5OjQwLjAw MDAwMDAwMCArMDIwMAorKysrIGIvbWZidC9SYW5kb21OdW0uY3BwCTIwMjAtMDgtMDQgMTk6Mjk6 MzYuMTI3NDcxMzAxICswMjAwCitAQCAtNTIsNyArNTIsNyBAQAorICMgIGVsaWYgZGVmaW5lZChf X3MzOTBfXykKKyAjICAgIGRlZmluZSBHRVRSQU5ET01fTlIgMzQ5CisgIyAgZWxpZiBkZWZpbmVk KF9fbWlwc19fKQorLSMgICAgaW5jbHVkZSA8c2dpZGVmcy5oPgorKyMgICAgaW5jbHVkZSA8YXNt L3NnaWRlZnMuaD4KKyAjICAgIGlmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJMzIKKyAjICAg ICAgZGVmaW5lIEdFVFJBTkRPTV9OUiA0MzUzCisgIyAgICBlbGlmIF9NSVBTX1NJTSA9PSBfTUlQ U19TSU1fQUJJNjQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdl LWFwaS5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTNlOTQ3NTYxY2YKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy9jb3ZlcmFnZS1hcGkucGF0Y2gK QEAgLTAsMCArMSwxMDcgQEAKK0Zyb20gZTVhMmViOTlmNjUzYWUwM2M2N2U1MzZkZjFkNTVkMjY1 YTBhMTYwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEV2YW4gV2Vsc2ggPGNvbnRh Y3RAZXZhbndlbHNoLmNvbT4KK0RhdGU6IE1vbiwgMTAgQXVnIDIwMjAgMTM6MTc6MzYgLTA1MDAK K1N1YmplY3Q6IFtQQVRDSF0gQnVnIDE2NTQ2OTYgLSBJbXBsZW1lbnQgY29kZSBjb3ZlcmFnZSBK U0FQSS4KKyByPW5icCxwdG9tYXRvLGp3YWxkZW4KKworLS0tCisganMvcHVibGljL2V4cGVyaW1l bnRhbC9Db2RlQ292ZXJhZ2UuaCB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysKKyBqcy9z cmMvanNmcmllbmRhcGkuY3BwICAgICAgICAgICAgICAgIHwgIDMgKysrCisganMvc3JjL21vei5i dWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKKyBqcy9zcmMvc2hlbGwvanMuY3BwICAg ICAgICAgICAgICAgICAgIHwgMTEgKysrKysrLS0tLS0KKyA0IGZpbGVzIGNoYW5nZWQsIDM1IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGpzL3B1Ymxp Yy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgKKworZGlmZiAtLWdpdCBhL2pzL3B1YmxpYy9l eHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmggYi9qcy9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVD b3ZlcmFnZS5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwLi4wNmNjMGM5 Y2EKKy0tLSAvZGV2L251bGwKKysrKyBiL2pzL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVy YWdlLmgKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiAtKi0gTW9kZTogQysrOyB0YWItd2lkdGg6IDg7 IGluZGVudC10YWJzLW1vZGU6IG5pbDsgYy1iYXNpYy1vZmZzZXQ6IDIgLSotCisrICogdmltOiBz ZXQgdHM9OCBzdHM9MiBldCBzdz0yIHR3PTgwOgorKyAqIFRoaXMgU291cmNlIENvZGUgRm9ybSBp cyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGUgTW96aWxsYSBQdWJsaWMKKysgKiBMaWNlbnNl LCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0 aGlzCisrICogZmlsZSwgWW91IGNhbiBvYnRhaW4gb25lIGF0IGh0dHA6Ly9tb3ppbGxhLm9yZy9N UEwvMi4wLy4gKi8KKysKKysjaWZuZGVmIGpzX2V4cGVyaW1lbnRhbF9Db2RlQ292ZXJhZ2VfaAor KyNkZWZpbmUganNfZXhwZXJpbWVudGFsX0NvZGVDb3ZlcmFnZV9oCisrCisrI2luY2x1ZGUgImpz dHlwZXMuaCIgICAgIC8vIEpTX0ZSSUVORF9BUEkKKysKKytzdHJ1Y3QgSlNfUFVCTElDX0FQSSBK U0NvbnRleHQ7CisrCisrbmFtZXNwYWNlIGpzIHsKKysKKysvKioKKysgKiBFbmFibGUgdGhlIGNv bGxlY3Rpb24gb2YgbGNvdiBjb2RlIGNvdmVyYWdlIG1ldHJpY3MuCisrICogTXVzdCBiZSBjYWxs ZWQgYmVmb3JlIGEgcnVudGltZSBpcyBjcmVhdGVkIGFuZCBiZWZvcmUgYW55IGNhbGxzIHRvCisr ICogR2V0Q29kZUNvdmVyYWdlU3VtbWFyeS4KKysgKi8KKytleHRlcm4gSlNfRlJJRU5EX0FQSSB2 b2lkIEVuYWJsZUNvZGVDb3ZlcmFnZSgpOworKworK30gIC8vIG5hbWVzcGFjZSBqcworKworKyNl bmRpZiAgLy8ganNfZXhwZXJpbWVudGFsX0NvZGVDb3ZlcmFnZV9oCitkaWZmIC0tZ2l0IGEvanMv c3JjL2pzZnJpZW5kYXBpLmNwcCBiL2pzL3NyYy9qc2ZyaWVuZGFwaS5jcHAKK2luZGV4IGFmN2Ew M2JkNC4uNWYyMGM2NTc2IDEwMDY0NAorLS0tIGEvanMvc3JjL2pzZnJpZW5kYXBpLmNwcAorKysr IGIvanMvc3JjL2pzZnJpZW5kYXBpLmNwcAorQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSAi Z2MvUHVibGljSXRlcmF0b3JzLmgiCisgI2luY2x1ZGUgImdjL1dlYWtNYXAuaCIKKyAjaW5jbHVk ZSAianMvQ2hhcmFjdGVyRW5jb2RpbmcuaCIKKysjaW5jbHVkZSAianMvZXhwZXJpbWVudGFsL0Nv ZGVDb3ZlcmFnZS5oIiAgLy8ganM6OkVuYWJsZUNvZGVDb3ZlcmFnZQorICNpbmNsdWRlICJqcy9Q cmludGYuaCIKKyAjaW5jbHVkZSAianMvUHJveHkuaCIKKyAjaW5jbHVkZSAianMvV3JhcHBlci5o IgorQEAgLTE0NjUsNiArMTQ2Niw4IEBAIEpTX0ZSSUVORF9BUEkgdm9pZCBqczo6RW5hYmxlQWNj ZXNzVmFsaWRhdGlvbihKU0NvbnRleHQqIGN4LCBib29sIGVuYWJsZWQpIHsKKyAgIGN4LT5lbmFi bGVBY2Nlc3NWYWxpZGF0aW9uID0gZW5hYmxlZDsKKyB9CisgCisrSlNfRlJJRU5EX0FQSSB2b2lk IGpzOjpFbmFibGVDb2RlQ292ZXJhZ2UoKSB7IGpzOjpjb3ZlcmFnZTo6RW5hYmxlTENvdigpOyB9 CisrCisgSlNfRlJJRU5EX0FQSSB2b2lkIGpzOjpTZXRSZWFsbVZhbGlkQWNjZXNzUHRyKEpTQ29u dGV4dCogY3gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEpTOjpIYW5kbGVPYmplY3QgZ2xvYmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sKiBhY2Nlc3NwKSB7CitkaWZmIC0tZ2l0IGEvanMvc3JjL21v ei5idWlsZCBiL2pzL3NyYy9tb3ouYnVpbGQKK2luZGV4IGRlYjE1ZDgzYS4uYjRlOWUyYjAyIDEw MDc1NQorLS0tIGEvanMvc3JjL21vei5idWlsZAorKysrIGIvanMvc3JjL21vei5idWlsZAorQEAg LTIxMCw2ICsyMTAsNyBAQCBFWFBPUlRTLmpzICs9IFsKKyBdCisgCisgRVhQT1JUUy5qcy5leHBl cmltZW50YWwgKz0gWworKyAgICAnLi4vcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2Uu aCcsCisgICAgICcuLi9wdWJsaWMvZXhwZXJpbWVudGFsL1NvdXJjZUhvb2suaCcsCisgXQorIAor ZGlmZiAtLWdpdCBhL2pzL3NyYy9zaGVsbC9qcy5jcHAgYi9qcy9zcmMvc2hlbGwvanMuY3BwCitp bmRleCA0YjNmNTQ1ZTYuLjI1MmRkMjRmMCAxMDA2NDQKKy0tLSBhL2pzL3NyYy9zaGVsbC9qcy5j cHAKKysrKyBiL2pzL3NyYy9zaGVsbC9qcy5jcHAKK0BAIC0xMDQsMTAgKzEwNCwxMSBAQAorICNp bmNsdWRlICJqcy9Db21waWxlT3B0aW9ucy5oIgorICNpbmNsdWRlICJqcy9Db250ZXh0T3B0aW9u cy5oIiAgLy8gSlM6OkNvbnRleHRPcHRpb25zeyxSZWZ9CisgI2luY2x1ZGUgImpzL0RlYnVnLmgi CistI2luY2x1ZGUgImpzL0VxdWFsaXR5LmgiICAgICAgICAgICAgICAgICAvLyBKUzo6U2FtZVZh bHVlCistI2luY2x1ZGUgImpzL0Vycm9yUmVwb3J0LmgiICAgICAgICAgICAgICAvLyBKUzo6UHJp bnRFcnJvcgorLSNpbmNsdWRlICJqcy9FeGNlcHRpb24uaCIgICAgICAgICAgICAgICAgLy8gSlM6 OlN0ZWFsUGVuZGluZ0V4Y2VwdGlvblN0YWNrCistI2luY2x1ZGUgImpzL2V4cGVyaW1lbnRhbC9T b3VyY2VIb29rLmgiICAvLyBqczo6e1NldCxGb3JnZXQsfVNvdXJjZUhvb2sKKysjaW5jbHVkZSAi anMvRXF1YWxpdHkuaCIgICAgICAgICAgICAgICAgICAgLy8gSlM6OlNhbWVWYWx1ZQorKyNpbmNs dWRlICJqcy9FcnJvclJlcG9ydC5oIiAgICAgICAgICAgICAgICAvLyBKUzo6UHJpbnRFcnJvcgor KyNpbmNsdWRlICJqcy9FeGNlcHRpb24uaCIgICAgICAgICAgICAgICAgICAvLyBKUzo6U3RlYWxQ ZW5kaW5nRXhjZXB0aW9uU3RhY2sKKysjaW5jbHVkZSAianMvZXhwZXJpbWVudGFsL0NvZGVDb3Zl cmFnZS5oIiAgLy8ganM6OkVuYWJsZUNvZGVDb3ZlcmFnZQorKyNpbmNsdWRlICJqcy9leHBlcmlt ZW50YWwvU291cmNlSG9vay5oIiAgICAvLyBqczo6e1NldCxGb3JnZXQsfVNvdXJjZUhvb2sKKyAj aW5jbHVkZSAianMvR0NWZWN0b3IuaCIKKyAjaW5jbHVkZSAianMvSW5pdGlhbGl6YXRpb24uaCIK KyAjaW5jbHVkZSAianMvSlNPTi5oIgorQEAgLTExNDE2LDcgKzExNDE3LDcgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIqKiBhcmd2LCBjaGFyKiogZW52cCkgeworIAorICAgZW5hYmxlQ29kZUNv dmVyYWdlID0gb3AuZ2V0Qm9vbE9wdGlvbigiY29kZS1jb3ZlcmFnZSIpOworICAgaWYgKGVuYWJs ZUNvZGVDb3ZlcmFnZSkgeworLSAgICBjb3ZlcmFnZTo6RW5hYmxlTENvdigpOworKyAgICBqczo6 RW5hYmxlQ29kZUNvdmVyYWdlKCk7CisgICB9CisgCisgI2lmZGVmIEpTX1dJVEhPVVRfTlNQUgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3RlbXBsYXRlIGIvc3JjcGtncy9tb3pqczc4L3Rl bXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YWFmMDdiZDdk YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZQpAQCAtMCwwICsx LDczIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdtb3pqczc4JworcGtnbmFtZT1tb3pqczc4Cit2 ZXJzaW9uPTc4LjEuMAorcmV2aXNpb249MQord3Jrc3JjPSJmaXJlZm94LSR7dmVyc2lvbn0iCiti dWlsZF93cmtzcmM9anMvc3JjCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitob3N0bWFrZWRl cGVuZHM9InBlcmwgcHl0aG9uIHBrZy1jb25maWcgYXV0b21ha2UgYXV0b2NvbmYyMTMgYXV0b2Nv bmYtYXJjaGl2ZQorIGNhcmdvIHJ1c3QgbGx2bSBjbGFuZyB3aGljaCBweXRob24zIgorbWFrZWRl cGVuZHM9ImljdS1kZXZlbCBsaWJmZmktZGV2ZWwgbnNwci1kZXZlbCBweXRob24tZGV2ZWwgcmVh ZGxpbmUtZGV2ZWwKKyB6bGliLWRldmVsIHB5dGhvbjMtZGV2ZWwgcnVzdC1zdGQiCitkZXBlbmRz PSJuc3ByPj00LjE5Igorc2hvcnRfZGVzYz0iTW96aWxsYSBKYXZhU2NyaXB0IGludGVycHJldGVy IGFuZCBsaWJyYXJ5ICg3OC54IHNlcmllcykiCittYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPiIKK2xpY2Vuc2U9Ik1QTC0yLjAiCitob21lcGFnZT0iaHR0cHM6Ly93d3cubW96 aWxsYS5vcmcvanMvIgorZGlzdGZpbGVzPSIke01PWklMTEFfU0lURX0vZmlyZWZveC9yZWxlYXNl cy8ke3ZlcnNpb259ZXNyL3NvdXJjZS9maXJlZm94LSR7dmVyc2lvbn1lc3Iuc291cmNlLnRhci54 eiIKK2NoZWNrc3VtPTM2MDBhMzk2ZDkzMTJjNWU5ZjYzN2IyNjc5MjZjYTQ3NzFkODRhNTZiMjZi OTYwY2M3ZDcyZTk4NjgzYjY0YTIKK3BhdGNoX2FyZ3M9Ii1OcDEiCisKK0NYWEZMQUdTKz0iIC1X bm8tY2xhc3MtbWVtYWNjZXNzIgorTERGTEFHUys9IiAtV2wsLXosc3RhY2stc2l6ZT0xMDQ4NTc2 IgorCitpZiBbICIkWEJQU19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgorCW1ha2VkZXBlbmRz Kz0iIGxpYmF0b21pYy1kZXZlbCIKKwlMREZMQUdTKz0iIC1sYXRvbWljIgorZmkKKworZG9fY29u ZmlndXJlKCkgeworCWxvY2FsIF9hcmdzCisJIyB1c2UgZ2NjIGFzIGFzc2VtYmxlciB0byBhdm9p ZCBlcnJvcnMKKwl1bnNldCBBUworCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4 cG9ydCBIT1NUX0NDPWNjCisJCWV4cG9ydCBUQVJHRVRfQ0M9IiR7Q0N9IgorCQlleHBvcnQgSE9T VF9DRkxBR1M9Ii1PcyIKKwkJZXhwb3J0IEhPU1RfQ1hYRkxBR1M9Ii1PcyIKKwkJX2FyZ3MrPSIg LS10YXJnZXQ9JFhCUFNfQ1JPU1NfVFJJUExFVCAtLWVuYWJsZS1saW5rZXI9YmZkIgorCWZpCisK KwlhdXRvY29uZi0yLjEzIG9sZC1jb25maWd1cmUuaW4gPiBvbGQtY29uZmlndXJlCisKKwl0b3Vj aCAke3dya3NyY30vanMvc3JjL2NvbmZpZ3VyZQorCXRvdWNoICR7d3Jrc3JjfS9qcy9zcmMvb2xk LWNvbmZpZ3VyZQorCVNIRUxMPS9iaW4vYmFzaCBQWVRIT049L3Vzci9iaW4vcHl0aG9uMiAuL2Nv bmZpZ3VyZSAtLXByZWZpeD0vdXNyIFwKKwkJLS1kaXNhYmxlLWplbWFsbG9jIC0tZGlzYWJsZS1v cHRpbWl6ZSAtLWVuYWJsZS1jdHlwZXMgXAorCQktLWVuYWJsZS1yZWFkbGluZSAtLWVuYWJsZS1z aGFyZWQtanMgLS1lbmFibGUtc3lzdGVtLWZmaSBcCisJCS0tZW5hYmxlLXRlc3RzIC0td2l0aC1p bnRsLWFwaSAtLXdpdGgtc3lzdGVtLWljdSAtLXdpdGgtc3lzdGVtLW5zcHIgXAorCQktLWVuYWJs ZS1oYXJkZW5pbmcgLS1lbmFibGUtcmVsZWFzZSAtLXdpdGgtc3lzdGVtLXpsaWIgXAorCQktLXRh cmdldD0ke1hCUFNfVFJJUExFVH0gLS1ob3N0PSR7WEJQU19UUklQTEVUfSBcCisJCSR7X2FyZ3N9 Cit9CisKK2RvX2NoZWNrKCkgeworCWRpc3QvYmluL2pzYXBpLXRlc3RzIC0tZm9ybWF0PW5vbmUg LS1leGNsdWRlLXJhbmRvbSBiYXNpYworfQorCitwb3N0X2luc3RhbGwoKSB7CisJIyBSZW1vdmUg dW5uZWVkZWQgc3RhdGljIGxpYnJhcnkKKwlybSAtZiAiJHtERVNURElSfSIvdXNyL2xpYi8qLmFq cworfQorCittb3pqczc4LWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0ibnNwci1kZXZlbCAk e3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIGRl dmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvYmluL2pzNzgt Y29uZmlnCisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZt b3ZlIHVzci9saWIvcGtnY29uZmlnCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4 L3VwZGF0ZSBiL3NyY3BrZ3MvbW96anM3OC91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjE5NDdlMTkyMTdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9t b3pqczc4L3VwZGF0ZQpAQCAtMCwwICsxIEBACitwa2duYW1lPSdtb3pqcycKCkZyb20gZDZjZGJi YWI5ZDlmNWI0NGJkOTA2NTRjODNiZjhlOTIwZTc0NjZlZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwg MTYgU2VwIDIwMjAgMjA6Mjk6MjEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzk4XSB2YWxhOiB1 cGRhdGUgdG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICB8ICAyICstCiBzcmNw a2dzL3ZhbGEvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIv Y29tbW9uL3NobGlicwppbmRleCA4ZDM2MmUxODQ5Ni4uNzhhNGQ4ODhjMDEgMTAwNjQ0Ci0tLSBh L2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1Nyw3ICszMTU3LDcgQEAg bGlic3lzcHJvZi0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYnN5c3Byb2YtdWktMy5zbyBzeXNw cm9mLTMuMzQuMF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pqczUyLTUyLjMuMF8xCiBsaWJtb3pqcy01 Mi5zby4wIG1vempzNTItNTIuMy4wXzEKLWxpYnZhbGEtMC40OC5zby4wIGxpYnZhbGEtMC40OC4w XzEKK2xpYnZhbGEtMC41MC5zby4wIGxpYnZhbGEtMC41MC4wXzEKIGxpYnZhbGFkb2MtMC40OC5z by4wIGxpYnZhbGFkb2MtMC40OC4wXzEKIGxpYnZhbGFjY29kZWdlbi5zbyBsaWJ2YWxhLTAuNDQu MF8xCiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhvZGF2LTIuMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dz L3ZhbGEvdGVtcGxhdGUgYi9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUKaW5kZXggZTk1ODgyNWYxOTYu LjYzMTBiZjQzY2NmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy92YWxhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn dmFsYScKIHBrZ25hbWU9dmFsYQogIyBTaG91bGQgYmUga2VwdCBpbiBzeW5jIHdpdGggJ3ZhbGFk b2MnIChzaGFyZWQgZGlzdGZpbGVzKQotdmVyc2lvbj0wLjQ4LjkKK3ZlcnNpb249MC41MC4wCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1k aXNhYmxlLXZhbGFkb2MiCkBAIC0xMiw5ICsxMiw5IEBAIHNob3J0X2Rlc2M9IkNvbXBpbGVyIGZv ciB0aGUgR09iamVjdCB0eXBlIHN5c3RlbSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdl PSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1ZhbGEiCi1jaGFuZ2Vsb2c9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjQ4L05FV1MiCitjaGFuZ2Vsb2c9 Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjUwL05FV1MiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vdmFsYS8ke3ZlcnNpb24lLip9L3ZhbGEtJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT05Y2VhMTZkM2JiM2RhZGRiZmUwNTU2Yjk5ZmJmYTA4MTQ2MjMwZGI3 NjUxZTFlNjc0Y2QwOGI0ZGY1Y2VmZWE5CitjaGVja3N1bT04MzhhZGM1MGFjMDg4ODFlMDZjZjIz M2ZlZmQ5Mzc0MGRlYzE1MzAzMTJjYzFjZjEyYzM2ZDRlMGU4N2QzMDcxCiBzaGxpYl9wcm92aWRl cz0ibGlidmFsYWNjb2RlZ2VuLnNvIgogCiBwb3N0X2luc3RhbGwoKSB7CkBAIC0yMiw4ICsyMiw4 IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAkjIHNvIHRoZSBwYWNrYWdlIHRoYXQgdXNlIGl0IGZhbGwg aW50byBvdXIgd3JhcHBlci4KIAkjIGtlZXAgdGhlIGJpbmFyeSB2ZXJzaW9uZWQsIHdlIGRvbid0 IGtub3cgdGhlIHBvdGVudGlhbAogCSMgZmFsbG91dCBmcm9tIHVzaW5nIHRoZSB1bnZlcnNpb25l ZCBvbmUKLQl2c2VkIC1lICdzfF52YXBpZ2VuPS4qfHZhcGlnZW49dmFwaWdlbi0wLjQ4fGcnIFwK LQkJIC1pICR7REVTVERJUn0vdXNyL2xpYi9wa2djb25maWcvdmFwaWdlbi0wLjQ4LnBjCisJdnNl ZCAtZSAnc3xedmFwaWdlbj0uKnx2YXBpZ2VuPXZhcGlnZW4tMC41MHxnJyBcCisJCSAtaSAke0RF U1RESVJ9L3Vzci9saWIvcGtnY29uZmlnL3ZhcGlnZW4tMC41MC5wYwogfQogCiBsaWJ2YWxhX3Bh Y2thZ2UoKSB7CgpGcm9tIGQwM2M3NTRmODQzOTVmNDhmZGRiOGEzMWFiNjg1M2I3NDQzOTFhMzQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjMwOjMyICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwMy85OF0gdmFsYWRvYzogdXBkYXRlIHRvIDAuNTAuMAoKLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgICAgfCAyICstCiBzcmNwa2dzL3ZhbGFkb2MvdGVtcGxhdGUgfCA2ICsrKy0t LQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNzhhNGQ4ODhjMDEu LmMwMWNmOGJkYjgxIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp YnMKQEAgLTMxNTgsNyArMzE1OCw3IEBAIGxpYnN5c3Byb2YtdWktMy5zbyBzeXNwcm9mLTMuMzQu MF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pqczUyLTUyLjMuMF8xCiBsaWJtb3pqcy01Mi5zby4wIG1v empzNTItNTIuMy4wXzEKIGxpYnZhbGEtMC41MC5zby4wIGxpYnZhbGEtMC41MC4wXzEKLWxpYnZh bGFkb2MtMC40OC5zby4wIGxpYnZhbGFkb2MtMC40OC4wXzEKK2xpYnZhbGFkb2MtMC41MC5zby4w IGxpYnZhbGFkb2MtMC41MC4wXzEKIGxpYnZhbGFjY29kZWdlbi5zbyBsaWJ2YWxhLTAuNDQuMF8x CiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhvZGF2LTIuMl8xCiBsaWJnZnNoYXJlLnNvLjIgbGliZ2Zz aGFyZS0yLjAuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZhbGFkb2MvdGVtcGxhdGUgYi9zcmNw a2dzL3ZhbGFkb2MvdGVtcGxhdGUKaW5kZXggMjRjYTAyODM2NTUuLmNlNWExZDdhNTRmIDEwMDY0 NAotLS0gYS9zcmNwa2dzL3ZhbGFkb2MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy92YWxhZG9jL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndmFsYWRvYycKIHBr Z25hbWU9dmFsYWRvYwogIyBTaG91bGQgYmUga2VwdCBpbiBzeW5jIHdpdGggJ3ZhbGEnIChzaGFy ZWQgZGlzdGZpbGVzKQotdmVyc2lvbj0wLjQ4LjkKK3ZlcnNpb249MC41MC4wCiByZXZpc2lvbj0x CiB3cmtzcmM9InZhbGEtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAg LTEzLDkgKzEzLDkgQEAgc2hvcnRfZGVzYz0iVmFsYSBEb2N1bWVudGF0aW9uIFRvb2wiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0 cy9WYWxhIgotY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdmFsYS9y YXcvMC40Mi9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv dmFsYS9yYXcvMC41MC9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3ZhbGEvJHt2ZXJz aW9uJS4qfS92YWxhLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09OWNlYTE2ZDNiYjNkYWRk YmZlMDU1NmI5OWZiZmEwODE0NjIzMGRiNzY1MWUxZTY3NGNkMDhiNGRmNWNlZmVhOQorY2hlY2tz dW09ODM4YWRjNTBhYzA4ODgxZTA2Y2YyMzNmZWZkOTM3NDBkZWMxNTMwMzEyY2MxY2YxMmMzNmQ0 ZTBlODdkMzA3MQogCiBwcmVfY29uZmlndXJlKCkgewogCWF1dG9yZWNvbmYgLWlmCgpGcm9tIDU4 NjYwYWQxMzI4ZWIwNWU3ZGUzOTI2ZDdhMDFmNjA4MTRjNWZiYmUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBX ZWQsIDE2IFNlcCAyMDIwIDIwOjMyOjEzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNC85OF0gdmFs YWJpbmQ6IHJlYnVpbGQgZm9yIHZhbGEtMC41MAoKLS0tCiBzcmNwa2dzL3ZhbGFiaW5kL3BhdGNo ZXMvdmFsYS0wNTAucGF0Y2ggfCAyNSArKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dz L3ZhbGFiaW5kL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2Vk LCAyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy92YWxhYmluZC9wYXRjaGVzL3ZhbGEtMDUwLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy92YWxhYmluZC9wYXRjaGVzL3ZhbGEtMDUwLnBhdGNoIGIvc3JjcGtncy92YWxhYmluZC9wYXRj aGVzL3ZhbGEtMDUwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5iZDdjNmE3NDM0NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hl cy92YWxhLTA1MC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIGY5NDIzMTU0MDJlM2ZjMzhk ZWYxNGE5NzRkZDViMjEwZTVkMmMzOGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIw MjAgMjA6Mzk6MjkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IHdpdGggdmFsYS0wLjUwCisK Ky0tLQorIHZhbGFiaW5kd3JpdGVyLnZhbGEgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgdmFsYWJpbmR3cml0ZXIudmFs YSB2YWxhYmluZHdyaXRlci52YWxhCitpbmRleCAxNjVjZGY1Li5jNzkzYzlmIDEwMDY0NAorLS0t IHZhbGFiaW5kd3JpdGVyLnZhbGEKKysrKyB2YWxhYmluZHdyaXRlci52YWxhCitAQCAtMzMsNyAr MzMsNyBAQCBwdWJsaWMgY2xhc3MgVmFsYWJpbmRXcml0ZXIgOiBDb2RlVmlzaXRvciB7CisgCQlp ZiAoZ2xpYm1vZGUpCisgCQkJY29udGV4dC5hZGRfZGVmaW5lICgiR09CSkVDVCIpOworIAkJLy8g cmVxdWlyZWQgdG8gYXZvaWQgdWdseSBydW50aW1lIGVycm9ycworLQkJY29udGV4dC5wcm9maWxl ID0gUHJvZmlsZS5HT0JKRUNUOworKwkJY29udGV4dC5zZXRfdGFyZ2V0X3Byb2ZpbGUoUHJvZmls ZS5HT0JKRUNUKTsKKyAJfQorIAorIAlwdWJsaWMgdm9pZCBwYXJzZSAoKSB7CistLSAKKzIuMjgu MAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZhbGFiaW5kL3RlbXBsYXRlIGIvc3JjcGtncy92YWxh YmluZC90ZW1wbGF0ZQppbmRleCBmNmY5MzFjMzAzMy4uMmJmMGRmMzM2ZTMgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy92YWxhYmluZC90ZW1wbGF0 ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3ZhbGFiaW5kJwogcGtnbmFt ZT12YWxhYmluZAogdmVyc2lvbj0xLjcuMQotcmV2aXNpb249NQorcmV2aXNpb249NgogYnVpbGRf c3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyB2YWxhLWRldmVsIGdpdCIK IG1ha2VkZXBlbmRzPSJ2YWxhLWRldmVsIGdsaWItZGV2ZWwiCgpGcm9tIDQ2ZThmMjIzN2IzMDA0 YTBjZGUwMDFiMDQwNWZlMDg1MWM4MGFlN2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNS85OF0gZGV2aGVscDogdXBkYXRl IHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIGIvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCmluZGV4 IGExYzJkY2JiNzYyLi44NmIzNzc2YWRmZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9kZXZoZWxwL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZGV2aGVscC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2RldmhlbHAnCiBwa2duYW1lPWRldmhlbHAKLXZlcnNpb249My4z Ni4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWls ZF9zdHlsZT1tZXNvbgpAQCAtMTEsNyArMTEsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRGV2aGVscCIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTRjZjhlYzkzMDJiYzRhNzllMDFhYzUzYmQ5YzhiOTVhNTk2Zjcx ZjM1MzUxZjQ4YjYzMjYzMjI3ZjA5YThhM2QKK2NoZWNrc3VtPTkxOGVmYjE3MzEyMmIyNmQ0NWZh NTFjMTk0YTBiNjU5ZTYzZmVlNzcwNWY2NzIyZGIyNTM0ZmFiYzM0NTIzNjkKIAogZGV2aGVscC1k ZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKCkZy b20gZDA2MzVhZTMwMzQ2ZDg4ZDJkYzY3MmYxYWFhNmFlYWE5MmY5MDczYSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTdu PTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwg MTQgU2VwIDIwMjAgMjA6MjI6NDMgKzA3MDAKU3ViamVjdDogW1BBVENIIDA2Lzk4XSBnZGw6IHVw ZGF0ZSB0byAzLjM0LjAuCgotLS0KIHNyY3BrZ3MvZ2RsL3RlbXBsYXRlIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nZGwvdGVtcGxhdGUgYi9zcmNwa2dzL2dkbC90ZW1wbGF0ZQppbmRleCBkNWIx ODBiZDQzYi4uMzViZWU4MDNmOTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2RsL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ2RsL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ2RsJwogcGtnbmFtZT1nZGwKLXZlcnNpb249My4yOC4wCi1yZXZpc2lvbj0zCit2ZXJz aW9uPTMuMzQuMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRf aGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVj dGlvbikiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciwgTEdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2dkbC8iCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01MmNjOThlY2MxMDUxNDg0NjdiM2IyYjRlMGQy N2FlNDg0YjFiNjcxMGQ1MzQxM2Y3NzFlZDA3ZWYxYjczN2I2CitjaGVja3N1bT04NThiMzBmMGNk Y2U0YzRjYjNlODM2NWE3ZDU0Y2U1N2MzODhiZWZmMzhlYTU4M2JlNTQ0OWJjNzhkZGE4ZDAyCiAK ICMgUGFja2FnZSBidWlsZCBvcHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCgpGcm9tIGEwY2E1 Y2YxN2MwYjZhMTQ0NDQ5ODM0NTU0MmRiNmU4MTg5YzYwZmQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9 QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDE0IFNlcCAy MDIwIDIwOjI3OjIyICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNy85OF0gZ2xhZGUzOiB1cGRhdGUg dG8gMy4zOC4wLgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBh dGNoIHwgOTggLS0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL3BhdGNoZXMvY29uZmlndXJlLXNoZWxs LXF1b3RlLnBhdGNoICAgICAgIHwgMTEgLS0tCiBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Nyb3Nz LnBhdGNoICAgICAgICAgICAgfCA0MCAtLS0tLS0tLQogc3JjcGtncy9nbGFkZTMvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKystLQogNSBmaWxlcyBjaGFuZ2VkLCA3IGluc2Vy dGlvbnMoKyksIDE2MSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ds YWRlMy9wYXRjaGVzL2F1dG9nZW4tYXV0b2NvbmYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2dsYWRlMy9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY3Jvc3MucGF0Y2gKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBjMDFjZjhiZGI4MS4uMTBl ZWZiYWUzZWYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpA QCAtNzcwLDcgKzc3MCw3IEBAIGxpYm9yYy10ZXN0LTAuNC5zby4wIG9yYy0wLjQuMTFfMQogbGli Z21pbWUtMi42LnNvLjAgZ21pbWUtMi42LjRfMQogbGlidG90ZW0tcGxwYXJzZXIuc28uMTggdG90 ZW0tcGwtcGFyc2VyLTMuMjYuMV8xCiBsaWJ0b3RlbS1wbHBhcnNlci1taW5pLnNvLjE4IGxpYnRv dGVtLXBscGFyc2VyLW1pbmktMy4yNi4xXzEKLWxpYmdsYWRldWktMi5zby42IGxpYmdsYWRldWkz LTMuMTAuMF8xCitsaWJnbGFkZXVpLTIuc28uMTMgbGliZ2xhZGV1aTMtMy4zOC4wXzEKIGxpYnRk Yi5zby4xIGxpYnRkYi0xLjIuMl8xCiBsaWJnc3NkcC0xLjIuc28uMCBnc3NkcC0xLjIuMF8xCiBs aWJndXBucC0xLjIuc28uMCBndXBucC0xLjIuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsYWRl My9wYXRjaGVzL2F1dG9nZW4tYXV0b2NvbmYucGF0Y2ggYi9zcmNwa2dzL2dsYWRlMy9wYXRjaGVz L2F1dG9nZW4tYXV0b2NvbmYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYx ZGZjMzQyYjQ3Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2F1dG9n ZW4tYXV0b2NvbmYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi1Gcm9tIDgz NDFjZjc4YmM2ODc5Y2IyZDUwZTEyYjU4ODZlZTdkY2EzZDA5ZjIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/SmF2aWVyPTIwSmFyZD1DMz1CM24/PSA8amphcmRvbkBn bm9tZS5vcmc+Ci1EYXRlOiBTYXQsIDkgRmViIDIwMTkgMTM6MTU6MTcgKzAwMDAKLVN1YmplY3Q6 IFtQQVRDSF0gVXNlIGF1dG9yZWNvbmYgaW5zdGVhZCBkZXByZWNhdGVkIGdub21lLWNvbW1vbgot Ci1TZWUgaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZUNvbW1vbi9NaWdyYXRp b24KLS0tLQotIGF1dG9nZW4uc2ggICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tCi0gY29uZmlndXJlLmFjIHwgIDYgKystLS0tCi0gMiBmaWxlcyBj aGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh dXRvZ2VuLnNoIGF1dG9nZW4uc2gKLWluZGV4IDFkOGNkODQwLi5mZDM1NjYzYiAxMDA3NTUKLS0t LSBhdXRvZ2VuLnNoCi0rKysgYXV0b2dlbi5zaAotQEAgLTEsMjIgKzEsNDEgQEAKLSAjIS9iaW4v c2gKLSAjIFJ1biB0aGlzIHRvIGdlbmVyYXRlIGFsbCB0aGUgaW5pdGlhbCBtYWtlZmlsZXMsIGV0 Yy4KLSt0ZXN0IC1uICIkc3JjZGlyIiB8fCBzcmNkaXI9JChkaXJuYW1lICIkMCIpCi0rdGVzdCAt biAiJHNyY2RpciIgfHwgc3JjZGlyPS4KLSAKLS1zcmNkaXI9YGRpcm5hbWUgJDBgCi0tdGVzdCAt eiAiJHNyY2RpciIgJiYgc3JjZGlyPS4KLStvbGRkaXI9JChwd2QpCi0gCi0tUEtHX05BTUU9Imds YWRlIgotK2NkICRzcmNkaXIKLSAKLS0odGVzdCAtZiAkc3JjZGlyL2NvbmZpZ3VyZS5hYyBcCi0t ICAmJiB0ZXN0IC1mICRzcmNkaXIvYXV0b2dlbi5zaCkgfHwgewotLSAgICBlY2hvIC1uICIqKkVy cm9yKio6IERpcmVjdG9yeSAiXGAkc3JjZGlyXCciIGRvZXMgbm90IGxvb2sgbGlrZSB0aGUiCi0t ICAgIGVjaG8gIiB0b3AtbGV2ZWwgJFBLR19OQU1FIGRpcmVjdG9yeSIKLS0gICAgZXhpdCAxCi0r KHRlc3QgLWYgY29uZmlndXJlLmFjKSB8fCB7Ci0rICAgICAgICBlY2hvICIqKiogRVJST1I6IERp cmVjdG9yeSAnJHNyY2RpcicgZG9lcyBub3QgbG9vayBsaWtlIHRoZSB0b3AtbGV2ZWwgcHJvamVj dCBkaXJlY3RvcnkgKioqIgotKyAgICAgICAgZXhpdCAxCi0gfQotIAotLXdoaWNoIGdub21lLWF1 dG9nZW4uc2ggfHwgewotLSAgICBlY2hvICJZb3UgbmVlZCB0byBpbnN0YWxsIGdub21lLWNvbW1v biBtb2R1bGUgYW5kIG1ha2UiCi0tICAgIGVjaG8gInN1cmUgdGhlIGdub21lLWF1dG9nZW4uc2gg c2NyaXB0IGlzIGluIHlvdXIgXCRQQVRILiIKLS0gICAgZXhpdCAxCi0tfQotKyMgc2hlbGxjaGVj ayBkaXNhYmxlPVNDMjAxNgotK1BLR19OQU1FPSQoYXV0b2NvbmYgLS10cmFjZSAnQUNfSU5JVDok MScgY29uZmlndXJlLmFjKQotKwotK2lmIFsgIiQjIiA9IDAgLWEgIngkTk9DT05GSUdVUkUiID0g IngiIF07IHRoZW4KLSsgICAgICAgIGVjaG8gIioqKiBXQVJOSU5HOiBJIGFtIGdvaW5nIHRvIHJ1 biAnY29uZmlndXJlJyB3aXRoIG5vIGFyZ3VtZW50cy4iID4mMgotKyAgICAgICAgZWNobyAiKioq IElmIHlvdSB3aXNoIHRvIHBhc3MgYW55IHRvIGl0LCBwbGVhc2Ugc3BlY2lmeSB0aGVtIG9uIHRo ZSIgPiYyCi0rICAgICAgICBlY2hvICIqKiogJyQwJyBjb21tYW5kIGxpbmUuIiA+JjIKLSsgICAg ICAgIGVjaG8gIiIgPiYyCi0rZmkKLSsKLSthY2xvY2FsIC0taW5zdGFsbCB8fCBleGl0IDEKLStn dGtkb2NpemUgLS1jb3B5IHx8IGV4aXQgMQotK2ludGx0b29saXplIC0tZm9yY2UgLS1jb3B5IC0t YXV0b21ha2UgfHwgZXhpdCAxCi0rYXV0b3JlY29uZiAtLXZlcmJvc2UgLS1mb3JjZSAtLWluc3Rh bGwgfHwgZXhpdCAxCi0rCi0rY2QgIiRvbGRkaXIiCi0raWYgWyAiJE5PQ09ORklHVVJFIiA9ICIi IF07IHRoZW4KLSsgICAgICAgICRzcmNkaXIvY29uZmlndXJlICIkQCIgfHwgZXhpdCAxCi0gCi0t LiBnbm9tZS1hdXRvZ2VuLnNoCi0rICAgICAgICBpZiBbICIkMSIgPSAiLS1oZWxwIiBdOyB0aGVu Ci0rICAgICAgICAgICAgICAgIGV4aXQgMAotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAg ICBlY2hvICJOb3cgdHlwZSAnbWFrZScgdG8gY29tcGlsZSAkUEtHX05BTUUiIHx8IGV4aXQgMQot KyAgICAgICAgZmkKLStlbHNlCi0rICAgICAgICBlY2hvICJTa2lwcGluZyBjb25maWd1cmUgcHJv Y2Vzcy4iCi0rZmkKLWRpZmYgLS1naXQgY29uZmlndXJlLmFjIGNvbmZpZ3VyZS5hYwotaW5kZXgg YTM1MjQ2NTYuLjYzOGU3ODAxIDEwMDY0NAotLS0tIGNvbmZpZ3VyZS5hYwotKysrIGNvbmZpZ3Vy ZS5hYwotQEAgLTMzLDYgKzMzLDggQEAgQU1fTUFJTlRBSU5FUl9NT0RFKFtlbmFibGVdKQotICMg dG8gbWFrZQotIEFNX1NJTEVOVF9SVUxFUyhbeWVzXSkKLSAKLStBWF9DSEVDS19FTkFCTEVfREVC VUcoW3llc10sW0dOT01FX0VOQUJMRV9ERUJVR10pCi0rCi0gIyBDaGVja3MgZm9yIHByb2dyYW1z Ci0gQUNfUFJPR19DQwotIEFDX1BST0dfSU5TVEFMTAotQEAgLTc5LDEwICs4MSw2IEBAIEFNX0NP TkRJVElPTkFMKEdMQURFX1VOU1RBQkxFLCB0ZXN0ICJ4JEdMQURFX1VOU1RBQkxFIiA9ICJ4eWVz IikKLSAKLSAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLSAKLS1HTk9NRV9ERUJVR19DSEVDSwotLUdOT01FX0NPTVBJTEVf V0FSTklOR1MoW21heGltdW1dKQotLUdOT01FX01BSU5UQUlORVJfTU9ERV9ERUZJTkVTCi0tCi0g IyBGb3IgdGhlIHBsdWdpbnMsIHdlIGRvbid0IHVzZSB0aGUgd2FybmluZyBmbGFncyBkZWZpbmVk IGJ5IEdOT01FX0NPTVBJTEVfV0FSTklOR1MuCi0gIyBUaGVzZSBmbGFncyBpbmNsdWRlIC1XbWlz c2luZy1wcm90b3R5cGVzLCB3aGljaCB3ZSBwcmVmZXIgbm90IHRvIHVzZS4KLSBpZiB0ZXN0ICJ4 JEdDQyIgPSAieHllcyI7IHRoZW4KLS0tIAotMi4yNC4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z2xhZGUzL3BhdGNoZXMvY29uZmlndXJlLXNoZWxsLXF1b3RlLnBhdGNoIGIvc3JjcGtncy9nbGFk ZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hlbGwtcXVvdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGIzYzYwY2NmMzY1Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dsYWRl My9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDExICswLDAgQEAKLS0tLSBjb25maWd1cmUuYWMKLSsrKyBjb25maWd1cmUuYWMKLUBAIC0yNzks NyArMjc5LDcgQEAKLSBkbmwgQ2hlY2sgZm9yIEdESyBRdWFydHogYW5kIE1hY09TWCBpbnRlZ3Jh dGlvbiBwYWNrYWdlIAotIGRubCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gX2dka190Z3Q9YCRQS0dfQ09ORklHIC0tdmFy aWFibGU9dGFyZ2V0cyBnZGstMy4wYAotLUFNX0NPTkRJVElPTkFMKFtHREtfVEFSR0VUX1FVQVJU Wl0sIFt0ZXN0IHgkX2dka190Z3QgPSB4cXVhcnR6XSkKLStBTV9DT05ESVRJT05BTChbR0RLX1RB UkdFVF9RVUFSVFpdLCBbdGVzdCAieCRfZ2RrX3RndCIgPSB4cXVhcnR6XSkKLSBpZiB0ZXN0ICJ4 JF9nZGtfdGd0IiA9IHhxdWFydHo7IHRoZW4gCi0gICAgUEtHX0NIRUNLX01PRFVMRVMoR1RLX01B QywgZ3RrLW1hYy1pbnRlZ3JhdGlvbi1ndGszKQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGFk ZTMvcGF0Y2hlcy9jcm9zcy5wYXRjaCBiL3NyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY3Jvc3MucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYjFkN2U4NDZlLi4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Nyb3NzLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDAgKzAsMCBAQAotLS0tIG00L3B5dGhvbi5tNAotKysrIG00L3B5dGhvbi5tNAotQEAg LTQzLDE3ICs0Myw5IEBACi0gW0FDX1JFUVVJUkUoW0FNX1BBVEhfUFlUSE9OXSkKLSBBQ19NU0df Q0hFQ0tJTkcoZm9yIGhlYWRlcnMgcmVxdWlyZWQgdG8gY29tcGlsZSBweXRob24gZXh0ZW5zaW9u cykKLSBkbmwgZGVkdWNlIFBZVEhPTl9JTkNMVURFUwotLWFtX3B5dGhvbl9wcmludF9pbmNsdWRl cz0iXAotLWZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25maWcgYXMgc2MKLS1pbmNsZGlycyA9 IFtbXV0KLS0KLS1mb3IgZCBpbiBzYy5nZXRfY29uZmlnX3ZhcignSU5DTERJUlNUT01BS0UnKS5z cGxpdCgpOgotLSAgICBpbmNsZGlycy5hcHBlbmQoJy1JJyArIGQpCi0tCi0tcHJpbnQoJyAnLmpv aW4oaW5jbGRpcnMpKQotLSIKLSt4YnBzX3N5c3Jvb3Q9YCRDQyAtLXByaW50LXN5c3Jvb3RgCi0g aWYgdGVzdCAieCRQWVRIT05fSU5DTFVERVMiID09IHg7IHRoZW4KLS0gIFBZVEhPTl9JTkNMVURF Uz1gJFBZVEhPTiAtYyAiJGFtX3B5dGhvbl9wcmludF9pbmNsdWRlcyJgCi0rICBQWVRIT05fSU5D TFVERVM9YCIkeGJwc19zeXNyb290LyRQWVRIT04tY29uZmlnIiAtLWluY2x1ZGVzYAotIGZpCi0g QUNfU1VCU1QoUFlUSE9OX0lOQ0xVREVTKQotIGRubCBjaGVjayBpZiB0aGUgaGVhZGVycyBleGlz dDoKLUBAIC03NCwxNiArNjYsMTEgQEAKLSBbQUNfUkVRVUlSRShbQU1fQ0hFQ0tfUFlUSE9OX0hF QURFUlNdKQotIEFDX01TR19DSEVDS0lORyhmb3IgbGlicmFyaWVzIHJlcXVpcmVkIHRvIGVtYmVk IHB5dGhvbikKLSBkbmwgZGVkdWNlIFBZVEhPTl9MSUJTCi0tYW1fcHl0aG9uX3ByaW50X2xpYnM9 IlwKLS1mcm9tIGRpc3R1dGlscyBpbXBvcnQgc3lzY29uZmlnIGFzIHNjCi0tbGlicyA9ICctTCcg KyBzYy5nZXRfY29uZmlnX3ZhcignTElCRElSJykuc3RyaXAoKQotLWxpYnMgKz0gJyAnICsgc2Mu Z2V0X2NvbmZpZ192YXIoJ0JMRExJQlJBUlknKQotLXByaW50KGxpYnMpIgotIGFtX3B5dGhvbl9w cmludF9saWJfbG9jPSJcCi0gZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZyBhcyBzYwot IHByaW50KHNjLmdldF9jb25maWdfdmFyKCdMSUJESVInKSkiCi0gaWYgdGVzdCAieCRQWVRIT05f TElCUyIgPT0geDsgdGhlbgotLQlQWVRIT05fTElCUz1gJFBZVEhPTiAtYyAiJGFtX3B5dGhvbl9w cmludF9saWJzImAKLSsJUFlUSE9OX0xJQlM9YCIkeGJwc19zeXNyb290LyRQWVRIT04tY29uZmln IiAtLWxkZmxhZ3MgLS1lbWJlZGAKLSBmaQotIGlmIHRlc3QgIngkUFlUSE9OX0xJQl9MT0MiID09 IHg7IHRoZW4KLSAJUFlUSE9OX0xJQl9MT0M9YCRQWVRIT04gLWMgIiRhbV9weXRob25fcHJpbnRf bGliX2xvYyJgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsYWRlMy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z2xhZGUzL3RlbXBsYXRlCmluZGV4IDkxMGMxMzhkZjZhLi5kM2Q4ZTBkNWRjZiAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbGFkZTMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbGFkZTMvdGVtcGxhdGUK QEAgLTEsMzIgKzEsMjcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dsYWRlMycKIHBrZ25hbWU9 Z2xhZGUzCi12ZXJzaW9uPTMuMjIuMgordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIHdya3Ny Yz0iZ2xhZGUtJHt2ZXJzaW9ufSIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2J1aWxkX3N0 eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUt c3RhdGljIC0tZW5hYmxlLWRlYnVnPWluZm8gUFlUSE9OPS91c3IvYmluL3B5dGhvbjMKLSAtLWVu YWJsZS1nbGFkZXVpICQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIgorY29uZmlndXJl X2FyZ3M9Ii1EZ3RrX2RvYz10cnVlIC1EbWFuPXRydWUgJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3Bl Y3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdub21lLWRvYy11dGlscyBpbnRs dG9vbCBpdHN0b29sIHBrZy1jb25maWcKLSBhdXRvbWFrZSBhdXRvY29uZi1hcmNoaXZlIGxpYnRv b2wgeWVscC10b29scyBnZXR0ZXh0LWRldmVsIGd0ay1kb2MiCi1tYWtlZGVwZW5kcz0iZ3RrKzMt ZGV2ZWwgcHl0aG9uMy1nb2JqZWN0LWRldmVsIHdlYmtpdDJndGstZGV2ZWwiCisgZ2pzLWRldmVs IHllbHAtdG9vbHMgZ2V0dGV4dC1kZXZlbCBndGstZG9jIgorbWFrZWRlcGVuZHM9Imd0ayszLWRl dmVsIHB5dGhvbjMtZ29iamVjdC1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIGdqcy1kZXZlbCIKIGRl cGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUiCiBzaG9ydF9kZXNj PSJVc2VyIEludGVyZmFjZSBEZXNpZ25lciBmb3IgR1RLKzMiCiBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL2dsYWRlLmdub21lLm9yZy8iCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vZ2xhZGUvJHt2ZXJzaW9uJS4qfS9nbGFkZS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWVkZWZhNmViMjRiNGQxNWJkNTI1ODkxMjFkYzEwOWJjMDhjMjg2 MTU3YzQxMjg4ZGViNzRkZDljYzNmMjZhMjEKK2NoZWNrc3VtPTRhOTE0YzVjMGIxOWMyZTUyZmQ0 YWQxNTA3N2Q0MDZkYmZkNmFkMDI0NWUyMzlkNzM5MGJmODdmMjdkOTEwM2MKIGxpYjMyZGlzYWJs ZWQ9eWVzCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCiBi dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAotcHJlX2NvbmZpZ3VyZSgpIHsKLQlOT0NPTkZJ R1VSRT0xIC4vYXV0b2dlbi5zaAotfQotCiBkb19jaGVjaygpIHsKIAkjIFJlcXVpcmUgcnVubmlu ZyB4c2VydmVyCiAJOgoKRnJvbSBjOWQxMzczMzQzNDNkNmIyN2UwN2ViM2IwNWU4MmFmMjk2NzRm NzI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1B MG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWls LmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAyMCAwNTozODo1NSArMDcwMApTdWJqZWN0OiBbUEFU Q0ggMDgvOThdIGxpYmhhbmR5OiByZWJ1aWxkIGZvciBnbGFkZTMtMy4zOC4wLCBtb3ZlZCB0byBH Tk9NRQoKLS0tCiBzcmNwa2dzL2xpYmhhbmR5L3RlbXBsYXRlIHwgMTQgKysrKysrKysrKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmhhbmR5L3RlbXBs YXRlCmluZGV4IDM4NjcyZjFmYjZlLi5jMTljMzg5N2VmYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9s aWJoYW5keS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmhhbmR5L3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliaGFuZHknCiBwa2duYW1lPWxpYmhhbmR5 CiB2ZXJzaW9uPTAuMC4xMwotcmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jrc3JjPSJsaWJoYW5k eS12JHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKQEAg LTE0LDE0ICsxNCwyMCBAQCBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCAk KHZvcHRfaWYgZ2xhZGUgZ2xhZGUzLWRldmVsKSIKIHNob3J0X2Rlc2M9IkxpYnJhcnkgZnVsbCBv ZiBHVEsrIHdpZGdldHMgZm9yIG1vYmlsZSBwaG9uZXMiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8 b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCi1ob21l cGFnZT0iaHR0cHM6Ly9zb3VyY2UucHVyaS5zbS9MaWJyZW01L2xpYmhhbmR5IgotZGlzdGZpbGVz PSJodHRwczovL3NvdXJjZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHkvLS9hcmNoaXZlL3Yke3Zl cnNpb259L2xpYmhhbmR5LXYke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTEzOGJlYzk0ZTY2 ZDE1YTdhMTkzNTBiNjU4NDVkNDUyOWJjZDk2OWVhOTEzYWIzZWI0MzhmNTZmZTQ3ZDVkMzcKK2hv bWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliaGFuZHkiCitkaXN0Zmls ZXM9IiRob21lcGFnZS8tL2FyY2hpdmUvdiR7dmVyc2lvbn0vbGliaGFuZHktdiR7dmVyc2lvbn0u dGFyLmd6IgorY2hlY2tzdW09NjQ1MzU1YTAwOWYyM2YyNTRlYWVjNzc1MmI5NDg5YzNjMmY1ODMy Mzk3ZmNlYzc1NDMzYTdlMDBlZmJmZTUyZgogCiBidWlsZF9vcHRpb25zPSJnaXIgdmFsYSBnbGFk ZSIKIGRlc2Nfb3B0aW9uX2dsYWRlPSJHZW5lcmF0ZSBnbGFkZSBtb2R1bGVzIGFuZCBjYXRhbG9n IGZpbGVzIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSBnbGFkZSIKIAorIyBodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliaGFuZHkvLS9tZXJnZV9yZXF1ZXN0cy81NTkK K0NGTEFHUz0iLURHUENfT0JKRUNUX0RFTElNSVRFUj1HTEFERV9QUk9QRVJUWV9ERUZfT0JKRUNU X0RFTElNSVRFUiIKK0NGTEFHUys9IiAtRGdsYWRlX3dpZGdldF9hY3Rpb25fZ2V0X2NsYXNzPWds YWRlX3dpZGdldF9hY3Rpb25fZ2V0X2RlZiIKKyMgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL2dsYWRlLy0vY29tbWl0L2JiNjI2ZGQKK0NGTEFHUys9IiAtREdXQV9HRVRfQ0xBU1M9R0xB REVfV0lER0VUX0FEQVBUT1JfR0VUX0FEQVBUT1JfQ0xBU1MiCisKIGxpYmhhbmR5LWRldmVsX3Bh Y2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259 IGd0ayszLWRldmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKCkZyb20g YzY0NzgyYTE2Nzk4MWMyNmJhYmQzYTE0NzlkZGYxY2M3MzkwMGU0MiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIw Qz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQg U2VwIDIwMjAgMjA6MzQ6NDYgKzA3MDAKU3ViamVjdDogW1BBVENIIDA5Lzk4XSBsaWJoYW5keTE6 IHVwZGF0ZSB0byAxLjAuMAoKLS0tCiBzcmNwa2dzL2xpYmhhbmR5MS90ZW1wbGF0ZSB8IDcgKysr KystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xpYmhhbmR5MS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliaGFuZHkx L3RlbXBsYXRlCmluZGV4IDE5MWU2OThiMGQ2Li41NDdhZmNjYWExMSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9saWJoYW5keTEvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJoYW5keTEnCiBwa2duYW1l PWxpYmhhbmR5MQotdmVyc2lvbj0wLjkwLjAKK3ZlcnNpb249MS4wLjAKIHJldmlzaW9uPTEKIHdy a3NyYz0ibGliaGFuZHktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC0xNiwxMiAr MTYsMTUgQEAgbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vc291cmNlLnB1cmku c20vTGlicmVtNS9saWJoYW5keSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9saWJoYW5keS8k e3ZlcnNpb24lLip9L2xpYmhhbmR5LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NmFiMDg2 OWEzYWE0ODMyOThlYTIwZWM4OWQ0YzE0YzM4YmE0ZGU0MTZiMzMxODFkMjFlMTVhNjAzOWRmNTk4 NQorY2hlY2tzdW09YTkzOTg1ODJmNDdiN2Q3MjkyMDVkNmVhYzBjMDY4ZmVmMzVhYWYyNDlmZGQ1 N2VlYTM3MjRmODUxOGQyNjY5OQogCiBidWlsZF9vcHRpb25zPSJnaXIgZ2xhZGUiCiBkZXNjX29w dGlvbl9nbGFkZT0iR2VuZXJhdGUgZ2xhZGUgbW9kdWxlcyBhbmQgY2F0YWxvZyBmaWxlcyIKIGJ1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIGdsYWRlIgogCisjIGh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS9nbGFkZS8tL2NvbW1pdC9iYjYyNmRkCitDRkxBR1M9Ii1ER1dBX0dFVF9DTEFT Uz1HTEFERV9XSURHRVRfQURBUFRPUl9HRVRfQURBUFRPUl9DTEFTUyIKKwogbGliaGFuZHkxLWRl dmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IGd0ayszLWRldmVsIgogCWNvbmZsaWN0cz0ibGliaGFuZHktZGV2ZWw+PTAiCgpGcm9t IGRhNTIzNTlkMmQ1M2YzZjY5YzU4Yzk1NWE3NzI5Yzk2OGE5MDhlOGEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0y MEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE1 IFNlcCAyMDIwIDA1OjQxOjAxICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMC85OF0gbGlieGZjZTR1 aTogcmVidWlsZCBmb3IgZ2xhZGUzLTMuMzguMAoKLS0tCiBzcmNwa2dzL2xpYnhmY2U0dWkvdGVt cGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUgYi9zcmNwa2dzL2xp YnhmY2U0dWkvdGVtcGxhdGUKaW5kZXggMjVhNWM0Nzk5NTUuLjBhNjJhZDE4MmI0IDEwMDY0NAot LS0gYS9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJ4ZmNlNHVp L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlieGZjZTR1 aScKIHBrZ25hbWU9bGlieGZjZTR1aQogdmVyc2lvbj00LjE0LjEKLXJldmlzaW9uPTQKK3Jldmlz aW9uPTUKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29u ZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCgpGcm9tIGI2YzExOGJjNTRjMjg2ZjU4N2I2 NWJiNDFiMGNiZjJkZmNkMzg4ZGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS85OF0gbGliZGF6emxlOiB1cGRhdGUgdG8g My4zOC4wCgotLS0KIHNyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlIHwgMjQgKysrKysrKysrKysr KystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUgYi9zcmNwa2dz L2xpYmRhenpsZS90ZW1wbGF0ZQppbmRleCA1YWMwOWZlZWZjOS4uOWI4MDdiZTk0NzQgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliZGF6emxl L3RlbXBsYXRlCkBAIC0xLDIzICsxLDI5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJkYXp6 bGUnCiBwa2duYW1lPWxpYmRhenpsZQotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zOC4wCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1 cmVfYXJncz0iLURlbmFibGVfZ3RrX2RvYz1mYWxzZSAtRHdpdGhfdmFwaT0kKHZvcHRfaWYgdmFs YSB0cnVlIGZhbHNlKQotIC1Ed2l0aF9pbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBm YWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYg dmFsYSAndmFsYScpIgorY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX2d0a19kb2M9ZmFsc2UKKyAk KHZvcHRfYm9vbCBnaXIgd2l0aF92YXBpKQorICQodm9wdF9ib29sIGdpciB3aXRoX2ludHJvc3Bl Y3Rpb24pIgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWcgJCh2b3B0X2lm IGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIgogc2hv cnRfZGVzYz0iTGlicmFyeSB0byBkZWxpZ2h0IHlvdXIgdXNlcnMgd2l0aCBmYW5jeSBmZWF0dXJl cyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9saWJkYXp6bGUiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250 ZW50LmNvbS9HTk9NRS9saWJkYXp6bGUvbGliZGF6emxlLTMtMzIvTkVXUyIKK2NoYW5nZWxvZz0i aHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYmRhenpsZS8tL3Jhdy8ke3ZlcnNpb259 L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vbGliZGF6emxlLyR7dmVyc2lvbiUuKn0v bGliZGF6emxlLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODJiMzFiYmY1NTBmYzYyOTcw Yzc4YmY3ZjlkNTVlNWZhZTViOGVhMTNiMjRmZTJkMTNjOGM2MDM5NDA5ZDk1OAorY2hlY2tzdW09 ZTE4YWYyODIxNzk0M2JjZWMxMDY1ODUyOThhOTFlYzNkYTQ4YWEzYWQ2MmZkMDk5MmYyM2YwYzcw Y2QxNjc4ZgogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciIKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIGxpYmRhenpsZS1kZXZl bF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNp b259IGd0ayszLWRldmVsIgpAQCAtMjgsOCArMzQsNiBAQCBsaWJkYXp6bGUtZGV2ZWxfcGFja2Fn ZSgpIHsKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIi IF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWls ZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9 CgpGcm9tIGQzZmMwMzg0NDUzOGMyNWU3MjhmZmM1ZWY5OTkwMTE5MDRhNTkwNTggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJB PUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBU dWUsIDE1IFNlcCAyMDIwIDA1OjQzOjEzICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMi85OF0gYW5q dXRhOiByZWJ1aWxkIGZvciBnbGFkZTMtMy4zOC4wLCB2YWxhLTAuNTAKCi0tLQogc3JjcGtncy9h bmp1dGEvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2FuanV0YS90ZW1wbGF0ZSBiL3NyY3Br Z3MvYW5qdXRhL3RlbXBsYXRlCmluZGV4IGMyMWM5MjdjZDEyLi5iNDZkNThhZWFmZSAxMDA2NDQK LS0tIGEvc3JjcGtncy9hbmp1dGEvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hbmp1dGEvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhbmp1dGEnCiBwa2duYW1l PWFuanV0YQogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxkX3N0 eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVfYXJn cz0iLS1kaXNhYmxlLWNvbXBpbGUtd2FybmluZ3MgLS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZQoK RnJvbSBiYWFhMjczYmQwNjMxZjJjNTgzZmE1ZjViNDNmODUxMjI4NzlkYWMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToyODoxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv OThdIHN5c3Byb2Y6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiAuLi4vcGF0Y2hlcy9hbGxvY3MtYnkt c2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2ggfCAgMTIgLS0KIHNyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVz L2J1aWxkLnBhdGNoICAgICAgICAgICB8ICAxMCArKwogc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMv bXVzbC5wYXRjaCAgICAgICAgICAgIHwgMTI1ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9z eXNwcm9mL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiA1IGZpbGVzIGNo YW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0 Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAxMGVl ZmJhZTNlZi4uZGVmZmQ4ZTg2Y2QgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29t bW9uL3NobGlicwpAQCAtMzE1Myw4ICszMTUzLDggQEAgbGlibWlyYWdlLnNvLjExIGxpYm1pcmFn ZS0zLjEuMF8xCiBsaWJ3a2h0bWx0b3guc28uMCBsaWJ3a2h0bWx0b3BkZi0wLjEyLjVfMQogbGli aXhtbC5zby4xMCBsaWJ1cG5wMS44LTEuOC4yXzEKIGxpYnVwbnAuc28uMTMgbGlidXBucDEuOC0x LjguNF8xCi1saWJzeXNwcm9mLTMuc28gc3lzcHJvZi0zLjM0LjBfMQotbGlic3lzcHJvZi11aS0z LnNvIHN5c3Byb2YtMy4zNC4wXzEKK2xpYnN5c3Byb2YtNC5zbyBzeXNwcm9mLTMuMzcuOTBfMQor bGlic3lzcHJvZi11aS00LnNvIHN5c3Byb2YtMy4zNy45MF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pq czUyLTUyLjMuMF8xCiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIuMy4wXzEKIGxpYnZhbGEt MC41MC5zby4wIGxpYnZhbGEtMC41MC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3lzcHJvZi9w YXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaCBiL3NyY3BrZ3Mvc3lzcHJv Zi9wYXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggYWZlZTA3ZWJiYzIuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv c3lzcHJvZi9wYXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDEyICswLDAgQEAKLWRpZmYgLXJhdU4gc3JjL3Rlc3RzL2FsbG9jcy1ieS1z aXplLmMgc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMKLS0tLSBzcmMvdGVzdHMvYWxsb2NzLWJ5 LXNpemUuYwkyMDIwLTAzLTIyIDIwOjAwOjEyLjY3NzA0ODgyMiArMDEwMAotKysrIHNyYy90ZXN0 cy9hbGxvY3MtYnktc2l6ZS5jCTIwMjAtMDMtMjIgMjA6MDE6MDcuMDAwNDE4MzYxICswMTAwCi1A QCAtMTA5LDcgKzEwOSw3IEBACi0gICAgIHsKLSAgICAgICBjb25zdCBJdGVtICppdGVtID0gJmdf YXJyYXlfaW5kZXggKGFyLCBJdGVtLCBpKTsKLSAKLS0gICAgICBnX3ByaW50ICgiJSJHX0dVSU5U NjRfRk9STUFUIiwlIkdfR1VJTlQ2NF9GT1JNQVQiLCUiR19HVUlOVDY0X0ZPUk1BVCJcbiIsCi0r ICAgICAgZ19wcmludCAoIiUiR19HU0laRV9GT1JNQVQiLCUiR19HU0laRV9GT1JNQVQiLCUiR19H U0laRV9GT1JNQVQiXG4iLAotICAgICAgICAgICAgICAgIGl0ZW0tPnNpemUsIGl0ZW0tPmNtcCwg aXRlbS0+Y291bnQpOwotICAgICB9Ci0gfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3Bh dGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWI3YzJjMWMxNjQKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCww ICsxLDEwIEBACistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtY29u ZGl0aW9uLmMKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jb25k aXRpb24uYworQEAgLTI2OSw2ICsyNjksNyBAQCBzeXNwcm9mX2NhcHR1cmVfY29uZGl0aW9uX2Nv cHkgKGNvbnN0IFN5c3Byb2ZDYXB0dXJlQ29uZGl0aW9uICpzZWxmKQorICAgICB9CisgCisgICBz eXNwcm9mX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKKysgIHJldHVybiBOVUxMOworIH0KKyAKKyBz dGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvbXVzbC5wYXRj aCBiL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUxZjQyMTI4ODkxCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9zeXNwcm9mL3BhdGNoZXMvbXVzbC5wYXRjaApAQCAtMCwwICsxLDEyNSBAQAorRnJvbSAx ZDJkZTMyZTk3YmY1NTY5Y2MzM2VlOWE5MGM4NzNlMWJiZDJiMWU2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFN1biwgNiBT ZXAgMjAyMCAxODoyMTozNyArMDIwMAorU3ViamVjdDogW1BBVENIXSBmaXggYnVpbGQgb24gbXVz bAorCistLS0KKyAuLi4vc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jICAgICAgICAgICAgICAgICAg fCAgMSArCisgLi4uL3N5c3Byb2YtY2FwdHVyZS1yZWFkZXIuYyAgICAgICAgICAgICAgICAgIHwg IDEgKworIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXV0aWwuYyB8ICAx ICsKKyAuLi4vc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYyAgICAgICAgICAgICAgfCAgMSAr Cisgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbGxlY3Rvci5jICAgIHwgIDEgKwor IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb21wYXQuaCAgICAgICB8IDI4ICsrKysr KysrKysrKysrKysrKysKKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtcGxhdGZvcm0u YyAgICAgfCAgMSArCisgNyBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspCisgY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb21wYXQuaAorCitk aWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5j IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jCitpbmRleCAy NDU2M2YwLi5iYjc3YTYwIDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJv Zi1jYXB0dXJlLWN1cnNvci5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNh cHR1cmUtY3Vyc29yLmMKK0BAIC01OSw2ICs1OSw3IEBACisgI2luY2x1ZGUgPGFzc2VydC5oPgor ICNpbmNsdWRlIDxzdGRsaWIuaD4KKyAKKysjaW5jbHVkZSAic3lzcHJvZi1jb21wYXQuaCIKKyAj aW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5oIgorICNpbmNsdWRlICJzeXNwcm9m LWNhcHR1cmUtY3Vyc29yLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS1yZWFkZXIuaCIK K2RpZmYgLS1naXQgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVy LmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMKK2luZGV4 IDY3YzZiMjguLjI1MmQwMDYgMTAwNjQ0CistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNw cm9mLWNhcHR1cmUtcmVhZGVyLmMKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2Yt Y2FwdHVyZS1yZWFkZXIuYworQEAgLTY4LDYgKzY4LDcgQEAKKyAjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJzeXNwcm9mLWNvbXBhdC5o IgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmgiCisgI2luY2x1ZGUgInN5c3By b2YtY2FwdHVyZS11dGlsLXByaXZhdGUuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLXdy aXRlci5oIgorZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVy ZS11dGlsLmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtdXRpbC5jCitp bmRleCAwYmJlYTA2Li4wZTVmN2U3IDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUv c3lzcHJvZi1jYXB0dXJlLXV0aWwuYworKysrIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJv Zi1jYXB0dXJlLXV0aWwuYworQEAgLTU2LDYgKzU2LDcgQEAKKyAKKyAjaW5jbHVkZSAiY29uZmln LmgiCisgCisrI2luY2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5j bHVkZSA8ZXJybm8uaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CitkaWZmIC0tZ2l0IHNyYy9saWJz eXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYyBzcmMvbGlic3lzcHJv Zi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS13cml0ZXItY2F0LmMKK2luZGV4IDY2MTcxYjkuLjlm ZWJiYmIgMTAwNjQ0CistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUt d3JpdGVyLWNhdC5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUt d3JpdGVyLWNhdC5jCitAQCAtNjMsNiArNjMsNyBAQAorICNpbmNsdWRlIDxzdGRsaWIuaD4KKyAj aW5jbHVkZSA8dW5pc3RkLmg+CisgCisrI2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2lu Y2x1ZGUgInN5c3Byb2YtY2FwdHVyZS5oIgorICNpbmNsdWRlICJzeXNwcm9mLW1hY3Jvcy1pbnRl cm5hbC5oIgorIAorZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29s bGVjdG9yLmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbGxlY3Rvci5jCitpbmRl eCAxZDdhMGQ2Li43YWY2Yzk2IDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lz cHJvZi1jb2xsZWN0b3IuYworKysrIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb2xs ZWN0b3IuYworQEAgLTczLDYgKzczLDcgQEAKKyAKKyAjaW5jbHVkZSAibWFwcGVkLXJpbmctYnVm ZmVyLmgiCisgCisrI2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3By b2YtY2FwdHVyZS11dGlsLXByaXZhdGUuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jb2xsZWN0b3Iu aCIKKyAjaW5jbHVkZSAic3lzcHJvZi1tYWNyb3MtaW50ZXJuYWwuaCIKK2RpZmYgLS1naXQgc3Jj L2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbXBhdC5oIHNyYy9saWJzeXNwcm9mLWNhcHR1 cmUvc3lzcHJvZi1jb21wYXQuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAu LmFlOWJmMTAKKy0tLSAvZGV2L251bGwKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3By b2YtY29tcGF0LmgKK0BAIC0wLDAgKzEsMjggQEAKKysvKiBhZGRlZCBieSBxNjYgQCB2b2lkIHRv IGZpeCBidWlsZCBvbiBtdXNsICovCisrCisrI3ByYWdtYSBvbmNlCisrCisrI2lmbmRlZiBfX0dM SUJDX18KKysKKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPGVycm5vLmg+CisrCisr LyogZnJvbSBnbGliYyAqLworKyNpZm5kZWYgVEVNUF9GQUlMVVJFX1JFVFJZCisrIyBkZWZpbmUg VEVNUF9GQUlMVVJFX1JFVFJZKGV4cHJlc3Npb24pIFwKKysgIChfX2V4dGVuc2lvbl9fICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisrICAgICh7IGxvbmcgaW50IF9fcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICBkbyBfX3Jlc3VsdCA9IChsb25nIGlu dCkgKGV4cHJlc3Npb24pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAg ICAgd2hpbGUgKF9fcmVzdWx0ID09IC0xTCAmJiBlcnJubyA9PSBFSU5UUik7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisrICAgICAgIF9fcmVzdWx0OyB9KSkKKysjZW5kaWYKKysKKytz dGF0aWMgaW5saW5lIHZvaWQgKnJlYWxsb2NhcnJheSh2b2lkICpwLCBzaXplX3Qgbm1lbWIsIHNp emVfdCBzeikgeworKyAgICBpZiAoc3ogJiYgKG5tZW1iID4gKChzaXplX3QpLTEgLyBzeikpKSB7 CisrICAgICAgICBlcnJubyA9IEVOT01FTTsKKysgICAgICAgIHJldHVybiBOVUxMOworKyAgICB9 CisrICAgIHJldHVybiByZWFsbG9jKHAsIG5tZW1iICogc3opOworK30KKysKKysjZW5kaWYKK2Rp ZmYgLS1naXQgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMgc3JjL2xp YnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMKK2luZGV4IGE4MGFiODkuLjA1YmQ1 OTAgMTAwNjQ0CistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMK KysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtcGxhdGZvcm0uYworQEAgLTYwLDYg KzYwLDcgQEAKKyAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+ CisgCisrI2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2Fw dHVyZS11dGlsLXByaXZhdGUuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1wbGF0Zm9ybS5oIgorIAor LS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlIGIvc3Jj cGtncy9zeXNwcm9mL3RlbXBsYXRlCmluZGV4IDY4YmNhNjAyNTUzLi5lYWU1MWVhNzM1NiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3lzcHJvZi90 ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3N5c3Byb2YnCiBw a2duYW1lPXN5c3Byb2YKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV9ndGs9dHJ1ZSAt RHN5c3RlbWR1bml0ZGlyPWRlbGV0ZW1lIgpAQCAtMTEsNyArMTEsNyBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciwgR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwOi8vc3lzcHJvZi5jb20vIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODY3MGRiNGRhY2Y3YjIxOWQzMGM1NzVj NDY1YjE3YzhlZDY3MjRkYmFkZTM0N2YyY2RlOTU0OGJmZjAzOTEwOAorY2hlY2tzdW09OGJjZDcy OGRjMmY3NGU2ZjU4OTQxMDM3MGRmYjFiODgwMTQ2OGJiM2NjMTgwM2FhMjQwNzM1YTdjZmYyNDFj ZQogCiAjIGZvciBJVFMgcnVsZXMKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSA0 OWRkMzI5OGMwYjEzNTgyODg0YjYyYTBlZDQ0YTlhMWZmYTRkN2RhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQvOThdIHRy YWNrZXI6IHVwZGF0ZSB0byAyLjMuNgoKLS0tCiAuLi4vdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmct dGVzdC1tdXNsLnBhdGNoICAgfCAyNCArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3RyYWNr ZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKystLS0tCiAyIGZpbGVzIGNo YW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy90cmFja2VyL3BhdGNoZXMvZmFpbGluZy10ZXN0LW11c2wucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL3RyYWNrZXIvcGF0Y2hlcy9mYWlsaW5nLXRlc3QtbXVzbC5wYXRjaCBi L3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmctdGVzdC1tdXNsLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZjE4ZjA2ZGU5YgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmctdGVzdC1tdXNsLnBhdGNoCkBA IC0wLDAgKzEsMjQgQEAKK0Zyb20gNWVlN2Q1OGYxOTU0MmQxZGFjODcyYmFkZDcyNjY5ZWUyODhi ZDMxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAyMjoxMTo1MCArMDIwMAor U3ViamVjdDogW1BBVENIXSBkcm9wIHRlc3QgdGhhdCBmYWlscyBvbiBtdXNsCisKKy0tLQorIHRl c3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1aWxkIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQs IDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCB0ZXN0cy9saWJ0cmFja2VyLWNvbW1vbi9tZXNv bi5idWlsZCB0ZXN0cy9saWJ0cmFja2VyLWNvbW1vbi9tZXNvbi5idWlsZAoraW5kZXggNTViN2Fk YS4uNjk2ODhlMCAxMDA2NDQKKy0tLSB0ZXN0cy9saWJ0cmFja2VyLWNvbW1vbi9tZXNvbi5idWls ZAorKysrIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1aWxkCitAQCAtMiw3ICsyLDYg QEAgbGlidHJhY2tlcl9jb21tb25fdGVzdHMgPSBbCisgICAgICdkYXRlLXRpbWUnLAorICAgICAn ZGJ1cycsCisgICAgICdmaWxlLXV0aWxzJywKKy0gICAgJ3NjaGVkJywKKyAgICAgJ3R5cGUtdXRp bHMnLAorICAgICAndXRpbHMnLAorIF0KKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdHJhY2tlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQppbmRleCAzNzA3 NGNiMzQ4ZC4uODEwNjc1Njc3ZmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjMgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXInCiBwa2duYW1lPXRyYWNrZXIKLXZlcnNpb249Mi4zLjEK LXJldmlzaW9uPTIKK3ZlcnNpb249Mi4zLjYKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u CiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGRvY3M9ZmFsc2UgLURmdHM9 dHJ1ZSAtRGZ1bmN0aW9uYWxfdGVzdHM9ZmFsc2UKICAtRGpvdXJuYWw9dHJ1ZSAtRG1hbj10cnVl IC1EbmV0d29ya19tYW5hZ2VyPWVuYWJsZWQgLURzdGVtbWVyPWRpc2FibGVkCiAgLURzeXN0ZW1k X3VzZXJfc2VydmljZXM9bm8iCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZl bCB2YWxhIgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgZ2xpYi1kZXZlbCB2 YWxhIgogbWFrZWRlcGVuZHM9ImRidXMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBpY3UtZGV2ZWwganNv bi1nbGliLWRldmVsCiAgbGlic291cC1kZXZlbCBsaWJ4bWwyLWRldmVsIHNxbGl0ZS1kZXZlbCBO ZXR3b3JrTWFuYWdlci1kZXZlbAogIGJhc2gtY29tcGxldGlvbiIKK2NoZWNrZGVwZW5kcz0idGFy Igogc2hvcnRfZGVzYz0iUGVyc29uYWwgc2VhcmNoIHRvb2wgYW5kIHN0b3JhZ2Ugc3lzdGVtIgog bWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9saXZlLmdub21lLm9yZy9UcmFja2Vy IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3RyYWNrZXIvJHt2ZXJzaW9uJS4qfS90cmFja2Vy LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjY3NDg3MjZlNDY1YWQyZjRkOTkxNTYwNjM0 YjFmZDBkZjg4NDFmM2Q5ODFiM2I4MzdjNDE2MmFiZWRmMDhhMQorY2hlY2tzdW09YmQxZWI0MTIy MTM1Mjk2ZmE3YjU3YjFjM2ZhMGVkNjAyY2Y3ZDA2YzBiOGU1MzRkMGJkMTdmZjVmOTdmZWVmMgog CiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgZGJ1cyIK CkZyb20gMzBjOTBjZGMwZDRlZGIwYjc1ZDFlOTA3NmZkOWVkMDIyZTJhM2Y2MyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDA6MjI6MTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDE1 Lzk4XSB0cmFja2VyLW1pbmVyczogdXBkYXRlIHRvIDIuMy41CgotLS0KIHNyY3BrZ3MvdHJhY2tl ci1taW5lcnMvdGVtcGxhdGUgfCAxNyArKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDkgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Ry YWNrZXItbWluZXJzL3RlbXBsYXRlIGIvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZQpp bmRleCAwMjBjMTI0ZjMyMi4uNjAwZDE0NDIxOGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdHJhY2tl ci1taW5lcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXItbWluZXJzJwogcGtn bmFtZT10cmFja2VyLW1pbmVycwotdmVyc2lvbj0yLjMuMQotcmV2aXNpb249MwordmVyc2lvbj0y LjMuNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRHRy YWNrZXJfY29yZT1zeXN0ZW0gLURkb2NzPWZhbHNlIC1EZXh0cmFjdD10cnVlCiAgLURmdW5jdGlv bmFsX3Rlc3RzPWZhbHNlIC1EY3VlPWVuYWJsZWQgLURleGlmPWVuYWJsZWQgLURmbGFjPWVuYWJs ZWQKQEAgLTEwLDIxICsxMCwyMiBAQCBjb25maWd1cmVfYXJncz0iLUR0cmFja2VyX2NvcmU9c3lz dGVtIC1EZG9jcz1mYWxzZSAtRGV4dHJhY3Q9dHJ1ZQogIC1EdGlmZj1lbmFibGVkIC1Edm9yYmlz PWVuYWJsZWQgLUR4bWw9ZW5hYmxlZCAtRHhtcD1lbmFibGVkIC1EeHBzPWVuYWJsZWQKICAtRGJh dHRlcnlfZGV0ZWN0aW9uPXVwb3dlciAtRGNoYXJzZXRfZGV0ZWN0aW9uPWljdQogIC1EZ2VuZXJp Y19tZWRpYV9leHRyYWN0b3I9Z3N0cmVhbWVyIC1EZ3N0cmVhbWVyX2JhY2tlbmQ9ZGlzY292ZXJl cgotIC1Ec3lzdGVtZF91c2VyX3NlcnZpY2VzPW5vIgorIC1Ec3lzdGVtZF91c2VyX3NlcnZpY2Vz PW5vIC1EbWluZXJfcnNzPWZhbHNlIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWIt ZGV2ZWwgaW50bHRvb2wiCiBtYWtlZGVwZW5kcz0idHJhY2tlci1kZXZlbCBmZm1wZWctZGV2ZWwg ZGJ1cy1kZXZlbCBleGVtcGktZGV2ZWwgbGliZmxhYy1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGli Z2V4aXYyLWRldmVsIGdzdHJlYW1lcjEtZGV2ZWwgaWN1LWRldmVsIGxpYmN1ZS1kZXZlbAogIGxp YmV4aWYtZGV2ZWwgbGliZ3NmLWRldmVsIGxpYmd4cHMtZGV2ZWwgbGliaXB0Y2RhdGEtZGV2ZWwg bGlianBlZy10dXJiby1kZXZlbAogIGxpYm9zaW5mby1kZXZlbCBsaWJwbmctZGV2ZWwgbGlic2Vj Y29tcC1kZXZlbCB0aWZmLWRldmVsIGxpYnhtbDItZGV2ZWwKICBsaWJ2b3JiaXMtZGV2ZWwgcG9w cGxlci1nbGliLWRldmVsIHRhZ2xpYi1kZXZlbCB0b3RlbS1wbC1wYXJzZXItZGV2ZWwKLSB1cG93 ZXItZGV2ZWwgemxpYi1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZlbCBnaWZsaWItZGV2ZWwi CisgdXBvd2VyLWRldmVsIHpsaWItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwgZ2lmbGli LWRldmVsIGxpYmhhcmZidXp6Igogc2hvcnRfZGVzYz0iRGF0YSBtaW5lcnMgZm9yIHRyYWNrZXIi CiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2RldmVsb3Blci5nbm9tZS5v cmcvbGlidHJhY2tlci1taW5lci9zdGFibGUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdHJh Y2tlci1taW5lcnMvJHt2ZXJzaW9uJS4qfS90cmFja2VyLW1pbmVycy0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTdiMWRlMDZhN2E3OWVhMWM3ODEzYzhhMjFmOGNkMWM1NWYyYjk1Zjc5OWNm OWY0N2YwMjA0ZjNiZThhNTkwZTAKK2NoZWNrc3VtPTk1MDlkMzdmYjI5YWNkMjMzMDU4ZjRkZjVi ZDEyMzRiNjkyYWM2Zjk0NmJjMmU1ZjdiOGRiZjUxZGZlNWI5ZmEKIAotIyBNaXNzaW5nIGxpYmdy c3MKLWNvbmZpZ3VyZV9hcmdzKz0iIC1EbWluZXJfcnNzPWZhbHNlIgotbWFrZWRlcGVuZHMrPSIg bGliaGFyZmJ1enoiCisjIHJlbGllcyBvbiB1bnN1cHBvcnRlZCBvcHMgaW4gY2hyb290Citkb19j aGVjaygpIHsKKwk6Cit9CgpGcm9tIGY0OTgwYzNkNTI2Yzc0MTY3MzVjOGU5ZTVlYmVmOTliOTcx ZmI5MjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDE3IFNlcCAyMDIwIDAwOjE1OjQ5ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxNi85OF0gTmV3IHBhY2thZ2U6IHRyYWNrZXIzLTMuMC4wCgotLS0KIGNv bW1vbi9zaGxpYnMgICAgICAgICAgICAgfCAgMyArKy0KIHNyY3BrZ3MvbGlidHJhY2tlcjMgICAg ICAgfCAgMSArCiBzcmNwa2dzL3RyYWNrZXIzLWRldmVsICAgIHwgIDEgKwogc3JjcGtncy90cmFj a2VyMy90ZW1wbGF0ZSB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwogc3JjcGtncy90cmFja2VyMy91cGRhdGUgICB8ICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgNjIg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3Mv bGlidHJhY2tlcjMKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3RyYWNrZXIzLWRldmVsCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyMy90ZW1wbGF0ZQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvdHJhY2tlcjMvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGli cyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZGVmZmQ4ZTg2Y2QuLmY3MDgzMWVhNDk2IDEwMDY0NAot LS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMxNDQsNiArMzE0NCw4 IEBAIGxpYmNwcGNtcy5zby4xIGNwcGNtcy0xLjAuNV8xCiBsaWJjcHBkYi5zby4wIGNwcGRiLTAu My4xXzEKIGxpYnRyYWNrZXItY29udHJvbC0yLjAuc28uMCBsaWJ0cmFja2VyLTIuMC4wXzEKIGxp YnRyYWNrZXItc3BhcnFsLTIuMC5zby4wIGxpYnRyYWNrZXItMi4wLjBfMQorbGlidHJhY2tlci1t aW5lci0yLjAuc28uMCBsaWJ0cmFja2VyLTIuMC4xXzEKK2xpYnRyYWNrZXItc3BhcnFsLTMuMC5z by4wIGxpYnRyYWNrZXIzLTMuMC4wXzEKIGxpYmRvY2thcHAuc28uMyBsaWJkb2NrYXBwLTAuNy4y XzEKIGxpYmtyZGNjb3JlLnNvLjUga3JkYy0xNy4wNC4zXzEKIGxpYkFyY3VzLnNvLjMgbGliQXJj dXMtMy4xLjBfMQpAQCAtMzE2Miw3ICszMTY0LDYgQEAgbGlidmFsYWRvYy0wLjUwLnNvLjAgbGli dmFsYWRvYy0wLjUwLjBfMQogbGlidmFsYWNjb2RlZ2VuLnNvIGxpYnZhbGEtMC40NC4wXzEKIGxp YnBob2Rhdi0yLjAuc28uMCBwaG9kYXYtMi4yXzEKIGxpYmdmc2hhcmUuc28uMiBsaWJnZnNoYXJl LTIuMC4wXzEKLWxpYnRyYWNrZXItbWluZXItMi4wLnNvLjAgbGlidHJhY2tlci0yLjAuMV8xCiBs aWJ0YWNhY3Muc28uMSB0YWNhY3MtNC4wLjQuMjhfMQogbGliZmZtczIuc28uNCBsaWJmZm1zMi0y LjIzLjFfMQogbGliZGRjdXRpbC5zby4zIGRkY3V0aWwtMC45LjlfMQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saWJ0cmFja2VyMyBiL3NyY3BrZ3MvbGlidHJhY2tlcjMKbmV3IGZpbGUgbW9kZSAxMjAw MDAKaW5kZXggMDAwMDAwMDAwMDAuLjU5ZGQ2OTExYjNiCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9saWJ0cmFja2VyMwpAQCAtMCwwICsxIEBACit0cmFja2VyMwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMtZGV2ZWwgYi9zcmNwa2dz L3RyYWNrZXIzLWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi41 OWRkNjkxMWIzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdHJhY2tlcjMtZGV2ZWwKQEAg LTAsMCArMSBAQAordHJhY2tlcjMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3RyYWNrZXIzL3RlbXBsYXRlIGIvc3JjcGtncy90cmFja2VyMy90ZW1wbGF0 ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWMyMTAwZjI2Y2EKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzL3RlbXBsYXRlCkBAIC0wLDAgKzEsNTcg QEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXIzJworcGtnbmFtZT10cmFja2VyMwordmVy c2lvbj0zLjAuMAorcmV2aXNpb249MQord3Jrc3JjPXRyYWNrZXItJHt2ZXJzaW9ufQorYnVpbGRf c3R5bGU9bWVzb24KK2J1aWxkX2hlbHBlcj0iZ2lyIgorY29uZmlndXJlX2FyZ3M9Ii1EZG9jcz1m YWxzZSAtRG1hbj10cnVlIC1EbmV0d29ya19tYW5hZ2VyPWVuYWJsZWQKKyAtRHN0ZW1tZXI9ZGlz YWJsZWQgLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgcGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEgYXNjaWlkb2MiCittYWtlZGVwZW5kcz0i ZGJ1cy1kZXZlbCBsaWJnbGliLWRldmVsIGljdS1kZXZlbCBqc29uLWdsaWItZGV2ZWwKKyBsaWJz b3VwLWRldmVsIGxpYnhtbDItZGV2ZWwgc3FsaXRlLWRldmVsIE5ldHdvcmtNYW5hZ2VyLWRldmVs CisgYmFzaC1jb21wbGV0aW9uIgorY2hlY2tkZXBlbmRzPSJ0YXIgcHl0aG9uMy1nb2JqZWN0Igor c2hvcnRfZGVzYz0iUGVyc29uYWwgc2VhcmNoIHRvb2wgYW5kIHN0b3JhZ2Ugc3lzdGVtIgorbWFp bnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4iCitsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2xpdmUuZ25vbWUu b3JnL1RyYWNrZXIiCitkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdHJhY2tlci8ke3ZlcnNpb24l Lip9L3RyYWNrZXItJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT03MDg2NDUxNWY1NzUyYjA1 OTZmOWM0NDJkN2U4NjU4NTczNGY0MmI4MmE5MjMzZTU1ZGFlNmFjMmIwZDMzODM3CisKK2lmIFsg IiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBkYnVzIgorZmkKKwor IyBuZWVkcyBhIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkgeworCToKK30KKworcG9zdF9wYXRjaCgp IHsKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJIyBUZWxsIHRoZSBidWlsZCBzeXN0 ZW0gdGhhdCB3ZSBoYXZlIGludGVybmFsIGZ0czUgaW4gc3FsaXRlMworCQl2c2VkIC1pICIvXFtw cm9wZXJ0aWVzXF0vYSBzcWxpdGUzX2hhc19mdHM1ID0gJ3RydWUnIiB4YnBzX21lc29uLmNyb3Nz CisJZmkKK30KKwordHJhY2tlcjMtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSJsaWJ0cmFj a2VyMz49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBsaWJnbGliLWRldmVsIGpzb24tZ2xpYi1kZXZl bAorCSBsaWJzb3VwLWRldmVsIgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIK Kwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL3NoYXJl L2dpci0xLjAKKwkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25m aWcKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwl9Cit9CisKK2xpYnRyYWNrZXIzX3BhY2thZ2Uo KSB7CisJc2hvcnRfZGVzYys9IiAtIHNoYXJlZCBsaWJyYXJpZXMiCisJcGtnX2luc3RhbGwoKSB7 CisJCXZtb3ZlICJ1c3IvbGliLyouc28uKiIKKwkJdm1vdmUgdXNyL2xpYi9naXJlcG9zaXRvcnkt MS4wCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyMy91cGRhdGUgYi9zcmNwa2dz L3RyYWNrZXIzL3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u ZTk4NDdlMjViNTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzL3VwZGF0ZQpA QCAtMCwwICsxIEBACitwYXR0ZXJuPSJcUXRyYWNrZXJcRS1cS1swLTldK1wuWzAtOV0qXC5bMC05 Ll0qWzAtOV0oPz0pIgoKRnJvbSBkYTYyOGJkZDg4OGMyZDU5M2EzMDRkMTViMTJiYmNhYWIyYjMw Mjk1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMDoxNjowNCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMTcvOThdIE5ldyBwYWNrYWdlOiB0cmFja2VyMy1taW5lcnMtMy4wLjAKCi0t LQogc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaCAgIHwgIDI1ICsr KysrCiAuLi4vcGF0Y2hlcy9kb250LXVzZS1tYWxsb2MtdHJpbS5wYXRjaCAgICAgICAgfCAxMDQg KysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZSAgICAg ICAgICAgICAgfCAgMzQgKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9idWls ZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNo ZXMvZG9udC11c2UtbWFsbG9jLXRyaW0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMt bWluZXJzL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRj aGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5k NThhMGQ4YzBmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3Bh dGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSA4ZDcwOWMzYjU1ZGM5MjYy MWQ1ODcxZmI0MjlhMDJjNzhjYzRiMmQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAy MDIwIDIzOjU3OjMyICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGZpeCBidWlsZAorCistLS0KKyBz cmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBzcmMvbGlidHJhY2tl ci1taW5lci9tZXNvbi5idWlsZCBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZAoraW5k ZXggYTIyNjYyMy4uOWVhY2VlMyAxMDA2NDQKKy0tLSBzcmMvbGlidHJhY2tlci1taW5lci9tZXNv bi5idWlsZAorKysrIHNyYy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkCitAQCAtNDAsNyAr NDAsNyBAQCBlbmRpZgorIAorIGxpYnRyYWNrZXJfbWluZXIgPSBsaWJyYXJ5KAorICAgICAndHJh Y2tlci1taW5lci0nICsgdHJhY2tlcl9hcGlfdmVyc2lvbiwKKy0gICAgbWluZXJfZW51bXNbMF0s IG1pbmVyX2VudW1zWzFdLCBtaW5lcl9zb3VyY2VzLAorKyAgICBtaW5lcl9lbnVtc1swXSwgbWlu ZXJfZW51bXNbMV0sIHRyYWNrZXJfbWluZXJzX2NvbW1vbl9lbnVtX2hlYWRlciwgbWluZXJfc291 cmNlcywKKyAgICAgY19hcmdzOiB0cmFja2VyX2NfYXJncywKKyAgICAgaW5zdGFsbDogdHJ1ZSwK KyAgICAgaW5zdGFsbF9kaXI6IHRyYWNrZXJfaW50ZXJuYWxfbGlic19kaXIsCistLSAKKzIuMjgu MAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQtdXNl LW1hbGxvYy10cmltLnBhdGNoIGIvc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9kb250 LXVzZS1tYWxsb2MtdHJpbS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uM2Y0MmE5MTIwOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzLW1p bmVycy9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10cmltLnBhdGNoCkBAIC0wLDAgKzEsMTA0IEBA CitSZWFzb246IFRoaXMgcmV2ZXJ0cyAxOTFjYzUyMThiNTNmYmE4NWJhZWMxYzhjMTdiYjI0NmE3 NDA0NGMwIGFuZAorY2NiMGI0ZWJiZmY0ZGZhY2YxN2VhNjdjZTU2YmIyN2MzOTc0MTgxMS4gbWFs bG9jX3RyaW0gaXMgZ2xpYmMgc3BlY2lmaWMKK0FQSSwgc28gdGhpcyBjYXVzZXMgdGhlIGJ1aWxk IHRvIGZhaWwgb24gbXVzbC4KK1Vwc3RyZWFtOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvdHJhY2tlci1taW5lcnMvLS9pc3N1ZXMvMTM1CitkaWZmIC0tZ2l0IGEvc3JjL21pbmVycy9m cy90cmFja2VyLW1haW4uYyBiL3NyYy9taW5lcnMvZnMvdHJhY2tlci1tYWluLmMKK2luZGV4IGM2 MDA3MGQuLjIyMDkxNmQgMTAwNjQ0CistLS0gc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYwor KysrIHNyYy9taW5lcnMvZnMvdHJhY2tlci1tYWluLmMKK0BAIC01Nyw3ICs1Nyw2IEBACisgc3Rh dGljIEdNYWluTG9vcCAqbWFpbl9sb29wOworIHN0YXRpYyBHREJ1c1Byb3h5ICppbmRleF9wcm94 eTsKKyBzdGF0aWMgR1B0ckFycmF5ICpwcm94eV9mb2xkZXJzOworLXN0YXRpYyBndWludCBjbGVh bnVwX2lkOworIAorIHN0YXRpYyBnaW50IGluaXRpYWxfc2xlZXAgPSAtMTsKKyBzdGF0aWMgZ2Jv b2xlYW4gbm9fZGFlbW9uOworQEAgLTQzMywzNyArNDMyLDYgQEAgbWluZXJfc3RhcnQgKFRyYWNr ZXJNaW5lciAgKm1pbmVyLAorIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWluZXIpOworIH0KKyAKKy1zdGF0aWMgZ2Jvb2xlYW4KKy1jbGVhbnVwX2NiIChncG9p bnRlciB1c2VyX2RhdGEpCisteworLQkvKiBSZWNsYWltIGFzIG11Y2ggbWVtb3J5IGFzIHBvc3Np YmxlICovCistCW1hbGxvY190cmltICgwKTsKKy0KKy0JY2xlYW51cF9pZCA9IDA7CistCistCXJl dHVybiBHX1NPVVJDRV9SRU1PVkU7CistfQorLQorLSNpZiBHTElCX0NIRUNLX1ZFUlNJT04gKDIs IDY0LCAwKQorLXN0YXRpYyB2b2lkCistb25fbG93X21lbW9yeSAoR01lbW9yeU1vbml0b3IgICAg ICAgICAgICAqbW9uaXRvciwKKy0gICAgICAgICAgICAgICBHTWVtb3J5TW9uaXRvcldhcm5pbmdM ZXZlbCBsZXZlbCwKKy0gICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICAgICAgICB1 c2VyX2RhdGEpCisteworLQlpZiAobGV2ZWwgPiBHX01FTU9SWV9NT05JVE9SX1dBUk5JTkdfTEVW RUxfTE9XKQorLQkJbWFsbG9jX3RyaW0gKDApOworLX0KKy0jZW5kaWYKKy0KKy1zdGF0aWMgdm9p ZAorLW1pbmVyX3N0YXJ0ZWRfY2IgKFRyYWNrZXJNaW5lckZTICpmcykKKy17CistCWlmIChjbGVh bnVwX2lkKSB7CistCQlnX3NvdXJjZV9yZW1vdmUgKGNsZWFudXBfaWQpOworLQkJY2xlYW51cF9p ZCA9IDA7CistCX0KKy19CistCisgc3RhdGljIHZvaWQKKyBtaW5lcl9maW5pc2hlZF9jYiAoVHJh Y2tlck1pbmVyRlMgKmZzLAorICAgICAgICAgICAgICAgICAgICBnZG91YmxlICAgICAgICAgc2Vj b25kc19lbGFwc2VkLAorQEAgLTQ4Myw4ICs0NTEsNiBAQCBtaW5lcl9maW5pc2hlZF9jYiAoVHJh Y2tlck1pbmVyRlMgKmZzLAorIAkJCQkJCQkgVFJVRSk7CisgCX0KKyAKKy0JY2xlYW51cF9pZCA9 IGdfdGltZW91dF9hZGRfc2Vjb25kcyAoMzAsIGNsZWFudXBfY2IsIE5VTEwpOworLQorIAkvKiBX ZSdyZSBub3Qgc3RpY2tpbmcgYXJvdW5kIGZvciBmaWxlIHVwZGF0ZXMsIHNvIHN0b3AKKyAJICog dGhlIG1haW5sb29wIGFuZCBleGl0LgorIAkgKi8KK0BAIC05NDEsOSArOTA3LDYgQEAgbWFpbiAo Z2ludCBhcmdjLCBnY2hhciAqYXJndltdKQorIAlUcmFja2VyRW5kcG9pbnREQnVzICplbmRwb2lu dDsKKyAJVHJhY2tlckRvbWFpbk9udG9sb2d5ICpkb21haW5fb250b2xvZ3k7CisgCUdDYW5jZWxs YWJsZSAqY2FuY2VsbGFibGU7CistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCist CUdNZW1vcnlNb25pdG9yICptZW1vcnlfbW9uaXRvcjsKKy0jZW5kaWYKKyAJZ2NoYXIgKmRvbWFp bl9uYW1lLCAqZGJ1c19uYW1lOworIAorIAltYWluX2xvb3AgPSBOVUxMOworQEAgLTExMjksMTgg KzEwOTIsMTAgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqYXJndltdKQorIAkJdHJhY2tlcl9t aW5lcl9maWxlc19zZXRfbXRpbWVfY2hlY2tpbmcgKFRSQUNLRVJfTUlORVJfRklMRVMgKG1pbmVy X2ZpbGVzKSwgZG9fbXRpbWVfY2hlY2tpbmcpOworIAl9CisgCistCWdfc2lnbmFsX2Nvbm5lY3Qg KG1pbmVyX2ZpbGVzLCAic3RhcnRlZCIsCistCQkJICBHX0NBTExCQUNLIChtaW5lcl9zdGFydGVk X2NiKSwKKy0JCQkgIE5VTEwpOworIAlnX3NpZ25hbF9jb25uZWN0IChtaW5lcl9maWxlcywgImZp bmlzaGVkIiwKKyAJCQkgIEdfQ0FMTEJBQ0sgKG1pbmVyX2ZpbmlzaGVkX2NiKSwKKyAJCQkgIE5V TEwpOworIAorLSNpZiBHTElCX0NIRUNLX1ZFUlNJT04gKDIsIDY0LCAwKQorLQltZW1vcnlfbW9u aXRvciA9IGdfbWVtb3J5X21vbml0b3JfZHVwX2RlZmF1bHQgKCk7CistCWdfc2lnbmFsX2Nvbm5l Y3QgKG1lbW9yeV9tb25pdG9yLCAibG93LW1lbW9yeS13YXJuaW5nIiwgb25fbG93X21lbW9yeSwg TlVMTCk7CistI2VuZGlmCistCisgCS8qIFByZWVtcHQgY3JlYXRpb24gb2YgZ3JhcGhzICovCisg CXRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2FzeW5jICh0cmFja2VyX21pbmVyX2dl dF9jb25uZWN0aW9uIChtaW5lcl9maWxlcyksCisgCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiQ1JFQVRFIFNJTEVOVCBHUkFQSCB0cmFja2VyOkZpbGVTeXN0ZW07ICIK K0BAIC0xMTgzLDExICsxMTM4LDYgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqYXJndltdKQor IAl0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX2Nsb3NlIChzcGFycWxfY29ubik7CisgCWdfb2Jq ZWN0X3VucmVmIChzcGFycWxfY29ubik7CisgCistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwg NjQsIDApCistCWdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyAobWVtb3J5X21v bml0b3IsIG9uX2xvd19tZW1vcnksIE5VTEwpOworLQlnX29iamVjdF91bnJlZiAobWVtb3J5X21v bml0b3IpOworLSNlbmRpZgorLQorIAlnX3ByaW50ICgiXG5PS1xuXG4iKTsKKyAKKyAJcmV0dXJu IEVYSVRfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3RlbXBs YXRlIGIvc3JjcGtncy90cmFja2VyMy1taW5lcnMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBiZjE0YjQ4NDc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy90cmFja2VyMy1taW5lcnMvdGVtcGxhdGUKQEAgLTAsMCArMSwzNCBAQAorIyBUZW1wbGF0 ZSBmaWxlIGZvciAndHJhY2tlcjMtbWluZXJzJworcGtnbmFtZT10cmFja2VyMy1taW5lcnMKK3Zl cnNpb249My4wLjAKK3JldmlzaW9uPTEKK3dya3NyYz10cmFja2VyLW1pbmVycy0ke3ZlcnNpb259 CitidWlsZF9zdHlsZT1tZXNvbgorIyBtaXNzaW5nIGxpYmdyc3MgZm9yIG1pbmVyX3JzcworY29u ZmlndXJlX2FyZ3M9Ii1EdHJhY2tlcl9jb3JlPXN5c3RlbSAtRGRvY3M9ZmFsc2UgLURleHRyYWN0 PXRydWUKKyAtRGZ1bmN0aW9uYWxfdGVzdHM9ZmFsc2UgLURjdWU9ZW5hYmxlZCAtRGV4aWY9ZW5h YmxlZCAtRGZsYWM9ZW5hYmxlZAorIC1EZ2lmPWVuYWJsZWQgLURnc2Y9ZW5hYmxlZCAtRGlwdGM9 ZW5hYmxlZCAtRGlzbz1lbmFibGVkIC1EanBlZz1lbmFibGVkCisgLURwZGY9ZW5hYmxlZCAtRHBs YXlsaXN0PWVuYWJsZWQgLURwbmc9ZW5hYmxlZCAtRHJhdz1lbmFibGVkIC1EdGFnbGliPWVuYWJs ZWQKKyAtRHRpZmY9ZW5hYmxlZCAtRHZvcmJpcz1lbmFibGVkIC1EeG1sPWVuYWJsZWQgLUR4bXA9 ZW5hYmxlZCAtRHhwcz1lbmFibGVkCisgLURtaW5lcl9yc3M9ZmFsc2UgLURiYXR0ZXJ5X2RldGVj dGlvbj11cG93ZXIgLURjaGFyc2V0X2RldGVjdGlvbj1pY3UKKyAtRGdlbmVyaWNfbWVkaWFfZXh0 cmFjdG9yPWdzdHJlYW1lciAtRGdzdHJlYW1lcl9iYWNrZW5kPWRpc2NvdmVyZXIKKyAtRHN5c3Rl bWRfdXNlcl9zZXJ2aWNlcz1mYWxzZSAtRG5ldHdvcmtfbWFuYWdlcj1lbmFibGVkIgoraG9zdG1h a2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwgaW50bHRvb2wgYXNjaWlkb2MiCittYWtl ZGVwZW5kcz0idHJhY2tlcjMtZGV2ZWwgZmZtcGVnLWRldmVsIGRidXMtZGV2ZWwgZXhlbXBpLWRl dmVsIGxpYmZsYWMtZGV2ZWwKKyBsaWJnbGliLWRldmVsIGxpYmdleGl2Mi1kZXZlbCBnc3RyZWFt ZXIxLWRldmVsIGljdS1kZXZlbCBsaWJjdWUtZGV2ZWwKKyBsaWJleGlmLWRldmVsIGxpYmdzZi1k ZXZlbCBsaWJneHBzLWRldmVsIGxpYmlwdGNkYXRhLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwK KyBsaWJvc2luZm8tZGV2ZWwgbGlicG5nLWRldmVsIGxpYnNlY2NvbXAtZGV2ZWwgdGlmZi1kZXZl bCBsaWJ4bWwyLWRldmVsCisgbGlidm9yYmlzLWRldmVsIHBvcHBsZXItZ2xpYi1kZXZlbCB0YWds aWItZGV2ZWwgdG90ZW0tcGwtcGFyc2VyLWRldmVsCisgdXBvd2VyLWRldmVsIHpsaWItZGV2ZWwg Z3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwgZ2lmbGliLWRldmVsCisgTmV0d29ya01hbmFnZXItZGV2 ZWwgbGliaGFyZmJ1enoiCitzaG9ydF9kZXNjPSJEYXRhIG1pbmVycyBmb3IgdHJhY2tlcjMiCitt YWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2xpYnRyYWNr ZXItbWluZXIvc3RhYmxlIgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3RyYWNrZXItbWluZXJz LyR7dmVyc2lvbiUuKn0vdHJhY2tlci1taW5lcnMtJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1 bT1iYjQ4MWE3YzIzYzVkZWY0ZjIxNTYyN2EwNjMwZmJlOWQxYzY0ZjMzMTk4MjU4NTlkN2E3MzY0 NTczOGY0MDQyCisKKyMgcmVsaWVzIG9uIHVuc3VwcG9ydGVkIG9wcyBpbiBjaHJvb3QKK2RvX2No ZWNrKCkgeworCToKK30KCkZyb20gZmEzYzRkYTIxOWE2ZGExZjM1OThiNGRjMzhiMTc0MzgwOGVj MjY5ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9 QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFp bC5jb20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDY6NDc6NTYgKzA3MDAKU3ViamVjdDogW1BB VENIIDE4Lzk4XSBiaWppYmVuOiB1cGRhdGUgdG8gMy4zNi4zLgoKLS0tCiBzcmNwa2dzL2Jpamli ZW4vdGVtcGxhdGUgfCA5ICsrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JpamliZW4vdGVtcGxhdGUg Yi9zcmNwa2dzL2JpamliZW4vdGVtcGxhdGUKaW5kZXggNzMwMDUzYjVkMWMuLjBiZmE2ZjI3NWFj IDEwMDY0NAotLS0gYS9zcmNwa2dzL2JpamliZW4vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iaWpp YmVuL3RlbXBsYXRlCkBAIC0xLDkgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Jpamli ZW4nCiBwa2duYW1lPWJpamliZW4KLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzYuMwogcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgorY29uZmlndXJl X2FyZ3M9Ii1EemVpdGdlaXN0PXRydWUiCiBob3N0bWFrZWRlcGVuZHM9Iml0c3Rvb2wgcGtnLWNv bmZpZyBnZXR0ZXh0IgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3RrLWRldmVsIGV2b2x1dGlvbi1k ZXZlbCB0cmFja2VyLWRldmVsIHdlYmtpdDJndGstZGV2ZWwKICB6ZWl0Z2Vpc3QtZGV2ZWwgbGli aGFuZHktZGV2ZWwiCkBAIC0xNCw1ICsxNSw5IEBAIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL05vdGVzIgogY2hhbmdlbG9n PSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvYmlqaWJlbi9nbm9tZS0k e3ZlcnNpb24lLip9L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0yMTJm NjZhM2QyYzcxN2RmYjNkMzcyMjA0MjYxNzgwODkzOTVkYTIzZWY5ZjNkMDUxNzEzYWFmNjU5N2E0 MTEwCitjaGVja3N1bT03MGU5YjYyMWUxMWJmN2FmNmM2MjQ4ZjhjOTk4MzBmNmZmYmZmNjA1ZmI0 M2E4NDhkMjY4ODBlN2UxYjUyZGQ2CiBub2Nyb3NzPSJldm9sdXRpb24tZGF0YS1zZXJ2ZXIgY3Jv c3MiCisKK3ByZV9idWlsZCgpIHsKKwluaW5qYSAtQyBidWlsZCBzcmMvbGliYmlqaS9iaWppLW1h cnNoYWxlcnMuaAorfQoKRnJvbSBmZTFhMTJmMDJjM2RiMmMyYTQzZTg3NGI4OTJkYmNiMjVjMGZj MjRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAyMDoyMDo1MCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMTkvOThdIGdyYXBoZW5lOiB1cGRhdGUgdG8gMS4xMC4yCgotLS0KIHNyY3Br Z3MvZ3JhcGhlbmUvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ncmFwaGVuZS90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUKaW5kZXggZjVjYzk5YjQxMjguLmU4Njgy MzliZmEwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ3JhcGhlbmUvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdncmFwaGVuZScKIHBrZ25hbWU9Z3JhcGhlbmUKLXZlcnNpb249MS4xMC4wCit2ZXJzaW9uPTEu MTAuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpA QCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iTUlUIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9lYmFz c2kvZ3JhcGhlbmUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ3JhcGhlbmUvJHt2ZXJzaW9u JS4qfS9ncmFwaGVuZS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTQwNmQ5N2Y1MWRkNGNh NjFlOTFmODQ2NjZhMDBjM2U5NzZkM2U2NjdjZDI0OGI3NmQ5MmZkYjM1Y2U4NzY0OTkKK2NoZWNr c3VtPWU5N2RlODIwOGYxYWFjNGY5MTNkNGZhNzFhYjczYTcwMzRlODA3MTg2ZmViMmFiZTU1ODc2 ZTUxYzQyNWE3ZjYKIAogY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJYXJtKikgY29u ZmlndXJlX2FyZ3MrPSIgLURhcm1fbmVvbj1mYWxzZSIgOzsKCkZyb20gN2QwYTgxNjZiNmU1NGRj ODlhYmViYmY5MzQ1MjJiNWZlOWE1N2U3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIw MjAgMjA6MjI6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzk4XSBhbXRrOiB1cGRhdGUgdG8g NS4yLjAKCi0tLQogc3JjcGtncy9hbXRrL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv YW10ay90ZW1wbGF0ZSBiL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZQppbmRleCA0NDljNTdlMDdlNi4u NDMzYmUyYjljNTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2FtdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdh bXRrJwogcGtnbmFtZT1hbXRrCi12ZXJzaW9uPTUuMS4xCit2ZXJzaW9uPTUuMi4wCiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTEy LDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvUHJvamVjdHMvQW10ayIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9hbXRrLyR7dmVy c2lvbiUuKn0vYW10ay0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5NjU2YmRkNDI3OGFh YmZiODU1NGYwMjkwNDliOWZmYWY1MWI1M2ZhYTQ2MzQ4M2E4NDAzNjU0NjMzNTVkZjEKK2NoZWNr c3VtPTgyMDU0NWJiNGNmODdlY2ViYzJjMzYzOGQ2YjZlNThiOGRiZDYwYTQxOWE5YjQzY2YwMjAx MjRlNWRhZDcwNzgKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIiCgpGcm9tIDIyMmQwZTBlOWU0Y2UwYzc0NTY4ZTc0MjJhNjJiNWYyMWZlZThmNDcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjQ0OjUxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyMS85OF0gaW8uZWxlbWVudGFyeS5jb2RlOiByZWJ1aWxkIGZvciB2YWxhLTAuNTAKCi0t LQogLi4uL2lvLmVsZW1lbnRhcnkuY29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2ggIHwgMjUgKysr KysrKysrKysrKysrKysrKwogc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvdGVtcGxhdGUgICAg ICAgICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3Bh dGNoZXMvdmFsYTA1MC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5j b2RlL3BhdGNoZXMvdmFsYTA1MC5wYXRjaCBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3Bh dGNoZXMvdmFsYTA1MC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uOWVlZWUxZmI2NjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2lvLmVsZW1lbnRhcnku Y29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSBhMTg1ZGUw ZTc3MTZhYTJkZTJiZjIxZGU5NmU2YzlhZjFkY2E4MWFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQs IDE2IFNlcCAyMDIwIDIwOjQzOjA3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGZpeCB3aXRoIHZh bGEtMC41MAorCistLS0KKyBwbHVnaW5zL291dGxpbmUvVmFsYS9WYWxhU3ltYm9sT3V0bGluZS52 YWxhIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt KQorCitkaWZmIC0tZ2l0IHBsdWdpbnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZh bGEgcGx1Z2lucy9vdXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYQoraW5kZXggYzhk YjMzOS4uMzEzODZhNiAxMDA2NDQKKy0tLSBwbHVnaW5zL291dGxpbmUvVmFsYS9WYWxhU3ltYm9s T3V0bGluZS52YWxhCisrKysgcGx1Z2lucy9vdXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUu dmFsYQorQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljIGNsYXNzIENvZGUuUGx1Z2lucy5WYWxhU3lt Ym9sT3V0bGluZSA6IE9iamVjdCwgQ29kZS5QbHVnaW5zLlN5bWJvbE91dGxpbmUKKyAKKyAgICAg cHVibGljIHZvaWQgcGFyc2Vfc3ltYm9scyAoKSB7CisgICAgICAgICB2YXIgY29udGV4dCA9IG5l dyBWYWxhLkNvZGVDb250ZXh0ICgpOworLSAgICAgICAgY29udGV4dC5wcm9maWxlID0gVmFsYS5Q cm9maWxlLkdPQkpFQ1Q7CisrICAgICAgICBjb250ZXh0LnNldF90YXJnZXRfcHJvZmlsZShWYWxh LlByb2ZpbGUuR09CSkVDVCk7CisgICAgICAgICBjb250ZXh0LmFkZF9zb3VyY2VfZmlsZW5hbWUg KGRvYy5maWxlLmdldF9wYXRoICgpKTsKKyAgICAgICAgIGNvbnRleHQucmVwb3J0ID0gbmV3IFJl cG9ydCAoKTsKKyAgICAgICAgIGlmIChjYW5jZWxsYWJsZSAhPSBudWxsKQorLS0gCisyLjI4LjAK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvdGVtcGxhdGUgYi9zcmNw a2dzL2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZQppbmRleCA0NDdlN2U1ZjYwYS4uOGQ0M2Fk NDEzMGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnaW8uZWxlbWVudGFyeS5jb2RlJwogcGtnbmFtZT1pby5lbGVt ZW50YXJ5LmNvZGUKIHZlcnNpb249My40LjEKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIHdya3Ny Yz0iY29kZS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyB2YWxhIGludGx0b29sIGdsaWItZGV2ZWwiCgpGcm9tIGJiZTQwYjMwNDYwYWZj MTczODBlN2FlM2M2YTkxZGViMzEwZjdhYjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAy MDIwIDIwOjUyOjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMi85OF0gcGhvZGF2OiB1cGRhdGUg dG8gMi41CgotLS0KIHNyY3BrZ3MvcGhvZGF2L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcGhvZGF2L3RlbXBsYXRlIGIvc3JjcGtncy9waG9kYXYvdGVtcGxhdGUKaW5kZXggMWE5MGEx YTBlNTguLjEzMDkyODk2ODk5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bob2Rhdi90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3Bob2Rhdi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3Bob2RhdicKIHBrZ25hbWU9cGhvZGF2Ci12ZXJzaW9uPTIuNAordmVyc2lvbj0y LjUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0 ZW1kPWRpc2FibGVkIC1EYXZhaGk9ZW5hYmxlZCAtRGd0a19kb2M9ZGlzYWJsZWQKQEAgLTEzLDcg KzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvcGhvZGF2IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09N2RkZGMyYjc1ZTA0 ZDA4NjZiYjljOWE4MzAyOGE1OTdlYmQ3M2VmNGMzN2JkNmViZTEwMzJhODcwYjQzYjhjMworY2hl Y2tzdW09NzFmMGE5Y2Q3MGFmZDRkZDE0MTJhMDI5ODMzMWRiYjhhYzcxYzAzNzdmNTIxMTdhZmMx NWViODhkYzZmYjkxMAogCiBwaG9kYXYtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJsaWJn bGliLWRldmVsIGxpYnNvdXAtZGV2ZWwgbGlieG1sMi1kZXZlbAoKRnJvbSBjZDJiNGViYmQwNDEx ODFlYzY2MDgxZTNmODQyYWY1NDk0ODAyZDI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjMvOThdIGdzZXR0aW5ncy1kZXNr dG9wLXNjaGVtYXM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogLi4uL3BhdGNoZXMvZml4LWNyb3Nz LWdpci5wYXRjaCAgICAgICAgICAgICAgICAgICAgIHwgMTMgLS0tLS0tLS0tLS0tLQogc3JjcGtn cy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlICAgICAgICAgIHwgIDYgKysrLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMv Zml4LWNyb3NzLWdpci5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0 b3Atc2NoZW1hcy9wYXRjaGVzL2ZpeC1jcm9zcy1naXIucGF0Y2ggYi9zcmNwa2dzL2dzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBiMjk5ZDVjOWNkMC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLWRpZmYgLS1naXQgYS9oZWFkZXJzL21lc29u LmJ1aWxkIGIvaGVhZGVycy9tZXNvbi5idWlsZAotaW5kZXggM2NlOGI2MS4uMTEzMjY5NSAxMDA2 NDQKLS0tLSBoZWFkZXJzL21lc29uLmJ1aWxkCi0rKysgaGVhZGVycy9tZXNvbi5idWlsZAotQEAg LTE5LDcgKzE5LDcgQEAgZW51bXNfeG1sID0gY3VzdG9tX3RhcmdldCgKLSAgIGluc3RhbGw6IHRy dWUsCi0gICBpbnN0YWxsX2Rpcjogc2NoZW1hc2RpcikKLSAKLS1pZiBub3QgbWVzb24uaXNfY3Jv c3NfYnVpbGQoKSBhbmQgZ2V0X29wdGlvbignaW50cm9zcGVjdGlvbicpCi0raWYgZ2V0X29wdGlv bignaW50cm9zcGVjdGlvbicpCi0gICBub2luc3RfbGliID0gc2hhcmVkX2xpYnJhcnkoJ25vaW5z dCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnN0YWxsOiBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQppbmRleCA0OWM2NGNjYTczOC4uNzZjNGIwZTA4MTAgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJwogcGtn bmFtZT1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCi12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249 MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRf c3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdp ciB0cnVlIGZhbHNlKSIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nc2V0dGluZ3MtZGVza3RvcC1z Y2hlbWFzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzY0YWI2ODMyODY1MzYz MjQ1MzNhNThkNGU5NWZjNTdmODFhZGFiYTdkODgwZGQwZWJiYmNlZDYzZTk2MGVhNgorY2hlY2tz dW09NTcwNGM4MjY2MDA0YjI5NjAzNjY3MWYyMjNjNzA1ZGMwNDZhYTY5NGExYjFhYmI4N2M2N2U3 ZDI3NDdhOGM2NwogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2ly IgoKRnJvbSA5ZGIwODVjYTYzNzA5ZDM0YzIyZWZhZDczNDMwZTYzNWRkOWIwMWEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToyMDoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MjQvOThdIGdsaWItbmV0d29ya2luZzogdXBkYXRlIHRvIDIuNjYuMAoKLS0tCiBzcmNwa2dzL2ds aWItbmV0d29ya2luZy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYi1uZXR3 b3JraW5nL3RlbXBsYXRlIGIvc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUKaW5kZXgg NWVhZmZhODJlNjQuLjk2ZjMxMmNmZjRkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dsaWItbmV0d29y a2luZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dsaWItbmV0d29ya2luZycKIHBrZ25h bWU9Z2xpYi1uZXR3b3JraW5nCi12ZXJzaW9uPTIuNjQuMQotcmV2aXNpb249MgordmVyc2lvbj0y LjY2LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURp bnN0YWxsZWRfdGVzdHM9ZmFsc2UgLURnbnV0bHM9ZW5hYmxlZCAtRGxpYnByb3h5PWVuYWJsZWQK ICAtRGdub21lX3Byb3h5PWVuYWJsZWQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xpYi1uZXR3 b3JraW5nLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE0YzM0NmRlZjdkODE3 NDY3ZDc5YTk1YzIzYjNjY2YyMmU0ZGYxNTQ4ODcwNzI2YjYzMzk2NDAwODUyZGFmNzIKK2NoZWNr c3VtPWM1ZDdiZTI0MzdmZGQxOTZlZWJmYjcwYzQ1MTdiOTZkM2JhN2VjMTNiZDQ5NjMxOGI4ZjAy ZGVhMzgzZTAwOTkKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20g YjkzYWQ1ZGEyZWYzNjlhYmJkODkyN2RiYzg0M2QwNzE0MDEyZDkzOCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI1Lzk4XSBh dC1zcGkyLWNvcmU6IHVwZGF0ZSB0byAyLjM4LjAKCi0tLQogc3JjcGtncy9hdC1zcGkyLWNvcmUv dGVtcGxhdGUgfCAxNCArKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9u cygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0LXNwaTItY29yZS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCmluZGV4IGIzODNmZTk5YmVk Li43NGU2MDcwMTIwMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUKQEAgLTEsMjMgKzEsMjcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2F0LXNwaTItY29yZScKIHBrZ25hbWU9YXQtc3BpMi1jb3JlCi12 ZXJzaW9uPTIuMzQuMAordmVyc2lvbj0yLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1l c29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBkYnVz IGdsaWItZGV2ZWwiCi1tYWtlZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJYZXh0LWRldmVsIGxp YlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwKLSBsaWJYZXZpZS1kZXZlbCBkYnVzLWRldmVsIgoraG9z dG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGRidXMgZ2xpYi1kZXZlbCBnZXR0ZXh0IgorbWFrZWRl cGVuZHM9ImxpYmdsaWItZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJYdHN0LWRl dmVsIGRidXMtZGV2ZWwiCiBzaG9ydF9kZXNjPSJBc3Npc3RpdmUgVGVjaG5vbG9neSBTZXJ2aWNl IFByb3ZpZGVyIEludGVyZmFjZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9hdC1zcGkyLWNvcmUiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1kNjI5Y2RiZDY3NGU1MzlmODkxMjAyODUxMmFmNTgzOTkwOTM4Yzdi NDllMjUxODRjMTI2YjAwMTIxZWYxMWM2CitjaGVja3N1bT04NGUzNmMzZmU2Njg2MjEzM2Y1ZmUy Mjk3NzJiNzZhYTI1MjZlMTBkZTUwMTRhMzc3OGYyZmE0NmNlNTUwZGE1CiAKICMgUGFja2FnZSBi dWlsZCBvcHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciIKIAorIyBub24tdHJpdmlhbCBkYnVzIHNldHVwCitkb19jaGVjaygpIHsKKwk6Cit9CisK IHBvc3RfaW5zdGFsbCgpIHsKIAlybSAtcmYgJHtERVNURElSfS91c3IvbGliL3N5c3RlbWQKIH0K CkZyb20gOTRkYTZlYWIxMWJjMzY4MTdmYzdlMWU1MTgzYjE0MTk2ODEzNGU4NyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI2 Lzk4XSBhdC1zcGkyLWF0azogdXBkYXRlIHRvIDIuMzguMAoKLS0tCiBzcmNwa2dzL2F0LXNwaTIt YXRrL3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1w bGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMuLmNm OTQ1ZGZmYjI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdhdC1zcGkyLWF0aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249Mi4z NC4xCit2ZXJzaW9uPTIuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3Rt YWtlZGVwZW5kcz0ibGlidG9vbCBwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwiCkBAIC0x MCw3ICsxMCwxMiBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5n bm9tZS5vcmciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03NzZkZjkzMDc0OGZk ZTcxYzEyOGJlNmMzNjZhOTg3Yjk4YjZlZTY2ZDUwOGVkOWM4ZGIyMzU1YmY0YjljYzE2CitjaGVj a3N1bT1jZmEwMDhhNWFmODIyYjM2YWU2Mjg3ZjE4MTgyYzQwYzkxZGQ2OTljNTVmYWEzODYwNTg4 MWVkMTc1Y2E0NjRmCisKKyMgbm9uLXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJ OgorfQogCiBhdC1zcGkyLWF0ay1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRl cGVuZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gMzliYTRk N2ExNjUxMWZkNDFjZmU3NzE0NjQ0YzM4MTg0MGE4MDdiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI3Lzk4XSBsaWJnd2Vh dGhlcjogdXBkYXRlIHRvIDMuMzYuMQoKLS0tCiBzcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRl IHwgMTUgKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUg Yi9zcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlCmluZGV4IDM0YzY0ZDZlM2ExLi5mY2RiNTg3 OTUwMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlCkBAIC0xLDEzICsxLDEyIEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdsaWJnd2VhdGhlcicKIHBrZ25hbWU9bGliZ3dlYXRoZXIKLXZlcnNpb249My4zNi4w Cit2ZXJzaW9uPTMuMzYuMQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX3ZhbGE9JCh2b3B0X2lmIHZhbGEg dHJ1ZSBmYWxzZSkKLSAtRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKQor Y29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBlbmFibGVfdmFsYSkgJCh2b3B0X2Jvb2wg Z2lyIGludHJvc3BlY3Rpb24pCiAgLUR6b25laW5mb19kaXI9L3Vzci9zaGFyZS96b25laW5mbyIK LWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnICQodm9wdF9p ZiB2YWxhIHZhbGEpIgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1j b25maWcgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJnZW9jb2RlLWdsaWItZGV2 ZWwgZ3RrKzMtZGV2ZWwgbGlic291cC1nbm9tZS1kZXZlbCIKIGNoZWNrZGVwZW5kcz0idHpkYXRh Igogc2hvcnRfZGVzYz0iR05PTUUgV2VhdGhlciBpbmZvcm1hdGlvbiBhY2Nlc3MgbGlicmFyeSIK QEAgLTE1LDEwICsxNCwxMCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9MaWJHV2VhdGhlciIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPWQyZmZlZWMwMTc4OGQwM2QxYmJmMzUxMTNmYzJmMDU0YzZjMzYwMDcy MTA4OGY4MjdiY2MzMWU1YzYwM2EzMmQKK2NoZWNrc3VtPWRlMjcwOWYwZWUyMzNiMjAxMTZkNWZh OTg2MWQ0MDYwNzE3OThjNGFhMzc4MzBjYTI1ZjVlZjJjMDA4M2U0NTAKIAotYnVpbGRfb3B0aW9u cz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0 aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIHBvc3RfcGF0Y2goKSB7 CiAJIyBUaGlzIHRlc3QgcmVxdWlyZXMgTENfSURFTlRJRklDQVRJT04sIHdoaWNoIGlzIGEgR0xJ QkMncyBleHRlbnNpb24KQEAgLTM1LDggKzM0LDYgQEAgbGliZ3dlYXRoZXItZGV2ZWxfcGFja2Fn ZSgpIHsKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIi IF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWls ZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9 CgpGcm9tIGVlNzBmNTg5YjI3YmYyYzJjOWM3MDhmZDFkZTEyNzQ2OGY2Y2ZiOGIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAy OC85OF0gZ25vbWUtbWVudXM6IHVwZGF0ZSB0byAzLjM2LjAKCi0tLQogc3JjcGtncy9nbm9tZS1t ZW51cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlCmluZGV4IDI5MTAyMTI5YzM4Li5lNzg3 ZmI4ZGU2YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtbWVudXMnCiBwa2duYW1lPWdub21lLW1lbnVzCi12ZXJzaW9uPTMuMzIu MAotcmV2aXNpb249MgordmVyc2lvbj0zLjM2LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJs ZS1zdGF0aWMiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUt bWVudXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jODUwYzY0YjIwNzQyNjVm ZTU5ZTA5OWEzNDBiODY4OWNmM2RkNDY1OGRjOWZlZGRkMmFiNWU5NWYxYTc0Yjc0CitjaGVja3N1 bT1kOTM0OGYzOGJkZTk1NmZjMzI3NTNiMjhjMWNkZTE5YzE3NWJmZGJmMWY0ZDViMDYwMDNiM2Fh MDkxNTNiYjFmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIgoKRnJvbSBiNTRmNDI2NzU0MmE1YmUzYzU1NjZmZmJmYTI0OTYyOGQxOWMxZTg0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMjkvOThdIGdub21lLWRlc2t0b3A6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3No bGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9nbm9tZS1k ZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2ggfCAxOCArKysrKysrKysrKysrKysrKysKIHNyY3Br Z3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSAgICAgICAgICAgIHwgMTEgKysrKysrKystLS0KIDMg ZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlm ZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGY3MDgzMWVhNDk2 Li41NmU4MjIyZDM4OCAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hs aWJzCkBAIC0xMTc2LDcgKzExNzYsNyBAQCBsaWJnc3RiYXNlY2FtZXJhYmluc3JjLTEuMC5zby4w IGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0Y29kZWNwYXJzZXJzLTEuMC5zby4wIGdz dC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0cGxheWVyLTEuMC5zby4wIGdzdC1wbHVnaW5z LWJhZDEtMS4wLjBfMQogbGliZ3N0Z2wtMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFzZTEtMS4xNC4w XzEKLWxpYmdub21lLWRlc2t0b3AtMy5zby4xOCBnbm9tZS1kZXNrdG9wLTMuMzQuMF8xCitsaWJn bm9tZS1kZXNrdG9wLTMuc28uMTkgZ25vbWUtZGVza3RvcC0zLjM3LjkwLjFfMQogbGlic2VjcmV0 LTEuc28uMCBsaWJzZWNyZXQtMC4xMF8xCiBsaWJnd2VhdGhlci0zLnNvLjE2IGxpYmd3ZWF0aGVy LTMuMzQuMF8xCiBsaWJnbm9tZWtiZC5zby44IGxpYmdub21la2JkLTMuNi4wXzEKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9n bm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmVmZWQwMGEyNWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9n bm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorY29tbWl0 IDRmNTVmZjA3ODQxMTk5M2I3ODJlNzRlYTE4YzVjNmFiMzVhZGY2ODUKK0F1dGhvcjogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiAgIFdlZCBBdWcgMTIgMDU6MjY6 MDAgMjAyMCArMDIwMAorCisgICAgYmxhCisKK2RpZmYgLS1naXQgbGliZ25vbWUtZGVza3RvcC9n bm9tZS1yci5oIGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAoraW5kZXggMTExYmFiMy4uNzY5 ODY3MiAxMDA2NDQKKy0tLSBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgKKysrKyBsaWJnbm9t ZS1kZXNrdG9wL2dub21lLXJyLmgKK0BAIC0yOCw2ICsyOCw3IEBACisgI2Vycm9yICAgIEdub21l UlIgaXMgdW5zdGFibGUgQVBJLiBZb3UgbXVzdCBkZWZpbmUgR05PTUVfREVTS1RPUF9VU0VfVU5T VEFCTEVfQVBJIGJlZm9yZSBpbmNsdWRpbmcgZ25vbWVyci5oCisgI2VuZGlmCisgCisrI2luY2x1 ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPGdkay9nZGsuaD4K KyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z25vbWUtZGVza3RvcC90ZW1wbGF0ZQppbmRleCA5OTJjYjFmZjE2YS4uYmQwYjJmNWMxZDkgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLWRlc2t0b3AnCiBwa2duYW1lPWdub21lLWRlc2t0b3AKLXZlcnNpb249My4zNC4x Cit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ25vbWUtZGlzdHJpYnV0b3I9Vm9pZExpbnV4 IC1EdWRldj1lbmFibGVkCitjb25maWd1cmVfYXJncz0iLURnbm9tZV9kaXN0cmlidXRvcj1Wb2lk TGludXggLUR1ZGV2PWVuYWJsZWQgLURzeXN0ZW1kPWRpc2FibGVkCiAgLURpbnRyb3NwZWN0aW9u PSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgaXRz dG9vbCBwa2ctY29uZmlnIGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZXVkZXYtbGlidWRldi1k ZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGd0ayszLWRldmVsCkBAIC0xNiwx MSArMTYsMTYgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1kZXNrdG9wIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzFkYmViNTY2NmRhZDI3MTY2Yzc2OWU0OGUyYWI0 MWRkNWVkNzQ3MThlYTM1ZWI1N2M4NDg4NzkwNjYyZGM1YQorY2hlY2tzdW09MDg5ZGJiZTNjNjZm ZTU1NzU2NTlhNGEzODVkNWQ0YmJkOTljZjYzNzAzNGRmMzE3ZjIxY2Y1ODZiNWRkNmI5MAogCiBi dWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAorIyBuZWVk cyBYCitkb19jaGVjaygpIHsKKwk6Cit9CisKIGdub21lLWRlc2t0b3AtZGV2ZWxfcGFja2FnZSgp IHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVs Pj0zLjEyCiAJIGdkay1waXhidWYtZGV2ZWwgaXNvLWNvZGVzIGxpYlgxMS1kZXZlbCBsaWJnbGli LWRldmVsIGxpYnNlY2NvbXAtZGV2ZWwKCkZyb20gZDdlNmYzZWZjNmIwOTBmNmNhMGFmNzZiNDNk ZjRhMGMyNDg3MGNkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDMwLzk4XSBnbm9tZS1zZXR0aW5ncy1kYWVtb246IHVwZGF0 ZSB0byAzLjM4LjAKCi0tLQogLi4uL3BhdGNoZXMvbG9naW5kLWJhY2tsaWdodC5wYXRjaCAgICAg ICAgICAgIHwgMTM2ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1k YWVtb24vdGVtcGxhdGUgICAgICAgIHwgIDExICstCiAyIGZpbGVzIGNoYW5nZWQsIDE0MiBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25v bWUtc2V0dGluZ3MtZGFlbW9uL3BhdGNoZXMvbG9naW5kLWJhY2tsaWdodC5wYXRjaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3BhdGNoZXMvbG9naW5kLWJhY2ts aWdodC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3BhdGNoZXMvbG9naW5k LWJhY2tsaWdodC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u ZTVjYTZiZDQzZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRh ZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2gKQEAgLTAsMCArMSwxMzYgQEAKK0Zy b20gMzg0NWIzYTdiNThmMjZlYzY4ZGJjMWM0NTdlYWQwNmY0ODgxMTgwYiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgor RGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAxNzo0ODoyMSArMDIwMAorU3ViamVjdDogW1BBVENIXSBU aGUgbmV3IGxvZ2luZCBicmlnaHRuZXNzIGNvZGUgZG9lc24ndCB3b3JrIHdpdGggZWxvZ2luZC4K KworaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNldHRpbmdzLWRhZW1vbi8t L2NvbW1pdC9jZDA1MWU2YzdjY2ZiN2U3YjBlYzQ0MDQwOWM1NTliMmU1MTI4NGU4CistLS0KKyBw bHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYyB8IDc3ICsrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgcGx1Z2lucy9wb3dlci9nc2QtYmFja2xpZ2h0LmMgcGx1Z2lu cy9wb3dlci9nc2QtYmFja2xpZ2h0LmMKK2luZGV4IGNhNWYyNzIuLjRhY2MyZTUgMTAwNjQ0Cist LS0gcGx1Z2lucy9wb3dlci9nc2QtYmFja2xpZ2h0LmMKKysrKyBwbHVnaW5zL3Bvd2VyL2dzZC1i YWNrbGlnaHQuYworQEAgLTQwLDggKzQwLDYgQEAgc3RydWN0IF9Hc2RCYWNrbGlnaHQKKyAgICAg ICAgIGdpbnQgYnJpZ2h0bmVzc19zdGVwOworIAorICNpZmRlZiBfX2xpbnV4X18KKy0gICAgICAg IEdEQnVzUHJveHkgKmxvZ2luZF9wcm94eTsKKy0KKyAgICAgICAgIEdVZGV2Q2xpZW50ICp1ZGV2 OworICAgICAgICAgR1VkZXZEZXZpY2UgKnVkZXZfZGV2aWNlOworIAorQEAgLTYxLDEwICs1OSw2 IEBAIGVudW0geworICAgICAgICAgUFJPUF9MQVNULAorIH07CisgCistI2RlZmluZSBTWVNURU1E X0RCVVNfTkFNRSAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5sb2dpbjEi CistI2RlZmluZSBTWVNURU1EX0RCVVNfUEFUSCAgICAgICAgICAgICAgICAgICAgICAgIi9vcmcv ZnJlZWRlc2t0b3AvbG9naW4xL3Nlc3Npb24vYXV0byIKKy0jZGVmaW5lIFNZU1RFTURfREJVU19J TlRFUkZBQ0UgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmxvZ2luMS5TZXNzaW9u IgorLQorIHN0YXRpYyBHUGFyYW1TcGVjICpwcm9wc1tQUk9QX0xBU1RdOworIAorIHN0YXRpYyB2 b2lkICAgICBnc2RfYmFja2xpZ2h0X2luaXRhYmxlX2lmYWNlX2luaXQgKEdJbml0YWJsZUlmYWNl ICAqaWZhY2UpOworQEAgLTQ4MiwzMCArNDc2LDEzIEBAIGdzZF9iYWNrbGlnaHRfc2V0X2JyaWdo dG5lc3NfdmFsX2FzeW5jIChHc2RCYWNrbGlnaHQgKmJhY2tsaWdodCwKKyAgICAgICAgIGlmIChi YWNrbGlnaHQtPnVkZXZfZGV2aWNlICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgQmFja2xp Z2h0SGVscGVyRGF0YSAqdGFza19kYXRhOworIAorLSAgICAgICAgICAgICAgICBpZiAoYmFja2xp Z2h0LT5sb2dpbmRfcHJveHkpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2RidXNfcHJv eHlfY2FsbCAoYmFja2xpZ2h0LT5sb2dpbmRfcHJveHksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJTZXRCcmlnaHRuZXNzIiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIihzc3UpIiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJh Y2tsaWdodCIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdfdWRldl9kZXZpY2VfZ2V0X25hbWUgKGJhY2tsaWdodC0+dWRldl9kZXZp Y2UpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiYWNrbGlnaHQtPmJyaWdodG5lc3NfdGFyZ2V0KSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0NBTExfRkxBR1NfTk9ORSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIE5VTEwsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnQgPSBBQlNfVE9fUEVSQ0VOVEFHRSAoYmFja2xp Z2h0LT5icmlnaHRuZXNzX21pbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVzc19tYXgsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrbGlnaHQtPmJy aWdodG5lc3NfdGFyZ2V0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBnX3Rhc2tfcmV0dXJu X2ludCAodGFzaywgcGVyY2VudCk7CistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgdGFza19kYXRhID0gZ19uZXcwIChCYWNrbGlnaHRIZWxwZXJEYXRh LCAxKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0YXNrX2RhdGEtPnZhbHVlID0gYmFja2xp Z2h0LT5icmlnaHRuZXNzX3RhcmdldDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBnX3Rhc2tf c2V0X3Rhc2tfZGF0YSAodGFzaywgdGFza19kYXRhLCBiYWNrbGlnaHRfdGFza19kYXRhX2Rlc3Ry b3kpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRhc2sgaXMgc2V0IHVwIG5vdy4g UXVldWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2luZyBzb21ldGhpbmcuICovCistICAgICAg ICAgICAgICAgICAgICAgICAgZ19xdWV1ZV9wdXNoX3RhaWwgKCZiYWNrbGlnaHQtPnRhc2tzLCB0 YXNrKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBnc2RfYmFja2xpZ2h0X3Byb2Nlc3NfdGFz a3F1ZXVlIChiYWNrbGlnaHQpOworLSAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAg IHRhc2tfZGF0YSA9IGdfbmV3MCAoQmFja2xpZ2h0SGVscGVyRGF0YSwgMSk7CisrICAgICAgICAg ICAgICAgIHRhc2tfZGF0YS0+dmFsdWUgPSBiYWNrbGlnaHQtPmJyaWdodG5lc3NfdGFyZ2V0Owor KyAgICAgICAgICAgICAgICBnX3Rhc2tfc2V0X3Rhc2tfZGF0YSAodGFzaywgdGFza19kYXRhLCBi YWNrbGlnaHRfdGFza19kYXRhX2Rlc3Ryb3kpOworKworKyAgICAgICAgICAgICAgICAvKiBUYXNr IGlzIHNldCB1cCBub3cuIFF1ZXVlIGl0IGFuZCBlbnN1cmUgd2UgYXJlIHdvcmtpbmcgc29tZXRo aW5nLiAqLworKyAgICAgICAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+ dGFza3MsIHRhc2spOworKyAgICAgICAgICAgICAgICBnc2RfYmFja2xpZ2h0X3Byb2Nlc3NfdGFz a3F1ZXVlIChiYWNrbGlnaHQpOworIAorICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg ICB9CitAQCAtODIzLDcgKzgwMCw2IEBAIGdzZF9iYWNrbGlnaHRfaW5pdGFibGVfaW5pdCAoR0lu aXRhYmxlICAgICAgICppbml0YWJsZSwKKyB7CisgICAgICAgICBHc2RCYWNrbGlnaHQgKmJhY2ts aWdodCA9IEdTRF9CQUNLTElHSFQgKGluaXRhYmxlKTsKKyAgICAgICAgIEdub21lUlJPdXRwdXQq IG91dHB1dCA9IE5VTEw7CistICAgICAgICBHRXJyb3IgKmxvZ2luZF9lcnJvciA9IE5VTEw7Cisg CisgICAgICAgICBpZiAoY2FuY2VsbGFibGUgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBn X3NldF9lcnJvcl9saXRlcmFsIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9OT1RfU1VQ UE9SVEVELAorQEAgLTgzMiw0NCArODA4LDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pbml0 IChHSW5pdGFibGUgICAgICAgKmluaXRhYmxlLAorICAgICAgICAgfQorIAorICNpZmRlZiBfX2xp bnV4X18KKy0gICAgICAgIGJhY2tsaWdodC0+bG9naW5kX3Byb3h5ID0KKy0gICAgICAgICAgICAg ICAgZ19kYnVzX3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU1lTVEVNLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTWVNURU1EX0RCVVNfTkFNRSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURf REJVU19QQVRILAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU1lTVEVNRF9EQlVTX0lOVEVSRkFDRSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsICZsb2dpbmRfZXJyb3IpOworLSAgICAgICAgaWYgKGJh Y2tsaWdodC0+bG9naW5kX3Byb3h5KSB7CistICAgICAgICAgICAgICAgIC8qIENoZWNrIHRoYXQg dGhlIFNldEJyaWdodG5lc3MgbWV0aG9kIGRvZXMgZXhpc3QgKi8KKy0gICAgICAgICAgICAgICAg Z19kYnVzX3Byb3h5X2NhbGxfc3luYyAoYmFja2xpZ2h0LT5sb2dpbmRfcHJveHksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXRCcmlnaHRuZXNzIiwgTlVMTCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0NBTExfRkxB R1NfTk9ORSwgLTEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsICZsb2dpbmRfZXJyb3IpOworLQorLSAgICAgICAgICAgICAgICBpZiAoZ19lcnJvcl9tYXRj aGVzIChsb2dpbmRfZXJyb3IsIEdfREJVU19FUlJPUiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX0lOVkFMSURfQVJHUykpIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAvKiBXZSBhcmUgY2FsbGluZyB0aGUgbWV0aG9kIHdpdGggbm8gYXJndW1l bnRzLCBzbworLSAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoaXMgaXMgZXhwZWN0ZWQuCist ICAgICAgICAgICAgICAgICAgICAgICAgICovCistICAgICAgICAgICAgICAgICAgICAgICAgZ19j bGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7CistICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo Z19lcnJvcl9tYXRjaGVzIChsb2dpbmRfZXJyb3IsIEdfREJVU19FUlJPUiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19FUlJPUl9VTktOT1dOX01F VEhPRCkpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvKiBzeXN0ZW1kIHZlcnNpb24gaXMg dG9vIG9sZCwgc28gaWdub3JlLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAqLworLSAgICAg ICAgICAgICAgICAgICAgICAgIGdfY2xlYXJfZXJyb3IgKCZsb2dpbmRfZXJyb3IpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGdfY2xlYXJfb2JqZWN0ICgmYmFja2xpZ2h0LT5sb2dpbmRfcHJv eHkpOworLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAg IC8qIEZhaWwgb24gYW55dGhpbmcgZWxzZSAqLworLSAgICAgICAgICAgICAgICAgICAgICAgIGdf Y2xlYXJfb2JqZWN0ICgmYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkpOworLSAgICAgICAgICAgICAg ICB9CistICAgICAgICB9CistCistICAgICAgICBpZiAobG9naW5kX2Vycm9yKSB7CistICAgICAg ICAgICAgICAgIGdfd2FybmluZyAoIk5vIGxvZ2luZCBmb3VuZDogJXMiLCBsb2dpbmRfZXJyb3It Pm1lc3NhZ2UpOworLSAgICAgICAgICAgICAgICBnX2Vycm9yX2ZyZWUgKGxvZ2luZF9lcnJvcik7 CistICAgICAgICB9CistCisgICAgICAgICAvKiBUcnkgZmluZGluZyBhIHVkZXYgZGV2aWNlLiAq LworICAgICAgICAgaWYgKGdzZF9iYWNrbGlnaHRfdWRldl9pbml0IChiYWNrbGlnaHQpKQorICAg ICAgICAgICAgICAgICBnb3RvIGZvdW5kOworQEAgLTkxMSw3ICs4NDksNiBAQCBnc2RfYmFja2xp Z2h0X2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCisgI2lmZGVmIF9fbGludXhfXworICAgICAg ICAgZ19hc3NlcnQgKGJhY2tsaWdodC0+YWN0aXZlX3Rhc2sgPT0gTlVMTCk7CisgICAgICAgICBn X2Fzc2VydCAoZ19xdWV1ZV9pc19lbXB0eSAoJmJhY2tsaWdodC0+dGFza3MpKTsKKy0gICAgICAg IGdfY2xlYXJfb2JqZWN0ICgmYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkpOworICAgICAgICAgZ19j bGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPnVkZXYpOworICAgICAgICAgZ19jbGVhcl9vYmplY3Qg KCZiYWNrbGlnaHQtPnVkZXZfZGV2aWNlKTsKKyAgICAgICAgIGlmIChiYWNrbGlnaHQtPmlkbGVf dXBkYXRlKSB7CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNldHRp bmdzLWRhZW1vbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBs YXRlCmluZGV4IGE3MGUyOGJlNWZhLi5iNmRhMjhlMjU1NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n bm9tZS1zZXR0aW5ncy1kYWVtb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5n cy1kYWVtb24vdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dub21lLXNldHRpbmdzLWRhZW1vbicKIHBrZ25hbWU9Z25vbWUtc2V0dGluZ3MtZGFlbW9uCi12 ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncys9Ii1Ec3lzdGVtZD1mYWxzZSIKLWhvc3Rt YWtlZGVwZW5kcz0iY21ha2UgZG9jYm9vay14c2wgZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxp YnhzbHQgcGVybCBwa2ctY29uZmlnIgoraG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBkb2Nib29rLXhz bCBnZXR0ZXh0IGdsaWItZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4c2x0CisgcGVybCBwa2ctY29u ZmlnIgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFsc2EtbGliLWRldmVsIGNv bG9yZC1kZXZlbCBjdXBzLWRldmVsIGdjci1kZXZlbAogIGdlb2NsdWUyLWRldmVsIGdub21lLWRl c2t0b3AtZGV2ZWwgaWJ1cy1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnbm9tZWtiZC1kZXZl bAogIGxpYmd3ZWF0aGVyLWRldmVsIGxpYm5vdGlmeS1kZXZlbCBsaWJyc3ZnLWRldmVsIGxpYndh Y29tLWRldmVsIG5zcy1kZXZlbApAQCAtMTIsMTMgKzEzLDEzIEBAIG1ha2VkZXBlbmRzPSJOZXR3 b3JrTWFuYWdlci1kZXZlbCBhbHNhLWxpYi1kZXZlbCBjb2xvcmQtZGV2ZWwgY3Vwcy1kZXZlbCBn Y3ItZGV2CiAgeGY4Ni1pbnB1dC13YWNvbS1kZXZlbCIKIGRlcGVuZHM9ImhpY29sb3ItaWNvbi10 aGVtZSBwdWxzZWF1ZGlvIgogY2hlY2tkZXBlbmRzPSJlbG9naW5kIGxpYm5vdGlmeSBweXRob24z LWRidXNtb2NrIHB5dGhvbjMtZ29iamVjdAotIHB5dGhvbjMtcHljb2Rlc3R5bGUiCisgcHl0aG9u My1weWNvZGVzdHlsZSB3aGljaCBod2lkcyBldWRldiIKIHNob3J0X2Rlc2M9IkdOT01FIHNldHRp bmdzIGRhZW1vbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS9nbm9tZS1zZXR0aW5ncy1kYWVtb24iCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT05OTgxYTIwYmFiZjhkYTc3NDRiN2ZiZTE3NWI5ZTM2MDc4YmYwOGYz YmY2NWZlNWFlZGViODJjZmUyN2FjMTFmCitjaGVja3N1bT1iN2VkNWI1ZmFiOWFhZDE5MmNlZWQ2 YTk1YmUyODA1MTI0ZTNjNjNjNDY4OTFiYmFlMDc2ZjdlYzNmZDY3OTJlCiAKIGlmIFsgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBwb2xraXQiCgpGcm9tIDhlNmZk ZjgyODlhNjQ2ZjI0MGE1MjA1ZWRlMmVkMWE1YWU1OWQxZTggTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMS85OF0gbXV0dGVy OiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxOCArLQogLi4uL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVz LnBhdGNoICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4z LnBhdGNoICAgICB8IDUyMSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXV0dGVyL3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArLQogNCBmaWxlcyBjaGFuZ2VkLCAyOSBp bnNlcnRpb25zKCspLCA1NTUgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAoKZGlmZiAt LWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDU2ZTgyMjJkMzg4Li43 ODQxZGY1YTg3YiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJz CkBAIC0zMDAyLDE1ICszMDAyLDE1IEBAIGxpYmRlY29yYXRpb24uc28uMCBjb21waXotY29yZS0w LjguMTRfMQogbGliY29tcGl6Y29uZmlnLnNvLjAgbGliY29tcGl6Y29uZmlnLTAuOC4xNF8xCiBs aWJlbWVyYWxkZW5naW5lLnNvLjAgZW1lcmFsZC0wLjguMTRfMQogbGliaGFuZ3VsLnNvLjEgbGli aGFuZ3VsLTAuMS4wXzEKLWxpYm11dHRlci01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0 ZXItY2x1dHRlci01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNsdXR0ZXItNS5zby4w IG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvIG11dHRlci0zLjM0LjFf MQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXIt Y29nbC01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtNS5zby4wIG11dHRlci0z LjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11 dHRlci1jb2dsLXBhbmdvLTUuc28uMCBtdXR0ZXItMy4zNC4xXzEKK2xpYm11dHRlci03LnNvLjAg bXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNsdXR0ZXItNy5zbyBtdXR0ZXItMy4zNy45MF8x CitsaWJtdXR0ZXItY2x1dHRlci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNv Z2wtcGF0aC03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhdGgtNy5zby4w IG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLTcuc28gbXV0dGVyLTMuMzcuOTBfMQor bGlibXV0dGVyLWNvZ2wtNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBh bmdvLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zby4wIG11 dHRlci0zLjM3LjkwXzEKIGxpYmdlb2NsdWUtMi5zby4wIGdlb2NsdWUyLTIuNC40XzEKIGxpYmdl cHViLnNvLjAgbGliZ2VwdWItMC40XzEKIGxpYnNsb3B5LnNvLjcuNSBzbG9wLTcuNV8xCmRpZmYg LS1naXQgYS9zcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRj aCBiL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTA5ODg4ODdjMy4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gY29nbC9jb2dsL21lc29uLmJ1aWxkCTIw MTktMTAtMDggMTk6MTU6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgY29nbC9jb2dsL21lc29uLmJ1 aWxkCTIwMTktMTItMTYgMTU6NDU6NDQuMDM3NjQwNTQ4ICswMTAwCi1AQCAtNDgsNyArNDgsNyBA QAotIGJ1aWx0X2hlYWRlcnMgKz0gW2NvZ2xfZ2xfaGVhZGVyX2hdCi0gCi0gaWYgaGF2ZV9lZ2wK LS0gIGNvZ2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcjaW5jbHVkZSA8RUdML2VnbC5oPlxuI2lu Y2x1ZGUgPEVHTC9lZ2xleHQuaD4nCi0rICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcgPSAnI2lu Y2x1ZGUgPEVHTC9lZ2wuaD5cbiNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+XG4jaW5jbHVkZSA8RUdM L2VnbG1lc2FleHQuaD4nCi0gZWxzZQotICAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJycK LSBlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMu cGF0Y2ggYi9zcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJmZjY1ZmJhODUuLjAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNTIxICswLDAgQEAKLUJ1aWxkIG11dHRlciBhZ2FpbnN0IHBpcGV3aXJlLTAuMywgYmFzZWQg b24gYSBwYXRjaCBhdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tdXR0ZXIvLS9t ZXJnZV9yZXF1ZXN0cy8xMDYyCi0tLS0gbWVzb24uYnVpbGQKLSsrKyBtZXNvbi5idWlsZAotQEAg LTUwLDcgKzUwLDcgQEAgbGliaW5wdXRfcmVxID0gJz49IDEuNycKLSBnYm1fcmVxID0gJz49IDEw LjMnCi0KLSAjIHNjcmVlbiBjYXN0IHZlcnNpb24gcmVxdWlyZW1lbnRzCi0tbGlicGlwZXdpcmVf cmVxID0gJz49IDAuMi41JwotK2xpYnBpcGV3aXJlX3JlcSA9ICc+PSAwLjMuMCcKLQotIGdub21l ID0gaW1wb3J0KCdnbm9tZScpCi0gcGtnID0gaW1wb3J0KCdwa2djb25maWcnKQotQEAgLTI0MSw3 ICsyNDEsNyBAQCBlbmRpZgotCi0gaGF2ZV9yZW1vdGVfZGVza3RvcCA9IGdldF9vcHRpb24oJ3Jl bW90ZV9kZXNrdG9wJykKLSBpZiBoYXZlX3JlbW90ZV9kZXNrdG9wCi0tICBsaWJwaXBld2lyZV9k ZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjInLCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9y ZXEpCi0rICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjMnLCB2 ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0gZW5kaWYKLQotIGhhdmVfaW50cm9zcGVjdGlvbiA9 IGdldF9vcHRpb24oJ2ludHJvc3BlY3Rpb24nKQotZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kcy9t ZXRhLXNjcmVlbi1jYXN0LXN0cmVhbS1zcmMuYyBiL3NyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1j YXN0LXN0cmVhbS1zcmMuYwotaW5kZXggODJjNWNiYTQzNi4uYmExY2U5NGE3ZSAxMDA2NDQKLS0t LSBzcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLSsrKyBzcmMvYmFj a2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLUBAIC0yOSw2ICsyOSw3IEBACi0g I2luY2x1ZGUgPHNwYS9wYXJhbS9wcm9wcy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0vZm9ybWF0 LXV0aWxzLmg+Ci0gI2luY2x1ZGUgPHNwYS9wYXJhbS92aWRlby9mb3JtYXQtdXRpbHMuaD4KLSsj aW5jbHVkZSA8c3BhL3V0aWxzL3Jlc3VsdC5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5j bHVkZSA8c3lzL21tYW4uaD4KLQotQEAgLTYyLDE1ICs2Myw2IEBAIGVudW0KLQotIHN0YXRpYyBn dWludCBzaWduYWxzW05fU0lHTkFMU107Ci0KLS10eXBlZGVmIHN0cnVjdCBfTWV0YVNwYVR5cGUK LS17Ci0tICBzdHJ1Y3Qgc3BhX3R5cGVfbWVkaWFfdHlwZSBtZWRpYV90eXBlOwotLSAgc3RydWN0 IHNwYV90eXBlX21lZGlhX3N1YnR5cGUgbWVkaWFfc3VidHlwZTsKLS0gIHN0cnVjdCBzcGFfdHlw ZV9mb3JtYXRfdmlkZW8gZm9ybWF0X3ZpZGVvOwotLSAgc3RydWN0IHNwYV90eXBlX3ZpZGVvX2Zv cm1hdCB2aWRlb19mb3JtYXQ7Ci0tICB1aW50MzJfdCBtZXRhX2N1cnNvcjsKLS19IE1ldGFTcGFU eXBlOwotLQotIHR5cGVkZWYgc3RydWN0IF9NZXRhUGlwZVdpcmVTb3VyY2UKLSB7Ci0gICBHU291 cmNlIGJhc2U7Ci1AQCAtODIsMTkgKzc0LDE5IEBAIHR5cGVkZWYgc3RydWN0IF9NZXRhU2NyZWVu Q2FzdFN0cmVhbVNyY1ByaXZhdGUKLSB7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbSAqc3RyZWFt OwotCi0rICBzdHJ1Y3QgcHdfY29udGV4dCAqcGlwZXdpcmVfY29udGV4dDsKLSAgIHN0cnVjdCBw d19jb3JlICpwaXBld2lyZV9jb3JlOwotLSAgc3RydWN0IHB3X3JlbW90ZSAqcGlwZXdpcmVfcmVt b3RlOwotLSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGU7Ci0gICBNZXRhUGlwZVdpcmVT b3VyY2UgKnBpcGV3aXJlX3NvdXJjZTsKLS0gIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9yZW1v dGVfbGlzdGVuZXI7Ci0rICBzdHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfY29yZV9saXN0ZW5lcjsK LQotICAgZ2Jvb2xlYW4gaXNfZW5hYmxlZDsKLQotICAgc3RydWN0IHB3X3N0cmVhbSAqcGlwZXdp cmVfc3RyZWFtOwotICAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX3N0cmVhbV9saXN0ZW5lcjsK LSsgIHVpbnQzMl90IG5vZGVfaWQ7Ci0KLS0gIE1ldGFTcGFUeXBlIHNwYV90eXBlOwotICAgc3Ry dWN0IHNwYV92aWRlb19pbmZvX3JhdyB2aWRlb19mb3JtYXQ7Ci0rICBpbnQgdmlkZW9fc3RyaWRl OwotCi0gICB1aW50NjRfdCBsYXN0X2ZyYW1lX3RpbWVzdGFtcF91czsKLQotQEAgLTExMiw4ICsx MDQsNiBAQCBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YV9z Y3JlZW5fY2FzdF9zdHJlYW1fc3JjX2luaXRfaW5pdGFibGVfaWZhY2UpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIEdfQUREX1BSSVZBVEUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjKSkKLQot LSNkZWZpbmUgUFJPUF9SQU5HRShtaW4sIG1heCkgMiwgKG1pbiksIChtYXgpCi0tCi0gc3RhdGlj IHZvaWQKLSBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X3NwZWNzIChNZXRhU2NyZWVu Q2FzdFN0cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCAgICAgICAgICAgICAgICAgICAgICp3aWR0aCwKLUBAIC0yODYsOSArMjc2LDYgQEAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFk YXRhIChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB4 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHkpCi0gewotLSAgTWV0YVNjcmVlbkNh c3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBl ID0gJnByaXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3BhX21ldGFf Yml0bWFwOwotCi0gICBzcGFfbWV0YV9jdXJzb3ItPmlkID0gMTsKLUBAIC0zMDAsNyArMjg3LDcg QEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21l dGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1C RVIgKHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNw YV9tZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3Jt YXQgPSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZv cm1hdCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0 ID0gc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgc3BhX21ldGFfY3Vyc29y LT5ob3RzcG90LnggPSAwOwotQEAgLTMxNyw5ICszMDQsNiBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFt U3JjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgeSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0ICAgICAgICAgICAgICAgICAg ICBzY2FsZSkKLSB7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQot LSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNy Yyk7Ci0tICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0gICBDb2ds VGV4dHVyZSAqY3Vyc29yX3RleHR1cmU7Ci0gICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwICpzcGFf bWV0YV9iaXRtYXA7Ci0gICBpbnQgaG90c3BvdF94LCBob3RzcG90X3k7Ci1AQCAtMzQ2LDcgKzMz MCw3IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX3Nwcml0ZV9tZXRh ZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9N RU1CRVIgKHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNwYV9tZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5m b3JtYXQgPSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAt PmZvcm1hdCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zm c2V0ID0gc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgbWV0YV9jdXJzb3Jf c3ByaXRlX2dldF9ob3RzcG90IChjdXJzb3Jfc3ByaXRlLCAmaG90c3BvdF94LCAmaG90c3BvdF95 KTsKLUBAIC0zODIsMTIgKzM2NiwxMCBAQCBzdGF0aWMgdm9pZAotIGFkZF9jdXJzb3JfbWV0YWRh dGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHNwYV9idWZmZXIgICAgICAgKnNwYV9idWZmZXIpCi0gewotLSAgTWV0YVNjcmVlbkNh c3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBl ID0gJnByaXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2N1cnNvciAqc3BhX21ldGFf Y3Vyc29yOwotCi0tICBzcGFfbWV0YV9jdXJzb3IgPSBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3Bh X2J1ZmZlciwgc3BhX3R5cGUtPm1ldGFfY3Vyc29yKTsKLSsgIHNwYV9tZXRhX2N1cnNvciA9IHNw YV9idWZmZXJfZmluZF9tZXRhX2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX0N1cnNvciwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoKnNw YV9tZXRhX2N1cnNvcikpOwotICAgaWYgKHNwYV9tZXRhX2N1cnNvcikKLSAgICAgbWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9jdXJzb3JfbWV0YWRhdGEgKHNyYywgc3BhX21ldGFfY3Vy c29yKTsKLSB9Ci1AQCAtNDQ3LDE0ICs0MjksMTQgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX21heWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYykKLSAg ICAgewotICAgICAgIGRhdGEgPSBzcGFfYnVmZmVyLT5kYXRhc1swXS5kYXRhOwotICAgICB9Ci0t ICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IHByaXYtPnBpcGV3aXJlX3R5 cGUtPmRhdGEuTWVtRmQpCi0rICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09 IFNQQV9EQVRBX01lbUZkKQotICAgICB7Ci0gICAgICAgbWFwID0gbW1hcCAoTlVMTCwgc3BhX2J1 ZmZlci0+ZGF0YXNbMF0ubWF4c2l6ZSArIHNwYV9idWZmZXItPmRhdGFzWzBdLm1hcG9mZnNldCwK LSAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELAot ICAgICAgICAgICAgICAgICAgIHNwYV9idWZmZXItPmRhdGFzWzBdLmZkLCAwKTsKLSAgICAgICBp ZiAobWFwID09IE1BUF9GQUlMRUQpCi0gICAgICAgICB7Ci0tICAgICAgICAgIGdfd2FybmluZyAo IkZhaWxlZCB0byBtbWFwIHBpcGV3aXJlIHN0cmVhbSBidWZmZXI6ICVzXG4iLAotKyAgICAgICAg ICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlcyIs Ci0gICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3IgKGVycm5vKSk7Ci0gICAgICAgICAgIHJl dHVybjsKLSAgICAgICAgIH0KLUBAIC00NjksMjggKzQ1MSwzMCBAQCBtZXRhX3NjcmVlbl9jYXN0 X3N0cmVhbV9zcmNfbWF5YmVfcmVjb3JkX2ZyYW1lIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAq c3JjKQotCi0gICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3JlY29yZF9mcmFtZSAo c3JjLCBkYXRhKSkKLSAgICAgewotLSAgICAgIHN0cnVjdCBzcGFfbWV0YV92aWRlb19jcm9wICpz cGFfbWV0YV92aWRlb19jcm9wOwotKyAgICAgIHN0cnVjdCBzcGFfbWV0YV9yZWdpb24gKnNwYV9t ZXRhX3ZpZGVvX2Nyb3A7Ci0KLSAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5jaHVuay0+c2l6 ZSA9IHNwYV9idWZmZXItPmRhdGFzWzBdLm1heHNpemU7Ci0rICAgICAgc3BhX2J1ZmZlci0+ZGF0 YXNbMF0uY2h1bmstPnN0cmlkZSA9IHByaXYtPnZpZGVvX3N0cmlkZTsKLQotICAgICAgIC8qIFVw ZGF0ZSBWaWRlb0Nyb3AgaWYgbmVlZGVkICovCi0gICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcCA9 Ci0tICAgICAgICBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgcHJpdi0+cGlwZXdp cmVfdHlwZS0+bWV0YS5WaWRlb0Nyb3ApOwotKyAgICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGFf ZGF0YSAoc3BhX2J1ZmZlciwgU1BBX01FVEFfVmlkZW9Dcm9wLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mICgqc3BhX21ldGFfdmlkZW9fY3JvcCkpOwotICAgICAg IGlmIChzcGFfbWV0YV92aWRlb19jcm9wKQotICAgICAgICAgewotICAgICAgICAgICBpZiAobWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF92aWRlb2Nyb3AgKHNyYywgJmNyb3BfcmVjdCkp Ci0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9 IGNyb3BfcmVjdC54OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9IGNy b3BfcmVjdC55OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+d2lkdGggPSBj cm9wX3JlY3Qud2lkdGg7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5oZWln aHQgPSBjcm9wX3JlY3QuaGVpZ2h0OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3Jv cC0+cmVnaW9uLnBvc2l0aW9uLnggPSBjcm9wX3JlY3QueDsKLSsgICAgICAgICAgICAgIHNwYV9t ZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55ID0gY3JvcF9yZWN0Lnk7Ci0rICAgICAg ICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCA9IGNyb3BfcmVj dC53aWR0aDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXpl LmhlaWdodCA9IGNyb3BfcmVjdC5oZWlnaHQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICBl bHNlCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+ eCA9IDA7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT55ID0gMDsKLS0gICAg ICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRo OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0gcHJpdi0+c3Ry ZWFtX2hlaWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5w b3NpdGlvbi54ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lv bi5wb3NpdGlvbi55ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJl Z2lvbi5zaXplLndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotKyAgICAgICAgICAgICAgc3Bh X21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUuaGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdo dDsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC01NTUsNyArNTM5LDYg QEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAot ICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2Fz dFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9z cmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICB1aW50MzJfdCBub2RlX2lkOwotCi0g ICBzd2l0Y2ggKHN0YXRlKQotICAgICB7Ci1AQCAtNTYzLDE0ICs1NDYsMTIgQEAgb25fc3RyZWFt X3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgIGdfd2Fy bmluZyAoInBpcGV3aXJlIHN0cmVhbSBlcnJvcjogJXMiLCBlcnJvcl9tZXNzYWdlKTsKLSAgICAg ICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLSAgICAg ICBicmVhazsKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09ORklHVVJFOgotLSAgICAgIG5v ZGVfaWQgPSBwd19zdHJlYW1fZ2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0t ICAgICAgZ19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGlu dCkgbm9kZV9pZCk7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1VO Q09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5HOgotLSAgICBj YXNlIFBXX1NUUkVBTV9TVEFURV9SRUFEWToKLSAgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfUEFV U0VEOgotKyAgICAgIGlmIChwcml2LT5ub2RlX2lkID09IFNQQV9JRF9JTlZBTElEICYmIHByaXYt PnBpcGV3aXJlX3N0cmVhbSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgcHJpdi0+bm9kZV9pZCA9 IHB3X3N0cmVhbV9nZXRfbm9kZV9pZCAocHJpdi0+cGlwZXdpcmVfc3RyZWFtKTsKLSsgICAgICAg ICAgZ19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkg cHJpdi0+bm9kZV9pZCk7Ci0rICAgICAgICB9Ci0gICAgICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rf c3RyZWFtX3NyY19pc19lbmFibGVkIChzcmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0gICAgICAgYnJlYWs7Ci1AQCAtNTc4LDY4ICs1NTks NjkgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRh LAotICAgICAgIGlmICghbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2lzX2VuYWJsZWQgKHNy YykpCi0gICAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZW5hYmxlIChzcmMpOwot ICAgICAgIGJyZWFrOwotKyAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5FQ1RFRDoKLSsg ICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElORzoKLSsgICAgICBicmVhazsKLSAgICAg fQotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RyZWFtX2Zvcm1hdF9jaGFuZ2VkICh2b2lkICAg ICAgICAgICAgICAgICAqZGF0YSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0rb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQgKHZvaWQgICAg ICAgICAgICAgICAgICpkYXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAg ICAgICAgICAgICAgaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBz cGFfcG9kICpmb3JtYXQpCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRh dGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRh X3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBz dHJ1Y3QgcHdfdHlwZSAqcGlwZXdpcmVfdHlwZSA9IHByaXYtPnBpcGV3aXJlX3R5cGU7Ci0gICB1 aW50OF90IHBhcmFtc19idWZmZXJbMTAyNF07Ci0gICBpbnQzMl90IHdpZHRoLCBoZWlnaHQsIHN0 cmlkZSwgc2l6ZTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXI7Ci0gICBj b25zdCBzdHJ1Y3Qgc3BhX3BvZCAqcGFyYW1zWzNdOwotICAgY29uc3QgaW50IGJwcCA9IDQ7Ci0K LS0gIGlmICghZm9ybWF0KQotLSAgICB7Ci0tICAgICAgcHdfc3RyZWFtX2ZpbmlzaF9mb3JtYXQg KHByaXYtPnBpcGV3aXJlX3N0cmVhbSwgMCwgTlVMTCwgMCk7Ci0tICAgICAgcmV0dXJuOwotLSAg ICB9Ci0rICBpZiAoIWZvcm1hdCB8fCBpZCAhPSBTUEFfUEFSQU1fRm9ybWF0KQotKyAgICByZXR1 cm47Ci0KLSAgIHNwYV9mb3JtYXRfdmlkZW9fcmF3X3BhcnNlIChmb3JtYXQsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmcHJpdi0+c3BhX3R5cGUuZm9ybWF0X3ZpZGVvKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+dmlkZW9fZm9ybWF0KTsKLQotICAgd2lkdGgg PSBwcml2LT52aWRlb19mb3JtYXQuc2l6ZS53aWR0aDsKLSAgIGhlaWdodCA9IHByaXYtPnZpZGVv X2Zvcm1hdC5zaXplLmhlaWdodDsKLSAgIHN0cmlkZSA9IFNQQV9ST1VORF9VUF9OICh3aWR0aCAq IGJwcCwgNCk7Ci0gICBzaXplID0gaGVpZ2h0ICogc3RyaWRlOwotCi0rICBwcml2LT52aWRlb19z dHJpZGUgPSBzdHJpZGU7Ci0rCi0gICBwb2RfYnVpbGRlciA9IFNQQV9QT0RfQlVJTERFUl9JTklU IChwYXJhbXNfYnVmZmVyLCBzaXplb2YgKHBhcmFtc19idWZmZXIpKTsKLQotLSAgcGFyYW1zWzBd ID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxk ZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+ cGFyYW0uaWRCdWZmZXJzLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLkJ1ZmZlcnMsCi0t ICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zaXplLCAiaSIsIHNpemUsCi0t ICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zdHJpZGUsICJpIiwgc3RyaWRl LAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuYnVmZmVycywgImlydSIs IDE2LCBQUk9QX1JBTkdFICgyLCAxNiksCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1f YnVmZmVycy5hbGlnbiwgImkiLCAxNik7Ci0tCi0tICBwYXJhbXNbMV0gPSBzcGFfcG9kX2J1aWxk ZXJfb2JqZWN0ICgKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtQnVmZmVycywgU1BBX1BBUkFN X0J1ZmZlcnMsCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2J1ZmZlcnMsIFNQQV9QT0RfQ0hPSUNF X1JBTkdFX0ludCAoMTYsIDIsIDE2KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYmxvY2tzLCBT UEFfUE9EX0ludCAoMSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX3NpemUsIFNQQV9QT0RfSW50 IChzaXplKSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfc3RyaWRlLCBTUEFfUE9EX0ludCAoc3Ry aWRlKSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYWxpZ24sIFNQQV9QT0RfSW50ICgxNikpOwot KwotKyAgcGFyYW1zWzFdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9k X2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdpcmVfdHlw ZS0+cGFyYW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEu dHlwZSwgIkkiLCBwaXBld2lyZV90eXBlLT5tZXRhLlZpZGVvQ3JvcCwKLS0gICAgIjoiLCBwaXBl d2lyZV90eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFf dmlkZW9fY3JvcCkpOwotKyAgICBTUEFfVFlQRV9PQkpFQ1RfUGFyYW1NZXRhLCBTUEFfUEFSQU1f TWV0YSwKLSsgICAgU1BBX1BBUkFNX01FVEFfdHlwZSwgU1BBX1BPRF9JZCAoU1BBX01FVEFfVmlk ZW9Dcm9wKSwKLSsgICAgU1BBX1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BPRF9JbnQgKHNpemVvZiAo c3RydWN0IHNwYV9tZXRhX3JlZ2lvbikpKTsKLQotLSAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWls ZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMl0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAo Ci0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRNZXRhLCBw aXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLk1ldGEsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+ cGFyYW1fbWV0YS50eXBlLCAiSSIsIHByaXYtPnNwYV90eXBlLm1ldGFfY3Vyc29yLAotLSAgICAi OiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuc2l6ZSwgImkiLCBDVVJTT1JfTUVUQV9TSVpF ICg2NCwgNjQpKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFNX01l dGEsCi0rICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRBX0N1cnNv ciksCi0rICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChDVVJTT1JfTUVUQV9T SVpFICg2NCwgNjQpKSk7Ci0KLS0gIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2LT5waXBl d2lyZV9zdHJlYW0sIDAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05f RUxFTUVOVFMgKHBhcmFtcykpOwotKyAgcHdfc3RyZWFtX3VwZGF0ZV9wYXJhbXMgKHByaXYtPnBp cGV3aXJlX3N0cmVhbSwgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotIH0KLQotIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcHdfc3RyZWFtX2V2ZW50cyBzdHJlYW1fZXZlbnRzID0gewotICAg UFdfVkVSU0lPTl9TVFJFQU1fRVZFTlRTLAotICAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdHJlYW1f c3RhdGVfY2hhbmdlZCwKLS0gIC5mb3JtYXRfY2hhbmdlZCA9IG9uX3N0cmVhbV9mb3JtYXRfY2hh bmdlZCwKLSsgIC5wYXJhbV9jaGFuZ2VkID0gb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQsCi0gfTsK LQotIHN0YXRpYyBzdHJ1Y3QgcHdfc3RyZWFtICoKLUBAIC02NTIsOCArNjM0LDYgQEAgY3JlYXRl X3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICB1aW50 OF90IGJ1ZmZlclsxMDI0XTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXIg PQotICAgICBTUEFfUE9EX0JVSUxERVJfSU5JVCAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlcikpOwot LSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotLSAgc3RydWN0IHB3 X3R5cGUgKnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgZmxvYXQgZnJh bWVfcmF0ZTsKLSAgIE1ldGFGcmFjdGlvbiBmcmFtZV9yYXRlX2ZyYWN0aW9uOwotICAgc3RydWN0 IHNwYV9mcmFjdGlvbiBtYXhfZnJhbWVyYXRlOwotQEAgLTY2MSw3ICs2NDEsOSBAQCBjcmVhdGVf cGlwZXdpcmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSAgIGNvbnN0 IHN0cnVjdCBzcGFfcG9kICpwYXJhbXNbMV07Ci0gICBpbnQgcmVzdWx0OwotCi0tICBwaXBld2ly ZV9zdHJlYW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9yZW1vdGUsCi0rICBwcml2 LT5ub2RlX2lkID0gU1BBX0lEX0lOVkFMSUQ7Ci0rCi0rICBwaXBld2lyZV9zdHJlYW0gPSBwd19z dHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9jb3JlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIm1ldGEtc2NyZWVuLWNhc3Qtc3JjIiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwpOwotICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi1AQCAtNjgy LDE3ICs2NjQsMTcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmMgICpzcmMsCi0gICBtYXhfZnJhbWVyYXRlID0gU1BBX0ZSQUNUSU9OIChmcmFtZV9yYXRl X2ZyYWN0aW9uLm51bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3Jh dGVfZnJhY3Rpb24uZGVub20pOwotCi0tICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfb2Jq ZWN0ICgKLSsgIHBhcmFtc1swXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAg JnBvZF9idWlsZGVyLAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZEVudW1Gb3JtYXQsIHBp cGV3aXJlX3R5cGUtPnNwYV9mb3JtYXQsCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3R5cGUu dmlkZW8sCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3N1YnR5cGUucmF3LAotLSAgICAiOiIs IHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZm9ybWF0LCAiSSIsIHNwYV90eXBlLT52aWRlb19mb3Jt YXQuQkdSeCwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLnNpemUsICJSIiwgJlNQ QV9SRUNUQU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPnN0cmVhbV9oZWlnaHQp LAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIsICZTUEFf RlJBQ1RJT04gKDAsIDEpLAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8ubWF4X2Zy YW1lcmF0ZSwgIkZydSIsICZtYXhfZnJhbWVyYXRlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfUkFOR0UgKCZtaW5fZnJhbWVyYXRl LAotKyAgICBTUEFfVFlQRV9PQkpFQ1RfRm9ybWF0LCBTUEFfUEFSQU1fRW51bUZvcm1hdCwKLSsg ICAgU1BBX0ZPUk1BVF9tZWRpYVR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9UWVBFX3ZpZGVv KSwKLSsgICAgU1BBX0ZPUk1BVF9tZWRpYVN1YnR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9T VUJUWVBFX3JhdyksCi0rICAgIFNQQV9GT1JNQVRfVklERU9fZm9ybWF0LCBTUEFfUE9EX0lkIChT UEFfVklERU9fRk9STUFUX0JHUngpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX3NpemUsIFNQQV9Q T0RfUmVjdGFuZ2xlICgmU1BBX1JFQ1RBTkdMRSAocHJpdi0+c3RyZWFtX3dpZHRoLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJpdi0+c3RyZWFtX2hlaWdodCkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2ZyYW1lcmF0ZSwg U1BBX1BPRF9GcmFjdGlvbiAoJlNQQV9GUkFDVElPTiAoMCwgMSkpLAotKyAgICBTUEFfRk9STUFU X1ZJREVPX21heEZyYW1lcmF0ZSwgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfRnJhY3Rpb24gKCZtYXhf ZnJhbWVyYXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZtaW5fZnJhbWVyYXRlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYXhfZnJh bWVyYXRlKSk7Ci0KLSAgIHB3X3N0cmVhbV9hZGRfbGlzdGVuZXIgKHBpcGV3aXJlX3N0cmVhbSwK LUBAIC03MDIsNyArNjg0LDcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNh c3RTdHJlYW1TcmMgICpzcmMsCi0KLSAgIHJlc3VsdCA9IHB3X3N0cmVhbV9jb25uZWN0IChwaXBl d2lyZV9zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdfRElSRUNUSU9O X09VVFBVVCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNQQV9JRF9JTlZBTElELAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChQV19TVFJFQU1fRkxBR19EUklWRVIgfAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQV19TVFJFQU1fRkxBR19NQVBfQlVGRkVSUyksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotQEAgLTcx Nyw0MCArNjk5LDE4IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3Ry ZWFtU3JjICAqc3JjLAotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RhdGVfY2hhbmdlZCAodm9p ZCAgICAgICAgICAgICAgICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1v dGVfc3RhdGUgIG9sZCwKLS0gICAgICAgICAgICAgICAgICBlbnVtIHB3X3JlbW90ZV9zdGF0ZSAg c3RhdGUsCi0tICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgKmVycm9yX21l c3NhZ2UpCi0rb25fY29yZV9lcnJvciAodm9pZCAgICAgICAqZGF0YSwKLSsgICAgICAgICAgICAg ICB1aW50MzJfdCAgICBpZCwKLSsJICAgICAgIGludCAgICAgICAgIHNlcSwKLSsJICAgICAgIGlu dCAgICAgICAgIHJlcywKLSsJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gewotICAgTWV0 YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVh bVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0 X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3QgcHdfc3RyZWFtICpwaXBld2lyZV9z dHJlYW07Ci0tICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLQotLSAgc3dpdGNoIChzdGF0ZSkKLS0g ICAgewotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9FUlJPUjoKLS0gICAgICBnX3dhcm5pbmcg KCJwaXBld2lyZSByZW1vdGUgZXJyb3I6ICVzXG4iLCBlcnJvcl9tZXNzYWdlKTsKLS0gICAgICBt ZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLS0gICAgICBi cmVhazsKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgotLSAgICAgIHBpcGV3 aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgJmVycm9yKTsKLS0gICAg ICBpZiAoIXBpcGV3aXJlX3N0cmVhbSkKLS0gICAgICAgIHsKLS0gICAgICAgICAgZ193YXJuaW5n ICgiQ291bGQgbm90IGNyZWF0ZSBwaXBld2lyZSBzdHJlYW06ICVzIiwgZXJyb3ItPm1lc3NhZ2Up OwotLSAgICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLS0gICAgICAgICAgbWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgICB9Ci0tICAg ICAgZWxzZQotLSAgICAgICAgewotLSAgICAgICAgICBwcml2LT5waXBld2lyZV9zdHJlYW0gPSBw aXBld2lyZV9zdHJlYW07Ci0tICAgICAgICB9Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdf UkVNT1RFX1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9DT05O RUNUSU5HOgotLSAgICAgIGJyZWFrOwotLSAgICB9Ci0rICBnX3dhcm5pbmcgKCJwaXBld2lyZSBy ZW1vdGUgZXJyb3I6IGlkOiV1ICVzIiwgaWQsIG1lc3NhZ2UpOwotKwotKyAgaWYgKGlkID09IFBX X0lEX0NPUkUgJiYgcmVzID09IC1FUElQRSkKLSsgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0gfQotCi0gc3RhdGljIGdib29sZWFuCi1AQCAtNzkz LDE3ICs3NTMsNiBAQCBzdGF0aWMgR1NvdXJjZUZ1bmNzIHBpcGV3aXJlX3NvdXJjZV9mdW5jcyA9 Ci0gICBwaXBld2lyZV9sb29wX3NvdXJjZV9maW5hbGl6ZQotIH07Ci0KLS1zdGF0aWMgdm9pZAot LWluaXRfc3BhX3R5cGUgKE1ldGFTcGFUeXBlICAgICAgICAgKnR5cGUsCi0tICAgICAgICAgICAg ICAgc3RydWN0IHNwYV90eXBlX21hcCAqbWFwKQotLXsKLS0gIHNwYV90eXBlX21lZGlhX3R5cGVf bWFwIChtYXAsICZ0eXBlLT5tZWRpYV90eXBlKTsKLS0gIHNwYV90eXBlX21lZGlhX3N1YnR5cGVf bWFwIChtYXAsICZ0eXBlLT5tZWRpYV9zdWJ0eXBlKTsKLS0gIHNwYV90eXBlX2Zvcm1hdF92aWRl b19tYXAgKG1hcCwgJnR5cGUtPmZvcm1hdF92aWRlbyk7Ci0tICBzcGFfdHlwZV92aWRlb19mb3Jt YXRfbWFwIChtYXAsICZ0eXBlLT52aWRlb19mb3JtYXQpOwotLSAgdHlwZS0+bWV0YV9jdXJzb3Ig PSBzcGFfdHlwZV9tYXBfZ2V0X2lkKG1hcCwgU1BBX1RZUEVfTUVUQV9fQ3Vyc29yKTsKLS19Ci0t Ci0gc3RhdGljIE1ldGFQaXBlV2lyZVNvdXJjZSAqCi0gY3JlYXRlX3BpcGV3aXJlX3NvdXJjZSAo dm9pZCkKLSB7Ci1AQCAtODI5LDkgKzc3OCw5IEBAIGNyZWF0ZV9waXBld2lyZV9zb3VyY2UgKHZv aWQpCi0gICByZXR1cm4gcGlwZXdpcmVfc291cmNlOwotIH0KLQotLXN0YXRpYyBjb25zdCBzdHJ1 Y3QgcHdfcmVtb3RlX2V2ZW50cyByZW1vdGVfZXZlbnRzID0gewotLSAgUFdfVkVSU0lPTl9SRU1P VEVfRVZFTlRTLAotLSAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdGF0ZV9jaGFuZ2VkLAotK3N0YXRp YyBjb25zdCBzdHJ1Y3QgcHdfY29yZV9ldmVudHMgY29yZV9ldmVudHMgPSB7Ci0rICBQV19WRVJT SU9OX0NPUkVfRVZFTlRTLAotKyAgLmVycm9yID0gb25fY29yZV9lcnJvciwKLSB9OwotCi0gc3Rh dGljIGdib29sZWFuCi1AQCAtODUxLDM3ICs4MDAsMzEgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJl YW1fc3JjX2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgKmluaXRhYmxlLAotICAgICAgIHJl dHVybiBGQUxTRTsKLSAgICAgfQotCi0tICBwcml2LT5waXBld2lyZV9jb3JlID0gcHdfY29yZV9u ZXcgKHByaXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX2Nv cmUpCi0rICBwcml2LT5waXBld2lyZV9jb250ZXh0ID0gcHdfY29udGV4dF9uZXcgKHByaXYtPnBp cGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgMCk7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvbnRl eHQpCi0gICAgIHsKLSAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9f RVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBl d2lyZSBjb3JlIik7Ci0rICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY3JlYXRlIHBpcGV3 aXJlIGNvbnRleHQiKTsKLSAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+ cGlwZXdpcmVfcmVtb3RlID0gcHdfcmVtb3RlX25ldyAocHJpdi0+cGlwZXdpcmVfY29yZSwgTlVM TCwgMCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX3JlbW90ZSkKLSsgIHByaXYtPnBpcGV3aXJl X2NvcmUgPSBwd19jb250ZXh0X2Nvbm5lY3QgKHByaXYtPnBpcGV3aXJlX2NvbnRleHQsIE5VTEws IDApOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9jb3JlKQotICAgICB7Ci0gICAgICAgZ19zZXRf ZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAg ICAgICAgICAgIkNvdWxkbid0IGNyZWF0IHBpcGV3aXJlIHJlbW90ZSIpOwotKyAgICAgICAgICAg ICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2lyZSBjb250ZXh0Iik7Ci0gICAgICAgcmV0 dXJuIEZBTFNFOwotICAgICB9Ci0KLS0gIHB3X3JlbW90ZV9hZGRfbGlzdGVuZXIgKHByaXYtPnBp cGV3aXJlX3JlbW90ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5waXBld2ly ZV9yZW1vdGVfbGlzdGVuZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVtb3RlX2V2 ZW50cywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0rICBwd19jb3JlX2FkZF9s aXN0ZW5lciAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAm cHJpdi0+cGlwZXdpcmVfY29yZV9saXN0ZW5lciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAm Y29yZV9ldmVudHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgc3JjKTsKLQotLSAgcHJpdi0+ cGlwZXdpcmVfdHlwZSA9IHB3X2NvcmVfZ2V0X3R5cGUgKHByaXYtPnBpcGV3aXJlX2NvcmUpOwot LSAgaW5pdF9zcGFfdHlwZSAoJnByaXYtPnNwYV90eXBlLCBwcml2LT5waXBld2lyZV90eXBlLT5t YXApOwotLQotLSAgaWYgKHB3X3JlbW90ZV9jb25uZWN0IChwcml2LT5waXBld2lyZV9yZW1vdGUp ICE9IDApCi0tICAgIHsKLS0gICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdf SU9fRVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBw aXBld2lyZSByZW1vdGUiKTsKLS0gICAgICByZXR1cm4gRkFMU0U7Ci0tICAgIH0KLSsgIHByaXYt PnBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgZXJyb3IpOwot KyAgaWYgKCFwcml2LT5waXBld2lyZV9zdHJlYW0pCi0rICAgIHJldHVybiBGQUxTRTsKLQotICAg cmV0dXJuIFRSVUU7Ci0gfQotQEAgLTkxMiw4ICs4NTUsOCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKLSAgICAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0KLSAgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYt PnBpcGV3aXJlX3N0cmVhbSwgcHdfc3RyZWFtX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9wb2ludGVy ICgmcHJpdi0+cGlwZXdpcmVfcmVtb3RlLCBwd19yZW1vdGVfZGVzdHJveSk7Ci0tICBnX2NsZWFy X3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb3JlLCBwd19jb3JlX2Rlc3Ryb3kpOwotKyAgZ19j bGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kaXNjb25uZWN0KTsK LSsgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvbnRleHQsIHB3X2NvbnRleHRf ZGVzdHJveSk7Ci0gICBnX3NvdXJjZV9kZXN0cm95ICgmcHJpdi0+cGlwZXdpcmVfc291cmNlLT5i YXNlKTsKLQotICAgR19PQkpFQ1RfQ0xBU1MgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19w YXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0 dGVyL3RlbXBsYXRlIGIvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKaW5kZXggODA2YTNiZWY5ZjAu LjQ3OTI4NDAzNGVhIDEwMDY0NAotLS0gYS9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL211dHRlci90ZW1wbGF0ZQpAQCAtMSwzNCArMSw0MCBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnbXV0dGVyJwogcGtnbmFtZT1tdXR0ZXIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0z Cit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9z dHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZWdsX2RldmljZT10cnVlIC1EdWRldj10cnVl IC1EbmF0aXZlX2JhY2tlbmQ9dHJ1ZQotIC1EcHJvZmlsZXI9ZmFsc2UgLURpbnRyb3NwZWN0aW9u PXRydWUgLUR4d2F5bGFuZF9wYXRoPS91c3IvYmluL1h3YXlsYW5kIgorIC1EcHJvZmlsZXI9ZmFs c2UgLURpbnRyb3NwZWN0aW9uPXRydWUgLUR4d2F5bGFuZF9wYXRoPS91c3IvYmluL1h3YXlsYW5k CisgLUR4d2F5bGFuZF9pbml0ZmQ9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQg Z2xpYi1kZXZlbCBwa2ctY29uZmlnIHplbml0eSB3YXlsYW5kLWRldmVsIHhvcmctc2VydmVyIgot bWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVs IGpzb24tZ2xpYi1kZXZlbAotIGxpYmdsaWItZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZl bCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJpbnB1dC1kZXZlbAotIE1lc2FMaWItZGV2ZWwgcGlwZXdp cmUtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwgd2F5bGFuZC1wcm90b2NvbHMKLSBn bm9tZS1zZXR0aW5ncy1kYWVtb24tZGV2ZWwiCi1kZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMg emVuaXR5IgorbWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNr dG9wLWRldmVsIGdyYXBoZW5lLWRldmVsCisganNvbi1nbGliLWRldmVsIGxpYmdsaWItZGV2ZWwg bGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAorIGxpYmlucHV0LWRl dmVsIE1lc2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2 ZWwKKyB3YXlsYW5kLXByb3RvY29scyBnbm9tZS1zZXR0aW5ncy1kYWVtb24tZGV2ZWwiCitkZXBl bmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGRlc2t0b3AtZmlsZS11dGlscyB6ZW5pdHki CiBzaG9ydF9kZXNjPSJMaWdodHdlaWdodCBHVEsrMyB3aW5kb3cgbWFuYWdlciIKIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvTXV0 dGVyLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWJhMTgyNmNmODhiZGI4MWU2 Mzk0M2NhYzAxNGE4ZThiY2YzNWVjMTc4YzUzMjY0NDAxZjljNzJmZGVhYjc1OGUKLXNobGliX3By b3ZpZGVzPSJsaWJtdXR0ZXItY2x1dHRlci01LnNvIGxpYm11dHRlci1jb2dsLTUuc28KLSBsaWJt dXR0ZXItY29nbC1wYW5nby01LnNvIGxpYm11dHRlci1jb2dsLXBhdGgtNS5zbyIKK2NoZWNrc3Vt PTA1OGVkMTNkMTAyMDg1ZDNlOWI2ZmE1NTY0YzY2MDUwYTQ3OGMzNjRhMGNjNTViYzg0NGZlYTNk ZGNkOTBlYWIKK3NobGliX3Byb3ZpZGVzPSJsaWJtdXR0ZXItY2x1dHRlci03LnNvIGxpYm11dHRl ci1jb2dsLTcuc28KKyBsaWJtdXR0ZXItY29nbC1wYW5nby03LnNvIGxpYm11dHRlci1jb2dsLXBh dGgtNy5zbyIKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIG11dHRlci1kZXZl bF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgZ3RrKzMt ZGV2ZWwgY2x1dHRlci1kZXZlbCBsaWJYMTEtZGV2ZWwKLQkgbGliWHRzdC1kZXZlbCBtdXR0ZXIt JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRzPSJndGsrMy1kZXZlbCBncmFwaGVuZS1k ZXZlbCBjbHV0dGVyLWRldmVsCisJIGxpYlgxMS1kZXZlbCBsaWJYdHN0LWRldmVsIG11dHRlci0k e3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxl cyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xp Yi9wa2djb25maWcKLQkJdm1vdmUgInVzci9saWIvbXV0dGVyLTUvKi5naXIiCisJCXZtb3ZlICJ1 c3IvbGliL211dHRlci03LyouZ2lyIgogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCX0KIH0KCkZy b20gYjhkNjkyZDEzZTdiODg2MTUzZWEzODc1ZDYzYTgyZmI1MDhhZWU3MyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDMyLzk4 XSBjaGVlc2U6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUg fCAxNCArKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSBiL3NyY3Br Z3MvY2hlZXNlL3RlbXBsYXRlCmluZGV4IDdhNTZiYTAzOWZiLi5mYWEzMjllZTBlNCAxMDA2NDQK LS0tIGEvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jaGVlc2UvdGVtcGxh dGUKQEAgLTEsMTEgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NoZWVzZScKIHBrZ25h bWU9Y2hlZXNlCi12ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGd0 a19kb2M9JCh2b3B0X2lmIGd0a19kb2MgJ3RydWUnICdmYWxzZScpCi0gLURtYW49JCh2b3B0X2lm IGd0a19kb2MgJ3RydWUnICdmYWxzZScpIgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGd0 a19kb2MgZ3RrX2RvYykgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBtYW4pIgogaG9zdG1ha2VkZXBlbmRz PSJnZXR0ZXh0IGdkay1waXhidWYgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBs aWJyc3ZnCiAgJCh2b3B0X2lmIGd0a19kb2MgJ2d0ay1kb2MnKSAkKHZvcHRfaWYgZ2lyICdnb2Jq ZWN0LWludHJvc3BlY3Rpb24nKSIKIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1 dHRlci1ndGstZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbApAQCAtMTcsNyArMTYsNyBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ2hl ZXNlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDE4NjU2MDBhYzg4MDEyZTEz NmIxZWMzZGI3MmE0NjM0ZjU3YmMyMDM1ODk1Mjc3YmU3OTJiYjA3ODYyN2U3MworY2hlY2tzdW09 ODhkMjczMmI0MjFiOTAzMTEwYTI2MjhkYjI1YzBkNjFlMjE5YzQyYmRmYjU5NzExNTEwMzNmYmE5 NWE4ZDE2ZgogCiBidWlsZF9vcHRpb25zPSJnaXIgZ3RrX2RvYyIKIGJ1aWxkX29wdGlvbnNfZGVm YXVsdD0iZ2lyIgpAQCAtMzcsMTEgKzM2LDggQEAgbGliY2hlZXNlX3BhY2thZ2UoKSB7CiB9CiAK IGNoZWVzZS1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImdzdC1wbHVnaW5zLWJhZDEtZGV2 ZWwKLQkJIGNsdXR0ZXItZ3N0My1kZXZlbAotCQkgY2x1dHRlci1ndGstZGV2ZWwKLQkJIGxpYmNh bmJlcnJhLWRldmVsCi0JCSBsaWJjaGVlc2U+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVw ZW5kcz0iZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbCBjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1dHRlci1n dGstZGV2ZWwKKwkgbGliY2FuYmVycmEtZGV2ZWwgbGliY2hlZXNlPj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFs bCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gY2JlYzNiMzNlMTkyMzJiZWFmNjNiYjNk Y2RjNzhhZTc0YjlhNTgzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDMzLzk4XSBldm9sdXRpb24tZGF0YS1zZXJ2ZXI6IHVw ZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUgfCAyNSAr KysrKysrKysrKysrKystLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMo KyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24v c2hsaWJzCmluZGV4IDc4NDFkZjVhODdiLi40ZTg5Njc1MzdlMyAxMDA2NDQKLS0tIGEvY29tbW9u L3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC02MjYsNyArNjI2LDcgQEAgbGliaWNhbHNz X2N4eC5zby4zIGxpYmljYWwtMy4wLjRfMQogbGliaWNhbHZjYWwuc28uMyBsaWJpY2FsLTMuMC40 XzEKIGxpYmljYWwtZ2xpYi5zby4zIGxpYmljYWwtMy4wLjRfMQogbGliY2FtZWwtMS4yLnNvLjYy IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjMwLjBfMQotbGliZWRhdGFzZXJ2ZXItMS4yLnNvLjI0 IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjMyLjBfMQorbGliZWRhdGFzZXJ2ZXItMS4yLnNvLjI1 IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjM3LjkwXzEKIGxpYmViYWNrZW5kLTEuMi5zby4xMCBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4xNy45MF8xCiBsaWJlZGF0YXNlcnZlcnVpLTEuMi5zby4y IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI4LjBfMQogbGliZWJvb2stY29udGFjdHMtMS4yLnNv LjMgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzQuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2 b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2Vy dmVyL3RlbXBsYXRlCmluZGV4IGU1MDI5MmE0M2VhLi44Y2NmOWNiNmViMCAxMDA2NDQKLS0tIGEv c3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldm9s dXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUKQEAgLTEsMjkgKzEsMzQgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2V2b2x1dGlvbi1kYXRhLXNlcnZlcicKIHBrZ25hbWU9ZXZvbHV0aW9uLWRhdGEt c2VydmVyCi12ZXJzaW9uPTMuMzYuMQotcmV2aXNpb249MwordmVyc2lvbj0zLjM4LjAKK3Jldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCi1idWlsZF9oZWxwZXI9Z2lyCitidWlsZF9oZWxwZXI9 ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxFX1VPQT1PRkYKLSAkKHZvcHRfaWYg Z2lyICctREVOQUJMRV9JTlRST1NQRUNUSU9OPU9OIC1ERU5BQkxFX1ZBTEFfQklORElOR1M9T04n ICctREVOQUJMRV9XRUFUSEVSPU9GRicpIgotaG9zdG1ha2VkZXBlbmRzPSJmbGV4IGdsaWItZGV2 ZWwgZ3BlcmYgaW50bHRvb2wgcGtnLWNvbmZpZyBsaWJnbGliLWRldmVsCi0gJCh2b3B0X2lmIGdp ciAnZ29iamVjdC1pbnRyb3NwZWN0aW9uJykiCi1tYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwgbGli Y2FuYmVycmEtZGV2ZWwgbGliZ2RhdGEtZGV2ZWwgJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhlci1k ZXZlbCkKLSBsaWJpY2FsLWRldmVsIGxpYnNlY3JldC1kZXZlbCBtaXQta3JiNS1kZXZlbCAkKHZv cHRfaWYgZ2lyICd2YWxhLWRldmVsJykgd2Via2l0Mmd0ay1kZXZlbCIKLWRlcGVuZHM9IiQodm9w dF9pZiBnaXIgbGliZ3dlYXRoZXIpIGxpYnNvdXAtZ25vbWUiCisgJCh2b3B0X2lmIGdpciAnLURF TkFCTEVfSU5UUk9TUEVDVElPTj1PTiAtREVOQUJMRV9WQUxBX0JJTkRJTkdTPU9OJykiCitob3N0 bWFrZWRlcGVuZHM9ImZsZXggZ2xpYi1kZXZlbCBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnIGxp YmdsaWItZGV2ZWwiCittYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwg bGliZ2RhdGEtZGV2ZWwgbGliaWNhbC1kZXZlbAorIGxpYnNlY3JldC1kZXZlbCBtaXQta3JiNS1k ZXZlbCB3ZWJraXQyZ3RrLWRldmVsIGxpYmd3ZWF0aGVyLWRldmVsCisgJCh2b3B0X2lmIGdpciB2 YWxhLWRldmVsKSIKK2RlcGVuZHM9ImxpYmd3ZWF0aGVyIGxpYnNvdXAtZ25vbWUiCiBzaG9ydF9k ZXNjPSJDZW50cmFsaXplZCBhY2Nlc3MgdG8gYXBwb2ludG1lbnRzIGFuZCBjb250YWN0cyIKIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJM R1BMLTIuMS1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Fdm9s dXRpb24iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9N RS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvZ25vbWUtMy0zNi9ORVdTIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09MTMxMjJiMmVkZGRiOTgzMDYyMDdkMmEzNWQ1Y2NhZTI1YTkwNzAy NzY5Y2EwYTBiNTE2NTNiNTk4NDk4Njc5NgorY2hlY2tzdW09MTM2ODlhN2I1NTc2NTgwNmM0ZDVm M2IwNWVmNmMyNGIwYmY5OTU3YjllZDkyNDBjMmRkMDlhMmNkYjEzYjBhZgogCiBidWlsZF9vcHRp b25zPSJnaXIiCiBpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciIKIGZpCiAKKyMgcHJvYmxlbWF0aWMKK2RvX2NoZWNrKCkgeworCToKK30K KwogIyBjbWFrZSBwZXJmb21ybXMgMiBjaGVja3MgdXNpbmcgYmluYXJ5IHJ1bnRpbWUsIGFib3V0 IGljb252IGFuZCBzZnJ0aW1lLgogIyBtdXNsICgxLjEuMTYpIGRvZXMgbm90IHN1cHBvcnQgIklT Ty0yMDIyLUpQIiBlbmNvZGluZyAoc2VlIGl0cyByb2FkbWFwKSwKICMgYWx0aG91Z2ggZXZvbHV0 aW9uLWRhdGEtc2VydmVyIGlzIGZpbmUgd2l0aCBtdXNsLgoKRnJvbSAxYzc1YzgxMGM5YzkyM2Jm YTVkMWNjOTQwNjg1ZGRmNWY1YmFkNWJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzQvOThdIGZvbGtzOiB1cGRhdGUgdG8g MC4xNC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgfCAgNyArKysrLS0tCiBzcmNwa2dz L2ZvbGtzL3RlbXBsYXRlIHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA0ZTg5Njc1MzdlMy4uMDIwNjE5 NWIyNTIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAt ODMxLDkgKzgzMSwxMCBAQCBsaWJkbXIuc28uMC4xIGRlZXBpbi1tb3ZpZS1yZWJvcm4tMy4yLjVf MQogbGliZ2pzLnNvLjAgZ2pzLTEuNjUuMl8xCiBsaWJ0ZWxlcGF0aHktZ2xpYi5zby4wIHRlbGVw YXRoeS1nbGliLTAuMTUuNV8xCiBsaWJhY2NvdW50c3NlcnZpY2Uuc28uMCBhY2NvdW50c3NlcnZp Y2UtMC42LjRfMQotbGliZm9sa3Muc28uMjUgZm9sa3MtMC45LjVfMQotbGliZm9sa3MtdGVsZXBh dGh5LnNvLjI1IGZvbGtzLTAuOS41XzEKLWxpYmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjkuNV8x CitsaWJmb2xrcy5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZHVtbXkuc28uMjUgZm9s a3MtMC4xNC4wXzEKK2xpYmZvbGtzLXRlbGVwYXRoeS5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGli Zm9sa3MtZWRzLnNvLjI1IGZvbGtzLTAuMTQuMF8xCiBsaWJuaWNlLnNvLjEwIGxpYm5pY2UtMC4x LjBfMQogbGliZ3VwbnAtaWdkLTEuMC5zby40IGd1cG5wLWlnZC0wLjIuMF8xCiBsaWJ0ZWxlcGF0 aHktbG9nZ2VyLnNvLjMgdGVsZXBhdGh5LWxvZ2dlci0wLjYuMF8xCmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZvbGtzL3RlbXBsYXRlIGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQppbmRleCAzMzEwYzU0 ZmFkZC4uYjA3NmI5NGJlYTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQpAQCAtMSwyMSArMSwyNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZm9sa3MnCiBwa2duYW1lPWZvbGtzCi12ZXJzaW9uPTAuMTMuMQotcmV2aXNpb249 MgordmVyc2lvbj0wLjE0LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1idWlsZF9o ZWxwZXI9Z2lyCi1jb25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSAtRGxpYnNvY2lhbHdlYi1i YWNrZW5kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWIt ZGV2ZWwgdmFsYSBweXRob24gZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0gZXZvbHV0aW9uLWRhdGEt c2VydmVyLWRldmVsIgorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKK2NvbmZpZ3VyZV9hcmdzPSIt RGJfbHRvPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWIt ZGV2ZWwgcHl0aG9uMyBweXRob24zLWRidXNtb2NrCisgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRl dmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0icmVhZGxpbmUtZGV2ZWwgdGVs ZXBhdGh5LWdsaWItZGV2ZWwgemVpdGdlaXN0LWRldmVsCi0gbGliZ2VlMDgtZGV2ZWwgZXZvbHV0 aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwiCisgbGliZ2VlMDgtZGV2ZWwgZXZv bHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZh bGEtZGV2ZWwpIgogZGVwZW5kcz0iemVpdGdlaXN0Igogc2hvcnRfZGVzYz0iR09iamVjdCBMaWJy YXJ5IHRvIGFnZ3JlZ2F0ZSBwZW9wbGUgaW50byBtZXRhY29udGFjdHMiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Gb2xrcyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNkZjFjNjYzYjgyZmUyMTFhZWFkMmIz MWNhZTFmYzQxZDEyNGU4NTQzNjM3NTc2MmY2NzQ1YzQ1YmE0NmFhNWQKK2NoZWNrc3VtPWQ2ZTc3 OGRhNjM3ZDNiMzNmZDlhNmI0NTExNWU4MTU3ZDg4NjgyMTFkYzA4Yjk0M2QxMDc1YjVlYjcyODJi YjkKKworYnVpbGRfb3B0aW9ucz0iZ2lyIgoraWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVu CisJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCitmaQogCiBmb2xrcy1kZXZlbF9wYWNrYWdl KCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKQEAgLTI0LDcgKzMwLDkgQEAgZm9sa3MtZGV2ZWxfcGFja2FnZSgpIHsKIAkJ dm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgInVz ci9saWIvKi5zbyIKLQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKLQkJdm1vdmUgdXNyL3NoYXJlL2dp ci0xLjAKKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KKwkJCXZtb3ZlIHVzci9z aGFyZS9naXItMS4wCisJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQorCQlmaQogCX0KIH0KCkZyb20g NDk5YTY2NGFkZjdkNzIzODFlMGVlYjYwZTJhMWQyMDM0ZjMzYTM3YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM1Lzk4XSBn bm9tZS1vbmxpbmUtYWNjb3VudHM6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25v bWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlIHwgMTQgKysrKysrLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW9ubGlu ZS1hY2NvdW50cy90ZW1wbGF0ZQppbmRleCAxOTNhN2Y5YjQzZi4uMjk5ODBkNDM0MjQgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZ25vbWUtb25saW5lLWFjY291bnRzJwogcGtnbmFtZT1nbm9tZS1vbmxp bmUtYWNjb3VudHMKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuOTAK K3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2ly IgogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCkBAIC0x MSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0 aW9uKQogIC0tZW5hYmxlLW93bmNsb3VkIC0tZW5hYmxlLXdpbmRvd3MtbGl2ZSAtLWVuYWJsZS1w b2NrZXQKICAtLWVuYWJsZS1sYXN0Zm0gLS1lbmFibGUtbWVkaWEtc2VydmVyIgogaG9zdG1ha2Vk ZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtY29tbW9u Ci0gbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhIHZhbGEpIgorIGxpYnhzbHQgcGtn LWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdjci1kZXZlbCBndGsr My1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnNlY3JldC1kZXZlbAog IGxpYnNvdXAtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgcmVzdC1kZXZlbCB0ZWxlcGF0aHktZ2xpYi1k ZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIgpAQCAt MjAsMTAgKzIwLDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lT25saW5lQWNjb3VudHMiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0xYzhmNjI5OTA4MzNjYTQxMTg4ZGJiODBjNWU5OWQ5OWI1N2E2 MjYwOGNhNjc1YmJjZDM3YmMyMjQ0NzQyZjJlCitjaGVja3N1bT05ZjY5ODJjODk2ZTYyMzVhMmU4 NWI4YTQ5N2M3YmY2M2E0YTI4OGI1Njc4ZGI0MGRjMzczNTE1ZWZiZWRiMWJiCiAKLWJ1aWxkX29w dGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxk X29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBnbm9tZS1vbmxp bmUtYWNjb3VudHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCAke3Nv dXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0zNSw4ICszNSw2IEBAIGdub21l LW9ubGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL2dvYS0x LjAKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFy ZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJ dm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDZiNDIzZjEzZTQ1MWM5N2IzOTM3 MzczOWM5OTAzMDZkZjU0OTZjMzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNi85OF0gZ25vbWUtY29udHJvbC1jZW50ZXI6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZSAg ICAgICAgICAgICAgIHwgIDIgKwogLi4uL2dub21lLWNvbnRyb2wtY2VudGVyL3BhdGNoZXMvbm0x MjIucGF0Y2ggIHwgMzggKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1jb250cm9s LWNlbnRlci90ZW1wbGF0ZSAgICAgICAgIHwgMjQgKysrKysrKy0tLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDU0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvdGVtcGxhdGUgYi9zcmNwa2dzL05ldHdvcmtN YW5hZ2VyL3RlbXBsYXRlCmluZGV4IGVkZWI4Mjc4NTc5Li5lNDgyYmJhOThkZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL05ldHdvcmtN YW5hZ2VyL3RlbXBsYXRlCkBAIC0xLDQgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnTmV0 d29ya01hbmFnZXInCisjIHdoZW4gdXBkYXRpbmcgdG8gMS4yNCBvciBuZXdlciwgZHJvcCB0aGUg Y29tcGF0CisjIHBhdGNoIGluIGdub21lLWNvbnRyb2wtY2VudGVyIGFuZCByZWJ1aWxkIGl0CiBw a2duYW1lPU5ldHdvcmtNYW5hZ2VyCiB2ZXJzaW9uPTEuMjIuMTAKIHJldmlzaW9uPTIKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaCBi L3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODMzZmVkMzk2OGUKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3BhdGNoZXMvbm0xMjIucGF0Y2gK QEAgLTAsMCArMSwzOCBAQAorRnJvbSA0MTU5Zjk4NGJkMzUxY2FmNmYwZTFhZGJkOTBmZWViODVh YjI1MmY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIyOjAyOjA0ICswMjAw CitTdWJqZWN0OiBbUEFUQ0hdIHJlc3RvcmUgY29tcGF0aWJpbGl0eSB3aXRoIG5ldHdvcmttYW5h Z2VyIDEuMjIKKworZHJvcCB0aGlzIHBhdGNoIGFuZCByZWJ1aWxkIGdub21lLWNvbnRyb2wtY2Vu dGVyIHdoZW4gdXBkYXRpbmcgbm0KKy0tLQorIHBhbmVscy9uZXR3b3JrL25ldC1kZXZpY2Utd2lm aS5jIHwgNyAtLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDcgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgcGFuZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMgcGFuZWxzL25ldHdvcmsvbmV0 LWRldmljZS13aWZpLmMKK2luZGV4IGNiODZlNWIuLmQ2M2M1N2MgMTAwNjQ0CistLS0gcGFuZWxz L25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMKKysrKyBwYW5lbHMvbmV0d29yay9uZXQtZGV2aWNl LXdpZmkuYworQEAgLTExODAsMTEgKzExODAsNiBAQCBubV9jbGllbnRfb25fcGVybWlzc2lvbl9j aGFuZ2UgKE5ldERldmljZVdpZmkgKnNlbGYpIHsKKyAgICAgICAgIE5NQ2xpZW50UGVybWlzc2lv blJlc3VsdCBwZXJtOworICAgICAgICAgTk1EZXZpY2VXaWZpQ2FwYWJpbGl0aWVzIGNhcHM7Cisg CistICAgICAgICBpZiAobm1fY2xpZW50X2dldF9wZXJtaXNzaW9uc19zdGF0ZSAoc2VsZi0+Y2xp ZW50KSAhPSBOTV9URVJOQVJZX1RSVUUpIHsKKy0gICAgICAgICAgICAgICAgLyogcGVybWlzc2lv bnMgYXJlbid0IHJlYWR5IHlldCAqLworLSAgICAgICAgICAgICAgICByZXR1cm47CistICAgICAg ICB9CistCisgICAgICAgICAvKiBvbmx5IGVuYWJsZSB0aGUgYnV0dG9uIGlmIHRoZSB1c2VyIGNh biBjcmVhdGUgYSBob3RzcG90ICovCisgICAgICAgICBwZXJtID0gbm1fY2xpZW50X2dldF9wZXJt aXNzaW9uX3Jlc3VsdCAoc2VsZi0+Y2xpZW50LCBOTV9DTElFTlRfUEVSTUlTU0lPTl9XSUZJX1NI QVJFX09QRU4pOworICAgICAgICAgY2FwcyA9IG5tX2RldmljZV93aWZpX2dldF9jYXBhYmlsaXRp ZXMgKE5NX0RFVklDRV9XSUZJIChzZWxmLT5kZXZpY2UpKTsKK0BAIC0xMjI3LDggKzEyMjIsNiBA QCBuZXRfZGV2aWNlX3dpZmlfbmV3IChDY1BhbmVsICpwYW5lbCwgTk1DbGllbnQgKmNsaWVudCwg Tk1EZXZpY2UgKmRldmljZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NB TExCQUNLIChhcF9hY3RpdmF0ZWQpLCBzZWxmLCBHX0NPTk5FQ1RfU1dBUFBFRCk7CisgICAgICAg ICBnX3NpZ25hbF9jb25uZWN0X29iamVjdCAobGlzdCwgImNvbmZpZ3VyZSIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoc2hvd19kZXRhaWxzX2Zvcl9yb3cp LCBzZWxmLCBHX0NPTk5FQ1RfU1dBUFBFRCk7CistICAgICAgICBnX3NpZ25hbF9jb25uZWN0X29i amVjdCAoY2xpZW50LCAibm90aWZ5IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHX0NBTExCQUNLKG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5nZSksIHNlbGYsIEdfQ09O TkVDVF9TV0FQUEVEKTsKKyAKKyAgICAgICAgIG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5n ZShzZWxmKTsKKyAKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29u dHJvbC1jZW50ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBs YXRlCmluZGV4IDlmZGI4NTNhZmJmLi4xOTExMDFhZmFhZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n bm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wt Y2VudGVyL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn bm9tZS1jb250cm9sLWNlbnRlcicKIHBrZ25hbWU9Z25vbWUtY29udHJvbC1jZW50ZXIKLXZlcnNp b249My4zNC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EY2hlZXNl PSQodm9wdF9pZiBjaGVlc2UgdHJ1ZSBmYWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2 ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnIHBv bGtpdAotIHB5dGhvbjMiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcy1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnCisgcG9sa2l0IHB5dGhvbjMi CiBtYWtlZGVwZW5kcz0iTW9kZW1NYW5hZ2VyLWRldmVsIGFjY291bnRzc2VydmljZS1kZXZlbCBh bHNhLXBsdWdpbnMKICBjb2xvcmQtZ3RrLWRldmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBnbm9t ZS1kZXNrdG9wLWRldmVsIGdub21lLW1lbnVzLWRldmVsCiAgZ25vbWUtb25saW5lLWFjY291bnRz LWRldmVsIGdub21lLXNldHRpbmdzLWRhZW1vbi1kZXZlbCBncmlsby1kZXZlbCBpYnVzLWRldmVs Ci0gbGliU00tZGV2ZWwgbGliWHhmODZtaXNjLWRldmVsIGxpYmdub21la2JkLWRldmVsIGxpYmd0 b3AtZGV2ZWwKKyBsaWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGliZ25vbWVrYmQtZGV2 ZWwgbGliZ3RvcC1kZXZlbCBsaWJoYW5keTEtZGV2ZWwKICBsaWJwd3F1YWxpdHktZGV2ZWwgbWl0 LWtyYjUtZGV2ZWwgbmV0d29yay1tYW5hZ2VyLWFwcGxldC1kZXZlbCBwb2xraXQtZGV2ZWwKICBw dWxzZWF1ZGlvLWRldmVsIHNhbWJhLWRldmVsIHR6ZGF0YSB1cG93ZXItZGV2ZWwgdmFsYS1kZXZl bCBjbHV0dGVyLWd0ay1kZXZlbAogIGxpYnhtbDItZGV2ZWwgbGliWDExLWRldmVsIGd0ayszLWRl dmVsIGN1cHMtZGV2ZWwgbGliZ3VkZXYtZGV2ZWwgbGlid2Fjb20tZGV2ZWwKICBjbHV0dGVyLWRl dmVsIGxpYnNlY3JldC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCB1ZGlza3MyLWRldmVsIGdzb3Vu ZC1kZXZlbAogICQodm9wdF9pZiBjaGVlc2UgY2hlZXNlLWRldmVsKSIKLWRlcGVuZHM9ImFsc2Et cGx1Z2lucy1wdWxzZWF1ZGlvIGRlc2t0b3AtZmlsZS11dGlscworZGVwZW5kcz0iYWxzYS1wbHVn aW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxlLXV0aWxzIHVwb3dlciBjb2xvcmQgY3Vwcy1way1o ZWxwZXIKICBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGhpY29sb3ItaWNvbi10aGVtZSBpc28t Y29kZXMgc291bmQtdGhlbWUtZnJlZWRlc2t0b3AKICBjcmFja2xpYiIKIHNob3J0X2Rlc2M9IkdO T01FIGNvbnRyb2wgY2VudGVyIgpAQCAtMjQsMTMgKzI0LDE3IEBAIG1haW50YWluZXI9IkVubm8g Qm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1jb250cm9s LWNlbnRlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTVmODJlY2Q1NTU0MTM2 YzQ2MjI0OGVjNTM2M2I4MmQ5NTM1OGIzOWRmZDY3ODcwMDZkODMwN2I0NTA0ZTUxNWUKK2NoZWNr c3VtPWY2YjZiNWI4ZWY5YzM4ZDg5NWJhNWFmODdmMzFhZGFlMDIxOTRhZDg2YzlhYTZjZmYyZDJi OTc1NWMyZGIxZGEKIAogYnVpbGRfb3B0aW9ucz0iY2hlZXNlIgorYnVpbGRfb3B0aW9uc19kZWZh dWx0PSJjaGVlc2UiCisKIGRlc2Nfb3B0aW9uX2NoZWVzZT0iQWRkIHN1cHBvcnQgZm9yIGFkZGlu ZyB1c2VyIGFjY291bnQgaW1hZ2VzIHdpdGggeW91ciB3ZWJjYW0iCi1pZiBbIC16ICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KLQlidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIgY2hlZXNlIgotZmkKKwor IyBuZWVkcyBYMTEgYW5kIHJlcXVpcmVzIGFsdGVyZWQgZmlsZXN5c3RlbQorZG9fY2hlY2soKSB7 CisJOgorfQogCiBDRkxBR1M9Ii1mY29tbW9uIgogCgpGcm9tIDcyZTBiZmE2NTNmNDBkMjkyNmRj NDgyNzA1NGQxMWE4NWZiNGI4NjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNy85OF0gZGNvbmYtZWRpdG9yOiB1cGRhdGUg dG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlIHwgNiArKystLS0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL2Rjb25mLWVkaXRv ci90ZW1wbGF0ZQppbmRleCBkZTI1MGJiYzhhOS4uMjMyNTJiOWY3NGUgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZGNvbmYtZWRpdG9yL3Rl bXBsYXRlCkBAIC0xLDEzICsxLDEzIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdkY29uZi1lZGl0 b3InCiBwa2duYW1lPWRjb25mLWVkaXRvcgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zOC4w CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotaG9zdG1ha2VkZXBlbmRzPSJkb2Nib29r LXhzbCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB2YWxhIgoraG9zdG1ha2VkZXBlbmRz PSJkb2Nib29rLXhzbCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB2YWxhIGdldHRleHQi CiBtYWtlZGVwZW5kcz0iZGNvbmYtZGV2ZWwgZ3RrKzMtZGV2ZWwiCiBzaG9ydF9kZXNjPSJMb3ct bGV2ZWwgY29uZmlndXJhdGlvbiBzeXN0ZW0gLSBHVEsrIGVkaXRvciIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvZGNvbmYiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03MmVlZDA1NjcwOTE3ZjhlNDMyMDBlNDBj Y2M2YmU2MDIxMWYwYTg3YjAxNzUzNGVhYzFmZDZjNzE3M2EwNjkzCitjaGVja3N1bT02ZDg5MjQ5 YTM3OTA4MmRlNmE4ZTk1YTJhMjAyZDBjYTVmZTFjOTc3NmJjMGQ1ZDNlZjA2NTU2N2Q4MTgzZWI0 CgpGcm9tIGUxMGE3NjY3MTEwNTdkMzNkMmIzNzg1MTQ3YjgzNDA0NWYzOTE4OWEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA2OjQyOjAyICswMjAwClN1YmplY3Q6IFtQQVRDSCAz OC85OF0gZ2pzOiB1cGRhdGUgdG8gMS42Ni4wCgotLS0KIHNyY3BrZ3MvZ2pzL3RlbXBsYXRlIHwg OCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dqcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2pzL3RlbXBs YXRlCmluZGV4IGVjNDhiYWRkZjExLi44YTEzM2RkODA0OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n anMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nanMvdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dqcycKIHBrZ25hbWU9Z2pzCi12ZXJzaW9uPTEuNjUuMgor dmVyc2lvbj0xLjY2LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1Ec2tpcF9kYnVzX3Rlc3RzPXRydWUgLURz a2lwX2d0a190ZXN0cz10cnVlCiAgLURwcm9maWxlcj1kaXNhYmxlZCAtRGluc3RhbGxlZF90ZXN0 cz1mYWxzZSIgIyBEaXNhYmxlIHRlc3RzIGJlY2F1c2UgdGhleSBuZWVkIGRidXMsIFggYW5kIEdU Sy4KIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9 ImRidXMtZ2xpYi1kZXZlbCBtb3pqczY4LWRldmVsIHJlYWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2 ZWwiCittYWtlZGVwZW5kcz0iZGJ1cy1nbGliLWRldmVsIG1vempzNzgtZGV2ZWwgcmVhZGxpbmUt ZGV2ZWwgc3lzcHJvZi1kZXZlbCIKIHNob3J0X2Rlc2M9Ik1vemlsbGEtYmFzZWQgamF2YXNjcmlw dCBiaW5kaW5ncyBmb3IgdGhlIEdOT01FIHBsYXRmb3JtIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCwgTEdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9hY3Rpb24vc2hvdy9Qcm9qZWN0 cy9HanMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nanMvYmxv Yi9nbm9tZS0zLTMwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNjZl ZGFkOGE1ZjEwMDI3ZjliMTgyZDg4YWY4NGI4MWYxM2U1YWQ1ODQwMzE5Y2ZhNzQ3ZDY2ZTc3ZTAy MTRmCitjaGVja3N1bT1mMzBjZjkwZTAxNmRiNmM4ZmRkMDA1OTc0OTU1OTYxMTc2MGYwNzIxZjM3 NWIyYjYxZTBiNzIzOWI0M2FiNWY4CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBDT1BZ SU5HCiB9CiAKIGdqcy1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdpcmVwb3NpdG9y eS1kZXZlbCBtb3pqczY4LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKKwlkZXBlbmRzPSJsaWJnaXJlcG9zaXRvcnktZGV2ZWwgbW96anM3OC1kZXZlbCAke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3Bt ZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSBj NzQyNDRiNTljYmYwMjVjNzk0YzczMjVlOWU1YjM5MzFiOGU5NmUwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzkvOThdIGdu b21lLXNoZWxsOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2hlbGwvdGVt cGxhdGUgfCAxMSArKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQppbmRleCA5NmM1YjgwYTE5NC4uZjI3Nzk1 NTcyZWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtc2hlbGwnCiBwa2duYW1lPWdub21lLXNoZWxsCi12ZXJzaW9uPTMuMzQu MQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9o ZWxwZXI9Z2lyCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWZhbHNlIgogaG9zdG1ha2VkZXBl bmRzPSJnb2JqZWN0LWludHJvc3BlY3Rpb24gZ3RrLWRvYyBsaWJ4c2x0IHBrZy1jb25maWcgcHl0 aG9uMyBzYXNzYwotIGFzY2lpZG9jIHBlcmwgZ2xpYi1kZXZlbCBtdXR0ZXItZGV2ZWwiCisgYXNj aWlkb2MgcGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCBnZXR0ZXh0IGdqcy1kZXZlbCIKIG1h a2VkZXBlbmRzPSJhdC1zcGkyLWF0ayBjYXJpYm91LWRldmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZl ci1kZXZlbCBmb2xrcy1kZXZlbAogIGdjci1kZXZlbCBnanMtZGV2ZWwgZ25vbWUtYmx1ZXRvb3Ro LWRldmVsIGdub21lLWNvbnRyb2wtY2VudGVyLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwKICBn bm9tZS1tZW51cy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGdzdHJlYW1l cjEtZGV2ZWwgZ3RrKzMtZGV2ZWwKQEAgLTIxLDQgKzIxLDkgQEAgbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21l U2hlbGwiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9N RS9nbm9tZS1zaGVsbC9nbm9tZS0zLTMwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT1jY2Q4NjU1OWI5Yzg5N2MyMTlkMmQyZWJmZGI4NDEzZWZhNGMxYmVlODQ2NDI3Yzc1 MGNiOGEzMDFiM2Y2ZDFlCitjaGVja3N1bT1jNjI2NDAzYmMwODc1ZWU2ZGE4YzdhNjJhYzBjZWUz MTJiYWRiNTIzYWYwNzNjYjE2NjEyNTAxNWE3NWEwYTk3CisKKyMgbmVlZHMgWAorZG9fY2hlY2so KSB7CisJOgorfQoKRnJvbSAxNjczNjI2MWZmYjM5MjM0MWZiMDNhZGMzOTdhZWY4MDk3MDgwMWMw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNDAvOThdIGdub21lLXNoZWxsLWV4dGVuc2lvbnM6IHVwZGF0ZSB0byAzLjM4LjAK Ci0tLQogc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlIHwgNiArKystLS0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlIGIvc3JjcGtncy9n bm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlCmluZGV4IDk3MTY4YjQwZjY2Li5lNDkzMDM4 NGZkNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZQpAQCAtMSwxNSAr MSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucycKIHBr Z25hbWU9Z25vbWUtc2hlbGwtZXh0ZW5zaW9ucwotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4z OC4wCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1 cmVfYXJncz0iLURleHRlbnNpb25fc2V0PWFsbCIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnZXR0ZXh0IgogZGVwZW5kcz0iZ25vbWUt c2hlbGw+PSR7dmVyc2lvbn0gbmF1dGlsdXMgdW56aXAiCiBzaG9ydF9kZXNjPSJFeHRlbnNpb25z IGZvciBHTk9NRSBzaGVsbCwgaW5jbHVkaW5nIGNsYXNzaWMgbW9kZSIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVTaGVs bC9FeHRlbnNpb25zIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjBhZDUxMTQz YjFiZjQwZGVmNGExMGY4ZmQwYWIwZmZiNDcyMTgzMDQ4MDA3OTRlNjJjYWRkMjlkMGFjYzc1Ygor Y2hlY2tzdW09ZjcyNmY4NWJiMzk4YjA4MmFkMDlhN2RlZDMwNmYyMmJkMjVkMjU4OThjN2YxOGJk Nzc1ZGY2NjQwMGQzOTE5ZgoKRnJvbSAyMWU2ZmQ2MzgzZDFkMzA1YjkwOTVkNDBiY2I5ZjA4ZjA1 YzBjMGQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNDEvOThdIGdkbTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dz L2dkbS9wYXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaCB8IDIzICsrKysrKysrKysrKysr KysrCiBzcmNwa2dzL2dkbS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8IDI2ICsr KysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDEy IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2RtL3BhdGNoZXMvdGFr ZS1vdXQtdGhlLXRyYXNoLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZG0vcGF0Y2hlcy90 YWtlLW91dC10aGUtdHJhc2gucGF0Y2ggYi9zcmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0LXRo ZS10cmFzaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjky N2M3Mjc3YjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0 LXRoZS10cmFzaC5wYXRjaApAQCAtMCwwICsxLDIzIEBACistLS0gbWVzb24uYnVpbGQKKysrKyBt ZXNvbi5idWlsZAorQEAgLTk0LDE5ICs5NCw4IEBAIGlmIHhkbWNwX2RlcC5mb3VuZCgpIGFuZCBn ZXRfb3B0aW9uKCd0Y3Atd3JhcHBlcnMnKQorICAgbGlid3JhcF9kZXAgPSBjYy5maW5kX2xpYnJh cnkoJ2xpYndyYXAnKQorIGVuZGlmCisgIyBzeXN0ZW1kCistc3lzdGVtZF9kZXAgPSBkZXBlbmRl bmN5KCdzeXN0ZW1kJykKKyBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnN5c3RlbWQn KQorLWlmIG1lc29uLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49IDAuNTMnKQorLSAgc3lz dGVtZF9tdWx0aXNlYXRfeCA9IGZpbmRfcHJvZ3JhbSgnc3lzdGVtZC1tdWx0aS1zZWF0LXgnLAor LSAgICByZXF1aXJlZDogZmFsc2UsCistICAgIGRpcnM6IFsKKy0gICAgICBzeXN0ZW1kX2RlcC5n ZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCdzeXN0ZW1kdXRpbGRpcicpLAorLSAgICAgICcvbGliL3N5 c3RlbWQnLAorLSAgICAgICcvdXNyL2xpYi9zeXN0ZW1kJywKKy0gICAgXSkKKy1lbHNlCistICBz eXN0ZW1kX211bHRpc2VhdF94ID0gZmluZF9wcm9ncmFtKCdzeXN0ZW1kLW11bHRpLXNlYXQteCcs IHJlcXVpcmVkOiBmYWxzZSkKKy1lbmRpZgorK3N5c3RlbWRfbXVsdGlzZWF0X3ggPSBmaW5kX3By b2dyYW0oJ3N5c3RlbWQtbXVsdGktc2VhdC14JywgcmVxdWlyZWQ6IGZhbHNlKQorIHN5c3RlbWRf eF9zZXJ2ZXIgPSBzeXN0ZW1kX211bHRpc2VhdF94LmZvdW5kKCk/IHN5c3RlbWRfbXVsdGlzZWF0 X3gucGF0aCgpIDogJy9saWIvc3lzdGVtZC9zeXN0ZW1kLW11bHRpLXNlYXQteCcKKyAjIFBseW1v dXRoCisgcGx5bW91dGhfZGVwID0gZGVwZW5kZW5jeSgncGx5LWJvb3QtY2xpZW50JywgcmVxdWly ZWQ6IGdldF9vcHRpb24oJ3BseW1vdXRoJykpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbS90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlCmluZGV4IGJiNWI0ODY5MmQ0Li4xMTg4ODFlNGM0 YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZG0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZG0vdGVt cGxhdGUKQEAgLTEsMjcgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dkbScKIHBrZ25h bWU9Z2RtCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxk X2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9 IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCi0gLS1kaXNhYmxlLXNjaGVtYXMtY29t cGlsZSAtLWRpc2FibGUtc3RhdGljIC0td2l0aC1kZWZhdWx0LXBhbS1jb25maWc9YXJjaAotIC0t d2l0aC1hdC1zcGktcmVnaXN0cnlkLWRpcmVjdG9yeT0vdXNyL2xpYmV4ZWMgLS13aXRob3V0LXRj cC13cmFwcGVycwotIC0td2l0aC1zY3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3JlZXRlciAt LXNiaW5kaXI9L3Vzci9iaW4gLS13aXRob3V0LXBseW1vdXRoCi0gLS13aXRoLXhhdXRoLWRpcj0v cnVuL2dkbSAtLXdpdGgtcGlkLWZpbGU9L3J1bi9nZG0vZ2RtLnBpZAotIC0tZGlzYWJsZS1zeXN0 ZW1kLWpvdXJuYWwgLS13aXRoLWluaXRpYWwtdnQ9NyAtLWVuYWJsZS13YXlsYW5kLXN1cHBvcnQi CitidWlsZF9zdHlsZT1tZXNvbgorY29uZmlndXJlX2FyZ3M9IgorIC1EZGVmYXVsdC1wYW0tY29u ZmlnPWFyY2ggLURhdC1zcGktcmVnaXN0cnlkLWRpcj0vdXNyL2xpYmV4ZWMKKyAtRHRjcC13cmFw cGVycz1mYWxzZSAtRHNjcmVlbnNob3QtZGlyPS92YXIvbGliL2dkbS9ncmVldGVyCisgLURwbHlt b3V0aD1kaXNhYmxlZCAtRHhhdXRoLWRpcj0vcnVuL2dkbSAtRHBpZC1maWxlPS9ydW4vZ2RtL2dk bS5waWQKKyAtRHN5c3RlbWQtam91cm5hbD1mYWxzZSAtRGluaXRpYWwtdnQ9NyAtRHdheWxhbmQt c3VwcG9ydD10cnVlCisgLURzZWxpbnV4PWRpc2FibGVkIC1EbGliYXVkaXQ9ZGlzYWJsZWQKKyAt RHN5c3RlbWRzeXN0ZW11bml0ZGlyPS90bXAgLURzeXN0ZW1kdXNlcnVuaXRkaXI9L3RtcCIKIGhv c3RtYWtlZGVwZW5kcz0iZGNvbmYgZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVw ZW5kcz0iYWNjb3VudHNzZXJ2aWNlLWRldmVsIGVsb2dpbmQtZGV2ZWwgZ2V0dGV4dC1kZXZlbCBn bGliLWRldmVsCiAgaXNvLWNvZGVzIGxpYlNNLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIG5zcy1k ZXZlbCBwYW0tZGV2ZWwgdXBvd2VyLWRldmVsIgotZGVwZW5kcz0iZ25vbWUtc2V0dGluZ3MtZGFl bW9uIGdub21lLXNoZWxsIHhvcmctc2VydmVyIHhvcmctc2VydmVyLXh3YXlsYW5kCi0geHJkYiIK K2RlcGVuZHM9Imdub21lLXNldHRpbmdzLWRhZW1vbiBnbm9tZS1zaGVsbCBnbm9tZS1zZXNzaW9u IGdub21lLXRoZW1lcy1leHRyYQorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgeG9yZy1zZXJ2 ZXIgeG9yZy1zZXJ2ZXIteHdheWxhbmQgeHJkYiIKIGNoZWNrZGVwZW5kcz0iY2hlY2stZGV2ZWwi CiBzaG9ydF9kZXNjPSJHTk9NRSBEaXNwbGF5IE1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dETSIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU4NWRmNjU3YWE4ZDkzNjFhZjRmYjEyMjAxNGQ4ZjEy M2E5M2JmZTQ1YTc2NjJmYmEyYjM3M2Q4MzlkYmQ4ZDMKK2NoZWNrc3VtPTQ2ZDQ0MTVjMzljOTRj Y2VlODFmYmFjMjExMDJlMmViY2QyODRkMzk4NThjODkzZTc1OTkwMGIxZTg4NDM1YmEKIAogY29u Zl9maWxlcz0iCiAJL2V0Yy9nZG0vY3VzdG9tLmNvbmYKQEAgLTQ3LDYgKzQ4LDcgQEAgcG9zdF9p bnN0YWxsKCkgewogCXZpbnN0YWxsICRGSUxFU0RJUi9Yc2Vzc2lvbiA3NTUgZXRjL2dkbQogCiAJ dnNlZCAtaSAicy9wYW1fc3lzdGVtZFwuc28vcGFtX2Vsb2dpbmQuc28vIiAkREVTVERJUi9ldGMv cGFtLmQvKgorCXJtIC1yZiAke0RFU1RESVJ9L3RtcAogCiAJIyBydW5pdCBzZXJ2aWNlCiAJdnN2 IGdkbQpAQCAtNjAsNyArNjIsNyBAQCBsaWJnZG1fcGFja2FnZSgpIHsKIH0KIAogZ2RtLWRldmVs X3BhY2thZ2UoKSB7Ci0JZGVwZW5kcz0ibGliZ2RtPj0ke3ZlcnNpb259XyR7cmV2aXNpb259Igor CWRlcGVuZHM9ImxpYmdkbT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBlbG9naW5kLWRldmVsIgog CXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJ dm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gZGFkZWUzNWFjODVhZDI0OGFkMjUzOTE2NzczYmYzNmI1 ZjFhZGQzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAK U3ViamVjdDogW1BBVENIIDQyLzk4XSBnbm9tZS1zZXNzaW9uOiB1cGRhdGUgdG8gMy4zOC4wCgot LS0KIC4uLi1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFibGVzLWZyby5wYXRjaCB8IDY3ICsr KysrKysrKysrKysrKysrKysKIC4uLi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoICAgICAg ICAgICAgICB8IDE0ICsrKysKIHNyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0ZSAgICAgICAg ICAgICAgICB8IDEwICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRj aGVzLzAwMDEtcmV2ZXJ0LWF1dG9zdGFydC1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFibGVz LWZyby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRj aGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXNz aW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12 YXJpYWJsZXMtZnJvLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAwMS1y ZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZmQ5ZjRiYTZjZgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzLzAwMDEtcmV2ZXJ0 LWF1dG9zdGFydC1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFibGVzLWZyby5wYXRjaApAQCAt MCwwICsxLDY3IEBACitGcm9tIDFkZTM1NzVhMWVhOWNkYjM1NzlhZDUzODEwOGM1MTgxODg0Nzc5 N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSYXNtdXMgVGhvbXNlbiA8b3NzQGNv Z2l0cmkuZGV2PgorRGF0ZTogRnJpLCA2IERlYyAyMDE5IDExOjQ4OjAyICswMTAwCitTdWJqZWN0 OiBbUEFUQ0hdIHJldmVydDogYXV0b3N0YXJ0LWFwcDogU3RyaXAgYmxhY2tsaXN0ZWQgdmFyaWFi bGVzIGZyb20KKyBhdXRvc3RhcnQgZW52aXJvbm1lbnQKKworVGhpcyBicmVha3MgZ25vbWUtc2Vz c2lvbiBvbiBub24tc3lzdGVtZCBzeXN0ZW1zLgorCitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcv R05PTUUvZ25vbWUtc2Vzc2lvbi9pc3N1ZXMvNDQKKy0tLQorIGdub21lLXNlc3Npb24vZ3NtLWF1 dG9zdGFydC1hcHAuYyB8IDUgLS0tLS0KKyBnbm9tZS1zZXNzaW9uL2dzbS11dGlsLmMgICAgICAg ICAgfCA2IC0tLS0tLQorIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuaCAgICAgICAgICB8IDEgLQor IDMgZmlsZXMgY2hhbmdlZCwgMTIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nbm9tZS1z ZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMgYi9nbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3RhcnQt YXBwLmMKK2luZGV4IDZmZDU5MTUuLjAxYmE1ZjkgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lvbi9n c20tYXV0b3N0YXJ0LWFwcC5jCisrKysgZ25vbWUtc2Vzc2lvbi9nc20tYXV0b3N0YXJ0LWFwcC5j CitAQCAtOTk3LDcgKzk5Nyw2IEBAIGF1dG9zdGFydF9hcHBfc3RhcnRfc3Bhd24gKEdzbUF1dG9z dGFydEFwcCAqYXBwLAorICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICBzdWNjZXNzOworICAgICAg ICAgR0Vycm9yICAgICAgICAgICpsb2NhbF9lcnJvcjsKKyAgICAgICAgIGNvbnN0IGNoYXIgICAg ICAqc3RhcnR1cF9pZDsKKy0gICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqdmFyaWFibGVfYmxh Y2tsaXN0OworICAgICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICpjaGlsZF9lbnZpcm9ubWVudDsK KyAgICAgICAgIGludCBpOworICAgICAgICAgR0FwcExhdW5jaENvbnRleHQgKmN0eDsKK0BAIC0x MDE0LDEwICsxMDEzLDYgQEAgYXV0b3N0YXJ0X2FwcF9zdGFydF9zcGF3biAoR3NtQXV0b3N0YXJ0 QXBwICphcHAsCisgICAgICAgICBsb2NhbF9lcnJvciA9IE5VTEw7CisgICAgICAgICBjdHggPSBn X2FwcF9sYXVuY2hfY29udGV4dF9uZXcgKCk7CisgCistICAgICAgICB2YXJpYWJsZV9ibGFja2xp c3QgPSBnc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0ICgpOworLSAgICAgICAgZm9yIChp ID0gMDsgdmFyaWFibGVfYmxhY2tsaXN0W2ldICE9IE5VTEw7IGkrKykKKy0gICAgICAgICAgICAg ICAgZ19hcHBfbGF1bmNoX2NvbnRleHRfdW5zZXRlbnYgKGN0eCwgdmFyaWFibGVfYmxhY2tsaXN0 W2ldKTsKKy0KKyAgICAgICAgIGNoaWxkX2Vudmlyb25tZW50ID0gZ3NtX3V0aWxfbGlzdGVudiAo KTsKKyAgICAgICAgIGZvciAoaSA9IDA7IGNoaWxkX2Vudmlyb25tZW50W2ldICE9IE5VTEw7IGkr KykgeworICAgICAgICAgICAgICAgICBjaGFyICoqZW52aXJvbm1lbnRfdHVwbGU7CitkaWZmIC0t Z2l0IGEvZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jIGIvZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5j CitpbmRleCAwMmJjNGE1Li5hZGExMjI1IDEwMDY0NAorLS0tIGdub21lLXNlc3Npb24vZ3NtLXV0 aWwuYworKysrIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuYworQEAgLTgwOCw5ICs4MDgsMyBAQCBn c21fdXRpbF9saXN0ZW52ICh2b2lkKQorICAgICAgICAgcmV0dXJuIChjb25zdCBjaGFyICogY29u c3QgKikgY2hpbGRfZW52aXJvbm1lbnQ7CisgCisgfQorLQorLWNvbnN0IGNoYXIgKiBjb25zdCAq CistZ3NtX3V0aWxfZ2V0X3ZhcmlhYmxlX2JsYWNrbGlzdCAodm9pZCkKKy17CistICAgICAgICBy ZXR1cm4gdmFyaWFibGVfYmxhY2tsaXN0OworLX0KK2RpZmYgLS1naXQgYS9nbm9tZS1zZXNzaW9u L2dzbS11dGlsLmggYi9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKK2luZGV4IGJkN2I2OTguLjhi Y2E1ZjQgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5oCisrKysgZ25vbWUtc2Vz c2lvbi9nc20tdXRpbC5oCitAQCAtNTAsNyArNTAsNiBAQCBjaGFyICogICAgICBnc21fdXRpbF9n ZW5lcmF0ZV9zdGFydHVwX2lkICAgICAgICAgICAgKHZvaWQpOworIHZvaWQgICAgICAgIGdzbV91 dGlsX3NldGVudiAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqdmFyaWFibGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICp2YWx1ZSk7CisgY29uc3QgY2hhciAqIGNvbnN0ICogZ3NtX3V0aWxfbGlzdGVu diAgICAgICAgICAgICAgICh2b2lkKTsKKy1jb25zdCBjaGFyICogY29uc3QgKiBnc21fdXRpbF9n ZXRfdmFyaWFibGVfYmxhY2tsaXN0KHZvaWQpOworIAorIGdib29sZWFuICAgIGdzbV91dGlsX2V4 cG9ydF9hY3RpdmF0aW9uX2Vudmlyb25tZW50ICAoR0Vycm9yICAgICAqKmVycm9yKTsKKyAjaWZk ZWYgSEFWRV9TWVNURU1ECistLSAKKzIuMjQuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2Vz c2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi44ZTU1YTBmNzk4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv Z25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCkBAIC0wLDAgKzEsMTQg QEAKKy0tLSBtZXNvbi5idWlsZAorKysrIG1lc29uLmJ1aWxkCitAQCAtMTMwLDEwICsxMzAsNyBA QCBpZiBlbmFibGVfc3lzdGVtZCBvciBlbmFibGVfY29uc29sZWtpdAorIAorICAgIyBDaGVjayBm b3Igc3lzdGVtZAorICAgaWYgZW5hYmxlX3N5c3RlbWQKKy0gICAgc3lzdGVtZF9kZXAgPSBkZXBl bmRlbmN5KCdzeXN0ZW1kJywgdmVyc2lvbjogJz49IDI0MicsIHJlcXVpcmVkOiB0cnVlKQorLSAg ICBzeXN0ZW1kX3VzZXJ1bml0ZGlyID0gc3lzdGVtZF9kZXAuZ2V0X3BrZ2NvbmZpZ192YXJpYWJs ZSgnc3lzdGVtZHVzZXJ1bml0ZGlyJywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lX3ZhcmlhYmxlOiBbJ3ByZWZpeCcs IHByZWZpeF0pCistCisrICAgIHN5c3RlbWRfdXNlcnVuaXRkaXIgPSAnL3RtcCcKKyAgICAgbGli c3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJzeXN0ZW1kJywgdmVyc2lvbjogJz49IDIwOScs IHJlcXVpcmVkOiBmYWxzZSkKKyAgICAgc2Vzc2lvbl9iaW5fZGVwcyArPSBsaWJzeXN0ZW1kX2Rl cAorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCmluZGV4IDQ0NDRmMTYyYmYxLi5jOWJjNDkzMGMzOSAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtc2Vzc2lvbi90ZW1wbGF0ZQpAQCAtMSw5ICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLXNlc3Npb24nCiBwa2duYW1lPWdub21lLXNlc3Npb24KLXZlcnNpb249My4zNC4x Cit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWNvbmZpZ3Vy ZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSIKK2NvbmZpZ3VyZV9hcmdzPSItRHN5c3Rl bWRfam91cm5hbD1mYWxzZSAtRHN5c3RlbWRfc2Vzc2lvbj1kaXNhYmxlIgogaG9zdG1ha2VkZXBl bmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgeG1sdG8iCiBtYWtlZGVwZW5kcz0i ZWxvZ2luZC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0ayszLWRldmVsIGpzb24tZ2xpYi1k ZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliSUNFLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2 ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKQEAgLTE1LDQgKzE1LDggQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09ZDc4MDFmZTJkNWE3NTFiMTljYjU4MDgxNzcxMzE2YTc2YWFiZDVjNTUwY2Q1OGQ0ZTRj NmE1YTRlZDM1NjY2MAorY2hlY2tzdW09N2JjYzBlYjJjZGJhNGIzZjZkMWI0NTliM2EzMDg3M2I3 YmI2NWIzODNjMWY2YTVmNjNjM2UzYjVjNzk0M2Q2NworCitwb3N0X2luc3RhbGwoKSB7CisJcm0g LXJmICR7REVTVERJUn0vdG1wCit9CgpGcm9tIDA5YjU0NDUyOTg2YzYxNDc0Mzg1Y2E1YTZmZDll OTgyMTIxMTM4YmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA0My85OF0gZ25vbWUtaW5pdGlhbC1zZXR1cDogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUgfCAxMSAr KysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUgYi9z cmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUKaW5kZXggNTVkZjJmNTNjMWQuLjYz YWJkM2M1YzgzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlCkBAIC0xLDEwICsx LDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1pbml0aWFsLXNldHVwJwogcGtnbmFt ZT1nbm9tZS1pbml0aWFsLXNldHVwCi12ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249MwordmVyc2lv bj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1jb25maWd1cmVfYXJncz0i LURzb2Z0d2FyZS1zb3VyY2VzPWRpc2FibGVkIC1Ec3lzdGVtZD1mYWxzZSIKLWhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIgorY29uZmlndXJlX2FyZ3M9Ii1Ec29mdHdhcmUt c291cmNlcz1kaXNhYmxlZCAtRHBhcmVudGFsX2NvbnRyb2xzPWRpc2FibGVkCisgLURzeXN0ZW1k PWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwgZ2V0dGV4dCIK IG1ha2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBhY2NvdW50c3NlcnZpY2UtZGV2ZWwg bGliZ2xpYi1kZXZlbAogIGdub21lLWRlc2t0b3AtZGV2ZWwgY2hlZXNlLWRldmVsIGxpYmd3ZWF0 aGVyLWRldmVsIHdlYmtpdDJndGstZGV2ZWwKICBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWwg Z2RtLWRldmVsIGxpYnB3cXVhbGl0eS1kZXZlbApAQCAtMTcsNCArMTgsNCBAQCBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Rlc2lnbi9PUy9Jbml0 aWFsU2V0dXAiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNzFmMTBlZjZiNjMx Y2Q5MmZmZGU3NzRlNDEzMGIzMmIyNDk0YjRkZjVlZjI4ODM3NWQ4YjE5NTdlZWFiZmExCitjaGVj a3N1bT0zYTg1N2FlZjVlZmI2ODlmNDA4NjMyZGI4NDY5YWQyNzYyMGY3NjJkOTc3MDcwYTM2MDM1 YzUyMmM2ZjgyNzU5CgpGcm9tIGY5MWE5YzBkNWE0ZDE1MmNlYmI2MjMwMjk0MzZhMjRkNWY0ZmUx ZmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA0NC85OF0geGRnLWRlc2t0b3AtcG9ydGFsLWd0azogdXBkYXRlIHRvIDEuOC4w CgotLS0KIHNyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZSB8IDQgKystLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUgYi9zcmNwa2dzL3hk Zy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUKaW5kZXggZGVlMGU0NjMzODYuLjc1MTdkMWIz MmQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUK KysrIGIvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlCkBAIC0xLDYgKzEs NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneGRnLWRlc2t0b3AtcG9ydGFsLWd0aycKIHBrZ25h bWU9eGRnLWRlc2t0b3AtcG9ydGFsLWd0awotdmVyc2lvbj0xLjYuMAordmVyc2lvbj0xLjguMAog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIGxpYnhzbHQgZ2xpYi1kZXZlbCB4ZGctZGVza3RvcC1wb3J0YWwgZ2V0dGV4dCIK QEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRHVuY2FlbiA8ZHVuY2FlbkB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0 aHViLmNvbS9mbGF0cGFrL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsiCiBkaXN0ZmlsZXM9Imh0dHBz Oi8vZ2l0aHViLmNvbS9mbGF0cGFrLyR7cGtnbmFtZX0vcmVsZWFzZXMvZG93bmxvYWQvJHt2ZXJz aW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09OTU2ZmQxNjYwODI0 N2U3MTE5ZDRjNmQ5NWE2ZGM2NTc4ZGNlMjU3ZDJmMjcyZDAzYjM0OTg1NzIyNTdlMmY3NgorY2hl Y2tzdW09YTUyNTI5ZWQzMjFlMDQ0Y2E5YWRjYTVlOTcxOGQ5YmE1N2M0MTRhMjYzNGRkNDEwOWRm MzQ0YzViOWVlZDc3ZgogCiBwb3N0X2luc3RhbGwoKSB7CiAJcm0gLXJmICIke0RFU1RESVJ9L3Vz ci9saWIvc3lzdGVtZCIKCkZyb20gOTk1OTk3ZTRlMGVmNDFiNzlhNTY0ZGIzMWNhNmMxMDcwYTUz YWMxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDQ1Lzk4XSBuYXV0aWx1czogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNw a2dzL25hdXRpbHVzL3RlbXBsYXRlIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL25hdXRp bHVzL3RlbXBsYXRlIGIvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZQppbmRleCA1MzdhODUxOTcz Zi4uZGU5NjhmMDFkN2MgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ25hdXRpbHVzJwogcGtnbmFtZT1uYXV0aWx1cwotdmVyc2lvbj0zLjM2LjEuMQor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9ImdpciIKQEAgLTgsMTYgKzgsMTYgQEAgY29uZmlndXJlX2FyZ3M9Ii1EdGVzdHM9aGVhZGxl c3MgLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRl cGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWciCiBtYWtlZGVwZW5k cz0iZXhlbXBpLWRldmVsIGdub21lLWF1dG9hci1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0 ayszLWRldmVsCiAgbGliZXhpZi1kZXZlbCBsaWJnZXhpdjItZGV2ZWwgbGliZ2xpYi1kZXZlbCBs aWJub3RpZnktZGV2ZWwgbGlic2VjY29tcC1kZXZlbAotIGxpYlgxMS1kZXZlbCBsaWJ4bWwyLWRl dmVsIHRyYWNrZXItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwiCisgbGliWDExLWRldmVs IGxpYnhtbDItZGV2ZWwgdHJhY2tlcjMtZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwiCiBk ZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBoaWNv bG9yLWljb24tdGhlbWUKLSB0cmFja2VyLW1pbmVycyB0cmFja2VyIgotY2hlY2tkZXBlbmRzPSJ0 cmFja2VyIgorIHRyYWNrZXIzLW1pbmVycyB0cmFja2VyMyIKK2NoZWNrZGVwZW5kcz0idHJhY2tl cjMgdHJhY2tlcjMtbWluZXJzIHB5dGhvbjMtZ29iamVjdCBkYnVzIgogc2hvcnRfZGVzYz0iR05P TUUgZmlsZSBtYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvTmF1dGlsdXMiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb246OjR9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT1mOTI1MmY1MDgyMTFkOWYzNjhhNDlkYjY5Nzg5MGY4OTVkMDgw ZjA5NTkwYWVjYWYzMzgwM2E1MTlkZWY3YmRlCitjaGVja3N1bT1jNmYzMzBmOWYzZjdkYmYzNWFm YjZlYzIwOTRiNzQ2ZWU3NWQ1ZTkyOGM4ZjY3ODBkYWIyNjY3MjA4NmNjYWMwCiAKIGJ1aWxkX29w dGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBjODgzNzFhYjNh MzljYjM0YmEwYzRkMWJiNDIwZTc1YmNkOTUxMWZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDYvOThdIGdub21lLW1hcHM6 IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZSB8IDEw ICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlIGIvc3JjcGtncy9n bm9tZS1tYXBzL3RlbXBsYXRlCmluZGV4IDAzMDBiZTYwNTk5Li4yNjIwZDI2ZWYzNSAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbWFw cy90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt bWFwcycKIHBrZ25hbWU9Z25vbWUtbWFwcwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45 MQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1k ZXZlbCBnb2JqZWN0LWludHJvc3BlY3Rpb24gaW50bHRvb2wgcGtnLWNvbmZpZyBBcHBTdHJlYW0i CitidWlsZF9oZWxwZXI9ImdpciIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9v bCBwa2ctY29uZmlnIEFwcFN0cmVhbSIKIG1ha2VkZXBlbmRzPSJmb2xrcy1kZXZlbCBnZW9jbHVl Mi1kZXZlbCBnZW9jb2RlLWdsaWItZGV2ZWwgZ2pzLWRldmVsCi0gZ25vbWUtZGVza3RvcC1kZXZl bCBsaWJjaGFtcGxhaW4tZGV2ZWwgcmVzdC1kZXZlbCIKKyBnbm9tZS1kZXNrdG9wLWRldmVsIGxp YmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVsIGxpYmhhbmR5MS1kZXZlbCIKIGRlcGVuZHM9Imdl b2NsdWUyIGdmYmdyYXBoIGdqcyIKIHNob3J0X2Rlc2M9IkdOT01FIG1hcHMgYXBwbGljYXRpb24i CiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Fw cHMvTWFwcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTFhMzJlZmQ5NmFkODk4 Zjc3YTYzNmQyZDA0NjNkNzU3MDA5YjRiODEyMjU5Yzg5ZmZkY2I5MWQ2YWZjMDUyZjkKLW5vY3Jv c3M9ImV2b2x1dGlvbi1kYXRhc2VydmVyIGNyb3NzIGdpciBkb2Vzbid0IHdvcmsiCitjaGVja3N1 bT03NGI3ODI1ZDA2ZTY5NGEzZWMwZjNhMWZhYWE0NTkyZTZmN2FjNWE1YjE0NWQ4MzU1NzQ4NDJj ZDZiYjMwMzRiCgpGcm9tIDk2MTYwZGE5MDgzNDQ5MDhiY2RkM2QyNDZjNGViZGEzODQzZDMzMWYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCA0Ny85OF0gZXZvbHV0aW9uOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiAuLi4vZXZv bHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UgfCA0NSAtLS0tLS0tLS0tLS0t LS0tLS0tCiBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaCAgICAgICAgfCAg NSAtLS0KIHNyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDMz ICsrKy0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNzcgZGVs ZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlz YWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZXZvbHV0 aW9uL2ZpbGVzL2ljb252LWRldGVjdC5oCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24v ZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSBiL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVz L2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDhiZTU1YjQyMDcwLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9k aXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAot IyBUaGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBieSBDTWFrZSBiZWNhdXNlIGl0IGRldGVjdGVkIFRS WV9SVU4oKSBjb21tYW5kcwotIyBpbiBjcm9zc2NvbXBpbGluZyBtb2RlLiBJdCB3aWxsIGJlIG92 ZXJ3cml0dGVuIGJ5IHRoZSBuZXh0IENNYWtlIHJ1bi4KLSMgQ29weSBpdCB0byBhIHNhZmUgbG9j YXRpb24sIHNldCB0aGUgdmFyaWFibGVzIHRvIGFwcHJvcHJpYXRlIHZhbHVlcwotIyBhbmQgdXNl IGl0IHRoZW4gdG8gcHJlc2V0IHRoZSBDTWFrZSBjYWNoZSAodXNpbmcgLUMpLgotCi0KLSMgX2Nv cnJlY3RfaWNvbnZfRVhJVENPREUKLSMgICAgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGV4ZWN1dGFi bGUgd291bGQgaGF2ZSBiZWVuIGFibGUgdG8gcnVuIG9uIGl0cwotIyAgICB0YXJnZXQgcGxhdGZv cm0uIElmIHNvLCBzZXQgX2NvcnJlY3RfaWNvbnZfRVhJVENPREUgdG8KLSMgICAgdGhlIGV4aXQg Y29kZSAoaW4gbWFueSBjYXNlcyAwIGZvciBzdWNjZXNzKSwgb3RoZXJ3aXNlIGVudGVyICJGQUlM RURfVE9fUlVOIi4KLSMgVGhlIF9jb3JyZWN0X2ljb252X0NPTVBJTEVEIHZhcmlhYmxlIGhvbGRz IHRoZSBidWlsZCByZXN1bHQgZm9yIHRoaXMgVFJZX1JVTigpLgotIyAKLSMgU291cmNlIGZpbGUg ICA6IC9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmls ZXMvQ01ha2VUbXAvc3JjLmMKLSMgRXhlY3V0YWJsZSAgICA6IC9idWlsZGRpci9ldm9sdXRpb24t ZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmlsZXMvY21UQ18zMTVlZS1fY29ycmVjdF9p Y29udl9FWElUQ09ERQotIyBSdW4gYXJndW1lbnRzIDogCi0jICAgIENhbGxlZCBmcm9tOiBbMl0J L3Vzci9zaGFyZS9jbWFrZS0zLjkvTW9kdWxlcy9DaGVja0NTb3VyY2VSdW5zLmNtYWtlCi0jICAg ICAgICAgICAgICAgICBbMV0JL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAv Q01ha2VMaXN0cy50eHQKLQotc2V0KCBfY29ycmVjdF9pY29udl9FWElUQ09ERSAKLSAgICAgMAot ICAgICBDQUNIRSBJTlRFUk5BTCAiUmVzdWx0IGZyb20gVFJZX1JVTiIgRk9SQ0UpCi1zZXQoX2Nv cnJlY3RfaWNvbnZfRVhJVENPREVfX1RSWVJVTl9PVVRQVVQKLSAgICAgMAotICAgICBDQUNIRSBJ TlRFUk5BTCAiUmVzdWx0IGZyb20gVFJZX1JVTiIgRk9SQ0UpCi0KLQotIyBIQVZFX0xLU1RSRlRJ TUVfRVhJVENPREUKLSMgICAgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGV4ZWN1dGFibGUgd291bGQg aGF2ZSBiZWVuIGFibGUgdG8gcnVuIG9uIGl0cwotIyAgICB0YXJnZXQgcGxhdGZvcm0uIElmIHNv LCBzZXQgSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFIHRvCi0jICAgIHRoZSBleGl0IGNvZGUgKGlu IG1hbnkgY2FzZXMgMCBmb3Igc3VjY2VzcyksIG90aGVyd2lzZSBlbnRlciAiRkFJTEVEX1RPX1JV TiIuCi0jIFRoZSBIQVZFX0xLU1RSRlRJTUVfQ09NUElMRUQgdmFyaWFibGUgaG9sZHMgdGhlIGJ1 aWxkIHJlc3VsdCBmb3IgdGhpcyBUUllfUlVOKCkuCi0jIAotIyBTb3VyY2UgZmlsZSAgIDogL2J1 aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9DTWFr ZVRtcC9zcmMuYwotIyBFeGVjdXRhYmxlICAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNl cnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9jbVRDX2QyODk3LUhBVkVfTEtTVFJGVElNRV9F WElUQ09ERQotIyBSdW4gYXJndW1lbnRzIDogCi0jICAgIENhbGxlZCBmcm9tOiBbMl0JL3Vzci9z aGFyZS9jbWFrZS0zLjkvTW9kdWxlcy9DaGVja0NTb3VyY2VSdW5zLmNtYWtlCi0jICAgICAgICAg ICAgICAgICBbMV0JL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvQ01ha2VM aXN0cy50eHQKLQotc2V0KCBIQVZFX0xLU1RSRlRJTUVfRVhJVENPREUgCi0gICAgIDAKLSAgICAg Q0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotc2V0KCBIQVZFX0xL U1RSRlRJTUVfRVhJVENPREVfX1RSWVJVTl9PVVRQVVQKLSAgICAgMAotICAgICBDQUNIRSBJTlRF Uk5BTCAiUmVzdWx0IGZyb20gVFJZX1JVTiIgRk9SQ0UpCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVjdC5oIGIvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMv aWNvbnYtZGV0ZWN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2ZjQ3NmQ1YmM5 Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3Qu aAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotLyogVGhpcyBpcyBhbiBhdXRvLWdlbmVy YXRlZCBoZWFkZXIsIERPIE5PVCBFRElUISAqLwotCi0jZGVmaW5lIElDT05WX0lTT19EX0ZPUk1B VCAiaXNvLSVkLSVkIgotI2RlZmluZSBJQ09OVl9JU09fU19GT1JNQVQgImlzby0lZC0lcyIKLSNk ZWZpbmUgSUNPTlZfMTA2NDYgImlzby0xMDY0NiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0 aW9uL3RlbXBsYXRlIGIvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUKaW5kZXggNTYwZWQ5M2Rh MDIuLmNjNzM1NTk5NDNiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZXZvbHV0aW9uJwogcGtnbmFtZT1ldm9sdXRpb24KLXZlcnNpb249My4z Ni4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCitidWls ZF9oZWxwZXI9ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxFX0FVVE9BUj1PRkYg LURFTkFCTEVfTElCQ1JZUFRVST1PRkYgLURFTkFCTEVfR1RLU1BFTEw9T0ZGCi0gLURFTkFCTEVf VEVYVF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZGCi0gLURFTkFCTEVfV0VB VEhFUj0kKHZvcHRfaWYgZ2lyIE9OIE9GRikiCisgLURFTkFCTEVfVEVYVF9ISUdITElHSFQ9T0ZG IC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZGIC1ERU5BQkxFX1dFQVRIRVI9T04iCiBob3N0bWFrZWRl cGVuZHM9Imdub21lLWRvYy11dGlscyBnb2JqZWN0LWludHJvc3BlY3Rpb24gaW50bHRvb2wgaXRz dG9vbAotIHBrZy1jb25maWciCisgcGtnLWNvbmZpZyBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9 Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGVuY2hhbnQyLWRldmVsCiAg ZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIGdzcGVsbC1kZXZlbCBndGtodG1sLWRldmVsIGxp YmNhbmJlcnJhLWRldmVsCi0gJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhlci1kZXZlbCkgbGlibm90 aWZ5LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgeXRuZWYtZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZl bCBsaWJub3RpZnktZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB5dG5lZi1kZXZlbAogIGdub21lLWRl c2t0b3AtZGV2ZWwiCiBkZXBlbmRzPSJnbm9tZS1rZXlyaW5nIgogc2hvcnRfZGVzYz0iSW50ZWdy YXRlZCBtYWlsLCBhZGRyZXNzYm9vayBhbmQgY2FsZW5kYXJpbmcgZm9yIEdOT01FIgpAQCAtMTks MzYgKzE5LDE1IEBAIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTMuMC1vci1sYXRl ciwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Fw cHMvRXZvbHV0aW9uIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5j b20vR05PTUUvZXZvbHV0aW9uL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTg3M2FjZjFkYmVjMzhlNjdlMTY5MDY0NjQ1YWMzYTliOWE5NDRiZDJiNjMz MTYxZGY2ZTVmMDU3MDBlMzZjYjgKK2NoZWNrc3VtPTBhMzVhNjYxNGExMzBhNTE3NjgxMTQwZDM3 OGIxNWM2MjkwMGI4NGExOGMzOWRiZjI2ZDlmOTZmNDI4YmQ0ZWIKIHNobGliX3Byb3ZpZGVzPSJs aWJldm9sdXRpb24tY2FsZW5kYXIuc28gbGliZXZvbHV0aW9uLXV0aWwuc28gbGliZW1haWwtZW5n aW5lLnNvCiAgbGliZXZvbHV0aW9uLW1haWwuc28gbGliZXZvbHV0aW9uLXNoZWxsLnNvIgogCiBi dWlsZF9vcHRpb25zPSJnaXIiCiBpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlidWls ZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKLWVsc2UKLQlob3N0bWFrZWRlcGVuZHMrPSIgZ2xpYi1k ZXZlbCIKIGZpCiAKLSMgY21ha2UgcGVyZm9tcm1zIDIgY2hlY2tzIHVzaW5nIGJpbmFyeSBydW50 aW1lLCBhYm91dCBpY29udiBhbmQgc2ZydGltZS4KLSMgbXVzbCAoMS4xLjE2KSBkb2VzIG5vdCBz dXBwb3J0ICJJU08tMjAyMi1KUCIgZW5jb2RpbmcgKHNlZSBpdHMgcm9hZG1hcCksCi0jIGFsdGhv dWdoIGV2b2x1dGlvbi1kYXRhLXNlcnZlciBpcyBmaW5lIHdpdGggbXVzbC4KLSMgSWYgY3Jvc3Ni dWlsZCwgY21ha2UgbGV0IGRpc2FibGluZyBydW50aW1lIGNoZWNrcyB2aWEgc3BlY2lmaWMgZGly ZWN0aXZlcy4KLSMgdGVzdCBpY29udi1kZXRlY3QuYyBhbHNvIGdlbmVyYXRlcyBpY29udi1kZXRl Y3QuaCB0aGF0IGlzIHJlcXVpcmVkIGZvciBidWlsZC4KLSMgU28gY29tcGxldGx5IGRpc2FibGUg dGVzdCBmcm9tIGljb252LWRldGVjdC5jIChjbWFrZS5wYXRjaCBmaWxlKSBhbmQKLSMgdXNlIGEg Y21ha2UgY2FjaGUgZmlsZSBvbiBjcm9zc2J1aWxkIHRvIGRpc2FibGUgc2ZydGltZSBydW5uaW5n IHRlc3QuCi1pZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9IiAt QyBkaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlIgotZmkKLQotcHJlX2NvbmZpZ3VyZSgpIHsKLQlt a2RpciAtcCBidWlsZAotCWNwICR7RklMRVNESVJ9L2ljb252LWRldGVjdC5oICR7d3Jrc3JjfS9i dWlsZC8uCi0JaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JCWNwICR7RklMRVNESVJ9L2Rp c2FibGVSdW50aW1lVGVzdHMuY21ha2UgJHt3cmtzcmN9L2J1aWxkLy4KLQlmaQotfQotCiBldm9s dXRpb24tZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJ3ZWJraXQyZ3RrLWRldmVsIGd0aysz LWRldmVsIGxpYmdsaWItZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsCiAJIGd0a2h0 bWwtZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgoKRnJvbSBjODIz YzBlMzBhZmMwZmY2YmM4ZTMyNmJkYjc1ODQyODA4ZDQ4MGFhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDgvOThdIGV2b2x1 dGlvbi1ld3M6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZXZvbHV0aW9uLWV3cy90 ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUgYi9z cmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUKaW5kZXggNGZmODExNjQ2NmMuLjcyY2VkNTIw MDE0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZXZvbHV0aW9uLWV3cycKIHBrZ25hbWU9ZXZvbHV0aW9uLWV3cwotdmVyc2lvbj0z LjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNv bmZpZ3VyZV9hcmdzPSItRExJQkVYRUNfSU5TVEFMTF9ESVI9L3Vzci9saWIvZXZvbHV0aW9uIgpA QCAtMTIsNCArMTIsNCBAQCBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9uIgogY2hhbmdlbG9nPSJodHRwczov L3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWV3cy9nbm9tZS0zLTM2 L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMDg4M2M3ZDIyNzgyN2Nj NWM0NDY4YjdlMzFhM2VlMzcwYmNkN2Q0MWE0ZGJiOTUwYWI1ZGIzNmM5NTUxYWMxCitjaGVja3N1 bT1iZTkxNjA1ZGZmNWUyNzQ4N2ZjYmNjZWZjOTEzYzAyN2QyZDY2MTA0MGUwOTRmYmQ4MWY5NTFk YzlhODYxODE1CgpGcm9tIDQ5Yzg0MzhlNGQ3MmE0MjEzM2JmNjk2NWY2NThjYjY4NTJjYzQ0YWIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCA0OS85OF0gcHl0aG9uMy1hdHNwaTogdXBkYXRlIHRvIDIuMzcuOTAKCi0tLQogc3Jj cGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRo b24zLWF0c3BpL3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlCmluZGV4 IGEzM2EzNzRmZTE4Li4yOTkwNzdkNDcxZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLWF0 c3BpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtYXRzcGknCiBwa2duYW1lPXB5 dGhvbjMtYXRzcGkKLXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzcuOTAK K3JldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0iCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMyw0ICsxMyw0IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3BpMiIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNwaS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4YmVh ZmNhYjgyMDhlMTFiMzliMjQ2MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPTRlMTdhY2U1OWM2 YzgzYWM5NDFkNzRmNzZhY2I5NGMwMGZiMjJiNTZiYWE2ZWFhYjMxM2Y1ZTFhYWI3MmZjMzgKCkZy b20gZWE1ZTM2NmJlNDRkMmIxMjI4MmE1YjEzY2ZjZDkyMjVhNjllMTk3NCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDUwLzk4 XSBweXRob24tYXRzcGk6IHVwZGF0ZSB0byAyLjM3LjkwCgotLS0KIHNyY3BrZ3MvcHl0aG9uLWF0 c3BpL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxh dGUgYi9zcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQppbmRleCAwMTQxZDk3Zjg1ZC4uYzU0 NDUyM2Y5ZDQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCkBAIC0xLDggKzEsOCBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAncHl0aG9uLWF0c3BpJwogIyBLZWVwIHB5dGhvbjMtYXRzcGkgaW4gc3luYwog cGtnbmFtZT1weXRob24tYXRzcGkKLXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9u PTIuMzcuOTAKK3JldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVy c2lvbn0iCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xNCw0ICsxNCw0IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9w eWF0c3BpMiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0v cHlhdHNwaS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2Yw NTc3OGQ4YmVhZmNhYjgyMDhlMTFiMzliMjQ2MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPTRl MTdhY2U1OWM2YzgzYWM5NDFkNzRmNzZhY2I5NGMwMGZiMjJiNTZiYWE2ZWFhYjMxM2Y1ZTFhYWI3 MmZjMzgKCkZyb20gYmQyMWM4NmI5NTZmOWQxZDkzMGU0M2VhYjcxNzNlODc5NDc2MzYzYSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BB VENIIDUxLzk4XSBvcmNhOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL29yY2EvdGVt cGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcmNhL3RlbXBsYXRlIGIvc3JjcGtncy9vcmNh L3RlbXBsYXRlCmluZGV4IGY3MDIwMmU2ZDc2Li4yYjI5NjViZmJhYyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9vcmNhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3JjYS90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29yY2EnCiBwa2duYW1lPW9yY2EKLXZlcnNpb249 My4zNi4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL09yY2EiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jMWFjNjQ4YjZiZTMxNDg4YzI2ZmY5NTkxMTQyODc4 NjlkZjljZTNjYTIxOTk5ZTQwZGVkODc3NDFjOTg4MzFmCitjaGVja3N1bT0xYWIyZWI1YmU4YzM2 MzNhMmI2MWMyNmM1ZTNjOWUxYTViMTExNGJhZjE0OGZhZTg5Y2VjMzVkZmJhNGNiNjRiCiAKIGlm IFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBweXRob24zLWdv YmplY3QtZGV2ZWwiCgpGcm9tIGJiOTI1Njk0MDc0ZWY4YWIyMWUzYTkzMDM1Zjg4N2IxNmM3MjZl ZjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA1Mi85OF0gZ25vbWUtd2VhdGhlcjogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21l LXdlYXRoZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKaW5kZXggZDMwYmU5YmYxOTIuLmMw MjhlNDZiYTY1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZ25vbWUtd2VhdGhlcicKIHBrZ25hbWU9Z25vbWUtd2VhdGhlcgogdmVy c2lvbj0zLjM2LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgog YnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0 c3Rvb2wgZ2xpYi1kZXZlbCBnanMiCgpGcm9tIGQzMDBhY2I5NDFlNzI5OTRiMmFlMWE0YmE0ZGU0 ZmQxNDA0ZTIwOTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA1My85OF0gdnRlMzogdXBkYXRlIHRvIDAuNjEuOTAKCi0tLQog c3JjcGtncy92dGUzL3RlbXBsYXRlIHwgMTkgKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy92dGUzL3RlbXBsYXRlIGIvc3JjcGtncy92dGUzL3RlbXBsYXRlCmluZGV4IDYxMTZiM2Nj NjIxLi5mMWJhMWM2ZjFhMiAxMDA2NDQKLS0tIGEvc3JjcGtncy92dGUzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQpAQCAtMSwyOSArMSwyOCBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAndnRlMycKIHBrZ25hbWU9dnRlMwotdmVyc2lvbj0wLjYwLjMKK3ZlcnNpb249MC42MS45 MAogcmV2aXNpb249MQogd3Jrc3JjPSJ2dGUtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29u CiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGJfbmRlYnVnPWZhbHNlIC1E Z2lyPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkKLSAtRHZhcGk9JCh2b3B0X2lmIHZhbGEgdHJ1 ZSBmYWxzZSkgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9 Ii1EYl9uZGVidWc9ZmFsc2UgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlCisgJCh2b3B0 X2Jvb2wgZ2lyIGdpcikgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpIgogaG9zdG1ha2VkZXBlbmRzPSJn bGliLWRldmVsIGdub21lLWRvYy11dGlscyBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnCi0gJCh2 b3B0X2lmIHZhbGEgdmFsYSkiCi1tYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVs IHBjcmUyLWRldmVsICQodm9wdF9pZiB2YWxhIHZhbGEtZGV2ZWwpIgotZGVwZW5kcz0idnRlIgor ICQodm9wdF9pZiBnaXIgdmFsYSkiCittYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRl dmVsIHBjcmUyLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBzaG9ydF9kZXNjPSJU ZXJtaW5hbCB3aWRnZXQgd2l0aCBpbXByb3ZlZCBhY2Nlc3NpYmlsaXR5IGFuZCBJMThOIHN1cHBv cnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIsIExHUEwtMy4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9UZXJtaW5hbC9WVEUi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdnRlLyR7dmVyc2lvbiUuKn0vdnRlLSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09ZmViNzZlMTE4MWEzNTdkODYxMTJkNDQ3YTA4ZDEyN2UyMDgx NDM4ZGY3NmVjZTgzMjQzYjE4NjA5ZGQ5ODIyYQorY2hlY2tzdW09ZDk5ZDcwY2ExM2UxYTEzYzcy OWRlMjE5ODQzNGI3MWE4MzlhMTgwOGQ4MWEwYjFlYThjZWIwMjJkNjE5ZTQ4NwogCiAjIFN1cHBy ZXNzIHdhcm5pbmdzIGFzIGVycm9ycyBmb3IgTlVMTCBmb3JtYXQgc3RyaW5ncyAobXVzbCBsaWJj KQogQ1hYRkxBR1M9Ii1Xbm8tZXJyb3I9Zm9ybWF0PSIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlv bnMKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIg dmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgog CiBwcmVfYnVpbGQoKSB7CiAJZXhwb3J0IEdJUl9FWFRSQV9MSUJTX1BBVEg9IiR7d3Jrc3JjfS9z cmMvLmxpYnMiCkBAIC0zOCw4ICszNyw2IEBAIHZ0ZTMtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1v dmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJ CXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFs YSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDE5ZDI5 NThiYjUwZTcxOTdhMWI5MDIwYTJmYjI3ZDlhZjA0MTJmOTQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1NC85OF0gZ25vbWUt dGVybWluYWw6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtdGVybWluYWwv dGVtcGxhdGUgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlCmluZGV4IGJmM2Q1YmNkZDQyLi45 MjY2ZjQzYTYxZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlCkBAIC0xLDExICsxLDExIEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS10ZXJtaW5hbCcKIHBrZ25hbWU9Z25vbWUtdGVybWlu YWwKLXZlcnNpb249My4zNi4xLjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMgLS13 aXRoLW5hdXRpbHVzLWV4dGVuc2lvbiIKIGhvc3RtYWtlZGVwZW5kcz0iYXBwZGF0YS10b29scyBn bGliLWRldmVsIGludGx0b29sIGl0c3Rvb2wKLSBwa2ctY29uZmlnIgorIHBrZy1jb25maWcgZG9j Ym9vay14c2wiCiBtYWtlZGVwZW5kcz0iZGNvbmYtZGV2ZWwgZ25vbWUtc2hlbGwgZ3NldHRpbmdz LWRlc2t0b3Atc2NoZW1hcy1kZXZlbAogIG5hdXRpbHVzLWRldmVsIHZ0ZTMtZGV2ZWwiCiBkZXBl bmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCkBAIC0xMyw4ICsxMyw4IEBAIHNob3J0X2Rlc2M9IkdO T01FIHRlcm1pbmFsIGVtdWxhdG9yIGFwcGxpY2F0aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdG REwtMS4zLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1Rlcm1p bmFsIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uOjA6NH0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYzZDcwOGExZTc2ZDc3YzFj ODViMTI2ZjZlMDAzMjIwYTE1ZDRhNDZhNTBmZDgwNzBlMWEzYWFiZTY3OGEzNzYKK2Rpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKK2NoZWNrc3VtPWQ2ZGEwZjQ5OTEzNDVkNDdkNzMwZjljYWFkZjQ2ZThl NDEwNTk3MDE3ZTZjNjE0NzVlOTJmN2MyM2FkOWMyYTQKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIGlm IFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSBiMDYxNjYxNWRlNWQ3OWJlMmRhNzZjOTQ5 NjY1OGNhZThiNmI2OTIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTUvOThdIGdub21lLWdldHRpbmctc3RhcnRlZC1kb2Nz OiB1cGRhdGUgdG8gMy4zNi4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRv Y3MvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQt ZG9jcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxh dGUKaW5kZXggNWJlYzkzNDkwYmEuLmJlZDliNjk2MTYyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2du b21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZ2V0 dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcycKIHBrZ25hbWU9Z25vbWUtZ2V0dGlu Zy1zdGFydGVkLWRvY3MKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzYuMgogcmV2aXNpb249 MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMSw0ICsxMSw0 IEBAIGxpY2Vuc2U9IkNDLUJZLVNBLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MiCiAjY2hhbmdlbG9nPSJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvcmF3 L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZjcwY2UyY2Ey M2FkNzg2MjE1ZjNjOTJlYzg1NzgzZTNhYWJlZDA3ZTRmNzg3MDBmYTI3ZjliMmNmNzZlMDNkYgor Y2hlY2tzdW09MDQ5NGI4OTEzYTk0NmI2NDUwNTM2ZTEyMGMxNTRhYmQyOTIzOGViYmEyZjUyNzM0 NTkyYjFmNjQ1ZTUyMWRjNgoKRnJvbSBjNTA1ZWJjNTU1ZWY5NzE1NmVjNDNlZGQ4MjUxMjRjZDYz NGVjOGFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNTYvOThdIGdub21lLXVzZXItZG9jczogdXBkYXRlIHRvIDMuMzYuMgoK LS0tCiBzcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3Rl bXBsYXRlCmluZGV4IDRjYjU1Mzk2ZTM3Li4yZThhZmU5ZjkzZCAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS11c2VyLWRvY3Mv dGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS11c2Vy LWRvY3MnCiBwa2duYW1lPWdub21lLXVzZXItZG9jcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249 My4zNi4yCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKQEAgLTEzLDQgKzEzLDQgQEAgbGljZW5zZT0iQ0MtQlktMy4wIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0aHViLmNvbS9HTk9NRS9nbm9tZS11c2VyLWRvY3MiCiAjY2hhbmdlbG9nPSJodHRwczov L3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtdXNlci1kb2NzL21hc3Rlci9O RVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09OGY5OTA3ZmYxNWZmZjk3ZGE3 NWVjZTY0NWNjODY3NjY3MDNhYzU0ZDcxNmQyNTU2M2JhNjdmZmVkMWFmMjRlZAorY2hlY2tzdW09 MTk4ZmU0YzgzNjc3NWE1ZGMyNTQzYTZhNTIwZGZiMGFjNWJmMjkyY2RjYjM1OGE1N2M4NmYzNWY3 MDVlOTk1OAoKRnJvbSA3ZDAzNTE2OWY5MTAzNzJjNDU0NjU3MWFmMDZhZTU2NDg0OGU5MTU0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggNTcvOThdIGdub21lLWVwdWItdGh1bWJuYWlsZXI6IHVwZGF0ZSB0byAxLjYKCi0tLQog c3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZXB1 Yi10aHVtYm5haWxlci90ZW1wbGF0ZQppbmRleCBiMTZlNzA1NDc1Zi4uYzZlMWMwMmI5ZDMgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1lcHViLXRodW1ibmFpbGVyJwogcGtnbmFtZT1nbm9t ZS1lcHViLXRodW1ibmFpbGVyCi12ZXJzaW9uPTEuNQordmVyc2lvbj0xLjYKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIK QEAgLTEwLDQgKzEwLDQgQEAgbWFpbnRhaW5lcj0iQWxpZiBSYWNobWF3YWRpIDxhcmNoQHN1Ym9z aXRvLmNvbT4iCiBsaWNlbnNlPSJHUEwtMyIKIGhvbWVwYWdlPSJodHRwczovL2dpdC5nbm9tZS5v cmcvYnJvd3NlL2dub21lLWVwdWItdGh1bWJuYWlsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0zMDgyMTBmNTgwMDIxOWY2NGNhZTQ4MjhlNTliYjhlNmU0YzUzYjg4ODA0OGNmNDg3 MjIxYWViNDMzN2Q3OTFhCitjaGVja3N1bT1iNTAyNDIwZDliMDJlYTBiMGZjNzk4NmVmNWEwOTFh MTJiMjI4NmJlMTRmZWQ5ZTQ3NTk0ZmU5ZmEwYzU4OThlCgpGcm9tIDhiNTFjMmFlNmFiNjFmZDE4 M2YyYjMzZDI3YjIzNTYzMDZkMWU4MTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1OC85OF0gZ25vbWUtYm9va3M6IGJ1bXAK Ci0tLQogc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25v bWUtYm9va3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCmluZGV4IDEx NGI5ZTAzNGMyLi4xZDQ5NzRmZTE4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1ib29rcy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtYm9va3MnCiBwa2duYW1lPWdub21lLWJvb2tz CiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfaGVscGVyPSJn aXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHZhbGEg Z2xpYi1kZXZlbCBsaWJyc3ZnIGRvY2Jvb2steHNsIGxpYnhzbHQKCkZyb20gZDk3YThiNjcyMTA2 MWFmYzhjZTYxYWQ4ZGY4N2M0MWU1Yjc5ZGNjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDU5Lzk4XSBnbm9tZS1jaGFyYWN0 ZXJzOiBidW1wCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZSB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2hh cmFjdGVycy90ZW1wbGF0ZQppbmRleCA4OTg2OGY0YmMwNC4uYWMyNjRlNTFhNmEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LWNoYXJhY3RlcnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnbm9tZS1jaGFyYWN0ZXJzJwogcGtnbmFtZT1nbm9tZS1jaGFyYWN0ZXJzCiB2ZXJzaW9uPTMu MzQuMAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj0iZ2lyIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdqcyBnbGliLWRldmVsIGl0c3Rv b2wgcGtnLWNvbmZpZyIKCkZyb20gMjQwZjM3ZDY2ODBiZWRiNDcxODkzYzNhNDQ0NzVkOGIzNzc0 OGVlMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDYwLzk4XSBnbm9tZS1kb2N1bWVudHM6IGJ1bXAKCi0tLQogc3JjcGtncy9n bm9tZS1kb2N1bWVudHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRvY3VtZW50 cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCmluZGV4IDk3YjUz ZDYzNWQ3Li43ZTQ1YjgyNWU3MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kb2N1bWVudHMnCiBwa2duYW1lPWdu b21lLWRvY3VtZW50cwogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1 aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZG9j Ym9vay14c2wgZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBsaWJ4c2x0IGdk ay1waXhidWYKCkZyb20gN2MzNGQyNDFiYmMyY2VlNzAxNGM3MjIxNzZiNGIxZDAxNDMxMjM1YSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDYxLzk4XSBnbm9tZS1mb250LXZpZXdlcjogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21l LWZvbnQtdmlld2VyL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1mb250LXZpZXdl ci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKaW5kZXggNmQw MzUzNjZkNDQuLmY3NGZjYmNiMDAwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWZvbnQtdmll d2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mb250LXZpZXdlcicKIHBr Z25hbWU9Z25vbWUtZm9udC12aWV3ZXIKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZp c2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGds aWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZm9udGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbCBn bGliLWRldmVsIGd0ayszLWRldmVsCgpGcm9tIGQzNmE3ODNmMWQyNmUxNTE2OThkYmM2ZTZjZmYx ZDY2YTFiYzA3M2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA2Mi85OF0gdG90ZW06IGJ1bXAsIGRyb3AgdmFsYSBvcHRpb24K Ci0tLQogc3JjcGtncy90b3RlbS90ZW1wbGF0ZSB8IDE0ICsrKysrKysrKy0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvdG90ZW0vdGVtcGxhdGUgYi9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCmluZGV4IDgxNTIy YjMxNDg4Li5hOGNmYjAwMDFhNCAxMDA2NDQKLS0tIGEvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICd0b3RlbScKIHBrZ25hbWU9dG90ZW0KIHZlcnNpb249My4zNC4xCi1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBj b25maWd1cmVfYXJncz0iLURlbmFibGUtcHl0aG9uPW5vIC1EZW5hYmxlLW5hdXRpbHVzPXllcwog IC1EZW5hYmxlLWludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB5ZXMgbm8pCi0gLURlbmFibGUt dmFsYT0kKHZvcHRfaWYgdmFsYSB5ZXMgbm8pIgorIC1EZW5hYmxlLXZhbGE9JCh2b3B0X2lmIGdp ciB5ZXMgbm8pIgogaG9zdG1ha2VkZXBlbmRzPSJnbm9tZS1kb2MtdXRpbHMgaW50bHRvb2wgaXRz dG9vbCBwa2ctY29uZmlnCi0gJCh2b3B0X2lmIHZhbGEgdmFsYSkgZ3N0cmVhbWVyMSBnc3QtcGx1 Z2lucy1iYXNlMSBnc3QtcGx1Z2lucy1nb29kMQorICQodm9wdF9pZiBnaXIgdmFsYSkgZ3N0cmVh bWVyMSBnc3QtcGx1Z2lucy1iYXNlMSBnc3QtcGx1Z2lucy1nb29kMQogIGdsaWItZGV2ZWwiCiAj IFhYWCBtaXNzaW5nIGxpcmMgcGx1Z2luLgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3N0My1kZXZl bCBjbHV0dGVyLWd0ay1kZXZlbCBkYnVzLWdsaWItZGV2ZWwKQEAgLTI3LDEwICsyNywxNCBAQCBj aGVja3N1bT02YmY4OWFiMDk2ZGZjNTY0ZjI2MDk3NmU0ODQxNjVmMDliZDg4NjQzNGQxODQ0MTBk MmY5NDRiZmJhNjExYTA5CiAjIFhYWCByZWVuYWJsZSBweXRob24gcGx1Z2luIGlmIHB5bGludCBw a2cgZXhpc3RzLgogI3B5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL3RvdGVtL3BsdWdpbnMiCiAKK2Rv X2NoZWNrKCkgeworCToKK30KKwogZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKIAotYnVpbGRf b3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVp bGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGxpYnRvdGVt X3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGlicmFyeSIKCkZyb20gYjU5 NzkzN2JlM2NjYTQ3YTkwMGM3MzU4NDEwNWZmMGNlYjA3MjJiMCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDYzLzk4XSBnbm9t ZS1zY3JlZW5zYXZlcjogYnVtcCArIGZpeCBidWlsZAoKLS0tCiBzcmNwa2dzL2dub21lLXNjcmVl bnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2ggfCAxMiArKysrKysrKysrKysKIHNyY3BrZ3MvZ25v bWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUgICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNoYW5n ZWQsIDEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dz L2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZkY2RiZTdkZDdlCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9nbm9tZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTIg QEAKKy0tLSBzcmMvZ3MtbWFuYWdlci5jCisrKysgc3JjL2dzLW1hbmFnZXIuYworQEAgLTgyMCw4 ICs4MjAsNyBAQCBhcHBseV9iYWNrZ3JvdW5kX3RvX3dpbmRvdyAoR1NNYW5hZ2VyICptYW5hZ2Vy LAorICAgICAgICAgc3VyZmFjZSA9IGdub21lX2JnX2NyZWF0ZV9zdXJmYWNlIChtYW5hZ2VyLT5w cml2LT5iZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Rr X3dpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lk dGgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UpOworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQpOworICAgICAg ICAgZ3Nfd2luZG93X3NldF9iYWNrZ3JvdW5kX3N1cmZhY2UgKHdpbmRvdywgc3VyZmFjZSk7Cisg ICAgICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kgKHN1cmZhY2UpOworIH0KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVl bnNhdmVyL3RlbXBsYXRlCmluZGV4IDM2M2ZjZjEyZTEwLi5jM2E3MGNmZWY3YyAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LXNjcmVlbnNhdmVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZ25vbWUtc2NyZWVuc2F2ZXInCiBwa2duYW1lPWdub21lLXNjcmVlbnNhdmVyCiB2ZXJzaW9u PTMuNi4xCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJl CiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgogaG9z dG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGludGx0b29sIGdsaWItZGV2ZWwiCgpG cm9tIDkxNmE3Mzc1MGRmMzQ0YjhkNjg4NmY4MDQxNGQ2ZTVlMDI5Mzg4MTAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA2NC85 OF0gZ25vbWUtY2xvY2tzOiB1cGRhdGUgdG8gMy4zNy45MQoKLS0tCiBzcmNwa2dzL2dub21lLWNs b2Nrcy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBs YXRlIGIvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUKaW5kZXggM2UwNDliNDJmYjEuLjBl NDdkYmFkZmUxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMiBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZ25vbWUtY2xvY2tzJwogcGtnbmFtZT1nbm9tZS1jbG9ja3MKLXZlcnNp b249My4zNi4wCit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2ly IgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9v bCBpdHN0b29sIGdsaWItZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHZhbGEt ZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAotIGxpYmd3ZWF0aGVyLWRldmVsIGxpYmhhbmR5LWRl dmVsIGxpYm5vdGlmeS1kZXZlbCBnc291bmQtZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZlbCBsaWJo YW5keTEtZGV2ZWwgbGlibm90aWZ5LWRldmVsIGdzb3VuZC1kZXZlbAogIGdlb2NvZGUtZ2xpYi1k ZXZlbCBkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lCiAgZ2VvY2x1ZTItZGV2 ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIgpAQCAt MTUsNCArMTUsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL0FwcHMvQ2xvY2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 NGM5NzhiMGM3ZjdiOWRhZWJkMjcyZDAxNzVmOGE1NDQxNWUyMDc4ZjEzNGY0OGFkZDVjZjI0MzYy ZWVmNDljNgorY2hlY2tzdW09MzRkZTgyNGIzZmVlNjhjNTU1NGI2OTA0YjAyYmNkYzdlNGI5MjFm OWE4ZTkxYTc4MGY0M2UyODk4ZGJmYjM2YwoKRnJvbSA4MzA0YzU3MjBiZjE4MWZjYzY1YWFhNjMx ZDFjMWNiYTM2MThkMzQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjUvOThdIGdub21lLWNvbnRhY3RzOiB1cGRhdGUgdG8g My4zNy4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgfCAxMyArKysrKyst LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLWNvbnRhY3RzL3RlbXBsYXRlCmluZGV4IDJhODIxM2E3MjQwLi5hYTRlZjk0MDEzNiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWNvbnRhY3RzL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS1jb250YWN0cycKIHBrZ25hbWU9Z25vbWUtY29udGFjdHMKLXZlcnNpb249My4z NC4wCi1yZXZpc2lvbj0yCi13cmtzcmM9Imdub21lLWNvbnRhY3RzLSR7dmVyc2lvbiUuKn0iCit2 ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVw ZW5kcz0iZG9jYm9vay14c2wgZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB2 YWxhIgoraG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBmb2xrcy1kZXZlbCBnZXR0ZXh0IGds aWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCiBtYWtlZGVwZW5kcz0iY2hlZXNlLWRl dmVsIGZvbGtzLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCi0g bGliY2hhbXBsYWluLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB2YWxhLWRldmVsIGxpYmhhbmR5LWRl dmVsIgorIGxpYmNoYW1wbGFpbi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgdmFsYS1kZXZlbCBsaWJo YW5keTEtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJH Tk9NRSBjb250YWN0cyBtYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0NvbnRhY3RzIgotZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbiUuKn0udGFy Lnh6IgotY2hlY2tzdW09OTk2MDJlYzhkNjYwYzFmM2M5MmNhZTYzNTZmNjRmNzJmYjZkYjU4ZTU1 YmNlMjdhNTk5MzMwYmY3YjYyMmYxMgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09 MWQzNDY5ZDVlOTBmMjNkMTI5ZDEyNzZiMmY5Yjg4NTQ1OWYzZDdiNDMwNTRjZDA5NzU5Yjg1YWM3 NmM5MThiNAoKRnJvbSA5YmVlNzAwNjQwOTY5NmNkNjE2ODQ1OWFmOTVmYzMyMzM2M2RmNjhkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggNjYvOThdIGVwaXBoYW55OiB1cGRhdGUgdG8gMy4zNy45MQoKLS0tCiBzcmNwa2dzL2Vw aXBoYW55L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VwaXBoYW55L3RlbXBs YXRlIGIvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQppbmRleCA1ZDZhYzZhNjM3ZC4uMTEyM2U1 OGE1NmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9lcGlwaGFueS90ZW1wbGF0ZQpAQCAtMSwxOSArMSwxOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZXBpcGhhbnknCiBwa2duYW1lPWVwaXBoYW55Ci12ZXJzaW9uPTMuMzYuMgordmVyc2lvbj0z LjM3LjkxCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29u CiBjb25maWd1cmVfYXJncz0iLURkaXN0cmlidXRvcl9uYW1lPVZvaWRMaW51eCAtRHVuaXRfdGVz dHM9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29s IHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYXZhaGktZ2xp Yi1saWJzLWRldmVsIGdjci1kZXZlbAotIGdub21lLWRlc2t0b3AtZGV2ZWwganNvbi1nbGliLWRl dmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keS1kZXZlbAorIGdub21lLWRlc2t0b3AtZGV2ZWwg anNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwKICBsaWJub3Rp ZnktZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZ25vbWUtZGV2ZWwgbGlid25jay1kZXZl bCBsaWJ4c2x0LWRldmVsCi0gbmV0dGxlLWRldmVsIG5zcy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVs IgorIG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJwb3J0YWwtZGV2 ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIGlzby1j b2RlcyB3ZWJraXQyZ3RrIgogc2hvcnRfZGVzYz0iSW50dWl0aXZlIEdOT01FIHdlYiBicm93c2Vy IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9B cHBzL1dlYiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMyZTY3NmFhMGZlMjEx ODA5YTVlN2U4YTdlNDYxZDE4Mjg5MGYyNTNjNTNmNDYxMGYyNjEwMDk0YjZmYmZiNWUKK2NoZWNr c3VtPWRmYzVkYjk4MWNiMzkyZDhmMDk2ZDU0ZDI4YmMxYjFjMTg5YTRiOGI3NTM0ZDg3MDU0ZjIw Mjg0M2YwMGJkODMKCkZyb20gYmU3M2RiZWM4ZGQ3ZTI1OWEzNTg4ODI1NDk2MThmOWM5ODQyYjc4 MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIIDY3Lzk4XSBnbm9tZS1waG90b3M6IHVwZGF0ZSB0byAzLjM3LjkxLjEKCi0tLQog c3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXBob3Rvcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlCmluZGV4 IDFlZDhiOTg2MWVjLi4zYTcyZDlhNTNiZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1waG90 b3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1waG90b3MnCiBwa2duYW1lPWdub21l LXBob3RvcwotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249My4zNy45MS4xCiByZXZpc2lvbj0xCiBi dWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC0xNSw4ICsxNSw4IEBAIHNo b3J0X2Rlc2M9IkFjY2Vzcywgb3JnYW5pemUsIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9N RSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv QXBwcy9QaG90b3MiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ25vbWUtcGhvdG9zLyR7dmVy c2lvbiUuKn0vZ25vbWUtcGhvdG9zLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09M2M1OWM3 NmVmMjg2MThlYzA1NWExNzk5ZDEwNDAyODdiOTBhMGIwMjFmZWIwYTAyYjFlYWMyOGU5YzJlYjQx YQorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dub21lLXBob3Rvcy8ke3ZlcnNpb24lLiouKn0v Z25vbWUtcGhvdG9zLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09Mjc4ZGEyMzIzNGUyN2M1 NDMwMjBkYWU5NDNhZDUyMDg2YjllY2FhNWVlM2FhZDBiMDMxYjg2ZWUwNGQzOTRhYQogCiBidWls ZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gOGEyZDhl ZmI0NTcxNmVkZDg5YTEzYTQyMjRmZDc5NTE0YTkxMWJlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDY4Lzk4XSBlb2c6IHVw ZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZW9nL3RlbXBsYXRlIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9lb2cvdGVtcGxhdGUgYi9zcmNwa2dzL2VvZy90ZW1wbGF0ZQppbmRleCBlNGNh Y2I3MDc5ZS4uOTFlZTU0ZWRjNDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCkBAIC0xLDIwICsxLDIwIEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdlb2cnCiBwa2duYW1lPWVvZwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45 MAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgog aG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgog bWFrZWRlcGVuZHM9ImV4ZW1waS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmV4aWYtZGV2 ZWwgbGlicGVhcy1kZXZlbAotIGxpYnJzdmctZGV2ZWwgbGNtczItZGV2ZWwiCisgbGlicnN2Zy1k ZXZlbCBsY21zMi1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUt dXRpbHMgaGljb2xvci1pY29uLXRoZW1lIHNoYXJlZC1taW1lLWluZm8iCiBzaG9ydF9kZXNjPSJF eWUgb2YgR05PTUUgZ3JhcGhpY3Mgdmlld2VyIHByb2dyYW0iCiBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXllT2ZHbm9tZSIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS9lb2cvJHt2ZXJzaW9uJS4qfS9lb2ctJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT1lNDU0YTFhN2FhNWUzYTMzMjFlYWIwMTE2Nzc4MTEwZTVhN2E3YjYzYmNm MjE2NzZlZGExYTdiZTE4N2M5Yzk1CitjaGVja3N1bT00YThhNjc2MzM4MDUyOTJhZDFhZjU0OWUz MTlhYTNmN2I2ZDc3NmYzM2RhYzIwZmQxOTVjZTQ2YmJkZDAyNjZhCiBzaGxpYl9wcm92aWRlcz0i bGliZW9nLnNvIgogbGliMzJkaXNhYmxlZD15ZXMKIAoKRnJvbSBmNDE5YTI5YjI1OWYxN2FmZTY5 NjE0ZTBjN2I3NGVmZWI2MzBlYTc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjkvOThdIGV2aW5jZTogdXBkYXRlIHRvIDMu MzcuOTAKCi0tLQogc3JjcGtncy9ldmluY2UvdGVtcGxhdGUgfCAxNCArKysrKysrLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZpbmNlL3RlbXBsYXRlCmlu ZGV4IDQwMzVmMTVjNjkwLi5lMTdmMmQ4OTBmNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldmluY2Uv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTMgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2aW5jZScKIHBrZ25hbWU9ZXZpbmNlCi12ZXJzaW9uPTMu MzYuNwordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKLWJ1 aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdp ciBpbnRyb3NwZWN0aW9uKSAtLWRpc2FibGUtc2NoZW1hcy1jb21waWxlCi0gLS1lbmFibGUtY29t aWNzIC0tZGlzYWJsZS1zdGF0aWMgLS1lbmFibGUteHBzIC0tZGlzYWJsZS10MWxpYgotIC0tZGlz YWJsZS1icm93c2VyLXBsdWdpbiAtLWVuYWJsZS1wcyIKLWhvc3RtYWtlZGVwZW5kcz0iYWR3YWl0 YS1pY29uLXRoZW1lIGdldHRleHQgZ2xpYi1kZXZlbCBnbm9tZS1kb2MtdXRpbHMKK2J1aWxkX3N0 eWxlPW1lc29uCitjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3BlY3Rpb24p CisgLURjb21pY3M9ZW5hYmxlZCAtRHBzPWVuYWJsZWQgLUR4cHM9ZW5hYmxlZCAtRGR2aT1kaXNh YmxlZAorIC1EdDFsaWI9ZGlzYWJsZWQgLURicm93c2VyX3BsdWdpbj1mYWxzZSIKK2hvc3RtYWtl ZGVwZW5kcz0iYWR3YWl0YS1pY29uLXRoZW1lIGdldHRleHQgZ3RrLWRvYyBnbGliLWRldmVsIGdu b21lLWRvYy11dGlscwogIGl0c3Rvb2wgcGtnLWNvbmZpZyBwZXJsLVhNTC1QYXJzZXIgYXBwc3Ry ZWFtLWdsaWIiCiAjIFhYWCBtaXNzaW5nIHBhY2thZ2VzIGZvciBEVkkgYmFja2VuZC4KIG1ha2Vk ZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZGp2dWxpYnJlLWRldmVsIGdub21lLWRlc2t0b3At ZGV2ZWwgbGliU00tZGV2ZWwKQEAgLTE5LDcgKzE5LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2aW5jZSIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTY1ZDYxYTQyM2UzZmJiZTA3MDAxZjY1ZTg3NDIyZGZiN2Qy ZTQyYjllZGYwY2E2YTFkNDI3YWY5YTA0YjhmMzIKK2NoZWNrc3VtPTJhODc4MDQzYjkyMTBhZDdh YjcwODA1ZjgzZTQwMDY1NGUyMTRlMWY1ZWY5NjAxMDBhZGY5Mzg4MzJkMDJlYWYKIAogYnVpbGRf b3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDgzOTI4ZTZk NmMyM2QwNTkyYjhkZTU4ZmIwZDE3N2Q5MzBmOTcyZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3MC85OF0gZmlsZS1yb2xs ZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUg fCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmls ZS1yb2xsZXIvdGVtcGxhdGUKaW5kZXggMDM2MjJhMjIzMTMuLjE2ZWU1ZWFkZTFlIDEwMDY0NAot LS0gYS9zcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZmlsZS1yb2xs ZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdmaWxlLXJv bGxlcicKIHBrZ25hbWU9ZmlsZS1yb2xsZXIKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzcu OTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRl eHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCkBAIC0xMiw2ICsxMiw2IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9GaWxl Um9sbGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjkxNDRkZThmNTM2ZjU4 M2VjMjlkNzAzYzJjMTcwYmYyZDAwYzZjMTY2Y2Q1ZTNmN2VmYWJkYTU1MWYxMDQ3OAorY2hlY2tz dW09ZDc4NGI5YjMxNWJhOTM4NjIzNWU2ZGU2ZTI2MmFlZDE0YWM4OWJjMGU2ZWYzYTg0OGRkM2Iw ZjI5MzczYzNhMQogCiBDRkxBR1M9Ii1mY29tbW9uIgoKRnJvbSBmZDRjYzZjMjhiYjcwOTcwMTlh ZDU0NWIxMTljNzhiZjM5NjJkN2Q3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzEvOThdIGdub21lLWNhbGVuZGFyOiBidW1w CgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2FsZW5k YXIvdGVtcGxhdGUKaW5kZXggOWM5MWM4YjVmNGQuLjM3NGY0NTU2ZmY4IDEwMDY0NAotLS0gYS9z cmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2FsZW5k YXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1j YWxlbmRhcicKIHBrZ25hbWU9Z25vbWUtY2FsZW5kYXIKIHZlcnNpb249My4zNi4yCi1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0 ZXh0IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyICdnb2JqZWN0LWludHJvc3Bl Y3Rpb24nKSIKIG1ha2VkZXBlbmRzPSJldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgZ2VvY2x1 ZTItZGV2ZWwgZ2VvY29kZS1nbGliLWRldmVsCgpGcm9tIDYxZTgzYWZhYWQ5MGFhODIwMTAwMzAx MzI3NzI3YmJmNmRiMjI0ZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE2OjUx OjU1ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3Mi85OF0gZ25vbWUtbXVzaWM6IHVwZGF0ZSB0byAz LjM3LjMKCltjaSBza2lwXQotLS0KIHNyY3BrZ3MvZ25vbWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0 Mi5wYXRjaCB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtbXVzaWMv dGVtcGxhdGUgICAgICAgICAgICAgICB8ICA3ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzMiBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Z25vbWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMv cGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYWE5OGNkOTBiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLW11c2lj L3BhdGNoZXMvcGFuZ28xNDIucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorRnJvbSBkYzBmNTFiNjNl NGE3YjA4ZTExZThlZDAxNjQ4NGVhNmY1YjIwNTc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBGcmksIDE0 IEF1ZyAyMDIwIDE2OjUwOjI4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIG1lc29uOiByZW1vdmUg cGFuZ28gZGVwZW5kZW5jeQorCitUaGlzIHdhcyBhZGRlZCBiZWNhdXNlIG9mIGEgZmVhdHVyZSBt aXNzaW5nIGluIHBhbmdvIG9sZGVyIHRoYW4KKzEuNDQsIGJ1dCB3ZSBoYXZlIHRoaXMgYmFja3Bv cnRlZCwgc28gd2UncmUgb2theS4KKworaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5 Z29iamVjdC8tL2lzc3Vlcy8zMTIKKy0tLQorIG1lc29uLmJ1aWxkIHwgMSAtCisgMSBmaWxlIGNo YW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBtZXNvbi5idWlsZCBtZXNvbi5idWls ZAoraW5kZXggMGVmNWI5Yi4uNTJiODdhNiAxMDA2NDQKKy0tLSBtZXNvbi5idWlsZAorKysrIG1l c29uLmJ1aWxkCitAQCAtNDMsNyArNDMsNiBAQCBkZXBlbmRlbmN5KCdsaWJkYXp6bGUtMS4wJywg dmVyc2lvbjogJz49IDMuMjguMCcpCisgZGVwZW5kZW5jeSgnbGlibWVkaWFhcnQtMi4wJywgdmVy c2lvbjogJz49IDEuOS4xJykKKyBkZXBlbmRlbmN5KCdsaWJzb3VwLTIuNCcpCisgZGVwZW5kZW5j eSgndHJhY2tlci1zcGFycWwtMi4wJywgdmVyc2lvbjogJz49IDIuMy4wJykKKy1kZXBlbmRlbmN5 KCdwYW5nbycsIHZlcnNpb246ICc+PSAxLjQ0LjAnKQorIGRlcGVuZGVuY3koJ3B5Z29iamVjdC0z LjAnLCB2ZXJzaW9uOiAnPj0gMy4zNi4xJykKKyBkZXBlbmRlbmN5KCdweTNjYWlybycsIHZlcnNp b246ICc+PSAxLjE0LjAnKQorIGRlcGVuZGVuY3koJ2dyaWxvLTAuMycsIHZlcnNpb246ICc+PSAw LjMuMTInLCBmYWxsYmFjazogWydncmlsbycsICdsaWJncmxfZGVwJ10pCistLSAKKzIuMjguMAor CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS1tdXNpYy90ZW1wbGF0ZQppbmRleCAxMjUxMTczNjQwNy4uNWI3MjM5MjczODEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1tdXNp Yy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLW11 c2ljJwogcGtnbmFtZT1nbm9tZS1tdXNpYwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy4z CiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC05 LDExICs5LDEyIEBAIG1ha2VkZXBlbmRzPSJnbm9tZS1kZXNrdG9wLWRldmVsIGdyaWxvLWRldmVs IGxpYm1lZGlhYXJ0LWRldmVsCiAgcHl0aG9uMy1nb2JqZWN0LWRldmVsIHB5dGhvbjMtZGJ1cyB0 cmFja2VyLWRldmVsIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbAogIGxpYmRhenpsZS1kZXZl bCBncmlsby1wbHVnaW5zIHB5dGhvbjMtY2Fpcm8tZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZp bGUtdXRpbHMgcHl0aG9uMy1kYnVzIHB5dGhvbjMtZ29iamVjdCBweXRob24zLXJlcXVlc3RzCi0g dHJhY2tlciB0cmFja2VyLW1pbmVycyBnc3QtcGx1Z2lucy1nb29kMSBncmlsby1wbHVnaW5zIGxp YmRhenpsZSIKKyB0cmFja2VyIHRyYWNrZXItbWluZXJzIGdzdC1wbHVnaW5zLWdvb2QxIGdyaWxv LXBsdWdpbnMgbGliZGF6emxlCisgbGlibWVkaWFhcnQiCiBzaG9ydF9kZXNjPSJHTk9NRSBtdXNp YyBwbGF5aW5nIGFwcGxpY2F0aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL011c2ljIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09N2I4MGY2MzBkMTU4MzM0OTM1YTg3NjAyOTY1NTBjYzkxYjUwZDYwNGZhNjhiNDAy ZmU1MTY1YjE1MzFlYzMzMgorY2hlY2tzdW09MjQ4YmM4NTg1OTYzMjcxYTRkMmZmN2YyNDljOWY3 OTJhYWYwYjRkZmRlMWU5NGFiYjY4YzkxNTAxMDE1Y2ViZQogbGliMzJkaXNhYmxlZD15ZXMKCkZy b20gMjYyNWM1MjY3NGQ4YWU4ZmZiZjg1MjVlYzk0NzJlOGZiMjE2MGFkMCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IEZyaSwgMTQgQXVnIDIwMjAgMjM6MjI6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDczLzk4 XSBnbm9tZS1wYW5lbDogdXBkYXRlIHRvIDMuMzcuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAg ICAgICAgICAgIHwgMiArLQogc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZSB8IDYgKysrLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAwMjA2MTk1YjI1Mi4u YTBiMzBmMDY2ZmIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli cwpAQCAtNTY0LDcgKzU2NCw3IEBAIGxpYnBhY2thZ2VraXQtZ2xpYjIuc28uMTggUGFja2FnZUtp dC0xLjEuMTJfMQogbGlicHNsLnNvLjUgbGlicHNsLTAuMjAuMl8xCiBsaWJzb3VwLTIuNC5zby4x IGxpYnNvdXAtMi4zNC4wXzEKIGxpYnNvdXAtZ25vbWUtMi40LnNvLjEgbGlic291cC1nbm9tZS0y LjM0LjBfMQotbGlicGFuZWwtYXBwbGV0LnNvLjMgZ25vbWUtcGFuZWwtMy4zMC4wXzEKK2xpYmdu b21lLXBhbmVsLnNvLjAgZ25vbWUtcGFuZWwtMy4zNy4xXzEKIGxpYnVuaW51bS5zby41IGxpYnVu aW51bS0yLjdfMQogbGlidW5pcXVlLTMuMC5zby4wIGxpYnVuaXF1ZS0yLjkxLjRfMQogbGlid2Vi a2l0Mmd0ay00LjAuc28uMzcgd2Via2l0Mmd0ay0yLjYuMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLXBhbmVsL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZQppbmRl eCA3MGYyM2I4YjU1MS4uMjRkOWQyYjllYjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtcGFu ZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXBhbmVsJwogcGtnbmFtZT1nbm9tZS1w YW5lbAotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNy4xCityZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iYXhfY3Zfem9u ZWluZm9fdHpkaXI9L3Vzci9zaGFyZS96b25laW5mbyIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4 dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB0emRhdGEgZ2V0dGV4dCIKQEAg LTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4xLW9yLWxhdGVyLCBMR1BM LTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3Rz L0dub21lUGFuZWwiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNmJjMDI1NTI1 MmVlYjRiOTY0YmNiZTU1ZmQ3OTA4YjY5ZjkxNGMwNjJjNWVjOGRmZjVhYzAyNjJkMjliOTBkCitj aGVja3N1bT0xZDU5OGZkNjg5MzNlNzYwMThmMmZiMTE2YTc4NzFjYmMwMDMzYzFmMTA5YmZiZmUw OGExZWNiNTYwNjdkMTUyCiBwYXRjaF9hcmdzPSItTnAxIgogCiBnbm9tZS1wYW5lbC1kZXZlbF9w YWNrYWdlKCkgewoKRnJvbSBhYWUwZDJhNjA4NTZiMTAxNjhmNTQxNjJjNWJjMTk1NDI0ZDRmMWI5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyNDo1MSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNzQvOThdIG1ldGFjaXR5OiB1cGRhdGUgdG8gMy4zNy4xCgotLS0KIHNyY3BrZ3Mv bWV0YWNpdHkvdGVtcGxhdGUgfCA5ICsrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21ldGFjaXR5L3Rl bXBsYXRlIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQppbmRleCA1YWEyMzE0OTJlNy4uNDMw OTc3NmJkNTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9tZXRhY2l0eS90ZW1wbGF0ZQpAQCAtMSwxOCArMSwxNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnbWV0YWNpdHknCiBwa2duYW1lPW1ldGFjaXR5Ci1yZXZlcnRzPSIzLjM3LjFfMSIKLXZl cnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuMQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdldHRleHQtZGV2ZWwgZ2xpYi1k ZXZlbCBpdHN0b29sIHBrZy1jb25maWcgeWVscC10b29scyB6ZW5pdHkiCiBtYWtlZGVwZW5kcz0i Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBndGsrMy1kZXZlbCBsaWJjYW5iZXJyYS1k ZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJYY29tcG9z aXRlLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKLSBsaWJYZml4ZXMtZGV2ZWwgbGliWGluZXJhbWEt ZGV2ZWwgbGliWHJlbmRlci1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28tZGV2ZWwKLSBzdGFydHVw LW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4tbG9hZGVyIgorIGxpYlhm aXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRldmVsIGxpYlgxMS1kZXZl bCBsaWJYcmVzLWRldmVsCisgcGFuZ28tZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwg VnVsa2FuLUhlYWRlcnMgdnVsa2FuLWxvYWRlciIKIGRlcGVuZHM9Inplbml0eSIKIHNob3J0X2Rl c2M9IldpbmRvdyBNYW5hZ2VyIGZvciB0aGUgR05PTUUgZW52aXJvbm1lbnQiCiBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbWV0YWNp dHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMWM3ZDEwNDVjMzkwYWZiM2Jm NDA1NzM1YjBiMjZjNDU5MTk3Y2JmNDNhZjM3YzQ2OWViODkxOGNlM2E0NTNkCitjaGVja3N1bT04 MGQ2ZjNkOTVhNDMyOGZiMjZkMGE2NDcxZjU3NWI3NDJiMzZiOGYyNzIxZjhmM2MxODA3MTk3ZmE5 MDBhMTI2CgpGcm9tIDM2NzVjMDgzYTRkNTUxZjA1MDA2NDE5Y2Q1MWQ2MTA4MGMwOTY2YmEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjQwOjM0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCA3NS85OF0gZ25vbWUtZmxhc2hiYWNrOiB1cGRhdGUgdG8gMy4zNy4yCgpBZGRlZCBQQU0g Y29uZmlnIGFzIHN1Z2dlc3RlZCBieSBtbmFiaWQuCi0tLQogLi4uL2dub21lLWZsYXNoYmFjay9m aWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtIHwgIDYgKysrKwogc3JjcGtncy9nbm9tZS1mbGFzaGJh Y2svdGVtcGxhdGUgICAgICAgICAgICAgIHwgMzQgKysrKysrKysrKysrKystLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0K CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJh Y2sucGFtIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNrLnBh bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjc3NmYwYjM2MzIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFz aGJhY2sucGFtCkBAIC0wLDAgKzEsNiBAQAorIyVQQU0tMS4wCithdXRoICAgICBpbmNsdWRlICBz eXN0ZW0tYXV0aAorYXV0aCAgICAgb3B0aW9uYWwgcGFtX2dub21lX2tleXJpbmcuc28KK2FjY291 bnQgIGluY2x1ZGUgIHN5c3RlbS1hdXRoCitwYXNzd29yZCBpbmNsdWRlICBzeXN0ZW0tYXV0aAor c2Vzc2lvbiAgaW5jbHVkZSAgc3lzdGVtLWF1dGgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt Zmxhc2hiYWNrL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUKaW5k ZXggZDMyMTIwY2FiNmYuLjY4YTFhNjc0YWNmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWZs YXNoYmFjay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQpA QCAtMSwyMCArMSwzNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZmxhc2hiYWNrJwog cGtnbmFtZT1nbm9tZS1mbGFzaGJhY2sKLXZlcnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcuMgog cmV2aXNpb249MQogYnVpbGRfaGVscGVyPWdpcgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQot Y29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKLWhvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBnbGliLWRldmVsIGdldHRleHQiCi1tYWtl ZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbAotIGxp YmdsaWItZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbCB1cG93ZXItZGV2ZWwgaWJ1cy1kZXZlbCBwb2xr aXQtZGV2ZWwKLSBwdWxzZWF1ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYnhjYi1kZXZl bCBsaWJYMTEtZGV2ZWwgcGFuZ28tZGV2ZWwKLSBsaWJ4a2JmaWxlLWRldmVsIGdub21lLWJsdWV0 b290aC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIgorY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1j b21waXotc2Vzc2lvbiAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW1pbmltdW0iCitob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCBnZXR0ZXh0LWRldmVsIGF1dG9tYWtlIGxpYnRv b2wgZ2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJwYW0tZGV2ZWwgZWxvZ2luZC1kZXZlbCB1cG93 ZXItZGV2ZWwgaWJ1cy1kZXZlbCBwb2xraXQtZGV2ZWwKKyBwdWxzZWF1ZGlvLWRldmVsIGxpYmNh bmJlcnJhLWRldmVsIGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2ZWwgbGlieGtiZmlsZS1kZXZlbAor IGxpYmNvbXBpemNvbmZpZy1kZXZlbCBsaWJnbGliLWRldmVsIHBhbmdvLWRldmVsIGd0ayszLWRl dmVsIGdkay1waXhidWYtZGV2ZWwKKyBnZG0tZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdu b21lLWRlc2t0b3AtZGV2ZWwgZ25vbWUtcGFuZWwtZGV2ZWwKKyBnc2V0dGluZ3MtZGVza3RvcC1z Y2hlbWFzLWRldmVsIgogZGVwZW5kcz0iZ25vbWUtYmx1ZXRvb3RoIGdub21lLXNlc3Npb24gZ25v bWUtc2V0dGluZ3MtZGFlbW9uCi0gZ25vbWUtcGFuZWwgZ25vbWUtdGhlbWVzLXN0YW5kYXJkIG1l dGFjaXR5IgorIGdub21lLXBhbmVsIGdub21lLXRoZW1lcy1leHRyYSBtZXRhY2l0eSIKIHNob3J0 X2Rlc2M9IkdOT01FIDMgc2Vzc2lvbiB3aXRoIHNpbWlsYXIgdXNlciBleHBlcmllbmNlIHRvIHRo ZSBHTk9NRSAyLnggc2VyaWVzIgogbWFpbnRhaW5lcj0ic2hpem9uaWMgPHJlYWx0aWF6QGdtYWls LmNvbT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVGbGFzaGJhY2siCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT0zYmU2NTM4OGNkMmM4ZjM5NzQxYmNjMDVkYTg3ZWY0MDAzNTE4M2E5YTM5 NTAyZDY3Njk2MjQyYzJhZWI0NjljCitjaGVja3N1bT1hYjBkZTAwYjBmNmM5YmYzMGMxOTY1MTU2 NGJkOWE3NGJiZGZiN2Q3NmRkMjExOWIyNjMxYTM2NzFmOGJlNjUzCisKK3Bvc3RfZXh0cmFjdCgp IHsKKwl2c2VkIC1pICdzL2xpYmNvbXBpemNvbmZpZyA+PSAwXC45XC4xNFwuMC9saWJjb21waXpj b25maWcgPj0gMC44LjE2LjAvJyBcCisJCWNvbmZpZ3VyZS5hYworfQorCitwcmVfY29uZmlndXJl KCkgeworCWF1dG9yZWNvbmYgLWlmCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwl2aW5zdGFsbCAk e0ZJTEVTRElSfS9nbm9tZS1mbGFzaGJhY2sucGFtIDY0NCAvZXRjL3BhbS5kIGdub21lLWZsYXNo YmFjaworCXZzZWQgLWkgLWUgInMvIC0tc3lzdGVtZC8vZyIgXAorCQkke0RFU1RESVJ9L3Vzci9s aWJleGVjL2dub21lLWZsYXNoYmFjay17Y29tcGl6LG1ldGFjaXR5fQorfQoKRnJvbSBlZDdkZDA5 ZGIxYTFkY2Y1MDhkZjUzYmUzNTk5NmMzMTFjNmFjZDA3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAx NSBBdWcgMjAyMCAwMDoxMjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzYvOThdIHRlcGw6IHVw ZGF0ZSB0byA0Ljk5LjMKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIHNyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaCB8IDQ1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdGVwbC90ZW1wbGF0ZSAgICAgICAgICAgICB8 IDEwICsrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0 Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhMGIz MGYwNjZmYi4uYWNhYmYyZDkzZTkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29t bW9uL3NobGlicwpAQCAtMzU1Niw3ICszNTU2LDcgQEAgbGlid3hfZ3RrM3VfbWVkaWEtMy4wLnNv LjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQogbGlid3hfZ3RrM3VfcmliYm9uLTMuMC5zby4wIHd4 V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X2dsLTMuMC5zby4wIHd4V2lkZ2V0cy1n dGszLTMuMC40XzEKIGxpYnd4X2d0azN1X3N0Yy0zLjAuc28uMCB3eFdpZGdldHMtZ3RrMy0zLjAu NF8xCi1saWJ0ZXBsLTQuc28uMCB0ZXBsLTQuMi4wXzEKK2xpYnRlcGwtNS5zby4wIHRlcGwtNC4y LjBfMQogbGlibm9tYWNzQ29yZS5zby4zIG5vbWFjcy0zLjEwLjJfNAogbGliYXVkaXQuc28uMSBs aWJhdWRpdC0yLjguNF8xCiBsaWJhdXBhcnNlLnNvLjAgbGliYXVwYXJzZS0yLjguNF8xCmRpZmYg LS1naXQgYS9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2ggYi9zcmNwa2dzL3RlcGwv cGF0Y2hlcy9uby1naXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmUzNDAwMjdiN2YxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90ZXBsL3BhdGNoZXMv bm8tZ2lyLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK0Zyb20gMTdlNTdlZDE1NjQ1MGZlNTkwMDFj YjBhMTRmOGQ4N2M0MGQ2YmY3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAw MDowOToxNSArMDIwMAorU3ViamVjdDogW1BBVENIXSBBbGxvdyBkaXNhYmxpbmcgZ2lyCisKKy0t LQorIG1lc29uX29wdGlvbnMudHh0IHwgNSArKysrKworIHRlcGwvbWVzb24uYnVpbGQgIHwgNCAr KysrCisgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBtZXNv bl9vcHRpb25zLnR4dCBtZXNvbl9vcHRpb25zLnR4dAoraW5kZXggY2FkOTdkZC4uNWU5OTA4NCAx MDA2NDQKKy0tLSBtZXNvbl9vcHRpb25zLnR4dAorKysrIG1lc29uX29wdGlvbnMudHh0CitAQCAt MywzICszLDggQEAgb3B0aW9uKAorICAgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogZmFsc2UsCisg ICBkZXNjcmlwdGlvbjogJ0J1aWxkIEFQSSByZWZlcmVuY2UgKHJlcXVpcmVzIGd0ay1kb2MpJwor ICkKKytvcHRpb24oCisrICAnZ2lyJywKKysgIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUs CisrICBkZXNjcmlwdGlvbjogJ0J1aWxkIGdvYmplY3QtaW50cm9zcGVjdGlvbicKKyspCitkaWZm IC0tZ2l0IHRlcGwvbWVzb24uYnVpbGQgdGVwbC9tZXNvbi5idWlsZAoraW5kZXggMjI2ZDkxMy4u YjM1ZGQzYSAxMDA2NDQKKy0tLSB0ZXBsL21lc29uLmJ1aWxkCisrKysgdGVwbC9tZXNvbi5idWls ZAorQEAgLTE2NCw2ICsxNjQsOCBAQCBQS0dfQ09ORklHLmdlbmVyYXRlKHRlcGxfbGliLAorICAg bGlicmFyaWVzOiBURVBMX1BVQkxJQ19ERVBTLAorICkKKyAKKytpZiBnZXRfb3B0aW9uKCdnaXIn KQorKworIEdOT01FLmdlbmVyYXRlX2dpcigKKyAgIHRlcGxfbGliLAorICAgZXhwb3J0X3BhY2th Z2VzOiAndGVwbC1AMEAnLmZvcm1hdChURVBMX0FQSV9WRVJTSU9OKSwKK0BAIC0xODIsMyArMTg0 LDUgQEAgR05PTUUuZ2VuZXJhdGVfZ2lyKAorICAgIyBTdXBwb3J0IGZvciBkZXBzIGJlaW5nIGJ1 aWx0IGFzIHN1YnByb2plY3RzOgorICAgZGVwZW5kZW5jaWVzOiBURVBMX0RFUFMsCisgKQorKwor K2VuZGlmCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUg Yi9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKaW5kZXggZjRkMzcxZDYwM2QuLjg5MzMzYzc3YTE5IDEw MDY0NAotLS0gYS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90ZXBsL3RlbXBs YXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0ZXBsJwogcGtnbmFt ZT10ZXBsCi12ZXJzaW9uPTQuNC4wCit2ZXJzaW9uPTQuOTkuMwogcmV2aXNpb249MQotYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQotYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0i JCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikiCitidWlsZF9zdHlsZT1tZXNvbgorYnVp bGRfaGVscGVyPWdpcgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBnaXIpIgogaG9z dG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iYW10ay1k ZXZlbCBsaWJnbGliLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0ayszLWRldmVsCiAgbGli eG1sMi1kZXZlbCB1Y2hhcmRldC1kZXZlbCIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9UZXBsIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTZmNjY3M2E4YTI3ZThmMjgwNzI1ZGI4 ZmJhY2VjNzliMjA2NzZhZTA1NTg3NTUyMzlkMTVhOTgwOGZhYTI1NgorY2hlY2tzdW09ZTRhZmU2 MzRmMDBjNTUzMGFlNTJkNzA2ZDljM2E5YmRmMmRiYzc0YjA0NTlhMzYzNzAzYTBhOWI0YTVlMzE1 NwogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZy b20gNTgxZTkxYmZiMWYwZjY0MjA4ZDc3NzU0OWNhNWVjNWY2OGQ2OTE1NSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MTU6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDc3Lzk4 XSBnZWRpdDogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgIHwg IDIgKy0KIHNyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUgfCAyMSArKysrKysrKysrLS0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYWNhYmYyZDkzZTku LmQ2NTVlZGExZjE3IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp YnMKQEAgLTM2ODMsNyArMzY4Myw3IEBAIGxpYnFodHRwZW5naW5lLnNvLjEgcWh0dHBlbmdpbmUt MS4wLjFfMQogbGlicW1kbnNlbmdpbmUuc28uMCBxbWRuc2VuZ2luZS0wLjEuMF8xCiBsaWJ5YW5n LnNvLjEgbGlieWFuZy0xLjByNV8xCiBsaWJodHAuc28uMiBsaWJodHAtMC41LjMwXzEKLWxpYmdl ZGl0LTMuMzYuc28gZ2VkaXQtMy4zNi4xXzEKK2xpYmdlZGl0LTMuMzguc28gZ2VkaXQtMy4zNy4z XzEKIGxpYmNoZXdpbmcuc28uMyBsaWJjaGV3aW5nLTAuNS4xXzEKIGxpYmR3YXJ2ZXMuc28uMSBw YWhvbGUtMS4xMl8xCiBsaWJkd2FydmVzX2VtaXQuc28uMSBwYWhvbGUtMS4xMl8xCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dlZGl0L3RlbXBsYXRlIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQppbmRl eCA0ZTI3M2FhZjE4Mi4uYTEzZTkxZjVmYzAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2VkaXQvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ2VkaXQnCiBwa2duYW1lPWdlZGl0Ci12ZXJzaW9uPTMuMzYuMQor dmVyc2lvbj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5 bGU9bWVzb24KIHB5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0L3BsdWdpbnMiCi1jb25maWd1 cmVfYXJncz0iLURwbHVnaW5zPXRydWUgLUR2YXBpPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2Up Ci0gLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCitjb25maWd1cmVf YXJncz0iLURwbHVnaW5zPXRydWUKKyAkKHZvcHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wg Z2lyIGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJpdHN0b29sIHBrZy1jb25maWcg Z2xpYi1kZXZlbCBnZGstcGl4YnVmIHBlcmwgZ2V0dGV4dAotICQodm9wdF9pZiB2YWxhIHZhbGEp IgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3At c2NoZW1hcy1kZXZlbCBnc3BlbGwtZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwKICBsaWJwZWFz LWRldmVsIGxpYnNvdXAtZGV2ZWwgdGVwbC1kZXZlbCAkKHZvcHRfaWYgZ2lyICdweXRob24zLWdv YmplY3QtZGV2ZWwnKSIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzIGlzby1jb2RlcyIKQEAgLTE3LDIzICsxNywyMiBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvR2VkaXQiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02ZGMzOGVkYTIyN2QxYzM2OGUwMzllOWJmZjQ4 NWQwYmVlOWE0OWQ1Zjk1NjBjMzg3ZWUwOGY1ODE4YTRlMzg3Ci1zaGxpYl9wcm92aWRlcz0ibGli Z2VkaXQtMy4zNi5zbyIKK2NoZWNrc3VtPTgxMzdjN2Q5NmExOTQ1MmVlMDRjOTE1Y2IyNWJhNGRh MTM0NmFmOGZlMDQ5NzQ1NjQxN2NjZmE2MjhmMTA2ZDMKK3NobGliX3Byb3ZpZGVzPSJsaWJnZWRp dC0zLjM4LnNvIgogcHl0aG9uX3ZlcnNpb249MwogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIK LWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCiti dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogZ2VkaXQtZGV2ZWxfcGFja2FnZSgpIHsKLQlk ZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3Rrc291cmNldmll dy1kZXZlbCBsaWJwZWFzLWRldmVsIgorCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSBndGtzb3VyY2V2aWV3NC1kZXZlbAorCSBsaWJwZWFzLWRldmVsIHRlcGwt ZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxs KCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQlp ZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dlZGl0 L2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2 bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gZmUzY2RhNjQ2NzdhZWViNjZlNDA1 MmY5ZDFlMzhkZmYzZWM0YTUzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6 MTg6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDc4Lzk4XSBnZWRpdC1wbHVnaW5zOiByZWJ1aWxk IGFnYWluc3QgZ2VkaXQtMy4zNy4zCgotLS0KIHNyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0 ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2Vk aXQtcGx1Z2lucy90ZW1wbGF0ZQppbmRleCBmMmY5NGU2M2Y1OS4uZjE2YzMwN2UwNTkgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dlZGl0 LXBsdWdpbnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn ZWRpdC1wbHVnaW5zJwogcGtnbmFtZT1nZWRpdC1wbHVnaW5zCiB2ZXJzaW9uPTMuMzYuMgotcmV2 aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIHB5Y29tcGlsZV9kaXJzPSJ1 c3IvbGliL2dlZGl0L3BsdWdpbnMiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZl bCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBhcHBzdHJlYW0tZ2xpYiBweXRob24zLWdvYmplY3QK CkZyb20gNmY0NjNkOGVhMDcxMTMzN2IxZmE5MDEzNWYxYzBkMTk5ZGJiM2E3NiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MzM6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDc5 Lzk4XSBnbm9tZS1sYXRleDogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBzcmNwa2dzL2dub21lLWxh dGV4L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKaW5kZXggOTBkNjBiZTg2MGEuLmU0ZTJm NjI2Mjk2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1sYXRleCcKIHBrZ25hbWU9Z25vbWUtbGF0ZXgKLXZlcnNpb249My4zMi4w Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJn aXIiCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxl LWFwcHN0cmVhbS11dGlsIC0tZGlzYWJsZS1kY29uZi1taWdyYXRpb24KQEAgLTE1LDcgKzE1LDcg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9B cHBzL0dOT01FLUxhVGVYIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGYwNjlj N2I0YzY3NTQyNTVhMWM3ZTNlM2IwNTA5MjVkODA3NmY1NTQ1ODUyNmEzMGFiNTllMGE3ZDUyYWNj OQorY2hlY2tzdW09YTM1MjFlMjFkNGNjNWJjNjBmZjY5NGY1MjA5ZjQ5OWNhYTgwZjM5NWNlNWQ2 MmNiNjMyZTQyNDNhZDI3YmFkMAogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciIKCkZyb20gYmI5MzVlNzM1NWI4NTBkZTYzMTcxNTEyYWFlOTk3YzFlZjky NjEwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MjM6MzMgKzAyMDAKU3Vi amVjdDogW1BBVENIIDgwLzk4XSBiYW9iYWI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3Br Z3MvYmFvYmFiL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRl IGIvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUKaW5kZXggYTAyOGJlNGNkNWIuLjYwODNhNzhmNTRm IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Jhb2Jh Yi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Jhb2JhYicK IHBrZ25hbWU9YmFvYmFiCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25m aWcgaXRzdG9vbCBnbGliLWRldmVsIHZhbGEiCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyLCBHRkRMLTEuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL2FjdGlvbi9zaG93L0FwcHMvRGlza1VzYWdlQW5hbHl6ZXIiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT03Zjk4MWQ0ZjEzNWU0ZjgwZmJhM2Y2NmU4NmIwZWVlZGM5NGEyNDM0 NjQ5MjYyZmYwMWE1ZjBjYjAyN2IyMGM1CitjaGVja3N1bT00MWJlMzhlNDNmYWFmYjM5Mjc2OWM4 NzllMWU3NjJjYTM4ZTJkNzUxYzE3MWJlYTFmOTA0NzI5MGE4ODNmZWZlCgpGcm9tIGYxNjMyYzYz NGVjZTdiNTAwNDlkZTY5NWJlNGMzMTRlNjYzOGNjNzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2 IEF1ZyAyMDIwIDA0OjMxOjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCA4MS85OF0gZ25vbWUtYm94 ZXM6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxhdGUg fCA3ICsrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z25vbWUtYm94ZXMvdGVtcGxhdGUKaW5kZXggMGZhMmFlNzZjNzIuLmZkOGZlYmNiY2Q4IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUt Ym94ZXMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1ib3hlcycKIHBrZ25hbWU9Z25vbWUtYm94ZXMKLXZlcnNpb249My4zNi41Cit2ZXJzaW9uPTMu MzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24K QEAgLTgsNyArOCw4IEBAIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25m aWcgdmFsYSBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3RrLWRldmVsIGZyZWVy ZHAtZGV2ZWwgZ3RrLXZuYy1kZXZlbCBsaWJhcmNoaXZlLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBs aWJndWRldi1kZXZlbCBsaWJvc2luZm8tZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZGV2 ZWwKICBsaWJ1c2ItZGV2ZWwgbGlidmlydC1nbGliLWRldmVsIGxpYnhtbDItZGV2ZWwgc3BpY2Ut Z3RrLWRldmVsIHNwaWNlLXByb3RvY29sCi0gdHJhY2tlci1kZXZlbCB2YWxhLWRldmVsIHdlYmtp dDJndGstZGV2ZWwgdnRlMy1kZXZlbCIKKyB0cmFja2VyLWRldmVsIHZhbGEtZGV2ZWwgd2Via2l0 Mmd0ay1kZXZlbCB2dGUzLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsCisgbGliaGFuZHktZGV2 ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIGxpYm9z aW5mbyBsaWJ2aXJ0LWdsaWIgcWVtdSB0cmFja2VyIgogc2hvcnRfZGVzYz0iR05PTUUgMyBhcHBs aWNhdGlvbiB0byBhY2Nlc3MgcmVtb3RlIG9yIHZpcnR1YWwgc3lzdGVtcyIKIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0xNiw0ICsxNyw0IEBAIGxp Y2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9Cb3hlcyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQu Y29tL0dOT01FL2dub21lLWJveGVzL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTRjNTRjYWJlMzU1ZTg3OGQwNDU3NTE3MzQ2ZTQyNDdhODYwYjY4ODM0 MTNkM2JmNzc2ODFkY2QxMWVmNDFiY2UKK2NoZWNrc3VtPTEyMmRhMzkxMzFhY2I5NzFiM2U3NjQw MDZjNWMzNjk4NDQ3YTVkOTIyMGFhYjMzODNkYjYzYzA5MjlkZTkxNWQKCkZyb20gODJlZjdmMDJl ZWU0YzQ5OTczMGU5YzBmZGQ0ZTY3MTI1YmVhY2IwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYg QXVnIDIwMjAgMDQ6MzU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDgyLzk4XSBnbm9tZS1jYWxj dWxhdG9yOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLWNhbGN1bGF0b3Iv dGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNhbGN1bGF0b3IvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLWNhbGN1bGF0b3IvdGVtcGxhdGUKaW5kZXggMDYyMTRiMDhkOWIu LjgxMTEyODQ0YTRlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNhbGN1bGF0b3IvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY2FsY3VsYXRvcicKIHBrZ25hbWU9Z25vbWUt Y2FsY3VsYXRvcgotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy45MAor cmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogaG9zdG1h a2VkZXBlbmRzPSJjbWFrZSBnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZh bGEiCkBAIC0xNCw0ICsxNCw0IEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0NhbGN1bGF0b3IiCiBjaGFuZ2Vsb2c9Imh0 dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS1jYWxjdWxhdG9yL2du b21lLTMtMzIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWEyZTgzMGY5 Yzk4NTZmYWQ2NWRhZDFkNmMwYWU2YWJhZDBmMGI0OTZjOTk4NGFjMDA1MzE1YzVjYzQyMjBkYjMK K2NoZWNrc3VtPWI4OTViNWVjNjJiOTQ5NTgxMGIwYTZjYjkwMTU4ZTZkMTYwNzA5NmQxNTBiNGFj NWNkY2Y4YWVmY2VkZWQ0YzEKCkZyb20gNjVjZmE4ZGY5ZjA1Y2U3NGQ5Zjk3YzM2MDExMmRlZjg2 ZjMwZjI1NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NDQ6NTggKzAyMDAK U3ViamVjdDogW1BBVENIIDgzLzk4XSBnbm9tZS1kaXNrLXV0aWxpdHk6IHVwZGF0ZSB0byAzLjM3 LjIKCi0tLQogc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUt ZGlzay11dGlsaXR5L3RlbXBsYXRlCmluZGV4IGRjNjdiYmJhNzg1Li4xOTU1NjExODUwYiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1kaXNrLXV0aWxpdHknCiBwa2duYW1lPWdub21lLWRpc2stdXRpbGl0 eQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EbG9naW5kPW5vbmUiCiBob3N0 bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3RrLWRvYyBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYnhz bHQiCkBAIC0xMyw1ICsxMyw1IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvQXBwcy9EaXNrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTc5MWIxOGYyMzFiY2JjNmQ5NDFhZjM4MzdjYTViZTE0ZjIxNTdlNWNlM2QzMmJkYzVi OWViODk0N2UxMmI0MTQKK2NoZWNrc3VtPTFjOTk4ZjU1NGRmZWM4YjQyM2M2ODU4NzIzNTNhNWRi Y2Y2NThjOWY3YmE0NzdjYWM3NjhhOTI1NjM2NDMzMDgKIGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9t IGRiYjMzMzdjYzcyMzg5NGU0ZjYxOGVhZTI5NWIzOWMyNzc4MDcxYzcgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjQ5OjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCA4NC85OF0g Z25vbWUtc2NyZWVuc2hvdDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1z Y3JlZW5zaG90L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNjcmVl bnNob3QvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKaW5kZXgg OTljYWI2MmVlZTEuLjU0MTE2YWE4MWVjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNjcmVl bnNob3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCkBA IC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zY3JlZW5zaG90Jwog cGtnbmFtZT1nbm9tZS1zY3JlZW5zaG90Ci12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249MgordmVy c2lvbj0zLjM3LjkwCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBl bmRzPSJhcHBkYXRhLXRvb2xzIGdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWci Ci1tYWtlZGVwZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwiCittYWtlZGVwZW5kcz0ibGliY2FuYmVy cmEtZGV2ZWwgbGliaGFuZHkxLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgog c2hvcnRfZGVzYz0iU2NyZWVuc2hvdCBjYXB0dXJlIHV0aWxpdHkgZm9yIEdOT01FIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2du b21lLXNjcmVlbnNob3QiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMzQ5NWQ4 OTI3MDcxNzkyNTRiNzQzZjhmNzBjOWE4MmNkZTVjNWYyYzdlYTNkYjYzNGEyYmE3ZWE3MzMxMjY2 CitjaGVja3N1bT03YTM5Y2M3ODQ3YTQ4MmZhOWFhZDk4OWNlNjVkZjBlZjVlZTllZjc5YWNlZDc1 ZDE5MzFiN2U5ZTg2YzEwZjEzCgpGcm9tIGQ1NjMyNTRjMjhjMzBjNjRiNTY0ZjBmZDEwZjQxMWI4 ZTFjNGFlZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjUxOjAwICswMjAw ClN1YmplY3Q6IFtQQVRDSCA4NS85OF0gZ25vbWUtc3lzdGVtLW1vbml0b3I6IHVwZGF0ZSB0byAz LjM3LjkxCgotLS0KIHNyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUgfCA0ICsr LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKaW5kZXggZmYxMWIzNTkwYTQuLmNhMDE4N2M3 ZWFjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zeXN0ZW0tbW9uaXRvcicKIHBrZ25hbWU9Z25v bWUtc3lzdGVtLW1vbml0b3IKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzcuOTEKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWZhbHNl IgpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L3dpa2kuZ25vbWUub3JnL0FwcHMvU3lzdGVtTW9uaXRvciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTg2NmI0N2FiMGY0Yzc1YjBlYzU3ZDYzMDAzMzdhNzM3MzQ2M2FhYWQ1ZGY5 NWVkZGZlNTM1NGMyMmJlN2JjYTEKK2NoZWNrc3VtPTBkNzlhMThkZTVlOGNmNGJjNDk0NmNlZDVm Zjc4ZmE2NWZjYzJlMmRkNjMzODJiMDhlMzE0YzZmOTRkZjFlOTUKCkZyb20gNmI5N2ZiYTI5MTE5 NGRmNzkzYzExNGFkODcxNjg0NzViMWFjMjU5YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVn IDIwMjAgMDQ6NTY6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDg2Lzk4XSBndGtzb3VyY2V2aWV3 NDogdXBkYXRlIHRvIDQuNy45MAoKLS0tCiBzcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRl IHwgMjkgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBp bnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2d0a3Nv dXJjZXZpZXc0L3RlbXBsYXRlIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQppbmRl eCA2ODQ4NzE2NzczYy4uOTI2YTM5ZmQyMzkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Rrc291cmNl dmlldzQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQpAQCAt MSwzMiArMSwzNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3Rrc291cmNldmlldzQnCiBwa2du YW1lPWd0a3NvdXJjZXZpZXc0Ci12ZXJzaW9uPTQuMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTQu Ny45MAorcmV2aXNpb249MQogd3Jrc3JjPSJndGtzb3VyY2V2aWV3LSR7dmVyc2lvbn0iCi1idWls ZF9zdHlsZT1nbnUtY29uZmlndXJlCitidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJn aXIiCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtZ2xhZGUtY2F0YWxvZyAkKHZvcHRfZW5hYmxl IGdpciBpbnRyb3NwZWN0aW9uKQotICQodm9wdF9lbmFibGUgdmFsYSkgJCh2b3B0X2VuYWJsZSBn dGtfZG9jIGd0ay1kb2MpIgorY29uZmlndXJlX2FyZ3M9Ii1EZ2xhZGVfY2F0YWxvZz10cnVlICQo dm9wdF9ib29sIGdpciBnaXIpCisgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpICQodm9wdF9ib29sIGd0 a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGdsaWItZGV2ZWwg aXRzdG9vbCBsaWJ4c2x0IHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSAkKHZvcHRf aWYgZ3RrX2RvYyBndGstZG9jKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpICQodm9wdF9pZiBndGtf ZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9ImdsYWRlMy1kZXZlbCBndGsrMy1kZXZlbCBsaWJn bGliLWRldmVsIGxpYnhtbDItZGV2ZWwKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKKyAkKHZvcHRf aWYgZ2lyIHZhbGEpIgogc2hvcnRfZGVzYz0iVGV4dCB3aWRnZXQgdGhhdCBleHRlbmRzIEdUSysg R3RrVGV4dFZpZXcgd2lkZ2V0IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9HdGtTb3VyY2VWaWV3IgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9L2d0a3NvdXJjZXZpZXcvJHt2ZXJzaW9uJS4qfS9ndGtzb3VyY2V2aWV3LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzQzMWViMjM0ZGM4M2M3ODE5ZTU4Zjc3ZGQyYWY5NzMy NTJjNzc1MGRhMWM5ZDEyNWRkYzk0MjY4Zjk0ZjY3NQorY2hlY2tzdW09OTgzYmRjYjg4Zjk4Mjg1 YjNiOTk3YzkzMzUwNTdjOGZiYzQ1YWFkMGE3YzEzY2I2NWViMzY1NTY3ZTI2YmFhZgogCiAjIFBh Y2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEgZ3RrX2RvYyIKK2J1 aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgogZGVzY19vcHRpb25fZ3RrX2RvYz0iQnVpbGQgQVBJ IGRvY3MgdmlhIGd0ay1kb2MiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhl bgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBndGtfZG9jIgogZmkKIAorIyBOZWVkcyBYCitk b19jaGVjaygpIHsKKwk6Cit9CisKIGd0a3NvdXJjZXZpZXc0LWRldmVsX3BhY2thZ2UoKSB7CiAJ ZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4bWwyLWRldmVsICR7c291cmNl cGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1l bnQgZmlsZXMiCkBAIC0zNiwxMSArNDEsOSBAQCBndGtzb3VyY2V2aWV3NC1kZXZlbF9wYWNrYWdl KCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSB1c3Ivc2hhcmUvZ2xhZGUKIAkJ dm1vdmUgdXNyL3NoYXJlL2d0ay1kb2MKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0 aGVuCi0JCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQotCQlmaQogCQlpZiBbICIkYnVpbGRfb3B0aW9u X2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKKwkJCXZtb3ZlIHVzci9z aGFyZS92YWxhCiAJCWZpCiAJfQogfQoKRnJvbSA1YjkxNTliYWU1OGVmOGQ4MzgwZGQ0N2NkNmI0 M2VmMGQyMjUxMjIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToyMzozOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggODcvOThdIGdub21lLWJ1aWxkZXI6IHVwZGF0ZSB0byAzLjM3 LjkwCgpbY2kgc2tpcF0KLS0tCiAuLi4vZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4w LjAucGF0Y2ggfCAgMjIgLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUy LnBhdGNoICB8IDMzNCAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci90 ZW1wbGF0ZSAgICAgICAgICAgICAgICB8ICAxNSArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNl cnRpb25zKCspLCAzNjEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9n bm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaCBi L3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOWI0YTJiZjFhLi4wMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjIgKzAsMCBAQAotY29tbWl0IDQ0MTM2YTJlNWM1MjYyM2IwZTYyYzM4ODQ2 ZjUxMWYzMDc2MTVjZTIKLUF1dGhvcjogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KLURhdGU6 ICAgU3VuIE1heSAzIDE5OjUyOjA5IDIwMjAgKzAyMDAKLQotICAgIGZpeCBidWlsZCB3aXRoIGxp YmdpdDItMS4wLjAKLQotZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdp dC1yZXBvc2l0b3J5LWltcGwuYyBiL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBv c2l0b3J5LWltcGwuYwotaW5kZXggN2YwMTA0Mi4uMmNjYzRkZiAxMDA2NDQKLS0tLSBhL3NyYy9w bHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotKysrIGIvc3JjL3Bs dWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJlcG9zaXRvcnktaW1wbC5jCi1AQCAtMzMsMTEgKzMz LDcgQEAKLSAjaW5jbHVkZSAiaXBjLWdpdC10eXBlcy5oIgotICNpbmNsdWRlICJpcGMtZ2l0LXV0 aWwuaCIKLSAKLS0jaWYgTElCR0lUMl9TT1ZFUlNJT04gPj0gMjgKLSBHX0RFRklORV9BVVRPX0NM RUFOVVBfQ0xFQVJfRlVOQyAoZ2l0X2J1ZiwgZ2l0X2J1Zl9kaXNwb3NlKQotLSNlbHNlCi0tR19E RUZJTkVfQVVUT19DTEVBTlVQX0NMRUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZfZnJlZSkKLS0j ZW5kaWYKLSAKLSB0eXBlZGVmIGVudW0KLSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1 aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRj aGVzL21lc29uMDUyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGMyOGU4 MmMxZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVz b24wNTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMzQgKzAsMCBAQAotRnJvbSBjOGI4NjJi NDkxY2ZiYmI0Zjc5YjI0ZDdjZDkwZTRmYjFmMzdjYjlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogRGllZ28gRXNjYWxhbnRlIFVycmVsbyA8ZGllZ29lQGdub21lLm9yZz4KLURhdGU6 IEZyaSwgMjUgT2N0IDIwMTkgMDQ6NDk6MTUgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gV0lQOiBi dWlsZDogRml4IGxpbmtfd2hvbGUgdXNhZ2UgZm9yIG1lc29uIDAuNTIuMAotCi1NZXNvbiAwLjUy LjAgY2hhbmdlZCBob3cgbGlua193aG9sZSBiZWhhdmVzIGFuZCBpbiBkb2luZyBzbyBicm9rZSBv dXIKLXVzYWdlIG9mIGxpbmtfd2hvbGUgaW50ZXJuYWxseS4KLQotQSBxdWljayBnbGFuY2Ugb3Zl ciBtZXNvbmJ1aWxkL2JhY2tlbmQvbmluamFiYWNrZW5kLnB5IHNlZW1zIHRvIGNvbmZpcm0KLUNo cmlzdGlhbidzIHN1c3BpY2lvbiB0aGF0IGxpbmtfd2l0aCBpcyB3aGF0IHdlIHdhbnQgZm9yIGlu dGVybmFsIHVzZSwKLWFuZCBsaW5rX3dob2xlIGZvciB0aGUgZmluYWwgYmluYXJ5LgotCi1Zb3Ug Y2FuIHNlZSBzb21lIG1vcmUgcmVmZXJlbmNlcyB0byB0aGlzIGFuZCBzaW1pbGFyIGlzc3VlcyBp biB0aGUKLWZvbGxvd2luZyBqaGJ1aWxkIGNvbW1pdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9qaGJ1aWxkL2NvbW1pdC9kYmU2NzkwNDVmZjU5ODI1NzdmMjJlN2FmOGRjOGZkZmJk MWM2MzExCi0KLUZpeGVzOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYnVp bGRlci9pc3N1ZXMvMTA1NwotLS0tCi0gc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkICAgICAg IHwgIDIgKy0KLSBzcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQgICAgICAgfCAgMiArLQotIHNy Yy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQgICB8ICAyICstCi0gc3JjL2xpYmlkZS9lZGl0 b3IvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVp bGQgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCAgICB8ICAyICst Ci0gc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRl L2lvL21lc29uLmJ1aWxkICAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvbHNwL21lc29uLmJ1 aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkICAgIHwg IDIgKy0KLSBzcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9s aWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9zb3VyY2V2 aWV3L21lc29uLmJ1aWxkIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxk ICAgfCAgMiArLQotIHNyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0g c3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Ry ZWUvbWVzb24uYnVpbGQgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxk ICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQgICAgIHwgIDIg Ky0KLSBzcmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgfCAyNiArKysrKysrKysrKysr KysrKysrKysrKysrLQotIDIwIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDIwIGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkIGIv c3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi1pbmRleCBkZGFjZGMxNjIuLjFhNGZjNWQyNiAx MDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlk ZS9jb2RlL21lc29uLmJ1aWxkCi1AQCAtMTc1LDcgKzE3NSw3IEBAIGxpYmlkZV9jb2RlID0gc3Rh dGljX2xpYnJhcnkoJ2lkZS1jb2RlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX2Nv ZGVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGli aWRlX2NvZGVfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2NvZGVfZ2VuZXJhdGVkX2hlYWRlcnMs Ci0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29kZV9kZXBzLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX2NvZGUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVf Y29kZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwK LSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkIGIvc3JjL2xp YmlkZS9jb3JlL21lc29uLmJ1aWxkCi1pbmRleCAxZmE4MmZhZDkuLmJiNzVjYmYyNiAxMDA2NDQK LS0tLSBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9jb3Jl L21lc29uLmJ1aWxkCi1AQCAtMTE3LDcgKzExNyw3IEBAIGxpYmlkZV9jb3JlID0gc3RhdGljX2xp YnJhcnkoJ2lkZS1jb3JlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9jb3JlX3NvdXJj Ci0gbGliaWRlX2NvcmVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAg c291cmNlczogbGliaWRlX2NvcmVfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2NvcmVfZ2VuZXJh dGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29yZV9kZXBzLAot LSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2NvcmUsCi0rICAgICAgICAgICAgbGlua193 aXRoOiBsaWJpZGVfY29yZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0 b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNv bi5idWlsZCBiL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLWluZGV4IGRmZmNhMjBj YS4uYjVlNzJkNWMwIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWls ZAotKysrIGIvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0LDcg QEAgbGliaWRlX2RlYnVnZ2VyID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1kZWJ1Z2dlci0nICsgbGli aWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9kZWJ1Z2dlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVu Y3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZGVidWdnZXJfcHJpdmF0ZV9oZWFk ZXJzICsgbGliaWRlX2RlYnVnZ2VyX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVu ZGVuY2llczogbGliaWRlX2RlYnVnZ2VyX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBs aWJpZGVfZGVidWdnZXIsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZGVidWdnZXIs Ci0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQot IAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlk ZS9lZGl0b3IvbWVzb24uYnVpbGQKLWluZGV4IDI4Mzg0MjViNy4uODA4ZWQ3ODRmIDEwMDY0NAot LS0tIGEvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZWRp dG9yL21lc29uLmJ1aWxkCi1AQCAtMTA3LDcgKzEwNyw3IEBAIGxpYmlkZV9lZGl0b3IgPSBzdGF0 aWNfbGlicmFyeSgnaWRlLWVkaXRvci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfZWRp dG9yCi0gCi0gbGliaWRlX2VkaXRvcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAg ICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZWRpdG9yX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3do b2xlOiBsaWJpZGVfZWRpdG9yLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2VkaXRv ciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAg ICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9lZGl0b3JfZ2VuZXJhdGVkX2hlYWRlcnMsCi0g KQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvZm91bmRyeS9tZXNvbi5idWlsZAotaW5kZXggMjI2Mzk3YzE1Li5kNDg3OGFhMTEgMTAwNjQ0 Ci0tLS0gYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUv Zm91bmRyeS9tZXNvbi5idWlsZAotQEAgLTE3OCw3ICsxNzgsNyBAQCBsaWJpZGVfZm91bmRyeSA9 IHN0YXRpY19saWJyYXJ5KCdpZGUtZm91bmRyeS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIAot IGxpYmlkZV9mb3VuZHJ5X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBl bmRlbmNpZXM6IGxpYmlkZV9mb3VuZHJ5X2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBs aWJpZGVfZm91bmRyeSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9mb3VuZHJ5LAot ICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICAgICAg ICAgICAgICAgc291cmNlczogbGliaWRlX2ZvdW5kcnlfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gKQot ZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUv Z3JlZXRlci9tZXNvbi5idWlsZAotaW5kZXggMzk2OGNhNDFlLi4xMjFkNDk4ZDAgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZ3Jl ZXRlci9tZXNvbi5idWlsZAotQEAgLTgzLDcgKzgzLDcgQEAgbGliaWRlX2dyZWV0ZXIgPSBzdGF0 aWNfbGlicmFyeSgnaWRlLWdyZWV0ZXItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVf Z3JlZXRlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2Vz OiBsaWJpZGVfZ3JlZXRlcl9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfZ3JlZXRlcl9nZW5lcmF0 ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9ncmVldGVyX2RlcHMs Ci0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZ3JlZXRlciwKLSsgICAgICAgICAgICBs aW5rX3dpdGg6IGxpYmlkZV9ncmVldGVyLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVk ZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2d1aS9t ZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi1pbmRleCA5ZjQ2OWQyZmEu Ljk0MzExMjgyZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi0rKysg Yi9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotQEAgLTIwNCw3ICsyMDQsNyBAQCBsaWJpZGVf Z3VpID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1ndWktJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGli aWRlX2d1aV9zb3VyY2VzLAotIGxpYmlkZV9ndWlfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAot ICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2d1aV9wcml2YXRlX2hlYWRlcnMgKyBsaWJp ZGVfZ3VpX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRl X2d1aV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2d1aSwKLSsgICAgICAg ICAgICBsaW5rX3dpdGg6IGxpYmlkZV9ndWksCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNs dWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvaW8v bWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi1pbmRleCBiNWI2ZjRjNjgu LmY0OGIzYmQ4ZCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLSsrKyBi L3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLUBAIC02Myw3ICs2Myw3IEBAIGxpYmlkZV9pbyA9 IHN0YXRpY19saWJyYXJ5KCdpZGUtaW8tJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2lv X3NvdXJjZXMsCi0gCi0gbGliaWRlX2lvX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAg ICAgICBkZXBlbmRlbmNpZXM6IFsgbGliZ2lvX2RlcCwgbGliaWRlX2NvcmVfZGVwLCBsaWJpZGVf dGhyZWFkaW5nX2RlcCBdLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2lvLAotKyAg ICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2lvLAotICAgaW5jbHVkZV9kaXJlY3Rvcmllczog aW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRl L2xzcC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi1pbmRleCAyM2Fi YTc0ZmEuLmM4MTQwY2EwMyAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxk Ci0rKysgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0LDcgQEAgbGli aWRlX2xzcCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtbHNwLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24s IGxpYmlkZV9sc3Bfc291cmNlcywKLSBsaWJpZGVfbHNwX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9sc3BfcHJpdmF0ZV9oZWFkZXJzLAot ICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2xzcF9kZXBzLAotLSAgICAgICAgICAgbGlu a193aG9sZTogbGliaWRlX2xzcCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9sc3As Ci0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQot IAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotaW5kZXggYTMzYzUyOGM5Li5mZmY1OTlkYjMgMTAwNjQ0 Ci0tLS0gYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUv cGx1Z2lucy9tZXNvbi5idWlsZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3BsdWdpbnMgPSBz dGF0aWNfbGlicmFyeSgnaWRlLXBsdWdpbnMtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJp ZGVfcGx1Z2luc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3Vy Y2VzOiBsaWJpZGVfcGx1Z2luc19wcml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5j aWVzOiBsaWJpZGVfcGx1Z2luc19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRl X3BsdWdpbnMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfcGx1Z2lucywKLSAgIGlu Y2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZm IC0tZ2l0IGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvcHJv amVjdHMvbWVzb24uYnVpbGQKLWluZGV4IDQ2M2ZmMDZiYy4uM2NjOTcyNWM2IDEwMDY0NAotLS0t IGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9wcm9q ZWN0cy9tZXNvbi5idWlsZAotQEAgLTc5LDcgKzc5LDcgQEAgbGliaWRlX3Byb2plY3RzID0gc3Rh dGljX2xpYnJhcnkoJ2lkZS1wcm9qZWN0cy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVf cHIKLSBsaWJpZGVfcHJvamVjdHNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAg ICAgICAgc291cmNlczogbGliaWRlX3Byb2plY3RzX3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAg ICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9wcm9qZWN0c19kZXBzLAotLSAgICAgICAgICAgbGlua193 aG9sZTogbGliaWRlX3Byb2plY3RzLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3By b2plY3RzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicp LAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZCBiL3Ny Yy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi1pbmRleCBlNWIzYjQzYWIuLmNmNzNhYTkxZCAx MDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGli aWRlL3NlYXJjaC9tZXNvbi5idWlsZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3NlYXJjaCA9 IHN0YXRpY19saWJyYXJ5KCdpZGUtc2VhcmNoLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlk ZV9zZWFyY2gKLSAKLSBsaWJpZGVfc2VhcmNoX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAg ICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zZWFyY2hfZGVwcywKLS0gICAgICAgICAgIGxp bmtfd2hvbGU6IGxpYmlkZV9zZWFyY2gsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVf c2VhcmNoLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicp LAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQg Yi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLWluZGV4IGM0YmExMmQxZi4uOTk2 NDEyOThiIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi0r KysgYi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLUBAIC0xNTgsNyArMTU4LDcg QEAgbGliaWRlX3NvdXJjZXZpZXcgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXNvdXJjZXZpZXctJyAr IGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfc291cmNldmlld19kZXAgPSBkZWNsYXJlX2Rl cGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfc291cmNldmlld19wcml2 YXRlX2hlYWRlcnMgKyBsaWJpZGVfc291cmNldmlld19nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAg ICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zb3VyY2V2aWV3X2RlcHMsCi0tICAgICAgICAgICBs aW5rX3dob2xlOiBsaWJpZGVfc291cmNldmlldywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxp YmlkZV9zb3VyY2V2aWV3LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rv cmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29u LmJ1aWxkIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotaW5kZXggMWQ3YzlmNzI3 Li42YWZmY2FlMTQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxk Ci0rKysgYi9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi1AQCAtOTMsNyArOTMsNyBA QCBsaWJpZGVfdGVybWluYWwgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRlcm1pbmFsLScgKyBsaWJp ZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3Rlcm1pbmFsX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90ZXJtaW5hbF9nZW5lcmF0ZWRfaGVh ZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90ZXJtaW5hbF9kZXBzLAotLSAg ICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3Rlcm1pbmFsLAotKyAgICAgICAgICAgIGxpbmtf d2l0aDogbGliaWRlX3Rlcm1pbmFsLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9k aXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RoZW1lcy9t ZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi1pbmRleCA5ZDZjOGUy NDcuLmQ4ODNhNGI4NiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxk Ci0rKysgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAotQEAgLTQ2LDcgKzQ2LDcgQEAg bGliaWRlX3RoZW1lcyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGhlbWVzLScgKyBsaWJpZGVfYXBp X3ZlcnNpb24sCi0gbGliaWRlX3RoZW1lc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAg ICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhlbWVzX3Jlc291cmNlc1sxXSwKLSAgICAgICAg ICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90aGVtZXNfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hv bGU6IGxpYmlkZV90aGVtZXMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdGhlbWVz LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkK LSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZCBiL3NyYy9s aWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi1pbmRleCBkMzhkZGZiNjQuLmQ2MjhiZTJmZiAx MDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi0rKysgYi9zcmMv bGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotQEAgLTY2LDcgKzY2LDcgQEAgbGliaWRlX3Ro cmVhZGluZyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGhyZWFkaW5nLScgKyBsaWJpZGVfYXBpX3Zl cnNpb24sIGxpYmlkZV8KLSBsaWJpZGVfdGhyZWFkaW5nX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90aHJlYWRpbmdfcHJpdmF0ZV9oZWFk ZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RocmVhZGluZ19kZXBzLAotLSAg ICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3RocmVhZGluZywKLSsgICAgICAgICAgICBsaW5r X3dpdGg6IGxpYmlkZV90aHJlYWRpbmcsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRl X2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdHJlZS9t ZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotaW5kZXggN2I5OTIyODI4 Li41YTU5MTEwNmMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLSsr KyBiL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotQEAgLTYxLDcgKzYxLDcgQEAgbGliaWRl X3RyZWUgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRyZWUtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwg bGliaWRlX3RyZWVfc291cmMKLSBsaWJpZGVfdHJlZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdHJlZV9wcml2YXRlX2hlYWRlcnMsCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdHJlZV9kZXBzLAotLSAgICAgICAgICAgbGlu a193aG9sZTogbGliaWRlX3RyZWUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdHJl ZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAp Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRl L3Zjcy9tZXNvbi5idWlsZAotaW5kZXggNmIwZTE1N2M0Li5jNzYyYWZiNjQgMTAwNjQ0Ci0tLS0g YS9zcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS92Y3MvbWVzb24u YnVpbGQKLUBAIC04NCw3ICs4NCw3IEBAIGxpYmlkZV92Y3MgPSBzdGF0aWNfbGlicmFyeSgnaWRl LXZjcy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIAotIGxpYmlkZV92Y3NfZGVwID0gZGVjbGFy ZV9kZXBlbmRlbmN5KAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3Zjc19kZXBzLAot LSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3ZjcywKLSsgICAgICAgICAgICBsaW5rX3dp dGg6IGxpYmlkZV92Y3MsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9y aWVzKCcuJyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdmNzX2dlbmVyYXRlZF9o ZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZCBi L3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi1pbmRleCBlMTc2N2FlNDYuLmZjZTQ3N2Iz NiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi0rKysgYi9zcmMv bGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotQEAgLTM5LDcgKzM5LDcgQEAgbGliaWRlX3dlYmtp dCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtd2Via2l0LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxp YmlkZV93ZWJraXQKLSAKLSBsaWJpZGVfd2Via2l0X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgK LSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV93ZWJraXRfZGVwcywKLS0gICAgICAgICAg IGxpbmtfd2hvbGU6IGxpYmlkZV93ZWJraXQsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJp ZGVfd2Via2l0LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmllcygn LicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3dlYmtpdF9nZW5lcmF0ZWRfaGVh ZGVycywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL21lc29uLmJ1aWxkIGIvc3JjL21lc29uLmJ1aWxk Ci1pbmRleCAzZWI5YmE1MzUuLjExM2ExNDJhZCAxMDA2NDQKLS0tLSBhL3NyYy9tZXNvbi5idWls ZAotKysrIGIvc3JjL21lc29uLmJ1aWxkCi1AQCAtNDgsNiArNDgsMzAgQEAgZ25vbWVfYnVpbGRl cl9kZXBzID0gWwotICAgbGliaWRlX3RyZWVfZGVwLAotIF0KLSAKLStnbm9tZV9idWlsZGVyX3N0 YXRpYyA9IFsKLSsgIGxpYmlkZV9jb2RlLAotKyAgbGliaWRlX2NvcmUsCi0rICBsaWJpZGVfZGVi dWdnZXIsCi0rICBsaWJpZGVfZWRpdG9yLAotKyAgbGliaWRlX2ZvdW5kcnksCi0rICBsaWJpZGVf Z3JlZXRlciwKLSsgIGxpYmlkZV9ndWksCi0rICBsaWJpZGVfaW8sCi0rICBsaWJpZGVfbHNwLAot KyAgbGliaWRlX3BsdWdpbnMsCi0rICBsaWJpZGVfcHJvamVjdHMsCi0rICBsaWJpZGVfc2VhcmNo LAotKyAgbGliaWRlX3NvdXJjZXZpZXcsCi0rICBsaWJpZGVfdGVybWluYWwsCi0rICBsaWJpZGVf dGhlbWVzLAotKyAgbGliaWRlX3RocmVhZGluZywKLSsgIGxpYmlkZV90cmVlLAotKyAgbGliaWRl X3ZjcywKLSsgIGxpYmlkZV93ZWJraXQsCi0rCi0rICBwbHVnaW5zLAotK10KLSsKLSBpZiBsaWJz eXNwcm9mX2NhcHR1cmUuZm91bmQoKQotICAgZ25vbWVfYnVpbGRlcl9kZXBzICs9IGxpYnN5c3By b2ZfY2FwdHVyZQotIGVuZGlmCi1AQCAtNzcsNyArMTAxLDcgQEAgZ25vbWVfYnVpbGRlciA9IGV4 ZWN1dGFibGUoJ2dub21lLWJ1aWxkZXInLCAnbWFpbi5jJywgJ2J1Zy1idWRkeS5jJywKLSAgICAg ICAgICAgICBjX2FyZ3M6IGxpYmlkZV9hcmdzICsgZXhlX2NfYXJncyArIHJlbGVhc2VfYXJncywK LSAgICAgICAgICBsaW5rX2FyZ3M6IGV4ZV9saW5rX2FyZ3MsCi0gICAgICAgICAgICAgICAgcGll OiB0cnVlLAotLSAgICAgICAgbGlua193aG9sZTogcGx1Z2lucywKLSsgICAgICAgIGxpbmtfd2hv bGU6IGdub21lX2J1aWxkZXJfc3RhdGljLAotICAgICAgaW5zdGFsbF9ycGF0aDogcGtnbGliZGly X2FicywKLSAgICAgICBkZXBlbmRlbmNpZXM6IGdub21lX2J1aWxkZXJfZGVwcywKLSApCi0tLSAK LTIuMjQuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUgYi9z cmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXggOGM4YzAxNWQ4YTMuLjA5NjgwMjdh NjdiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtYnVpbGRlcicKIHBrZ25hbWU9Z25vbWUtYnVpbGRlcgotdmVyc2lvbj0z LjM0LjEKLXJldmlzaW9uPTYKK3ZlcnNpb249My4zNy45MAorcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0iLUR3aXRoX3dlYmtp dD10cnVlIC1Ed2l0aF9zeXNwcm9mPXRydWUgLURoZWxwPXRydWUiCkBAIC0xMSwxNSArMTEsMTUg QEAgbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIGNsYW5nIGRldmhlbHAtZGV2ZWwgZW5jaGFudDIt ZGV2ZWwgZmxhdHBhay1kZXZlbAogIGdzcGVsbC1kZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbCBn dGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwganNvbnJwYy1nbGliLWRldmVsCiAgbGliZGF6emxl LWRldmVsIGxpYmdpdDItZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYm9zdHJlZS1kZXZlbCBs aWJwZWFzLWRldmVsCiAgbGlieG1sMi1kZXZlbCB0ZW1wbGF0ZS1nbGliLWRldmVsIHZhbGEtZGV2 ZWwgdnRlMy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCi0gcHl0aG9uMy1nb2JqZWN0LWRldmVsIHN5 c3Byb2YtZGV2ZWwgZ2xhZGUzLWRldmVsIgorIHB5dGhvbjMtZ29iamVjdC1kZXZlbCBzeXNwcm9m LWRldmVsIGdsYWRlMy1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZp bGUtdXRpbHMgZmxhdHBhay1idWlsZGVyIHB5dGhvbjMtbHhtbCBkZXZoZWxwIHB5dGhvbjMtZ29i amVjdCIKIHNob3J0X2Rlc2M9IklERSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQnVpbGRlciIKLWNoYW5nZWxvZz0i aHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxkZXIvcmF3L2dub21lLWJ1 aWxkZXItMy0zNC9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvZ25vbWUtYnVpbGRlci9yYXcvZ25vbWUtYnVpbGRlci0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0wYjZlNDYxMDU3ZWE4MTUxZTgwNTI0YzBlYTdlZjFjYjk0 OGU5MmFmZGE5ZGM2YmQzM2FlMzM5MmYwNDUwMWE0CitjaGVja3N1bT03ODA4OWNmMzlkZGU0ZWNm MWI1MTI3MzBiZGY0Yzc2OTEwNDc2NDk1YzRkYWI3MGMxNDA4NmJhZjdhYjhlZmMyCiBwYXRjaF9h cmdzPSItTnAxIgogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KQEAgLTI4LDMgKzI4 LDggQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJCUxJQlMrPSIgLWxleGVjaW5m byIKIAkJOzsKIGVzYWMKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwkjIHRoaXMgdGVzdCBuZWVkcyBY CisJdnNlZCAtaSAicy90ZXN0KCd0ZXN0LXRleHQtaXRlcicvIyYvIiBzcmMvdGVzdHMvbWVzb24u YnVpbGQKK30KCkZyb20gY2FjZjZlMTBiMWE1ODQ3MThlOWY1NGJjYjdhNTNlNGVjNjNhYmE1MyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMTg6MjQ6MDIgKzAyMDAKU3ViamVjdDog W1BBVENIIDg4Lzk4XSBhZHdhaXRhLWljb24tdGhlbWU6IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQog c3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRo ZW1lL3RlbXBsYXRlCmluZGV4IGZlYmQyOTE1YmU2Li42Y2QyYmRiZTcwZiAxMDA2NDQKLS0tIGEv c3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hZHdhaXRh LWljb24tdGhlbWUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdhZHdhaXRhLWljb24tdGhlbWUnCiBwa2duYW1lPWFkd2FpdGEtaWNvbi10aGVtZQotdmVyc2lv bj0zLjM2LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBhcmNocz1u b2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyIKQEAgLTExLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMy4wLW9yLWxhdGVyLCBDQy1CWS1TQS0zLjAi CiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2Fkd2FpdGEtaWNvbi10 aGVtZSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU0OTg1MTg2MjcwNDRkZmQ3 ZGI3ZDc5YTViM2Q0Mzc4NDhjYWYxOTkxZWY0ZWYwMzZhMmQzYTJhYzJjMWYxNGQKK2NoZWNrc3Vt PWE1OTRlNzQ0MDk3MWY4NjBjYzYxYjFiODI5MWJlMTVmZmMxYjhkZDA2YTlmMTE0ODVhNWE3ZmFm MTg5YmNmNmIKCkZyb20gNTU5ZDE0NjdhMGU0MTJmMmMxZDEwOTk0MTk2YmI5YzQxMmIxZDk1OCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMTk6NTc6NDMgKzAyMDAKU3ViamVjdDog W1BBVENIIDg5Lzk4XSBnbm9tZS1iYWNrZ3JvdW5kczogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBz cmNwa2dzL2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMv dGVtcGxhdGUKaW5kZXggMGIxZWU0MjczNTMuLmYxZjQ5ZGE5MzhlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYmFja2dy b3VuZHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1iYWNrZ3JvdW5kcycKIHBrZ25hbWU9Z25vbWUtYmFja2dyb3VuZHMKLXZlcnNpb249My4zNi4w Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBi dWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPWdldHRleHQKQEAgLTEwLDQgKzEwLDQg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIsIENDLUJZLTIuMCwgQ0MtQlktU0EtMi4wLCBDQy1CWS1TQS0z LjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJhY2tn cm91bmRzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjhjYjgxZTRjZjlkMDg1 ZmJiMjM1NDA2MzViNDkyZDVjMTI0YTFmODYxMWMyYWE5YWM2Mzg0MTExZDc3YmIwYgorY2hlY2tz dW09NGEyY2I4NmZmOTZhNjUwZWIwNDEwMWMyYTFiYjBhZWZjMDNiMzU4NzdmNDIzMTMxMzc4ZjRj MGZkZjAzZGI2OAoKRnJvbSBkZTQ0MjY1NDI3OWE2MjkwOGQ4Y2I1NTdmOWQxNzdkOTI4NmM3Mjhj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMTowNToxMSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggOTAvOThdIHBvbGFyaTogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBzcmNwa2dzL3Bv bGFyaS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvbGFyaS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvcG9sYXJpL3RlbXBsYXRlCmluZGV4IDA3NjdiYWM5N2I4Li40MWQwOGVlODFiNSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9wb2xhcmkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wb2xhcmkvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwb2xhcmknCiBwa2du YW1lPXBvbGFyaQotdmVyc2lvbj0zLjM2LjMKK3ZlcnNpb249My4zNy4zCiByZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGl0c3Rvb2wgZ29i amVjdC1pbnRyb3NwZWN0aW9uIGdldHRleHQiCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50YWluZXI9 Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Qb2xhcmkiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00ZjI2NjQ3ZTk4MWM1ZDBiZjQyZGY1ODJhZGFj MjBiYmZkYWNkZmU4YzRmZTE1MGFmMGNhMDNkMmUwY2VmNTNhCitjaGVja3N1bT03OTA1YjlkZGIz ZjgxMWRjYzIzYjMwNzUwMTE4N2VhZDRkZGM3OGVkMGE2NTI5YWZjZGRjYjk0NDNiYTEyOTA4CiAK IGlmIFsgIiRDUk9TU19CVUlMRCIgXSA7IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgZ2xpYi1k ZXZlbCBwcmVsaW5rLWNyb3NzIHFlbXUtdXNlci1zdGF0aWMiCgpGcm9tIGUzMmQ5MzBiMGU3ZmE1 OWMxZTczY2IyNTZhNDljZGZhYThiZWU0M2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAy MDIwIDIxOjEwOjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCA5MS85OF0gZ3ZmczogdXBkYXRlIHRv IDEuNDUuOTAKCi0tLQogc3JjcGtncy9ndmZzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ3Zmcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQppbmRleCAxMjdhMDU3Nzkw MS4uMTY5MWQ1MzZkMWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2d2ZnMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdndmZzJwogcGtnbmFtZT1ndmZzCi12ZXJzaW9uPTEuNDQuMQordmVyc2lvbj0xLjQ1LjkwCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZHVz ZXJ1bml0ZGlyPW5vIC1EdG1wZmlsZXNkaXI9bm8gLURsb2dpbmQ9ZmFsc2UKQEAgLTIwLDcgKzIw LDcgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtp Lmdub21lLm9yZy9Qcm9qZWN0cy9ndmZzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvZ3Zmcy9yYXcvZ25vbWUtMy0zNC9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09NTBlZjMyNDVkMWIwMzY2NmE0MDQ1NTEwOTE2OWEyYTFiZDUxNDE5ZmQy ZDUxZjlmYTZjZmQ0Zjg5ZjA0ZmI0NgorY2hlY2tzdW09ZGUxZjU2YWM0YmNiY2ViNzc3YWE3MmY2 N2VlNWY1NzRhZjYzNjIxODJhYjFjODA5N2RhNjU3ZTNkZGVhZGU4NwogCiAjIE1hbnVhbGx5IGRl Y2xhcmUgc2hsaWJzIHVzZWQgYnkgdGhlIHN1YnBrZ3MuCiBzaGxpYl9wcm92aWRlcz0ibGliZ3Zm c2NvbW1vbi5zbyBsaWJndmZzZGFlbW9uLnNvIgoKRnJvbSBlYmFkOGY3Y2ZlOWFhNzlkZTJjNWRj Y2VkNjQ1MDkzOTQ1ODFhZTdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMTox Njo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggOTIvOThdIGxpYnNvdXA6IHVwZGF0ZSB0byAyLjcx LjAKCi0tLQogc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlIHwgMjMgKysrKysrKysrKysrKy0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYnNvdXAv dGVtcGxhdGUKaW5kZXggZjdhOTgzNzNhYzguLmZkY2UxZGIzMTZlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2xpYnNvdXAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlCkBAIC0x LDE2ICsxLDE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJzb3VwJwogcGtnbmFtZT1saWJz b3VwCi12ZXJzaW9uPTIuNzAuMAordmVyc2lvbj0yLjcxLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGdzc2FwaT1k aXNhYmxlZCAtRG50bG09ZGlzYWJsZWQKK2NvbmZpZ3VyZV9hcmdzPSItRGdzc2FwaT1kaXNhYmxl ZCAtRG50bG09ZGlzYWJsZWQgLUR0bHNfY2hlY2s9ZmFsc2UKICAtRGludHJvc3BlY3Rpb249JCh2 b3B0X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKQotIC1EdmFwaT0kKHZvcHRfaWYgdmFsYSBlbmFi bGVkIGRpc2FibGVkKSAtRHRsc19jaGVjaz1mYWxzZSIKKyAtRHZhcGk9JCh2b3B0X2lmIGdpciBl bmFibGVkIGRpc2FibGVkKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dC1kZXZlbCBnbGliLWRl dmVsIHBrZy1jb25maWcgZ2V0dGV4dAotICQodm9wdF9pZiB2YWxhICd2YWxhJykiCisgJCh2b3B0 X2lmIGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwg c3FsaXRlLWRldmVsIGxpYnBzbC1kZXZlbAotIGJyb3RsaS1kZXZlbCAkKHZvcHRfaWYgdmFsYSAn dmFsYS1kZXZlbCcpIgorIGJyb3RsaS1kZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgog ZGVwZW5kcz0iZ2xpYi1uZXR3b3JraW5nIgogc2hvcnRfZGVzYz0iSFRUUCBsaWJyYXJ5IGltcGxl bWVudGF0aW9uIGluIEMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgpAQCAtMTgsMTEgKzE4LDE2IEBAIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvbGlic291cCIKIGNoYW5n ZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2xpYnNvdXAvZ25v bWUtMy0zNi9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTRiMDIwZjc0 YWVmYTQzODkxOGQ4ZTUzY2ZmNjJlMmIxZTU5ZWZlMmRlNTNlMDZiMTlhNGIwN2IxZjRkNTM0Mgor Y2hlY2tzdW09ODhlMjRmYWQ3MmQxNmUxY2I2OTJjODc4MjY4OGRiZWU0YmY0NDE1MWVmYjBkOWVk MjViMTRmMzg0OWQ5ODk2ZQogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9u cz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0 aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCisKKyMgZ2lvIHRlc3RzIGNh bid0IHJ1biBpbiBjaHJvb3QKK2RvX2NoZWNrKCkgeworCToKK30KIAogbGlic291cC1kZXZlbF9w YWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9IGxpYnNvdXA+PSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCkBAIC0zMSw4ICszNiw2IEBAIGxpYnNvdXAtZGV2ZWxfcGFja2FnZSgpIHsK IAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcvbGlic291cC0yLjQucGMKIAkJaWYgWyAiJGJ1aWxk X29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wL1NvdXAtMi40 LmdpcgotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3Zl IHVzci9zaGFyZS92YWxhCiAJCWZpCiAJCXZtb3ZlIHVzci9pbmNsdWRlL2xpYnNvdXAtMi40CgpG cm9tIGNlMDA2ODkzMzQ1N2JhN2IwZDRmN2MwYTk1YmM4NDI3ZGZjNjdhZjIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIwOjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA5My85 OF0gcnlnZWw6IHVwZGF0ZSB0byAwLjM5LjIKCi0tLQogc3JjcGtncy9yeWdlbC90ZW1wbGF0ZSB8 IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcnlnZWwv dGVtcGxhdGUKaW5kZXggZDI4ZGJjMmNlMDguLmJkZWRkM2M2Yzg3IDEwMDY0NAotLS0gYS9zcmNw a2dzL3J5Z2VsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdyeWdlbCcKIHBrZ25hbWU9cnlnZWwKLXZlcnNp b249MC4zOC4zCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTAuMzkuMgorcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZXhhbXBs ZXM9ZmFsc2UgLUR0ZXN0cz1mYWxzZQpAQCAtOSwxNCArOSwxNCBAQCBjb25maWd1cmVfYXJncz0i LURleGFtcGxlcz1mYWxzZSAtRHRlc3RzPWZhbHNlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25m aWcgZ2xpYi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9InNxbGl0ZS1kZXZlbCBndGsrMy1kZXZl bCBsaWJzb3VwLWRldmVsIGxpYmdlZTA4LWRldmVsCiAgZ3VwbnAtYXYtZGV2ZWwgZ3VwbnAtZGxu YS1kZXZlbCB0cmFja2VyLWRldmVsIGxpYm1lZGlhYXJ0LWRldmVsCi0gZ3NzZHAtZGV2ZWwiCisg Z3NzZHAtZGV2ZWwgZ3N0MS1lZGl0aW5nLXNlcnZpY2VzLWRldmVsIgogZGVwZW5kcz0iaGljb2xv ci1pY29uLXRoZW1lIGRlc2t0b3AtZmlsZS11dGlscyIKIHNob3J0X2Rlc2M9IkdOT01FIGhvbWUg bWVkaWEgc29sdXRpb24iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtp Lmdub21lLm9yZy9Qcm9qZWN0cy9SeWdlbCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTA4YzIxYTU3N2Y3YmRhZDI2NDQ2YTc1ZmZhMzI3NzhiMjY4NDJjM2IxMTg4MTY1ZjBiMTk4 MTg1NTk3NDdkMDAKK2NoZWNrc3VtPTQ1M2YxY2U3ODJhNTFiYWU4Zjc3NmE5MmY3MGQyMzM2MjVj OThhMWM0Y2QyZWMzYjQ1NDVjYjdlNzc3MzM2NjQKIAogY29uZl9maWxlcz0iL2V0Yy9yeWdlbC5j b25mIgogCgpGcm9tIDUwMTg4YjY3NWI5NTM5MDg3ZGNjODI5NTFmNTM1N2VjMTkzNTc4ZWYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIzOjI0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCA5NC85OF0gc2ltcGxlLXNjYW46IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQogc3JjcGtncy9z aW1wbGUtc2Nhbi90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NpbXBsZS1zY2Fu L3RlbXBsYXRlIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQppbmRleCA0YWUzYjg2NDNm ZC4uNmUxN2E2ZWZiNGEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxhdGUK KysrIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDYgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3NpbXBsZS1zY2FuJwogcGtnbmFtZT1zaW1wbGUtc2NhbgotX2dub21l X3ZlcnNpb249My4zNgotdmVyc2lvbj0zLjM2LjQKK3ZlcnNpb249My4zNy4zCiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwg aXRzdG9vbCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xMSw1ICsxMCw1IEBAIHNob3J0X2Rlc2M9IkdU SyBTaW1wbGUgc2Nhbm5pbmcgdXRpbGl0eSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9zaW1wbGUtc2NhbiIKLWRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7X2dub21lX3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NmFmMTgyOTFhNzc2M2Y3NjNkYTVmMGVkZWQyNDdk MmY4ZWJmOTExMmMyODZlZjg5MDEzMzc0OTY5ZmVmNTI1CitkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi CitjaGVja3N1bT1mNWQ4OTczYzZiNDgzZDUwZDlhYzA4YWU2YzA4MDJhN2E2YmIyNTg1MzhhODE0 NzI2NmU3M2FhNDUxZWVkOTUyCgpGcm9tIGUxYjFlM2QxODMyNzhlMTQ5YWU5MWVjZjRiZGRlMmU3 YzMyZWVlMGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjI1OjE1ICswMjAw ClN1YmplY3Q6IFtQQVRDSCA5NS85OF0geWVscC14c2w6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0K IHNyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwLXhz bC90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUKaW5kZXggZjc0YTdmYmE2N2Mu LjEwNzRlNmMzMTkwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICd5ZWxwLXhzbCcKIHBrZ25hbWU9eWVscC14c2wKLXZlcnNpb249My4zNi4wCit2ZXJz aW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9Z251LWNv bmZpZ3VyZQpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvWWVscC9Yc2wiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT00ZmU1MWMwMjMzYjc5YTRjMjA0YzY4NDk4ZDQ1ZjA5YjM0MmMzMGVkMDJj NGU0MTg1MDZjMGUzNWYwOTA0ZWMzCitjaGVja3N1bT1lOGNhOWNhZjU3MjlmOGRlNTAzNDlmZWZh MmYyYTY2ODBlMDQ5Mjk4YjdhYjg0OWQ0ZWZlNDk4M2M0M2E5NGY0CgpGcm9tIDI5YmUwMTUzNDI5 NTA0NzNmMzNlMmU4YzdlMGQ5NmU4ZTY0Zjg5MDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1 ZyAyMDIwIDIxOjI1OjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCA5Ni85OF0geWVscDogdXBkYXRl IHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy95ZWxwL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MveWVscC90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC90ZW1wbGF0ZQppbmRleCA2M2NhN2My MjVjOC4uNWE0N2E4ZTJiZGIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveWVscC90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3llbHAvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICd5ZWxwJwogcGtnbmFtZT15ZWxwCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM3Ljkw CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0i LS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGljIgpAQCAtMTMsNyArMTMs NyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvWWVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWZkNGIzZTIzZDMx YWQyYmViZTQyYWM4ZjgwMjQyYjJkOWJlZjUxNDE4YmY2MmI1OWFjZGYyNDQwYmQ5NGVkMjQKK2No ZWNrc3VtPWRhYzNkMmIxNGZiZmNlZTQ3MzJkNGU4YTdmOGExMDhhODhlODUzY2EwNWYwNzFkOTg4 YTVhOGUxODVlNWFiZDIKIAogeWVscC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9InllbHAt JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gNWExMWUzZDczY2JiN2U1ZmNhMzFmNGMxMGVk NzY2NzY1MGVkZmRiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjY6NDcg KzAyMDAKU3ViamVjdDogW1BBVENIIDk3Lzk4XSB5ZWxwLXRvb2xzOiB1cGRhdGUgdG8gMy4zNy45 MAoKW2NpIHNraXBdCi0tLQogc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBsYXRlIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC10b29scy90ZW1w bGF0ZQppbmRleCA5ZThhNjcwZTZiMC4uYTFlYzlmN2U2ZWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv eWVscC10b29scy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKQEAg LTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXRvb2xzJwogcGtnbmFtZT15 ZWxwLXRvb2xzCi12ZXJzaW9uPTMuMzIuMgordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBh cmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEyLDQgKzEyLDQgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5nbm9tZS5vcmciCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xODM4NTZiNWVkMGIwYmIyYzA1ZGQxMjA0YWYw MjM5NDZlZDQzNjk0M2UzNWU3ODlhZmIwMjk1ZTVlNzFlOGY5CitjaGVja3N1bT1kMDcwMjU4OWM4 MjM4YTIxNTk1NGNhY2E5NGE5NjRiM2EwZDE2NDY2Nzk4YThjMWQ2NDRkZDY2YzI0OTJmMmJiCgpG cm9tIDIyZmIyMGQ0NDJjNDAxNjRjY2NkNGQyMDFhNjMwNDYwOGUxYjIwZmIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUdWUsIDE4IEF1ZyAyMDIwIDA1OjM1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCA5OC85 OF0gYnVkZ2llLWRlc2t0b3A6IHJlYnVpbGQgZm9yIG11dHRlci03CgpbY2kgc2tpcF0KLS0tCiAu Li4vYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggICAgfCAxMzQ3MiArKysr KysrKysrKysrKysrCiBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAg ICAgfCAgICAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAxMzQ3MyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRj aGVzL2dub21lLTMzOC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3Av cGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMv Z25vbWUtMzM4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45 MmZhNzZhMTdiMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0 Y2hlcy9nbm9tZS0zMzgucGF0Y2gKQEAgLTAsMCArMSwxMzQ3MiBAQAorRnJvbSAzMGJhMGI1YTQ5 ODZkNmJlMzY4N2ExZDdmYjQ4MjkwNjE4NWVhOGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogRGF2aWQgTW9oYW1tZWQgPGZvc3NmcmVlZG9tQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNv bT4KK0RhdGU6IFR1ZSwgMTggRmViIDIwMjAgMDY6NDA6MTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRD SF0gZ25vbWUgMy4zOCBjb21wYXRpYmlsaXR5CisKK1NxdWFzaGVkIGJ5IEBxNjYgZnJvbToKKwor aHR0cHM6Ly9naXRodWIuY29tL3NvbHVzLXByb2plY3QvYnVkZ2llLWRlc2t0b3AvcHVsbC8xOTg3 CisKK3BsdXMgYW4gYXNzb3J0bWVudCBvZiBvbGRlciBtdXR0ZXIgdXBkYXRlcyBmcm9tIGdpdCBt YXN0ZXIKKy0tLQorIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMTYgKy0KKyBtZXNvbl9vcHRpb25zLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAxIC0KKyBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEgICAgICAg ICAgfCAgICA2IC0KKyBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQgICAgICAgICAgICAg ICAgfCAgIDEzICstCisgc3JjL3dtL2JhY2tncm91bmQudmFsYSAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxNSArLQorIHNyYy93bS9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMzAgKy0KKyBzcmMvd20vc2hpbS52YWxhICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEwICstCisgc3JjL3dtL3dtLnZhbGEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAxMCArLQorIC4uLntDbHV0dGVyLTUubWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1l dGFkYXRhfSB8ICAgIDAKKyAuLi57Q2x1dHRlci00Lm1ldGFkYXRhID0+IENsdXR0ZXItNy5tZXRh ZGF0YX0gfCAgIDQzIC0KKyB2YXBpL3tDb2dsLTQubWV0YWRhdGEgPT4gQ29nbC02Lm1ldGFkYXRh fSAgICAgfCAgICAwCisgdmFwaS97Q29nbC01Lm1ldGFkYXRhID0+IENvZ2wtNy5tZXRhZGF0YX0g ICAgIHwgICAgMiAtCisgdmFwaS9NZXRhLTMubWV0YWRhdGEgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA2NiAtCisgdmFwaS97TWV0YS01Lm1ldGFkYXRhID0+IE1ldGEtNi5tZXRhZGF0YX0g ICAgIHwgICAgMAorIHZhcGkve01ldGEtNC5tZXRhZGF0YSA9PiBNZXRhLTcubWV0YWRhdGF9ICAg ICB8ICAgMjUgKy0KKyB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoICAgICAgICAgICAgICAg ICAgfCAgICAyICstCisgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpICAgICAgICAgICAg ICAgIHwgIDY5MSArKysrKysrCisgdmFwaS9saWJtdXR0ZXItMi5kZXBzICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgOSAtCisgdmFwaS9saWJtdXR0ZXItMi52YXBpICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTMyNSAtLS0tLS0tLS0tLS0tLQorIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9t LnZhbGEgICAgICAgICAgICAgICAgICB8ICAgIDYgLQorIHZhcGkvbGlibXV0dGVyLTMuZGVwcyAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgLQorIHZhcGkvbGlibXV0dGVyLTQuZGVwcyAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggLQorIHZhcGkvbGlibXV0dGVyLTQudmFwaSAg ICAgICAgICAgICAgICAgICAgICAgICB8IDE0MjUgLS0tLS0tLS0tLS0tLS0tCisgdmFwaS97bGli bXV0dGVyLTUuZGVwcyA9PiBsaWJtdXR0ZXItNi5kZXBzfSAgIHwgICAgMyArLQorIHZhcGkve2xp Ym11dHRlci01LnZhcGkgPT4gbGlibXV0dGVyLTYudmFwaX0gICB8ICAgNDUgKy0KKyB2YXBpL2xp Ym11dHRlci03LWN1c3RvbS52YWxhICAgICAgICAgICAgICAgICAgfCAgICA3ICsKKyB2YXBpL2xp Ym11dHRlci03LmRlcHMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsKKyB2YXBpL3ts aWJtdXR0ZXItMy52YXBpID0+IGxpYm11dHRlci03LnZhcGl9ICAgfCAgMzkwICsrLS0KKyB2YXBp L2xpYm11dHRlci1jb2dsLTQudmFwaSAgICAgICAgICAgICAgICAgICAgfCAxMjcyIC0tLS0tLS0t LS0tLS0KKyB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEgICAgICAgICAgICAgfCAg MTU4IC0tCisgLi4uc3RvbS52YWxhID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9IHwg ICAxMSAtCisgLi4uci1jbHV0dGVyLTUuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci02LmRlcHN9IHwg ICAgMiArLQorIC4uLnItY2x1dHRlci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52YXBpfSB8 ICA4MDYgKystLS0tLS0KKyAuLi5yLWNsdXR0ZXItNC5kZXBzID0+IG11dHRlci1jbHV0dGVyLTcu ZGVwc30gfCAgICAzICstCisgLi4uci1jbHV0dGVyLTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03 LnZhcGl9IHwgMTYxNSArKysrLS0tLS0tLS0tLS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0 ZXItY29nbC02LWN1c3RvbS52YWxhfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNC5kZXBzID0+ IG11dHRlci1jb2dsLTYuZGVwc30gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTUudmFwaSA9PiBt dXR0ZXItY29nbC02LnZhcGl9IHwgIDQyMiArLS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0 ZXItY29nbC03LWN1c3RvbS52YWxhfSB8ICAgMjAgKy0KKyAuLi57bXV0dGVyLWNvZ2wtNS5kZXBz ID0+IG11dHRlci1jb2dsLTcuZGVwc30gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTQudmFwaSA9 PiBtdXR0ZXItY29nbC03LnZhcGl9IHwgIDY3MSArKystLS0tCisgdmFwaS9wb2xraXQtZ29iamVj dC0xLnZhcGkgICAgICAgICAgICAgICAgICAgIHwgICAzMSArLQorIDQyIGZpbGVzIGNoYW5nZWQs IDE5MjAgaW5zZXJ0aW9ucygrKSwgNzI1NCBkZWxldGlvbnMoLSkKKyByZW5hbWUgdmFwaS97Q2x1 dHRlci01Lm1ldGFkYXRhID0+IENsdXR0ZXItNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZh cGkve0NsdXR0ZXItNC5tZXRhZGF0YSA9PiBDbHV0dGVyLTcubWV0YWRhdGF9ICg3OCUpCisgcmVu YW1lIHZhcGkve0NvZ2wtNC5tZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICgxMDAlKQorIHJl bmFtZSB2YXBpL3tDb2dsLTUubWV0YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAoOTElKQorIGRl bGV0ZSBtb2RlIDEwMDY0NCB2YXBpL01ldGEtMy5tZXRhZGF0YQorIHJlbmFtZSB2YXBpL3tNZXRh LTUubWV0YWRhdGEgPT4gTWV0YS02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97TWV0 YS00Lm1ldGFkYXRhID0+IE1ldGEtNy5tZXRhZGF0YX0gKDc2JSkKKyBjcmVhdGUgbW9kZSAxMDA2 NDQgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZh cGkvbGlibXV0dGVyLTIuZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0y LnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQor IGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0zLmRlcHMKKyBkZWxldGUgbW9kZSAx MDA2NDQgdmFwaS9saWJtdXR0ZXItNC5kZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGli bXV0dGVyLTQudmFwaQorIHJlbmFtZSB2YXBpL3tsaWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRl ci02LmRlcHN9ICg1MCUpCisgcmVuYW1lIHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0 dGVyLTYudmFwaX0gKDk3JSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNy1j dXN0b20udmFsYQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03LmRlcHMKKyBy ZW5hbWUgdmFwaS97bGlibXV0dGVyLTMudmFwaSA9PiBsaWJtdXR0ZXItNy52YXBpfSAoNzUlKQor IGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaQorIGRlbGV0ZSBt b2RlIDEwMDY0NCB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEKKyByZW5hbWUgdmFw aS97bXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYSA9PiBtdXR0ZXItY2x1dHRlci02LWN1c3Rv bS52YWxhfSAoOTIlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LmRlcHMgPT4gbXV0 dGVyLWNsdXR0ZXItNi5kZXBzfSAoNjMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01 LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52YXBpfSAoOTMlKQorIHJlbmFtZSB2YXBpL3ttdXR0 ZXItY2x1dHRlci00LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNy5kZXBzfSAoNTQlKQorIHJlbmFt ZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNy52YXBpfSAo ODYlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01LWN1c3RvbS52YWxhID0+IG11dHRlci1j b2dsLTYtY3VzdG9tLnZhbGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LmRl cHMgPT4gbXV0dGVyLWNvZ2wtNi5kZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNv Z2wtNS52YXBpID0+IG11dHRlci1jb2dsLTYudmFwaX0gKDY4JSkKKyByZW5hbWUgdmFwaS97bXV0 dGVyLWNvZ2wtNC1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52YWxhfSAoODEl KQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBz fSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2ds LTcudmFwaX0gKDU5JSkKKworZGlmZiAtLWdpdCBtZXNvbi5idWlsZCBtZXNvbi5idWlsZAoraW5k ZXggMmEwZTAzMTYuLjNjNGM2YWMxIDEwMDY0NAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24u YnVpbGQKK0BAIC0zMiwxNiArMzIsMTYgQEAgYW1fY2ZsYWdzID0gWworIGFkZF9nbG9iYWxfYXJn dW1lbnRzKGFtX2NmbGFncywgbGFuZ3VhZ2U6ICdjJykKKyBtZXNvbi5hZGRfaW5zdGFsbF9zY3Jp cHQoJ21lc29uX3Bvc3RfaW5zdGFsbC5zaCcpCisgCistIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVt IDMuMjIgR05PTUUgc3RhY2sKKy1nbm9tZV9taW5pbXVtX3ZlcnNpb24gPSAnPj0gMy4yMi4wJwor KyMgQnVkZ2llIG5lZWRzIGEgbWluaW11bSAzLjI0IEdOT01FIHN0YWNrCisrZ25vbWVfbWluaW11 bV92ZXJzaW9uID0gJz49IDMuMjQuMCcKKyAKKyBkZXBfZ3RrMyA9IGRlcGVuZGVuY3koJ2d0ayst My4wJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorLWRlcF9nbGliID0gZGVwZW5k ZW5jeSgnZ2xpYi0yLjAnLCB2ZXJzaW9uOiAnPj0gMi40Ni4wJykKKy1kZXBfZ2lvdW5peCA9IGRl cGVuZGVuY3koJ2dpby11bml4LTIuMCcsIHZlcnNpb246ICc+PSAyLjQ2LjAnKQorLWRlcF9wZWFz ID0gZGVwZW5kZW5jeSgnbGlicGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS44LjAnKQorK2RlcF9n bGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAnLCB2ZXJzaW9uOiAnPj0gMi42Mi4wJykKKytkZXBf Z2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11bml4LTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAn KQorK2RlcF9wZWFzID0gZGVwZW5kZW5jeSgnbGlicGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4y NC4wJykKKyBkZXBfZ2RreDExID0gZGVwZW5kZW5jeSgnZ2RrLXgxMS0zLjAnLCB2ZXJzaW9uOiBn bm9tZV9taW5pbXVtX3ZlcnNpb24pCisgZGVwX2xpYnV1aWQgPSBkZXBlbmRlbmN5KCd1dWlkJykK Ky1kZXBfdmFsYSA9IGRlcGVuZGVuY3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40MC4wJykK KytkZXBfdmFsYSA9IGRlcGVuZGVuY3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40Ni4wJykK KyAKKyAjIE5lZWRlZCBmb3Iga2V5Ym9hcmR5IGJpdHMKKyBkZXBfaWJ1cyA9IGRlcGVuZGVuY3ko J2lidXMtMS4wJywgdmVyc2lvbjogJz49IDEuNS4xMCcpCitAQCAtNTEsMTAgKzUxLDEwIEBAIGRl cF9nc2V0dGluZ3MgPSBkZXBlbmRlbmN5KCdnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJywgdmVy c2lvbjogZ25vbWVfbWluaW11bV92CisgZGVwX2dzZCA9IGRlcGVuZGVuY3koJ2dub21lLXNldHRp bmdzLWRhZW1vbicsIHZlcnNpb246ICc+PTMuMjguMCcpCisgCisgIyB3bmNrIHVzZWQgYWxsIG92 ZXIgdGhlIHBsYWNlLi4KKy1kZXBfd25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVy c2lvbjogJz49IDMuMTQuMCcpCisrZGVwX3duY2sgPSBkZXBlbmRlbmN5KCdsaWJ3bmNrLTMuMCcs IHZlcnNpb246ICc+PSAzLjMyLjAnKQorIAorICMgYWNjb3VudHNzZXJ2aWNlIGluIG11bHRpcGxl IGFwcGxldHMKKy1kZXBfYWNjb3VudHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgnYWNjb3VudHNzZXJ2 aWNlJywgdmVyc2lvbjogJz49IDAuNi40MCcpCisrZGVwX2FjY291bnRzc2VydmljZSA9IGRlcGVu ZGVuY3koJ2FjY291bnRzc2VydmljZScsIHZlcnNpb246ICc+PSAwLjYuNTUnKQorIAorICMgQ3Jl YXRlIGNvbmZpZy5oCisgY2RhdGEgPSBjb25maWd1cmF0aW9uX2RhdGEoKQorZGlmZiAtLWdpdCBt ZXNvbl9vcHRpb25zLnR4dCBtZXNvbl9vcHRpb25zLnR4dAoraW5kZXggZDcxYjA5YjUuLmRjYTkx Mjk2IDEwMDY0NAorLS0tIG1lc29uX29wdGlvbnMudHh0CisrKysgbWVzb25fb3B0aW9ucy50eHQK K0BAIC0xLDUgKzEsNCBAQAorIG9wdGlvbignd2l0aC1zdGF0ZWxlc3MnLCB0eXBlOiAnYm9vbGVh bicsIHZhbHVlOiBmYWxzZSwgZGVzY3JpcHRpb246ICdFbmFibGUgc3RhdGVsZXNzIFhERyBwYXRo cycpCisgb3B0aW9uKCd3aXRoLXBvbGtpdCcsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUs IGRlc2NyaXB0aW9uOiAnRW5hYmxlIFBvbEtpdCBzdXBwb3J0JykKKy1vcHRpb24oJ3dpdGgtYmx1 ZXRvb3RoJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbmFi bGUgZ25vbWUtYmx1ZXRvb3RoIHN1cHBvcnQnKQorIG9wdGlvbignd2l0aC1ndGstZG9jJywgdHlw ZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdCdWlsZCBndGstZG9jIGRv Y3VtZW50YXRpb24nKQorIG9wdGlvbignd2l0aC1kZXNrdG9wLWljb25zJywgdHlwZTogJ2NvbWJv JywgY2hvaWNlczogWyduYXV0aWx1cycsICdub25lJ10sIHZhbHVlOiAnbmF1dGlsdXMnLCBkZXNj cmlwdGlvbjogJ0Rlc2t0b3AgaWNvbiBoYW5kbGluZycpCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRz L3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0 LnZhbGEKK2luZGV4IGI5ODI2Mzk0Li43MWYyODdjOSAxMDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9z dGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKKysrKyBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBw bGV0LnZhbGEKK0BAIC0yMCw5ICsyMCw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBC dWRnaWUuQXBwbGV0CisgeworIAorICAgICBwcm90ZWN0ZWQgR3RrLkJveCB3aWRnZXQ7CistI2lm IFdJVEhfQkxVRVRPT1RICisgICAgIHByb3RlY3RlZCBCbHVldG9vdGhJbmRpY2F0b3IgYmx1ZTsK Ky0jZW5kaWYKKyAgICAgcHJvdGVjdGVkIFNvdW5kSW5kaWNhdG9yIHNvdW5kOworICAgICBwcm90 ZWN0ZWQgUG93ZXJJbmRpY2F0b3IgcG93ZXI7CisgICAgIHByb3RlY3RlZCBHdGsuRXZlbnRCb3g/ IHdyYXA7CitAQCAtNjgsMTIgKzY2LDEwIEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBC dWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlzLnNldHVwX3BvcG92ZXIocG93ZXIuZWJveCwgcG93 ZXIucG9wb3Zlcik7CisgICAgICAgICB0aGlzLnNldHVwX3BvcG92ZXIoc291bmQuZWJveCwgc291 bmQucG9wb3Zlcik7CisgCistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgICAgICBibHVlID0gbmV3 IEJsdWV0b290aEluZGljYXRvcigpOworICAgICAgICAgd2lkZ2V0LnBhY2tfc3RhcnQoYmx1ZSwg ZmFsc2UsIGZhbHNlLCAyKTsKKyAgICAgICAgIGJsdWUuc2hvd19hbGwoKTsKKyAgICAgICAgIHRo aXMuc2V0dXBfcG9wb3ZlcihibHVlLmVib3gsIGJsdWUucG9wb3Zlcik7CistI2VuZGlmCisgICAg IH0KKyAKKyAgICAgcHVibGljIG92ZXJyaWRlIHZvaWQgcGFuZWxfcG9zaXRpb25fY2hhbmdlZChC dWRnaWUuUGFuZWxQb3NpdGlvbiBwb3NpdGlvbikKK0BAIC05MSw5ICs4Nyw3IEBAIHB1YmxpYyBj bGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlzLm1hbmFnZXIg PSBtYW5hZ2VyOworICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHBvd2VyLmVib3gs IHBvd2VyLnBvcG92ZXIpOworICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHNvdW5k LmVib3gsIHNvdW5kLnBvcG92ZXIpOworLSNpZiBXSVRIX0JMVUVUT09USAorICAgICAgICAgbWFu YWdlci5yZWdpc3Rlcl9wb3BvdmVyKGJsdWUuZWJveCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYK KyAgICAgfQorIH0gLy8gRW5kIGNsYXNzCisgCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1 cy9tZXNvbi5idWlsZCBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKK2luZGV4IDY5OWZi OGY0Li5iNGQyNzA2YyAxMDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQK KysrKyBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKK0BAIC0xMCw2ICsxMCw3IEBAIGN1 c3RvbV90YXJnZXQoJ3BsdWdpbi1maWxlLXN0YXR1cycsCisgICAgIGluc3RhbGxfZGlyIDogYXBw bGV0X3N0YXR1c19kaXIpCisgCisgYXBwbGV0X3N0YXR1c19zb3VyY2VzID0gWworKyAgICAnQmx1 ZXRvb3RoSW5kaWNhdG9yLnZhbGEnLAorICAgICAnU3RhdHVzQXBwbGV0LnZhbGEnLAorICAgICAn UG93ZXJJbmRpY2F0b3IudmFsYScsCisgICAgICdTb3VuZEluZGljYXRvci52YWxhJywKK0BAIC0y MCwyMiArMjEsMTMgQEAgYXBwbGV0X3N0YXR1c19kZXBzID0gWworICAgICBkZXBfZ3RrMywKKyAg ICAgZGVwX3BlYXMsCisgICAgIGRlcF9hY2NvdW50c3NlcnZpY2UsCisrICAgIGRlcGVuZGVuY3ko J2dub21lLWJsdWV0b290aC0xLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pLAor ICAgICBkZXBlbmRlbmN5KCd1cG93ZXItZ2xpYicsIHZlcnNpb246ICc+PSAwLjk5LjAnKSwKKyAg ICAgbGlua19saWJwbHVnaW4sCisgICAgIGd2Yy5nZXRfdmFyaWFibGUoJ2xpYmd2Y19kZXAnKSwK KyAgICAgbWVzb24uZ2V0X2NvbXBpbGVyKCdjJykuZmluZF9saWJyYXJ5KCdtJywgcmVxdWlyZWQ6 IGZhbHNlKSwKKyBdCisgCistIyBCbHVldG9vdGggaXMgb3B0aW9uYWwgdG8gYWxsb3cgc21hbGxl ciBidWlsZHMKKy13aXRoX2JsdWV0b290aCA9IGdldF9vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJykK Ky1hcHBsZXRfc3RhdHVzX3ZhbGFfYXJncyA9IFtdCistCistaWYgd2l0aF9ibHVldG9vdGggPT0g dHJ1ZQorLSAgICBhcHBsZXRfc3RhdHVzX2RlcHMgKz0gZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRv b3RoLTEuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKy0gICAgYXBwbGV0X3N0 YXR1c19zb3VyY2VzICs9ICdCbHVldG9vdGhJbmRpY2F0b3IudmFsYScKKy0gICAgYXBwbGV0X3N0 YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdXSVRIX0JMVUVUT09USCddCistZW5kaWYKKy0KKyBz aGFyZWRfbGlicmFyeSgKKyAgICAgJ3N0YXR1c2FwcGxldCcsCisgICAgIGFwcGxldF9zdGF0dXNf c291cmNlcywKK0BAIC01MCw3ICs0Miw2IEBAIHNoYXJlZF9saWJyYXJ5KAorICAgICAgICAgJy0t cGtnJywgJ2d2Yy0xLjAnLAorICAgICAgICAgJy0tcGtnJywgJ2dpby11bml4LTIuMCcsCisgICAg ICAgICAnLS12YXBpZGlyJywgam9pbl9wYXRocyhtZXNvbi5zb3VyY2Vfcm9vdCgpLCAndmFwaScp LAorLSAgICAgICAgYXBwbGV0X3N0YXR1c192YWxhX2FyZ3MsCisgICAgIF0sCisgICAgIGluc3Rh bGw6IHRydWUsCisgICAgIGluc3RhbGxfZGlyOiBhcHBsZXRfc3RhdHVzX2RpciwKK2RpZmYgLS1n aXQgc3JjL3dtL2JhY2tncm91bmQudmFsYSBzcmMvd20vYmFja2dyb3VuZC52YWxhCitpbmRleCAw ODRhYTlhYi4uYjMzMWUwYzQgMTAwNjQ0CistLS0gc3JjL3dtL2JhY2tncm91bmQudmFsYQorKysr IHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKK0BAIC0yMDQsOCArMjA0LDEzIEBAIHB1YmxpYyBjbGFz cyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRlci5BY3RvcgorIAorICAgICAgICAgdmFyIGFjdG9y ID0gbmV3IE1ldGEuQmFja2dyb3VuZEFjdG9yKGRpc3BsYXksIGluZGV4KTsKKyAgICAgICAgIHZh ciBiYWNrZ3JvdW5kID0gbmV3IE1ldGEuQmFja2dyb3VuZChkaXNwbGF5KTsKKysjaWYgSEFWRV9N VVRURVJfNgorICAgICAgICAgYWN0b3Iuc2V0X2JhY2tncm91bmQoYmFja2dyb3VuZCk7CistCisr I2Vsc2UKKysgICAgICAgIHZhciBjb250ZW50ID0gYWN0b3IuZ2V0X2NvbnRlbnQoKTsKKysgICAg ICAgIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kQ29udGVudCBiYWNrZ3JvdW5kX2NvbnRlbnQgPSAo TWV0YS5CYWNrZ3JvdW5kQ29udGVudCkgY29udGVudDsKKysgICAgICAgIGJhY2tncm91bmRfY29u dGVudC5zZXRfYmFja2dyb3VuZChiYWNrZ3JvdW5kKTsKKysjZW5kaWYKKyAgICAgICAgIHJlY3Qg PSBkaXNwbGF5LmdldF9tb25pdG9yX2dlb21ldHJ5KGluZGV4KTsKKyAgICAgICAgIGFjdG9yLnNl dF9zaXplKHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTsKKyAgICAgICAgIGFjdG9yLnNldCgib3Bh Y2l0eSIsIDApOworQEAgLTIyMSwxMyArMjI2LDIxIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNr Z3JvdW5kIDogQ2x1dHRlci5BY3RvcgorICAgICAgICAgc2hhZGluZ19kaXJlY3Rpb24gPSAoR0Rl c2t0b3AuQmFja2dyb3VuZFNoYWRpbmcpc2V0dGluZ3MuZ2V0X2VudW0oQ09MT1JfU0hBRElOR19U WVBFX0tFWSk7CisgICAgICAgICB2YXIgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhQ UklNQVJZX0NPTE9SX0tFWSk7CisgICAgICAgICBpZiAoY29sb3Jfc3RyICE9IG51bGwgJiYgY29s b3Jfc3RyICE9ICIiKSB7CisrI2lmIEhBVkVfTVVUVEVSXzYKKyAgICAgICAgICAgICBwcmltYXJ5 X2NvbG9yID0gQ2x1dHRlci5Db2xvci5mcm9tX3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisr ICAgICAgICAgICAgQ2x1dHRlci5Db2xvci5mcm9tX3N0cmluZyhvdXQgcHJpbWFyeV9jb2xvciwg Y29sb3Jfc3RyKTsKKysjZW5kaWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAg ICAgICAgfQorIAorICAgICAgICAgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhTRUNP TkRBUllfQ09MT1JfS0VZKTsKKyAgICAgICAgIGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xv cl9zdHIgIT0gIiIpIHsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgICAgIHNlY29uZGFy eV9jb2xvciA9IENsdXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcoY29sb3Jfc3RyKTsKKysjZWxzZQor KyAgICAgICAgICAgIENsdXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcob3V0IHNlY29uZGFyeV9jb2xv ciwgY29sb3Jfc3RyKTsKKysjZW5kaWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOwor ICAgICAgICAgfQorIAorZGlmZiAtLWdpdCBzcmMvd20vbWVzb24uYnVpbGQgc3JjL3dtL21lc29u LmJ1aWxkCitpbmRleCBlMzliODY3OC4uNTgzY2U3OTAgMTAwNjQ0CistLS0gc3JjL3dtL21lc29u LmJ1aWxkCisrKysgc3JjL3dtL21lc29uLmJ1aWxkCitAQCAtMTcsMjAgKzE3LDE4IEBAIGJ1ZGdp ZV93bV9zb3VyY2VzID0gWworIAorIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzID0gW10KKyAK Ky12YXBpX211dHRlciA9ICdsaWJtdXR0ZXItMycKKy1kZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgn bGlibXV0dGVyLTMnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24sIHJlcXVpcmVkOiBm YWxzZSkKKy1pZiBub3QgZGVwX211dHRlci5mb3VuZCgpCistICAgIGRlcF9tdXR0ZXIgPSBkZXBl bmRlbmN5KCdsaWJtdXR0ZXItNCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVx dWlyZWQ6IGZhbHNlKQorK2RlcF9ncmFwaGVuZSA9IGRlcGVuZGVuY3koJ2dyYXBoZW5lLWdvYmpl Y3QtMS4wJywgdmVyc2lvbjogJz49IDEuMTAnKQorK2RlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCds aWJtdXR0ZXItNycsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZh bHNlKQorK2lmIGRlcF9tdXR0ZXIuZm91bmQoKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFf YXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVSXzcnXQorKyAgICBtZXNzYWdlKCdVc2luZyBuZXcg bGlibXV0dGVyLTcgQUJJIGZyb20gR05PTUUgMy4zOCcpCisrICAgIHZhcGlfbXV0dGVyID0gJ2xp Ym11dHRlci03JworK2Vsc2UKKysgICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRl ci02JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorKyAgICBidWRnaWVfd21fc3Rh dHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVSXzYnXQorICAgICBpZiBkZXBfbXV0 dGVyLmZvdW5kKCkKKy0gICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNCBBQkkg ZnJvbSBHTk9NRSAzLjMyJykKKy0gICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci00Jwor LSAgICBlbHNlCistICAgICAgICBkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTUn LCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCistICAgICAgICBpZiBkZXBfbXV0dGVy LmZvdW5kKCkKKy0gICAgICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTUgQUJJ IGZyb20gR05PTUUgMy4zNCcpCistICAgICAgICAgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVy LTUnCistICAgICAgICAgICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdI QVZFX01VVFRFUl81J10KKy0gICAgICAgIGVuZGlmCisrICAgICAgICBtZXNzYWdlKCdVc2luZyBu ZXcgbGlibXV0dGVyLTYgQUJJIGZyb20gR05PTUUgMy4zNicpCisrICAgICAgICB2YXBpX211dHRl ciA9ICdsaWJtdXR0ZXItNicKKyAgICAgZW5kaWYKKyBlbmRpZgorIAorQEAgLTQyLDggKzQwLDgg QEAgYnVkZ2llX3dtX2RlcHMgPSBbCisgICAgIGRlcF9pYnVzLAorIF0KKyAKKy1pZiBkZXBfZ3Nk LnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4zMS45MScpCistICAgIGJ1ZGdpZV93bV9z dGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFWRV9HU0RfMzMyJ10KKytpZiBkZXBfZ3NkLnZl cnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4zNi4wJykKKysgICAgYnVkZ2llX3dtX3N0YXR1 c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX0dTRF9TVVBQT1JURUQnXQorIGVuZGlmCisgCisg YnVkZ2llX3dtX3ZhbGFfYXJncyA9ICBbCitAQCAtNjAsNyArNTgsNyBAQCBidWRnaWVfd21fdmFs YV9hcmdzID0gIFsKKyAKKyBycGF0aCA9ICcnCisgCistaWYgZGVwX211dHRlci52ZXJzaW9uKCku dmVyc2lvbl9jb21wYXJlKCc+PTMuMjguMCcpCisraWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVy c2lvbl9jb21wYXJlKCc+PTMuMzYuMCcpCisgICAgIHJwYXRoID0gZGVwX211dHRlci5nZXRfcGtn Y29uZmlnX3ZhcmlhYmxlKCd0eXBlbGliZGlyJykKKyAgICAgYnVkZ2llX3dtX3ZhbGFfYXJncyAr PSBbJy0tZ2lyZGlyJywgcnBhdGhdCisgZW5kaWYKK2RpZmYgLS1naXQgc3JjL3dtL3NoaW0udmFs YSBzcmMvd20vc2hpbS52YWxhCitpbmRleCA0Y2RmYTBiMC4uZmMyNGIyODkgMTAwNjQ0CistLS0g c3JjL3dtL3NoaW0udmFsYQorKysrIHNyYy93bS9zaGltLnZhbGEKK0BAIC0xNCw3ICsxNCw3IEBA IG5hbWVzcGFjZSBCdWRnaWUgeworIHB1YmxpYyBzdHJ1Y3QgR3NkQWNjZWwgeworICAgICBzdHJp bmcgYWNjZWxlcmF0b3I7CisgICAgIHVpbnQgZmxhZ3M7CistI2lmIEhBVkVfR1NEXzMzMgorKyNp ZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFn czsKKyAjZW5kaWYKKyB9CitAQCAtMTkzLDExICsxOTMsNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxT aGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgIG9zZF9wcm94eSA9IG51bGw7CisgICAgIH0KKyAK Ky0jaWYgSEFWRV9NVVRURVJfNQorICAgICBwcml2YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0 aXZhdGVkKHVpbnQgYWN0aW9uLCBDbHV0dGVyLklucHV0RGV2aWNlIGRldiwgdWludCBkZXZpY2Vf aWQpCistI2Vsc2UKKy0gICAgcHJpdmF0ZSB2b2lkIG9uX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCh1 aW50IGFjdGlvbiwgdWludCBkZXZpY2VfaWQpCistI2VuZGlmCisgICAgIHsKKyAgICAgICAgIEhh c2hUYWJsZTxzdHJpbmcsVmFyaWFudD4gcGFyYW1zID0gbmV3IEhhc2hUYWJsZTxzdHJpbmcsVmFy aWFudD4oc3RyX2hhc2gsIHN0cl9lcXVhbCk7CisgCitAQCAtMjMwLDcgKzIyNiw3IEBAIHB1Ymxp YyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9iamVjdAorICAgICAgICAgfQorICAgICB9CisgCist I2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgcHJpdmF0ZSB1 aW50IF9ncmFiKHN0cmluZyBzZW5kZXIsIHN0cmluZyBzZXEsIHVpbnQgZmxhZywgTWV0YS5LZXlC aW5kaW5nRmxhZ3MgZ3JhYl9mbGFncykKKyAgICAgeworICAgICAgICAgdmFyIHJldCA9IGRpc3Bs YXkuZ3JhYl9hY2NlbGVyYXRvcihzZXEsIGdyYWJfZmxhZ3MpOworQEAgLTI3Myw3ICsyNjksNyBA QCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgICAgICBvbl9i dXNfYWNxdWlyZWQsIG51bGwsIG51bGwpOworICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgor KyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgcHVibGljIHVpbnQgR3JhYkFjY2VsZXJhdG9y KEJ1c05hbWUgc2VuZGVyLCBzdHJpbmcgYWNjZWxlcmF0b3IsIHVpbnQgZmxhZ3MsIE1ldGEuS2V5 QmluZGluZ0ZsYWdzIGdyYWJfZmxhZ3MpCisgICAgIHsKKyAgICAgICAgIHJldHVybiBfZ3JhYihz ZW5kZXIsIGFjY2VsZXJhdG9yLCBmbGFncywgZ3JhYl9mbGFncyk7CitkaWZmIC0tZ2l0IHNyYy93 bS93bS52YWxhIHNyYy93bS93bS52YWxhCitpbmRleCBmZWU4OTQ0My4uYmNjZjNiOTUgMTAwNjQ0 CistLS0gc3JjL3dtL3dtLnZhbGEKKysrKyBzcmMvd20vd20udmFsYQorQEAgLTEzNyw4ICsxMzcs OCBAQCBwdWJsaWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICBwdWJsaWMgc3Rh dGljIHN0cmluZ1tdPyBvbGRfYXJnczsKKyAgICAgcHVibGljIHN0YXRpYyBib29sIHdheWxhbmQg PSBmYWxzZTsKKyAKKy0gICAgc3RhdGljIENsdXR0ZXIuUG9pbnQgUFZfQ0VOVEVSOworLSAgICBz dGF0aWMgQ2x1dHRlci5Qb2ludCBQVl9OT1JNOworKyAgICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQg UFZfQ0VOVEVSOworKyAgICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfTk9STTsKKyAKKyAgICAg cHJpdmF0ZSBNZXRhLkJhY2tncm91bmRHcm91cD8gYmFja2dyb3VuZF9ncm91cDsKKyAKK0BAIC0x NzEsMTAgKzE3MSwxMCBAQCBwdWJsaWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAg ICAgICAgICAgIGxpY2Vuc2UgPSAiR1BMLTIuMCIsCisgICAgICAgICAgICAgZGVzY3JpcHRpb24g PSAiQnVkZ2llIFdpbmRvdyBNYW5hZ2VyIgorICAgICAgICAgfTsKKy0gICAgICAgIFBWX0NFTlRF UiA9IENsdXR0ZXIuUG9pbnQuYWxsb2MoKTsKKysgICAgICAgIFBWX0NFTlRFUiA9IEdyYXBoZW5l LlBvaW50KCk7CisrICAgICAgICBQVl9OT1JNID0gR3JhcGhlbmUuUG9pbnQoKTsKKyAgICAgICAg IFBWX0NFTlRFUi54ID0gMC41ZjsKKyAgICAgICAgIFBWX0NFTlRFUi55ID0gMC41ZjsKKy0gICAg ICAgIFBWX05PUk0gPSBDbHV0dGVyLlBvaW50LmFsbG9jKCk7CisgICAgICAgICBQVl9OT1JNLngg PSAwLjBmOworICAgICAgICAgUFZfTk9STS55ID0gMC4wZjsKKyAgICAgfQorQEAgLTEwMDEsNyAr MTAwMSw3IEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICB0 aWxlX3ByZXZpZXcuc2V0KCJzY2FsZS14IiwgTk9USUZJQ0FUSU9OX01BUF9TQ0FMRV9YLCAic2Nh bGUteSIsIE5PVElGSUNBVElPTl9NQVBfU0NBTEVfWSwKKyAgICAgICAgICAgICAicGl2b3QtcG9p bnQiLCBQVl9DRU5URVIpOworIAorLSAgICAgICAgdGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rv cik7CisrICAgICAgICAvL3RpbGVfcHJldmlldy5sb3dlcih3aW5fYWN0b3IpOworICAgICAgICAg dGlsZV9wcmV2aWV3LnRpbGVfcmVjdCA9IHRpbGVfcmVjdDsKKyAKKyAgICAgICAgIHRpbGVfcHJl dmlldy5zaG93KCk7CitkaWZmIC0tZ2l0IHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRhIHZhcGkvQ2x1 dHRlci02Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkv Q2x1dHRlci01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9DbHV0dGVyLTYubWV0YWRhdGEKK2Rp ZmYgLS1naXQgdmFwaS9DbHV0dGVyLTQubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTcubWV0YWRhdGEK K3NpbWlsYXJpdHkgaW5kZXggNzglCityZW5hbWUgZnJvbSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0 YQorcmVuYW1lIHRvIHZhcGkvQ2x1dHRlci03Lm1ldGFkYXRhCitpbmRleCA1YzIxMmU4NS4uMTg1 NTI3NGQgMTAwNjQ0CistLS0gdmFwaS9DbHV0dGVyLTQubWV0YWRhdGEKKysrKyB2YXBpL0NsdXR0 ZXItNy5tZXRhZGF0YQorQEAgLTEsMTMgKzEsMTAgQEAKKyAvLyBOb24gbWluaS1vYmplY3QKKyBB Y3RvckJveCBzdHJ1Y3QKKyBDb2xvciBzdHJ1Y3QKKy1Gb2cgc3RydWN0CistR2VvbWV0cnkgc3Ry dWN0CisgS25vdCBzdHJ1Y3QKKyBQYXRoTm9kZSBzdHJ1Y3QKKyBQZXJzcGVjdGl2ZSBzdHJ1Y3QK KyBVbml0cyBzdHJ1Y3QKKy1WZXJ0ZXggc3RydWN0CisgCisgKi5yZWYgdW5vd25lZAorIAorQEAg LTE3LDcgKzE0LDYgQEAgaW5pdF93aXRoX2FyZ3MKKyBBY3RvcgorIAkuYXBwbHlfdHJhbnNmb3Jt Lm1hdHJpeCByZWYKKyAJLmdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcy52ZXJ0cyBvdXQ9ZmFs c2UKKy0JLmdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQorIENhbnZhcwor IAkubmV3IHN5bWJvbF90eXBlPSJjb25zdHJ1Y3RvciIKKyBFdmVudC50eXBlI21ldGhvZCBuYW1l PSJnZXRfdHlwZSIKK0BAIC0yNyw3ICsyMyw2IEBAIEltYWdlCisgLy8gPz8/CisgQWN0b3IuaGFz X3BvaW50ZXIjbWV0aG9kIG5hbWU9ImdldF9oYXNfcG9pbnRlciIKKyBJbml0RXJyb3IgZXJyb3Jk b21haW49ZmFsc2UKKy1yZWRyYXcgc2tpcAorIAorIC8vIE5vdCBhbGwgYmFja2luZyBzeW1ib2xz IGFyZSBkZXByZWNhdGVkCisgQWN0b3IucGljayBkZXByZWNhdGVkPWZhbHNlCitAQCAtNTUsNyAr NTAsNiBAQCBDb250YWluZXIKKyAJLmxvd2VyIHZpcnR1YWwKKyAJLnJhaXNlIHZpcnR1YWwKKyAJ LipfY2hpbGRfbWV0YSN2aXJ0dWFsX21ldGhvZCB2aXJ0dWFsCistCS5mb3JlYWNoX3dpdGhfaW50 ZXJuYWxzI3ZpcnR1YWxfbWV0aG9kIHZpcnR1YWwKKyAKKyAvLyBEZWZhdWx0IHZhbHVlcworIENv bnRhaW5lcgorQEAgLTcwLDMyICs2NCwyMSBAQCBUZXh0CisgLy8gUmVwYXJlbnRlZCBmdW5jcyBt ZXRob2RzIGNhbid0IGJlIGluc3RhbmNlIG1ldGhvZHMKKyBmZWF0dXJlX2F2YWlsYWJsZSBza2lw CisgZmVhdHVyZV9nZXRfYWxsIHNraXAKKy1GZWF0dXJlRmxhZ3MudGV4dHVyZV9ucG90IHNraXAK KyAKKyAvLyBTa2lwcGVkIGJ5IGctaSBmb3IgdW5rbm93biByZWFzb25zCisgTGF5b3V0TWFuYWdl cgorIAkuY3JlYXRlX2NoaWxkX21ldGEgc2tpcD1mYWxzZQorLU1vZGVsCistCS5pbnNlcnRfcm93 IHNraXA9ZmFsc2UKKyAKKyAvLyBWYXJpYWRpYyBhcmd1bWVudHMKKy1BY3RvcgorLQkuYW5pbWF0 ZSBza2lwPWZhbHNlCistCS5hbmltYXRlX3dpdGhfYWxwaGEgc2tpcD1mYWxzZQorLQkuYW5pbWF0 ZV93aXRoX3RpbWVsaW5lIHNraXA9ZmFsc2UKKy1BbmltYXRvcgorLQkuc2V0IHNraXA9ZmFsc2UK KyBCb3gKKyAJLnBhY2sgc2tpcD1mYWxzZQorIAkucGFja19hZnRlciBza2lwPWZhbHNlCisgCS5w YWNrX2F0IHNraXA9ZmFsc2UKKyAJLnBhY2tfYmVmb3JlIHNraXA9ZmFsc2UKKyBDb250YWluZXIK Ky0JLmFkZF92YWxpc3Qgc2tpcD1mYWxzZQorIAkuY2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJLmNo aWxkX3NldCBza2lwPWZhbHNlCisgCS5yZW1vdmUgc2tpcD1mYWxzZQorLQkucmVtb3ZlX3ZhbGlz dCBza2lwPWZhbHNlCisgSW50ZXJ2YWwKKyAJLm5ldyBza2lwPWZhbHNlCisgCS5nZXRfaW50ZXJ2 YWwgc2tpcD1mYWxzZQorQEAgLTEwNSwxNSArODgsNiBAQCBJbnRlcnZhbAorIExheW91dE1hbmFn ZXIKKyAJLmNoaWxkX2dldCBza2lwPWZhbHNlCisgCS5jaGlsZF9zZXQgc2tpcD1mYWxzZQorLUxp c3RNb2RlbAorLQkubmV3IHNraXA9ZmFsc2UKKy1Nb2RlbAorLQkuYXBwZW5kIHNraXA9ZmFsc2UK Ky0JLmluc2VydCBza2lwPWZhbHNlCistCS5wcmVwZW5kIHNraXA9ZmFsc2UKKy1Nb2RlbEl0ZXIK Ky0JLmdldCBza2lwPWZhbHNlCistCS5zZXQgc2tpcD1mYWxzZQorIFNjcmlwdAorIAkuZ2V0X29i amVjdHMgc2tpcD1mYWxzZQorIAorQEAgLTEyMiwxNyArOTYsMTEgQEAgVGV4dHVyZQorIAkubmV3 X2Zyb21fZmlsZSB0aHJvd3M9IkNsdXR0ZXIuVGV4dHVyZUVycm9yIgorIAorIC8vIFNraXBwZWQg dXBzdHJlYW0gZm9yIHVua25vd24gcmVhc29ucworLUFscGhhLnJlZ2lzdGVyX2Z1bmMgc2tpcD1m YWxzZQorLVRpbWVvdXRQb29sIHNraXA9ZmFsc2UKKyBJbnRlcnZhbC5yZWdpc3Rlcl9wcm9ncmVz c19mdW5jIHNraXA9ZmFsc2UKKy1mcmFtZV9zb3VyY2VfKiBza2lwPWZhbHNlCisgZ2V0X29wdGlv bl9ncm91cCBza2lwPWZhbHNlCisgZ2V0X29wdGlvbl9ncm91cF93aXRob3V0X2luaXQgc2tpcD1m YWxzZQorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZSBza2lwPWZhbHNlCistdGhyZWFkc19hZGRf ZnJhbWVfc291cmNlX2Z1bGwgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGUgc2tpcD1mYWxz ZQorIHRocmVhZHNfYWRkX2lkbGVfZnVsbCBza2lwPWZhbHNlCistdGhyZWFkc19zZXRfbG9ja19m dW5jdGlvbnMgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX3RpbWVvdXQgc2tpcD1mYWxzZQorIHRo cmVhZHNfYWRkX3RpbWVvdXRfZnVsbCBza2lwPWZhbHNlCisgCitAQCAtMTQzLDE1ICsxMTEsMTIg QEAgQWN0b3JCb3gKKyBVbml0cy5mcm9tXyogc2tpcAorIENvbG9yCisgCS5uZXcgc2tpcAorLVZl cnRleC5uZXcgc2tpcAorIAorIC8vIENsYXNzIG1ldGhvZHMKKyBjb250YWluZXJfY2xhc3NfZmlu ZF9jaGlsZF9wcm9wZXJ0eSBza2lwCisgY29udGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVy dGllcyBza2lwCisgCisgLy8gTW92ZSBzeW1ib2xzCistZ2V0X2FjdG9yX2J5X2dpZCBwYXJlbnQ9 IkNsdXR0ZXIuQWN0b3IiIG5hbWU9ImdldF9ieV9naWQiCistZ2V0X2lucHV0X2RldmljZV9mb3Jf aWQgcGFyZW50PSJDbHV0dGVyLklucHV0RGV2aWNlIiBuYW1lPSJnZXRfZm9yX2lkIgorIHVuaXRz X2Zyb21fKiBza2lwCisgCisgLy8gQ2xhc3NlcyBtYXJrZWQgYXMgb3V0IGJ1dCBub3QgZG91Ymxl IHB0cgorQEAgLTIwMiwyMyArMTY3LDE1IEBAIFBBVEhfUkVMQVRJVkUgc2tpcD1mYWxzZQorIFBS SU9SSVRZX1JFRFJBVyBza2lwPWZhbHNlCisgCisgLy8gQ2x1dHRlciBkZXZzIGRvbid0IGxpa2Ug dXMgY3JlYXRpbmcgbmVzdGVkIG5hbWVzcGFjZXMKKy1mcmFtZV9zb3VyY2VfKiBuYW1lPSJmcmFt ZV9zb3VyY2VfKC4rKSIgcGFyZW50PSJDbHV0dGVyLkZyYW1lU291cmNlIgorIHZhbHVlXyogbmFt ZT0idmFsdWVfKC4rKSIgcGFyZW50PSJDbHV0dGVyLlZhbHVlIgorIHRocmVhZHNfKiBuYW1lPSJ0 aHJlYWRzXyguKykiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzIgorLXRocmVhZHNfYWRkX2ZyYW1l X3NvdXJjZSBuYW1lPSJhZGQiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLkZyYW1lU291cmNlIgor LXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZV9mdWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNs dXR0ZXIuVGhyZWFkcy5GcmFtZVNvdXJjZSIKKyB0aHJlYWRzX2FkZF9pZGxlIG5hbWU9ImFkZCIg cGFyZW50PSJDbHV0dGVyLlRocmVhZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF9pZGxlX2Z1bGwgbmFt ZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLklkbGUiCisgdGhyZWFkc19hZGRf dGltZW91dCBuYW1lPSJhZGQiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLlRpbWVvdXQiCisgdGhy ZWFkc19hZGRfdGltZW91dF9mdWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhy ZWFkcy5UaW1lb3V0IgorLXV0aWxfbmV4dF9wMiBuYW1lPSJuZXh0X3Bvd2VyX29mXzIiIHBhcmVu dD0iQ2x1dHRlci5VdGlsIgorIAorIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CisgQ29sb3Iu YWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVBvaW50LmFsbG9jIHN5bWJvbF90eXBlPSJm dW5jdGlvbiIKKy1SZWN0LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1TaXplLmFsbG9j IHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1WZXJ0ZXguYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0 aW9uIgorIAorIEJpbkFsaWdubWVudCBkZXByZWNhdGVkPWZhbHNlIGRlcHJlY2F0ZWRfc2luY2U9 bnVsbAorIEJpbkFsaWdubWVudC4qIGRlcHJlY2F0ZWQKK2RpZmYgLS1naXQgdmFwaS9Db2dsLTQu bWV0YWRhdGEgdmFwaS9Db2dsLTYubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVu YW1lIGZyb20gdmFwaS9Db2dsLTQubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NvZ2wtNi5tZXRh ZGF0YQorZGlmZiAtLWdpdCB2YXBpL0NvZ2wtNS5tZXRhZGF0YSB2YXBpL0NvZ2wtNy5tZXRhZGF0 YQorc2ltaWxhcml0eSBpbmRleCA5MSUKK3JlbmFtZSBmcm9tIHZhcGkvQ29nbC01Lm1ldGFkYXRh CityZW5hbWUgdG8gdmFwaS9Db2dsLTcubWV0YWRhdGEKK2luZGV4IDA5MmI1ZTI5Li5lNTJiZmEz NSAxMDA2NDQKKy0tLSB2YXBpL0NvZ2wtNS5tZXRhZGF0YQorKysrIHZhcGkvQ29nbC03Lm1ldGFk YXRhCitAQCAtOSwxMiArOSwxMCBAQCBjcmVhdGVfc2hhZGVyIHNraXAKKyAKKyAKKyBpc19iaXRt YXAgc2tpcAorLWlzX21hdGVyaWFsIHNraXAKKyBpc19vZmZzY3JlZW4gc2tpcAorIGlzX3Byb2dy YW0gc2tpcAorIGlzX3NoYWRlciBza2lwCisgaXNfdGV4dHVyZSBza2lwCistaXNfdmVydGV4X2J1 ZmZlciBza2lwCisgCisgTWF0cml4IHN0cnVjdAorICAgLmdldF9hcnJheSBhcnJheT10cnVlIGFy cmF5X2xlbmd0aF9pZHg9LTEKK2RpZmYgLS1naXQgdmFwaS9NZXRhLTMubWV0YWRhdGEgdmFwaS9N ZXRhLTMubWV0YWRhdGEKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMzcwZDQ5OTYu LjAwMDAwMDAwCistLS0gdmFwaS9NZXRhLTMubWV0YWRhdGEKKysrKyAvZGV2L251bGwKK0BAIC0x LDY2ICswLDAgQEAKKy1CYWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5k LmgiCistQmFja2dyb3VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC5o IgorLUJhY2tncm91bmRBY3RvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oIgorLUJhY2tncm91bmRHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oIgorLUJhY2tncm91bmRJbWFnZUNhY2hlIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiCistRGlzcGxheSBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2Rpc3BsYXkuaCIKKy1NZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5o IgorLU1vbml0b3JNYW5hZ2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCIKKy1SZWN0YW5nbGUgc3RydWN0CistUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvbWV0YS1wbHVnaW4uaCIKKy1QbHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0 YS1wbHVnaW4uaCIKKy1wcmVmc18qIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFy ZW50PSJNZXRhLlByZWZzIgorLWFkZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5w dXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy14MTFfZXJyb3JfdHJhcF9wb3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFwX3BvcF93aXRo X3JldHVybiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4 X3N0cm5kdXAgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLWdldF9sb2NhbGVfZGlyZWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdyYXZpdHlfdG9fc3RyaW5nIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1pc19kZWJ1Z2dp bmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlz X3N5bmNpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLWlzX3ZlcmJvc2UgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLWlzX3dheWxhbmRfY29tcG9zaXRvciBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistbGF0ZXJfYWRkIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1sYXRlcl9yZW1vdmUgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXBvcF9ub19tc2dfcHJlZml4 IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1wdXNo X25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLXJlY3QgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLXJlbW92ZV92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdG9waWNf cmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist dW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfc3RhZ2Vf Zm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfd2luZG93X2FjdG9ycyBwYXJlbnQ9Ik1ldGEu Q29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgor LWdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfdG9wX3dpbmRv d19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF9mZWVkYmFja19ncm91cF9mb3Jf ZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIgorLWRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJl bnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIgorLWVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21w b3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc2V0 X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lv biBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIgorLWZvY3VzX3N0YWdlX3dpbmRvdyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRv ciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXN0YWdlX2lz X2ZvY3VzZWQgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIKKy1rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIgcGFy ZW50PSJNZXRhLktleUJpbmRpbmciIG5hbWU9InNldF9jdXN0b21faGFuZGxlciIKKy1LZXlIYW5k bGVyRnVuYy5ldmVudCB0eXBlPSJDbHV0dGVyLktleUV2ZW50PyIKKy1nZXRfYmFja2VuZCBwYXJl bnQ9Ik1ldGEuQmFja2VuZCIKKy1XaW5kb3cuZm9jdXMjc2lnbmFsIHNraXA9dHJ1ZQorLVdpbmRv dy5nZXRfeHdpbmRvdyBza2lwPWZhbHNlCistZ2V0X29wdGlvbl9jb250ZXh0IHNraXA9ZmFsc2UK Ky1zZXRfZ25vbWVfd21fa2V5YmluZGluZ3Mgc2tpcD1mYWxzZQorLXNldF93bV9uYW1lIHNraXA9 ZmFsc2UKKy1pbml0IHNraXA9ZmFsc2UKKy1ydW4gc2tpcD1mYWxzZQorLXNob3dfZGlhbG9nIHNr aXA9ZmFsc2UKKy1nZXRfYmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2Vu ZC5oIgorZGlmZiAtLWdpdCB2YXBpL01ldGEtNS5tZXRhZGF0YSB2YXBpL01ldGEtNi5tZXRhZGF0 YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL01ldGEtNS5tZXRhZGF0 YQorcmVuYW1lIHRvIHZhcGkvTWV0YS02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS00 Lm1ldGFkYXRhIHZhcGkvTWV0YS03Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDc2JQorcmVu YW1lIGZyb20gdmFwaS9NZXRhLTQubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL01ldGEtNy5tZXRh ZGF0YQoraW5kZXggYWUyYTc4MTcuLjcyNjI5ZmJhIDEwMDY0NAorLS0tIHZhcGkvTWV0YS00Lm1l dGFkYXRhCisrKysgdmFwaS9NZXRhLTcubWV0YWRhdGEKK0BAIC0xLDI2ICsxLDIxIEBACisgQmFj a2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorIEJhY2tncm91bmQg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQuaCIKKyBCYWNrZ3JvdW5kQWN0 b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIKKytCYWNr Z3JvdW5kQ29udGVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1jb250 ZW50LmgiCisgQmFja2dyb3VuZEdyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgiCisgQmFja2dyb3VuZEltYWdlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiCisgQmFja2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIKKyBCYXJyaWVyIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvYmFycmllci5oIgorIEJhcnJpZXJFdmVudCBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL2JhcnJpZXIuaCIKKy1Cb3hlcyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JveGVzLmgi CisgQ2xvc2VEaWFsb2cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o IgorLUNvbXBvc2l0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLmgiCistQ29t cG9zaXRvck11dHRlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi CisgQ3Vyc29yVHJhY2tlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCIKKyBEaXNwbGF5IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvZGlzcGxheS5oIgorIERuZCBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtZG5kLmgiCistR3JvdXAgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9ncm91cC5oIgorIElkbGVNb25pdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCIKKyBJbmhpYml0U2hvcnRjdXRzRGlhbG9nIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCIKKy1LZXliaW5kaW5ncyBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2tleWJpbmRpbmdzLmgiCisgTGF1bmNoQ29udGV4dCBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCIKKyBNZXRhIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorIE1vbml0b3JNYW5hZ2VyIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9tZXRhLXBsdWdpbi5oIgorIFByZWZlcmVuY2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9w cmVmcy5oIgorIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oIgorIFJlbW90ZUFjY2Vzc0hhbmRsZSBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiCitAQCAt MzEsOSArMjYsNyBAQCBTb3VuZFBsYXllciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc291 bmQtcGxheWVyLmgiCisgU3RhZ2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXN0YWdlLmgi CisgU3RhcnR1cE5vdGlmaWNhdGlvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCIKKyBUaGVtZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3RoZW1lLmgi CistVHlwZXMgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS90eXBlcy5oIgorLVV0aWwgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistVmVyc2lvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtdmVyc2lvbi5oIgorK1dheWxhbmRDbGllbnQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LXdheWxhbmQtY2xpZW50LmgiCisgV2luZG93IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvd2luZG93 LmgiCisgV2luZG93QWN0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oIgorIFdpbmRvd0dyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCIKK0BAIC00NiwxNyArMzksMTEgQEAgUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv bWV0YS1wbHVnaW4uaCIKKyBQbHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1w bHVnaW4uaCIKKyBwcmVmc18qIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50 PSJNZXRhLlByZWZzIgorIGFkZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRf cmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK KyB4MTFfZXJyb3JfdHJhcF9wb3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3Jl dHVybiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisg ZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJl bnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0 cm5kdXAgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor IGdldF9sb2NhbGVfZGlyZWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1nZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBpc19kZWJ1Z2dpbmcg cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX3N5 bmNpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor QEAgLTY4LDEzICs1NSw4IEBAIHBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBwdXNoX25vX21zZ19wcmVmaXggcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJlY3QgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJlbW92ZV92ZXJi b3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19lcXVhbCBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWdu ZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorIHNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBnZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJN ZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIKKyBnZXRfd2luZG93X2FjdG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorQEAgLTgzLDEwICs2NSw3IEBAIGdl dF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhCisgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBh cmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiCisgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5D b21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisg ZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5w dXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0i TWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiCisgZm9jdXNfc3RhZ2Vfd2luZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBw YXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIgorIGtleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEu S2V5QmluZGluZyIgbmFtZT0ic2V0X2N1c3RvbV9oYW5kbGVyIgorIEtleUhhbmRsZXJGdW5jLmV2 ZW50IHR5cGU9IkNsdXR0ZXIuS2V5RXZlbnQ/IgorIGdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5C YWNrZW5kIgorZGlmZiAtLWdpdCB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoIHZhcGkvZ2Vu ZXJhdGUtbXV0dGVyLXZhcGkuc2gKK2luZGV4IDZiMDcwMjQwLi5iMjMzZTU4NiAxMDA3NTUKKy0t LSB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoCisrKysgdmFwaS9nZW5lcmF0ZS1tdXR0ZXIt dmFwaS5zaAorQEAgLTEsNyArMSw3IEBACisgIyEvYmluL2Jhc2gKKyBzZXQgLXhlCisgCistdmVy c2lvbj0kezEtNH0KKyt2ZXJzaW9uPSR7Ni03fQorIGdpcmRpcj0kKHBrZy1jb25maWcgbGlibXV0 dGVyLSR2ZXJzaW9uIC0tdmFyaWFibGU9Z2lyZGlyKQorIAorIGNkICQoZGlybmFtZSAkMCkKK2Rp ZmYgLS1naXQgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpIHZhcGkvZ3JhcGhlbmUtZ29i amVjdC0xLjAudmFwaQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi42OTgw MTUzNQorLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQor QEAgLTAsMCArMSw2OTEgQEAKKysvKiBncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpIGdlbmVyYXRl ZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKworK1tDQ29kZSAoY3ByZWZpeCA9ICJH cmFwaGVuZSIsIGdpcl9uYW1lc3BhY2UgPSAiR3JhcGhlbmUiLCBnaXJfdmVyc2lvbiA9ICIxLjAi LCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiZ3JhcGhlbmVfIildCisrbmFtZXNwYWNlIEdyYXBoZW5l IHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX2JveF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9ib3hfZ2V0X3R5cGUg KCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEJveCB7 CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1Ymxp YyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGVtcHR5ICgpOworKwkJcHVibGljIGJvb2wg ZXF1YWwgKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kIChH cmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3Nj YWxhciAoZmxvYXQgc2NhbGFyKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3ZlYzMg KEdyYXBoZW5lLlZlYzMgdmVjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgZ2V0X2JvdW5k aW5nX3NwaGVyZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7 CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2RlcHRoICgpOworKwkJcHVibGljIGZsb2F0IGdldF9oZWln aHQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWF4ICgpOworKwkJcHVibGlj IEdyYXBoZW5lLlBvaW50M0QgZ2V0X21pbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdl dF9zaXplICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlZlYzMgdmVydGljZXNbOF0pOworKwkJcHVibGlj IGZsb2F0IGdldF93aWR0aCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5C b3g/IGluZmluaXRlICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0IChH cmFwaGVuZS5Qb2ludDNEPyBtaW4sIEdyYXBoZW5lLlBvaW50M0Q/IG1heCk7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV9ib3ggKEdyYXBoZW5lLkJveCBzcmMpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUg KGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUs IGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMp OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhl bmUuVmVjMz8gbWluLCBHcmFwaGVuZS5WZWMzPyBtYXgpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuQm94PyBpbml0X2Zyb21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUg PSAibl92ZWN0b3JzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUg PSAiZ3VpbnQiKV0gR3JhcGhlbmUuVmVjM1tdIHZlY3RvcnMpOworKwkJcHVibGljIGJvb2wgaW50 ZXJzZWN0aW9uIChHcmFwaGVuZS5Cb3ggYiwgb3V0IEdyYXBoZW5lLkJveCByZXMpOworKwkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gbWludXNfb25lICgpOworKwkJcHVibGlj IHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1 bm93bmVkIEdyYXBoZW5lLkJveD8gb25lX21pbnVzX29uZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5Cb3ggdW5pb24gKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5Cb3g/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2V1bGVyX3QiLCB0eXBlX2lk ID0gImdyYXBoZW5lX2V1bGVyX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJcHVibGljIHN0cnVjdCBFdWxlciB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3Jh cGhlbmUuRXVsZXIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IGZsb2F0IGdldF9hbHBoYSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlw dWJsaWMgZmxvYXQgZ2V0X2JldGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF9nYW1tYSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlck9y ZGVyIGdldF9vcmRlciAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCXB1YmxpYyBm bG9hdCBnZXRfeSAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5l LkV1bGVyPyBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJv bV9tYXRyaXggKEdyYXBoZW5lLk1hdHJpeD8gbSwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3F1YXRlcm5pb24g KEdyYXBoZW5lLlF1YXRlcm5pb24/IHEsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1 bGVyPyBpbml0X2Zyb21fcmFkaWFucyAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgR3JhcGhl bmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8g aW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IHYsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3Jk ZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfd2l0aF9vcmRlciAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7Cisr CQlwdWJsaWMgR3JhcGhlbmUuRXVsZXIgcmVvcmRlciAoR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRl cik7CisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiB0b19xdWF0 ZXJuaW9uICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgdG9fdmVjMyAoKTsKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi Z3JhcGhlbmVfZnJ1c3R1bV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9mcnVzdHVtX2dldF90eXBl ICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBGcnVz dHVtIHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBv aW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKysJCXB1YmxpYyBib29sIGVxdWFs IChHcmFwaGVuZS5GcnVzdHVtIGIpOworKwkJcHVibGljIHZvaWQgZ2V0X3BsYW5lcyAoW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVuZS5QbGFuZSBwbGFuZXNbNl0pOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5pdCAoR3JhcGhlbmUuUGxhbmUg cDAsIEdyYXBoZW5lLlBsYW5lIHAxLCBHcmFwaGVuZS5QbGFuZSBwMiwgR3JhcGhlbmUuUGxhbmUg cDMsIEdyYXBoZW5lLlBsYW5lIHA0LCBHcmFwaGVuZS5QbGFuZSBwNSk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0X2Zyb21fZnJ1c3R1bSAoR3JhcGhlbmUuRnJ1c3R1 bSBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5pdF9mcm9tX21h dHJpeCAoR3JhcGhlbmUuTWF0cml4IG1hdHJpeCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rz X2JveCAoR3JhcGhlbmUuQm94IGJveCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVy ZSAoR3JhcGhlbmUuU3BoZXJlIHNwaGVyZSk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX21hdHJpeF90Iiwg dHlwZV9pZCA9ICJncmFwaGVuZV9tYXRyaXhfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVj dCBNYXRyaXggeworKwkJcHVibGljIGJvb2wgZGVjb21wb3NlIChvdXQgR3JhcGhlbmUuVmVjMyB0 cmFuc2xhdGUsIG91dCBHcmFwaGVuZS5WZWMzIHNjYWxlLCBvdXQgR3JhcGhlbmUuUXVhdGVybmlv biByb3RhdGUsIG91dCBHcmFwaGVuZS5WZWMzIHNoZWFyLCBvdXQgR3JhcGhlbmUuVmVjNCBwZXJz cGVjdGl2ZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg ZGV0ZXJtaW5hbnQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IGJvb2wgZXF1YWwgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbF9mYXN0IChHcmFwaGVuZS5NYXRyaXggYik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRf cm93ICh1aW50IGluZGV4Xyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgZmxvYXQgZ2V0X3ZhbHVlICh1aW50IHJvdywgdWludCBjb2wpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94X3NjYWxlICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeF90cmFuc2xhdGlvbiAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV9z Y2FsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3lfdHJhbnNsYXRpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgZmxvYXQgZ2V0X3pfc2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwkJcHVibGljIGZsb2F0IGdldF96X3RyYW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zy b21fMmQgKGRvdWJsZSB4eCwgZG91YmxlIHl4LCBkb3VibGUgeHksIGRvdWJsZSB5eSwgZG91Ymxl IHhfMCwgZG91YmxlIHlfMCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJp eCAoR3JhcGhlbmUuTWF0cml4IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVu ZS5WZWM0IHYwLCBHcmFwaGVuZS5WZWM0IHYxLCBHcmFwaGVuZS5WZWM0IHYyLCBHcmFwaGVuZS5W ZWM0IHYzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwg ZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0 cml4PyBpbml0X2lkZW50aXR5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2xvb2tfYXQgKEdyYXBoZW5lLlZl YzMgZXllLCBHcmFwaGVuZS5WZWMzIGNlbnRlciwgR3JhcGhlbmUuVmVjMyB1cCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/ IGluaXRfb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCB0b3AsIGZsb2F0IGJv dHRvbSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcGVyc3BlY3Rp dmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5NYXRyaXg/IGluaXRfcm90YXRlIChmbG9hdCBhbmdsZSwgR3JhcGhlbmUuVmVjMyBheGlzKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l Lk1hdHJpeD8gaW5pdF9zY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/ IGluaXRfc2tldyAoZmxvYXQgeF9za2V3LCBmbG9hdCB5X3NrZXcpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3Ry YW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggaW50ZXJwb2xhdGUgKEdyYXBoZW5lLk1hdHJp eCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBib29sIGludmVyc2UgKG91dCBHcmFwaGVuZS5NYXRyaXggcmVzKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzXzJkICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfYmFja2ZhY2VfdmlzaWJsZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5 ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfc2lu Z3VsYXIgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuTWF0cml4IG11bHRpcGx5IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgbmVhciAoR3JhcGhlbmUuTWF0cml4IGIsIGZs b2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLk1hdHJpeCBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHBlcnNwZWN0aXZlIChmbG9hdCBkZXB0aCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBwcmludCAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwcm9q ZWN0X3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWFkIHByb2plY3RfcmVjdCAoR3JhcGhlbmUuUmVjdCBy KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0 IHByb2plY3RfcmVjdF9ib3VuZHMgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVu ZS5WZWMzIGF4aXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZv aWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChHcmFwaGVuZS5RdWF0 ZXJuaW9uIHEpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQg cm90YXRlX3ggKGZsb2F0IGFuZ2xlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyB2b2lkIHJvdGF0ZV95IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfeiAoZmxvYXQgYW5nbGUpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IGZhY3Rv cl94LCBmbG9hdCBmYWN0b3JfeSwgZmxvYXQgZmFjdG9yX3opOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2tld194eSAoZmxvYXQgZmFjdG9yKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeHogKGZsb2F0IGZh Y3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3 X3l6IChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGJvb2wgdG9fMmQgKG91dCBkb3VibGUgeHgsIG91dCBkb3VibGUgeXgsIG91dCBkb3VibGUg eHksIG91dCBkb3VibGUgeXksIG91dCBkb3VibGUgeF8wLCBvdXQgZG91YmxlIHlfMCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCB2WzE2XSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB0cmFuc2Zvcm1fYm91bmRz IChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVi bGljIEdyYXBoZW5lLkJveCB0cmFuc2Zvcm1fYm94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgdHJhbnNmb3Jt X3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHRyYW5zZm9ybV9wb2ludDNkIChHcmFwaGVuZS5Q b2ludDNEIHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlJheSB0cmFuc2Zvcm1fcmF5IChHcmFwaGVuZS5SYXkgcik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhZCB0cmFuc2Zvcm1fcmVjdCAoR3Jh cGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5TcGhlcmUgdHJhbnNmb3JtX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgdHJhbnNm b3JtX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCB0cmFuc2Zvcm1fdmVjNCAoR3JhcGhlbmUuVmVjNCB2 KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRyYW5zbGF0 ZSAoR3JhcGhlbmUuUG9pbnQzRCBwb3MpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCB0cmFuc3Bvc2UgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCB1bnByb2plY3RfcG9pbnQz ZCAoR3JhcGhlbmUuTWF0cml4IG1vZGVsdmlldywgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bnRy YW5zZm9ybV9ib3VuZHMgKEdyYXBoZW5lLlJlY3QgciwgR3JhcGhlbmUuUmVjdCBib3VuZHMpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdW50cmFuc2Zvcm1f cG9pbnQgKEdyYXBoZW5lLlBvaW50IHAsIEdyYXBoZW5lLlJlY3QgYm91bmRzLCBvdXQgR3JhcGhl bmUuUG9pbnQgcmVzKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcGxhbmVfdCIsIHR5cGVfaWQgPSAiZ3Jh cGhlbmVfcGxhbmVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor KwlwdWJsaWMgc3RydWN0IFBsYW5lIHsKKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhl bmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUGxhbmUg Yik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2NvbnN0YW50ICgpOworKwkJcHVibGljIEdyYXBoZW5l LlZlYzMgZ2V0X25vcm1hbCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBp bml0IChHcmFwaGVuZS5WZWMzPyBub3JtYWwsIGZsb2F0IGNvbnN0YW50KTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fcGxhbmUgKEdyYXBoZW5lLlBsYW5lIHNy Yyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50IChH cmFwaGVuZS5WZWMzIG5vcm1hbCwgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50cyAoR3JhcGhlbmUuUG9pbnQz RCBhLCBHcmFwaGVuZS5Qb2ludDNEIGIsIEdyYXBoZW5lLlBvaW50M0QgYyk7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3Jj KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSBuZWdhdGUgKCk7CisrCQlwdWJsaWMgR3JhcGhl bmUuUGxhbmUgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5QbGFuZSB0cmFuc2Zvcm0gKEdyYXBoZW5lLk1hdHJpeCBtYXRyaXgs IEdyYXBoZW5lLk1hdHJpeD8gbm9ybWFsX21hdHJpeCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50 X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3BvaW50X2dldF90eXBlICgpIildCisrCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBQb2ludCB7CisrCQlwdWJsaWMgZmxv YXQgeDsKKysJCXB1YmxpYyBmbG9hdCB5OworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFw aGVuZS5Qb2ludCBiLCBvdXQgZmxvYXQgZF94LCBvdXQgZmxvYXQgZF95KTsKKysJCXB1YmxpYyBi b29sIGVxdWFsIChHcmFwaGVuZS5Qb2ludCBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlBvaW50PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlBvaW50PyBpbml0X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHNyYyk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8g aW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Q b2ludCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuUG9pbnQgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlw dWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5Qb2ludCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHRvX3ZlYzIg KCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IHplcm8gKCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX3BvaW50M2RfdCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJwb2ludDNk IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9wb2ludDNkX2dldF90eXBlICgpIildCisrCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBQb2ludDNEIHsKKysJCXB1YmxpYyBm bG9hdCB4OworKwkJcHVibGljIGZsb2F0IHk7CisrCQlwdWJsaWMgZmxvYXQgejsKKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludDNEIGNyb3NzIChHcmFwaGVuZS5Qb2ludDNEIGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Q b2ludDNEIGIsIG91dCBHcmFwaGVuZS5WZWMzIGRlbHRhKTsKKysJCXB1YmxpYyBmbG9hdCBkb3Qg KEdyYXBoZW5lLlBvaW50M0QgYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUG9p bnQzRCBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGluaXQgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQz RD8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHNyYyk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyB2KTsK KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGludGVycG9sYXRlIChHcmFwaGVuZS5Qb2ludDNE IGIsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIGZsb2F0IGxlbmd0aCAoKTsKKysJCXB1Ymxp YyBib29sIG5lYXIgKEdyYXBoZW5lLlBvaW50M0QgYiwgZmxvYXQgZXBzaWxvbik7CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBub3JtYWxpemVfdmlld3BvcnQgKEdy YXBoZW5lLlJlY3Qgdmlld3BvcnQsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJcHVi bGljIEdyYXBoZW5lLlBvaW50M0Qgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMyB0b192ZWMzICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LlBvaW50M0Q/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdy YXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3F1YWRfdCIsIHR5cGVfaWQgPSAi Z3JhcGhlbmVfcXVhZF9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCXB1YmxpYyBzdHJ1Y3QgUXVhZCB7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBib3VuZHMg KCk7CisrCQlwdWJsaWMgYm9vbCBjb250YWlucyAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gZ2V0X3BvaW50ICh1aW50IGluZGV4Xyk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBpbml0IChHcmFwaGVuZS5Qb2ludCBwMSwgR3Jh cGhlbmUuUG9pbnQgcDIsIEdyYXBoZW5lLlBvaW50IHAzLCBHcmFwaGVuZS5Qb2ludCBwNCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5R dWFkPyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3Jh cGhlbmUuUG9pbnQgcG9pbnRzWzRdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/ IGluaXRfZnJvbV9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9xdWF0 ZXJuaW9uX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3F1YXRlcm5pb25fZ2V0X3R5cGUgKCkiKV0K KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFF1YXRlcm5pb24g eworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0 ZXJuaW9uIGFkZCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBmbG9hdCBkb3Qg KEdyYXBoZW5lLlF1YXRlcm5pb24gYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUu UXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGlu aXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX2FuZ2xlX3ZlYzMgKGZsb2F0IGFuZ2xl LCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVy bmlvbj8gaW5pdF9mcm9tX2FuZ2xlcyAoZmxvYXQgZGVnX3gsIGZsb2F0IGRlZ195LCBmbG9hdCBk ZWdfeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGUpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX21hdHJpeCAo R3JhcGhlbmUuTWF0cml4IG0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlv bj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24gc3JjKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9yYWRpYW5zIChmbG9h dCByYWRfeCwgZmxvYXQgcmFkX3ksIGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHNyYyk7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2lkZW50aXR5ICgpOwor KwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gaW52ZXJ0ICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIG11bHRpcGx5IChH cmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbm9y bWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5RdWF0ZXJuaW9uIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIEdyYXBoZW5l LlF1YXRlcm5pb24gc2xlcnAgKEdyYXBoZW5lLlF1YXRlcm5pb24gYiwgZmxvYXQgZmFjdG9yKTsK KysJCXB1YmxpYyB2b2lkIHRvX2FuZ2xlX3ZlYzMgKG91dCBmbG9hdCBhbmdsZSwgb3V0IEdyYXBo ZW5lLlZlYzMgYXhpcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMg dm9pZCB0b19hbmdsZXMgKG91dCBmbG9hdCBkZWdfeCwgb3V0IGZsb2F0IGRlZ195LCBvdXQgZmxv YXQgZGVnX3opOworKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCB0b19tYXRyaXggKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19yYWRpYW5zIChvdXQg ZmxvYXQgcmFkX3gsIG91dCBmbG9hdCByYWRfeSwgb3V0IGZsb2F0IHJhZF96KTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWM0IHRvX3ZlYzQgKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3JheV90IiwgdHlw ZV9pZCA9ICJncmFwaGVuZV9yYXlfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorKwlwdWJsaWMgc3RydWN0IFJheSB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3Jh cGhlbmUuUmF5IGIpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2Nsb3Nlc3RfcG9p bnRfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj MyBnZXRfZGlyZWN0aW9uICgpOworKwkJcHVibGljIGZsb2F0IGdldF9kaXN0YW5jZV90b19wbGFu ZSAoR3JhcGhlbmUuUGxhbmUgcCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3Bv aW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0 X29yaWdpbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9wb3NpdGlvbl9hdCAo ZmxvYXQgdCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SYXk/IGluaXQgKEdyYXBoZW5l LlBvaW50M0Q/IG9yaWdpbiwgR3JhcGhlbmUuVmVjMz8gZGlyZWN0aW9uKTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdF9mcm9tX3JheSAoR3JhcGhlbmUuUmF5IHNyYyk7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SYXk/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5W ZWMzPyBvcmlnaW4sIEdyYXBoZW5lLlZlYzM/IGRpcmVjdGlvbik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50 ZXJzZWN0X2JveCAoR3JhcGhlbmUuQm94IGIsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktp bmQgaW50ZXJzZWN0X3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMsIG91dCBmbG9hdCB0X291dCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUlu dGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3RyaWFuZ2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0LCBv dXQgZmxvYXQgdF9vdXQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1Ymxp YyBib29sIGludGVyc2VjdHNfYm94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0c19zcGhlcmUgKEdyYXBoZW5l LlNwaGVyZSBzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9v bCBpbnRlcnNlY3RzX3RyaWFuZ2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0KTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3Jh cGhlbmVfcmVjdF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9yZWN0X2dldF90eXBlICgpIildCisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBSZWN0IHsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludCBvcmlnaW47CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXpl OworKwkJcHVibGljIHN0YXRpYyBHcmFwaGVuZS5SZWN0PyBhbGxvYyAoKTsKKysJCXB1YmxpYyBi b29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1YmxpYyBib29sIGNv bnRhaW5zX3JlY3QgKEdyYXBoZW5lLlJlY3QgYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3Jh cGhlbmUuUmVjdCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5SZWN0IGV4cGFuZCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworKwkJcHVibGljIEdy YXBoZW5lLlBvaW50IGdldF9ib3R0b21fbGVmdCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dCBnZXRfYm90dG9tX3JpZ2h0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9jZW50 ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludCBnZXRfdG9wX2xlZnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X3Rv cF9yaWdodCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2b2lk IGdldF92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVu ZS5WZWMyIHZlcnRpY2VzWzRdKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CisrCQlw dWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3 aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGlu aXRfZnJvbV9yZWN0IChHcmFwaGVuZS5SZWN0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5SZWN0PyBpbnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgaW5zZXRfciAoZmxvYXQgZF94 LCBmbG9hdCBkX3kpOworKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgaW50ZXJwb2xhdGUgKEdyYXBo ZW5lLlJlY3QgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24g KEdyYXBoZW5lLlJlY3QgYiwgb3V0IEdyYXBoZW5lLlJlY3QgcmVzKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlJlY3Q/IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IG5vcm1hbGl6ZV9yICgpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUmVjdD8gb2Zmc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBvZmZz ZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5SZWN0IHJvdW5kICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJvdW5kX2V4dGVudHMgKCk7CisrCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyByb3VuZF90b19waXhlbCAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBz Y2FsZSAoZmxvYXQgc19oLCBmbG9hdCBzX3YpOworKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdW5p b24gKEdyYXBoZW5lLlJlY3QgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlw dWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gemVybyAoKTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3Jh cGhlbmVfc2ltZDRmX3QiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBT aW1kNEYgeworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaW1kNHg0Zl90IiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisrCXB1YmxpYyBzdHJ1Y3QgU2ltZDRYNEYgeworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaXplX3Qi LCB0eXBlX2lkID0gImdyYXBoZW5lX3NpemVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFNpemUgeworKwkJcHVibGljIGZsb2F0IHdp ZHRoOworKwkJcHVibGljIGZsb2F0IGhlaWdodDsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFw aGVuZS5TaXplIGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU2l6ZT8gaW5pdCAoZmxv YXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXpl PyBpbml0X2Zyb21fc2l6ZSAoR3JhcGhlbmUuU2l6ZSBzcmMpOworKwkJcHVibGljIEdyYXBoZW5l LlNpemUgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlNpemUgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlw dWJsaWMgR3JhcGhlbmUuU2l6ZSBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zcGhl cmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfc3BoZXJlX2dldF90eXBlICgpIildCisrCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBTcGhlcmUgeworKwkJcHVibGlj IGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGlj IGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBib29s IGVxdWFsIChHcmFwaGVuZS5TcGhlcmUgYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9i b3VuZGluZ19ib3ggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2VudGVyICgp OworKwkJcHVibGljIGZsb2F0IGdldF9yYWRpdXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5TcGhlcmU/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlciwgZmxvYXQgcmFkaXVz KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNwaGVyZT8gaW5pdF9mcm9tX3BvaW50cyAo W0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wb2ludHMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5Qb2ludDNEW10g cG9pbnRzLCBHcmFwaGVuZS5Qb2ludDNEPyBjZW50ZXIpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuU3BoZXJlPyBpbml0X2Zyb21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25h bWUgPSAibl92ZWN0b3JzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5 cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuVmVjM1tdIHZlY3RvcnMsIEdyYXBoZW5lLlBvaW50M0Q/ IGNlbnRlcik7CisrCQlwdWJsaWMgYm9vbCBpc19lbXB0eSAoKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5TcGhlcmUgdHJhbnNsYXRlIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3Jh cGhlbmVfdHJpYW5nbGVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfZ2V0X3R5cGUg KCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFRyaWFu Z2xlIHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHAp OworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlRyaWFuZ2xlIGIpOworKwkJcHVibGlj IGZsb2F0IGdldF9hcmVhICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Jhcnljb29yZHMgKEdyYXBo ZW5lLlBvaW50M0Q/IHAsIG91dCBHcmFwaGVuZS5WZWMyIHJlcyk7CisrCQlwdWJsaWMgR3JhcGhl bmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBn ZXRfbWlkcG9pbnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfbm9ybWFsICgpOwor KwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIGdldF9wbGFuZSAoKTsKKysJCXB1YmxpYyB2b2lkIGdl dF9wb2ludHMgKG91dCBHcmFwaGVuZS5Qb2ludDNEIGEsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGIs IG91dCBHcmFwaGVuZS5Qb2ludDNEIGMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyBib29sIGdldF91diAoR3JhcGhlbmUuUG9pbnQzRD8gcCwgR3JhcGhlbmUuVmVj MiB1dl9hLCBHcmFwaGVuZS5WZWMyIHV2X2IsIEdyYXBoZW5lLlZlYzIgdXZfYywgb3V0IEdyYXBo ZW5lLlZlYzIgcmVzKTsKKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAob3V0IEdyYXBoZW5l LlZlYzMgYSwgb3V0IEdyYXBoZW5lLlZlYzMgYiwgb3V0IEdyYXBoZW5lLlZlYzMgYyk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJp YW5nbGU/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZs b2F0IGFbM10sIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBiWzNdLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgY1szXSk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9mcm9tX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0Q/ IGEsIEdyYXBoZW5lLlBvaW50M0Q/IGIsIEdyYXBoZW5lLlBvaW50M0Q/IGMpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMz PyBhLCBHcmFwaGVuZS5WZWMzPyBiLCBHcmFwaGVuZS5WZWMzPyBjKTsKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhl bmVfdmVjMl90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV92ZWMyX2dldF90eXBlICgpIildCisrCXB1 YmxpYyBzdHJ1Y3QgVmVjMiB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjMiBhZGQgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBkaXZpZGUgKEdyYXBoZW5lLlZl YzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90 IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVi bGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzIgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8gaW5pdCAoZmxvYXQgeCwg ZmxvYXQgeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5WZWMyPyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSBmbG9hdCBzcmNbMl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZl YzIgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMiBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVjMiB2MiwgZG91YmxlIGZhY3Rvcik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWF4 IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzIgbWluIChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbXVsdGlwbHkgKEdyYXBoZW5l LlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBu ZWFyIChHcmFwaGVuZS5WZWMyIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG5lZ2F0ZSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG5vcm1hbGl6ZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBHcmFwaGVuZS5WZWMyPyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHN1YnRyYWN0IChHcmFw aGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZv aWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVz dFsyXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjMj8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHlfYXhpcyAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5WZWMyPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWMzX3QiLCB0eXBlX2lk ID0gImdyYXBoZW5lX3ZlYzNfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWMzIHsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGFk ZCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWMzIGNyb3NzIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZGl2aWRlIChHcmFwaGVu ZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0 IGRvdCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ CXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5WZWMzIHYyKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGdldF94eSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF94eTAgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBn ZXRfeHl6MCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWM0IGdldF94eXoxICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3h5encgKGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF96ICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdCAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNbM10pOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdF9mcm9tX3Zl YzMgKEdyYXBoZW5lLlZlYzMgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVjMyB2MiwgZG91 YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxv YXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzMgbWF4IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbWluIChHcmFwaGVuZS5WZWMzIGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbXVs dGlwbHkgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWMzIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5lZ2F0 ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMzIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBzY2FsZSAoZmxvYXQgZmFjdG9y KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMz IHN1YnRyYWN0IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSByZWYgZmxvYXQgZGVzdFszXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8geF9heGlzICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZl YzM/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gemVy byAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVj dC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjNF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV92ZWM0 X2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgVmVjNCB7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBhZGQgKEdyYXBoZW5lLlZlYzQg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj NCBkaXZpZGUgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzQgdjIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF93ICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0 X3h5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzMgZ2V0X3h5eiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBmbG9hdCBnZXRfeSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBmbG9hdCBnZXRfeiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHos IGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gZmxvYXQgc3JjWzRdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMyIChHcmFwaGVuZS5W ZWMyIHNyYywgZmxvYXQgeiwgZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhl bmUuVmVjMyBzcmMsIGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZl YzQgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjNCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVjNCB2MiwgZG91YmxlIGZhY3Rvcik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWF4 IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzQgbWluIChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbXVsdGlwbHkgKEdyYXBoZW5l LlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBu ZWFyIChHcmFwaGVuZS5WZWM0IHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG5lZ2F0ZSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG5vcm1hbGl6ZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBHcmFwaGVuZS5WZWM0PyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHN1YnRyYWN0IChHcmFw aGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZv aWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVz dFs0XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjND8gd19heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHhfYXhpcyAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5WZWM0PyB5X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gel9heGlzICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LlZlYzQ/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBo ZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2V1bGVyX29yZGVyX3QiLCBjcHJlZml4 ID0gIkdSQVBIRU5FX0VVTEVSX09SREVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBlbnVtIEV1bGVyT3JkZXIgeworKwkJREVG QVVMVCwKKysJCVhZWiwKKysJCVlaWCwKKysJCVpYWSwKKysJCVhaWSwKKysJCVlYWiwKKysJCVpZ WCwKKysJCVNYWVosCisrCQlTWFlYLAorKwkJU1haWSwKKysJCVNYWlgsCisrCQlTWVpYLAorKwkJ U1laWSwKKysJCVNZWFosCisrCQlTWVhZLAorKwkJU1pYWSwKKysJCVNaWFosCisrCQlTWllYLAor KwkJU1pZWiwKKysJCVJaWVgsCisrCQlSWFlYLAorKwkJUllaWCwKKysJCVJYWlgsCisrCQlSWFpZ LAorKwkJUllaWSwKKysJCVJaWFksCisrCQlSWVhZLAorKwkJUllYWiwKKysJCVJaWFosCisrCQlS WFlaLAorKwkJUlpZWgorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9yYXlfaW50ZXJzZWN0aW9uX2tpbmRfdCIs IGNwcmVmaXggPSAiR1JBUEhFTkVfUkFZX0lOVEVSU0VDVElPTl9LSU5EXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBS YXlJbnRlcnNlY3Rpb25LaW5kIHsKKysJCU5PTkUsCisrCQlFTlRFUiwKKysJCUxFQVZFCisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gIkdSQVBIRU5FX0hBU19HQ0MiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfR0NDOworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi R1JBUEhFTkVfSEFTX1NDQUxBUiIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19TQ0FMQVI7Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9 ICJHUkFQSEVORV9IQVNfU1NFIildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX1NTRTsKKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdS QVBIRU5FX1BJIildCisrCXB1YmxpYyBjb25zdCBkb3VibGUgUEk7CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9QSV8y IildCisrCXB1YmxpYyBjb25zdCBkb3VibGUgUElfMjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1NJTURfUyIpXQor KwlwdWJsaWMgY29uc3Qgc3RyaW5nIFNJTURfUzsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzJfTEVOIildCisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUMyX0xFTjsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gIkdSQVBIRU5FX1ZFQzNfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ cHVibGljIGNvbnN0IGludCBWRUMzX0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzRfTEVOIildCisrCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUM0X0xFTjsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0g ImZhbHNlIildCisrCXB1YmxpYyBjb25zdCBpbnQgQGZhbHNlOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAidHJ1ZSIpXQorKwlwdWJs aWMgY29uc3QgaW50IEB0cnVlOworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi5kZXBz IHZhcGkvbGlibXV0dGVyLTIuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAx ZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0yLmRlcHMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJvCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcwor LWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWd0aystMy4wCisteDExCisteGZpeGVzLTQuMAor LWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi52YXBp IHZhcGkvbGlibXV0dGVyLTIudmFwaQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw YTZjNDM1Ny4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0yLnZhcGkKKysrKyAvZGV2L251 bGwKK0BAIC0xLDEzMjUgKzAsMCBAQAorLS8qIGxpYm11dHRlci52YXBpIGdlbmVyYXRlZCBieSB2 YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwg Z2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMy4wIiwgbG93ZXJfY2FzZV9j cHJlZml4ID0gIm1ldGFfIildCistbmFtZXNwYWNlIE1ldGEgeworLQluYW1lc3BhY2UgUHJlZnMg eworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGFkZF9saXN0ZW5lciAoTWV0YS5QcmVmc0NoYW5nZWRGdW5jIGZ1bmMp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVi bGljIHN0YXRpYyBib29sIGJlbGxfaXNfYXVkaWJsZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjaGFuZ2Vf d29ya3NwYWNlX25hbWUgKGludCBpLCBzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRp dGxlYmFyQWN0aW9uIGdldF9hY3Rpb25fZG91YmxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRp YyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBnZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJh ciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9yaWdodF9j bGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXR0YWNoX21vZGFsX2RpYWxvZ3Mg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9fbWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X2F1dG9fcmFpc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfYXV0b19yYWlzZV9kZWxheSAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgTWV0YS5CdXR0b25MYXlvdXQgZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgZ2V0X2NlbnRlcl9uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfY29tcG9zaXRp bmdfbWFuYWdlciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBzdHJpbmcgZ2V0X2N1cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGlz YWJsZV93b3JrYXJvdW5kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kcmFnX3RocmVzaG9sZCAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgaW50IGdldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IGdldF9keW5hbWljX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2VkZ2VfdGlsaW5n ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIGdldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyBHRGVza3RvcC5Gb2N1c01vZGUgZ2V0X2ZvY3VzX21vZGUgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdE ZXNrdG9wLkZvY3VzTmV3V2luZG93cyBnZXRfZm9jdXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2Fj Y2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGlj IE1ldGEuS2V5QmluZGluZ0FjdGlvbiBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1l KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgaW50IGdldF9tb3VzZV9idXR0b25fbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5W aXJ0dWFsTW9kaWZpZXIgZ2V0X21vdXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0 X21vdXNlX2J1dHRvbl9yZXNpemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfbnVtX3dvcmtzcGFjZXMg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JhaXNlX29uX2NsaWNrICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdl dF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnRE ZXNjcmlwdGlvbiBnZXRfdGl0bGViYXJfZm9udCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfdmlzdWFs X2JlbGwgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlZpc3VhbEJlbGxUeXBlIGdldF92aXN1YWxfYmVs bF90eXBlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfd29ya3NwYWNlX25hbWUgKGlu dCBpKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBvdmVycmlkZV9wcmVmZXJlbmNlX3Nj aGVtYSAoc3RyaW5nIGtleSwgc3RyaW5nIHNjaGVtYSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2xp c3RlbmVyIChNZXRhLlByZWZzQ2hhbmdlZEZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2Zv cmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2lnbm9yZV9y ZXF1ZXN0X2hpZGVfdGl0bGViYXIgKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X251 bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2VzKTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJt ZXRhX2FkZF92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJv c2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2J1ZyIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIGJ1ZyAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZGVidWdfc3Bld19yZWFsIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfc3Bld19yZWFsIChzdHJpbmcgZm9ybWF0LCAu Li4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3RfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4p OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4p OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi bWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf ZXJyb3JfdHJhcF9wb3AiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3BvcCAo TWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFwX3B1c2giKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBlcnJvcl90cmFwX3B1c2ggKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJy b3JfdHJhcF9wdXNoX3dpdGhfcmV0dXJuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZXJyb3Jf dHJhcF9wdXNoX3dpdGhfcmV0dXJuIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFs X2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRl cm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2ZhdGFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZmF0YWwgKHN0cmluZyBmb3JtYXQsIC4u Lik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJtZXRhX2ZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IGZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyAoR0xpYi5TTGlzdDx2b2lkKj4gbGlzdF90b19kZWVw X2ZyZWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191 dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rp b24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9k aXJlY3Rpb24gKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX2dldF9vdmVybGF5X3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyBY LldpbmRvdyBnZXRfb3ZlcmxheV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZp dHlfdG9fc3RyaW5nIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlf dG9fc3RyaW5nIChpbnQgZ3Jhdml0eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfaXNfc3luY2luZyIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIGlzX3N5bmNpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3ZlcmJvc2UiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBpc192ZXJib3NlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9pc193YXlsYW5kX2NvbXBvc2l0b3IiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBpc193YXlsYW5kX2NvbXBvc2l0b3IgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX2FkZCIp XQorLQkJcHVibGljIHN0YXRpYyB1aW50IGxhdGVyX2FkZCAoTWV0YS5MYXRlclR5cGUgd2hlbiwg b3duZWQgR0xpYi5Tb3VyY2VGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9sYXRlcl9yZW1vdmUiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBsYXRlcl9yZW1vdmUgKHVpbnQgbGF0ZXJfaWQpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wb3Bfbm9fbXNn X3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHBvcF9ub19tc2dfcHJlZml4ICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0 YV9wdXNoX25vX21zZ19wcmVmaXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX25vX21z Z19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX3JlY3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5SZWN0YW5nbGU/ IHJlY3QgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcmVtb3ZlX3Zl cmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfdmVyYm9zZV90b3Bp YyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1 dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9u IChNZXRhLlNjcmVlbiBzY3JlZW4sIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9zaG93X2Rp YWxvZyIpXQorLQkJcHVibGljIHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5 cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJpbmc/IHRpbWVvdXQgPSBudWxsLCBzdHJpbmc/IGRpc3Bs YXkgPSBudWxsLCBzdHJpbmc/IG9rX3RleHQgPSBudWxsLCBzdHJpbmc/IGNhbmNlbF90ZXh0ID0g bnVsbCwgc3RyaW5nPyBpY29uX25hbWUgPSBudWxsLCBpbnQgdHJhbnNpZW50X2ZvciA9IDAsIEdM aWIuU0xpc3Q8c3RyaW5nPj8gY29sdW1ucyA9IG51bGwsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gZW50 cmllcyA9IG51bGwpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAibWV0YV90b3BpY19yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdG9w aWNfcmVhbCAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljLCBzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV91 bnNpZ25lZF9sb25nX2VxdWFsIildCistCQlwdWJsaWMgc3RhdGljIGludCB1bnNpZ25lZF9sb25n X2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2hhc2giKV0KKy0J CXB1YmxpYyBzdGF0aWMgdWludCB1bnNpZ25lZF9sb25nX2hhc2ggKHZvaWQqIHYpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV92ZXJi b3NlX3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJib3NlX3JlYWwgKHN0cmluZyBm b3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX3dhcm5pbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB3YXJuaW5n IChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZW5kX2dldF90eXBlICgpIildCist CXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIs IGNuYW1lID0gIm1ldGFfZ2V0X2JhY2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBN ZXRhLkJhY2tlbmQgZ2V0X2JhY2tlbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9zdGFnZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50 IGlkeCk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5n IHZhcmlhbnRzLCBzdHJpbmcgb3B0aW9ucyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFw X2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9j aGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2Vf Y2hhbmdlZCAoaW50IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNr Z3JvdW5kIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJl c2hfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdM aWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0 eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xv cik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJh Y2tncm91bmRTdHlsZSBzdHlsZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNr dG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNv bG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBNZXRhLlNjcmVlbiBtZXRhX3NjcmVlbiB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQg PSAibWV0YV9iYWNrZ3JvdW5kX2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBC YWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIu QW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0 b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLlNjcmVlbiBzY3JlZW4sIGlu dCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91 bmQgYmFja2dyb3VuZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfdmlnbmV0dGUgKGJvb2wgZW5hYmxl ZCwgZG91YmxlIGJyaWdodG5lc3MsIGRvdWJsZSBzaGFycG5lc3MpOworLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQgeyBvd25lZCBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIGJyaWdodG5l c3MgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5T Y3JlZW4gbWV0YV9zY3JlZW4geyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBu ZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dy b3VwX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0 dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5D b250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFj a2dyb3VuZEdyb3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1h Z2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIu T2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2Vz cyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0J CXB1YmxpYyBib29sIGlzX2xvYWRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9i amVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlQ2FjaGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgTWV0YS5CYWNrZ3JvdW5kSW1hZ2VDYWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBN ZXRhLkJhY2tncm91bmRJbWFnZSBsb2FkIChHTGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9p ZCBwdXJnZSAoR0xpYi5GaWxlIGZpbGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhcnJpZXIgKCk7 CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworLQkJcHVibGljIGJvb2wgaXNfYWN0aXZlICgp OworLQkJcHVibGljIHZvaWQgcmVsZWFzZSAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYXJyaWVyRGlyZWN0aW9uIGRpcmVj dGlvbnMgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4MiB7IGdldDsgY29uc3RydWN0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTEgeyBnZXQ7IGNvbnN0cnVj dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkyIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBoaXQgKE1ldGEuQmFycmllckV2ZW50IGV2 ZW50KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsZWZ0IChNZXRhLkJhcnJpZXJFdmVudCBldmVu dCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2V2ZW50X2dldF90eXBlICgpIildCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgQmFycmllckV2ZW50IHsKKy0JCXB1YmxpYyBpbnQgZHQ7Cist CQlwdWJsaWMgZG91YmxlIGR4OworLQkJcHVibGljIGRvdWJsZSBkeTsKKy0JCXB1YmxpYyBpbnQg ZXZlbnRfaWQ7CistCQlwdWJsaWMgYm9vbCBncmFiYmVkOworLQkJcHVibGljIGJvb2wgcmVsZWFz ZWQ7CistCQlwdWJsaWMgdWludDMyIHRpbWU7CistCQlwdWJsaWMgZG91YmxlIHg7CistCQlwdWJs aWMgZG91YmxlIHk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t cG9zaXRvci5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQ29tcG9zaXRvciB7Cist CQlwdWJsaWMgdm9pZCBhZGRfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGlj IHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBib29sIGZpbHRlcl9rZXliaW5kaW5nIChNZXRh LktleUJpbmRpbmcgYmluZGluZyk7CistCQlwdWJsaWMgdm9pZCBmbGFzaF9zY3JlZW4gKE1ldGEu U2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBmb2N1c19zdGFnZV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVl biwgdWludDMyIHRpbWVzdGFtcCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfZmVlZGJhY2tfZ3JvdXBf Zm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X2ZlZWRiYWNrX2dyb3VwX2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9nZXRfc3RhZ2VfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3I/IGdldF9zdGFnZV9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4p OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF90b3Bfd2luZG93X2dyb3Vw X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2lu ZG93X2FjdG9ycyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDx3ZWFrIE1l dGEuV2luZG93QWN0b3I+PyBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi LCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVl biAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3 ICgpOworLQkJcHVibGljIHZvaWQgaGlkZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0 YS5Db21wRWZmZWN0IGVmZmVjdCk7CistCQlwdWJsaWMgdm9pZCBtYW5hZ2UgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLkNvbXBvc2l0b3IgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJ cHVibGljIHZvaWQgcXVldWVfZnJhbWVfZHJhd24gKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBu b19kZWxheV9mcmFtZSk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2luZG93IChNZXRhLldpbmRv dyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93 IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJl cik7CistCQlwdWJsaWMgdm9pZCBzaG93X3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRh LkNvbXBFZmZlY3QgZWZmZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfd2luZG93X21lbnUgKE1l dGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkp OworLQkJcHVibGljIHZvaWQgc2hvd193aW5kb3dfbWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cg d2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOwor LQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2Vfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1l dGEuU2l6ZUNoYW5nZSB3aGljaF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0 LCBNZXRhLlJlY3RhbmdsZSBvbGRfYnVmZmVyX3JlY3QpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc3RhZ2Vf aXNfZm9jdXNlZCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHN0YWdlX2lzX2ZvY3VzZWQgKE1l dGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChNZXRh LldvcmtzcGFjZSBmcm9tLCBNZXRhLldvcmtzcGFjZSB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24g ZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfc3RhY2sgKEdMaWIuTGlzdDxNZXRhLldp bmRvd0FjdG9yPiBzdGFjayk7CistCQlwdWJsaWMgdm9pZCBzeW5jX3VwZGF0ZXNfZnJvemVuIChN ZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgc3luY193aW5kb3dfZ2VvbWV0cnkg KE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBkaWRfcGxhY2VtZW50KTsKKy0JCXB1YmxpYyB2b2lk IHVubWFuYWdlICgpOworLQkJcHVibGljIHZvaWQgd2luZG93X29wYWNpdHlfY2hhbmdlZCAoTWV0 YS5XaW5kb3cgd2luZG93KTsKKy0JCXB1YmxpYyB2b2lkIHdpbmRvd19zaGFwZV9jaGFuZ2VkIChN ZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgd2luZG93X3N1cmZhY2VfY2hhbmdl ZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3Ry YWNrZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgQ3Vyc29yVHJhY2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBN ZXRhLkN1cnNvclRyYWNrZXIgZ2V0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7Cist CQlwdWJsaWMgdm9pZCBnZXRfaG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMg dm9pZCBnZXRfcG9pbnRlciAoaW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2Rz KTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVi bGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5 ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBz ZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGli LlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0 YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3Ag KE1ldGEuU2NyZWVuIHNjcmVlbiwgTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwg Ym9vbCBwb2ludGVyX2FscmVhZHlfZ3JhYmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0 b24sIHVsb25nIG1vZG1hc2ssIHVpbnQzMiB0aW1lc3RhbXAsIGludCByb290X3gsIGludCByb290 X3kpOworLQkJcHVibGljIHZvaWQgY2xlYXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lk IGVuZF9ncmFiX29wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3Ro ZV9ub19mb2N1c193aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJ cHVibGljIHVub3duZWQgTWV0YS5Db21wb3NpdG9yIGdldF9jb21wb3NpdG9yICgpOworLQkJcHVi bGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3Vy cmVudF90aW1lX3JvdW5kdHJpcCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9i YXNlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRvdyAo KTsKKy0JCXB1YmxpYyBNZXRhLkdyYWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1aW50 IGdldF9rZXliaW5kaW5nX2FjdGlvbiAodWludCBrZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0JCXB1 YmxpYyB1aW50MzIgZ2V0X2xhc3RfdXNlcl90aW1lICgpOworLQkJcHVibGljIGludCBnZXRfc2hh cGVfZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJf Y3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7Cist CQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5U YWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlPyB3b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3du ZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jr c3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRvdz8gd2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0J CXB1YmxpYyB1bm93bmVkIFguRGlzcGxheSBnZXRfeGRpc3BsYXkgKCk7CistCQlwdWJsaWMgaW50 IGdldF94aW5wdXRfb3Bjb2RlICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAo c3RyaW5nIGFjY2VsZXJhdG9yKTsKKy0JCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKy0JCXB1 YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2Vx dWVuY2U/IHNlcXVlbmNlKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuR3JvdXAgbG9va3VwX2dy b3VwIChYLldpbmRvdyBncm91cF9sZWFkZXIpOworLQkJcHVibGljIGJvb2wgcmVtb3ZlX2tleWJp bmRpbmcgKHN0cmluZyBuYW1lKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5k b3cgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3Nf Ynlfc3RhY2tpbmcgKEdMaWIuU0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOworLQkJcHVibGlj IGJvb2wgc3VwcG9ydHNfZXh0ZW5kZWRfYmFycmllcnMgKCk7CistCQlwdWJsaWMgdm9pZCB1bmZy ZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB1bmdyYWJf YWNjZWxlcmF0b3IgKHVpbnQgYWN0aW9uX2lkKTsKKy0JCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXli b2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bm1hbmFnZV9zY3JlZW4g KE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB4 c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CistCQlw dWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93 KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2Jq ZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2Jl Z2luIChNZXRhLlNjcmVlbiBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuU2NyZWVuIG9iamVjdCwg TWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBt b2RpZmllcnNfYWNjZWxlcmF0b3JfYWN0aXZhdGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IG92ZXJsYXlfa2V5ICgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlw dWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJl Y3RhbmdsZSBwMCwgaW50IHAxLCBpbnQgcDIpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3df cmVzdGFydF9tZXNzYWdlIChzdHJpbmc/IG1lc3NhZ2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0 KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIpXQor LQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9ncm91cC5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xh c3MgR3JvdXAgeworLQkJcHVibGljIGludCBnZXRfc2l6ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0 YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyBib29sIHByb3BlcnR5X25vdGlm eSAoWC5FdmVudCBldmVudCk7CistCQlwdWJsaWMgdm9pZCB1cGRhdGVfbGF5ZXJzICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgi LCB0eXBlX2lkID0gIm1ldGFfaWRsZV9tb25pdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBJZGxlTW9uaXRvciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1 YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0 YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHVpbnQgYWRkX3Vz ZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFj ayk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2 aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7Cist CQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCist CXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsKKy0JCXB1YmxpYyB1aW50IGdldF9tYXNrICgpOwor LQkJcHVibGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIGdldF9tb2RpZmllcnMgKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19idWlsdGlu ICgpOworLQkJcHVibGljIGJvb2wgaXNfcmV2ZXJzZWQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY25hbWUgPSAibWV0YV9rZXliaW5kaW5n c19zZXRfY3VzdG9tX2hhbmRsZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9t X2hhbmRsZXIgKHN0cmluZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVy KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLkRCdXNJbnRl cmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsK Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLk1vbml0b3JNYW5hZ2VyIEBnZXQgKCk7Cist CQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zvcl9vdXRwdXQgKHVpbnQgaWQpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9w bHVnaW5fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBQbHVnaW4gKCk7CistCQlwdWJsaWMgYm9vbCBiZWdpbl9tb2RhbCAoTWV0 YS5Nb2RhbE9wdGlvbnMgb3B0aW9ucywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9p ZCBjb21wbGV0ZV9kaXNwbGF5X2NoYW5nZSAoYm9vbCBvayk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVzdHJveSAoTWV0YS5XaW5kb3dBY3RvciBh Y3Rvcik7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3Rv ciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBlbmRfbW9kYWwgKHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBnZXRfaW5mbyAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3JlZW4gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX3RpbGVfcHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWJpbmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRp bmcgYmluZGluZyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxs X3N3aXRjaF93b3Jrc3BhY2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBl KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5k b3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRv d0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1p bmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXpl X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcg KE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9t b25pdG9yX251bWJlcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBz aG93X3dpbmRvd19tZW51IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUg bWVudSwgaW50IHgsIGludCB5KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5X aW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNpemVfY2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFj dG9yLCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJh bWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lk IHNpemVfY2hhbmdlX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzdGFydCAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKGludCBmcm9tLCBpbnQg dG8sIE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdm9pZCBzd2l0 Y2hfd29ya3NwYWNlX2NvbXBsZXRlZCAoKTsKKy0gCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCB1bm1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1Ymxp YyB2b2lkIHVubWluaW1pemVfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHhldmVudF9maWx0ZXIgKFguRXZl bnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVl bi5oIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xh c3MgU2NyZWVuIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNjcmVlbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuV29ya3NwYWNlPyBhcHBlbmRfbmV3X3dvcmtzcGFjZSAoYm9vbCBhY3RpdmF0ZSwgdWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0 aXZlX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5k ZXggKCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMg aW50IGdldF9jdXJyZW50X21vbml0b3JfZm9yX3BvcyAoaW50IHgsIGludCB5KTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJl Y3RhbmdsZSBnZXRfbW9uaXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJv b2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGlu dCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlw dWJsaWMgaW50IGdldF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwg TWV0YS5TY3JlZW5EaXJlY3Rpb24gZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMg KCk7CistCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgaW50IGdl dF9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgp OworLQkJcHVibGljIHZvaWQgZ2V0X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0 KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBnZXRfd29ya3NwYWNlX2J5X2lu ZGV4IChpbnQgaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PE1ldGEuV29ya3Nw YWNlPiBnZXRfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHJvb3QgKCk7 CistCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLlNjcmVlbkNv cm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBp bnQgbl9jb2x1bW5zKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzZXRf Y21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3Ig Y3Vyc29yKTsKKy0JCXB1YmxpYyBpbnQgbl93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2Vk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXJ0dXBfc2VxdWVuY2VfY2hhbmdlZCAodm9p ZCogb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9y IChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2lu ZG93X2xlZnRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHdvcmtzcGFjZV9hZGRlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29y a3NwYWNlX3JlbW92ZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtz cGFjZV9zd2l0Y2hlZCAoaW50IG9iamVjdCwgaW50IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBw MSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAi bWV0YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191 bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFNoYWRvdyB7CistCQlwdWJsaWMg dm9pZCBnZXRfYm91bmRzIChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193 aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIENhaXJvLlJlY3RhbmdsZUludCBib3VuZHMpOworLQkJ cHVibGljIHZvaWQgcGFpbnQgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93 X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBj bGlwLCBib29sIGNsaXBfc3RyaWN0bHkpOworLQkJcHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7 CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93 X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBH TGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBN ZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQ YXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlw dWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50 IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQs IE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5n ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLklt cGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFj ZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVk IENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVf bWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFwcyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190 ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9v cGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJs aWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS90aGVtZS5oIildCistCVtDb21wYWN0XQorLQlwdWJs aWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IE1ldGEuVGhlbWUgZ2V0X2RlZmF1bHQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlRoZW1lIEBu ZXcgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93Lmgi LCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93ICgpOworLQkJcHVibGljIHZv aWQgYWN0aXZhdGUgKHVpbnQzMiBjdXJyZW50X3RpbWUpOworLQkJcHVibGljIHZvaWQgYWN0aXZh dGVfd2l0aF93b3Jrc3BhY2UgKHVpbnQzMiBjdXJyZW50X3RpbWUsIE1ldGEuV29ya3NwYWNlIHdv cmtzcGFjZSk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBib29s IGFsbG93c19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBiZWdpbl9ncmFiX29wIChNZXRhLkdy YWJPcCBvcCwgYm9vbCBmcmFtZV9hY3Rpb24sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGlj IGJvb2wgY2FuX2Nsb3NlICgpOworLQkJcHVibGljIGJvb2wgY2FuX21heGltaXplICgpOworLQkJ cHVibGljIGJvb2wgY2FuX21pbmltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX3NoYWRlICgp OworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3Nw YWNlKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBzcGFj ZV9pbmRleCwgYm9vbCBhcHBlbmQpOworLQkJcHVibGljIHZvaWQgY2hlY2tfYWxpdmUgKHVpbnQz MiB0aW1lc3RhbXApOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0X3RvX2Zy YW1lX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIGNv bXB1dGVfZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBAZGVsZXRlICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGZpbmRfcm9vdF9hbmNlc3RvciAoKTsK Ky0JCXB1YmxpYyB2b2lkIGZvY3VzICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lk IGZvcmVhY2hfYW5jZXN0b3IgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJs aWMgdm9pZCBmb3JlYWNoX3RyYW5zaWVudCAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsK Ky0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9yZWN0IChNZXRh LlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9IDAu MSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3NpemUiKV0KKy0JCXB1YmxpYyBpbnRbXSBnZXRfYWxs X21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CistCQlw dWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfY29tcG9zaXRvcl9wcml2YXRlICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNjcmlwdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu RnJhbWUgZ2V0X2ZyYW1lICgpOworLQkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uPyBnZXRf ZnJhbWVfYm91bmRzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9mcmFtZV9yZWN0 ICgpOworLQkJcHVibGljIE1ldGEuRnJhbWVUeXBlIGdldF9mcmFtZV90eXBlICgpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5Hcm91cCBnZXRfZ3JvdXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2d0a19hcHBfbWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9ndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2d0a19tZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9ndGtfdGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29u X2dlb21ldHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgTWV0YS5TdGFj a0xheWVyIGdldF9sYXllciAoKTsKKy0JCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21h eGltaXplZCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X211dHRlcl9oaW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3BpZCAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcm9sZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuU2NyZWVuIGdldF9zY3JlZW4gKCk7CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxl X3NlcXVlbmNlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgp OworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3c/IGdldF90aWxlX21hdGNoICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1l dGEuV2luZG93IGdldF90cmFuc2llbnRfZm9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNl cl90aW1lICgpOworLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF93bV9jbGFzc19pbnN0YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJl Y3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJl Y3RhbmdsZSBnZXRfd29ya19hcmVhX2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJ cHVibGljIFguV2luZG93IGdldF94d2luZG93ICgpOworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVh ZGVyX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19hYm92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3Nw YWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2FuY2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5X aW5kb3cgdHJhbnNpZW50KTsKKy0JCXB1YmxpYyBib29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsK Ky0JCXB1YmxpYyBib29sIGlzX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19oaWRk ZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19tb25pdG9yX3NpemVkICgpOworLQkJcHVibGljIGJv b2wgaXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9wcmltYXJ5 X21vbml0b3IgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vdmVycmlkZV9yZWRpcmVjdCAoKTsKKy0J CXB1YmxpYyBib29sIGlzX3JlbW90ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NjcmVlbl9zaXpl ZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NoYWRlZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3Nr aXBfdGFza2JhciAoKTsKKy0JCXB1YmxpYyB2b2lkIGtpbGwgKCk7CistCQlwdWJsaWMgYm9vbCBs b2NhdGVkX29uX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1Ymxp YyB2b2lkIGxvd2VyICgpOworLQkJcHVibGljIHZvaWQgbWFrZV9hYm92ZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIG1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIG1heGltaXplIChNZXRh Lk1heGltaXplRmxhZ3MgZGlyZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIG1vdmVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywg aW50IHJvb3RfeV9udyk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1 c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95X253LCBpbnQgdywgaW50IGgpOworLQkJ cHVibGljIHZvaWQgbW92ZV90b19tb25pdG9yIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9p ZCByYWlzZSAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3RlZF9ieXBhc3NfY29tcG9zaXRvciAo KTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3RlZF9kb250X2J5cGFzc19jb21wb3NpdG9yICgpOwor LQkJcHVibGljIHZvaWQgc2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7 CistCQlwdWJsaWMgdm9pZCBzZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfaWNvbl9nZW9tZXRyeSAoTWV0YS5SZWN0YW5nbGU/IHJlY3QpOworLQkJcHVibGljIHZv aWQgc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgc2hvdmVfdGl0bGVi YXJfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgYm9vbCBzaG93aW5nX29uX2l0c193b3Jrc3BhY2Ug KCk7CistCQlwdWJsaWMgdm9pZCBzaHV0ZG93bl9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN0 aWNrICgpOworLQkJcHVibGljIGJvb2wgdGl0bGViYXJfaXNfb25zY3JlZW4gKCk7CistCQlwdWJs aWMgdm9pZCB1bm1ha2VfYWJvdmUgKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfZnVsbHNjcmVl biAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJl Y3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCB1 bnNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2hhZGUgKHVpbnQz MiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgdW5zdGljayAoKTsKKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgYWJvdmUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgYXBwZWFyc19mb2N1c2VkIHsgZ2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlY29yYXRlZCB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkZW1hbmRzX2F0dGVudGlvbiB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBmdWxsc2NyZWVuIHsgZ2V0OyB9 CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBfbWVudV9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJ cHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25faWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgZ3RrX2FwcGxpY2F0aW9uX29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5n IGd0a19tZW51YmFyX29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a191 bmlxdWVfYnVzX25hbWUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3dpbmRvd19vYmpl Y3RfcGF0aCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2Fpcm8u U3VyZmFjZSBpY29uIHsgb3duZWQgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBib29sIG1heGltaXplZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENhaXJvLlN1cmZhY2UgbWluaV9pY29uIHsg b3duZWQgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmlt aXplZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2ti YXIgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWlu dCB1c2VyX3RpbWUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5 cGUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCVtDQ29k ZSAoY25hbWUgPSAiZm9jdXMiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmb2N1c2VkICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHBvc2l0aW9uX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgcmFpc2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgd29ya3NwYWNlX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3df YWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRl ci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29u dGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworLQkJcHVibGlj IHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRf eF93aW5kb3cgKCk7CistCQlwdWJsaWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBz aGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJh bWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YV93aW5k b3dfc2hhcGUuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0eXBl X2lkID0gIm1ldGFfd2luZG93X3NoYXBlX2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAi bWV0YV93aW5kb3dfc2hhcGVfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBX aW5kb3dTaGFwZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwdWJsaWMgV2luZG93U2hhcGUgKENhaXJvLlJlZ2lvbiByZWdpb24pOworLQkJcHVibGlj IGJvb2wgZXF1YWwgKE1ldGEuV2luZG93U2hhcGUgc2hhcGVfYik7CistCQlwdWJsaWMgdm9pZCBn ZXRfYm9yZGVycyAoaW50IGJvcmRlcl90b3AsIGludCBib3JkZXJfcmlnaHQsIGludCBib3JkZXJf Ym90dG9tLCBpbnQgYm9yZGVyX2xlZnQpOworLQkJcHVibGljIHVpbnQgaGFzaCAoKTsKKy0JCXB1 YmxpYyBNZXRhLldpbmRvd1NoYXBlIEByZWYgKCk7CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIHRv X3JlZ2lvbiAoaW50IGNlbnRlcl93aWR0aCwgaW50IGNlbnRlcl9oZWlnaHQpOworLQkJcHVibGlj IHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOwor LQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZv aWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfbmVpZ2hib3Ig KE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LlNjcmVlbiBnZXRfc2NyZWVuICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3Jr X2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3Jr X2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgaW5k ZXggKCk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93 cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRh LlN0cnV0PiBzdHJ1dHMpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBu X3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQg d29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2Fk ZGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19y ZW1vdmVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBz dHJ1Y3QgQnV0dG9uTGF5b3V0IHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFy cmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25G dW5jdGlvbltdIGxlZnRfYnV0dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Us IGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIGxl ZnRfYnV0dG9uc19oYXNfc3BhY2VyOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwg YXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRv bkZ1bmN0aW9uW10gcmlnaHRfYnV0dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtd IHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1 Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRh LlNpZGUgc2lkZV90eXBlOworLQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKy0JCXB1YmxpYyBH dGsuQm9yZGVyIHZpc2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7CistCQlw dWJsaWMgR3RrLkJvcmRlciB0b3RhbDsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBQbHVnaW5JbmZvIHsKKy0JCXB1YmxpYyB3 ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGljIHdlYWsgc3RyaW5nIHZlcnNpb247CistCQlwdWJs aWMgd2VhayBzdHJpbmcgYXV0aG9yOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7Cist CQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3JpcHRpb247CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgc3RydWN0IFBsdWdpblZlcnNpb24geworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9t YWpvcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWlub3I7CistCQlwdWJsaWMgdWludCB2ZXJz aW9uX21pY3JvOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMg aW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCQlw dWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChNZXRhLlJl Y3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRh LlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3Rh bmdsZSBzcmMyKTsKKy0JCXB1YmxpYyBib29sIGhvcml6X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xl IHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIGludGVyc2VjdCAoTWV0YS5SZWN0YW5nbGUgc3JjMiwg b3V0IE1ldGEuUmVjdGFuZ2xlIGRlc3QpOworLQkJcHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0YS5S ZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJl Y3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFu Z2xlIHJlY3QyKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVj dCBTaGFkb3dQYXJhbXMgeworLQkJcHVibGljIGludCByYWRpdXM7CistCQlwdWJsaWMgaW50IHRv cF9mYWRlOworLQkJcHVibGljIGludCB4X29mZnNldDsKKy0JCXB1YmxpYyBpbnQgeV9vZmZzZXQ7 CistCQlwdWJsaWMgdWludDggb3BhY2l0eTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1 Y3QgU3RydXQgeworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0 YS5TaWRlIHNpZGU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAi bWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1Ymxp YyBlbnVtIEJhcnJpZXJEaXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ks CistCQlORUdBVElWRV9YLAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElP Tl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKy0JCU1FTlUsCistCQlNSU5JTUlaRSwKKy0JCU1B WElNSVpFLAorLQkJQ0xPU0UsCistCQlTSEFERSwKKy0JCUFCT1ZFLAorLQkJU1RJQ0ssCistCQlV TlNIQURFLAorLQkJVU5BQk9WRSwKKy0JCVVOU1RJQ0ssCistCQlBUFBNRU5VLAorLQkJTEFTVAor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNw cmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3Rf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCist CQlVTk1JTklNSVpFLAorLQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJN RVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIEN1cnNvciB7CistCQlOT05FLAorLQkJREVGQVVMVCwKKy0JCU5PUlRIX1JFU0la RSwKKy0JCVNPVVRIX1JFU0laRSwKKy0JCVdFU1RfUkVTSVpFLAorLQkJRUFTVF9SRVNJWkUsCist CQlTRV9SRVNJWkUsCistCQlTV19SRVNJWkUsCistCQlORV9SRVNJWkUsCistCQlOV19SRVNJWkUs CistCQlNT1ZFX09SX1JFU0laRV9XSU5ET1csCistCQlCVVNZLAorLQkJRE5EX0lOX0RSQUcsCist CQlETkRfTU9WRSwKKy0JCURORF9DT1BZLAorLQkJRE5EX1VOU1VQUE9SVEVEX1RBUkdFVCwKKy0J CVBPSU5USU5HX0hBTkQsCistCQlDUk9TU0hBSVIsCistCQlJQkVBTSwKKy0JCUxBU1QKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1F VEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCist CVtGbGFnc10KKy0JcHVibGljIGVudW0gRGVidWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9D VVMsCistCQlXT1JLQVJFQSwKKy0JCVNUQUNLLAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVO VFMsCistCQlXSU5ET1dfU1RBVEUsCistCQlXSU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQ TEFDRU1FTlQsCistCQlQSU5HLAorLQkJWElORVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZ TkMsCistCQlFUlJPUlMsCistCQlTVEFSVFVQLAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlS RVNJWklORywKKy0JCVNIQVBFUywKKy0JCUNPTVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0Us CistCQlEQlVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEaXJlY3Rpb24gewor LQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NLAorLQkJVVAsCistCQlET1dO LAorLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQg PSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRWRnZVR5cGUg eworLQkJV0lORE9XLAorLQkJTU9OSVRPUiwKKy0JCVNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9FWElUXyIsIHR5 cGVfaWQgPSAibWV0YV9leGl0X2NvZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRXhp dENvZGUgeworLQkJU1VDQ0VTUywKKy0JCUVSUk9SCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9p ZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGlj IGVudW0gRnJhbWVGbGFncyB7CistCQlBTExPV1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUsCist CQlBTExPV1NfQVBQTUVOVSwKKy0JCUFMTE9XU19NSU5JTUlaRSwKKy0JCUFMTE9XU19NQVhJTUla RSwKKy0JCUFMTE9XU19WRVJUSUNBTF9SRVNJWkUsCistCQlBTExPV1NfSE9SSVpPTlRBTF9SRVNJ WkUsCistCQlIQVNfRk9DVVMsCistCQlTSEFERUQsCistCQlTVFVDSywKKy0JCU1BWElNSVpFRCwK Ky0JCUFMTE9XU19TSEFERSwKKy0JCUFMTE9XU19NT1ZFLAorLQkJRlVMTFNDUkVFTiwKKy0JCUlT X0ZMQVNISU5HLAorLQkJQUJPVkUsCistCQlUSUxFRF9MRUZULAorLQkJVElMRURfUklHSFQKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXgg PSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIEZyYW1lVHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0cs CistCQlNT0RBTF9ESUFMT0csCistCQlVVElMSVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0J CUFUVEFDSEVELAorLQkJTEFTVDsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1l dGEuRnJhbWVUeXBlIHR5cGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRh X2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gR3JhYk9wIHsKKy0JCU5PTkUs CistCQlDT01QT1NJVE9SLAorLQkJV0FZTEFORF9QT1BVUCwKKy0JCVdJTkRPV19CQVNFLAorLQkJ RlJBTUVfQlVUVE9OLAorLQkJTU9WSU5HLAorLQkJUkVTSVpJTkdfTlcsCistCQlSRVNJWklOR19O LAorLQkJUkVTSVpJTkdfTkUsCistCQlSRVNJWklOR19FLAorLQkJUkVTSVpJTkdfU1csCistCQlS RVNJWklOR19TLAorLQkJUkVTSVpJTkdfU0UsCistCQlSRVNJWklOR19XLAorLQkJS0VZQk9BUkRf TU9WSU5HLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfVU5LTk9XTiwKKy0JCUtFWUJPQVJEX1JFU0la SU5HX05XLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05F LAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NXLAorLQkJ S0VZQk9BUkRfUkVTSVpJTkdfUywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorLQkJS0VZQk9B UkRfUkVTSVpJTkdfVworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBLZXlC aW5kaW5nQWN0aW9uIHsKKy0JCU5PTkUsCistCQlXT1JLU1BBQ0VfMSwKKy0JCVdPUktTUEFDRV8y LAorLQkJV09SS1NQQUNFXzMsCistCQlXT1JLU1BBQ0VfNCwKKy0JCVdPUktTUEFDRV81LAorLQkJ V09SS1NQQUNFXzYsCistCQlXT1JLU1BBQ0VfNywKKy0JCVdPUktTUEFDRV84LAorLQkJV09SS1NQ QUNFXzksCistCQlXT1JLU1BBQ0VfMTAsCistCQlXT1JLU1BBQ0VfMTEsCistCQlXT1JLU1BBQ0Vf MTIsCistCQlXT1JLU1BBQ0VfTEVGVCwKKy0JCVdPUktTUEFDRV9SSUdIVCwKKy0JCVdPUktTUEFD RV9VUCwKKy0JCVdPUktTUEFDRV9ET1dOLAorLQkJV09SS1NQQUNFX0xBU1QsCistCQlTV0lUQ0hf QVBQTElDQVRJT05TLAorLQkJU1dJVENIX0FQUExJQ0FUSU9OU19CQUNLV0FSRCwKKy0JCVNXSVRD SF9HUk9VUCwKKy0JCVNXSVRDSF9HUk9VUF9CQUNLV0FSRCwKKy0JCVNXSVRDSF9XSU5ET1dTLAor LQkJU1dJVENIX1dJTkRPV1NfQkFDS1dBUkQsCistCQlTV0lUQ0hfUEFORUxTLAorLQkJU1dJVENI X1BBTkVMU19CQUNLV0FSRCwKKy0JCUNZQ0xFX0dST1VQLAorLQkJQ1lDTEVfR1JPVVBfQkFDS1dB UkQsCistCQlDWUNMRV9XSU5ET1dTLAorLQkJQ1lDTEVfV0lORE9XU19CQUNLV0FSRCwKKy0JCUNZ Q0xFX1BBTkVMUywKKy0JCUNZQ0xFX1BBTkVMU19CQUNLV0FSRCwKKy0JCVNIT1dfREVTS1RPUCwK Ky0JCVBBTkVMX01BSU5fTUVOVSwKKy0JCVBBTkVMX1JVTl9ESUFMT0csCistCQlUT0dHTEVfUkVD T1JESU5HLAorLQkJU0VUX1NQRVdfTUFSSywKKy0JCUFDVElWQVRFX1dJTkRPV19NRU5VLAorLQkJ VE9HR0xFX0ZVTExTQ1JFRU4sCistCQlUT0dHTEVfTUFYSU1JWkVELAorLQkJVE9HR0xFX1RJTEVE X0xFRlQsCistCQlUT0dHTEVfVElMRURfUklHSFQsCistCQlUT0dHTEVfQUJPVkUsCistCQlNQVhJ TUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlUT0dHTEVfU0hBREVELAorLQkJTUlOSU1JWkUsCist CQlDTE9TRSwKKy0JCUJFR0lOX01PVkUsCistCQlCRUdJTl9SRVNJWkUsCistCQlUT0dHTEVfT05f QUxMX1dPUktTUEFDRVMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xLAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV80 LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzYsCistCQlN T1ZFX1RPX1dPUktTUEFDRV83LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOCwKKy0JCU1PVkVfVE9f V09SS1NQQUNFXzksCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMCwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzExLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9M RUZULAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfUklHSFQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9V UCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0RPV04sCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MQVNU LAorLQkJTU9WRV9UT19NT05JVE9SX0xFRlQsCistCQlNT1ZFX1RPX01PTklUT1JfUklHSFQsCist CQlNT1ZFX1RPX01PTklUT1JfVVAsCistCQlNT1ZFX1RPX01PTklUT1JfRE9XTiwKKy0JCVJBSVNF X09SX0xPV0VSLAorLQkJUkFJU0UsCistCQlMT1dFUiwKKy0JCU1BWElNSVpFX1ZFUlRJQ0FMTFks CistCQlNQVhJTUlaRV9IT1JJWk9OVEFMTFksCistCQlNT1ZFX1RPX0NPUk5FUl9OVywKKy0JCU1P VkVfVE9fQ09STkVSX05FLAorLQkJTU9WRV9UT19DT1JORVJfU1csCistCQlNT1ZFX1RPX0NPUk5F Ul9TRSwKKy0JCU1PVkVfVE9fU0lERV9OLAorLQkJTU9WRV9UT19TSURFX1MsCistCQlNT1ZFX1RP X1NJREVfRSwKKy0JCU1PVkVfVE9fU0lERV9XLAorLQkJTU9WRV9UT19DRU5URVIsCistCQlPVkVS TEFZX0tFWSwKKy0JCUlTT19ORVhUX0dST1VQLAorLQkJQUxXQVlTX09OX1RPUCwKKy0JCUxBU1QK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZp eCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFn c19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFn cyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRPVywKKy0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNF RAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVm aXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9X SU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwKKy0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVE UkFXLAorLQkJSURMRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0 aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0 YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExvY2FsZURp cmVjdGlvbiB7CistCQlMVFIsCistCQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lk ID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJs aWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0J CUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRp b25zX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTW9kYWxPcHRpb25z IHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAorLQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFC QkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj cHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9u X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwK Ky0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQs CistCQlET1dOX0xFRlQsCistCQlET1dOX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9QUkVGXyIsIHR5cGVfaWQg PSAibWV0YV9wcmVmZXJlbmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFByZWZlcmVu Y2UgeworLQkJTU9VU0VfQlVUVE9OX01PRFMsCistCQlGT0NVU19NT0RFLAorLQkJRk9DVVNfTkVX X1dJTkRPV1MsCistCQlBVFRBQ0hfTU9EQUxfRElBTE9HUywKKy0JCVJBSVNFX09OX0NMSUNLLAor LQkJQUNUSU9OX0RPVUJMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9NSURETEVfQ0xJQ0tf VElUTEVCQVIsCistCQlBQ1RJT05fUklHSFRfQ0xJQ0tfVElUTEVCQVIsCistCQlBVVRPX1JBSVNF LAorLQkJQVVUT19SQUlTRV9ERUxBWSwKKy0JCUZPQ1VTX0NIQU5HRV9PTl9QT0lOVEVSX1JFU1Qs CistCQlUSVRMRUJBUl9GT05ULAorLQkJTlVNX1dPUktTUEFDRVMsCistCQlEWU5BTUlDX1dPUktT UEFDRVMsCistCQlLRVlCSU5ESU5HUywKKy0JCURJU0FCTEVfV09SS0FST1VORFMsCistCQlCVVRU T05fTEFZT1VULAorLQkJV09SS1NQQUNFX05BTUVTLAorLQkJVklTVUFMX0JFTEwsCistCQlBVURJ QkxFX0JFTEwsCistCQlWSVNVQUxfQkVMTF9UWVBFLAorLQkJR05PTUVfQUNDRVNTSUJJTElUWSwK Ky0JCUdOT01FX0FOSU1BVElPTlMsCistCQlDVVJTT1JfVEhFTUUsCistCQlDVVJTT1JfU0laRSwK Ky0JCVJFU0laRV9XSVRIX1JJR0hUX0JVVFRPTiwKKy0JCUVER0VfVElMSU5HLAorLQkJRk9SQ0Vf RlVMTFNDUkVFTiwKKy0JCVdPUktTUEFDRVNfT05MWV9PTl9QUklNQVJZLAorLQkJRFJBR0dBQkxF X0JPUkRFUl9XSURUSCwKKy0JCUFVVE9fTUFYSU1JWkUsCistCQlDRU5URVJfTkVXX1dJTkRPV1Ms CistCQlEUkFHX1RIUkVTSE9MRDsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1l dGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9zY3JlZW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TQ1JFRU5fIiwgdHlwZV9pZCA9ICJtZXRh X3NjcmVlbl9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2NyZWVuQ29ybmVy IHsKKy0JCVRPUExFRlQsCistCQlUT1BSSUdIVCwKKy0JCUJPVFRPTUxFRlQsCistCQlCT1RUT01S SUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZW51bS10 eXBlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVu X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5EaXJlY3Rpb24g eworLQkJVVAsCistCQlET1dOLAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1F VEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIFNoYWRvd01vZGUgeworLQkJQVVUTywKKy0JCUZPUkNFRF9PRkYs CistCQlGT1JDRURfT04KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpZGUgeworLQkJTEVGVCwKKy0JCVJJR0hULAor LQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlw ZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNp emVDaGFuZ2UgeworLQkJTUFYSU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJRlVMTFNDUkVFTiwK Ky0JCVVORlVMTFNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFj a19sYXllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURF U0tUT1AsCistCQlCT1RUT00sCistCQlOT1JNQUwsCistCQlUT1AsCistCQlET0NLLAorLQkJRlVM TFNDUkVFTiwKKy0JCUZPQ1VTRURfV0lORE9XLAorLQkJT1ZFUlJJREVfUkVESVJFQ1QsCistCQlM QVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwg Y3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBUYWJMaXN0IHsKKy0JCU5PUk1BTCwKKy0JCURPQ0tT LAorLQkJR1JPVVAsCistCQlOT1JNQUxfQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVf aWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRh YlNob3dUeXBlIHsKKy0JCUlDT04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIs IHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCistCVtGbGFn c10KKy0JcHVibGljIGVudW0gVmlydHVhbE1vZGlmaWVyIHsKKy0JCVNISUZUX01BU0ssCistCQlD T05UUk9MX01BU0ssCistCQlBTFRfTUFTSywKKy0JCU1FVEFfTUFTSywKKy0JCVNVUEVSX01BU0ss CistCQlIWVBFUl9NQVNLLAorLQkJTU9EMl9NQVNLLAorLQkJTU9EM19NQVNLLAorLQkJTU9ENF9N QVNLLAorLQkJTU9ENV9NQVNLCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVf aWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gV2luZG93Q2xpZW50VHlwZSB7CistCQlXQVlMQU5ELAorLQkJWDExCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lO RE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gV2luZG93TWVudVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAi TUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIild CistCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgeworLQkJTk9STUFMLAorLQkJREVTS1RPUCwKKy0J CURPQ0ssCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCistCQlUT09MQkFSLAorLQkJTUVO VSwKKy0JCVVUSUxJVFksCistCQlTUExBU0hTQ1JFRU4sCistCQlEUk9QRE9XTl9NRU5VLAorLQkJ UE9QVVBfTUVOVSwKKy0JCVRPT0xUSVAsCistCQlOT1RJRklDQVRJT04sCistCQlDT01CTywKKy0J CURORCwKKy0JCU9WRVJSSURFX09USEVSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9y IG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gNS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLlNjcmVlbiBzY3Jl ZW4sIE1ldGEuV2luZG93PyB3aW5kb3csIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktl eUJpbmRpbmcgYmluZGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVm c0NoYW5nZWRGdW5jIChNZXRhLlByZWZlcmVuY2UgcHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGlj IGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFf REVGQVVMVF9JQ09OX05BTUUiKV0KKy0JcHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05f TkFNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZF UlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJ T04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlH SFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9X SURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJT SU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlOT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZF UlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJ VFlfQkVGT1JFX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9S RURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJ T1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3Qg aW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0 IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCistCXB1 YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9Q T0lOVEVSX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMg c3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0 ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg R0xpYi5PcHRpb25Db250ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRf cmVwbGFjZV9jdXJyZW50X3dtICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNf cmVzdGFydCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBxdWl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5n IG1lc3NhZ2UpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K Ky0JcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXli aW5kaW5ncyAoc3RyaW5nIHdtX2tleWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAo c3RyaW5nIHdtX25hbWUpOworLX0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20u dmFsYSB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDI5ZTU5NzdkLi4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9t LnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDYgKzAsMCBAQAorLW5hbWVzcGFjZSBNZXRhIHsK Ky0JcHVibGljIGFic3RyYWN0IGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogTWV0YS5EQnVzRGlzcGxh eUNvbmZpZ1NrZWxldG9uLCBHTGliLkRCdXNJbnRlcmZhY2UgeworLQkJLyogbm90IGV4cG9ydGVk ICovCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JfQorLX0K K2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy5kZXBzIHZhcGkvbGlibXV0dGVyLTMuZGVwcwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2 YXBpL2xpYm11dHRlci0zLmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNh aXJvCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIu MAorLWd0aystMy4wCisteDExCisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAK K2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNC5kZXBzIHZhcGkvbGlibXV0dGVyLTQuZGVwcwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAzNjdjMzViOS4uMDAwMDAwMDAKKy0tLSB2 YXBpL2xpYm11dHRlci00LmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDggKzAsMCBAQAorLWdk ay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1ndGsr LTMuMAorLW11dHRlci1jbHV0dGVyLTQKKy1tdXR0ZXItY29nbC00CisteDExCisteGZpeGVzLTQu MAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci00LnZhcGkgdmFwaS9saWJtdXR0ZXItNC52YXBp CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGUwZDM1NmEwLi4wMDAwMDAwMAorLS0t IHZhcGkvbGlibXV0dGVyLTQudmFwaQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTQyNSArMCwwIEBA CistLyogbGlibXV0dGVyLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlm eS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0 YSIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKy1u YW1lc3BhY2UgTWV0YSB7CistCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIs IGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBmb2N1c19zdGFnZV93aW5kb3cgKE1ldGEuRGlzcGxheSBkaXNwbGF5 LCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9m b3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9nZXRfc3RhZ2VfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZV9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXki KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90b3Bfd2luZG93 X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlz dDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlz cGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lu cHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdp b24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKy0JfQor LQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgcHJlZnNfYmVsbF9pc19hdWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfY2hhbmdl X3dvcmtzcGFjZV9uYW1lIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfY2hhbmdlX3dv cmtzcGFjZV9uYW1lIChpbnQgaSwgc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9k b3VibGVfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGVi YXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRp YyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190 aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hY3Rpb25fcmlnaHRfY2xpY2tfdGl0bGViYXIiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlv bl9yaWdodF9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlh bG9ncyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlh bG9ncyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdXRvX21heGltaXplIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgcHJlZnNfZ2V0X2F1dG9fbWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19yYWlz ZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9hdXRvX3JhaXNlICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X2F1dG9fcmFpc2VfZGVsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZz X2dldF9hdXRvX3JhaXNlX2RlbGF5ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25MYXlvdXQgcHJlZnNfZ2V0X2J1dHRvbl9sYXlv dXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19nZXRfY2VudGVyX25ld193aW5kb3dzIildCistCQlwdWJsaWMgc3Rh dGljIGJvb2wgcHJlZnNfZ2V0X2NlbnRlcl9uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9j b21wb3NpdGluZ19tYW5hZ2VyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2Nv bXBvc2l0aW5nX21hbmFnZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9j dXJzb3JfdGhlbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNfZ2V0 X2N1cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9kaXNhYmxlX3dvcmthcm91bmRzIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfZHJhZ190aHJlc2hvbGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZz X2dldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dp ZHRoIildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfZHJhZ2dhYmxlX2JvcmRlcl93 aWR0aCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9keW5hbWljX3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBwcmVmc19nZXRfZHluYW1pY193b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2VkZ2VfdGlsaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2VkZ2VfdGls aW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVz dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19tb2RlIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNr dG9wLkZvY3VzTW9kZSBwcmVmc19nZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1 c19uZXdfd2luZG93cyIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1c05ld1dpbmRv d3MgcHJlZnNfZ2V0X2ZvY3VzX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvcmNlX2Z1 bGxzY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZm9yY2VfZnVsbHNj cmVlbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5IildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19n ZXRfZ25vbWVfYW5pbWF0aW9ucyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9n bm9tZV9hbmltYXRpb25zICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCist CQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGlu Z19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIp XQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tb2RzIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEu VmlydHVhbE1vZGlmaWVyIHByZWZzX2dldF9tb3VzZV9idXR0b25fbW9kcyAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9tb3VzZV9idXR0b25fcmVzaXplIildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19n ZXRfbW91c2VfYnV0dG9uX3Jlc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9udW1fd29ya3NwYWNlcyIp XQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X251bV93b3Jrc3BhY2VzICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNrIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNf Z2V0X3JhaXNlX29uX2NsaWNrICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21l bnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBf bWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF90aXRsZWJhcl9mb250IildCistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgUGFuZ28uRm9udERlc2NyaXB0aW9uIHByZWZzX2dldF90aXRsZWJhcl9mb250ICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJl ZnNfZ2V0X3Zpc3VhbF9iZWxsICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVmlzdWFsQmVsbFR5cGUgcHJlZnNfZ2V0X3Zpc3Vh bF9iZWxsX3R5cGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfd29ya3NwYWNlX25hbWUiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNfZ2V0X3dvcmtzcGFjZV9uYW1lIChpbnQgaSk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBwcmVmc19nZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19pbml0IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfaW5pdCAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNf c2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dv cmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFj ZXMgKGludCBuX3dvcmtzcGFjZXMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21l bnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBf bWVudSAoYm9vbCB3aGV0aGVyKTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJi b3NlX3RvcGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1l dGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9u IildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2Fj dGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlw dWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4p OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAi bWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2Fs ZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmci KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGlu dCBncmF2aXR5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfaXNfZGVidWdnaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNf ZGVidWdnaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV9pc19zeW5jaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNf c3luY2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfaXNfdmVyYm9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3Zl cmJvc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBj bmFtZSA9ICJtZXRhX2lzX3dheWxhbmRfY29tcG9zaXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIGlzX3dheWxhbmRfY29tcG9zaXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMg c3RhdGljIHVpbnQgbGF0ZXJfYWRkIChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNv dXJjZUZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IGxhdGVyX3JlbW92ZSAodWludCBsYXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4IildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNn X3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1l dGFfcmVjdCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgs IGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVn VG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxvZyIpXQorLQkJcHVibGljIHN0YXRpYyBHTGliLlBp ZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJpbmcgdGltZW91 dCwgc3RyaW5nIGRpc3BsYXksIHN0cmluZyBva190ZXh0LCBzdHJpbmcgY2FuY2VsX3RleHQsIHN0 cmluZyBpY29uX25hbWUsIGludCB0cmFuc2llbnRfZm9yLCBHTGliLlNMaXN0PHZvaWQqPiBjb2x1 bW5zLCBHTGliLlNMaXN0PHZvaWQqPiBlbnRyaWVzKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19lcXVhbCIp XQorLQkJcHVibGljIHN0YXRpYyBpbnQgdW5zaWduZWRfbG9uZ19lcXVhbCAodm9pZCogdjEsIHZv aWQqIHYyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNu YW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19oYXNoIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQg dW5zaWduZWRfbG9uZ19oYXNoICh2b2lkKiB2KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcG9wIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX2Vycm9yX3RyYXBfcG9wIChNZXRhLlgxMURpc3BsYXkg eDExX2Rpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4iKV0KKy0JCXB1 YmxpYyBzdGF0aWMgaW50IHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiAoTWV0YS5YMTFE aXNwbGF5IHgxMV9kaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIHgxMV9lcnJvcl90cmFwX3B1c2ggKE1ldGEuWDExRGlzcGxheSB4MTFfZGlz cGxheSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNr ZW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0LCBHTGliLkluaXRhYmxlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBC YWNrZW5kICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNr ZW5kLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9iYWNrZW5kIildCistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgTWV0YS5CYWNrZW5kIGdldF9iYWNrZW5kICgpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5EbmQgZ2V0X2RuZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNzQ29u dHJvbGxlciBnZXRfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyICgpOworLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2UgKCk7CistCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91 dF9ncm91cCAodWludCBpZHgpOworLQkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxh eW91dHMsIHN0cmluZyB2YXJpYW50cywgc3RyaW5nIG9wdGlvbnMpOworLQkJcHVibGljIHZvaWQg c2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg a2V5bWFwX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9n cm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9k ZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lz X2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dy b3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1 YmxpYyBCYWNrZ3JvdW5kIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgc3RhdGlj IHZvaWQgcmVmcmVzaF9hbGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmls ZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5C YWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVy LkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwg R0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFk aWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0 ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVu dG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNw bGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5k IChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGll bnQgKGJvb2wgZW5hYmxlZCwgaW50IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVi bGljIHZvaWQgc2V0X21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF92 aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVz cyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFj a2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBkb3VibGUgYnJpZ2h0bmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIGdyYWRpZW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGludCBncmFkaWVudF9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIGdyYWRpZW50X21heF9kYXJrbmVz cyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRp c3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGludCBtb25pdG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdmlnbmV0dGUgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIHZpZ25ldHRlX3NoYXJw bmVzcyB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9n cm91cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEdyb3VwIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJh Y2tncm91bmRHcm91cCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2lt YWdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2UgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3N1Y2Nl c3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19sb2FkZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbG9hZGVk ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfY2FjaGVfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZUNhY2hlIDogR0xpYi5P YmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHJvdGVjdGVkIEJhY2tncm91bmRJbWFnZUNhY2hlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIE1ldGEuQmFja2dyb3VuZEltYWdlQ2FjaGUgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMg TWV0YS5CYWNrZ3JvdW5kSW1hZ2UgbG9hZCAoR0xpYi5GaWxlIGZpbGUpOworLQkJcHVibGljIHZv aWQgcHVyZ2UgKEdMaWIuRmlsZSBmaWxlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Jh cnJpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXIgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgQmFycmllciAoKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19hY3RpdmUgKCk7CistCQlwdWJsaWMgdm9pZCByZWxlYXNlIChNZXRhLkJhcnJpZXJF dmVudCBldmVudCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJp ZXJEaXJlY3Rpb24gZGlyZWN0aW9ucyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29u c3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgyIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5 MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBp bnQgeTIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0 YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEu QmFycmllckV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZXZlbnRfZ2V0 X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyRXZlbnQgewor LQkJcHVibGljIGludCBkdDsKKy0JCXB1YmxpYyBkb3VibGUgZHg7CistCQlwdWJsaWMgZG91Ymxl IGR5OworLQkJcHVibGljIGludCBldmVudF9pZDsKKy0JCXB1YmxpYyBib29sIGdyYWJiZWQ7Cist CQlwdWJsaWMgYm9vbCByZWxlYXNlZDsKKy0JCXB1YmxpYyB1aW50MzIgdGltZTsKKy0JCXB1Ymxp YyBkb3VibGUgeDsKKy0JCXB1YmxpYyBkb3VibGUgeTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX2N1cnNvcl90cmFja2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBDdXJzb3JU cmFja2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEN1cnNvclRyYWNrZXIgKCk7CistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgTWV0YS5DdXJzb3JUcmFja2VyIGdldF9mb3JfZGlzcGxheSAoTWV0YS5EaXNw bGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50 IHkpOworLQkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5N b2RpZmllclR5cGUgbW9kcyk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nw cml0ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJs ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0g Im1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2lnbm9yZWRfY3Jv c3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRkX2tleWJpbmRp bmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktleUJpbmRpbmdG bGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsKKy0JCXB1Ymxp YyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5HcmFiT3Agb3As IGJvb2wgcG9pbnRlcl9hbHJlYWR5X2dyYWJiZWQsIGJvb2wgZnJhbWVfYWN0aW9uLCBpbnQgYnV0 dG9uLCB1bG9uZyBtb2RtYXNrLCB1aW50MzIgdGltZXN0YW1wLCBpbnQgcm9vdF94LCBpbnQgcm9v dF95KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyX21vdXNlX21vZGUgKCk7CistCQlwdWJsaWMgdm9p ZCBjbG9zZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBlbmRfZ3JhYl9vcCAo dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAo dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQz MiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBnZXRfY3VycmVudF9tb25pdG9yICgpOworLQkJ cHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRf Y3VycmVudF90aW1lX3JvdW5kdHJpcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93 IGdldF9mb2N1c193aW5kb3cgKCk7CistCQlwdWJsaWMgTWV0YS5HcmFiT3AgZ2V0X2dyYWJfb3Ag KCk7CistCQlwdWJsaWMgdWludCBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHVpbnQga2V5Y29kZSwg dWxvbmcgbWFzayk7CistCQlwdWJsaWMgdWludDMyIGdldF9sYXN0X3VzZXJfdGltZSAoKTsKKy0J CXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9uaXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3Ip OworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3Ip OworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5n bGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQg d2hpY2hfbW9uaXRvciwgTWV0YS5EaXNwbGF5RGlyZWN0aW9uIGRpcik7CistCQlwdWJsaWMgaW50 IGdldF9uX21vbml0b3JzICgpOworLQkJcHVibGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJl bCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlw ZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRv ciAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhl aWdodCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5 ZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1l dGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIEdM aWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBl LCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2lu ZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtz cGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9vbCBiYWNrd2FyZCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldvcmtzcGFjZU1hbmFnZXIgZ2V0X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJ cHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yLCBNZXRhLktl eUJpbmRpbmdGbGFncyBmbGFncyk7CistCQlwdWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGlu Z19zZXF1ZW5jZSAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7CistCQlwdWJsaWMg Ym9vbCByZW1vdmVfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUpOworLQkJcHVibGljIHZvaWQgcmVx dWVzdF9wYWRfb3NkIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgYm9vbCBlZGl0aW9uX21vZGUp OworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1 YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2lu ZyAoR0xpYi5TTGlzdDxNZXRhLldpbmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBw b3J0c19leHRlbmRlZF9iYXJyaWVycyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJv YXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRv ciAodWludCBhY3Rpb25faWQpOworLQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50 MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVp bnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193 aW5kb3cgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0 ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBjdXJzb3JfdXBkYXRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1v cnlfcHVyZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEu RGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2lu ZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNj cmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVy YXRvcl9hY3RpdmF0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2 aWNlIG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVz dGFja2VkICgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgc2hvd19vc2QgKGludCBvYmplY3QsIHN0cmluZyBwMCwgc3RyaW5nIHAxKTsK Ky0JCXB1YmxpYyBzaWduYWwgdW5vd25lZCBDbHV0dGVyLkFjdG9yPyBzaG93X3BhZF9vc2QgKENs dXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBzdHJpbmcgbGF5 b3V0X3BhdGgsIGJvb2wgZWRpdGlvbl9tb2RlLCBpbnQgbW9uaXRvcl9pZHgpOworLQkJcHVibGlj IHNpZ25hbCBib29sIHNob3dfcmVzaXplX3BvcHVwIChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5n bGUgcDAsIGludCBwMSwgaW50IHAyKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3Rh cnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93 aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfY3Jl YXRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3df ZGVtYW5kc19hdHRlbnRpb24gKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgd2luZG93X2VudGVyZWRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19sZWZ0X21vbml0b3IgKGludCBvYmplY3Qs IE1ldGEuV2luZG93IHAwKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbWFya2VkX3Vy Z2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJl YXNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5n ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg RG5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIERuZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRf ZW50ZXIgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIGRuZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNs YXNzIEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2lkbGVfbW9uaXRvcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgSWRsZU1vbml0b3IgOiBHTGliLk9iamVjdCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg SWRsZU1vbml0b3IgKCk7CistCQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGlu dGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsK Ky0JCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9u aXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEu SWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5J ZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgaW50 NjQgZ2V0X2lkbGV0aW1lICgpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlk KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5k aW5nX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgS2V5QmluZGlu ZyB7CistCQlwdWJsaWMgdWludCBnZXRfbWFzayAoKTsKKy0JCXB1YmxpYyBNZXRhLlZpcnR1YWxN b2RpZmllciBnZXRfbW9kaWZpZXJzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9u YW1lICgpOworLQkJcHVibGljIGJvb2wgaXNfYnVpbHRpbiAoKTsKKy0JCXB1YmxpYyBib29sIGlz X3JldmVyc2VkICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9j dXN0b21faGFuZGxlciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxl ciAoc3RyaW5nIG5hbWUsIG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfbGF1bmNoX2NvbnRleHRfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIExhdW5jaENvbnRleHQgOiBHTGliLkFwcExhdW5jaENvbnRleHQgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIExh dW5jaENvbnRleHQgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfdGltZXN0YW1wICh1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNldF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdv cmtzcGFjZSk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkg ZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyB1aW50IHRpbWVzdGFtcCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNl dDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBNb25pdG9yTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25p dG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9zd2l0Y2hfY29uZmlnICgpOworLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1 YmxpYyBzdGF0aWMgaW50IGdldF9kaXNwbGF5X2NvbmZpZ3VyYXRpb25fdGltZW91dCAoKTsKKy0J CXB1YmxpYyBib29sIGdldF9pc19idWlsdGluX2Rpc3BsYXlfb24gKCk7CistCQlwdWJsaWMgaW50 IGdldF9tb25pdG9yX2Zvcl9jb25uZWN0b3IgKHN0cmluZyBjb25uZWN0b3IpOworLQkJcHVibGlj IE1ldGEuTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgZ2V0X3N3aXRjaF9jb25maWcgKCk7CistCQlw dWJsaWMgdm9pZCBzd2l0Y2hfY29uZmlnIChNZXRhLk1vbml0b3JTd2l0Y2hDb25maWdUeXBlIGNv bmZpZ190eXBlKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2Vu ZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0 b3JzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9p bnRlcm5hbCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdl ZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdp bi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1Ymxp YyBib29sIGJlZ2luX21vZGFsIChNZXRhLk1vZGFsT3B0aW9ucyBvcHRpb25zLCB1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGNvbXBsZXRlX2Rpc3BsYXlfY2hhbmdlIChib29sIG9r KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbmZpcm1fZGlzcGxh eV9jaGFuZ2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0 cm95IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lfY29t cGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9tb2Rh bCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0 X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZv ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV90aWxlX3By ZXZpZXcgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXliaW5k aW5nX2ZpbHRlciAoTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF9zd2l0Y2hfd29ya3NwYWNlICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5X aW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1 Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQg bWFwX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBtaW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7 CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0 b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgTWV0YS5QbHVn aW5JbmZvPyBwbHVnaW5faW5mbyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHNob3dfdGlsZV9wcmV2aWV3IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuUmVjdGFu Z2xlIHRpbGVfcmVjdCwgaW50IHRpbGVfbW9uaXRvcl9udW1iZXIpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2lu ZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChN ZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5n bGUgcmVjdCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2No YW5nZSAoTWV0YS5XaW5kb3dBY3RvciBhY3RvciwgTWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5n ZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZm ZXJfcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaXplX2NoYW5nZV9jb21wbGV0ZWQgKE1ldGEuV2lu ZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg c2l6ZV9jaGFuZ2VkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgc3dpdGNoX3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5N b3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3Bh Y2VfY29tcGxldGVkICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg dW5taW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCB1bm1p bmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCB4ZXZlbnRfZmlsdGVyIChYLkV2ZW50IGV2ZW50KTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIu T2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NDb250cm9sbGVyICgpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzSGFuZGxlIDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90 ZUFjY2Vzc0hhbmRsZSAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBzdG9wcGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyB7CistCQlwdWJsaWMg aW50IGdldF9mb250X2RwaSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3VpX3NjYWxpbmdfZmFjdG9y ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9p ZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hh ZG93X3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1 YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2lu ZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7 CistCQlwdWJsaWMgdm9pZCBwYWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50 IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVp Z2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3Rs eSk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVm ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93 RmFjdG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3Rvcnkg Z2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAo c3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cg Z2V0X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LCBzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9w YXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1z IEBwYXJhbXMpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1 dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChD YWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUg Z2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wg Y3JlYXRlX21pcG1hcHMpOworLQkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5U ZXh0dXJlIG1hc2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAo b3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRl X2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9z b3VuZF9wbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNvdW5kUGxheWVyIDog R0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIFNvdW5kUGxheWVyICgpOworLQkJcHVibGljIHZvaWQgcGxheV9mcm9t X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFi bGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fdGhlbWUg KHN0cmluZyBuYW1lLCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNl bGxhYmxlID0gbnVsbCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgU3RhZ2UgKCk7CistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZm9jdXNlZCAo TWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjdG9yc19wYWlu dGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9ub3RpZmljYXRpb25f Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRpb24gOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNhdGlvbiAoKTsKKy0JCXB1YmxpYyBNZXRhLkxhdW5j aENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5 cGVfaWQgPSAibWV0YV9zdGFydHVwX3NlcXVlbmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBTdGFydHVwU2VxdWVuY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cFNlcXVlbmNlICgp OworLQkJcHVibGljIHZvaWQgY29tcGxldGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWNvbl9uYW1lICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFt ZSAoKTsKKy0JCXB1YmxpYyB1aW50NjQgZ2V0X3RpbWVzdGFtcCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAo KTsKKy0JCXB1YmxpYyBzdHJpbmcgYXBwbGljYXRpb25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJcHVibGljIHN0cmluZyBpY29uX25hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGlj IHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHVpbnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyB3bWNsYXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgewor LQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRv d19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5P YmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHJvdGVjdGVkIFdpbmRvdyAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlICh1aW50MzIgY3Vy cmVudF90aW1lKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlX3dpdGhfd29ya3NwYWNlICh1aW50 MzIgY3VycmVudF90aW1lLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIGJv b2wgYWxsb3dzX21vdmUgKCk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfcmVzaXplICgpOworLQkJ cHVibGljIHZvaWQgYmVnaW5fZ3JhYl9vcCAoTWV0YS5HcmFiT3Agb3AsIGJvb2wgZnJhbWVfYWN0 aW9uLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIGNhbl9jbG9zZSAoKTsKKy0J CXB1YmxpYyBib29sIGNhbl9tYXhpbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9taW5pbWl6 ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9zaGFkZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5n ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBj aGFuZ2Vfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgc3BhY2VfaW5kZXgsIGJvb2wgYXBwZW5kKTsK Ky0JCXB1YmxpYyB2b2lkIGNoZWNrX2FsaXZlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyBNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdF90b19mcmFtZV9yZWN0IChNZXRhLlJlY3Rhbmds ZSBjbGllbnRfcmVjdCk7CistCQlwdWJsaWMgdm9pZCBjb21wdXRlX2dyb3VwICgpOworLQkJcHVi bGljIHZvaWQgQGRlbGV0ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldpbmRvdyBmaW5kX3Jvb3RfYW5jZXN0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1cyAo dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2FuY2VzdG9yIChNZXRh LldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF90cmFuc2ll bnQgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5n bGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGlj IHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldp bmRvd0NsaWVudFR5cGUgZ2V0X2NsaWVudF90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgR0xp Yi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkg Z2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFt ZV9ib3VuZHMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7 CistCQlwdWJsaWMgTWV0YS5GcmFtZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBfbWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19tZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29s IGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMg dWludDY0IGdldF9pZCAoKTsKKy0JCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgp OworLQkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworLQkJcHVi bGljIGludCBnZXRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbXV0 dGVyX2hpbnRzICgpOworLQkJcHVibGljIGludCBnZXRfcGlkICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9yb2xlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zYW5k Ym94ZWRfYXBwX2lkICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3N0YWJsZV9zZXF1ZW5jZSAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV2luZG93PyBnZXRfdGlsZV9tYXRjaCAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfdGl0bGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRf dHJhbnNpZW50X2ZvciAoKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X3VzZXJfdGltZSAoKTsKKy0J CXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgZ2V0X3dpbmRvd190eXBlICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF93bV9jbGFzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfd21fY2xhc3NfaW5zdGFuY2UgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dv cmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dv cmtfYXJlYV9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0 X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRv dyBnZXRfeHdpbmRvdyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdyb3VwX2xlYWRlcl9jaGFuZ2VkICgp OworLQkJcHVibGljIGJvb2wgaGFzX2ZvY3VzICgpOworLQkJcHVibGljIGJvb2wgaXNfYWJvdmUg KCk7CistCQlwdWJsaWMgYm9vbCBpc19hbHdheXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlw dWJsaWMgYm9vbCBpc19hbmNlc3Rvcl9vZl90cmFuc2llbnQgKE1ldGEuV2luZG93IHRyYW5zaWVu dCk7CistCQlwdWJsaWMgYm9vbCBpc19hdHRhY2hlZF9kaWFsb2cgKCk7CistCQlwdWJsaWMgYm9v bCBpc19jbGllbnRfZGVjb3JhdGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfZnVsbHNjcmVlbiAo KTsKKy0JCXB1YmxpYyBib29sIGlzX2hpZGRlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX21vbml0 b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0J CXB1YmxpYyBib29sIGlzX29uX3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIGlz X292ZXJyaWRlX3JlZGlyZWN0ICgpOworLQkJcHVibGljIGJvb2wgaXNfcmVtb3RlICgpOworLQkJ cHVibGljIGJvb2wgaXNfc2NyZWVuX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2hhZGVk ICgpOworLQkJcHVibGljIGJvb2wgaXNfc2tpcF90YXNrYmFyICgpOworLQkJcHVibGljIHZvaWQg a2lsbCAoKTsKKy0JCXB1YmxpYyBib29sIGxvY2F0ZWRfb25fd29ya3NwYWNlIChNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQgbG93ZXIgKCk7CistCQlwdWJsaWMgdm9p ZCBtYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgbWFrZV9mdWxsc2NyZWVuICgpOworLQkJ cHVibGljIHZvaWQgbWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0J CXB1YmxpYyB2b2lkIG1pbmltaXplICgpOworLQkJcHVibGljIHZvaWQgbW92ZV9mcmFtZSAoYm9v bCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95X253KTsKKy0JCXB1YmxpYyB2b2lk IG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290 X3lfbncsIGludCB3LCBpbnQgaCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGlu dCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVx dWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2Rv bnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9w cml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0 dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3Rh bmdsZT8gcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaGFkZSAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCBzaG92ZV90aXRsZWJhcl9vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29s IHNob3dpbmdfb25faXRzX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNodXRkb3duX2dy b3VwICgpOworLQkJcHVibGljIHZvaWQgc3RpY2sgKCk7CistCQlwdWJsaWMgYm9vbCB0aXRsZWJh cl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIHVubWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5tYXhpbWl6 ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgdW5taW5p bWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJ cHVibGljIHZvaWQgdW5zaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1 bnN0aWNrICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhYm92ZSB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhcHBlYXJzX2Zv Y3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVj b3JhdGVkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRl bWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51 X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9p ZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGgg eyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3VuaXF1ZV9idXNfbmFtZSB7IGdldDsgfQorLQkJcHVi bGljIHN0cmluZyBndGtfd2luZG93X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyB2b2lkKiBpY29uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkg eyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHZvaWQqIG1pbmlfaWNv biB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtaW5pbWl6 ZWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgbXV0dGVyX2hpbnRzIHsgZ2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG9uX2FsbF93b3Jrc3BhY2VzIHsgZ2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlc2l6ZWFibGUgeyBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgc2tpcF90YXNrYmFy IHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHVyZ2VudCB7IGdldDsgfQorLQkJcHVibGljIHVpbnQg dXNlcl90aW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIHdpbmRvd190eXBl IHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIHdtX2NsYXNzIHsgZ2V0OyB9CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgcG9zaXRpb25fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBy YWlzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd24gKCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgYWJzdHJhY3QgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRv dyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdl dF90ZXh0dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKy0JCXB1 YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0 eSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNz IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1l dGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgZWZmZWN0c19jb21wbGV0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3Rf ZnJhbWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvd0dyb3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rp b24gPSAibWV0YV93aW5kb3dfc2hhcGVfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19zaGFw ZV9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3VucmVm IildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgV2luZG93U2hhcGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFdpbmRvd1NoYXBl IChDYWlyby5SZWdpb24gcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLldpbmRv d1NoYXBlIHNoYXBlX2IpOworLQkJcHVibGljIHZvaWQgZ2V0X2JvcmRlcnMgKGludCBib3JkZXJf dG9wLCBpbnQgYm9yZGVyX3JpZ2h0LCBpbnQgYm9yZGVyX2JvdHRvbSwgaW50IGJvcmRlcl9sZWZ0 KTsKKy0JCXB1YmxpYyB1aW50IGhhc2ggKCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3dTaGFwZSBA cmVmICgpOworLQkJcHVibGljIENhaXJvLlJlZ2lvbiB0b19yZWdpb24gKGludCBjZW50ZXJfd2lk dGgsIGludCBjZW50ZXJfaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBXb3Jrc3BhY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGlj IHZvaWQgYWN0aXZhdGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZh dGVfd2l0aF9mb2N1cyAoTWV0YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0 aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9h bGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9m b3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsK Ky0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOwor LQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/ PiBzdHJ1dHMpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRv d3MgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3Nw YWNlX2luZGV4IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChN ZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVk IChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3Nw YWNlX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZU1hbmFn ZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlTWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuV29ya3NwYWNlIGFwcGVuZF9uZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9h Y3RpdmVfd29ya3NwYWNlICgpOworLQkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9p bmRleCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7 CistCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlD b3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywg aW50IG5fY29sdW1ucyk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldv cmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBuX3dv cmtzcGFjZXMgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNl X2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5n ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0 KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBp bnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX3gxMV9kaXNwbGF5X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5 IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFgxMURpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c190 aGVfbm9fZm9jdXNfd2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBpbnQgZ2V0 X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAo KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NoYXBlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgYm9v bCBoYXNfc2hhcGUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJ cHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBi b29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHh3aW5k b3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0 eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9j bG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBDbG9zZURpYWxv ZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGZvY3VzICgpOworLQkJ cHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3Zpc2libGUg KCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93ICgpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYWJzdHJhY3QgTWV0YS5XaW5kb3cgd2luZG93IHsgb3duZWQgZ2V0OyBj b25zdHJ1Y3Q7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3Bv bnNlIChNZXRhLkNsb3NlRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBl X2NuYW1lID0gIk1ldGFJbmhpYml0U2hvcnRjdXRzRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9 ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg aW50ZXJmYWNlIEluaGliaXRTaG9ydGN1dHNEaWFsb2cgOiBHTGliLk9iamVjdCB7CistCQlwdWJs aWMgYWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAo KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGFic3RyYWN0IE1ldGEuV2luZG93 IHdpbmRvdyB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCByZXNwb25zZSAoTWV0YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVz cG9uc2UgcmVzcG9uc2UpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIHN0cnVjdCBCdXR0b25MYXlvdXQgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s0XTsK Ky0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCBs ZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRd OworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29s IHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUg cmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworLQkJcHVibGljIE1ldGEuRWRn ZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIHN0cnVjdCBGcmFtZUJvcmRlcnMgeworLQkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsK Ky0JCXB1YmxpYyBHdGsuQm9yZGVyIGludmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHRv dGFsOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlw dWJsaWMgc3RydWN0IFBsdWdpbkluZm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7Cist CQlwdWJsaWMgd2VhayBzdHJpbmcgdmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBhdXRo b3I7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbGljZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmlu ZyBkZXNjcmlwdGlvbjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOwor LQkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWlj cm87CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7 CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRo OworLQkJcHVibGljIGludCBoZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJs aWMgYm9vbCBjb250YWluc19yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZT8gY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9y ZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChN ZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMg Ym9vbCBob3Jpel9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9v bCBpbnRlcnNlY3QgKE1ldGEuUmVjdGFuZ2xlIHNyYzIsIG91dCBNZXRhLlJlY3RhbmdsZSBkZXN0 KTsKKy0JCXB1YmxpYyBib29sIG92ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVi bGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7Cist CQlwdWJsaWMgaW50IHJhZGl1czsKKy0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CistCQlwdWJsaWMg aW50IHhfb2Zmc2V0OworLQkJcHVibGljIGludCB5X29mZnNldDsKKy0JCXB1YmxpYyB1aW50OCBv cGFjaXR5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVj dCBTdHJ1dCB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRh LlNpZGUgc2lkZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9O XyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlb RmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJpZXJEaXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwK Ky0JCVBPU0lUSVZFX1ksCistCQlORUdBVElWRV9YLAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0 b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24g eworLQkJTUVOVSwKKy0JCU1JTklNSVpFLAorLQkJTUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCUxB U1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQT05TRV8iLCB0 eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9uc2UgeworLQkJV0FJVCwKKy0JCUZPUkNFX0NMT1NF CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1l dGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7 CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpFLAorLQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAor LQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAi bWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5P TkUsCistCQlERUZBVUxULAorLQkJTk9SVEhfUkVTSVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJ V0VTVF9SRVNJWkUsCistCQlFQVNUX1JFU0laRSwKKy0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0la RSwKKy0JCU5FX1JFU0laRSwKKy0JCU5XX1JFU0laRSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRP VywKKy0JCUJVU1ksCistCQlETkRfSU5fRFJBRywKKy0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFks CistCQlETkRfVU5TVVBQT1JURURfVEFSR0VULAorLQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NT SEFJUiwKKy0JCUlCRUFNLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfREVC VUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFn c10KKy0JcHVibGljIGVudW0gRGVidWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCist CQlXT1JLQVJFQSwKKy0JCVNUQUNLLAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCist CQlXSU5ET1dfU1RBVEUsCistCQlXSU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1F TlQsCistCQlQSU5HLAorLQkJWElORVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCist CQlFUlJPUlMsCistCQlTVEFSVFVQLAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklO RywKKy0JCVNIQVBFUywKKy0JCUNPTVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlE QlVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERp cmVjdGlvbiB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00sCistCQlV UCwKKy0JCURPV04sCistCQlIT1JJWk9OVEFMLAorLQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIERpc3BsYXlDb3JuZXIgeworLQkJVE9QTEVGVCwK Ky0JCVRPUFJJR0hULAorLQkJQk9UVE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVj dGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKy0J CVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIEVkZ2VUeXBlIHsKKy0JCVdJTkRPVywKKy0JCU1PTklUT1IsCistCQlTQ1JF RU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4 aXRfY29kZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUND RVNTLAorLQkJRVJST1IKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVf aWQgPSAibWV0YV9mcmFtZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1Ymxp YyBlbnVtIEZyYW1lRmxhZ3MgeworLQkJQUxMT1dTX0RFTEVURSwKKy0JCUFMTE9XU19NRU5VLAor LQkJQUxMT1dTX01JTklNSVpFLAorLQkJQUxMT1dTX01BWElNSVpFLAorLQkJQUxMT1dTX1ZFUlRJ Q0FMX1JFU0laRSwKKy0JCUFMTE9XU19IT1JJWk9OVEFMX1JFU0laRSwKKy0JCUhBU19GT0NVUywK Ky0JCVNIQURFRCwKKy0JCVNUVUNLLAorLQkJTUFYSU1JWkVELAorLQkJQUxMT1dTX1NIQURFLAor LQkJQUxMT1dTX01PVkUsCistCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCistCQlBQk9W RSwKKy0JCVRJTEVEX0xFRlQsCistCQlUSUxFRF9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBGcmFtZVR5cGUgeworLQkJTk9STUFMLAorLQkJRElBTE9HLAor LQkJTU9EQUxfRElBTE9HLAorLQkJVVRJTElUWSwKKy0JCU1FTlUsCistCQlCT1JERVIsCistCQlB VFRBQ0hFRCwKKy0JCUxBU1Q7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFf Z3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwK Ky0JCVdJTkRPV19CQVNFLAorLQkJQ09NUE9TSVRPUiwKKy0JCVdBWUxBTkRfUE9QVVAsCistCQlG UkFNRV9CVVRUT04sCistCQlNT1ZJTkcsCistCQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5HX04s CistCQlSRVNJWklOR19ORSwKKy0JCVJFU0laSU5HX0UsCistCQlSRVNJWklOR19TVywKKy0JCVJF U0laSU5HX1MsCistCQlSRVNJWklOR19TRSwKKy0JCVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9N T1ZJTkcsCistCQlLRVlCT0FSRF9SRVNJWklOR19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJ TkdfTlcsCistCQlLRVlCT0FSRF9SRVNJWklOR19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUs CistCQlLRVlCT0FSRF9SRVNJWklOR19FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlL RVlCT0FSRF9SRVNJWklOR19TLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FS RF9SRVNJWklOR19XCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VU U19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2Rp YWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRj dXRzRGlhbG9nUmVzcG9uc2UgeworLQkJQUxMT1csCistCQlERU5ZCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRp bmdfYWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24g eworLQkJTk9ORSwKKy0JCVdPUktTUEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BB Q0VfMywKKy0JCVdPUktTUEFDRV80LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwK Ky0JCVdPUktTUEFDRV83LAorLQkJV09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdP UktTUEFDRV8xMCwKKy0JCVdPUktTUEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktT UEFDRV9MRUZULAorLQkJV09SS1NQQUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09S S1NQQUNFX0RPV04sCistCQlXT1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMs CistCQlTV0lUQ0hfQVBQTElDQVRJT05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJ U1dJVENIX0dST1VQX0JBQ0tXQVJELAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lO RE9XU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tX QVJELAorLQkJQ1lDTEVfR1JPVVAsCistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xF X1dJTkRPV1MsCistCQlDWUNMRV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAor LQkJQ1lDTEVfUEFORUxTX0JBQ0tXQVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJ Tl9NRU5VLAorLQkJUEFORUxfUlVOX0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlT RVRfU1BFV19NQVJLLAorLQkJQUNUSVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFND UkVFTiwKKy0JCVRPR0dMRV9NQVhJTUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRP R0dMRV9USUxFRF9SSUdIVCwKKy0JCVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5N QVhJTUlaRSwKKy0JCVRPR0dMRV9TSEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJ QkVHSU5fTU9WRSwKKy0JCUJFR0lOX1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNF UywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfMywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RP X1dPUktTUEFDRV81LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzcsCistCQlNT1ZFX1RPX1dPUktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwK Ky0JCU1PVkVfVE9fV09SS1NQQUNFXzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlN T1ZFX1RPX1dPUktTUEFDRV8xMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZF X1RPX1dPUktTUEFDRV9SSUdIVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9U T19XT1JLU1BBQ0VfRE9XTiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RP X01PTklUT1JfTEVGVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9O SVRPUl9VUCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCist CQlSQUlTRSwKKy0JCUxPV0VSLAorLQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpF X0hPUklaT05UQUxMWSwKKy0JCU1PVkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJf TkUsCistCQlNT1ZFX1RPX0NPUk5FUl9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9W RV9UT19TSURFX04sCistCQlNT1ZFX1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJ TU9WRV9UT19TSURFX1csCistCQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJ SVNPX05FWFRfR1JPVVAsCistCQlBTFdBWVNfT05fVE9QLAorLQkJU1dJVENIX01PTklUT1IsCist CQlST1RBVEVfTU9OSVRPUiwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tF WV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAo KSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05F LAorLQkJUEVSX1dJTkRPVywKKy0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRCwKKy0JCU5PTl9N QVNLQUJMRSwKKy0JCUlHTk9SRV9BVVRPUkVQRUFUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9MQVRFUl8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBMYXRlclR5cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJ Q0hFQ0tfRlVMTFNDUkVFTiwKKy0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJ SURMRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBl X2lkID0gIm1ldGFfbG9jYWxlX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51 bSBMb2NhbGVEaXJlY3Rpb24geworLQkJTFRSLAorLQkJUlRMCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXgg PSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5 cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhP UklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIild CistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxS RUFEWV9HUkFCQkVELAorLQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNw cmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21v bml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1v bml0b3JTd2l0Y2hDb25maWdUeXBlIHsKKy0JCUFMTF9NSVJST1IsCistCQlBTExfTElORUFSLAor LQkJRVhURVJOQUwsCistCQlCVUlMVElOLAorLQkJVU5LTk9XTgorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4 ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURP V04sCistCQlMRUZULAorLQkJUklHSFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlE T1dOX0xFRlQsCistCQlET1dOX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9QQURf QUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gUGFkQWN0aW9uVHlwZSB7CistCQlCVVRUT04sCistCQlSSU5HLAorLQkJ U1RSSVAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRh X3ByZWZlcmVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7Cist CQlNT1VTRV9CVVRUT05fTU9EUywKKy0JCUZPQ1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9X UywKKy0JCUFUVEFDSF9NT0RBTF9ESUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJ T05fRE9VQkxFX0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJB UiwKKy0JCUFDVElPTl9SSUdIVF9DTElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlB VVRPX1JBSVNFX0RFTEFZLAorLQkJRk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJ VExFQkFSX0ZPTlQsCistCQlOVU1fV09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywK Ky0JCUtFWUJJTkRJTkdTLAorLQkJRElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlP VVQsCistCQlXT1JLU1BBQ0VfTkFNRVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVM TCwKKy0JCVZJU1VBTF9CRUxMX1RZUEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05P TUVfQU5JTUFUSU9OUywKKy0JCUNVUlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVT SVpFX1dJVEhfUklHSFRfQlVUVE9OLAorLQkJRURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NS RUVOLAorLQkJV09SS1NQQUNFU19PTkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVS X1dJRFRILAorLQkJQVVUT19NQVhJTUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURS QUdfVEhSRVNIT0xEOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9z aGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKy0J CUFVVE8sCistCQlGT1JDRURfT0ZGLAorLQkJRk9SQ0VEX09OCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXgg PSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFNpZGUgeworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9N CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1l dGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7 CistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxM U0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1l dGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU3RhY2tMYXllciB7 CistCQlERVNLVE9QLAorLQkJQk9UVE9NLAorLQkJTk9STUFMLAorLQkJVE9QLAorLQkJRE9DSywK Ky0JCU9WRVJSSURFX1JFRElSRUNULAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIFRhYkxpc3QgeworLQkJTk9STUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwK Ky0JCU5PUk1BTF9BTEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5 cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IFRhYlNob3dUeXBlIHsKKy0JCUlDT04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0 X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgewor LQkJU0hJRlRfTUFTSywKKy0JCUNPTlRST0xfTUFTSywKKy0JCUFMVF9NQVNLLAorLQkJTUVUQV9N QVNLLAorLQkJU1VQRVJfTUFTSywKKy0JCUhZUEVSX01BU0ssCistCQlNT0QyX01BU0ssCistCQlN T0QzX01BU0ssCistCQlNT0Q0X01BU0ssCistCQlNT0Q1X01BU0sKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2Ns aWVudF90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd0NsaWVudFR5cGUg eworLQkJV0FZTEFORCwKKy0JCVgxMQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9X X01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gV2luZG93TWVudVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93VHlwZSB7CistCQlOT1JNQUwsCist CQlERVNLVE9QLAorLQkJRE9DSywKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRP T0xCQVIsCistCQlNRU5VLAorLQkJVVRJTElUWSwKKy0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BE T1dOX01FTlUsCistCQlQT1BVUF9NRU5VLAorLQkJVE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwK Ky0JCUNPTUJPLAorLQkJRE5ELAorLQkJT1ZFUlJJREVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFu Y2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1 bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0 YW5jZV9wb3MgPSA0LjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAo TWV0YS5EaXNwbGF5IGRpc3BsYXksIE1ldGEuV2luZG93IHdpbmRvdywgW0NDb2RlICh0eXBlID0g IkNsdXR0ZXJLZXlFdmVudCoiKV0gQ2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5Qmlu ZGluZyBiaW5kaW5nKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIFByZWZzQ2hhbmdlZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVh Y2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5U X1RJTUUiKV0KKy0JcHVibGljIGNvbnN0IGludCBDVVJSRU5UX1RJTUU7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9 ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCistCXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVM VF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCistCXB1Ymxp YyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgi KV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9N QUpPUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JQ1JP X1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVi bGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5J X0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5P Ul9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0J cHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRB X1BSSU9SSVRZX0JFRk9SRV9SRURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9C RUZPUkVfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlki KV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFt ZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZ X1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCistCXB1Ymxp YyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFM X0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZ Qk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIild CistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0J cHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGlj IHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0aW9uQ29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGlj IHN0YXRpYyBib29sIGlzX3Jlc3RhcnQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHF1aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGludCBy dW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5k aW5ncyAoc3RyaW5nIHdtX2tleWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGlj IGJvb2wgeDExX2luaXRfZ2RrX2Rpc3BsYXkgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistfQorZGlm ZiAtLWdpdCB2YXBpL2xpYm11dHRlci01LmRlcHMgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitzaW1p bGFyaXR5IGluZGV4IDUwJQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS5kZXBzCityZW5h bWUgdG8gdmFwaS9saWJtdXR0ZXItNi5kZXBzCitpbmRleCA0OGFhNzU2My4uMjIzNTI1ZTQgMTAw NjQ0CistLS0gdmFwaS9saWJtdXR0ZXItNS5kZXBzCisrKysgdmFwaS9saWJtdXR0ZXItNi5kZXBz CitAQCAtMSw1ICsxLDYgQEAKKyBndGsrLTMuMAorIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY2x1 dHRlci01CisrbXV0dGVyLWNsdXR0ZXItNgorIHgxMQorIHhmaXhlcy00LjAKKytncmFwaGVuZS1n b2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci01LnZhcGkgdmFwaS9saWJtdXR0 ZXItNi52YXBpCitzaW1pbGFyaXR5IGluZGV4IDk3JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0 ZXItNS52YXBpCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXItNi52YXBpCitpbmRleCBiOTVhMjhl Ni4uYjM2YmUxYjcgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0ZXItNS52YXBpCisrKysgdmFwaS9s aWJtdXR0ZXItNi52YXBpCitAQCAtMSwxMiArMSwxMCBAQAorLS8qIGxpYm11dHRlci01LnZhcGkg Z2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTYu dmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUg KGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0g IjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAi TWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9j YXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKyBuYW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBD b21wb3NpdG9yIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxh eSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxh eSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5w dXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVn aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRp cmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGly ZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9m b2N1c19zdGFnZV93aW5kb3ciKV0KK0BAIC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dp bmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93 aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNw bGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxh eSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJ CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQorQEAgLTE2NCw3ICsxNjAsNyBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlwdWJsaWMgdm9pZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNl IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChi b29sIG9iamVjdCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIp XQorQEAgLTE3NCw3ICsxNzAsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGlj IHZvaWQgcmVmcmVzaF9hbGwgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmls ZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5C YWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVy LkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwg R0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9maWxl IChHTGliLkZpbGU/IGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlw dWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRp bmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9j b2xvcik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0 YV9kaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KK0BAIC0yNzUsNyArMjcxLDcgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJp dGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQgb2JqZWN0LCBmbG9hdCBwMCk7CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCB2aXNpYmlsaXR5X2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlf Z2V0X3R5cGUgKCkiKV0KK0BAIC0zMjcsNiArMzIzLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIg dGltZTIpOworIAkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorIAkJ cHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIENs dXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGNs b3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRv dyBwMCwgTWV0YS5HcmFiT3AgcDEpOworQEAgLTM1MCw2ICszNDcsNyBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya2FyZWFzX2NoYW5nZWQgKCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCB4MTFfZGlzcGxheV9vcGVuZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rp c3BsYXlfc2V0dXAgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1kbmQuaCIsIHR5cGVfaWQgPSAibWV0YV9kbmRfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGlj IGNsYXNzIERuZCA6IEdMaWIuT2JqZWN0IHsKK0BAIC0zNzAsMTEgKzM2OCwxMCBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFs X21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1 YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldh dGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1v bml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9u aXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRldmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0 X2lkbGV0aW1lICgpOworIAkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAi Z19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIild CisgCVtDb21wYWN0XQorQEAgLTUzNiwxNSArNTMzLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9z aGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVy ZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBD bHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGljIGNsYXNzIFNo YXBlZFRleHR1cmUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFwZWRUZXh0 dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5n bGVJbnQgY2xpcCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5S ZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90 ZXh0dXJlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0 ZV9taXBtYXBzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVy ZSBtYXNrX3RleHR1cmUpOworIAkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVk IENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVh IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVy X2dldF90eXBlICgpIildCitAQCAtNzU2LDE3ICs3NTIsMTYgQEAgbmFtZXNwYWNlIE1ldGEgewor IAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFj ZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3du ZWQgTWV0YS5XaW5kb3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfdGV4dHVyZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2hhcGVk VGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsK KyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRv dyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7 IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBmaXJzdF9mcmFtZSAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIs IHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNs YXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVy LkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAg LTgxMyw3ICs4MDgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRh LldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2Fj dGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMg KCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2lu ZGV4IChpbnQgaW5kZXgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93 b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93 b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29s IHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMg dm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0 aW1lc3RhbXApOworIAkJcHVibGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3Nw YWNlIHdvcmtzcGFjZSwgaW50IG5ld19pbmRleCk7CitAQCAtODMzLDExICs4MjgsMTMgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3Rl ZCBYMTFEaXNwbGF5ICgpOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9u ICgpOworIAkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMg aW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRf YmFzZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9jbV9zZWxlY3Rpb24gKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9u IChYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9u b19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1l dGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0 X3R5cGUgKCkiKV0KK0BAIC04OTksNyArODk2LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHVpbnQgdmVyc2lvbl9taWNybzsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAi bWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBSZWN0YW5nbGUgeworIAkJcHVibGljIGludCB4Owor IAkJcHVibGljIGludCB5OworQEAgLTE0NDMsNiArMTQ0MCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBz dGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9jbHV0dGVyX2Rl YnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVi dWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0 aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0 cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKK0BAIC0xNDU5LDYgKzE0NTgsOCBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2 b2lkIHJlbW92ZV9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19m bGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVn RmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0 YXRpYyBpbnQgcnVuICgpOworQEAgLTE0NjcsNSArMTQ2OCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3Rf aW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisg CXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5F cnJvcjsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEgdmFwaS9s aWJtdXR0ZXItNy1jdXN0b20udmFsYQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwLi4xZTBiOTE3YworLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTctY3VzdG9t LnZhbGEKK0BAIC0wLDAgKzEsNyBAQAorK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisr cHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUgeworK30KKysKKytbQ0NvZGUgKGhhc190eXBlX2lk ID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3QgZnJhbWUgeworK30KK2RpZmYgLS1naXQgdmFwaS9s aWJtdXR0ZXItNy5kZXBzIHZhcGkvbGlibXV0dGVyLTcuZGVwcworbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwLi4yZWY5MTllZQorLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGli bXV0dGVyLTcuZGVwcworQEAgLTAsMCArMSw2IEBACisrZ3RrKy0zLjAKKytqc29uLWdsaWItMS4w CisrbXV0dGVyLWNsdXR0ZXItNworK3gxMQorK3hmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0 LTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0zLnZhcGkgdmFwaS9saWJtdXR0ZXItNy52 YXBpCitzaW1pbGFyaXR5IGluZGV4IDc1JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItMy52 YXBpCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXItNy52YXBpCitpbmRleCAxNzE1YWE4Zi4uOTBj NDE1OTAgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0ZXItMy52YXBpCisrKysgdmFwaS9saWJtdXR0 ZXItNy52YXBpCitAQCAtMSwxMiArMSwxMCBAQAorLS8qIGxpYm11dHRlci0zLnZhcGkgZ2VuZXJh dGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTcudmFwaSBn ZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVm aXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjMiLCBs b3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIs IGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2Nw cmVmaXggPSAibWV0YV8iKV0KKyBuYW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3Np dG9yIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQor IAkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0 YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVn aW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9m b3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zv cl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19z dGFnZV93aW5kb3ciKV0KK0BAIC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19h Y3RvcnMgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3df Z3JvdXBfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi LCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Y c2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2JlbGxfaXNfYXVkaWJsZSIpXQorQEAgLTQ3LDYgKzQzLDggQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRvbkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91 dCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9jZW50ZXJfbmV3X3dpbmRvd3MiKV0KKyAJCXB1YmxpYyBzdGF0 aWMgYm9vbCBwcmVmc19nZXRfY2VudGVyX25ld193aW5kb3dzICgpOworKwkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2No ZWNrX2FsaXZlX3RpbWVvdXQiKV0KKysJCXB1YmxpYyBzdGF0aWMgdWludCBwcmVmc19nZXRfY2hl Y2tfYWxpdmVfdGltZW91dCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIild CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7 CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUiKV0KK0BAIC03NSw4ICs3Myw2IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJp bGl0eSAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zIildCisgCQlwdWJsaWMgc3Rh dGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfaWdu b3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZz X2dldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyICgpOworIAkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJp bmRpbmdfYWN0aW9uIildCisgCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBw cmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9t b3VzZV9idXR0b25fbWVudSIpXQorQEAgLTEwNSw4ICsxMDEsNiBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfaW5pdCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3Jj ZV9mdWxsc2NyZWVuIildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1 bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfaWdub3JlX3JlcXVlc3RfaGlk ZV90aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9pZ25vcmVfcmVx dWVzdF9oaWRlX3RpdGxlYmFyIChib29sIHdoZXRoZXIpOworIAkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X251bV93b3Jr c3BhY2VzIildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X251bV93b3Jrc3BhY2Vz IChpbnQgbl93b3Jrc3BhY2VzKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51 IildCitAQCAtMTE3LDEyICsxMTEsMTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0 YXRpYyB2b2lkIGFkZF92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworIAkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9l eHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBzdHJp bmcgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rp b24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV9nX3V0Zjhfc3RybmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4 X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24i KV0KKyAJCXB1YmxpYyBzdGF0aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJl Y3Rpb24gKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBj bmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5nIildCistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChpbnQgZ3Jhdml0eSk7CisrCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChNZXRhLkdyYXZpdHkgZ3Jhdml0 eSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9 ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorIAkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2lu ZyAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfaXNfc3luY2luZyIpXQorQEAgLTE2NSwxMiArMTU3LDEzIEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuRG5kIGdldF9kbmQgKCk7CisgCQlwdWJsaWMg dW5vd25lZCBNZXRhLlJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgZ2V0X3JlbW90ZV9hY2Nlc3NfY29u dHJvbGxlciAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgp OworKwkJcHVibGljIGJvb2wgaXNfcmVuZGVyaW5nX2hhcmR3YXJlX2FjY2VsZXJhdGVkICgpOwor IAkJcHVibGljIHZvaWQgbG9ja19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9rZXltYXAgKHN0cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBv cHRpb25zKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZp Y2Ugb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQg KGJvb2wgb2JqZWN0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgp IildCitAQCAtMTgwLDcgKzE3Myw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5G aWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9w LkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0 ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxl LCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2Zp bGUgKEdMaWIuRmlsZT8gZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hh ZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25k X2NvbG9yKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBt ZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorQEAgLTE5MCw5ICsxODMsMTgg QEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJcHVibGljIEJh Y2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKysJCVtO b0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBv d25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMg aW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1jb250ZW50LmgiLCB0eXBlX2lkID0gIm1l dGFfYmFja2dyb3VuZF9jb250ZW50X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCYWNr Z3JvdW5kQ29udGVudCA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworKwkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIEJhY2tncm91 bmRDb250ZW50ICgpOworKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkNvbnRlbnQgQG5ldyAoTWV0 YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNr Z3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf Z3JhZGllbnQgKGJvb2wgZW5hYmxlZCwgaW50IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOwor LQkJcHVibGljIHZvaWQgc2V0X21vbml0b3IgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lk IHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNo YXJwbmVzcyk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkJhY2tncm91 bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9CitAQCAtMjc3LDE0ICsyNzksMTQgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJh Y2tlciBnZXRfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCXB1YmxpYyB2 b2lkIGdldF9ob3QgKG91dCBpbnQgeCwgb3V0IGludCB5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9w b2ludGVyIChpbnQgeCwgaW50IHksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworKwkJcHVi bGljIGJvb2wgZ2V0X3BvaW50ZXJfdmlzaWJsZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wu VGV4dHVyZSBnZXRfc3ByaXRlICgpOworIAkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJs ZSAoYm9vbCB2aXNpYmxlKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEu QmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX2RidXNf ZGlzcGxheV9jb25maWdfc2tlbGV0b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERC dXNEaXNwbGF5Q29uZmlnU2tlbGV0b24gOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xp Yi5EQnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXByb3RlY3RlZCBEQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uICgpOworKwkJcHVi bGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgdmlzaWJpbGl0eV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5 X2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3Qgewor QEAgLTMwOSwzMiArMzExLDM5IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBib29sIGdl dF9tb25pdG9yX2luX2Z1bGxzY3JlZW4gKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgZ2V0 X21vbml0b3JfaW5kZXhfZm9yX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworIAkJcHVibGlj IGludCBnZXRfbW9uaXRvcl9uZWlnaGJvcl9pbmRleCAoaW50IHdoaWNoX21vbml0b3IsIE1ldGEu RGlzcGxheURpcmVjdGlvbiBkaXIpOworKwkJcHVibGljIGZsb2F0IGdldF9tb25pdG9yX3NjYWxl IChpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOworIAkJcHVi bGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQs IE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKyAJ CXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1l dGEuU2VsZWN0aW9uIGdldF9zZWxlY3Rpb24gKCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAo b3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5T b3VuZFBsYXllciBnZXRfc291bmRfcGxheWVyICgpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5X aW5kb3cgZ2V0X3RhYl9jdXJyZW50IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ug d29ya3NwYWNlKTsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3Rh Yl9saXN0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7Cisg CQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0 eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wg YmFja3dhcmQpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2VNYW5hZ2VyIGdldF93 b3Jrc3BhY2VfbWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0 cmluZyBhY2NlbGVyYXRvcik7CisrCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJp bmcgYWNjZWxlcmF0b3IsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzKTsKKyAJCXB1YmxpYyBi b29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/ IHNlcXVlbmNlKTsKKyAJCXB1YmxpYyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFt ZSk7CisgCQlwdWJsaWMgdm9pZCByZXF1ZXN0X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2Ug cGFkLCBib29sIGVkaXRpb25fbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRh LkN1cnNvciBjdXJzb3IpOworKwkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzIChNZXRhLldp bmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVi bGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5n IChHTGliLlNMaXN0PE1ldGEuV2luZG93PiB3aW5kb3dzKTsKKyAJCXB1YmxpYyBib29sIHN1cHBv cnRzX2V4dGVuZGVkX2JhcnJpZXJzICgpOworIAkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9h cmQgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9y ICh1aW50IGFjdGlvbl9pZCk7CisgCQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQz MiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgdW5zZXRfaW5wdXRfZm9jdXMgKHVpbnQzMiB0 aW1lc3RhbXApOworIAkJcHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMy IHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRv dyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAo dWludCBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFj Y2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAs IHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xf dmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2Jl Z2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfZW5kIChNZXRhLkRpc3BsYXkgb2JqZWN0 LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IGluX2Z1bGxzY3JlZW5fY2hhbmdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgYm9vbCBpbml0X3hz ZXJ2ZXIgKEdMaWIuVGFzayBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVy c19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3Zlcmxh eV9rZXkgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVy LklucHV0RGV2aWNlIG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7CitAQCAtMzQ1LDcgKzM1NCw2 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9w b3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGludCBwMik7Cisg CQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2Fn ZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmpl Y3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBv YmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAo TWV0YS5XaW5kb3cgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJl ZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CitAQCAtMzU0LDYgKzM2Miw3 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hh bmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOwor IAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCB4MTFfZGlzcGxheV9zZXR1cCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLWRuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworQEAgLTM2Myw3ICsz NzIsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZl ICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmpl Y3QsIGludCBwMCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlw dWJsaWMgY2xhc3MgRnJhbWUgeworIAl9CitAQCAtMzc0LDEzICszODMsMTIgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJcHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9t c2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJs aWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRj aEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25p dG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0 b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworIAkJcHVibGljIGludDY0IGdldF9p ZGxldGltZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBpZCk7CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5 YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlv biA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0K KyAJcHVibGljIGNsYXNzIEtleUJpbmRpbmcgeworIAkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7 CitAQCAtMzkxLDggKzM5OSwyMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbQ0NvZGUgKGNuYW1l ID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIildCisgCQlwdWJsaWMgc3Rh dGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVyIChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlI YW5kbGVyRnVuYz8gaGFuZGxlcik7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oIiwgdHlwZV9pZCA9ICJtZXRhX2xhdW5jaF9jb250 ZXh0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBMYXVuY2hDb250ZXh0IDogR0xpYi5B cHBMYXVuY2hDb250ZXh0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKysJCXByb3RlY3RlZCBMYXVuY2hDb250ZXh0ICgpOworKwkJcHVibGljIHZvaWQgc2V0 X3RpbWVzdGFtcCAodWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfd29ya3Nw YWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisr CQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQor KwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgdWludCB0aW1lc3RhbXAgeyBnZXQ7IHNl dDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5Xb3Jrc3BhY2Ugd29y a3NwYWNlIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0 b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRv ck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24sIEdMaWIuREJ1c0ludGVy ZmFjZSwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKysJcHVibGljIGNsYXNzIE1vbml0b3JNYW5hZ2Vy IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOworIAkJcHVibGljIGJvb2wgY2Fu X3N3aXRjaF9jb25maWcgKCk7CitAQCAtNDA3LDYgKzQyOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5hbCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBw b3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3Qgewor QEAgLTQzMCw2ICs0NTIsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFjZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMg dmlydHVhbCB2b2lkIGtpbGxfd2luZG93X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3Ip OworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG9jYXRlX3BvaW50ZXIg KCk7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIu VHlwZSBndHlwZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAg KE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworQEAgLTQ2NSwyNiArNDg5LDU2IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJcHVibGljIGNsYXNzIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgOiBHTGliLk9i amVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlw cm90ZWN0ZWQgUmVtb3RlQWNjZXNzQ29udHJvbGxlciAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGli aXRfcmVtb3RlX2FjY2VzcyAoKTsKKysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdF9yZW1vdGVfYWNj ZXNzICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNj ZXNzSGFuZGxlIG9iamVjdCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1v dGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUmVtb3RlQWNj ZXNzSGFuZGxlIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKysJCXB1 YmxpYyBib29sIGdldF9kaXNhYmxlX2FuaW1hdGlvbnMgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHN0b3AgKCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBib29sIGlzX3Jl Y29yZGluZyB7IGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RvcHBl ZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0 eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBT ZWxlY3Rpb24gOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisrCQlwdWJsaWMgU2VsZWN0aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7 CisrCQlwdWJsaWMgR0xpYi5MaXN0PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoTWV0YS5TZWxlY3Rp b25UeXBlIHNlbGVjdGlvbl90eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vd25lciAoTWV0YS5T ZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBNZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7 CisrCQlwdWJsaWMgYXN5bmMgYm9vbCB0cmFuc2Zlcl9hc3luYyAoTWV0YS5TZWxlY3Rpb25UeXBl IHNlbGVjdGlvbl90eXBlLCBzdHJpbmcgbWltZXR5cGUsIHNzaXplX3Qgc2l6ZSwgR0xpYi5PdXRw dXRTdHJlYW0gb3V0cHV0LCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdM aWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCB1bnNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBl IHNlbGVjdGlvbl90eXBlLCBNZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgb3duZXJfY2hhbmdlZCAodWludCBvYmplY3QsIE1ldGEuU2VsZWN0aW9uU291 cmNlIHAwKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX3NvdXJjZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgY2xhc3MgU2VsZWN0aW9uU291cmNlIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlbGVjdGlvblNvdXJj ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIEdMaWIuTGlzdDxzdHJpbmc+IGdldF9taW1ldHlwZXMg KCk7CisrCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBhc3lu YyBHTGliLklucHV0U3RyZWFtIHJlYWRfYXN5bmMgKHN0cmluZyBtaW1ldHlwZSwgR0xpYi5DYW5j ZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGVkICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgZGVhY3RpdmF0ZWQgKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl9zb3VyY2VfbWVtb3J5X2dldF90 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb25Tb3VyY2VNZW1vcnkgOiBNZXRhLlNl bGVjdGlvblNvdXJjZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJNZXRhU2VsZWN0aW9uU291cmNlKiIpXQorKwkJcHVibGljIFNlbGVjdGlvblNv dXJjZU1lbW9yeSAoc3RyaW5nIG1pbWV0eXBlLCBHTGliLkJ5dGVzIGNvbnRlbnQpOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2V0dGluZ3MuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIHsK KyAJCXB1YmxpYyBpbnQgZ2V0X2ZvbnRfZHBpICgpOworIAkJcHVibGljIGludCBnZXRfdWlfc2Nh bGluZ19mYWN0b3IgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIs IHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJt ZXRhX3NoYWRvd191bnJlZiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRh X3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVm IildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKyAJCXB1YmxpYyB2b2lk IGdldF9ib3VuZHMgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRo LCBpbnQgd2luZG93X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJs aWMgdm9pZCBwYWludCAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lk dGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAs IGJvb2wgY2xpcF9zdHJpY3RseSk7CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ29nbC5GcmFtZWJ1 ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3df d2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNs aXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CisgCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsK KyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworIAl9CitAQCAtNDk5LDI4ICs1NTMsNzQgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwg dHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0 dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgewor KwlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRl bnQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJv dGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1h Z2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBn ZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBD b2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21p cG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworIAkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4 dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3Bh cXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGlj IGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIHR5cGVfaWQgPSAi bWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9n ZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0 ZWQgU291bmRQbGF5ZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5G aWxlIGZpbGUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFi bGUgPSBudWxsKTsKKysJCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUs IHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxs KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXN0YWdlLmgi LCB0eXBlX2lkID0gIm1ldGFfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFN0 YWdlIDogQ2x1dHRlci5TdGFnZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFN0YWdlICgpOworIAkJ cHVibGljIHN0YXRpYyBib29sIGlzX2ZvY3VzZWQgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCBhY3RvcnNfcGFpbnRlZCAoKTsKKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgiLCB0eXBl X2lkID0gIm1ldGFfc3RhcnR1cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGlj IGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRpb24gOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlm aWNhdGlvbiAoKTsKKysJCXB1YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVy ICgpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3Bs YXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5n ZWQgKHZvaWQqIG9iamVjdCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCki KV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBTZXF1ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFy dHVwU2VxdWVuY2UgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9u X2lkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfaWNvbl9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKysJCXB1Ymxp YyB1aW50NjQgZ2V0X3RpbWVzdGFtcCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf d21jbGFzcyAoKTsKKysJCXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKysJCXB1YmxpYyBz dHJpbmcgYXBwbGljYXRpb25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmlu ZyBpY29uX25hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpZCB7IGdl dDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsg fQorKwkJcHVibGljIHVpbnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVi bGljIHN0cmluZyB3bWNsYXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBpbnQgd29y a3NwYWNlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtIYXNFbWl0dGVyXQorKwkJcHVibGljIHNp Z25hbCB2b2lkIGNvbXBsZXRlICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3RoZW1lLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1 YmxpYyBjbGFzcyBUaGVtZSB7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2F5bGFuZC1jbGllbnQuaCIsIHR5cGVf aWQgPSAibWV0YV93YXlsYW5kX2NsaWVudF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3Mg V2F5bGFuZENsaWVudCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBXYXlsYW5kQ2xpZW50IChHTGliLlN1YnByb2Nl c3NMYXVuY2hlciBsYXVuY2hlcikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBo aWRlX2Zyb21fd2luZG93X2xpc3QgKE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgYm9v bCBvd25zX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyB2b2lkIHNob3df aW5fd2luZG93X2xpc3QgKE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgR0xpYi5TdWJw cm9jZXNzIHNwYXdudiAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXSBzdHJpbmdbXSBhcmd2KSB0 aHJvd3MgR0xpYi5FcnJvcjsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS93aW5kb3cuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KK0BAIC01NDcsNiArNjQ3LDcgQEAgbmFtZXNw YWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50 X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3QpOworIAkJcHVibGljIE1ldGEuUmVjdGFu Z2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xp ZW50X21hY2hpbmUgKCk7CisrCQlwdWJsaWMgTWV0YS5XaW5kb3dDbGllbnRUeXBlIGdldF9jbGll bnRfdHlwZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9y X3ByaXZhdGUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgp OworIAkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworQEAgLTU2 MSw2ICs2NjIsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2d0a191bmlxdWVfYnVzX25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2d0a193aW5kb3dfb2JqZWN0X3BhdGggKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaWNvbl9nZW9t ZXRyeSAob3V0IE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworKwkJcHVibGljIHVpbnQ2NCBnZXRfaWQg KCk7CisgCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsKKyAJCXB1YmxpYyBN ZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21v bml0b3IgKCk7CitAQCAtNjEwLDggKzcxMiw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGlu dCByb290X3lfbncsIGludCB3LCBpbnQgaCk7CisgCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0 b3IgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJv b2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVz dGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9z aXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kZW1h bmRzX2F0dGVudGlvbiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRh LlJlY3RhbmdsZT8gcmVjdCk7CitAQCAtNjcyLDI0ICs3NzIsMjUgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNob3duICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IHNpemVfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rv cl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dB Y3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBXaW5kb3dBY3RvciAo KTsKKysJCXB1YmxpYyB2b2lkIGZyZWV6ZSAoKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBn ZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAo KTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsK KyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlz aWJpbGl0eSAoKTsKKysJCXB1YmxpYyB2b2lkIHRoYXcgKCk7CisgCQlwdWJsaWMgTWV0YS5XaW5k b3cgbWV0YV93aW5kb3cgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgc3RyaW5nIHNoYWRvd19jbGFzcyB7IG93bmVkIGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hhZG93X21vZGUg eyBnZXQ7IHNldDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRhbWFnZWQgKCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21wbGV0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgZmlyc3RfZnJhbWUgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdGhhd2VkICgpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWdyb3VwLmgi LCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dyb3VwX2dldF90eXBlICgpIildCisgCXB1YmxpYyBj bGFzcyBXaW5kb3dHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRl ci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BA IC03MjAsNyArODIxLDkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFu Z2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKyAJCXB1 YmxpYyBpbnQgaW5kZXggKCk7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+ IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xp Yi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMpOworKwkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5f c3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworKwkJW05vQWNjZXNzb3JN ZXRob2RdCisrCQlwdWJsaWMgYm9vbCBhY3RpdmUgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJcHVibGljIHVpbnQgbl93aW5kb3dzIHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KK0BAIC03MzYsMjcgKzgzOSwzMyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg dW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1Ymxp YyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9u X3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29y a3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jr c3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9p ZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdf Y29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7 CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3Bh Y2UsIHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2Ug KE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgaW50IG5ld19pbmRleCk7CisrCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbGF5b3V0X2NvbHVtbnMgeyBnZXQ7IH0KKysJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGludCBsYXlvdXRfcm93cyB7IGdldDsgfQorIAkJcHVi bGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3Rp dmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19k ZXNrdG9wX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVk IChpbnQgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAo aW50IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChp bnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCB3b3Jrc3BhY2VzX3Jlb3JkZXJlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFf eDExX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBH TGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlwcm90ZWN0ZWQgWDExRGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9u b19mb2N1c193aW5kb3cgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgY2xlYXJf c3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jh c2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworIAkJcHVibGljIGlu dCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRf aW5wdXRfZm9jdXNfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUs IHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lv biAoWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ff bm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIiwgdHlwZV9jbmFtZSA9ICJN ZXRhQ2xvc2VEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX2dl dF90eXBlICgpIildCitAQCAtNzc5LDI0ICs4ODgsMjQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ W0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuSW5oaWJp dFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHJlc3BvbnNlKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKyAJcHVibGljIHN0cnVjdCBCdXR0b25MYXlvdXQgeworIAkJW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRf YnV0dG9uc1s1XTsKKysJCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0 b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2Vh ayBib29sIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyWzVdOworKwkJcHVibGljIHdlYWsgYm9vbCBs ZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzVd OworKwkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOwor IAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJp Z2h0X2J1dHRvbnNfaGFzX3NwYWNlcls1XTsKKysJCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0 dG9uc19oYXNfc3BhY2VyWzRdOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBz dHJ1Y3QgRWRnZSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKyAJCXB1YmxpYyBN ZXRhLlNpZGUgc2lkZV90eXBlOworIAkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7 CisgCQlwdWJsaWMgR3RrLkJvcmRlciB2aXNpYmxlOworIAkJcHVibGljIEd0ay5Cb3JkZXIgaW52 aXNpYmxlOworQEAgLTgxMSwxNCArOTIwLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyB3ZWFrIHN0cmluZyBsaWNlbnNlOworIAkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9u OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGx1Z2lu VmVyc2lvbiB7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworIAkJcHVibGljIHVpbnQg dmVyc2lvbl9taW5vcjsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CisgCQlwdWJsaWMg dWludCB2ZXJzaW9uX2FwaTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9ib3hlcy5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0g ImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9 ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IFJlY3Rhbmds ZSB7CisgCQlwdWJsaWMgaW50IHg7CisgCQlwdWJsaWMgaW50IHk7CitAQCAtODM2LDcgKzk0NSw3 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0 YS5SZWN0YW5nbGUgcmVjdDIpOworIAkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJl Y3RhbmdsZSByZWN0Mik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CisgCQlwdWJsaWMgaW50IHJhZGl1czsKKyAJ CXB1YmxpYyBpbnQgdG9wX2ZhZGU7CitAQCAtODQ0LDEyICs5NTMsMTIgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJcHVibGljIGludCB5X29mZnNldDsKKyAJCXB1YmxpYyB1aW50OCBvcGFjaXR5Owor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworIAkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CisgCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9 ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVj dGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGlj IGVudW0gQmFycmllckRpcmVjdGlvbiB7CisgCQlQT1NJVElWRV9YLAorQEAgLTg1NywyMSArOTY2 LDIwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU5FR0FUSVZFX1gsCisgCQlORUdBVElWRV9ZCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4 ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFf YnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0 aW9uIHsKKyAJCU1FTlUsCisgCQlNSU5JTUlaRSwKKyAJCU1BWElNSVpFLAorIAkJQ0xPU0UsCist CQlBUFBNRU5VLAorIAkJTEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JF U1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2Vf ZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9n UmVzcG9uc2UgeworIAkJV0FJVCwKKyAJCUZPUkNFX0NMT1NFCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBf RUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFf Q09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIild CisgCXB1YmxpYyBlbnVtIENvbXBFZmZlY3QgeworIAkJQ1JFQVRFLAorIAkJVU5NSU5JTUlaRSwK K0BAIC04NzksNyArOTg3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTUlOSU1JWkUsCisgCQlO T05FCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj cHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIild CisgCXB1YmxpYyBlbnVtIEN1cnNvciB7CisgCQlOT05FLAorIAkJREVGQVVMVCwKK0BAIC05MDAs OSArMTAwOCwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlQT0lOVElOR19IQU5ELAorIAkJQ1JP U1NIQUlSLAorIAkJSUJFQU0sCisrCQlCTEFOSywKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwg dHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0 eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlw dWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsKKyAJCVZFUkJPU0UsCitAQCAtOTI4LDkgKzEwMzcsMTAg QEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU0hBUEVTLAorIAkJQ09NUE9TSVRPUiwKKyAJCUVER0Vf UkVTSVNUQU5DRSwKKy0JCURCVVMKKysJCURCVVMsCisrCQlJTlBVVAorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVD VElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJF Q1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbRmxh Z3NdCisgCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CisgCQlMRUZULAorQEAgLTk0MiwyMSArMTA1 MiwyMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4 ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5 cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3By ZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIERpc3BsYXlDb3JuZXIgeworIAkJVE9QTEVGVCwK KyAJCVRPUFJJR0hULAorIAkJQk9UVE9NTEVGVCwKKyAJCUJPVFRPTVJJR0hUCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRB X0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgp IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXgg PSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJ RE9XTiwKKyAJCUxFRlQsCisgCQlSSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JveGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1l dGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9l ZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gRWRnZVR5cGUgeworIAkJV0lO RE9XLAorIAkJTU9OSVRPUiwKK0BAIC05NjcsMTIgKzEwNzcsMTEgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJU1VDQ0VTUywKKyAJCUVSUk9SCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJt ZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1l dGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBG cmFtZUZsYWdzIHsKKyAJCUFMTE9XU19ERUxFVEUsCisgCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9X U19BUFBNRU5VLAorIAkJQUxMT1dTX01JTklNSVpFLAorIAkJQUxMT1dTX01BWElNSVpFLAorIAkJ QUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKK0BAIC05ODQsMTIgKzEwOTMsMTEgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJQUxMT1dTX1NIQURFLAorIAkJQUxMT1dTX01PVkUsCisgCQlGVUxMU0NSRUVO LAorLQkJSVNfRkxBU0hJTkcsCisgCQlBQk9WRSwKKyAJCVRJTEVEX0xFRlQsCisgCQlUSUxFRF9S SUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gRnJhbWVUeXBlIHsKKyAJCU5PUk1BTCwK KyAJCURJQUxPRywKK0BAIC0xMDAxLDcgKzExMDksNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlM QVNUOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9H UkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFC X09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCisgCXB1YmxpYyBl bnVtIEdyYWJPcCB7CisgCQlOT05FLAorIAkJV0lORE9XX0JBU0UsCitAQCAtMTAyOCwxMiArMTEz NiwyNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKyAJCUtF WUJPQVJEX1JFU0laSU5HX1cKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElC SVRfU0hPUlRDVVRTX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9z aG9ydGN1dHNfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFWSVRZXyIsIHR5 cGVfaWQgPSAibWV0YV9ncmF2aXR5X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIEdyYXZp dHkgeworKwkJTk9ORSwKKysJCU5PUlRIX1dFU1QsCisrCQlOT1JUSCwKKysJCU5PUlRIX0VBU1Qs CisrCQlXRVNULAorKwkJQ0VOVEVSLAorKwkJRUFTVCwKKysJCVNPVVRIX1dFU1QsCisrCQlTT1VU SCwKKysJCVNPVVRIX0VBU1QsCisrCQlTVEFUSUMKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNf RElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFs b2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gSW5oaWJpdFNob3J0Y3V0 c0RpYWxvZ1Jlc3BvbnNlIHsKKyAJCUFMTE9XLAorIAkJREVOWQorIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElO R19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5n X2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsK KyAJCU5PTkUsCisgCQlXT1JLU1BBQ0VfMSwKK0BAIC0xMTIyLDIyICsxMjQ0LDI1IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCU1PVkVfVE9fU0lERV9XLAorIAkJTU9WRV9UT19DRU5URVIsCisgCQlP VkVSTEFZX0tFWSwKKysJCUxPQ0FURV9QT0lOVEVSX0tFWSwKKyAJCUlTT19ORVhUX0dST1VQLAor IAkJQUxXQVlTX09OX1RPUCwKKyAJCVNXSVRDSF9NT05JVE9SLAorIAkJUk9UQVRFX01PTklUT1Is CisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNwcmVmaXggPSAiTUVUQV9LRVlfQklORElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2Jp bmRpbmdfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAi bWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1Ymxp YyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CisgCQlOT05FLAorIAkJUEVSX1dJTkRPVywKKyAJCUJV SUxUSU4sCisgCQlJU19SRVZFUlNFRCwKKy0JCU5PTl9NQVNLQUJMRQorKwkJTk9OX01BU0tBQkxF LAorKwkJSUdOT1JFX0FVVE9SRVBFQVQsCisrCQlOT19BVVRPX0dSQUIKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJf IiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIs IHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVt IExhdGVyVHlwZSB7CisgCQlSRVNJWkUsCisgCQlDQUxDX1NIT1dJTkcsCitAQCAtMTE0NiwyNSAr MTI3MSwyNSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlCRUZPUkVfUkVEUkFXLAorIAkJSURMRQor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXgg PSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0 aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0 YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExvY2FsZURp cmVjdGlvbiB7CisgCQlMVFIsCisgCQlSVEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lk ID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5 cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisg CXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3MgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FM LAorIAkJQk9USAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt cGx1Z2luLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFs X29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2Rh bF9vcHRpb25zX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gTW9kYWxP cHRpb25zIHsKKyAJCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAorIAkJS0VZQk9BUkRfQUxSRUFE WV9HUkFCQkVECisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdf IiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgp IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXgg PSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jf c3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIE1vbml0b3JT d2l0Y2hDb25maWdUeXBlIHsKKyAJCUFMTF9NSVJST1IsCisgCQlBTExfTElORUFSLAorQEAgLTEx NzIsNyArMTI5Nyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUJVSUxUSU4sCisgCQlVTktOT1dO CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJl Zml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKyAJCVVQ LAorIAkJRE9XTiwKK0BAIC0xMTgzLDcgKzEzMDgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlE T1dOX0xFRlQsCisgCQlET1dOX1JJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9p ZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8i LCB0eXBlX2lkID0gIm1ldGFfcGFkX2FjdGlvbl90eXBlX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBlbnVtIFBhZEFjdGlvblR5cGUgeworIAkJQlVUVE9OLAorIAkJUklORywKK0BAIC0xMjIzLDMw ICsxMzQ4LDM5IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURSQUdHQUJMRV9CT1JERVJfV0lEVEgs CisgCQlBVVRPX01BWElNSVpFLAorIAkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJF U0hPTEQ7CisrCQlEUkFHX1RIUkVTSE9MRCwKKysJCUxPQ0FURV9QT0lOVEVSLAorKwkJQ0hFQ0tf QUxJVkVfVElNRU9VVDsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93 X21vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBXyIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fdHlw ZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBTZWxlY3Rpb25UeXBlIHsKKysJCVNFTEVD VElPTl9QUklNQVJZLAorKwkJU0VMRUNUSU9OX0NMSVBCT0FSRCwKKysJCVNFTEVDVElPTl9ETkQs CisrCQlOX1NFTEVDVElPTl9UWVBFUworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0g Im1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2hhZG93TW9k ZSB7CisgCQlBVVRPLAorIAkJRk9SQ0VEX09GRiwKKyAJCUZPUkNFRF9PTgorIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJ REVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlw ZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2lkZSB7Cisg CQlMRUZULAorIAkJUklHSFQsCisgCQlUT1AsCisgCQlCT1RUT00KKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfU0la RV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CisgCQlNQVhJTUlaRSwKKyAJCVVOTUFYSU1J WkUsCisgCQlGVUxMU0NSRUVOLAorIAkJVU5GVUxMU0NSRUVOCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwg dHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0 eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0g U3RhY2tMYXllciB7CisgCQlERVNLVE9QLAorIAkJQk9UVE9NLAorQEAgLTEyNTYsMTkgKzEzOTAs MTkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJT1ZFUlJJREVfUkVESVJFQ1QsCisgCQlMQVNUCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZp eCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgp IildCisgCXB1YmxpYyBlbnVtIFRhYkxpc3QgeworIAkJTk9STUFMLAorIAkJRE9DS1MsCisgCQlH Uk9VUCwKKyAJCU5PUk1BTF9BTEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJt ZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQg PSAibWV0YV90YWJfc2hvd190eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRhYlNo b3dUeXBlIHsKKyAJCUlDT04sCisgCQlJTlNUQU5UTFkKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5 cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFM XyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCisgCVtG bGFnc10KKyAJcHVibGljIGVudW0gVmlydHVhbE1vZGlmaWVyIHsKKyAJCVNISUZUX01BU0ssCitA QCAtMTI4MiwxNyArMTQxNiwxNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNT0Q0X01BU0ssCisg CQlNT0Q1X01BU0sKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5k b3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJt ZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9U WVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CisgCQlXQVlMQU5ELAorIAkJWDExCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4 ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3df bWVudV90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsK KyAJCVdNLAorIAkJQVBQCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv d2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKyAJCU5P Uk1BTCwKKyAJCURFU0tUT1AsCitAQCAtMTMxMSw1MSArMTQ0NSw1NyBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlETkQsCisgCQlPVkVSUklERV9PVEhFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9w b3MgPSAyLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAo TWV0YS5JZGxlTW9uaXRvciBtb25pdG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDQu OSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkg ZGlzcGxheSwgTWV0YS5XaW5kb3cgd2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2 ZW50KiIpXSBDbHV0dGVyLktleUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2Vf cG9zID0gMS45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2Vk RnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS93aW5kb3cuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1Ymxp YyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1F VEFfQ1VSUkVOVF9USU1FIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9USU1FIildCisgCXB1YmxpYyBjb25zdCBpbnQg Q1VSUkVOVF9USU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFN RSIpXQorIAlwdWJsaWMgY29uc3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9I RUlHSFQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hU OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0g Ik1FVEFfSUNPTl9XSURUSCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBJ Q09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKyAJcHVi bGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JP X1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9J Q09OX0hFSUdIVCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKyAJcHVibGljIGNvbnN0IGludCBN SU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRI IildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lP TiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9O OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0g Ik1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIildCisgCXB1 YmxpYyBjb25zdCBpbnQgUExVR0lOX0FQSV9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JF RFJBVyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9SRURSQVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQ UklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJ T1JJVFlfUFJFRlNfTk9USUZZIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNf Tk9USUZZOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNu YW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCisgCXB1 YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFf UFJJT1JJVFlfUkVTSVpFIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1F VEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lE IildCisgCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklS VFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorIAlw dWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2 YXRlX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0 ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFn cywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJf aW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisg CXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyBzdHJp bmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH TGliLk9wdGlvbkNvbnRleHQgZ2V0X29wdGlvbl9jb250ZXh0ICgpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9y ZXBsYWNlX2N1cnJlbnRfd20gKCk7CitAQCAtMTM2OCw2ICsxNTA4LDggQEAgbmFtZXNwYWNlIE1l dGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVi bGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1v dmVfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENs dXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlj a19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgaW50 IHJ1biAoKTsKK0BAIC0xMzc1LDYgKzE1MTcsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5Ymlu ZGluZ3MpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJ cHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEteDExLWRpc3BsYXkuaCIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2 b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJv d3MgR0xpYi5FcnJvcjsKKyB9CisrW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImxpYm11dHRl ci03LWN1c3RvbS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZv cmVfZnJhbWUgeworK30KKytbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTct Y3VzdG9tLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGZyYW1lIHsK Kyt9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpIHZhcGkvbGlibXV0dGVy LWNvZ2wtNC52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDdkYzE4NDc2Li4w MDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCisrKysgL2Rldi9udWxsCitA QCAtMSwxMjcyICswLDAgQEAKKy0vKiBsaWJtdXR0ZXItY29nbC00LnZhcGkgZ2VuZXJhdGVkIGJ5 IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCistCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wi LCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9j cHJlZml4ID0gImNvZ2xfIildCistbmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQml0bWFwIDogQ29nbC5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJpdG1hcCAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dz IEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENv Z2wuUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgaW50IGdldF9oZWlnaHQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIGludCBnZXRfcm93c3RyaWRlICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X3NpemVfZnJvbV9m aWxlIChzdHJpbmcgZmlsZW5hbWUsIG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBFdWxlciB7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY29nbF9tYXRlcmlhbF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIE1hdGVyaWFsIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBj YWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQg KENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wu Q29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jk c19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1Ymxp YyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJf aW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1v ZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9k ZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wu TWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxv YXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0 IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAo Q29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2Up OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNv bG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJp ZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dz IEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5k X2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdy ZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVl LCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Rp ZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5k bGUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRf bGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4 LCBDb2dsLk1hdGVyaWFsRmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWFn X2ZpbHRlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVy X2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29n bC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xh eWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBt b2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAo ZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dy YW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2ds LkhhbmRsZSBtYXRlcmlhbCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIg Z2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0 X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsTGF5ZXJUeXBlIGdldF90eXBlICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBf bW9kZV9wICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgZ2V0X3dyYXBfbW9kZV9zICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV90ICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vYmplY3Rf Z2V0X2d0eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBPYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9iamVj dCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0 eXBlX2lkID0gImNvZ2xfb2Zmc2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg T2Zmc2NyZWVuIDogQ29nbC5PYmplY3QsIENvZ2wuRnJhbWVidWZmZXIgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9mZnNjcmVlbiAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg T2Zmc2NyZWVuLnRvX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCB1bnJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90ZXh0 dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX2dldF9ndHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgT25zY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1 ZmZlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgT25zY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1cmUgYWRkX2RpcnR5X2NhbGxiYWNrIChbQ0Nv ZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuRGlydHlDYWxsYmFj ayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNs b3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0g MS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRh RGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFjayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBj YWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXpl X0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorLQkJcHVibGljIGludCBnZXRfYnVmZmVyX2FnZSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9yZXNp emFibGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBo aWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJl bW92ZV9kaXJ0eV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBjbG9zdXJlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJh bWVfY2FsbGJhY2sgKENvZ2wuRnJhbWVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29n bC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHJlbW92ZV9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAo Q29nbC5Cb29sIHJlc2l6YWJsZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzaG93ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHN3YXBfYnVmZmVycyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2Iild CistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVz LCBpbnQgbl9yZWN0YW5nbGVzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlf ZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUi LCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0K Ky0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBjbGFz cyBPbnNjcmVlbkRpcnR5Q2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9yZXNpemVf Y2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JcHVibGljIGNsYXNzIE9uc2NyZWVuUmVzaXplQ2xvc3VyZSB7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2ds X3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2ds Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9sYXllciAoQ29nbC5QaXBlbGluZUxheWVyQ2Fs bGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgZ2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3Rf cmVmZXJlbmNlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21h c2sgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBl bGluZUN1bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZm dXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9l bWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0 ZXIgZ2V0X2xheWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVy X21pbl9maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2Vu YWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wu UGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdy YXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0 X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIGludCBnZXRfbl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9wZXJfdmVydGV4X3BvaW50 X3NpemUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQg Z2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0 aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVy X2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMs IGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZm dXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29s b3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFs cGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9j b2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9y X21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVsaW5l Q3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChD b2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBmcm9udF93aW5k aW5nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wg c2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykg dGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2ds LkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5l RmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJp eCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGlu dCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRf c3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUp IHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGlu dCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVy X2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXll cl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3Np emUgKENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50 X3NpemUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8x ZiAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9s b2NhdGlvbiwgaW50IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF91bmlmb3JtX2Zsb2F0IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5f Y29tcG9uZW50cywgaW50IGNvdW50LCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9pbnQgKGludCB1bmlmb3JtX2xv Y2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQgY291bnQsIGludCB2YWx1ZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXgg KGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50LCBDb2dsLkJv b2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lk ID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2Ug RnJhbWVidWZmZXIgOiBDb2dsLk9iamVjdCB7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXIgKHVsb25nIGJ1 ZmZlcnMsIENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZvaWQgY2xlYXI0ZiAodWxvbmcgYnVmZmVycywgZmxvYXQgcmVkLCBmbG9hdCBn cmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIHZvaWQgZGlzY2FyZF9idWZmZXJzICh1bG9uZyBidWZmZXJzKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X211bHRpdGV4 dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0 IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGUgKENvZ2wuUGlw ZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlf Mik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19y ZWN0YW5nbGVzIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gZmxvYXRbXSBjb29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfdGV4dHVyZWRfcmVj dGFuZ2xlIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxv YXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IHNfMSwgZmxvYXQgdF8xLCBmbG9hdCBzXzIsIGZsb2F0 IHRfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJh d190ZXh0dXJlZF9yZWN0YW5nbGVzIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSBjb29yZGluYXRlcywgdWludCBuX3JlY3Rhbmds ZXMpOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZmluaXNoICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQs IGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9h dCB6X2Zhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdl dF9hbHBoYV9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IGludCBnZXRfYmx1ZV9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0 X2RlcHRoX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2Vu YWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5C b29sIGdldF9kaXRoZXJfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X2dyZWVuX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgaW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29s IGdldF9pc19zdGVyZW8gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRy aXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9y ZWRfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50 IGdldF9zYW1wbGVzX3Blcl9waXhlbCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIild CistCQlwdWJsaWMgQ29nbC5TdGVyZW9Nb2RlIGdldF9zdGVyZW9fbW9kZSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF92aWV3cG9ydDRmdiAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91dCB1bm93bmVkIGZsb2F0IHZpZXdwb3J0WzRd KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmll d3BvcnRfaGVpZ2h0ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IGZsb2F0IGdldF92aWV3cG9ydF93aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfeSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGlkZW50aXR5X21hdHJpeCAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRob2dy YXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQg bmVhciwgZmxvYXQgZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9u ZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgcG9wX2NsaXAgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZs b2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfc2Npc3Nvcl9jbGlwIChpbnQgeCwgaW50IHksIGlu dCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNf aW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBD b2dsLkJpdG1hcCBiaXRtYXApOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzX3JlZ2lvbiAoaW50IHgsIGludCB5LCBp bnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRl X2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVy bmlvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2Nh bGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9y X21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxl ZCAoQ29nbC5Cb29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpdGhlcl9lbmFibGVkIChDb2dsLkJvb2wgZGl0 aGVyX2VuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJp eCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9zYW1wbGVzX3Blcl9waXhlbCAoaW50IHNhbXBsZXNfcGVyX3BpeGVs KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3Rl cmVvX21vZGUgKENvZ2wuU3RlcmVvTW9kZSBzdGVyZW9fbW9kZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfdmlld3BvcnQgKGZsb2F0IHgsIGZsb2F0 IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIp XQorLQlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7CistCQlwdWJsaWMg Q29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRp YyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor LQkJcHVibGljIENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CistCQlw dWJsaWMgaW50IGdldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJp ZGUsIHVpbnQ4IGRhdGEpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0 IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CistCQlwdWJsaWMg dWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3ByZW11 bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29n bC5Cb29sIGlzX3NsaWNlZCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGlj IENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9k YXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2ds LlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGlu dCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wu VGV4dHVyZSBuZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQs IHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dh c3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3Vi X3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1 aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50 ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMg dm9pZCBzZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsK Ky0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBp bnQgcm93c3RyaWRlLCB1aW50OCBkYXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0 aXBsaWVkIChDb2dsLkJvb2wgcHJlbXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNl dF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWlu dCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2ds LlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zy b21fYml0bWFwIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVp bnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVU eXBlXQorLQlwdWJsaWMgc3RydWN0IEFuZ2xlIDogaW50MzIgeworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlwZV0KKy0JcHVibGlj IHN0cnVjdCBCb29sIDogaW50IHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfY29sb3JfZ2V0X2d0eXBlICgpIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0cnVjdCBDb2xvciB7CistCQlwdWJs aWMgQ29nbC5Db2xvcj8gY29weSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFs ICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKy0J CXB1YmxpYyB1aW50OCBnZXRfYWxwaGFfYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxw aGFfZmxvYXQgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2JsdWUgKCk7CistCQlwdWJsaWMgdWlu dDggZ2V0X2JsdWVfYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYmx1ZV9mbG9hdCAoKTsK Ky0JCXB1YmxpYyBmbG9hdCBnZXRfZ3JlZW4gKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2dyZWVu X2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2dyZWVuX2Zsb2F0ICgpOworLQkJcHVibGlj IGZsb2F0IGdldF9yZWQgKCk7CistCQlwdWJsaWMgdWludDggZ2V0X3JlZF9ieXRlICgpOworLQkJ cHVibGljIGZsb2F0IGdldF9yZWRfZmxvYXQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4s IGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80ZnYgKGZsb2F0IGNvbG9yX2FycmF5KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80dWIgKHVp bnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdF9mcm9tX2hz bCAob3V0IENvZ2wuQ29sb3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgc2F0dXJhdGlvbiwgZmxv YXQgbHVtaW5hbmNlKTsKKy0JCXB1YmxpYyB2b2lkIHByZW11bHRpcGx5ICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChmbG9hdCBhbHBo YSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxw aGFfYnl0ZSAodWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2FscGhhX2Zsb2F0IChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZSAoZmxvYXQgYmx1ZSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRl ICh1aW50OCBibHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVl LCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJv bV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAo ZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2dyZWVuX2J5dGUgKHVpbnQ4IGdyZWVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ncmVlbl9mbG9hdCAoZmxvYXQgZ3JlZW4pOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZCAoZmxvYXQg cmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9y ZWRfYnl0ZSAodWludDggcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9yZWRfZmxvYXQgKGZsb2F0IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgdG9faHNsIChvdXQgZmxvYXQgaHVlLCBvdXQgZmxv YXQgc2F0dXJhdGlvbiwgb3V0IGZsb2F0IGx1bWluYW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCB1bnByZW11bHRpcGx5ICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdHJ1Y3QgRGVidWdPYmpl Y3RUeXBlSW5mbyB7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB1bG9u ZyBpbnN0YW5jZV9jb3VudDsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3QgSGFuZGxlIHsKKy0J CXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGdldF90eXBlICgpOworLQkJcHVibGljIENvZ2wuSGFu ZGxlIEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfbWF0cml4X2dl dF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CistCQlwdWJsaWMgZmxvYXQg eHg7CistCQlwdWJsaWMgZmxvYXQgeXg7CistCQlwdWJsaWMgZmxvYXQgeng7CistCQlwdWJsaWMg ZmxvYXQgd3g7CistCQlwdWJsaWMgZmxvYXQgeHk7CistCQlwdWJsaWMgZmxvYXQgeXk7CistCQlw dWJsaWMgZmxvYXQgenk7CistCQlwdWJsaWMgZmxvYXQgd3k7CistCQlwdWJsaWMgZmxvYXQgeHo7 CistCQlwdWJsaWMgZmxvYXQgeXo7CistCQlwdWJsaWMgZmxvYXQgeno7CistCQlwdWJsaWMgZmxv YXQgd3o7CistCQlwdWJsaWMgZmxvYXQgeHc7CistCQlwdWJsaWMgZmxvYXQgeXc7CistCQlwdWJs aWMgZmxvYXQgenc7CistCQlwdWJsaWMgZmxvYXQgd3c7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCistCQlwdWJsaWMgQ29nbC5NYXRyaXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBlcXVhbCAodm9pZCogdjEs IHZvaWQqIHYyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lk IGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdo dCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOwor LQkJcHVibGljIHVub3duZWQgZmxvYXRbXSBnZXRfYXJyYXkgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5N YXRyaXggaW52ZXJzZSk7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVs ZXIgZXVsZXIpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVh dGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHop OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19p ZGVudGl0eSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lk IGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxv YXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQg b2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxk X3VwX3opOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdo dCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChm bG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZs b2F0IGZhcik7CistCQlwdWJsaWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0 IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlwdWJsaWMgdm9pZCBwcm9q ZWN0X3BvaW50cyAoaW50IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9p bnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRz KTsKKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg cm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24g cXVhdGVybmlvbik7CistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBm bG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCBy ZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKy0JCXB1YmxpYyB2b2lkIHRy YW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQq IHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3Bv aW50cyk7CistCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5z cG9zZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHZp ZXdfMmRfaW5fZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwg ZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9h dCBoZWlnaHRfMmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZv aWQgdmlld18yZF9pbl9wZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxv YXQgel9uZWFyLCBmbG9hdCB6XzJkLCBmbG9hdCB3aWR0aF8yZCwgZmxvYXQgaGVpZ2h0XzJkKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 cnVjdCBPbnNjcmVlbkRpcnR5SW5mbyB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50 IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgVGV4dHVyZVZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQg eDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlwdWJsaWMgZmxv YXQgdHg7CistCQlwdWJsaWMgZmxvYXQgdHk7CistCQlwdWJsaWMgQ29nbC5Db2xvciBjb2xvcjsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3Ry dWN0IFVzZXJEYXRhS2V5IHsKKy0JCXB1YmxpYyBpbnQgdW51c2VkOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsQ29sb3JTaXpl Q2hlY2siLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBfQ29sb3JTaXpl Q2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2Vh ayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsQ29sb3Jfc2l6ZTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbE1hdHJp eFNpemVDaGVjayIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IF9NYXRy aXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJs aWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsTWF0cml4X3NpemU7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0Nv Z2xUZXh0dXJlVmVydGV4U2l6ZUNoZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgX1RleHR1cmVWZXJ0ZXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9D b2dsVGV4dHVyZVZlcnRleF9zaXplOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9BVFRSSUJVVEVfVFlQRV8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51 bSBBdHRyaWJ1dGVUeXBlIHsKKy0JCUJZVEUsCistCQlVTlNJR05FRF9CWVRFLAorLQkJU0hPUlQs CistCQlVTlNJR05FRF9TSE9SVCwKKy0JCUZMT0FUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JJVE1BUF9FUlJPUl8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJs aWMgZW51bSBCaXRtYXBFcnJvciB7CistCQlGQUlMRUQsCistCQlVTktOT1dOX1RZUEUsCistCQlD T1JSVVBUX0lNQUdFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JMRU5EX1NUUklOR19FUlJPUl8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCbGVu ZFN0cmluZ0Vycm9yIHsKKy0JCVBBUlNFX0VSUk9SLAorLQkJQVJHVU1FTlRfUEFSU0VfRVJST1Is CistCQlJTlZBTElEX0VSUk9SLAorLQkJR1BVX1VOU1VQUE9SVEVEX0VSUk9SOworLQkJcHVibGlj IHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JVRkZFUl9CSVRfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgZW51bSBCdWZmZXJCaXQgeworLQkJQ09MT1IsCistCQlERVBUSCwKKy0JCVNURU5DSUwK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBCdWZmZXJUYXJnZXQgeworLQkJV0lORE9X X0JVRkZFUiwKKy0JCU9GRlNDUkVFTl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQ09MT1JfTUFTS18iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBDb2xvck1hc2sgewor LQkJTk9ORSwKKy0JCVJFRCwKKy0JCUdSRUVOLAorLQkJQkxVRSwKKy0JCUFMUEhBLAorLQkJQUxM CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0RFUFRIX1RFU1RfRlVOQ1RJT05fIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CXB1YmxpYyBlbnVtIERlcHRoVGVzdEZ1bmN0aW9uIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0J CUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFM LAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0 dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9SRUNUQU5HTEUsCistCQlURVhUVVJFX05QT1QsCistCQlU RVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCistCQlTSEFERVJTX0dMU0wsCist CQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JFRU5fTVVMVElTQU1QTEUsCistCQlPRkZTQ1JFRU5fQkxJ VCwKKy0JCUZPVVJfQ0xJUF9QTEFORVMsCistCQlTVEVOQ0lMX0JVRkZFUiwKKy0JCVZCT1MsCist CQlQQk9TLAorLQkJVU5TSUdORURfSU5UX0lORElDRVMsCistCQlERVBUSF9SQU5HRSwKKy0JCVRF WFRVUkVfTlBPVF9CQVNJQywKKy0JCVRFWFRVUkVfTlBPVF9NSVBNQVAsCistCQlURVhUVVJFX05Q T1RfUkVQRUFULAorLQkJUE9JTlRfU1BSSVRFLAorLQkJVEVYVFVSRV8zRCwKKy0JCU1BUF9CVUZG RVJfRk9SX1JFQUQsCistCQlNQVBfQlVGRkVSX0ZPUl9XUklURSwKKy0JCU9OU0NSRUVOX01VTFRJ UExFLAorLQkJREVQVEhfVEVYVFVSRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBlbnVtIEZpbHRlclJldHVybiB7CistCQlDT05USU5VRSwKKy0JCVJF TU9WRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwK Ky0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9F VkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKy0JcHVibGljIGVudW0gRnJhbWVFdmVudCB7CistCQlTWU5DLAorLQkJQ09NUExFVEUKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfRlJBTUVCVUZGRVJfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBlbnVtIEZyYW1lYnVmZmVyRXJyb3IgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZSQU1F QlVGRkVSX0VSUk9SX0FMTE9DQVRFIildCistCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsK Ky0JCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVf VU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEluZGljZXNU eXBlIHsKKy0JCUJZVEUsCistCQlTSE9SVCwKKy0JCUlOVAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9BTFBI QV9GVU5DXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbEFs cGhhRnVuYyB7CistCQlORVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0J CUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9N QVRFUklBTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1h dGVyaWFsRmlsdGVyIHsKKy0JCU5FQVJFU1QsCistCQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1B UF9ORUFSRVNULAorLQkJTElORUFSX01JUE1BUF9ORUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBf TElORUFSLAorLQkJTElORUFSX01JUE1BUF9MSU5FQVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJf VFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9U WVBFX1RFWFRVUkUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIE1hdGVy aWFsV3JhcE1vZGUgeworLQkJUkVQRUFULAorLQkJQ0xBTVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJ QworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9QSVBFTElORV9BTFBIQV9GVU5DXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgZW51bSBQaXBlbGluZUFscGhhRnVuYyB7CistCQlORVZFUiwKKy0JCUxFU1MsCist CQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVB TCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9DVUxMX0ZBQ0VfTU9ERV8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gUGlwZWxpbmVDdWxsRmFjZU1vZGUgeworLQkJ Tk9ORSwKKy0JCUZST05ULAorLQkJQkFDSywKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfRklM VEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUZpbHRl ciB7CistCQlORUFSRVNULAorLQkJTElORUFSLAorLQkJTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCwK Ky0JCUxJTkVBUl9NSVBNQVBfTkVBUkVTVCwKKy0JCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKy0J CUxJTkVBUl9NSVBNQVBfTElORUFSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5FX1dSQVBfTU9ERV8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMg ZW51bSBQaXBlbGluZVdyYXBNb2RlIHsKKy0JCVJFUEVBVCwKKy0JCU1JUlJPUkVEX1JFUEVBVCwK Ky0JCUNMQU1QX1RPX0VER0UsCistCQlBVVRPTUFUSUMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElYRUxfRk9STUFUXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KKy0JcHVibGljIGVudW0gUGl4ZWxGb3JtYXQgeworLQkJQU5ZLAorLQkJQV84LAorLQkJ UkdCXzU2NSwKKy0JCVJHQkFfNDQ0NCwKKy0JCVJHQkFfNTU1MSwKKy0JCVlVViwKKy0JCUdfOCwK Ky0JCVJHXzg4LAorLQkJUkdCXzg4OCwKKy0JCUJHUl84ODgsCistCQlSR0JBXzg4ODgsCistCQlC R1JBXzg4ODgsCistCQlBUkdCXzg4ODgsCistCQlBQkdSXzg4ODgsCistCQlSR0JBXzEwMTAxMDIs CistCQlCR1JBXzEwMTAxMDIsCistCQlBUkdCXzIxMDEwMTAsCistCQlBQkdSXzIxMDEwMTAsCist CQlSR0JBXzg4ODhfUFJFLAorLQkJQkdSQV84ODg4X1BSRSwKKy0JCUFSR0JfODg4OF9QUkUsCist CQlBQkdSXzg4ODhfUFJFLAorLQkJUkdCQV80NDQ0X1BSRSwKKy0JCVJHQkFfNTU1MV9QUkUsCist CQlSR0JBXzEwMTAxMDJfUFJFLAorLQkJQkdSQV8xMDEwMTAyX1BSRSwKKy0JCUFSR0JfMjEwMTAx MF9QUkUsCistCQlBQkdSXzIxMDEwMTBfUFJFLAorLQkJREVQVEhfMTYsCistCQlERVBUSF8zMiwK Ky0JCURFUFRIXzI0X1NURU5DSUxfOAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBlbnVtIFJlYWRQaXhlbHNGbGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNP R0xfUkVBRF9QSVhFTFNfQ09MT1JfQlVGRkVSIildCistCQlSRUFEX1BJWEVMU19DT0xPUl9CVUZG RVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfUkVOREVSRVJfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1 YmxpYyBlbnVtIFJlbmRlcmVyRXJyb3IgeworLQkJWExJQl9ESVNQTEFZX09QRU4sCistCQlCQURf Q09OU1RSQUlOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9TSEFERVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBTaGFkZXJUeXBlIHsK Ky0JCVZFUlRFWCwKKy0JCUZSQUdNRU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NURVJFT18iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIGVudW0gU3RlcmVvTW9kZSB7CistCQlCT1RILAorLQkJTEVGVCwK Ky0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX1NZU1RFTV9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBTeXN0ZW1FcnJvciB7 CistCQlVTlNVUFBPUlRFRCwKKy0JCU5PX01FTU9SWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX0NPTVBPTkVO VFNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4Iild CistCXB1YmxpYyBlbnVtIFRleHR1cmVDb21wb25lbnRzIHsKKy0JCUEsCistCQlSRywKKy0JCVJH QiwKKy0JCVJHQkEsCistCQlERVBUSAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX0VSUk9SXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBlbnVt IFRleHR1cmVFcnJvciB7CistCQlTSVpFLAorLQkJRk9STUFULAorLQkJQkFEX1BBUkFNRVRFUiwK Ky0JCVRZUEU7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVY VFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVGbGFncyB7CistCQlOT05FLAorLQkJ Tk9fQVVUT19NSVBNQVAsCistCQlOT19TTElDSU5HLAorLQkJTk9fQVRMQVMKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVY VFVSRV9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgZW51bSBUZXh0dXJlVHlwZSB7CistCQlAMkQsCistCQlAM0QsCist CQlSRUNUQU5HTEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfVkVSVElDRVNfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBWZXJ0aWNlc01v ZGUgeworLQkJUE9JTlRTLAorLQkJTElORVMsCistCQlMSU5FX0xPT1AsCistCQlMSU5FX1NUUklQ LAorLQkJVFJJQU5HTEVTLAorLQkJVFJJQU5HTEVfU1RSSVAsCistCQlUUklBTkdMRV9GQU4KKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfV0lORElOR18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2lu ZGluZyB7CistCQlDTE9DS1dJU0UsCistCQlDT1VOVEVSX0NMT0NLV0lTRQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5T WVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luc3lz RmVhdHVyZSB7CistCQlNVUxUSVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCistCQlW QkxBTktfQ09VTlRFUiwKKy0JCVZCTEFOS19XQUlULAorLQkJVEVYVFVSRV9GUk9NX1BJWE1BUCwK Ky0JCVNXQVBfQlVGRkVSU19FVkVOVCwKKy0JCVNXQVBfUkVHSU9OLAorLQkJU1dBUF9SRUdJT05f VEhST1RUTEUsCistCQlTV0FQX1JFR0lPTl9TWU5DSFJPTklaRUQsCistCQlCVUZGRVJfQUdFLAor LQkJU1lOQ19BTkRfQ09NUExFVEVfRVZFTlQsCistCQlOX0ZFQVRVUkVTCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1 Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZv KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2Vf cG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9v bCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXll cl9pbmRleCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGlu c3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNj cmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMy45KV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNh bGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3Mg PSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAo Q29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlw ZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5k ZXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAo Q29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCistCXB1YmxpYyBkZWxlZ2F0 ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9BRklSU1RfQklU IildCistCXB1YmxpYyBjb25zdCBpbnQgQUZJUlNUX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9BX0JJVCIpXQorLQlwdWJsaWMg Y29uc3QgaW50IEFfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjbmFtZSA9ICJDT0dMX0JHUl9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBCR1JfQklU OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJD T0dMX0RFUFRIX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxU X0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIild CistCXB1YmxpYyBjb25zdCBpbnQgU1RFTkNJTF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0K Ky0JcHVibGljIGNvbnN0IGludCBURVhUVVJFX01BWF9XQVNURTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5zaW9u IChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29s b3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVja19l eHRlbnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJv b2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJl IGZlYXR1cmUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdf bWF0cml4X3ByaW50IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2JqZWN0X2ZvcmVhY2hfdHlwZSAoQ29nbC5EZWJ1Z09i amVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGRpc2FibGVfZm9nICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxh Z3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZmx1 c2ggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0 LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxv YXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxl ZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIGdldF9iaXRtYXNrcyAob3V0IGludCByZWQsIG91dCBpbnQgZ3Jl ZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGludCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRf ZGVwdGhfdGVzdF9lbmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44Iild CistCXB1YmxpYyBzdGF0aWMgQ29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBD b2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQqIGdldF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBHTGli LlR5cGUgZ3R5cGVfbWF0cml4X2dldF90eXBlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNjcmVlbiAodm9p ZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wg aXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu Qm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBm bG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIs IGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBv bHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2ds LkJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHBvcF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRy aXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1h dGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9h dCB4XzIsIGZsb2F0IHlfMik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCByZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEs IGZsb2F0IHgyLCBmbG9hdCB5MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0 W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4 MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZs b2F0IHR4MiwgZmxvYXQgdHkyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZl cnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCByZWN0YW5nbGVzX3dpdGhfdGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJv dGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf YmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxv YXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxv YXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50 OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Nv dXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJp bmcgc291cmNlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9t X2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29n bC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBD b2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIw LjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxl IChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9y bWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFu ZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rf d2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44Iild CistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWlu dCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVs Rm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJh bnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQg KENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBv bmVudHMsIENvZ2wuQXR0cmlidXRlVHlwZSB0eXBlLCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWlu dDE2IHN0cmlkZSwgdm9pZCogcG9pbnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9k ZWxldGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5n IGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wu SGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291 bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5k bGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBp bnQgbWluX2luZGV4LCBpbnQgbWF4X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3Vu dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRs ZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dl dF9uX3ZlcnRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2 ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29n bC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3 ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVm IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0 IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAo Q29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3Bv cnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9n ZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENv Z2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4g b25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNj cmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUpOworLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXIt Y2x1dHRlci01LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBiOGQ4MzhkMC4uMDAwMDAwMDAKKy0tLSB2 YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1 OCArMCwwIEBACistbmFtZXNwYWNlIENsdXR0ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNM VVRURVJfVFlQRV9BQ1RPUl9CT1giLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistICBwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistICAgIHB1YmxpYyBBY3RvckJv eC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKy0gIH0KKy0KKy0gIHB1 YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRyaXggeworLSAgfQorLQorLSAgcHVibGljIGNs YXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1Ymxp YyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLSAg ICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgp IHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdl IHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJs aWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0g ICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmlj ZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistICAg IFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAo KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNl ICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmly dHVhbCBib29sIHByZV9wYXJzZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBl cl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2Up OworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLSAgcHVibGljIGNs YXNzIEJveCA6IENsdXR0ZXIuQWN0b3IgeworLSAgICBwdWJsaWMgQ2x1dHRlci5MYXlvdXRNYW5h Z2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBzZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlw ZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IENvbG9yIHsKKy0gICAgW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21faGxzIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX2hs cyAoZmxvYXQgaHVlLCBmbG9hdCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24pOworLSAgICBb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9waXhlbCIpXQorLSAgICBwdWJsaWMg Q29sb3IuZnJvbV9waXhlbCAodWludDMyIHBpeGVsKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJj bHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX3N0cmlu ZyAoc3RyaW5nIHN0cik7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9t X3N0cmluZyIpXQorLSAgICBwdWJsaWMgYm9vbCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOwor LSAgICBwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Db2xvcj8gZ2V0X3N0YXRpYyAoQ2x1 dHRlci5TdGF0aWNDb2xvciBjb2xvcik7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY29udGFpbmVy X2dldF90eXBlICgpIildCistICBwdWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2Jq ZWN0IHsKKy0gICAgcHVibGljIHZvaWQgYWRkIChwYXJhbXMgQ2x1dHRlci5BY3RvcltdIGFjdG9y cyk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9j aGlsZF9wcm9wZXJ0eSIpXQorLSAgICBwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3Bl YyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistICAgIFtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVz IildCistICAgIHB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGls ZF9wcm9wZXJ0aWVzICgpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9nZXRf dHlwZSAoKSIpXQorLSAgW0NvbXBhY3RdCistICBwdWJsaWMgY2xhc3MgRXZlbnQgeworLSAgICBw dWJsaWMgQ2x1dHRlci5BbnlFdmVudCBhbnkgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQW55 RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRv biB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSBnZXQ7IH0KKy0g ICAgcHVibGljIENsdXR0ZXIuQ3Jvc3NpbmdFdmVudCBjcm9zc2luZyB7IFtDQ29kZSAoY25hbWUg PSAiKENsdXR0ZXJDcm9zc2luZ0V2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRl ci5LZXlFdmVudCBrZXkgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyS2V5RXZlbnQgKikiKV0g Z2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7IFtDQ29kZSAo Y25hbWUgPSAiKENsdXR0ZXJNb3Rpb25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENs dXR0ZXIuU2Nyb2xsRXZlbnQgc2Nyb2xsIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9s bEV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQg c3RhZ2Vfc3RhdGUgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU3RhZ2VTdGF0ZUV2ZW50ICop IildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHsgW0NDb2Rl IChjbmFtZSA9ICIoQ2x1dHRlclRvdWNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBD bHV0dGVyLlRvdWNocGFkUGluY2hFdmVudCB0b3VjaHBhZF9waW5jaCB7IFtDQ29kZSAoY25hbWUg PSAiKENsdXR0ZXJUb3VjaHBhZFBpbmNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBD bHV0dGVyLlRvdWNocGFkU3dpcGVFdmVudCB0b3VjaHBhZF9zd2lwZSB7IFtDQ29kZSAoY25hbWUg PSAiKENsdXR0ZXJUb3VjaHBhZFN3aXBlRXZlbnQgKikiKV0gZ2V0OyB9CistICB9CistCistICBb Q0NvZGUgKHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBTdGFnZSA6IENs dXR0ZXIuR3JvdXAgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfcmVkcmF3IildCist ICAgIHB1YmxpYyB2b2lkIHJlZHJhdyAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGludGVyZmFjZSBTdGFn ZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFi c3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3Rh bmdsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9n ZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dy YXBwZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGhh c19yZWRyYXdfY2xpcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFj dCB2b2lkIGhpZGUgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBi b29sIGlnbm9yaW5nX3JlZHJhd19jbGlwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIGFic3RyYWN0IGJvb2wgcmVhbGl6ZSAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIGFic3RyYWN0IHZvaWQgcmVzaXplIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLSAgICBb Tm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUg KGJvb2wgY3Vyc29yX3Zpc2libGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJz dHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBpc19mdWxsc2NyZWVuKTsKKy0gICAgW05v V3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0 bGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdXNl cl9yZXNpemFibGUgKGJvb2wgaXNfcmVzaXphYmxlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7CistICAgIFtOb1dyYXBw ZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHVucmVhbGl6ZSAoKTsKKy0gIH0KKy0KKy0g IFtDQ29kZSAodHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiLCBjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgY2xhc3MgVGV4dHVy ZSA6IENsdXR0ZXIuQWN0b3IgeworLSAgICBwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVy aWFsIHsgZ2V0OyBzZXQ7IH0KKy0gICAgcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUg eyBnZXQ7IHNldDsgfQorLSAgfQorLQorLSAgW0NvbXBhY3RdCistICBbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUaW1lb3V0 UG9vbCB7CistICAgIFtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0g ICAgcHVibGljIFRpbWVvdXRQb29sIChpbnQgcHJpb3JpdHkpOworLSAgfQorLQorLSAgW0NDb2Rl IChjcHJlZml4ID0gIkNMVVRURVJfRkVBVFVSRV8iLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistICBbRmxhZ3NdCistICBwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3Mg eworLSAgICBURVhUVVJFX05QT1Q7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0 dXJlX2F2YWlsYWJsZSIpXQorLSAgICBwdWJsaWMgYm9vbCBpc19hdmFpbGFibGUgKCk7CistICAg IFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0gICAgcHVibGlj IHN0YXRpYyBDbHV0dGVyLkZlYXR1cmVGbGFncyBAZ2V0ICgpOworLSAgfQorLQorLSAgW0NDb2Rl ICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3QgVW5pdHMgeworLSAgICBbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9jbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJv bV9jbSAoZmxvYXQgY20pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJv bV9lbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLSAgICBbQ0Nv ZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQorLSAgICBwdWJs aWMgVW5pdHMuZnJvbV9lbV9mb3JfZm9udCAoc3RyaW5nIGZvbnRfbmFtZSwgZmxvYXQgZW0pOwor LSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLSAgICBwdWJs aWMgVW5pdHMuZnJvbV9tbSAoZmxvYXQgbW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9waXhlbHMiKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChp bnQgcHgpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQor LSAgICBwdWJsaWMgVW5pdHMuZnJvbV9wdCAoZmxvYXQgcHQpOworLSAgICBbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJpbmciKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21f c3RyaW5nIChzdHJpbmcgc3RyKTsKKy0gIH0KKy19CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNs dXR0ZXItNC1jdXN0b20udmFsYSB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK3Np bWlsYXJpdHkgaW5kZXggOTIlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3Vz dG9tLnZhbGEKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK2lu ZGV4IGI4ZDgzOGQwLi44OTIyNGJlNiAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQt Y3VzdG9tLnZhbGEKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK0BAIC0x LDkgKzEsNCBAQAorIG5hbWVzcGFjZSBDbHV0dGVyIHsKKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJD TFVUVEVSX1RZUEVfQUNUT1JfQk9YIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLSAgcHVibGljIHN0cnVjdCBBY3RvckJveCB7CistICAgIFtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLSAgICBwdWJsaWMgQWN0b3JC b3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CistICB9CisgCisgICBw dWJsaWMgc3RydWN0IE1hdHJpeCA6IENvZ2wuTWF0cml4IHsKKyAgIH0KK0BAIC0xOCw4ICsxMyw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZp cnR1YWwgdm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CisgICAgIFtO b1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5h Z2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0gICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGlj IHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworICAgICBbTm9X cmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworQEAgLTgz LDEwICs3Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAKKyAgIFtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorICAgcHVibGljIGludGVyZmFjZSBTdGFn ZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFi c3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3Rh bmdsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9n ZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisgICAgIFtOb1dyYXBwZXJdCisg ICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CisgICAgIFtOb1dy YXBwZXJdCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzIHZhcGkvbXV0dGVy LWNsdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDYzJQorcmVuYW1lIGZyb20gdmFwaS9t dXR0ZXItY2x1dHRlci01LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYuZGVw cworaW5kZXggM2Y1YTkyYTYuLjdhNzBkNmRmIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0 ZXItNS5kZXBzCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci02LmRlcHMKK0BAIC0xLDQgKzEsNCBA QAorIGF0aworIGNhaXJvCisganNvbi1nbGliLTEuMAorLW11dHRlci1jb2dsLTUKKyttdXR0ZXIt Y29nbC02CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpIHZhcGkvbXV0dGVy LWNsdXR0ZXItNi52YXBpCitzaW1pbGFyaXR5IGluZGV4IDkzJQorcmVuYW1lIGZyb20gdmFwaS9t dXR0ZXItY2x1dHRlci01LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYudmFw aQoraW5kZXggMjRmN2Y2YjEuLjAxMzBhOTNjIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0 ZXItNS52YXBpCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci02LnZhcGkKK0BAIC0xLDYgKzEsNiBA QAorLS8qIG11dHRlci1jbHV0dGVyLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90 IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1dHRlci02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGln ZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBn aXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9j cHJlZml4ID0gImNsdXR0ZXJfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJf bmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJl Zml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5 IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNu YW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BAIC00NjYxLDIyICs0NjYxLDE0IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0 dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJh dGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24g YW5pbWF0ZV93aXRoX2FscGhhdiAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0 cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmlt YXRlX3dpdGhfdGltZWxpbmUgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUs IC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Bbmlt YXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGlu ZSB0aW1lbGluZSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUp XSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlv biwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro X2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZh bHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLlZlcnRleCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIu QWN0b3I/IGFuY2VzdG9yLCBDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBh cHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9y LCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZl cnRleCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFu c2Zvcm0gKHJlZiBDbHV0dGVyLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2lu dCAoQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3Jt X3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Q b2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGlj IHZvaWQgYmluZF9tb2RlbCAoR0xpYi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFj dG9yQ3JlYXRlQ2hpbGRGdW5jIGNyZWF0ZV9jaGlsZF9mdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KK0BAIC00Njg4LDIwICs0NjgwLDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChD bHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51 ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisrCQlwdWJsaWMg dm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28uQ29udGV4dCBjcmVh dGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3BhbmdvX2xheW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBkZXN0cm95X2FsbF9j aGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5p bWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2V2ZW50IildCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChD bHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNhcHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworKwkJ cHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmly dHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0X2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0 aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcwOSwxNiArNDcwMCwxMCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rpb24+IGdldF9hY3Rp b25zICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIu QWN0b3JCb3ggZ2V0X2FsbG9jYXRpb25fYm94ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLkdlb21ldHJ5IGdldF9hbGxvY2F0aW9uX2dlb21ldHJ5ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVy dGljZXMgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyB2b2lkIGdldF9hbmNob3JfcG9pbnQgKG91dCBmbG9hdCBhbmNob3JfeCwgb3V0IGZsb2F0 IGFuY2hvcl95KTsKKysJCXB1YmxpYyB2b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0 dGVyLkFjdG9yPyBhbmNlc3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBo ZW5lLlBvaW50M0QgdmVydHNbNF0pOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3Ig Z2V0X2JhY2tncm91bmRfY29sb3IgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0 X2FjdG9yX2J5X2dpZCIpXQorQEAgLTQ3NjgsOCArNDc1Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFn cyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJ CVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOwor QEAgLTQ4NDgsOCArNDgzMSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0 dGVyLlRleHREaXJlY3Rpb24gZ2V0X3RleHRfZGlyZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNm b3JtYXRpb25fbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9s dW1lIChDbHV0dGVyLkFjdG9yIHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KK0BAIC00ODkyLDcgKzQ4NzMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgYm9vbCBoYXNfbWFwcGVkX2Nsb25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhp ZGVfYWxsICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IGluc2VydF9jaGlsZF9hYm92ZSAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8g c2libGluZyk7CitAQCAtNDkxMiwxMCArNDg5Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBib29sIGlzX3NjYWxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0Iild CisgCQlwdWJsaWMgYm9vbCBpc192aXNpYmxlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2Vy IChDbHV0dGVyLkFjdG9yPyBhYm92ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9t ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9p ZCBtYXAgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorQEAgLTQ5MjgsMTcgKzQ5MDUsMTIgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgbmVlZHNfZXhwYW5kIChDbHV0dGVyLk9y aWVudGF0aW9uIG9yaWVudGF0aW9uKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVh bCB2b2lkIHBhaW50X25vZGUgKENsdXR0ZXIuUGFpbnROb2RlIHJvb3QpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjIiKV0KKysJCXB1YmxpYyB2b2lkIHBpY2tfYm94IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tf Y29udGV4dCwgQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJcHVibGljIHZvaWQgcG9wX2ludGVy bmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwg KCk7CisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8u UmVjdGFuZ2xlSW50PyBjbGlwKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5B Y3Rvcj8gYmVsb3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0 ZXIuQWN0aW9uIGFjdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk2 MCw4ICs0OTMyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3Zl X2VmZmVjdF9ieV9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBu ZXdfcGFyZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCByZXBsYWNlX2NoaWxkIChDbHV0dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBu ZXdfY2hpbGQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MDQ2LDggKzUw MTYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRv dWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3NjYWxlX2Z1bGwgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwg ZmxvYXQgY2VudGVyX3gsIGZsb2F0IGNlbnRlcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfc2NhbGVfd2l0aF9ncmF2aXR5IChkb3VibGUgc2NhbGVfeCwgZG91Ymxl IHNjYWxlX3ksIENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfeiAoZG91YmxlIHNjYWxlX3opOwor IAkJcHVibGljIHZvaWQgc2V0X3NpemUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworQEAg LTUxMTAsMTEgKzUwNzgsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsg fQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkg Y2xpcCB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7 IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBv d25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IGJvb2wgY2xpcF90b19hbGxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorQEAgLTUxOTksMTIgKzUxNjQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZv dF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2 b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1LDEzICs1MTkwLDEzIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgcm90YXRpb25fYW5nbGVfeiB7IGdldDsgc2V0OyB9Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRl ci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGlj IEdyYXBoZW5lLlBvaW50M0Qgcm90YXRpb25fY2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQor IAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0 ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludDNEIHJvdGF0aW9uX2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCByb3RhdGlvbl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1 dHRlci5HcmF2aXR5IHJvdGF0aW9uX2NlbnRlcl96X2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorQEAg LTUyNTcsNyArNTIyMiw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNo b3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUg eyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVk IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1 dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorQEAgLTUzMTksMTEgKzUyODQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1v dGlvbkV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgcGFyZW50X3NldCAoQ2x1dHRlci5BY3Rvcj8gb2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRl cl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHBpY2sgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworKwkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hh c0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBxdWV1ZV9yZWxheW91dCAoKTsKK0BAIC01MzYxLDYgKzUzMjcsMTEgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZW5hYmxlZCB7IGdldDsgc2V0OyB9 CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9h Y3Rvcl9ub2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBBY3Rvck5vZGUgOiBDbHV0 dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIEFjdG9yTm9kZSAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FsaWduX2NvbnN0cmFpbnRfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3Mg QWxpZ25Db25zdHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC01Mzg4LDE5ICs1MzU5 LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu VGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHN0YXRpYyB1bG9uZyByZWdpc3Rlcl9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xv c3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVs b25nIHJlZ2lzdGVyX2Z1bmMgKENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Nsb3N1cmUgKEdMaWIuQ2xvc3Vy ZSBjbG9zdXJlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9mdW5jIChvd25lZCBDbHV0dGVyLkFscGhh RnVuYyBmdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9tb2RlICh1bG9uZyBtb2RlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1 dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQWxw aGEud2l0aF9mdW5jIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCBvd25lZCBDbHV0dGVyLkFs cGhhRnVuYyBmdW5jKTsKKyAJCXB1YmxpYyBkb3VibGUgYWxwaGEgeyBnZXQ7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQgY29u c3RydWN0OyB9CitAQCAtNTQxMSwzNSArNTM3NSwyNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1Ymxp YyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5k IChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFt ZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CisgCQlwdWJsaWMg dWludCBnZXRfZHVyYXRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkludGVydmFs IGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworIAkJcHVibGljIGJvb2wgZ2V0 X2xvb3AgKCk7CisgCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5U aW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CisgCQlwdWJsaWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0 cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0 aW9uICh1aW50IG1zZWNzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOwor IAkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0 X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGlu ZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxpbmUpOworLQkJcHVibGljIHZvaWQgdW5iaW5kX3By b3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFs KTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUs IENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsg fQorKwkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJ cHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJvb2wgbG9vcCB7 IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJs aWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9k XQorKwkJcHVibGljIEdMaWIuT2JqZWN0IG9iamVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlw dWJsaWMgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1p dHRlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKyAJCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHN0YXJ0ZWQgKCk7CisgCX0KK0BAIC01NDYwLDIxICs1 NDE1LDE4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBCYWNrZW5kICgpOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIu T3B0aW9uR3JvdXAgZ3JvdXApOworLQkJcHVibGljIHZvaWQgYmVsbF9ub3RpZnkgKCk7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgYm9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJv d3MgR0xpYi5FcnJvcjsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVk IENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIp IHRocm93cyBHTGliLkVycm9yOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZp Y2VfbWFuYWdlciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfZGVmYXVs dF9zZWF0ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVh dHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENhaXJvLkZvbnRPcHRpb25zIGdldF9mb250X29wdGlvbnMgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0TWV0aG9kIGdldF9pbnB1dF9tZXRob2Qg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworIAkJ cHVibGljIGRvdWJsZSBnZXRfcmVzb2x1dGlvbiAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworQEAgLTU0OTYsOTUgKzU0NDgsMTEgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVi bGljIHNpZ25hbCB2b2lkIHNldHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Jl aGF2aW91cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBCZWhhdmlvdXIgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBC ZWhhdmlvdXIgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhh dmlvdXJGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGFscGhhX25vdGlmeSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lk IGFwcGx5IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsg Q2x1dHRlci5BY3Rvcj4gZ2V0X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QWxwaGEgZ2V0X2FscGhhICgpOworLQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQg cmVtb3ZlX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBh bHBoYSk7CistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBh cHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIs IHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVy LkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIu QWxwaGE/IGFscGhhLCBpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBk ZXB0aF9zdGFydCwgb3V0IGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVw dGhfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIGludCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRl cHRoX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNp dHlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZp b3VyT3BhY2l0eSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJl aGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBh bHBoYSwgdWludDggb3BhY2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4 IG9wYWNpdHlfc3RhcnQsIG91dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0 YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyB1aW50IG9wYWNpdHlfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIHVpbnQgb3BhY2l0eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2JlaGF2aW91cl9zY2FsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1 YmxpYyBjbGFzcyBCZWhhdmlvdXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNj cmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1 dHRlci5BbHBoYT8gYWxwaGEsIGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9z dGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJs ZSB4X3NjYWxlX3N0YXJ0LCBvdXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9z Y2FsZV9lbmQsIG91dCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQs IGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxl X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91 YmxlIHhfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5k IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0K Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfYmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91 dE1hbmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0 dGVyLkJpbkFsaWdubWVudCB4X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENs dXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNo aWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5 X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50 IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24s IG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRl ci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRl ci5CaW5BbGlnbm1lbnQgeF9hbGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTc1OCwzNyArNTYyNiw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZs b2F0IHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhaXJvX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIENhaXJvVGV4dHVyZSA6IENsdXR0ZXIuVGV4 dHVyZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFp bmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIENhaXJvVGV4 dHVyZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGVfcmVnaW9uIChp bnQgeF9vZmZzZXQsIGludCB5X29mZnNldCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6ZSAo KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zdXJmYWNlX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQg dWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZv aWQgaW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xlIChDYWlyby5SZWN0YW5nbGVJbnQ/IHJlY3QpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmVz aXplIChib29sIHZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zdXJmYWNlX3NpemUgKHVpbnQg d2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBib29sIGF1dG9fcmVzaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBD YWlyby5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9v bCBkcmF3IChDYWlyby5Db250ZXh0IGNyKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2FudmFzX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBD YW52YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC01OTIwLDYyICs1NzU3 LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRv dWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRvdWJsZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDog R0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9z ZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50 IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1 dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklu cHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENs dXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlw ZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VN YW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVy LklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQg Z2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7 CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50 ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0 dWFsRGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5cGVzICgpOworLQkJ cHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMg KCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLlNMaXN0PENsdXR0ZXIuSW5wdXREZXZpY2U+IHBl ZWtfZGV2aWNlcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJl bW92ZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNlbGVjdF9zdGFnZV9ldmVudHMgKENsdXR0ZXIuU3Rh Z2Ugc3RhZ2UpOworLQkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVy LktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9h MTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBj bGlja190eXBlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENs dXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0 RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENs dXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTEx eV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50 IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg cHRyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdl bGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlf dGltZW91dF9zdGFydGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2lu dGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgdWludCBkZWxheSk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNl IGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9i amVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOworLQl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFn X2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1 YmxpYyBjbGFzcyBEcmFnQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJ CXB1YmxpYyBEcmFnQWN0aW9uICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoQ2x1 dHRlci5SZWN0IGRyYWdfYXJlYSk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChHcmFw aGVuZS5SZWN0IGRyYWdfYXJlYSk7CisgCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBnZXRfZHJh Z19heGlzICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZHJhZ19oYW5k bGUgKCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfZHJhZ190aHJlc2hvbGQgKG91dCB1aW50IHhfdGhy ZXNob2xkLCBvdXQgdWludCB5X3RocmVzaG9sZCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9u X2Nvb3JkcyAob3V0IGZsb2F0IG1vdGlvbl94LCBvdXQgZmxvYXQgbW90aW9uX3kpOworIAkJcHVi bGljIHZvaWQgZ2V0X3ByZXNzX2Nvb3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBw cmVzc195KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdD8gZHJh Z19hcmVhKTsKKysJCXB1YmxpYyB2b2lkIHNldF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJlY3Q/IGRy YWdfYXJlYSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlz IGF4aXMpOworIAkJcHVibGljIHZvaWQgc2V0X2RyYWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBo YW5kbGUpOworIAkJcHVibGljIHZvaWQgc2V0X2RyYWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hv bGQsIGludCB5X3RocmVzaG9sZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93 bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBkcmFnX2FyZWEgeyBvd25l ZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgZHJhZ19hcmVhX3NldCB7IGdldDsgfQorQEAgLTYw MTEsMTMgKzU4MTAsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJ CXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9kaWZ5X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZv bHVtZSB2b2x1bWUpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFp bnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0LCBDbHV0dGVyLkVm ZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgcGljayAoQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRf Y29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFp bnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoQ2x1dHRlci5QYWludENv bnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlw dWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50ICgpOworIAl9CitAQCAtNjA2OCw3ICs1ODY3LDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7Cisg CQlwdWJsaWMgYm9vbCBnZXRfcGFkX2V2ZW50X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0 IHVpbnQgbW9kZSwgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9u KTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24p OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciBnZXRfcmVsYXRlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitA QCAtNjMwOCw3ICs2MTA3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2F4aXNfdmFsdWUgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBkb3VibGVbXSBheGVzLCBDbHV0dGVyLklucHV0QXhpcyBheGlz LCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlw dWJsaWMgYm9vbCBnZXRfY29vcmRzIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBD bHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIu RXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV9pZCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MzIyLDcgKzYxMjEsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9n cmFiYmVkX2FjdG9yICgpOworLQkJcHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdy b3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3Vw KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNf Y3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzNDQsMTYgKzYx NDMsMTcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5T dGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIild CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gZ2V0 X3NsYXZlX2RldmljZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF92ZW5kb3JfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZ3JhYiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cist CQlwdWJsaWMgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2Rldmlj ZSk7CistCQlwdWJsaWMgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVp bnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5J bnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19tb2Rl X3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhh cmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7CisrCQlwdWJsaWMgdmlydHVhbCBi b29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9r ZXljb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNlX2dldF9ncmFiYmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50 U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC02 MzY5LDEyICs2MTY5LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVu Z3JhYiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVw ZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7 CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfZnJvbV90b29s IChDbHV0dGVyLklucHV0RGV2aWNlVG9vbCB0b29sKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBi YWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFu YWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMg Q2x1dHRlci5JbnB1dE1vZGUgZGV2aWNlX21vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVi bGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCitAQCAtNjM5Nyw2ICs2MTk2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5n IHZlbmRvcl9pZCB7IGdldDsgY29uc3RydWN0OyB9CisgCX0KK0BAIC02NDM0LDcgKzYyMzQsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY2FuX3Nob3dfcHJlZWRp dCAoYm9vbCBjYW5fc2hvd19wcmVlZGl0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X2hp bnRzIChDbHV0dGVyLklucHV0Q29udGVudEhpbnRGbGFncyBoaW50KTsKKyAJCXB1YmxpYyB2b2lk IHNldF9jb250ZW50X3B1cnBvc2UgKENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9zZSBwdXJwb3Nl KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0 KTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVj dCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQ YW5lbFN0YXRlIHN0YXRlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lk IHNldF9wcmVlZGl0X3RleHQgKHN0cmluZyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CitAQCAtNjQ1 Myw3ICs2MjUzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcmVzZXQgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVj dCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQ YW5lbFN0YXRlIHN0YXRlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmlu Zz8gcHJlZWRpdCwgdWludCBjdXJzb3IpOworIAkJW05vV3JhcHBlcl0KK0BAIC02NDcwLDcgKzYy NzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dENvbnRl bnRQdXJwb3NlIGNvbnRlbnRfcHVycG9zZSB7IGdldDsgc2V0OyB9CisgCQlbSGFzRW1pdHRlcl0K KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb21taXQgKHN0cmluZyB0ZXh0KTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoQ2x1dHRlci5SZWN0IG9iamVjdCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKEdyYXBoZW5l LlJlY3Qgb2JqZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRl bGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBpbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgb2JqZWN0 KTsKK0BAIC02NTQ2LDI3ICs2MzQ2LDMxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAg KCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlw dWJsaWMgdmlydHVhbCBQYW5nby5EaXJlY3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1Ymxp YyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9sb2NrX3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIHN0YXRlX2NoYW5nZWQgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5 cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExheWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0 aW9uLCBDYWlyby5SZWN0YW5nbGUgdmlld3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQs IHVpbnQ4IG9wYWNpdHkpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBj bGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5h Z2VyICgpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWlu ZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2Nh dGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1 bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVnaW5fYW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9u ZyBtb2RlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIgY29u dGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRf Z2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3Ig YWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1Ymxp YyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFj dG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0 dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9w ZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMg dmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1 dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbmRfYW5p bWF0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9w cm9wZXJ0eSAoc3RyaW5nIG5hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCBkb3VibGUgZ2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5 b3V0TWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC02NjIzLDEyICs2NDI3LDEyIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXByb3RlY3RlZCBPZmZzY3JlZW5FZmZlY3QgKCk7CisgCQlwdWJsaWMgdmlydHVh bCBDb2dsLkhhbmRsZSBjcmVhdGVfdGV4dHVyZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3Rhcmdl dF9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgYm9vbCBn ZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9zaXplIChvdXQgZmxvYXQgd2lk dGgsIG91dCBmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIHZp cnR1YWwgdm9pZCBwYWludF90YXJnZXQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50 X3RhcmdldCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BhZ2VfdHVybl9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorQEAgLTY2NDUsNiArNjQ0OSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgZG91YmxlIHBlcmlvZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgZmxvYXQgcmFk aXVzIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCByZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3Jl ZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZf ZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQor KwlwdWJsaWMgY2xhc3MgUGFpbnRDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsK KysJCXB1YmxpYyB2b2lkIHBvcF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hf ZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5QYWludENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVm ICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUg eworQEAgLTY2NTQsNyArNjQ2OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2 b2lkIGFkZF9tdWx0aXRleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZs b2F0IHRleHRfY29vcmRzLCB1aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBh ZGRfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRk X3RleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxv YXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsK KysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOwor KwkJcHVibGljIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQp OworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsK K0BAIC02NjcyLDcgKzY0ODcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2lu ICgpOworKwkJcHVibGljIHZvaWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9p bnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZs b2F0IGdldF93aWR0aCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02Njgy LDcgKzY0OTcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRl ci5WZXJ0ZXggb3JpZ2luKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBv aW50M0Qgb3JpZ2luKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF93aWR0aCAoZmxvYXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorQEAgLTY3NjksMjYgKzY1ODQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IENsdXR0ZXIuUGF0aCBwYXRoIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBu b2RlX3JlYWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlv biA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19j b250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRl eHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7Cisr CQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNr Q29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3BpcGVsaW5lX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3Rl ZCBQaXBlbGluZU5vZGUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlw ZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVi bGljIGNsYXNzIFBvaW50IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7 CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1 dHRlci5Qb2ludCBjb3B5ICgpOworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBv aW50IGIsIG91dCBmbG9hdCB4X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlw dWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVl ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9h dCB5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7Cist CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3Byb3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlv biA6IENsdXR0ZXIuVHJhbnNpdGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC02Nzk4LDMz ICs2NjA2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3Byb3Bl cnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgc3RyaW5nIHByb3Bl cnR5X25hbWUgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJl ZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdF9nZXRf dHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0J cHVibGljIGNsYXNzIFJlY3QgeworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5Qb2ludCBvcmlnaW47 CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlNpemUgc2l6ZTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1 dHRlci5SZWN0IGFsbG9jICgpOworLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7Cist CQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlw dWJsaWMgYm9vbCBjb250YWluc19yZWN0IChDbHV0dGVyLlJlY3QgYik7CistCQlwdWJsaWMgQ2x1 dHRlci5SZWN0IGNvcHkgKCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUmVjdCBi KTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfY2VudGVyIChD bHV0dGVyLlBvaW50IGNlbnRlcik7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKy0J CXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7Cist CQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlJlY3Qg aW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCQlw dWJsaWMgdm9pZCBpbnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIGJvb2wg aW50ZXJzZWN0aW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0PyByZXMpOworLQkJcHVi bGljIENsdXR0ZXIuUmVjdCBub3JtYWxpemUgKCk7CistCQlwdWJsaWMgdm9pZCBvZmZzZXQgKGZs b2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzX3gsIGZs b2F0IHNfeSk7CistCQlwdWJsaWMgdm9pZCB1bmlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIu UmVjdCByZXMpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCB6ZXJvICgp OworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgY2xhc3MgUmVjdGFuZ2xlIDogQ2x1dHRlci5BY3Rv ciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTY5MDcsOCArNjY4OCw4IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1YmxpYyBTY3JvbGxBY3RvciAoKTsKKyAJCXB1Ymxp YyBDbHV0dGVyLlNjcm9sbE1vZGUgZ2V0X3Njcm9sbF9tb2RlICgpOworLQkJcHVibGljIHZvaWQg c2Nyb2xsX3RvX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIHNj cm9sbF90b19yZWN0IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxf dG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90 b19yZWN0IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3Njcm9sbF9t b2RlIChDbHV0dGVyLlNjcm9sbE1vZGUgbW9kZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxN b2RlIHNjcm9sbF9tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJfQorQEAgLTY5MzAsNiArNjcxMSw0NCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9h dCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZWF0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBhYnN0 cmFjdCBjbGFzcyBTZWF0IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlYXQgKCk7CisrCQlbTm9XcmFwcGVy XQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRl ci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBiZWxs X25vdGlmeSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0 dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworKwkJW05vV3JhcHBl cl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29weV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50 IHNyYywgQ2x1dHRlci5FdmVudCBkZXN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmly dHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmlj ZVR5cGUgZGV2aWNlX3R5cGUpOworKwkJcHVibGljIHZvaWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7 CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEg KENsdXR0ZXIuRXZlbnQgZXZlbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRp bmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2tleWJvYXJkICgpOworKwkJcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworKwkJcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9wb2ludGVyICgpOworKwkJ cHVibGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTEx eVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERl dmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsKKysJCXB1Ymxp YyBib29sIGdldF90b3VjaF9tb2RlICgpOworKwkJcHVibGljIHZpcnR1YWwgR0xpYi5MaXN0PHdl YWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQg c2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7 CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0 ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lk IHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGlu dCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBi YWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21v ZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIu SW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3Zl ZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGti ZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9t YXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQg KHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBwdHJfYTExeV9kd2VsbF9jbGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckEx MXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJf YTExeV90aW1lb3V0X3N0YXJ0ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVy LlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBl LCBib29sIGNsaWNrZWQpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1 dHRlci5JbnB1dERldmljZSBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKysJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfc2V0dGluZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgOiBHTGliLk9iamVjdCB7CitAQCAt NzAwMiwxOCArNjgyMSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFkZXJNYXRyaXggKCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zaXplX2dldF90eXBlICgpIildCistCVtDb21wYWN0 XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgU2l6ZSB7Cist CQlwdWJsaWMgZmxvYXQgaGVpZ2h0OworLQkJcHVibGljIGZsb2F0IHdpZHRoOworLQkJcHVibGlj IHN0YXRpYyBDbHV0dGVyLlNpemUgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIGNv cHkgKCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuU2l6ZSBiKTsKKy0JCXB1Ymxp YyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNpemUgaW5pdCAoZmxv YXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NuYXBfY29uc3RyYWlu dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCXB1YmxpYyBj bGFzcyBTbmFwQ29uc3RyYWludCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNzA1MiwxNCAr Njg1OSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBk YXRlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdl dF9hY2NlcHRfZm9jdXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9h Y3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOwor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVy LlBpY2tNb2RlIHBpY2tfbW9kZSwgZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBn ZXRfY2FwdHVyZV9maW5hbF9zaXplIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3Ig Z2V0X2NvbG9yICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdl IGdldF9kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZv ZyBnZXRfZm9nICgpOworIAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfa2V5X2ZvY3VzICgpOworQEAgLTcwNjcsMTkgKzY4NzIsMTQgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHZvaWQgZ2V0X21pbmltdW1fc2l6ZSAob3V0IHVpbnQgd2lkdGgs IG91dCB1aW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJs aWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X25vX2NsZWFyX2hpbnQgKCk7CisgCQlwdWJs aWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBnZXRfcGVyc3BlY3RpdmUgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IGdldF9yZWRyYXdf Y2xpcF9ib3VuZHMgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJv dHRsZV9tb3Rpb25fZXZlbnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9mb2cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44 IildCitAQCAtNzA5NCwxNiArNjg5NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdm9pZCBzZXRfYWNjZXB0X2ZvY3VzIChib29sIGFjY2VwdF9mb2N1cyk7CisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgdm9pZCBzZXRfZm9nIChDbHV0dGVyLkZvZyBmb2cpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRl ci5BY3Rvcj8gYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X21pbmltdW1fc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNf ZW5hYmxlZCAoYm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9ub19jbGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9wZXJzcGVjdGl2ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0 bGVfbW90aW9uX2V2ZW50cyAoYm9vbCB0aHJvdHRsZSk7CitAQCAtNzExMSw4ICs2OTA3LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0 bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Vz ZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF91c2VfZm9nIChib29sIGZvZyk7CisgCQlwdWJsaWMgdm9pZCBzaG93X2N1cnNvciAo KTsKKyAJCXB1YmxpYyB2b2lkIHRoYXdfdXBkYXRlcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHVwZGF0 ZV9yZXNvdXJjZV9zY2FsZXMgKCk7CitAQCAtNzEyMiwyMCArNjkxNiwxNCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsg Z2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLkFjdG9yIGtleV9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgYm9vbCBub19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIHBl cnNwZWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJ CXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAkJcHVibGljIGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2 YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KK0BAIC03MTU4LDggKzY5NDYs NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisg CQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOwor IAkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChD bHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLlN0YWdlIGRlZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KK0BAIC03MjA2LDE2ICs2OTkyLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKHN0cmlu Zz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUpOworIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5PiBn ZXRfa2V5cyAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVf bmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXRlICgpOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJpbmc+IGdldF9zdGF0 ZXMgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1l bGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg cmVtb3ZlX2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3Rh dGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHN0cmluZz8gc291 cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRpb24p OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgc2V0 X2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1l LCBHTGliLk9iamVjdCBvYmplY3QsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUsIEdM aWIuVmFsdWUgdmFsdWUsIGRvdWJsZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0X2RlbGF5KTsKK0BA IC03MjM2LDI0ICs3MDE2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ29tcGFjdF0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAo KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90 eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf c291cmNlX3N0YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF90YXJnZXRfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgYm9vbCBnZXRfdmFsdWUgKEdMaWIuVmFsdWUgdmFsdWUpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9zd2lwZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorQEAgLTcyNjUsNTMgKzcwMjksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dp cGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9u KTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfbGF5b3V0X2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2Ug PSAiMS40IildCistCXB1YmxpYyBjbGFzcyBUYWJsZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFu YWdlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKy0JCXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFj dG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRl ci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3Vu dCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9jb2x1bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdWludCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg b3V0IGJvb2wgeF9leHBhbmQsIG91dCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBnZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wg eF9maWxsLCBvdXQgYm9vbCB5X2ZpbGwpOworLQkJcHVibGljIGludCBnZXRfcm93X2NvdW50ICgp OworLQkJcHVibGljIHVpbnQgZ2V0X3Jvd19zcGFjaW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0 X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQg cm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5p bWF0aW9ucyAoKTsKKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGlu dCBjb2x1bW4sIGludCByb3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQg eF9hbGlnbiwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9jb2x1bW5fc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIGJvb2wgeF9leHBhbmQsIGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhf ZmlsbCwgYm9vbCB5X2ZpbGwpOworLQkJcHVibGljIHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50 IHNwYWNpbmcpOworLQkJcHVibGljIHZvaWQgc2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3Is IGludCBjb2x1bW5fc3BhbiwgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMg dWludCBjb2x1bW5fc3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVpbnQgZWFzaW5nX2R1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdWxvbmcgZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGlj IHVpbnQgcm93X3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBib29sIHVzZV9hbmltYXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf dGFwX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQor IAlwdWJsaWMgY2xhc3MgVGFwQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03 MzM5LDcgKzcwNTYsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5D b2xvciBnZXRfY3Vyc29yX2NvbG9yICgpOworIAkJcHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0 aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGlj IHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOwor IAkJcHVibGljIHVpbnQgZ2V0X2N1cnNvcl9zaXplICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1 cnNvcl92aXNpYmxlICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0 NTgsNyArNzE3NSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE2IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAo KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJz b3JfZXZlbnQgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0Vt aXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgZGVsZXRlX3RleHQgKGludCBzdGFydF9wb3MsIGludCBlbmRfcG9zKTsKK0BAIC03NDk3LDky ICs3MjE0LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIFRleHROb2RlIChQYW5n by5MYXlvdXQ/IGxheW91dCwgQ2x1dHRlci5Db2xvcj8gY29sb3IpOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl90ZXh0dXJlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0J cHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIFRleHR1cmUgKCk7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2FjdG9yIChDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgVGV4dHVy ZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIENsdXR0ZXIuVGV4dHVyZUVycm9y OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9iYXNlX3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBp bnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhh bmRsZSBnZXRfY29nbF9tYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg dW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGdldF9maWx0ZXJfcXVhbGl0eSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfa2VlcF9hc3BlY3RfcmF0 aW8gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfYXN5bmMg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfZGF0YV9hc3lu YyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgaW50IGdldF9tYXhfdGlsZV93YXN0 ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfcGlja193aXRoX2Fs cGhhICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9yZXBlYXQgKG91 dCBib29sIHJlcGVhdF94LCBvdXQgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIGJvb2wgZ2V0X3N5bmNfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgYm9vbCBzZXRfYXJlYV9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHgsIGludCB5LCBpbnQg d2lkdGgsIGludCBoZWlnaHQsIGludCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVy ZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgdm9pZCBzZXRfY29nbF9tYXRlcmlhbCAoQ29nbC5IYW5kbGUgY29nbF9tYXRlcmlhbCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfdGV4dHVyZSAoQ29n bC5IYW5kbGUgY29nbF90ZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9maWx0ZXJfcXVhbGl0eSAoQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21fZmlsZSAoc3RyaW5n IGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgYm9vbCBzZXRfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50 IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBH TGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3l1 dl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBpbnQg d2lkdGgsIGludCBoZWlnaHQsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfa2VlcF9hc3Bl Y3RfcmF0aW8gKGJvb2wga2VlcF9hc3BlY3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9sb2FkX2FzeW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2RhdGFfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BpY2tfd2l0aF9hbHBoYSAo Ym9vbCBwaWNrX3dpdGhfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9yZXBlYXQgKGJvb2wgcmVwZWF0X3gsIGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zeW5jX3NpemUgKGJvb2wgc3luY19zaXplKTsKKysJ cHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yIHsKKyAJCXB1YmxpYyBDb2dsLk1h dGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIENvZ2wuVGV4dHVy ZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCBkaXNhYmxlX3NsaWNpbmcgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0cmluZyBmaWxlbmFtZSB7IG93bmVkIGdldDsg c2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSB7 IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIGJvb2wga2VlcF9hc3BlY3RfcmF0aW8g eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfYXN5 bmMgeyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBsb2FkX2RhdGFf YXN5bmMgeyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIHBpY2tfd2l0aF9hbHBoYSB7IGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF94IHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3kg eyBnZXQ7IHNldDsgfQorLQkJcHVibGljIGJvb2wgc3luY19zaXplIHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB0aWxlX3dhc3RlIHsgZ2V0OyB9Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgbG9hZF9maW5p c2hlZCAoR0xpYi5FcnJvciBlcnJvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgcGl4YnVmX2NoYW5nZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBz aXplX2NoYW5nZSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4 dHVyZV9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitA QCAtNzYwOCw3ICs3MjQyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2F1dG9fcmV2ZXJzZSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVy X3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVi bGljIGJvb2wgZ2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBH cmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyBpbnQgZ2V0X2N1cnJlbnRfcmVwZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorQEAgLTc2NDUsNyArNzI3OSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJv b2wgcmV2ZXJzZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZv aWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIu UG9pbnQgY18yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdy YXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCitAQCAtNzc0NCw2ICs3Mzc4LDExIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3RyYW5zZm9ybV9ub2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFz cyBUcmFuc2Zvcm1Ob2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJ CXB1YmxpYyBUcmFuc2Zvcm1Ob2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uKTsKKysJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVHJhbnNpdGlvbiA6IENsdXR0ZXIuVGlt ZWxpbmUsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtNzc4Myw3ICs3NDIyLDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIFZpcnR1YWxJbnB1dERldmljZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0 X2RldmljZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2Vy IGdldF9tYW5hZ2VyICgpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfYWJzb2x1dGVf bW90aW9uICh1aW50NjQgdGltZV91cywgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgbm90aWZ5X2J1dHRvbiAodWludDY0IHRpbWVfdXMsIHVpbnQzMiBidXR0b24s IENsdXR0ZXIuQnV0dG9uU3RhdGUgYnV0dG9uX3N0YXRlKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgbm90aWZ5X2Rpc2NyZXRlX3Njcm9sbCAodWludDY0IHRpbWVfdXMsIENsdXR0ZXIuU2Nyb2xs RGlyZWN0aW9uIGRpcmVjdGlvbiwgQ2x1dHRlci5TY3JvbGxTb3VyY2Ugc2Nyb2xsX3NvdXJjZSk7 CitAQCAtNzc5NCwyNSArNzQzMiwyNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9kb3duICh1aW50NjQgdGltZV91cywgaW50IHNsb3Qs IGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3Vj aF9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsK KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX3VwICh1aW50NjQgdGltZV91cywg aW50IHNsb3QpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5EZXZp Y2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1 YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSB7IGdldDsgY29uc3RydWN0 OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3pvb21fYWN0aW9uX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1YmxpYyBjbGFz cyBab29tQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisgCQlw dWJsaWMgWm9vbUFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9wb2ludCAoQ2x1 dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxf cG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3Bv aW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3Jt ZWRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCXB1YmxpYyBDbHV0dGVy Llpvb21BeGlzIGdldF96b29tX2F4aXMgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfem9vbV9heGlz IChDbHV0dGVyLlpvb21BeGlzIGF4aXMpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgem9v bV9heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20g KENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBm YWN0b3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgR3JhcGhlbmUuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf Y25hbWUgPSAiQ2x1dHRlckFuaW1hdGFibGVJbnRlcmZhY2UiLCB0eXBlX2lkID0gImNsdXR0ZXJf YW5pbWF0YWJsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIEFuaW1hdGFibGUg OiBHTGliLk9iamVjdCB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVi bGljIGFic3RyYWN0IGJvb2wgYW5pbWF0ZV9wcm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5p bWF0aW9uLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBH TGliLlZhbHVlIGZpbmFsX3ZhbHVlLCBkb3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVub3du ZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOwor QEAgLTc4MzAsOCArNzQ2OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1 bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qg dm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZh X2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NTMsMTAgKzc0ODksNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAo c3RyaW5nIGNoaWxkX25hbWUpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5l cl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5IildCisgCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBH TGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENs dXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgZm9yZWFjaF93aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxs YmFjayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1 bm93bmVkIENsdXR0ZXIuQ2hpbGRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC40IildCitAQCAtNzg3NCw4ICs3NTA2LDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gInJlbW92ZSIpXQorIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlbW92ZV9hY3RvciAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3Zh bGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNiIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc29ydF9kZXB0aF9vcmRlciAo KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdG9yX2FkZGVkIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKK0BAIC03ODkyLDcgKzc1MjIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlICgpOworIAkJcHVibGljIGFic3RyYWN0 IHZvaWQgaW52YWxpZGF0ZV9zaXplICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0 cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFp bnROb2RlIG5vZGUpOworKwkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSwgQ2x1dHRlci5QYWludENv bnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYXR0YWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03OTA4LDEwICs3NTM4LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xp Yi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9y ZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9t ZXRyeSBnZW9tZXRyeSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGludCBn ZXRfcGVuZGluZ19zd2FwcyAoKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNzkzOSwxNCArNzU2NSwx NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3Ry YWN0IHZvaWQgdW5yZWFsaXplICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMg c3RydWN0IEFjdG9yQm94IHsKKyAJCXB1YmxpYyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5 MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJCXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFs bG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xh bXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJl ZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCitAQCAtNzk1NSw4ICs3NTgzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGlj IEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTgwMDIsNyArNzYyOCw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJs aWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1Ii KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIildCisgCXB1YmxpYyBzdHJ1Y3QgQ29s b3IgeworIAkJcHVibGljIHVpbnQ4IHJlZDsKKyAJCXB1YmxpYyB1aW50OCBncmVlbjsKK0BAIC04 MDQxLDI0ICs3NjY3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuMiIpXQorIAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2ZvZ19nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0 IEZvZyB7CistCQlwdWJsaWMgZmxvYXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0IHpfZmFyOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9nZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Ry dWN0IEdlb21ldHJ5IHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1 YmxpYyB1aW50IHdpZHRoOworLQkJcHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRy eSBnZW9tZXRyeTEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENs dXR0ZXIuR2VvbWV0cnkgdW5pb24gKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7CistCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgS2JkQTExeVNldHRpbmdzIHsKKyAJCXB1 YmxpYyBDbHV0dGVyLktleWJvYXJkQTExeUZsYWdzIGNvbnRyb2xzOworQEAgLTgwNjksNyArNzY3 Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9z cGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90 IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BAIC04MTIxLDcgKzc3MjksNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQzMiBtb2RlOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBhdGhOb2Rl VHlwZSB0eXBlOworQEAgLTgxMzEsNyArNzczOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7CisgCQlwdWJsaWMg dm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2ZSB7CisgCQlw dWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTYyLDcgKzc3NzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFr IENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRT IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNv cHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2Zy ZWUiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgVW5pdHMgeworIAkJcHVibGljIENsdXR0ZXIuVW5p dHM/IGNvcHkgKCk7CitAQCAtODE4NiwyMyArNzc5NCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBmbG9hdCB0b19waXhlbHMgKCk7CisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmlu ZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdmVydGV4X2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0cnVjdCBWZXJ0ZXggeworLQkJcHVibGljIGZs b2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBmbG9hdCB6OworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5WZXJ0ZXg/IGFs bG9jICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIu VmVydGV4PyBjb3B5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IGJvb2wgZXF1YWwgKENsdXR0ZXIuVmVydGV4IHZlcnRleF9iKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5WZXJ0ZXg/IGluaXQgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BQ1RPUl9BTElHTl8iLCB0 eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYWxpZ25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGVudW0gQWN0b3JBbGlnbiB7CitAQCAtODM0MCw2 ICs3OTMxLDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJl Zml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0 X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlT QywKKysJCUFDVE9SLAorKwkJVEVYVFVSRSwKKysJCUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5H TywKKysJCUJBQ0tFTkQsCisrCQlTQ0hFRFVMRVIsCisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisr CQlNVUxUSVNUQUdFLAorKwkJQU5JTUFUSU9OLAorKwkJTEFZT1VULAorKwkJUElDSywKKysJCUVW RU5UTE9PUCwKKysJCUNMSVBQSU5HLAorKwkJT09CX1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfRFJBR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19heGlzX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAg LTgzNDcsNiArNzk1OSwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlYX0FYSVMsCisgCQlZ X0FYSVMKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdf ZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdE ZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9S RURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJ TkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFX LAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXgg PSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVj dF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVm ZmVjdFBhaW50RmxhZ3MgeworQEAgLTgzOTgsOCArODAyMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKyAJCVRFWFRVUkVfTlBPVCwKKyAJCVNX QVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisg CQlTVEFHRV9TVEFUSUMsCisgCQlTVEFHRV9DVVJTT1IsCisgCQlTSEFERVJTX0dMU0wsCitAQCAt ODY1Nyw2ICs4MjgwLDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVJFTF9MSU5FX1RPLAor IAkJUkVMX0NVUlZFX1RPCisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHX05PUF8iLCB0eXBlX2lkID0g ImNsdXR0ZXJfcGlja19kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVi bGljIGVudW0gUGlja0RlYnVnRmxhZyB7CisrCQlQSUNLSU5HCisrCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BJ Q0tfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIFBpY2tNb2RlIHsKK0BAIC04ODUx LDEzICs4NDc5LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJTEVGVCwKKyAJCVJJR0hUCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX1RBQkxFX0FMSUdOTUVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFi bGVfYWxpZ25tZW50X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIyIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBl bnVtIFRhYmxlQWxpZ25tZW50IHsKKy0JCVNUQVJULAorLQkJQ0VOVEVSLAorLQkJRU5ECistCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZp eCA9ICJDTFVUVEVSX1RFWFRfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0X2Rp cmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1 YmxpYyBlbnVtIFRleHREaXJlY3Rpb24geworQEAgLTg5MzMsMjggKzg1NTQsMTkgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJVkFMVUU7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVh cmsgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRVUkVfRVJST1JfIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIGVycm9yZG9tYWluIFRleHR1cmVFcnJvciB7CistCQlP VVRfT0ZfTUVNT1JZLAorLQkJTk9fWVVWLAorLQkJQkFEX0ZPUk1BVDsKKy0JCXB1YmxpYyBzdGF0 aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4yNCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgQ2x1dHRlci5BY3RvciBBY3RvckNy ZWF0ZUNoaWxkRnVuYyAoR0xpYi5PYmplY3QgaXRlbSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC4yIildCisgCXB1YmxpYyBkZWxlZ2F0ZSBkb3VibGUgQWxwaGFGdW5jIChDbHV0dGVyLkFs cGhhIGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBCZWhhdmlvdXJGb3JlYWNoRnVuYyAoQ2x1dHRlci5CZWhhdmlvdXIgYmVoYXZp b3VyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBCaW5kaW5nQWN0aW9uRnVuYyAo R0xpYi5PYmplY3QgZ29iamVjdCwgc3RyaW5nIGFjdGlvbl9uYW1lLCB1aW50IGtleV92YWwsIENs dXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIENhbGxiYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3RhcmdldCA9IGZhbHNl KV0KKysJcHVibGljIGRlbGVnYXRlIHZvaWQgRW1pdElucHV0RGV2aWNlRXZlbnQgKENsdXR0ZXIu RXZlbnQgZXZlbnQsIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgRXZl bnRGaWx0ZXJGdW5jIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKK0BAIC04OTg1LDkgKzg1OTcsNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJcHVi bGljIGNvbnN0IGludCBQUklPUklUWV9SRURSQVc7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor LQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFjdG9yX2JveF9hbGxvYyAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1Ymxp YyBzdGF0aWMgdm9pZCBiYXNlX2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAg LTkwNTEsOSArODY2MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9u dF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAu MiIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAo KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitA QCAtOTA2MSwxNyArODY2Nyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIHN0YXRp YyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0ICgpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfcG9pbnRlcl9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAlwdWJsaWMg c3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9zY3JpcHRfaWQgKEdMaWIuT2JqZWN0IGdvYmplY3Qp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9rZXli b2FyZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGlj IHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBpbml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFt ZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1td PyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC05MDg3LDI5ICs4Njg0LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9m dW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB0ZXN0X2FkZF9kYXRhX2Z1bGwgKHN0cmluZyB0ZXN0X3BhdGgsIG93bmVkIEdMaWIu VGVzdERhdGFGdW5jIHRlc3RfZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJs aWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19hY3Rvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBz dGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0 ZXIuQWN0b3I/IHJlc3VsdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3Rh dGljIGJvb2wgdGVzdF9jaGVja19jb2xvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwg Q2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1dHRlci5Db2xvciBjb2xvciwgb3V0IENsdXR0ZXIuQ29s b3IgcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIHRlc3RfZ2V0X3N0YWdlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRl c3RfaW5pdCAoaW50IGFyZ2MsIHN0cmluZyBhcmd2KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4Iild CistCXB1YmxpYyBzdGF0aWMgaW50IHRlc3RfcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXIgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQgdW5pY29kZV90b19rZXlz eW0gKHVpbnQzMiB3Yyk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVw cyB2YXBpL211dHRlci1jbHV0dGVyLTcuZGVwcworc2ltaWxhcml0eSBpbmRleCA1NCUKK3JlbmFt ZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXIt Y2x1dHRlci03LmRlcHMKK2luZGV4IDk1MDk0MDI2Li42YmQxY2NmNyAxMDA2NDQKKy0tLSB2YXBp L211dHRlci1jbHV0dGVyLTQuZGVwcworKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy5kZXBzCitA QCAtMSw1ICsxLDQgQEAKKyBhdGsKKyBjYWlybworIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY29n bC00CistcGFuZ28KKyttdXR0ZXItY29nbC03CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0 ZXItNC52YXBpIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDg2 JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci00LnZhcGkKK3JlbmFtZSB0byB2YXBp L211dHRlci1jbHV0dGVyLTcudmFwaQoraW5kZXggYzhhMWQyM2IuLmFlYTZhMzFhIDEwMDY0NAor LS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03 LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8qIG11dHRlci1jbHV0dGVyLTQudmFwaSBnZW5lcmF0 ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1dHRlci03LnZh cGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChj cHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lv biA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisrW0NDb2RlIChjcHJl Zml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9 ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BAIC00NTc2LDIw ICs0NTc2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdWludCBhZGRfcmVwYWludF9mdW5jX2Z1bGwgKENsdXR0 ZXIuUmVwYWludEZsYWdzIGZsYWdzLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CisgCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW50ZXIgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBsZWF2ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHN0YXRpYyB2b2lkIHJlbW92ZV9yZXBhaW50X2Z1bmMgKHVpbnQgaGFuZGxlX2lkKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9sb2NrX2Z1 bmN0aW9ucyAoR0xpYi5DYWxsYmFjayBlbnRlcl9mbiwgR0xpYi5DYWxsYmFjayBsZWF2ZV9mbik7 CisgCX0KKyAJbmFtZXNwYWNlIFZhbHVlIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTQ2MzYsNyArNDYyNCw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCB0YWtlX3BhaW50X25vZGUgKEdMaWIuVmFs dWUgdmFsdWUsIENsdXR0ZXIuUGFpbnROb2RlPyBub2RlKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0 aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGlj IGFic3RyYWN0IGNsYXNzIEFjdGlvbiA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBBY3Rpb24gKCk7 CitAQCAtNDY2NCwzMyArNDY1MSwyMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgYWRkX3RyYW5zaXRpb24gKHN0cmlu ZyBuYW1lLCBDbHV0dGVyLlRyYW5zaXRpb24gdHJhbnNpdGlvbik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFj dG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYWxpZ25fZmlsbCAoQ2x1 dHRlci5BY3RvckJveCBib3gsIGRvdWJsZSB4X2FsaWduLCBkb3VibGUgeV9hbGlnbiwgYm9vbCB4 X2ZpbGwsIGJvb2wgeV9maWxsLCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlw dWJsaWMgdm9pZCBhbGxvY2F0ZV9hbGlnbl9maWxsIChDbHV0dGVyLkFjdG9yQm94IGJveCwgZG91 YmxlIHhfYWxpZ24sIGRvdWJsZSB5X2FsaWduLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZh aWxhYmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxv YXQgYXZhaWxhYmxlX2hlaWdodCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJ cHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0IHksIGZs b2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdodCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6 ZSAoQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGUgKHVsb25nIG1vZGUsIHVp bnQgZHVyYXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhh LCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5p bWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYXYgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAx LjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41KV0gR0xpYi5WYWx1ZVtdIHZhbHVl cyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gYW5pbWF0ZV93aXRoX3RpbWVsaW5lICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRp bWVsaW5lLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90aW1lbGluZXYgKHVsb25nIG1vZGUsIENsdXR0ZXIu VGltZWxpbmUgdGltZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZXYgKHVsb25nIG1vZGUsIHVpbnQg ZHVyYXRpb24sIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFy cmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5 X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0g R0xpYi5WYWx1ZVtdIHZhbHVlcyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRf c2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50 IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVi bGljIHZvaWQgYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9y PyBhbmNlc3RvciwgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUu UG9pbnQzRCB2ZXJ0ZXgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg YXBwbHlfdHJhbnNmb3JtIChyZWYgQ2x1dHRlci5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV90cmFuc2Zv cm1fdG9fcG9pbnQgKENsdXR0ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5 X3RyYW5zZm9ybV90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQg R3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0K KyAJCXB1YmxpYyB2b2lkIGJpbmRfbW9kZWwgKEdMaWIuTGlzdE1vZGVsPyBtb2RlbCwgb3duZWQg Q2x1dHRlci5BY3RvckNyZWF0ZUNoaWxkRnVuYyBjcmVhdGVfY2hpbGRfZnVuYyk7CisrCQlbTm9X cmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlX3Jlc291cmNlX3NjYWxl IChpbnQgcGhhc2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZv aWQgY2xlYXJfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00 NzAwLDIwICs0Njc3LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2Nl bmRhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29u dGludWVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5Q YWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNr IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQg Y3JlYXRlX3BhbmdvX2xheW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50 LCBib29sIGNhcHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fi c19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3Jh cGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5P YmplY3QgZ2V0X2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7 CitAQCAtNDcyMSwyMSArNDY5Nyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBH TGliLkxpc3Q8d2VhayBDbHV0dGVyLkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBnZXRfYWxsb2Nh dGlvbl9ib3ggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0 cnkgZ2V0X2FsbG9jYXRpb25fZ2VvbWV0cnkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rv cj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRl eCB2ZXJ0c1s0XSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FuY2hv cl9wb2ludCAob3V0IGZsb2F0IGFuY2hvcl94LCBvdXQgZmxvYXQgYW5jaG9yX3kpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9n cmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3IgKCk7CistCQlb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2J5X2dpZCAo dWludDMyIGlkXyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BY3RvciBnZXRfY2hpbGRfYXRfaW5kZXggKGludCBpbmRleF8pOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC00NzYyLDggKzQ3MjUsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBnZXRfY29udGVudF9zY2FsaW5nX2ZpbHRlcnMg KG91dCBDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgb3V0IENsdXR0ZXIuU2NhbGlu Z0ZpbHRlciBtYWdfZmlsdGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Vm9sdW1lIGdldF9kZWZhdWx0X3BhaW50X3ZvbHVt ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X2RlcHRoICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9lYXNpbmdfZGVsYXkgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTQ3NzYsMTIgKzQ3MzcsMTEgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuRWZmZWN0PiBn ZXRfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9maXJzdF9jaGlsZCAoKTsKKysJCXB1YmxpYyBib29s IGdldF9maXhlZF9wb3NpdGlvbiAob3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbl9z ZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5B Y3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50 MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9p bnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0 X2hhc19wb2ludGVyICgpOworQEAgLTQ4MzksMTcgKzQ3OTksMTEgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X3JlYWN0aXZlICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIuUmVxdWVzdE1vZGUgZ2V0X3JlcXVlc3RfbW9k ZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9yZXNvdXJjZV9zY2FsZSAob3V0IGZsb2F0IHJlc291 cmNlX3NjYWxlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZG91YmxlIGdldF9yb3Rh dGlvbiAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMsIG91dCBmbG9hdCB4LCBvdXQgZmxvYXQgeSwg b3V0IGZsb2F0IHopOworKwkJcHVibGljIGZsb2F0IGdldF9yZXNvdXJjZV9zY2FsZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlv bl9hbmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuMiIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3NjYWxlIChvdXQgZG91YmxlIHNjYWxlX3gsIG91 dCBkb3VibGUgc2NhbGVfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X3NjYWxlX2NlbnRlciAob3V0IGZsb2F0IGNlbnRlcl94LCBvdXQgZmxvYXQgY2VudGVyX3kpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3NjYWxlX2dy YXZpdHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJs ZSBnZXRfc2NhbGVfeiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC00ODYw LDggKzQ4MTQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0 RGlyZWN0aW9uIGdldF90ZXh0X2RpcmVjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybWF0aW9u X21hdHJpeCAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9leHRlbnRzIChvdXQg dW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRf cGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9yIHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC00ODg1LDEwICs0ODM4LDkgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X3lfZXhwYW5kICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfel9wb3NpdGlvbiAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF96X3JvdGF0aW9u X2dyYXZpdHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9p ZCBncmFiX2tleV9mb2N1cyAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX2FjY2Vzc2li bGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGJvb2wgaGFz X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDkwMCwxOCAr NDg1MiwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfZWZmZWN0 cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhhc19r ZXlfZm9jdXMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIGJv b2wgaGFzX21hcHBlZF9jbG9uZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisg CQlwdWJsaWMgdmlydHVhbCBib29sIGhhc19vdmVybGFwcyAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIild CisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX2FsbCAoKTsKKysJ CXB1YmxpYyB2b2lkIGluaGliaXRfY3VsbGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNlcnRfY2hpbGRfYWJvdmUgKENsdXR0ZXIuQWN0b3Ig Y2hpbGQsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hdF9pbmRleCAoQ2x1dHRlci5BY3Rv ciBjaGlsZCwgaW50IGluZGV4Xyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2JlbG93IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0 dGVyLkFjdG9yPyBzaWJsaW5nKTsKKysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfdHJhbnNmb3Jt ICgpOworKwkJcHVibGljIGJvb2wgaXNfZWZmZWN0aXZlbHlfb25fc3RhZ2VfdmlldyAoQ2x1dHRl ci5TdGFnZVZpZXcgdmlldyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgYm9vbCBpc19pbl9jbG9uZV9wYWludCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0 IildCitAQCAtNDkyNCwzMyArNDg3OCwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgYm9vbCBpc19zY2FsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJ cHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlciAoQ2x1 dHRlci5BY3Rvcj8gYWJvdmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyX2JvdHRvbSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFw ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50 IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50X2Zyb21fZ3Jhdml0eSAoQ2x1dHRlci5HcmF2 aXR5IGdyYXZpdHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZv aWQgbW92ZV9ieSAoZmxvYXQgZHgsIGZsb2F0IGR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgYm9vbCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24g b3JpZW50YXRpb24pOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFp bnRfbm9kZSAoQ2x1dHRlci5QYWludE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIHZvaWQgcG9wX2ludGVybmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1 dHRlci5TdGFnZVZpZXc+IHBlZWtfc3RhZ2Vfdmlld3MgKCk7CisrCQlwdWJsaWMgdm9pZCBwaWNr X2JveCAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQsIENsdXR0ZXIuQWN0b3JCb3gg Ym94KTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRnJhbWVDbG9jayBwaWNrX2ZyYW1lX2Ns b2NrICgpOworIAkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhd193aXRoX2NsaXAgKENh aXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2UgKENsdXR0 ZXIuQWN0b3I/IGJlbG93KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZV90b3AgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfYWN0aW9uIChD bHV0dGVyLkFjdGlvbiBhY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAg LTQ5NzIsOCArNDkxMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHJl bW92ZV9lZmZlY3RfYnlfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV90cmFuc2l0aW9uIChzdHJpbmcgbmFtZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQgcmVwYXJlbnQgKENsdXR0ZXIuQWN0 b3IgbmV3X3BhcmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgcmVwbGFjZV9jaGlsZCAoQ2x1dHRlci5BY3RvciBvbGRfY2hpbGQsIENsdXR0ZXIuQWN0 b3IgbmV3X2NoaWxkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNDk4MSwx MSArNDkyMCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdm9pZCBzYXZlX2Vhc2luZ19zdGF0ZSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlvbiAoQ2x1dHRl ci5BY3RvckJveCBib3gsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3Jf eCwgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hbmNob3JfcG9pbnRfZnJvbV9ncmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7Cisr CQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5k X2NvbG9yIChDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorQEAgLTUwMDgsOCArNDk0Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2b2lkIHNldF9jb250ZW50X3JlcGVhdCAoQ2x1dHRlci5Db250ZW50UmVwZWF0IHJlcGVhdCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbnRl bnRfc2NhbGluZ19maWx0ZXJzIChDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgQ2x1 dHRlci5TY2FsaW5nRmlsdGVyIG1hZ19maWx0ZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9k ZXB0aCAoZmxvYXQgZGVwdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9lYXNpbmdfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KK0BAIC01MDM5LDggKzQ5NzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdm9pZCBzZXRfb2Zmc2NyZWVuX3JlZGlyZWN0IChDbHV0dGVyLk9mZnNjcmVl blJlZGlyZWN0IHJlZGlyZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vcGFjaXR5ICh1aW50OCBv cGFjaXR5KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vcGFjaXR5X292ZXJyaWRlIChpbnQgb3BhY2l0 eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BhcmVudCAoQ2x1dHRlci5BY3RvciBwYXJlbnQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9waXZv dF9wb2ludCAoZmxvYXQgcGl2b3RfeCwgZmxvYXQgcGl2b3RfeSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorQEAgLTUwNTAsMTYgKzQ5ODEsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZvaWQgc2V0X3JlYWN0aXZlIChib29sIHJlYWN0aXZlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yZXF1ZXN0X21vZGUgKENs dXR0ZXIuUmVxdWVzdE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3JvdGF0aW9uIChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhpcywgZG91YmxlIGFuZ2xlLCBm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisgCQlwdWJsaWMgdm9pZCBzZXRfcm90YXRpb25fYW5nbGUgKENsdXR0ZXIuUm90YXRlQXhpcyBh eGlzLCBkb3VibGUgYW5nbGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3NjYWxlIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3kpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zY2FsZV9mdWxsIChkb3VibGUgc2Nh bGVfeCwgZG91YmxlIHNjYWxlX3ksIGZsb2F0IGNlbnRlcl94LCBmbG9hdCBjZW50ZXJfeSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3dpdGhfZ3Jhdml0eSAo ZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95LCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxl X3ogKGRvdWJsZSBzY2FsZV96KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zaXplIChmbG9hdCB3aWR0 aCwgZmxvYXQgaGVpZ2h0KTsKK0BAIC01MDg1LDE3ICs1MDEwLDEyIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF95X2V4cGFuZCAoYm9vbCBleHBhbmQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF96X3Bvc2l0aW9uIChm bG9hdCB6X3Bvc2l0aW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf el9yb3RhdGlvbl9mcm9tX2dyYXZpdHkgKGRvdWJsZSBhbmdsZSwgQ2x1dHRlci5HcmF2aXR5IGdy YXZpdHkpOworIAkJcHVibGljIGJvb2wgc2hvdWxkX3BpY2tfcGFpbnQgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X2FsbCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIHRyYW5zZm9ybV9zdGFnZV9wb2ludCAo ZmxvYXQgeCwgZmxvYXQgeSwgb3V0IGZsb2F0IHhfb3V0LCBvdXQgZmxvYXQgeV9vdXQpOworKwkJ cHVibGljIHZvaWQgdW5pbmhpYml0X2N1bGxpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVubWFwICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIi KV0KKy0JCXB1YmxpYyB2b2lkIHVucGFyZW50ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIHZvaWQgdW5zZXRfZmxhZ3MgKENsdXR0ZXIuQWN0b3JGbGFncyBmbGFn cyk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MTAzLDE2ICs1MDIzLDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQWN0aW9uIGFjdGlvbnMgeyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBh bmNob3JfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgZmxvYXQgYW5jaG9yX3ggeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGZsb2F0IGFu Y2hvcl95IHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRp b24geyBvd25lZCBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgQ2x1dHRlci5Db2xvciBiYWNrZ3JvdW5kX2NvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorQEAgLTUxMjIsMTEgKzUwMzMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgY2hpbGRfdHJh bnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0 IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBj bGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIGJvb2wgY2xpcF90b19hbGxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxNDAsOCArNTA0OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbnRlbnRHcmF2aXR5IGNvbnRlbnRfZ3Jhdml0eSB7IGdl dDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0 ZXIuQ29udGVudFJlcGVhdCBjb250ZW50X3JlcGVhdCB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIGZsb2F0IGRlcHRoIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vz c29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0 ZXIuRWZmZWN0IGVmZmVjdCB7IHNldDsgfQorQEAgLTUyMTEsMTIgKzUxMTcsMTIgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9wb2ludF96IHsg Z2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCByZWFjdGl2 ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1LDggKzUxMzEs NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisg CQlwdWJsaWMgQ2x1dHRlci5SZXF1ZXN0TW9kZSByZXF1ZXN0X21vZGUgeyBnZXQ7IHNldDsgfQor IAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZmxvYXQgcmVzb3VyY2Vfc2NhbGUgeyBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorIAkJcHVibGljIGRvdWJsZSByb3RhdGlvbl9hbmdsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMzYsMjcgKzUxNDAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0 aW9uX2FuZ2xlX3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl94IHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeSB7IGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRl ci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ogeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSByb3Rh dGlvbl9jZW50ZXJfel9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBzY2FsZV9jZW50ZXJfeCB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgZmxvYXQgc2NhbGVfY2VudGVyX3kgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBzY2Fs ZV9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSBzY2FsZV94IHsgZ2V0OyBzZXQ7 IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyNjksNyArNTE1Miw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVi bGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGly ZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyOTksOCAr NTE4Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHlfZXhwYW5kIHsg Z2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxv YXQgel9wb3NpdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWxsb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLkFjdG9y Qm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgYnV0dG9uX3ByZXNz X2V2ZW50IChDbHV0dGVyLkJ1dHRvbkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KK0BAIC01MzMxLDIyICs1MjEyLDI1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIG1vdGlvbl9ldmVudCAoQ2x1dHRlci5Nb3Rpb25F dmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBh cmVudF9zZXQgKENsdXR0ZXIuQWN0b3I/IG9sZF9wYXJlbnQpOworKwkJW0hhc0VtaXR0ZXJdCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBwaWNrIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtIYXNFbWl0 dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgcXVldWVfcmVsYXlvdXQgKCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MC44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCByZWFsaXplICgpOworKwkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVzb3VyY2Vfc2NhbGVfY2hhbmdlZCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHNj cm9sbF9ldmVudCAoQ2x1dHRlci5TY3JvbGxFdmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHNob3cgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhZ2Vfdmlld3NfY2hhbmdlZCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgYm9vbCB0b3VjaF9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorQEAgLTUzNTgsMjEgKzUyNDIsMzMgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgdW5yZWFsaXplICgpOworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9hY3Rvcl9tZXRhX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEFjdG9yTWV0YSA6IEdMaWIuSW5pdGlh bGx5VW5vd25lZCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlwcm90ZWN0ZWQgQWN0b3JNZXRhICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf bmFtZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9hY3Rv ciAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2VuYWJsZWQgKGJv b2wgaXNfZW5hYmxlZCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIHNldF9lbmFibGVkIChib29sIGlzX2VuYWJsZWQpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGFj dG9yIHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9v bCBlbmFibGVkIHsgZ2V0OyBzZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9y X25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIu UGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGln bkNvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTUzODAsODEgKzUyNzYsMTgg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIEFsaWduQ29uc3RyYWludCAoQ2x1dHRl ci5BY3Rvcj8gc291cmNlLCBDbHV0dGVyLkFsaWduQXhpcyBheGlzLCBmbG9hdCBmYWN0b3IpOwor IAkJcHVibGljIENsdXR0ZXIuQWxpZ25BeGlzIGdldF9hbGlnbl9heGlzICgpOworIAkJcHVibGlj IGZsb2F0IGdldF9mYWN0b3IgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcGl2b3RfcG9pbnQgKG91 dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50KTsKKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X3NvdXJjZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9hbGlnbl9h eGlzIChDbHV0dGVyLkFsaWduQXhpcyBheGlzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3Ig KGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgdm9pZCBzZXRfcGl2b3RfcG9pbnQgKEdyYXBoZW5l LlBvaW50IHBpdm90X3BvaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zb3VyY2UgKENsdXR0ZXIu QWN0b3I/IHNvdXJjZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5BbGlnbkF4aXMgYWxpZ25fYXhpcyB7 IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIGZsb2F0IGZhY3RvciB7IGdldDsgc2V0 IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgR3JhcGhlbmUu UG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIENsdXR0ZXIu QWN0b3Igc291cmNlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Fs cGhhX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBBbHBo YSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBBbHBoYSAoKTsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBoYS5mdWxsIChDbHV0dGVyLlRpbWVsaW5l IHRpbWVsaW5lLCB1bG9uZyBtb2RlKTsKKy0JCXB1YmxpYyBkb3VibGUgZ2V0X2FscGhhICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIGdldF9tb2RlICgp OworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lz dGVyX2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRlci5B bHBoYUZ1bmMgZnVuYyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg dm9pZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOworLQkJcHVibGljIHZvaWQg c2V0X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJ cHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBoYS53aXRoX2Z1bmMgKENsdXR0ZXIuVGltZWxp bmUgdGltZWxpbmUsIG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJcHVibGljIGRv dWJsZSBhbHBoYSB7IGdldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBDbHV0dGVy LlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0 aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBBbmlt YXRpb24gOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBBbmltYXRpb24gKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlf bmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBiaW5kX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5J bnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CistCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24g KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3Ry aW5nIHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CistCQlwdWJs aWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRf b2JqZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxp bmUgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1l KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIu QWxwaGEgYWxwaGEpOworLQkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworLQkJcHVibGljIHZvaWQgc2V0 X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmpl Y3Qgb2JqZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGlu ZT8gdGltZWxpbmUpOworLQkJcHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJv cGVydHlfbmFtZSk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUg KHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lk IHVwZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwg aW50ZXJ2YWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFs cGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0K Ky0JCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVsb25nIG1vZGUg eyBnZXQ7IHNldDsgfQorLQkJcHVibGljIEdMaWIuT2JqZWN0IG9iamVjdCB7IGdldDsgc2V0OyB9 CistCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlb SGFzRW1pdHRlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsK Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHN0YXJ0ZWQgKCk7CistCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtNTQ2 NywzNyArNTMwMCwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Jh Y2tlbmRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJs aWMgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNz IEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9vcHRpb25zIChHTGliLk9wdGlvbkdyb3VwIGdyb3Vw KTsKKy0JCXB1YmxpYyB2b2lkIGJlbGxfbm90aWZ5ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLlN0YWdlV2lu ZG93IGNyZWF0ZV9zdGFnZSAoQ2x1dHRlci5TdGFnZSB3cmFwcGVyKSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0 IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0 X2ZlYXR1cmVzICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0 X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdW5vd25l ZCBDYWlyby5Gb250T3B0aW9ucyBnZXRfZm9udF9vcHRpb25zICgpOworIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5JbnB1dE1ldGhvZCBnZXRfaW5wdXRfbWV0aG9kICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKyAJCXB1YmxpYyBkb3VibGUgZ2V0 X3Jlc29sdXRpb24gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBp bml0X2V2ZW50cyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGlu aXRfZmVhdHVyZXMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBw b3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIGJvb2wgcHJlX3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVkcmF3IChDbHV0dGVyLlN0YWdlIHN0YWdl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mb250 X29wdGlvbnMgKENhaXJvLkZvbnRPcHRpb25zIG9wdGlvbnMpOworIAkJcHVibGljIHZvaWQgc2V0 X2lucHV0X21ldGhvZCAoQ2x1dHRlci5JbnB1dE1ldGhvZCBtZXRob2QpOworQEAgLTU1MDgsOTUg KzUzMTgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHNldHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2JlaGF2aW91cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlvdXIgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBCZWhhdmlvdXIgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAo Q2x1dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIGFscGhhX25vdGlmeSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0J CXB1YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGli LlNMaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOworLQkJcHVibGljIGludCBnZXRfbl9hY3Rv cnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGlu dCBpbmRleF8pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wg aXNfYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJ cHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1 dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBhcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVw dGggOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIq IildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVw dGggKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5k cyAob3V0IGludCBkZXB0aF9zdGFydCwgb3V0IGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0 YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGludCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVo YXZpb3VyX29wYWNpdHlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMg Y2xhc3MgQmVoYXZpb3VyT3BhY2l0eSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0 dGVyLkFscGhhPyBhbHBoYSwgdWludDggb3BhY2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5k cyAob3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQsIG91dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50 OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9zdGFydCB7IGdldDsgc2V0OyB9Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9zY2FsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAi MC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3Vy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlv dXJTY2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3Vi bGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5k cyAob3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBvdXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91 dCBkb3VibGUgeF9zY2FsZV9lbmQsIG91dCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhf c2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRv dWJsZSB5X3NjYWxlX2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91Ymxl IHlfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsg Z2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBD bHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmlu TGF5b3V0IChDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1l bnQuU1RBUlQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdu bWVudC5TVEFSVCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0 dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJp bkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBn ZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25t ZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBj aGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQg eV9hbGlnbik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlw dWJsaWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTY0 NCw5OCArNTM3MCwyOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyRWZmZWN0KiIpXQorIAkJcHVi bGljIEJsdXJFZmZlY3QgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBjbGFzcyBCb3ggOiBDbHV0dGVy LkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250 YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIEJveCAoQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFnZXIpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1hbmFnZXIgZ2V0 X2xheW91dF9tYW5hZ2VyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBh Y2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHZvaWQgcGFja19hZnRlciAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8g c2libGluZywgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2F0 IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgcG9zaXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgcGFja19iZWZvcmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENs dXR0ZXIuQWN0b3I/IHNpYmxpbmcsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgcGFja3YgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2Nu YW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0 aF90eXBlID0gImd1aW50IildIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVu Z3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5 X2xlbmd0aF90eXBlID0gImd1aW50IildIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvcj8gY29sb3Ip OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXlvdXRfbWFuYWdlciAo Q2x1dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGNvbG9yX3NldCB7IGdldDsg c2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsg Z2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYm94X2xheW91dF9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCb3hMYXlvdXQgOiBD bHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQm94 TGF5b3V0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1l bnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWdu LCBvdXQgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyBib29sIGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBvdXQgYm9vbCB4X2ZpbGwsIG91dCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBnZXRfaG9tb2dlbmVvdXMgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuT3JpZW50YXRpb24gZ2V0X29y aWVudGF0aW9uICgpOworIAkJcHVibGljIGJvb2wgZ2V0X3BhY2tfc3RhcnQgKCk7CisgCQlwdWJs aWMgdWludCBnZXRfc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9v bCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJv b2wgZ2V0X3ZlcnRpY2FsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBh Y2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgZXhwYW5kLCBib29sIHhfZmlsbCwgYm9vbCB5 X2ZpbGwsIENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50 IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1l bnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIENs dXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9lYXNpbmdfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgYm9vbCBleHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9m aWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2hvbW9nZW5lb3Vz IChib29sIGhvbW9nZW5lb3VzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgdm9pZCBzZXRfb3JpZW50YXRpb24gKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRp b24pOworIAkJcHVibGljIHZvaWQgc2V0X3BhY2tfc3RhcnQgKGJvb2wgcGFja19zdGFydCk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ZlcnRpY2FsIChib29sIHZlcnRp Y2FsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24g eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdf bW9kZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgYm9vbCBob21vZ2VuZW91cyB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24geyBnZXQ7 IHNldDsgfQorIAkJcHVibGljIGJvb2wgcGFja19zdGFydCB7IGdldDsgc2V0OyB9CisgCQlwdWJs aWMgdWludCBzcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIGJvb2wgdmVydGljYWwgeyBnZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9i cmlnaHRuZXNzX2NvbnRyYXN0X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorQEAgLTU3NDksOSArNTQwNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9jb250cmFzdCAoZmxvYXQgY29udHJhc3QpOworIAkJcHVibGlj IHZvaWQgc2V0X2NvbnRyYXN0X2Z1bGwgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJs dWUpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBicmln aHRuZXNzIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3Mg eyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1 dHRlci5Db2xvciBjb250cmFzdCB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBjb250cmFzdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtD b21wYWN0XQorQEAgLTU3NzAsMzcgKzU0MjcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYWly b190ZXh0dXJlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFz cyBDYWlyb1RleHR1cmUgOiBDbHV0dGVyLlRleHR1cmUsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRl ci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJB Y3RvcioiKV0KKy0JCXB1YmxpYyBDYWlyb1RleHR1cmUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0 KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IENhaXJvLkNvbnRleHQgY3JlYXRlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENh aXJvLkNvbnRleHQgY3JlYXRlX3JlZ2lvbiAoaW50IHhfb2Zmc2V0LCBpbnQgeV9vZmZzZXQsIGlu dCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgYm9vbCBnZXRfYXV0b19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3VyZmFj ZV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGUgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX3JlY3RhbmdsZSAo Q2Fpcm8uUmVjdGFuZ2xlSW50PyByZWN0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hdXRvX3Jlc2l6ZSAoYm9vbCB2YWx1ZSk7CistCQlwdWJsaWMg dm9pZCBzZXRfc3VyZmFjZV9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBhdXRvX3Jlc2l6ZSB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2VfaGVp Z2h0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQg c3VyZmFjZV93aWR0aCB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgQ2Fpcm8uU3VyZmFjZSBjcmVhdGVfc3VyZmFjZSAo dWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZHJhdyAoQ2Fpcm8uQ29udGV4dCBjcik7Cist CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2NhbnZhc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgQ2FudmFzIDogR0xpYi5PYmplY3QsIENsdXR0ZXIu Q29udGVudCB7CitAQCAtNTgyNywxNyArNTQ1MywyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfY2xpY2tfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIENsaWNrQWN0aW9uIDogQ2x1dHRlci5B Y3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckFjdGlvbioiKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyBDbGlja0FjdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB1aW50IGdldF9idXR0b24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisg CQlwdWJsaWMgdm9pZCBnZXRfY29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHBy ZXNzX3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIu TW9kaWZpZXJUeXBlIGdldF9zdGF0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB2b2lkIHJlbGVhc2UgKCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhlbGQgeyBnZXQ7IH0KKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU4 NDYsNyArNTQ3NSw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgbG9uZ19wcmVzc190aHJlc2hvbGQgeyBnZXQ7IHNldDsg fQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgYm9vbCBwcmVzc2VkIHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjbGlja2VkIChDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCBib29sIGxvbmdfcHJlc3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuTG9u Z1ByZXNzU3RhdGUgc3RhdGUpOworQEAgLTU4ODgsOCArNTUxOSw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXByb3RlY3RlZCBDb25zdHJhaW50ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2FsbG9jYXRpb24gKENsdXR0ZXIuQWN0b3IgYWN0b3Is IENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3Is IENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9uLCBmbG9hdCBmb3Jfc2l6ZSwgZmxvYXQgbWlu aW11bV9zaXplLCBmbG9hdCBuYXR1cmFsX3NpemUpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1 cGRhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50 YXRpb24gZGlyZWN0aW9uLCBmbG9hdCBmb3Jfc2l6ZSwgcmVmIGZsb2F0IG1pbmltdW1fc2l6ZSwg cmVmIGZsb2F0IG5hdHVyYWxfc2l6ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0 XQorQEAgLTU4OTgsNiArNTUyOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3 ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRG bGFncyBmbGFnczsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3IgcmVsYXRlZDsKKysJCXB1 YmxpYyB3ZWFrIENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBzZXF1ZW5jZTsKKyAJCXB1YmxpYyB3ZWFr IENsdXR0ZXIuQWN0b3Igc291cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5TdGFnZSBzdGFn ZTsKKyAJCXB1YmxpYyB1aW50MzIgdGltZTsKK0BAIC01OTMxLDk4ICs1NTYyLDIxIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3Ip OworIAkJcHVibGljIGRvdWJsZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9kZXZpY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIERldmljZU1hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBhZGRfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1 dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0 dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFs SW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlw ZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZ2V0X2NvcmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlw ZSk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9k ZWZhdWx0ICgpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNl IGdldF9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5 X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMg dmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9k ZXZpY2VfdHlwZXMgKCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXRE ZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1 dHRlci5JbnB1dERldmljZT4gcGVla19kZXZpY2VzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcmVtb3ZlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZp Y2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2VsZWN0X3N0YWdl X2V2ZW50cyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2Ex MXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENs dXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2Vf cmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hh bmdlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2No YW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0 dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dl dF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNz IERyYWdBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorLQkJcHVibGljIERy YWdBY3Rpb24gKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3Qg ZHJhZ19hcmVhKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKy0J CXB1YmxpYyB2b2lkIGdldF9kcmFnX3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91 dCB1aW50IHlfdGhyZXNob2xkKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChv dXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CistCQlwdWJsaWMgdm9pZCBn ZXRfcHJlc3NfY29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOwor LQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOwor LQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXhpcyAoQ2x1dHRlci5EcmFnQXhpcyBheGlzKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9kcmFnX2hhbmRsZSAoQ2x1dHRlci5BY3Rvcj8gaGFuZGxlKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9kcmFnX3RocmVzaG9sZCAoaW50IHhfdGhyZXNob2xkLCBpbnQgeV90 aHJlc2hvbGQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIGJvb2wgZHJhZ19hcmVhX3NldCB7IGdldDsgfQorLQkJcHVibGljIENsdXR0 ZXIuRHJhZ0F4aXMgZHJhZ19heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkFj dG9yIGRyYWdfaGFuZGxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGludCB4X2RyYWdfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGludCB5X2RyYWdfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3ksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1v ZGlmaWVycyk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkcmFnX2VuZCAoQ2x1dHRl ci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2Rp ZmllclR5cGUgbW9kaWZpZXJzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdf bW90aW9uIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgYm9vbCBkcmFnX3Byb2dyZXNzIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94 LCBmbG9hdCBkZWx0YV95KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJvcF9hY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgY2xhc3MgRHJvcEFj dGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMgRHJvcEFjdGlv biAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGNhbl9kcm9wIChDbHV0dGVyLkFj dG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBldmVudF95KTsKKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGRyb3AgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gs IGZsb2F0IGV2ZW50X3kpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBkcm9wX2NhbmNlbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZl bnRfeCwgZmxvYXQgZXZlbnRfeSk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBvdmVy X2luIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IG92ZXJfb3V0IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0 X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFi c3RyYWN0IGNsYXNzIEVmZmVjdCA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBFZmZlY3QgKCk7Cisg CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfcGFpbnRfdm9sdW1lIChD bHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIG1vZGlm eV9wYWludF92b2x1bWUgKENsdXR0ZXIuUGFpbnRWb2x1bWUgdm9sdW1lKTsKKyAJCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLkVmZmVjdFBhaW50Rmxh Z3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENv bnRleHQgcGFpbnRfY29udGV4dCwgQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKyAJ CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuRWZmZWN0 UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIu UGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIHBvc3RfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFp bnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwg Ym9vbCBwcmVfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVwYWludCAo KTsKKyAJfQorQEAgLTYwMzMsOCArNTU4NywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBFdmVudCAoQ2x1dHRlci5FdmVudFR5cGUgdHlw ZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50 IGFkZF9maWx0ZXIgKENsdXR0ZXIuU3RhZ2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3Rhcmdl dF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90aWZ5X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZl bnRGaWx0ZXJGdW5jIGZ1bmMpOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnQgY29weSAoKTsKKyAJ CXB1YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisrCQlw dWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQgQGdldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9hbmdsZSAoQ2x1dHRlci5FdmVudCB0YXJn ZXQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYwNzMsNyArNTYzMSw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1aW50IGdldF9tb2RlX2dyb3VwICgpOwor IAkJcHVibGljIGJvb2wgZ2V0X3BhZF9ldmVudF9kZXRhaWxzIChvdXQgdWludCBudW1iZXIsIG91 dCB1aW50IG1vZGUsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9wb3NpdGlvbiAoQ2x1dHRlci5Qb2ludCBwb3NpdGlv bik7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRpb24gKEdyYXBoZW5lLlBvaW50IHBvc2l0aW9u KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X3JlbGF0ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTYxMDYsOCArNTY2NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9v bCBoYXNfc2hpZnRfbW9kaWZpZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVsYXRlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IHBlZWsg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBwdXQgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB2b2lkIHJl bW92ZV9maWx0ZXIgKHVpbnQgaWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2J1dHRvbiAodWludDMyIGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCitAQCAtNjE0MCwxNiArNTcwMiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9zdGF0ZSAoQ2x1dHRlci5Nb2RpZmllclR5cGUgc3RhdGUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3RpbWUgKHVp bnQzMiB0aW1lXyk7CistCQlwdWJsaWMgQ2x1dHRlci5BbnlFdmVudCBhbnkge1tDQ29kZSAoY25h bWUgPSAiKENsdXR0ZXJBbnlFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5C dXR0b25FdmVudCBidXR0b24ge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAq KSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHtb Q0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQ3Jvc3NpbmdFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlw dWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlF dmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Nb3Rpb25FdmVudCBtb3Rpb24g e1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJNb3Rpb25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlw dWJsaWMgQ2x1dHRlci5TY3JvbGxFdmVudCBzY3JvbGwge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0 ZXJTY3JvbGxFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRl RXZlbnQgc3RhZ2Vfc3RhdGUge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZl bnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hFdmVudCB0b3VjaCB7W0ND b2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNoRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGlj IENsdXR0ZXIuVG91Y2hwYWRQaW5jaEV2ZW50IHRvdWNocGFkX3BpbmNoIHtbQ0NvZGUgKGNuYW1l ID0gIihDbHV0dGVyVG91Y2hwYWRQaW5jaEV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBD bHV0dGVyLlRvdWNocGFkU3dpcGVFdmVudCB0b3VjaHBhZF9zd2lwZSB7W0NDb2RlIChjbmFtZSA9 ICIoQ2x1dHRlclRvdWNocGFkU3dpcGVFdmVudCAqKSIpXSAgZ2V0OyB9CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9 ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQg PSAiY2x1dHRlcl9ldmVudF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BA IC02MTk4LDEwICs1NzUwLDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgYm9vbCBzbmFwX3RvX2dyaWQgeyBnZXQ7IHNldDsg fQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9mcmFtZV9jbG9ja19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMg Y2xhc3MgRnJhbWVDbG9jayA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBGcmFtZUNsb2NrIChmbG9hdCByZWZyZXNo X3JhdGUsIENsdXR0ZXIuRnJhbWVMaXN0ZW5lcklmYWNlIGlmYWNlLCB2b2lkKiB1c2VyX2RhdGEp OworKwkJcHVibGljIHZvaWQgYWRkX3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5l KTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVmcmVzaF9yYXRlICgpOworKwkJcHVibGljIHZvaWQg aW5oaWJpdCAoKTsKKysJCXB1YmxpYyB2b2lkIHJlbW92ZV90aW1lbGluZSAoQ2x1dHRlci5UaW1l bGluZSB0aW1lbGluZSk7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGUgKCk7CisrCQlw dWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGVfbm93ICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhp Yml0ICgpOworKwkJW0hhc0VtaXR0ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVzdHJveSAo KTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VzdHVyZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgY2xhc3MgR2VzdHVyZUFjdGlvbiA6IENs dXR0ZXIuQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCQlwdWJsaWMgR2VzdHVyZUFjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCQlwdWJsaWMgdm9pZCBjYW5jZWwgKCk7CitAQCAtNjIxMSw2ICs1Nzc3LDcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBn ZXRfZGV2aWNlICh1aW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IGdldF9sYXN0X2V2ZW50ICh1aW50IHBvaW50 KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rp b25fY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rp b25feSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IGdl dF9tb3Rpb25fZGVsdGEgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCBkZWx0YV94LCBvdXQgZmxvYXQg ZGVsdGFfeSk7CitAQCAtNjIxOCw3ICs1Nzg1LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHVpbnQgZ2V0X25fY3VycmVudF9wb2ludHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIGludCBnZXRfbl90b3VjaF9wb2ludHMgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzICh1 aW50IHBvaW50LCBvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3JlbGVhc2VfY29vcmRz ICh1aW50IHBvaW50LCBvdXQgZmxvYXQgcmVsZWFzZV94LCBvdXQgZmxvYXQgcmVsZWFzZV95KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkV2ZW50U2VxdWVuY2UgZ2V0X3NlcXVlbmNlICh1aW50IHBvaW50KTsKK0BAIC02MjQ2LDkgKzU4 MTUsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHRocmVzaG9sZF90 cmlnZ2VyX2Rpc3RhbmNlX3kgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdlc3R1cmVUcmlnZ2VyRWRnZSB0aHJlc2hv bGRfdHJpZ2dlcl9lZGdlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGdlc3R1cmVfYmVnaW4gKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVyZV9jYW5jZWwgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgZ2VzdHVyZV9lbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9w cm9ncmVzcyAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyaWRfbGF5 b3V0X2dldF90eXBlICgpIildCitAQCAtNjI3OCwxOSArNTg1MSw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBib29sIHJvd19ob21vZ2VuZW91cyB7IGdldDsgc2V0OyB9CisgCQlw dWJsaWMgdWludCByb3dfc3BhY2luZyB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dy b3VwX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGlj IGNsYXNzIEdyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFu aW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9y KiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyBHcm91cCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJs aWMgaW50IGdldF9uX2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250aF9jaGlsZCAoaW50IGluZGV4Xyk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfaW1hZ2VfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIElt YWdlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNjMwNiw2ICs1ODY2LDgg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgY2xhc3MgSW5wdXREZXZpY2UgOiBHTGli Lk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwcm90ZWN0ZWQgSW5wdXREZXZpY2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoQ2x1dHRlci5FdmVu dFNlcXVlbmNlPyBzZXF1ZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9hc3NvY2lhdGVkX2RldmljZSAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MzEzLDcgKzU4NzUsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJs aWMgYm9vbCBnZXRfYXhpc192YWx1ZSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGRv dWJsZVtdIGF4ZXMsIENsdXR0ZXIuSW5wdXRBeGlzIGF4aXMsIG91dCBkb3VibGUgdmFsdWUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jb29yZHMg KENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQpOwor KwkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5j ZSwgR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIGludCBnZXRfZGV2aWNlX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorQEAgLTYzMjUsMTIgKzU4ODcsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZ2V0X2RldmljZV90eXBlICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQgKCk7CistCQlb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2lucHV0X2RldmljZV9mb3JfaWQiKV0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmlj ZSBnZXRfZm9yX2lkIChpbnQgaWRfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJ cHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzNDYsMjMgKzU5MDUsMjEgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGludCBnZXRfbl9tb2RlX2dyb3VwcyAoKTsKKyAJCXB1YmxpYyBp bnQgZ2V0X25fcmluZ3MgKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3N0cmlwcyAoKTsKKy0JCXB1 YmxpYyBib29sIGdldF9waHlzaWNhbF9zaXplIChkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciBnZXRfcG9pbnRlcl9hY3RvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X3BvaW50ZXJfc3RhZ2UgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9wcm9kdWN0X2lkICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9z ZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIEdMaWIuTGlz dDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGdldF9zbGF2ZV9kZXZpY2VzICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdmVu ZG9yX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IGdyYWIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIGJvb2wgaXNfZ3JvdXBlZCAo Q2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworLQkJcHVibGljIGJvb2wgaXNfbW9k ZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisrCQlwdWJsaWMgdmly dHVhbCBib29sIGlzX2dyb3VwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsK KysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3Vw LCB1aW50IGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IGJvb2wga2V5Y29kZV90b19ldmRldiAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2 X2tleWNvZGUpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50 IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBzZXF1ZW5jZV9n ZXRfZ3JhYmJlZF9hY3RvciAoQ2x1dHRlci5FdmVudFNlcXVlbmNlIHNlcXVlbmNlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtNjM3OCwxMiArNTkzNSwxMSBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCB1bmdyYWIgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCB1cGRhdGVfZnJvbV9ldmVudCAoQ2x1dHRlci5F dmVudCBldmVudCwgYm9vbCB1cGRhdGVfc3RhZ2UpOworKwkJW05vV3JhcHBlcl0KKysJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2Zyb21fdG9vbCAoQ2x1dHRlci5JbnB1dERldmljZVRvb2wg dG9vbCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIuSW5wdXRNb2RlIGRldmljZV9t b2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzdHJpbmcgZGV2aWNlX25vZGUgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTY0MDYs NiArNTk2Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQor IAkJcHVibGljIHN0cmluZyBwcm9kdWN0X2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1Ymxp YyBDbHV0dGVyLlNlYXQgc2VhdCB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyB2ZW5kb3JfaWQgeyBnZXQ7IGNvbnN0cnVj dDsgfQorIAl9CitAQCAtNjQzMCw3ICs1OTg3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tbWl0X3RleHQgKHN0cmluZyB0 ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlbGV0ZV9zdXJy b3VuZGluZyAodWludCBvZmZzZXQsIHVpbnQgbGVuKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg ZGVsZXRlX3N1cnJvdW5kaW5nIChpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlwdWJsaWMgYm9v bCBmaWx0ZXJfa2V5X2V2ZW50IChDbHV0dGVyLktleUV2ZW50IGtleSk7CisgCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBmb2N1c19pbiAoQ2x1dHRlci5JbnB1dE1ldGhvZCBp bnB1dF9tZXRob2QpOworQEAgLTY0NDMsNyArNjAwMCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9jYW5fc2hvd19wcmVlZGl0IChib29sIGNhbl9zaG93X3ByZWVk aXQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfaGludHMgKENsdXR0ZXIuSW5wdXRDb250 ZW50SGludEZsYWdzIGhpbnQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcHVycG9zZSAo Q2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIHB1cnBvc2UpOworLQkJcHVibGljIHZvaWQgc2V0 X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2V0 X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJ W05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3Ry aW5nIHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKK0BAIC02NDYyLDcgKzYwMTksNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCByZXNl dCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3Jf bG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0 X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJ cHVibGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nPyBwcmVlZGl0LCB1aW50IGN1cnNv cik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY0NzksOSArNjAzNiw5IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgY29udGVudF9wdXJw b3NlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lk IGNvbW1pdCAoc3RyaW5nIHRleHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2Nh dGlvbl9jaGFuZ2VkIChDbHV0dGVyLlJlY3Qgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoR3JhcGhlbmUuUmVjdCBvYmplY3QpOworIAkJW0hh c0VtaXR0ZXJdCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50 IG9mZnNldCwgdWludCBsZW4pOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3Vu ZGluZyAoaW50IG9mZnNldCwgdWludCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0 X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOworIAkJW0hhc0Vt aXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVxdWVzdF9zdXJyb3VuZGluZyAoKTsKK0BA IC02NTU1LDI4ICs2MTEyLDI4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7Cisg CQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMg dmlydHVhbCBQYW5nby5EaXJlY3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0 dWFsIGJvb2wgZ2V0X251bV9sb2NrX3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0 YXRlX2NoYW5nZWQgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCki KV0KKysJcHVibGljIGNsYXNzIExheWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWlu dE5vZGUqIildCisrCQlwdWJsaWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBD YWlyby5SZWN0YW5nbGUgdmlld3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4 IG9wYWNpdHkpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBM YXlvdXRNYW5hZ2VyIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgp OworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29u dGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZs YWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVk IENsdXR0ZXIuQWxwaGEgYmVnaW5fYW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2Rl KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQ29udGFpbmVyIGNv bnRhaW5lciwgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uKTsKKyAJCXB1YmxpYyB2b2lkIGNo aWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9y LCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRh aW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1l LCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5D b250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGlj IHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENs dXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVl KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5 b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGVuZF9hbmltYXRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3Bl YyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHZpcnR1YWwgZG91YmxlIGdldF9hbmltYXRpb25fcHJvZ3Jlc3MgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91 dE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRl ci5BY3RvciBhY3Rvcik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY2MzIsMTIgKzYxODksMTIgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJ CXB1YmxpYyB2aXJ0dWFsIENvZ2wuSGFuZGxlIGNyZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwg ZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMg Ym9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJ CXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCBy ZWN0KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE0Iiwgc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUg KG91dCBmbG9hdCB3aWR0aCwgb3V0IGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7 CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgcGFpbnRfdGFyZ2V0IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0 KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfcGFnZV90dXJuX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNjY1NCw2ICs2MjExLDE3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgcGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1 YmxpYyBmbG9hdCByYWRpdXMgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3Bh aW50X2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5 cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0K KysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQYWludENvbnRleHQgeworKwkJcHVibGljIHZv aWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2Zy YW1lYnVmZmVyICgpOworKwkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdf Y2xpcCAoKTsKKysJCXB1YmxpYyB2b2lkIHBvcF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2 b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2 b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQ YWludE5vZGUgeworQEAgLTY2NjMsNyArNjIzMSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94 IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJs aWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGlj IHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0 IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBw YWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVm ZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50 X2NvbnRleHQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1 bnJlZiAoKTsKK0BAIC02NjgxLDcgKzYyNTAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBn ZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZvaWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3Jh cGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K K0BAIC02NjkxLDcgKzYyNjAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdp biAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdy YXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxvYXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorQEAgLTY3NzgsODggKzYzNDcsMjkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRoIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOwor IAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJl Zl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0 ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9w aWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29u dGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFp bnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2lu dF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGlj IGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlw dWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgpOworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChD bHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5j ZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMg dm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9h dCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHpl cm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Byb3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5 VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNpdGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJU cmFuc2l0aW9uKiIpXQorIAkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlvbiAoc3RyaW5nPyBwcm9w ZXJ0eV9uYW1lKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQorKwkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlv bi5mb3JfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7 CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlwdWJs aWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1 YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9yZWN0X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUmVjdCB7CistCQlwdWJsaWMgd2VhayBDbHV0 dGVyLlBvaW50IG9yaWdpbjsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuU2l6ZSBzaXplOworLQkJ cHVibGljIHN0YXRpYyBDbHV0dGVyLlJlY3QgYWxsb2MgKCk7CistCQlwdWJsaWMgdm9pZCBjbGFt cF90b19waXhlbCAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChDbHV0dGVyLlBv aW50IHBvaW50KTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBi KTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFs cyAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIGdldF9jZW50ZXIgKENsdXR0ZXIuUG9pbnQgY2VudGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBn ZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBm bG9hdCBnZXRfeCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuUmVjdCBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxv YXQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7 CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJl Y3Q/IHJlcyk7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IG5vcm1hbGl6ZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIG9mZnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIHZvaWQgc2Nh bGUgKGZsb2F0IHNfeCwgZmxvYXQgc195KTsKKy0JCXB1YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVy LlJlY3QgYiwgQ2x1dHRlci5SZWN0IHJlcyk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5SZWN0IHplcm8gKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBSZWN0YW5n bGUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwg Q2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIFJlY3RhbmdsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgQ2x1 dHRlci5Db2xvciBnZXRfYm9yZGVyX2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1 YmxpYyB1aW50IGdldF9ib3JkZXJfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29s b3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfY29sb3IgKENs dXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9ib3JkZXJfd2lkdGggKHVpbnQgd2lkdGgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xv ciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3Rh bmdsZS53aXRoX2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyBDbHV0dGVy LkNvbG9yIGJvcmRlcl9jb2xvciB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCBib3JkZXJf d2lkdGggeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBoYXNfYm9yZGVy IHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/ IHByb3BlcnR5X25hbWUpOworKwkJcHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBz ZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcm9vdF9ub2RlX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBjbGFzcyBSb290Tm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKK0BAIC02ODgwLDE1ICs2Mzkw LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBTY3JpcHQgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBhZGRfc2VhcmNoX3BhdGhzIChb Q0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3BhdGhzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDEuMSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3NpemUiKV0gc3RyaW5nW10gcGF0aHMpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF9zdGF0ZXMgKHN0cmluZz8gbmFtZSwg Q2x1dHRlci5TdGF0ZSBzdGF0ZSk7CisgCQlwdWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHMgKHZv aWQqIHVzZXJfZGF0YSk7CisgCQlwdWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHNfZnVsbCAoQ2x1 dHRlci5TY3JpcHRDb25uZWN0RnVuYyBmdW5jKTsKKyAJCXB1YmxpYyB2b2lkIGVuc3VyZV9vYmpl Y3RzICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAoc3RyaW5n IG5hbWUpOworIAkJcHVibGljIGludCBnZXRfb2JqZWN0cyAoLi4uKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YXRlIGdldF9zdGF0ZXMgKHN0cmluZz8g bmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF90cmFuc2xhdGlvbl9kb21haW4gKCk7CisgCQlwdWJsaWMgdmlydHVhbCBHTGli LlR5cGUgZ2V0X3R5cGVfZnJvbV9uYW1lIChzdHJpbmcgdHlwZV9uYW1lKTsKK0BAIC02OTE2LDgg KzY0MjIsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgU2Ny b2xsQWN0b3IgKCk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIGdldF9zY3JvbGxfbW9k ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2lu dCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcmVjdCAoQ2x1dHRlci5SZWN0IHJlY3QpOwor KwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7Cisr CQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcmVjdCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9zY3JvbGxfbW9kZSAoQ2x1dHRlci5TY3JvbGxNb2RlIG1vZGUpOworIAkJ cHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBzY3JvbGxfbW9kZSB7IGdldDsgc2V0OyB9CisgCX0K K0BAIC02OTM5LDYgKzY0NDUsNDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZs b2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2VhdF9nZXRfdHlw ZSAoKSIpXQorKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgU2VhdCA6IEdMaWIuT2JqZWN0IHsKKysJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBT ZWF0ICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2Jk X2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgYmVsbF9ub3RpZnkgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lk IGNvbXByZXNzX21vdGlvbiAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19k aXNjYXJkKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvcHlfZXZl bnRfZGF0YSAoQ2x1dHRlci5FdmVudCBzcmMsIENsdXR0ZXIuRXZlbnQgZGVzdCk7CisrCQlwdWJs aWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZp Y2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKysJCXB1YmxpYyB2b2lk IGVuc3VyZV9hMTF5X3N0YXRlICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgZnJlZV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKysJCXB1YmxpYyB2 b2lkIGdldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGlu Z3MpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9r ZXlib2FyZCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0 X2tleW1hcCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmlj ZSBnZXRfcG9pbnRlciAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGlu Z3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgYm9v bCBnZXRfdG91Y2hfbW9kZSAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfdW5mb2N1cyAoKTsK KysJCXB1YmxpYyBib29sIGlzX3VuZm9jdXNfaW5oaWJpdGVkICgpOworKwkJcHVibGljIEdMaWIu TGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0 dGluZ3MpOworKwkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBl IChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJs aWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0 dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X3VuZm9jdXMgKCk7Cisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtO b0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0K KysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ug b2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5J bnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGlzX3VuZm9jdXNfaW5o aWJpdGVkX2NoYW5nZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3Nf Y2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworKwkJcHVi bGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVk X21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5 X2R3ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tU eXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRf c3RhcnRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlU aW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2Us IENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tl ZCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2 aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9zZXR0aW5nc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CXB1YmxpYyBjbGFzcyBTZXR0aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDExLDE4ICs2NTU4 LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3NpemVfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9h dCBoZWlnaHQ7CistCQlwdWJsaWMgZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0 ZXIuU2l6ZSBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1 YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5TaXplIGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxv YXQgaGVpZ2h0KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25z dHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC03MDQzLDEzNSArNjU3OCw2NiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1 dHRlci5Hcm91cCwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBD bHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgU3RhZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBj YXB0dXJlIChib29sIHBhaW50LCBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgQ2x1dHRlci5DYXB0 dXJlIGNhcHR1cmVzLCBpbnQgbl9jYXB0dXJlcyk7CisgCQlwdWJsaWMgdm9pZCBjYXB0dXJlX2lu dG8gKGJvb2wgcGFpbnQsIENhaXJvLlJlY3RhbmdsZUludCByZWN0LCB1aW50OCBkYXRhKTsKKysJ CXB1YmxpYyB2b2lkIGNsZWFyX3N0YWdlX3ZpZXdzICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJj bHV0dGVyX3N0YWdlX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlw dWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBlbnN1 cmVfY3VycmVudCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGVuc3VyZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdm9pZCBlbnN1cmVfdmlld3BvcnQgKCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBk YXRlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBib29sIGdl dF9hY2NlcHRfZm9jdXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9h Y3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOwor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVy LlBpY2tNb2RlIHBpY2tfbW9kZSwgZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBn ZXRfY2FwdHVyZV9maW5hbF9zaXplIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3Ig Z2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdl IGdldF9kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZv ZyBnZXRfZm9nICgpOworIAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Z1bGxzY3JlZW4g KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF9rZXlfZm9jdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCQlwdWJsaWMgdm9pZCBnZXRfbWluaW11bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVp bnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29s IGdldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgYm9vbCBnZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0 dGVyLlBlcnNwZWN0aXZlIGdldF9wZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2Jv dW5kcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdl dF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9mb2cgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlcl9yZXNpemFibGUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBoaWRlX2N1cnNvciAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgYm9vbCBpc19kZWZhdWx0ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKysJCXB1Ymxp YyBib29sIHBhaW50X3RvX2J1ZmZlciAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0IHNj YWxlLCB1aW50OCBkYXRhLCBpbnQgc3RyaWRlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ2x1 dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGlj IHZvaWQgcGFpbnRfdG9fZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIs IENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBmbG9hdCBzY2FsZSwgQ2x1dHRlci5QYWludEZsYWcg cGFpbnRfZmxhZ3MpOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCisgCQlwdWJs aWMgdWludDhbXSByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGggPSAtMSwgaW50 IGhlaWdodCA9IC0xKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0J CXB1YmxpYyB2b2lkIHJlZHJhdyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9hY2NlcHRfZm9jdXMgKGJvb2wgYWNjZXB0X2ZvY3VzKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mb2cgKENsdXR0ZXIuRm9nIGZvZyk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnVsbHNjcmVlbiAo Ym9vbCBmdWxsc2NyZWVuKTsKKysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9rZXlfZm9jdXMg KENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9taW5pbXVtX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb3Rpb25f ZXZlbnRzX2VuYWJsZWQgKGJvb2wgZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfbm9fY2xlYXJfaGludCAoYm9vbCBub19jbGVhcik7Cist CQlwdWJsaWMgdm9pZCBzZXRfcGVyc3BlY3RpdmUgKENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3Bl Y3RpdmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKGJvb2wgdGhyb3R0bGUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBo YSAoYm9vbCB1c2VfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF91c2VfZm9nIChib29sIGZvZyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKy0JCXB1Ymxp YyB2b2lkIHNob3dfY3Vyc29yICgpOworLQkJcHVibGljIHZvaWQgdGhhd191cGRhdGVzICgpOwor LQkJcHVibGljIHZvaWQgdXBkYXRlX3Jlc291cmNlX3NjYWxlcyAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBib29sIGFjY2VwdF9mb2N1cyB7IGdldDsgc2V0OyB9 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBjdXJzb3JfdmlzaWJsZSB7IGdldDsgc2V0 OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGZvZyB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW5f c2V0IHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1 dHRlci5BY3RvciBrZXlfZm9jdXMgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIGJvb2wgbm9fY2xlYXJfaGludCB7IGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBvZmZzY3JlZW4geyBnZXQ7IHNl dDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuUGVy c3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuUGVy c3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZXJfcmVzaXphYmxl IHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MjAiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl9wYWludCAoKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCBhZnRlcl9wYWludCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgYWZ0ZXJfdXBkYXRlIChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCBiZWZvcmVfcGFpbnQgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGJlZm9yZV91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3 IHZpZXcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgZGVhY3RpdmF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRlbGV0ZV9ldmVudCAoQ2x1dHRlci5FdmVu dCBldmVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBmdWxsc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgdW5mdWxsc2NyZWVuICgpOworKwkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnRfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmll dywgQ2Fpcm8uUmVnaW9uIHJlZHJhd19jbGlwKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfbWFu YWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzE4 NSw4ICs2NjUxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorIAkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLlN0YWdlPiBsaXN0X3N0 YWdlcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5TdGFnZT4gcGVl a19zdGFnZXMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVmYXVs dF9zdGFnZSAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44 IildCisgCQlwdWJsaWMgQ2x1dHRlci5TdGFnZSBkZWZhdWx0X3N0YWdlIHsgZ2V0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzIwNiw2MyArNjY3MCwzMyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludDMyIHRpbWU7CisgCQlwdWJsaWMgQ2x1dHRlci5F dmVudFR5cGUgdHlwZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhdGVfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgU3RhdGUgOiBHTGliLk9i amVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX3ZpZXdfZ2V0X3R5 cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YWdlVmlldyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgU3RhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQg Z2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9z dGF0ZV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsg Q2x1dHRlci5TdGF0ZUtleT4gZ2V0X2tleXMgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0 cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJv cGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9zdGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdl YWsgc3RyaW5nPiBnZXRfc3RhdGVzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUs IHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8g cHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2R1 cmF0aW9uIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9u YW1lLCB1aW50IGR1cmF0aW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLlN0YXRlIHNldF9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmlu ZyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Qgb2JqZWN0LCBzdHJpbmcgcHJvcGVydHlf bmFtZSwgdWludCBtb2RlLCBHTGliLlZhbHVlIHZhbHVlLCBkb3VibGUgcHJlX2RlbGF5LCBkb3Vi bGUgcG9zdF9kZWxheSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5UaW1lbGluZSBzZXRfc3RhdGUgKHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSB3YXJwX3Rv X3N0YXRlIChzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUpOworKwkJcHJvdGVjdGVkIFN0YWdlVmll dyAoKTsKKysJCXB1YmxpYyB2b2lkIGFzc2lnbl9uZXh0X3NjYW5vdXQgKENvZ2wuU2Nhbm91dCBz Y2Fub3V0KTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVm ZmVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X2xheW91dCAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJl Y3QpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBnZXRfb2Zmc2NyZWVuX3RyYW5zZm9ybWF0aW9u X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJh bWVidWZmZXIgZ2V0X29uc2NyZWVuICgpOworKwkJcHVibGljIGZsb2F0IGdldF9zY2FsZSAoKTsK KysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfb2Zmc2NyZWVuX2JsaXRfcGlwZWxpbmUgKCk7Cisr CQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXR1cF9vZmZzY3JlZW5fYmxp dF9waXBlbGluZSAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJ cHVibGljIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1fcmVjdF90b19vbnNjcmVlbiAoQ2Fpcm8uUmVj dGFuZ2xlSW50IHNyY19yZWN0LCBpbnQgZHN0X3dpZHRoLCBpbnQgZHN0X2hlaWdodCwgQ2Fpcm8u UmVjdGFuZ2xlSW50IGRzdF9yZWN0KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKysJCXB1Ymxp YyBDYWlyby5SZWN0YW5nbGVJbnQgbGF5b3V0IHsgb3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgc3Ry aW5nIHN0YXRlIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBjb21wbGV0ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9zdGF0ZV9rZXlfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIFN0YXRlS2V5IHsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgZG91YmxlIGdldF9wb3N0X2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3ByZV9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIuVHlwZSBnZXRfcHJvcGVydHlfdHlwZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NvdXJjZV9zdGF0 ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfdGFyZ2V0X3N0YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJv b2wgZ2V0X3ZhbHVlIChHTGliLlZhbHVlIHZhbHVlKTsKKysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1Ymxp YyBmbG9hdCByZWZyZXNoX3JhdGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vz c29yTWV0aG9kXQorKwkJcHVibGljIGZsb2F0IHNjYWxlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9 CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIHN0YWdlIHsg b3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGlj IGJvb2wgdXNlX3NoYWRvd2ZiIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf c3dpcGVfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K K0BAIC03Mjc0LDUzICs2NzA4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHN3aXBlIChD bHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbik7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2xheW91dF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEu NCIpXQorLQlwdWJsaWMgY2xhc3MgVGFibGVMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckxheW91dE1hbmFnZXIqIildCistCQlwdWJsaWMgVGFibGVMYXlvdXQgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBh Y3Rvciwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuVGFi bGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgaW50IGdldF9jb2x1bW5fY291bnQgKCk7 CistCQlwdWJsaWMgdWludCBnZXRfY29sdW1uX3NwYWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBi b29sIHhfZXhwYW5kLCBvdXQgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmls bCwgb3V0IGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3Jvd19jb3VudCAoKTsKKy0J CXB1YmxpYyB1aW50IGdldF9yb3dfc3BhY2luZyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zcGFu IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgaW50IGNvbHVtbl9zcGFuLCBvdXQgaW50IHJvd19z cGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlv bnMgKCk7CistCQlwdWJsaWMgdm9pZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29s dW1uLCBpbnQgcm93KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxp Z25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxp Z24sIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgdm9pZCBzZXRf Y29sdW1uX3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBib29sIHhfZXhwYW5kLCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGws IGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9yb3dfc3BhY2luZyAodWludCBzcGFj aW5nKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQg Y29sdW1uX3NwYW4sIGludCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3VzZV9hbmltYXRpb25zIChib29sIGFuaW1hdGUpOworLQkJcHVibGljIHVpbnQg Y29sdW1uX3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50 IHJvd19zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg Ym9vbCB1c2VfYW5pbWF0aW9ucyB7IGdldDsgc2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhcF9h Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVi bGljIGNsYXNzIFRhcEFjdGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CitAQCAtNzM0OCw3 ICs2NzM1LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Ig Z2V0X2N1cnNvcl9jb2xvciAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnNvcl9wb3NpdGlvbiAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBnZXRfY3Vy c29yX3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lk IGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1 YmxpYyB1aW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9jdXJzb3Jf dmlzaWJsZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9lZGl0YWJsZSAoKTsKK0BAIC03NDY3LDcg KzY4NTQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2 ZW50IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIGN1cnNvcl9ldmVudCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtIYXNFbWl0dGVy XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRl bGV0ZV90ZXh0IChpbnQgc3RhcnRfcG9zLCBpbnQgZW5kX3Bvcyk7CitAQCAtNzUwNSw5NCArNjg5 Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisgCQlwdWJsaWMgVGV4 dE5vZGUgKFBhbmdvLkxheW91dD8gbGF5b3V0LCBDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBs ZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rv cioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5U ZXh0dXJlRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3 aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX21hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRl cl9xdWFsaXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVw X2FzcGVjdF9yYXRpbyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRf bG9hZF9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9h ZF9kYXRhX2FzeW5jICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21h eF90aWxlX3dhc3RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9w aWNrX3dpdGhfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X3JlcGVhdCAob3V0IGJvb2wgcmVwZWF0X3gsIG91dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfc3luY19zaXplICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyBib29sIHNldF9hcmVhX2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwg aW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1 dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2ds X21hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90 ZXh0dXJlIChDb2dsLkhhbmRsZSBjb2dsX3RleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2ZpbHRlcl9xdWFsaXR5IChDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRl cl9xdWFsaXR5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9m aWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFn cykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wg c2V0X2Zyb21feXV2X2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtd IGRhdGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3Mp IHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9rZWVwX2FzcGVjdF9yYXRpbyAoYm9vbCBrZWVwX2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBs b2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193 aXRoX2FscGhhIChib29sIHBpY2tfd2l0aF9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3JlcGVhdCAoYm9vbCByZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5j X3NpemUpOworLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdldDsgc2V0 OyB9CistCQlwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRpc2FibGVfc2xpY2luZyB7IGdl dDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3Ry aW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1 cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJs aWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRpbyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIGJvb2wgbG9hZF9hc3luYyB7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBib29sIGxvYWRfZGF0YV9hc3luYyB7IHNldDsgfQorLQkJcHVibGljIGJvb2wg cGlja193aXRoX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGJvb2wgcmVwZWF0X3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCByZXBlYXRfeSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBz eW5jX3NpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBsb2FkX2ZpbmlzaGVkIChHTGliLkVycm9yIGVycm9yKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaXhidWZfY2hhbmdlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlIChpbnQgd2lkdGgsIGludCBoZWln aHQpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFRleHR1cmVOb2RlIDogQ2x1 dHRlci5QaXBlbGluZU5vZGUgeworQEAgLTc2MDQsNyArNjkwMyw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJcHVibGljIGNsYXNzIFRpbWVsaW5lIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgVGltZWxpbmUgKHVpbnQgbXNl Y3MpOworKwkJcHVibGljIFRpbWVsaW5lICh1aW50IGR1cmF0aW9uX21zKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdm9pZCBhZGRfbWFya2VyIChzdHJpbmcgbWFy a2VyX25hbWUsIGRvdWJsZSBwcm9ncmVzcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CitAQCAtNzYxMiwxMiArNjkxMSwxNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dm9pZCBhZHZhbmNlICh1aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K KyAJCXB1YmxpYyB2b2lkIGFkdmFuY2VfdG9fbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIGNsb25lICgpOwor KwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFRp bWVsaW5lLmZvcl9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3RvciwgdWludCBkdXJhdGlvbl9tcyk7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMg VGltZWxpbmUuZm9yX2ZyYW1lX2Nsb2NrIChDbHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2ss IHVpbnQgZHVyYXRpb25fbXMpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf YWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBn ZXRfYXV0b19yZXZlcnNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBD bHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dy ZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfY3VycmVudF9yZXBlYXQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitAQCAtNzYzMSw4ICs2OTMzLDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyBpbnQ2NCBnZXRfZHVyYXRpb25faGludCAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9lbGFwc2Vk X3RpbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIGdldF9wcm9ncmVzcyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzY1MSwxOCArNjk1MSwxOCBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9p ZCByZW1vdmVfbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUpOworIAkJcHVibGljIHZvaWQgcmV3 aW5kICgpOworKwkJcHVibGljIHZvaWQgc2V0X2FjdG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19y ZXZlcnNlIChib29sIHJldmVyc2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18x LCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3By b2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGVsYXkgKHVpbnQgbXNl Y3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Rp cmVjdGlvbiAoQ2x1dHRlci5UaW1lbGluZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1z ZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbG9vcCAoYm9vbCBsb29wKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9mcmFtZV9jbG9jayAoQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvZ3Jl c3NfZnVuYyAob3duZWQgQ2x1dHRlci5UaW1lbGluZVByb2dyZXNzRnVuYz8gZnVuYyk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2NzQsNiArNjk3NCw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNraXAgKHVpbnQgbXNlY3MpOworIAkJcHVibGlj IHZvaWQgc3RhcnQgKCk7CisgCQlwdWJsaWMgdm9pZCBzdG9wICgpOworKwkJcHVibGljIENsdXR0 ZXIuQWN0b3IgYWN0b3IgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGF1dG9fcmV2ZXJzZSB7IGdldDsgc2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitAQCAtNzY4Miw4ICs2OTgzLDggQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuVGltZWxpbmVEaXJlY3Rpb24gZGlyZWN0 aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1Ymxp YyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBsb29wIHsg Z2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuRnJh bWVDbG9jayBmcmFtZV9jbG9jayB7IG93bmVkIGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFuaW1hdGlvbk1vZGUg cHJvZ3Jlc3NfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorQEAgLTc2OTcsMTIgKzY5OTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RvcHBl ZCAoYm9vbCBpc19maW5pc2hlZCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGltZW91 dFBvb2wgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHVibGljIFRpbWVvdXRQb29sIChpbnQgcHJpb3JpdHkpOworLQl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NzUzLDYgKzcw NDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJs aWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNmb3JtX25vZGVfZ2V0X3R5cGUgKCki KV0KKysJcHVibGljIGNsYXNzIFRyYW5zZm9ybU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVy UGFpbnROb2RlKiIpXQorKwkJcHVibGljIFRyYW5zZm9ybU5vZGUgKENvZ2wuTWF0cml4IHByb2pl Y3Rpb24pOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0 aW9uIDogQ2x1dHRlci5UaW1lbGluZSwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03NzkyLDcg KzcwOTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgVmlydHVhbElucHV0RGV2aWNlICgpOwor IAkJcHVibGljIGludCBnZXRfZGV2aWNlX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkRldmljZU1hbmFnZXIgZ2V0X21hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lk IG5vdGlmeV9hYnNvbHV0ZV9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBkb3VibGUgeCwgZG91Ymxl IHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfYnV0dG9uICh1aW50NjQgdGltZV91 cywgdWludDMyIGJ1dHRvbiwgQ2x1dHRlci5CdXR0b25TdGF0ZSBidXR0b25fc3RhdGUpOworIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfZGlzY3JldGVfc2Nyb2xsICh1aW50NjQgdGltZV91 cywgQ2x1dHRlci5TY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJj ZSBzY3JvbGxfc291cmNlKTsKK0BAIC03ODAzLDI4ICs3MTAyLDI3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0 aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgbm90aWZ5X3RvdWNoX21vdGlvbiAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3Vi bGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAg KHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBl IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENs dXR0ZXIuU2VhdCBzZWF0IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfem9vbV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJcHVibGljIGNsYXNzIFpvb21BY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24gewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRl ckFjdGlvbioiKV0KKyAJCXB1YmxpYyBab29tQWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgZ2V0 X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90 cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMg dm9pZCBnZXRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2 b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOwor IAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgZ2V0X3pvb21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF96b29tX2F4aXMgKENsdXR0ZXIuWm9vbUF4aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1 dHRlci5ab29tQXhpcyB6b29tX2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwg c2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Qb2ludCBmb2Nh bF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6 b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBHcmFwaGVuZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91 YmxlIGZhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9jbmFtZSA9ICJDbHV0dGVyQW5pbWF0YWJsZUludGVyZmFjZSIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRhYmxlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRl cmZhY2UgQW5pbWF0YWJsZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBhYnN0cmFjdCBib29sIGFuaW1hdGVfcHJvcGVydHkgKENsdXR0ZXIuQW5pbWF0aW9uIGFu aW1hdGlvbiwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgaW5pdGlhbF92YWx1ZSwg R0xpYi5WYWx1ZSBmaW5hbF92YWx1ZSwgZG91YmxlIHByb2dyZXNzLCBHTGliLlZhbHVlIHZhbHVl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB1bm93 bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsK KysJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0 X2luaXRpYWxfc3RhdGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03ODM1LDEyICs3MTMzLDkgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIGludGVyZmFjZSBDb250YWluZXIg OiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgdm9pZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9y W10gYWN0b3JzKTsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENs dXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9y IGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NjAsMTgg KzcxNTUsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBk ZXN0cm95X2NoaWxkX21ldGEgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBmaW5kX2NoaWxk X2J5X25hbWUgKHN0cmluZyBjaGlsZF9uYW1lKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl9jb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorLQkJcHVibGljIGNsYXNz IHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3Bl cnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEBm b3JlYWNoIChDbHV0dGVyLkNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGZvcmVhY2hfd2l0aF9pbnRlcm5hbHMgKENsdXR0ZXIuQ2Fs bGJhY2sgY2FsbGJhY2spOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkNoaWxkTWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRl ci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3 ZWFrIENsdXR0ZXIuQWN0b3I+IGdldF9jaGlsZHJlbiAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl9jb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistCQlwdWJs aWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlY1tdIGxpc3RfY2hpbGRfcHJvcGVydGllcyAo KTsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJsb3dlciIpXQorIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG93ZXJfY2hpbGQgKENsdXR0ZXIuQWN0b3IgYWN0b3Is IENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcgPSBudWxsKTsKK0BAIC03ODgzLDggKzcxNzAsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBy ZW1vdmVfdmFsaXN0IChDbHV0dGVyLkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdz KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRo X29yZGVyICgpOworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTc5MDEsNyArNzE4Niw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlX3NpemUgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1 dHRlci5QYWludE5vZGUgbm9kZSk7CisrCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250 ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVy LlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc5MTUsNDcgKzcy MDAsMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0 X2N1c3RvbV9wcm9wZXJ0eSAoQ2x1dHRlci5TY3JpcHQgc2NyaXB0LCBzdHJpbmcgbmFtZSwgR0xp Yi5WYWx1ZSB2YWx1ZSk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfaWQgKHN0cmluZyBp ZF8pOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1 dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2Fw cyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF93cmFwcGVyICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFj dCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFi c3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qg Ym9vbCBpZ25vcmluZ19yZWRyYXdfY2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IGFic3RyYWN0IGJvb2wgcmVhbGl6ZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCByZXNpemUgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1cnNvcl92aXNpYmxlIChib29sIGN1cnNv cl92aXNpYmxlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRf ZnVsbHNjcmVlbiAoYm9vbCBpc19mdWxsc2NyZWVuKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgYWJzdHJhY3Qgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X3VzZXJfcmVzaXphYmxlIChib29sIGlzX3Jl c2l6YWJsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAo Ym9vbCBkb19yYWlzZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQg dW5yZWFsaXplICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2FjdG9yX2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFj dG9yQm94IHsKKyAJCXB1YmxpYyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1 YmxpYyBmbG9hdCB4MjsKKyAJCXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4 ZWwgKCk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVy LkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg Ym9vbCBjb250YWlucyAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCitAQCAtNzk2NCw4ICs3MjE4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94 LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorQEAgLTc5ODYsNiArNzIzOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyB2b2lkIGluaXRfcmVjdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lk dGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJs aWMgQ2x1dHRlci5BY3RvckJveCBpbnRlcnBvbGF0ZSAoQ2x1dHRlci5BY3RvckJveCBmaW5hbCwg ZG91YmxlIHByb2dyZXNzKTsKKysJCXB1YmxpYyBib29sIGlzX2luaXRpYWxpemVkICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNj YWxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC04MDExLDcgKzcyNjQsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDYWlyby5TdXJmYWNlIGltYWdl OworIAkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCByZWN0OworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9U WVBFX0NPTE9SIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfY29sb3JfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIHN0cnVjdCBDb2xvciB7CisgCQlwdWJsaWMgdWludDggcmVkOworIAkJcHVibGljIHVp bnQ4IGdyZWVuOworQEAgLTgwMjcsMTIgKzcyODAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuQ29sb3IgdjIpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl9jb2xvcl9mcm9tX2hscyIpXQorLQkJcHVibGljIENvbG9yLmZyb21faGxzIChm bG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9waXhlbCIpXQorLQkJcHVibGljIENvbG9yLmZy b21fcGl4ZWwgKHVpbnQzMiBwaXhlbCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29s b3JfZnJvbV9zdHJpbmciKV0KKy0JCXB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0 cik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNv bG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CisrCQlw dWJsaWMgc3RhdGljIHZvaWQgZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVp bnQzMiBwaXhlbCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3Rh dGljIGJvb2wgZnJvbV9zdHJpbmcgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBzdHJpbmcgc3Ry KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDbHV0dGVyLkNvbG9yPyBnZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1aW50IGhhc2ggKCk7CitA QCAtODA0MSw4ICs3MjkzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgaW50ZXJwb2xhdGUgKENsdXR0 ZXIuQ29sb3IgZmluYWwsIGRvdWJsZSBwcm9ncmVzcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBsaWdodGVuICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3Ry aW5nIildCistCQlwdWJsaWMgYm9vbCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworIAkJcHVi bGljIENsdXR0ZXIuQ29sb3Igc2hhZGUgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIENsdXR0 ZXIuQ29sb3Igc3VidHJhY3QgKENsdXR0ZXIuQ29sb3IgYik7CisgCQlwdWJsaWMgdm9pZCB0b19o bHMgKG91dCBmbG9hdCBodWUsIG91dCBmbG9hdCBsdW1pbmFuY2UsIG91dCBmbG9hdCBzYXR1cmF0 aW9uKTsKK0BAIC04MDUwLDIzICs3MzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9mb2dfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0J cHVibGljIHN0cnVjdCBGb2cgeworLQkJcHVibGljIGZsb2F0IHpfbmVhcjsKKy0JCXB1YmxpYyBm bG9hdCB6X2ZhcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VvbWV0cnlfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0cnVjdCBHZW9tZXRyeSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMg aW50IHk7CistCQlwdWJsaWMgdWludCB3aWR0aDsKKy0JCXB1YmxpYyB1aW50IGhlaWdodDsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGludGVyc2VjdHMgKENs dXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkxKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IHVuaW9uIChDbHV0dGVyLkdlb21ldHJ5IGdlb21l dHJ5X2IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBGcmFtZUxpc3RlbmVySWZh Y2UgeworKwkJcHVibGljIHdlYWsgZ2xvYmFsOjpiZWZvcmVfZnJhbWUgYmVmb3JlX2ZyYW1lOwor KwkJcHVibGljIHdlYWsgZ2xvYmFsOjpmcmFtZSBmcmFtZTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJcHVibGljIHN0cnVjdCBLYmRBMTF5U2V0dGluZ3MgeworQEAgLTgwNzgsNyArNzMxNSw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsK KyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tu b3RfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9u ID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJ CXB1YmxpYyBpbnQgeDsKK0BAIC04MDg3LDggKzczMjQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuS25vdCBrbm90X2IpOworIAkJcHVibGlj IHZvaWQgZnJlZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3Qg TWF0cml4IDogQ29nbC5NYXRyaXggeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJ CXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5NYXRyaXg/IGFsbG9jICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlwdWJsaWMgc3RhdGlj IEdMaWIuVHlwZSBnZXRfdHlwZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisr CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9mcm9tX2FycmF5IChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgdmFsdWVzWzE2XSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRf ZnJvbV9tYXRyaXggKENsdXR0ZXIuTWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTWF0cml4PyBpbml0X2lkZW50aXR5ICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFBhZEJ1dHRvbkV2ZW50IHsK K0BAIC04MTMwLDcgKzczNzgsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91 YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRo X25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBh dGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxNDAs NyArNzM4OCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChD bHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRf Y29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K KyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BA IC04MTQ5LDYgKzczOTcsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0 IHpfZmFyOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFBvaW50ZXJBMTF5 U2V0dGluZ3MgeworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlGbGFncyBjb250cm9sczsK KysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgZHdlbGxfY2xpY2tf dHlwZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxNb2RlIGR3ZWxsX21vZGU7 CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1 cmVfc2luZ2xlOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBk d2VsbF9nZXN0dXJlX2RvdWJsZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxE aXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9kcmFnOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckEx MXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX3NlY29uZGFyeTsKKysJCXB1YmxpYyBpbnQg c2Vjb25kYXJ5X2NsaWNrX2RlbGF5OworKwkJcHVibGljIGludCBkd2VsbF9kZWxheTsKKysJCXB1 YmxpYyBpbnQgZHdlbGxfdGhyZXNob2xkOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4yOCIpXQorIAlwdWJsaWMgc3RydWN0IFByb3hpbWl0eUV2ZW50IHsKKyAJ CXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0eXBlOworQEAgLTgxNTgsNDcgKzc0MTksMTYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7 CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNM VVRURVJfVFlQRV9VTklUUyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3VuaXRzX2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVjdCBVbml0cyB7 CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0cz8gY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUg KCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9jbSIpXQorLQkJcHVi bGljIFVuaXRzLmZyb21fY20gKGZsb2F0IGNtKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl91bml0c19mcm9tX2VtIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOwor LQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW1fZm9yX2ZvbnQiKV0KKy0J CXB1YmxpYyBVbml0cy5mcm9tX2VtX2Zvcl9mb250IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBl bSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLQkJcHVi bGljIFVuaXRzLmZyb21fbW0gKGZsb2F0IG1tKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl91bml0c19mcm9tX3BpeGVscyIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQg cHgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcHQiKV0KKy0JCXB1 YmxpYyBVbml0cy5mcm9tX3B0IChmbG9hdCBwdCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9zdHJpbmciKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3N0cmluZyAoc3Ry aW5nIHN0cik7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0VHlwZSBnZXRfdW5pdF90eXBlICgpOwor IAkJcHVibGljIGZsb2F0IGdldF91bml0X3ZhbHVlICgpOworIAkJcHVibGljIGZsb2F0IHRvX3Bp eGVscyAoKTsKKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl92ZXJ0ZXhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlw dWJsaWMgc3RydWN0IFZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9h dCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlZlcnRleD8gYWxsb2MgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5W ZXJ0ZXggdmVydGV4X2IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgZnJlZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlZlcnRleD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7 CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX0FDVE9SX0FMSUdOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rv cl9hbGlnbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlw dWJsaWMgZW51bSBBY3RvckFsaWduIHsKK0BAIC04MjIzLDE0ICs3NDUzLDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9USAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl8iLCB0eXBl X2lkID0gImNsdXR0ZXJfYWxsb2NhdGlvbl9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3Nd CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gQWxsb2NhdGlvbkZs YWdzIHsKKy0JCUFMTE9DQVRJT05fTk9ORSwKKy0JCUFCU09MVVRFX09SSUdJTl9DSEFOR0VELAor LQkJREVMRUdBVEVfTEFZT1VUCistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9hbmltYXRpb25fbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCXB1YmxpYyBlbnVtIEFuaW1hdGlvbk1vZGUgeworQEAgLTgzMzYsNiArNzU1OCwyNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZX0FYSVMsCisgCQlCT1RICisgCX0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZWJ1Z19mbGFnX2dldF90eXBlICgpIild CisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRGVidWdGbGFnIHsKKysJCU1JU0MsCisrCQlBQ1RP UiwKKysJCVRFWFRVUkUsCisrCQlFVkVOVCwKKysJCVBBSU5ULAorKwkJUEFOR08sCisrCQlCQUNL RU5ELAorKwkJU0NIRURVTEVSLAorKwkJU0NSSVBULAorKwkJU0hBREVSLAorKwkJTVVMVElTVEFH RSwKKysJCUFOSU1BVElPTiwKKysJCUxBWU9VVCwKKysJCVBJQ0ssCisrCQlFVkVOVExPT1AsCisr CQlDTElQUElORywKKysJCU9PQl9UUkFOU0ZPUk1TCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RSQUdfIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIERyYWdBeGlzIHsKK0BAIC04MzQzLDExICs3 NTg2LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Vm ZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3Nd CisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQX0VWRU5UUywK KysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBBSU5UX1ZPTFVN RVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9SRURJUkVDVCwK KysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAorKwkJUEFJTlRf REFNQUdFX1JFR0lPTgorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisg CXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50RmxhZ3MgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDTFVU VEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl9ESVJUWSIpXQorLQkJQUNUT1JfRElSVFkKKysJCUFDVE9S X0RJUlRZLAorKwkJQllQQVNTX0VGRkVDVAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FVkVOVF8iLCB0eXBl X2lkID0gImNsdXR0ZXJfZXZlbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorQEAg LTgzOTIsMjEgKzc2NDgsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbRmxhZ3NdCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0J CVRFWFRVUkVfTlBPVCwKKy0JCVNXQVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lVViwKKy0JCVRF WFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFHRV9TVEFUSUMsCistCQlTVEFHRV9VU0VSX1JFU0la RSwKKyAJCVNUQUdFX0NVUlNPUiwKKyAJCVNIQURFUlNfR0xTTCwKKyAJCU9GRlNDUkVFTiwKKyAJ CVNUQUdFX01VTFRJUExFLAorLQkJU1dBUF9FVkVOVFM7CistCQlbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfZmVhdHVyZV9hdmFpbGFibGUiKV0KKy0JCXB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAo KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgQGdldCAoKTsKKysJCVNXQVBfRVZFTlRT CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX0ZMT1dfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Zsb3dfb3JpZW50 YXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTg0 MTQsMTIgKzc2NjEsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJSE9SSVpPTlRBTCwKKyAJ CVZFUlRJQ0FMCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZPTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Zv bnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgZW51bSBGb250RmxhZ3MgeworLQkJTUlQTUFQUElORywKKy0JCUhJTlRJTkcKKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX0ZSQU1FX1JFU1VMVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZnJhbWVfcmVzdWx0X2dl dF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIEZyYW1lUmVzdWx0IHsKKysJCVBFTkRJTkdfUFJF U0VOVEVELAorKwkJSURMRQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9HRVNUVVJFX1RSSUdHRVJfRURHRV8i LCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VzdHVyZV90cmlnZ2VyX2VkZ2VfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KK0BAIC04NjM0LDcgKzc4NzksOCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGVu dW0gT2Zmc2NyZWVuUmVkaXJlY3QgeworIAkJQVVUT01BVElDX0ZPUl9PUEFDSVRZLAorLQkJQUxX QVlTCisrCQlBTFdBWVMsCisrCQlPTl9JRExFCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX09SSUVOVEFUSU9O XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9vcmllbnRhdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTg2NDIsNiArNzg4OCwxMyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf UEFJTlRfRkxBR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfZmxhZ19nZXRfdHlwZSAoKSIp XQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBhaW50RmxhZyB7CisrCQlOT05FLAorKwkJTk9f Q1VSU09SUywKKysJCUZPUkNFX0NVUlNPUlMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFOXyIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wYW5fYXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAlwdWJsaWMgZW51bSBQYW5BeGlzIHsKK0BAIC04NjYxLDYgKzc5MTQsMTEg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8K KyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfREVCVUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2Rl YnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVi dWdGbGFnIHsKKysJCVBJQ0tJTkcKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0g ImNsdXR0ZXJfcGlja19tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJcHVibGljIGVudW0gUGlja01vZGUgeworQEAgLTg2NjgsMTMgKzc5MjYsNDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVBQ1RJVkUsCisgCQlBTEwKKyAJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfQTExWV9EV0VMTF9DTElDS19UWVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2Ex MXlfZHdlbGxfY2xpY2tfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVy QTExeUR3ZWxsQ2xpY2tUeXBlIHsKKysJCU5PTkUsCisrCQlQUklNQVJZLAorKwkJU0VDT05EQVJZ LAorKwkJTUlERExFLAorKwkJRE9VQkxFLAorKwkJRFJBRworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZ X0RXRUxMX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2R3ZWxs X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxs RGlyZWN0aW9uIHsKKysJCU5PTkUsCisrCQlMRUZULAorKwkJUklHSFQsCisrCQlVUCwKKysJCURP V04KKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VMTF9NT0RFXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9wb2ludGVyX2ExMXlfZHdlbGxfbW9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQ b2ludGVyQTExeUR3ZWxsTW9kZSB7CisrCQlXSU5ET1csCisrCQlHRVNUVVJFCisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX0ExMVlfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9mbGFnc19nZXRf dHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RmxhZ3Mgewor KwkJU0VDT05EQVJZX0NMSUNLX0VOQUJMRUQsCisrCQlEV0VMTF9FTkFCTEVECisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX0ExMVlfVElNRU9VVF9UWVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2Ex MXlfdGltZW91dF90eXBlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5 VGltZW91dFR5cGUgeworKwkJU0VDT05EQVJZX0NMSUNLLAorKwkJRFdFTEwsCisrCQlHRVNUVVJF CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX1JFUEFJTlRfRkxBR1NfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Jl cGFpbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBSZXBhaW50RmxhZ3MgeworIAkJUFJFX1BBSU5ULAor LQkJUE9TVF9QQUlOVCwKKy0JCVFVRVVFX1JFRFJBV19PTl9BREQKKysJCVBPU1RfUEFJTlQKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJl Zml4ID0gIkNMVVRURVJfUkVRVUVTVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVxdWVzdF9tb2Rl X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC04NzU1LDgg KzgwNDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorIAlwdWJsaWMgZW51bSBTdGFnZVN0YXRlIHsKKy0JCUZVTExTQ1JFRU4s CistCQlPRkZTQ1JFRU4sCisgCQlBQ1RJVkFURUQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQ09MT1JfIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRpY19jb2xvcl9nZXRfdHlwZSAoKSIpXQorQEAgLTg4MjMs MTMgKzgxMTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJl Zml4ID0gIkNMVVRURVJfVEFCTEVfQUxJR05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJs ZV9hbGlnbm1lbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVu dW0gVGFibGVBbGlnbm1lbnQgeworLQkJU1RBUlQsCistCQlDRU5URVIsCistCQlFTkQKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfVEVYVF9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGly ZWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVi bGljIGVudW0gVGV4dERpcmVjdGlvbiB7CitAQCAtODkwNSwyOCArODE4NywxNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlWQUxVRTsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFy ayAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorLQlwdWJsaWMgZXJyb3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9V VF9PRl9NRU1PUlksCistCQlOT19ZVVYsCistCQlCQURfRk9STUFUOworLQkJcHVibGljIHN0YXRp YyBHTGliLlF1YXJrIHF1YXJrICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjI0IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3Jl YXRlQ2hpbGRGdW5jIChHTGliLk9iamVjdCBpdGVtKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxw aGEgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIEJlaGF2aW91ckZvcmVhY2hGdW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlv dXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChH TGliLk9iamVjdCBnb2JqZWN0LCBzdHJpbmcgYWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1 dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRl bGVnYXRlIHZvaWQgQ2FsbGJhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2Up XQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBFbWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5F dmVudCBldmVudCwgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVu dEZpbHRlckZ1bmMgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworQEAgLTg5NTcsOSArODIyNyw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJs aWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGlj IHN0YXRpYyB2b2lkIGJhc2VfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAt ODk3MSwzNyArODIzOCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBjaGVja193aW5kb3dpbmdfYmFja2Vu ZCAoc3RyaW5nIGJhY2tlbmRfdHlwZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgY2xlYXJfZ2x5cGhfY2FjaGUgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9obHMg KG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxv YXQgc2F0dXJhdGlvbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9waXhlbCAob3V0IENs dXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBwaXhlbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9mcm9tX3N0cmluZyAob3V0IENsdXR0ZXIuQ29s b3IgY29sb3IsIHN0cmluZyBzdHIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ2x1dHRlci5Db2xvcj8gY29sb3JfZ2V0X3N0YXRpYyAoQ2x1dHRlci5T dGF0aWNDb2xvciBjb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgc3Rh dGljIHZvaWQgZGlzYWJsZV9hY2Nlc3NpYmlsaXR5ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZG9fZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IGV2ZW50X2FkZF9m aWx0ZXIgKENsdXR0ZXIuU3RhZ2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3Mg PSAyLjIsIGRlc3Ryb3lfbm90aWZ5X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0 ZXJGdW5jIGZ1bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIENs dXR0ZXIuRXZlbnQgZXZlbnRfZ2V0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5FdmVudCBldmVudF9wZWVrICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV2ZW50X3JlbW92ZV9maWx0ZXIg KHVpbnQgaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wg ZXZlbnRzX3BlbmRpbmcgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorQEAgLTkwMTQsOSArODI1Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiBnZXRf Y3VycmVudF9ldmVudF90aW1lICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9kZWJ1Z19lbmFi bGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQg Q2x1dHRlci5CYWNrZW5kIGdldF9kZWZhdWx0X2JhY2tlbmQgKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwMjYsMTggKzgyNjUsOSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVi bGljIHN0YXRpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0X2RlZmF1bHRfdGV4dF9kaXJlY3Rp b24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRm9udEZsYWdzIGdl dF9mb250X2ZsYWdzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGlj IHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2Fy ZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X21vdGlvbl9l dmVudHNfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0YXRp YyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwNDUsMjYgKzgyNzUsOCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBn ZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3BvaW50ZXJfZ3JhYiAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmlu ZyBnZXRfc2NyaXB0X2lkIChHTGliLk9iamVjdCBnb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCXB1 YmxpYyBzdGF0aWMgYm9vbCBnZXRfc2hvd19mcHMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHVsb25nIGdl dF90aW1lc3RhbXAgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBncmFiX2tleWJvYXJkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVy X2Zvcl9kZXZpY2UgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBpZF8pOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBD bHV0dGVyLkluaXRFcnJvciBpbml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdj IiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC05MDgwLDQxICs4MjkyLDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lk KiBmdW5jKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVmYXVsdF9m cmFtZV9yYXRlICh1aW50IGZyYW1lc19wZXJfc2VjKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfZm9udF9mbGFncyAoQ2x1dHRlci5Gb250RmxhZ3MgZmxhZ3MpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0g IjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAo Ym9vbCBlbmFibGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHRlc3RfYWRkX2RhdGFfZnVsbCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0 RGF0YUZ1bmMgdGVzdF9mdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBz dGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdl LCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5B Y3Rvcj8gcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMg Ym9vbCB0ZXN0X2NoZWNrX2NvbG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0 dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciBy ZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgdGVzdF9nZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9p bml0IChpbnQgYXJnYywgc3RyaW5nIGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0J cHVibGljIHN0YXRpYyBpbnQgdGVzdF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlcl9mb3JfZGV2aWNlIChpbnQg aWRfKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmlj b2RlX3RvX2tleXN5bSAodWludDMyIHdjKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNv Z2wtNS1jdXN0b20udmFsYSB2YXBpL211dHRlci1jb2dsLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJp dHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxh CityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LWN1c3RvbS52YWxhCitkaWZmIC0tZ2l0IHZh cGkvbXV0dGVyLWNvZ2wtNC5kZXBzIHZhcGkvbXV0dGVyLWNvZ2wtNi5kZXBzCitzaW1pbGFyaXR5 IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBzCityZW5hbWUg dG8gdmFwaS9tdXR0ZXItY29nbC02LmRlcHMKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01 LnZhcGkgdmFwaS9tdXR0ZXItY29nbC02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNjglCityZW5h bWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNv Z2wtNi52YXBpCitpbmRleCBhODk2MTIyNC4uMTk1ZTNiMTcgMTAwNjQ0CistLS0gdmFwaS9tdXR0 ZXItY29nbC01LnZhcGkKKysrKyB2YXBpL211dHRlci1jb2dsLTYudmFwaQorQEAgLTEsNiArMSw2 IEBACistLyogbXV0dGVyLWNvZ2wtNS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3Qg bW9kaWZ5LiAqLworKy8qIG11dHRlci1jb2dsLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwg ZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1l c3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAi Y29nbF8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29n bCIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBu YW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlw ZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yOCw5ICsyOCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoc2l6ZV90IG9mZnNldCwgW0NDb2RlIChhcnJheV9s ZW5ndGhfdHlwZSA9ICJzaXplX3QiKV0gdWludDhbXSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lkIHVu bWFwICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVy IHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9 ICJjb2dsX2NvbnRleHRfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBDb250ZXh0IDog Q29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorKwkJcHJvdGVjdGVkIENvbnRleHQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJl X2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC02NSw2MiArNjYsMTcgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKyAJCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg Q29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBh bWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29s b3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENv Z2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgYm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBf bW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5k ZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0 X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVy cyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNv bG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDb2ds LkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENv Z2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsK KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xv ciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVu dF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5F cnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3Rh bnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZs b2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4 IGFscGhhKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAo Q29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0 dXJlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmlu ZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJv cjsKK0BAIC0xMzMsNDEgKzg5LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVk IChpbnQgbGF5ZXJfaW5kZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwg Q29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVy aWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9k ZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6 ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHBy b2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChD b2dsLkhhbmRsZSBtYXRlcmlhbCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJs aWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0 ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIg Z2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0 X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5 cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9k ZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wu TWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJj b2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVj dCB7CitAQCAtMTc4LDEzICsxMDYsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFz cyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVu ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOwor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1Ymxp YyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3Rl eHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKyAJfQorQEAgLTE5Niw5ICsxMjAsNiBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRf ZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wu T25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxi YWNrPyBkZXN0cm95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBD b2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBhZGRfcmVzaXplX2NhbGxiYWNrIChbQ0NvZGUgKGRl bGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgY2Fs bGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdWludCBhZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNrIChDb2ds LlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0 dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRFUiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgaW50IGdldF9idWZmZXJfYWdl ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KK0BAIC0yMTMsOCArMTM0LDYgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChD b2dsLkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNp emVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBy ZW1vdmVfc3dhcF9idWZmZXJzX2NhbGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNDQsNyArMTYzLDggQEAgbmFt ZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBjbGFz cyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBQaXBlbGluZSAoQ29nbC5Db250ZXh0IGNvbnRleHQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmUg Y29weSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNTQsMTYgKzE3NCwx MCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1i aWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5Db2xv ciBnZXRfY29sb3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMg Q29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5D b2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRp bmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlw ZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CitAQCAt Mjc0LDggKzE4OCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUg KGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJs aWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVy X2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFw TW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjg2LDEw ICsxOTgsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xv ciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50 IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2Vy X3Byb2dyYW0gKCk7CitAQCAtMjk4LDEwICsyMDYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9m dW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9y ZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xv ciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBz ZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50 IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKK0BAIC0zMTQsMTAgKzIxOCw2IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2Vf bW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf ZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFj ZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJvbnRfd2luZGluZyk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVy X2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0zMzUs OCArMjM1LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBD b2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwg Q29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgs IENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4 LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CitAQCAtMzQ1LDEwICsyNDMsNiBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3Mp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1 bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxv YXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM4 MiwxMCArMjc2LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHVu aWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9ubywgaW50IHNpemUsIGJvb2wgdHJhbnNwb3NlLCBb Q0NvZGUgKGFycmF5X2xlbmd0aF9wb3MgPSAyLjkpXSBmbG9hdFtdIHZhbHVlKTsKKyAJCXB1Ymxp YyB2b2lkIHVzZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFz cyBRdWF0ZXJuaW9uIHsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVy X3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3VucmVmIildCisgCVtDb21wYWN0 XQorIAlwdWJsaWMgY2xhc3MgU2hhZGVyIDogQ29nbC5IYW5kbGUgeworQEAgLTQ2NSwxMiArMzU1 LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9ibHVlX2Jp dHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisrCQlwdWJsaWMgdW5vd25lZCBD b2dsLkNvbnRleHQgZ2V0X2NvbnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVy ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRf ZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K KyAJCXB1YmxpYyBib29sIGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorQEAgLTUxNiw2ICs0MDQsNyBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0 IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25f Y2xpcCAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTI5 LDEzICs0MTgsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQg eSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlv biBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVs ZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkIChib29s IGVuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChib29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTYzNSwxMCArNTIwLDYgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfYnl0ZSAodWludDggYmx1ZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9mbG9hdCAo ZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80 ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNHViICh1aW50OCByZWQsIHVp bnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW4gKGZsb2F0IGdyZWVuKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC02NjIsNyArNTQzLDcgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CisgCQlwdWJsaWMgdWxvbmcgaW5zdGFu Y2VfY291bnQ7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJl ZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgi KV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXggeworIAkJcHVibGljIGZsb2F0IHh4OworIAkJcHVi bGljIGZsb2F0IHl4OworQEAgLTY5Miw4ICs1NzMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlw dWJsaWMgYm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJW0ND b2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9pbml0X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0 cml4LmlkZW50aXR5ICgpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1 bGVyIGV1bGVyKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1 YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdy YXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHop OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcwMiwxOSArNTgyLDE1IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlv bl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9i amVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gs IGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9 ICJjb2dsX21hdHJpeF9tdWx0aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29n bC5NYXRyaXggYSwgQ29nbC5NYXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZs b2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVh ciwgZmxvYXQgZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0 IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZl IChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsK KyAJCXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qg c3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2lu dHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmds ZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5p b24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9l dWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0 IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50 IChyZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7Cisr CQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0 cml4LCByZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7 CisgCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXpl X3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBw b2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitA QCAtODE4LDM4ICs2OTQsMzMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTk9ORSwKKyAJCU5PX0dF VF9EQVRBCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFn c10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxh Z3MgeworLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJT0ZGU0NS RUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExFLAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0J CVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5E SUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJUE9JTlRfU1BSSVRFLAorLQkJTUFQX0JVRkZFUl9G T1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUs CistCQlERVBUSF9URVhUVVJFCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GRUFUVVJFX0lEXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBGZWF0dXJlSUQg eworKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElD RVMiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTLAorKwkJW0NDb2Rl IChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVBRCIpXQorKwkJT0dM X0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVBRCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09H TF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFIildCisrCQlPR0xfRkVBVFVSRV9JRF9N QVBfQlVGRkVSX0ZPUl9XUklURSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lE X1NXQVBfQlVGRkVSU19FVkVOVCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VW RU5ULAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJ TUUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1BSRVNFTlRBVElPTl9USU1FLAorKwkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfRkVOQ0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0ZFTkNF LAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRyIpXQorKwkJ T0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRywKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFU VVJFX0lEX0JVRkZFUl9BR0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UsCisrCQlb Q0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5B TCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJOQUwKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJS ZXR1cm4geworIAkJQ09OVElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IGVudW0gRm9nTW9kZSB7CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5U SUFMX1NRVUFSRUQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQg eworQEAgLTg2Miw2ICs3MzMsMTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJf RVJST1JfQUxMT0NBVEU7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfR1JBUEhJQ1NfUkVTRVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJs aWMgZW51bSBHcmFwaGljc1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NP TlRFWFRfUkVTRVQsCisrCQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05U RVhUX1JFU0VULAorKwkJUFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBF X1VOU0lHTkVEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2Vz VHlwZSB7CisgCQlCWVRFLAorQEAgLTg4OCwxMiArNzY3LDYgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7Cist CQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCist CQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RF XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MSw2ICs4NDQsOCBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlERVBUSF8xNiwKKyAJCURFUFRIXzMyLAorIAkJREVQVEhfMjRfU1RF TkNJTF84OworKwkJcHVibGljIGludCBnZXRfYnl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOwor KwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg dG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KK0BAIC0xMDY0LDkgKzkzOSw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1 Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZv KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2Vf cG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgTWF0 ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5k ZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAy LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9p ZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25z Y3JlZW5EaXJ0eUluZm8gaW5mbyk7CitAQCAtMTA3NCwxMyArOTQ5LDkgQEAgbmFtZXNwYWNlIENv Z2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lk IE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0 aCwgaW50IGhlaWdodCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVu WDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFz ayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNl X3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVn YXRlIGJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBp bnQgbGF5ZXJfaW5kZXgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVm ZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1 YmxpYyBkZWxlZ2F0ZSBib29sIFRleHR1cmUyREVHTEltYWdlRXh0ZXJuYWxBbGxvYyAoQ29nbC5U ZXh0dXJlMkQgdGV4XzJkKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKyAJcHVibGljIGRl bGVnYXRlIHZvaWQgVXNlckRhdGFEZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworQEAgLTEw OTIsNiArOTYzLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9C SVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0g IkNPR0xfREVQVEhfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVM X0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01B WF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJ VDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAi Q09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTEwOTksMTkgKzk3Miw4IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAi Q09HTF9URVhUVVJFX01BWF9XQVNURSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFY X1dBU1RFOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIGJsaXRfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVm ZmVyIGRlc3QsIGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50 IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNoZWNr X2V4dGVuc2lvbiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFy IChDb2dsLkNvbG9yIGNvbG9yLCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX2No ZWNrX2V4dGVuc2lvbl9DTFVUVEVSIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJv b2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJl IGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTExMjksNTcgKzk5MSwzOCBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIHN0YXRp YyB2b2lkIGRlYnVnX29iamVjdF9wcmludF9pbnN0YW5jZXMgKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlz YWJsZV9mb2cgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0 YXRpYyBib29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4y IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdo dCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOwor KwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgZm9yZWFj aF9mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sgY2Fs bGJhY2spOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K KyAJcHVibGljIHN0YXRpYyBib29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQg aW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQor KwlwdWJsaWMgc3RhdGljIGludDY0IGdldF9jbG9ja190aW1lIChDb2dsLkNvbnRleHQgY29udGV4 dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlw dWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdf ZnJhbWVidWZmZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdz IGdldF9mZWF0dXJlcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRy aXggKCk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3RhdHVzIGdldF9ncmFw aGljc19yZXNldF9zdGF0dXMgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCXB1Ymxp YyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGli LkNhbGxiYWNrIGdldF9wcm9jX2FkZHJlc3MgKHN0cmluZyBzKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRy aXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk KiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0 eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0 aWMgYm9vbCBoYXNfZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUlE IGZlYXR1cmUpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX2Nv bnRleHQgKHZvaWQqIG9iamVjdCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGlj IGJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTExOTMsNTMgKzEwMzYsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAo dm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJ0ZXhfYnVm ZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1 YmxpYyBzdGF0aWMgYm9vbCBtYXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBm bG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIs IGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBv bHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBib29s IHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlh bCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8y LCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVj dGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9h dCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRl eF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZs b2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0 eDIsIGZsb2F0IHR5Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZWN0YW5nbGVzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywg dWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjguNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cmVjdGFuZ2xlc193aXRoX3RleHR1cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByb3RhdGUg KGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz Y2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tm YWNlX2N1bGxpbmdfZW5hYmxlZCAoYm9vbCBzZXR0aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCitAQCAtMTI0Nyw1MyArMTA0NiwxMSBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChi b29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9y LCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6 X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1h dHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBt YXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZvaWQqIG1h dGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChD b2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNl X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhh KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50 OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVy ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2Ug PSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQg eSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAo Q29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cg KENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0 X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgc2hhZGVyX2lzX2NvbXBp bGVkIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHNo YWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJj ZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcgc291cmNlKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFk ZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIENv Z2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KK0BAIC0xMzA2 LDU5ICsxMDYzLDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJs aWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgs IHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAo Q29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhh bmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBD b2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgYm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2 b2lkKiBwb2ludGVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5I YW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRl eF9idWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25h bWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxl LCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENv Z2wuVmVydGljZXNNb2RlIG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgs IGludCBtYXhfaW5kZXgsIGludCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0 cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMg KENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4 X2J1ZmZlcl9pbmRpY2VzX2dldF9mb3JfcXVhZHMgKHVpbnQgbl9pbmRpY2VzKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5JbmRpY2VzVHlwZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5cGUgKENvZ2wuSGFu ZGxlIGluZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJf bmV3ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4 X2J1ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1 ZmZlcl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVm ZmVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB2aWV3cG9ydCAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDEx X29uc2NyZWVuX2dldF92aXN1YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2lu ZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB4MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29n bC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIp XSBDb2dsLk9uc2NyZWVuWDExTWFza0NhbGxiYWNrIHVwZGF0ZSk7CisgfQorZGlmZiAtLWdpdCB2 YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52 YWxhCitzaW1pbGFyaXR5IGluZGV4IDgxJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00 LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitp bmRleCAyNTUxODg1YS4uYzRkNGI5M2EgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC00LWN1 c3RvbS52YWxhCisrKysgdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitAQCAtMSwxMCAr MSw0IEBACisgbmFtZXNwYWNlIENvZ2wgeworLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9 ICJDb2dsSGFuZGxlIildCistCXB1YmxpYyBjbGFzcyBCaXRtYXA6IEhhbmRsZSB7CistCQlwdWJs aWMgc3RhdGljIEJpdG1hcCBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBH TGliLkVycm9yOworLQl9CistCisgCVtDb21wYWN0XQorIAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xI YW5kbGUiKV0KKyAJcHVibGljIGNsYXNzIEJ1ZmZlcjogSGFuZGxlIHsKK0BAIC00Miw3ICszNiw3 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIGlzX3ZlcnRleF9idWZmZXIgKCk7 CisgCX0KKyAKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29w eV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhfY29weSIpXSAKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhfY29weSIpXQor IAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFBhdGggeworIAkJcHVibGljIHN0YXRpYyB2b2lk IEBuZXcgKCk7CitAQCAtODIsMTggKzc2LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IHZvaWQgc291cmNlIChzdHJpbmcgc291cmNlKTsKKyAJfQorIAorLQlbQ29tcGFjdF0KKy0JW0ND b2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV9y ZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3RleHR1cmVfdW5yZWYiKV0KKy0JcHVibGljIGNs YXNzIFRleHR1cmU6IEhhbmRsZSB7CistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9y bWF0ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKy0JCXB1YmxpYyBUZXh0 dXJlLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBibXBfaGFuZGxlLCBDb2dsLlRleHR1cmVGbGFn cyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJcHVibGljIFRl eHR1cmUuZnJvbV9kYXRhICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxh Z3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVy bmFsX2Zvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSB1Y2hhcltdIGRhdGEpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmls ZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFs X2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90 ZXh0dXJlIChDb2dsLlRleHR1cmUgZnVsbF90ZXh0dXJlLCBpbnQgc3ViX3gsIGludCBzdWJfeSwg aW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJcHVibGljIFRleHR1cmUud2l0aF9z aXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JfQorLQorIAlbQ29tcGFjdF0KKyAJ W0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4 X2J1ZmZlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZmZXJfdW5yZWYi KV0KKyAJcHVibGljIGNsYXNzIFZlcnRleEJ1ZmZlcjogSGFuZGxlIHsKK2RpZmYgLS1naXQgdmFw aS9tdXR0ZXItY29nbC01LmRlcHMgdmFwaS9tdXR0ZXItY29nbC03LmRlcHMKK3NpbWlsYXJpdHkg aW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC01LmRlcHMKK3JlbmFtZSB0 byB2YXBpL211dHRlci1jb2dsLTcuZGVwcworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQu dmFwaSB2YXBpL211dHRlci1jb2dsLTcudmFwaQorc2ltaWxhcml0eSBpbmRleCA1OSUKK3JlbmFt ZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29n bC03LnZhcGkKK2luZGV4IDVkZThmNDQ3Li42MjBjMjMxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRl ci1jb2dsLTQudmFwaQorKysrIHZhcGkvbXV0dGVyLWNvZ2wtNy52YXBpCitAQCAtMSwxMiArMSwx MyBAQAorLS8qIG11dHRlci1jb2dsLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90 IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY29nbC03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4s IGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFt ZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0g ImNvZ2xfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNv Z2wiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisg bmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5 cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLkhhbmRs ZSB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQg PSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBD b2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisrCQlwcm90ZWN0ZWQgQml0bWFwICgpOworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3Jf cXVhcmsgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDb2dsQml0bWFwKiIpXQorKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIEJpdG1hcC5m cm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTE2LDEwICsxNyw5IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF9yb3dzdHJp ZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENv Z2wuQm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0 aCwgb3V0IGludCBoZWlnaHQpOworKwkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaXplX2Zyb21f ZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfd2lkdGggKCk7 CistCQlwdWJsaWMgc3RhdGljIENvZ2wuQml0bWFwIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxl bmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIpXQorIAlbQ29tcGFjdF0KK0BA IC0yOCwxNSArMjgsMjggQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJvb2wgc2V0X2Rh dGEgKHNpemVfdCBvZmZzZXQsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX3R5cGUgPSAic2l6ZV90Iild IHVpbnQ4W10gZGF0YSk7CisgCQlwdWJsaWMgdm9pZCB1bm1hcCAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBFdWxlciB7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9jb250ZXh0X2dldF9ndHlw ZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQ29udGV4dCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBDb250ZXh0 ICgpOworKwkJcHVibGljIGJvb2wgaXNfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9 ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQg PSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7Cisg CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9 ICJjb2dsX2ZyYW1lX2luZm9fZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUlu Zm8gOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisrCQlwcm90ZWN0ZWQgRnJhbWVJbmZvICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKysJCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgaW50NjQgZ2V0X3ByZXNlbnRhdGlvbl90 aW1lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBmbG9hdCBn ZXRfcmVmcmVzaF9yYXRlICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX2hhbmRsZV9yZWYiLCB1bnJlZl9mdW5j dGlvbiA9ICJjb2dsX2hhbmRsZV91bnJlZiIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNz IEhhbmRsZSB7CitAQCAtNjUsNjUgKzc4LDIwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgTWF0ZXJp YWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29weSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2ds Lk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xv ciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf bGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVy X3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGlj IHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNl cl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg dm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBo YUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAo Q29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9v bCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJ cHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5F cnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3Rh bnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZs b2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4 IGFscGhhKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAo Q29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0 dXJlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9j b21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGli LkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRl eCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXll cl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorQEAgLTEzMSw0MyArOTksMTUgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGlu dCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQg KGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50 IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5N YXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgbW9kZSk7CisrCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jk c19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJv cjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxv YXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3No aW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0p OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhh bmRsZSBtYXRlcmlhbCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xh c3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0 X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21p bl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1 cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRf d3JhcF9tb2RlX3AgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29i amVjdF9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitA QCAtMTc4LDEzICsxMTgsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZz Y3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZz Y3JlZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIHVucmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUg KENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKyAJfQorQEAgLTE5NCwxNyArMTMwLDE2IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCXByb3RlY3RlZCBPbnNjcmVlbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE2IildCisgCQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGly dHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25z Y3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNr PyBkZXN0cm95KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgQ29n bC5GcmFtZUNsb3N1cmUgYWRkX2ZyYW1lX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3Rhcmdl dF9wb3MgPSAxLjUpXSBDb2dsLkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFE ZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sg KFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVD YWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2Fs bGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNOb3RpZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRp YyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9zZXRfc2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBo ZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0 X2J1ZmZlcl9hZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGlj IGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcmVzaXphYmxlICgpOworKwkJcHVibGljIGJvb2wg Z2V0X3Jlc2l6YWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIGhpZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorQEAgLTIxMywx OCArMTQ4LDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFt ZV9jYWxsYmFjayAoQ29nbC5GcmFtZUNsb3N1cmUgY2xvc3VyZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2ds Lk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgcmVtb3ZlX3N3YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChD b2dsLkJvb2wgcmVzaXphYmxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wg cmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNob3cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQg c3dhcF9idWZmZXJzICgpOworKwkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzIChDb2dsLkZyYW1l SW5mbyBmcmFtZV9pbmZvKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJs aWMgdm9pZCBzd2FwX2J1ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9y ZWN0YW5nbGVzKTsKKysJCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50 IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChp bnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcyk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX3Jl Z2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGlu Zm8pOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNv cHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2Zy ZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCki KV0KKyAJW0NvbXBhY3RdCitAQCAtMjQ0LDcgKzE3Nyw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2ds X3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2ds Lk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisr CQlwdWJsaWMgUGlwZWxpbmUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAtMjU0LDQ0ICsxODgsMzAgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9h bHBoYV90ZXN0X3JlZmVyZW5jZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdl dF9jb2xvcl9tYXNrICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wu Q29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5k aW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBp cGVsaW5lRmlsdGVyIGdldF9sYXllcl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVy IGdldF9sYXllcl9taW5fZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRl X2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworKwkJcHVibGljIGJvb2wgZ2V0X2xh eWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUg Z2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFw X21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChp bnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGlj IENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9p bmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9u X2xheWVycyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9w ZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBz cGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdl dF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3By b2dyYW0gKCk7CitAQCAtMzAwLDExICsyMjAsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5j dGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZl cmVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBj b2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29s IHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlw dWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVy cm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Js ZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KK0BAIC0zMTMsNDYgKzIyOSwzNSBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQg Ymx1ZSwgZmxvYXQgYWxwaGEpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVl LCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUg KENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgY3VsbF9mYWNlX21vZGUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3Ig ZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5k aW5nIGZyb250X3dpbmRpbmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcg YmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXll cl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBH TGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBj b25zdGFudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2xheWVyX2ZpbHRlcnMgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZUZpbHRlciBt aW5fZmlsdGVyLCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1hZ19maWx0ZXIpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBs YXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyB2b2lkIHNldF9sYXll cl9tYXhfbWlwbWFwX2xldmVsIChpbnQgbGF5ZXIsIGludCBtYXhfbGV2ZWwpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1 cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworKwkJ cHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVy X3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wg ZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9wb2lu dF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRo cm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBs YXllcl9pbmRleCwgQ29nbC5UZXh0dXJlIHRleHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2lu ZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9p bmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVy X2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUg KENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0 X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3Np emUgKGZsb2F0IHBvaW50X3NpemUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xv ciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFp IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVlKTsKK0BAIC0zNjEsNyArMjY2LDcgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X3VuaWZvcm1faW50IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9u ZW50cywgaW50IGNvdW50LCBpbnQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlv biwgaW50IGRpbWVuc2lvbnMsIGludCBjb3VudCwgQ29nbC5Cb29sIHRyYW5zcG9zZSwgZmxvYXQg dmFsdWUpOworKwkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9s b2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGludCBjb3VudCwgYm9vbCB0cmFuc3Bvc2UsIGZsb2F0 IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworIAl9CitAQCAtMzg4LDcgKzI5 Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKysJcHVibGljIGNsYXNzIFNjYW5vdXQgeworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xI YW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24g PSAiY29nbF9zaGFkZXJfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCitAQCAtNDAxLDQ4ICszMDYsMjMg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJvb2wgaXNfY29tcGlsZWQgKCk7CisgCQlw dWJsaWMgdm9pZCBzb3VyY2UgKHN0cmluZyBzb3VyY2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVu Y3Rpb24gPSAiY29nbF90ZXh0dXJlX3JlZiIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9n dHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV91bnJlZiIpXQorLQlbQ29t cGFjdF0KKy0JcHVibGljIGNsYXNzIFRleHR1cmUgOiBDb2dsLkhhbmRsZSB7CistCQlwdWJsaWMg Q29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRp YyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2JpdG1hcCAo Q29nbC5CaXRtYXAgYm1wX2hhbmRsZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4 ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZGF0YSAo dWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBp eGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIHVpbnQg cm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWNoYXJbXSBkYXRhKTsK Ky0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1 cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBH TGliLkVycm9yOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9zdWJfdGV4dHVyZSAoQ29nbC5UZXh0 dXJlIGZ1bGxfdGV4dHVyZSwgaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGlu dCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMg Q29nbC5UZXh0dXJlQ29tcG9uZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQg Z2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDgg ZGF0YSk7CistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVi bGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0 IHVpbnQgb3V0X2dsX3RhcmdldCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJ cHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMg dWludCBnZXRfcm93c3RyaWRlICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3dpZHRoICgpOworLQkJ cHVibGljIENvZ2wuQm9vbCBpc19zbGljZWQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRt YXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUg bmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBm bGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5h bWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0 YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQg Z2xfdGFyZ2V0LCB1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWlu dCB5X3BvdF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJf eCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWlu dCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVs Rm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVudHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29t cG9uZW50cyk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0 IGZvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBz ZXRfcHJlbXVsdGlwbGllZCAoQ29nbC5Cb29sIHByZW11bHRpcGxpZWQpOworLQkJcHVibGljIENv Z2wuQm9vbCBzZXRfcmVnaW9uIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQg ZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhl aWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRh KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0 X3JlZ2lvbl9mcm9tX2JpdG1hcCAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50 IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRt YXApOworLQkJcHVibGljIFRleHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdo dCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJf Y2FzZV9jc3VmZml4ID0gInRleHR1cmVfMmQiLCB0eXBlX2lkID0gImNvZ2xfdGV4dHVyZV8yZF9n ZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRleHR1cmUyRCA6IENvZ2wuT2JqZWN0LCBD b2dsLlRleHR1cmUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRCAoKTsKKysJCXB1YmxpYyB2b2lkIGVnbF9pbWFnZV9l eHRlcm5hbF9hbGxvY19maW5pc2ggKHZvaWQqIHVzZXJfZGF0YSwgR0xpYi5EZXN0cm95Tm90aWZ5 IGRlc3Ryb3kpOworKwkJcHVibGljIHZvaWQgZWdsX2ltYWdlX2V4dGVybmFsX2JpbmQgKCk7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgVGV4dHVyZTJELmZyb21fYml0bWFwIChDb2dsLkJp dG1hcCBiaXRtYXApOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJ0ZXh0dXJlXzJkX3NsaWNlZCIsIHR5cGVfaWQg PSAiY29nbF90ZXh0dXJlXzJkX3NsaWNlZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNz IFRleHR1cmUyRFNsaWNlZCA6IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUy RFNsaWNlZCAoKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisrCQlwdWJsaWMgVGV4dHVyZTJEU2xpY2Vk LmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBibXAsIGludCBtYXhfd2FzdGUpOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5k bGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0 aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl91bnJlZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00Njgs NyArMzQ4LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBlICgp IildCisgCXB1YmxpYyBpbnRlcmZhY2UgRnJhbWVidWZmZXIgOiBDb2dsLk9iamVjdCB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgp IHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdM aWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBj bGVhciAodWxvbmcgYnVmZmVycywgQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCitAQCAtNDg4LDYgKzM2OCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1 YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZpbmlzaCAoKTsKKysJCXB1YmxpYyB2b2lkIGZsdXNo ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZydXN0 dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxv YXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitA QCAtNDk1LDIyICszNzYsMTggQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfYmx1ZV9iaXRzICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNr ICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5Db250ZXh0IGdldF9jb250ZXh0ICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2ds LlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2Rl cHRoX3dyaXRlX2VuYWJsZWQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5h YmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2RpdGhlcl9lbmFi bGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRf Z3JlZW5fYml0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBp bnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsK KysJCXB1YmxpYyBib29sIGdldF9pc19zdGVyZW8gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01NDcsMTIgKzQyNCwxMyBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChm bG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZv aWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4 LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGlu dCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVs cyk7CisrCQlwdWJsaWMgYm9vbCByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgs IGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhl bHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNl LCBDb2dsLkJpdG1hcCBiaXRtYXApOworKwkJcHVibGljIGJvb2wgcmVhZF9waXhlbHNfaW50b19i aXRtYXAgKGludCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJp dG1hcCBiaXRtYXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZv aWQgcmVzb2x2ZV9zYW1wbGVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAg LTU2MCwxOSArNDM4LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0 ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVu ZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JN YXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3Jp dGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworKwkJcHVibGljIHZv aWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2Vu YWJsZWQgKENvZ2wuQm9vbCBkaXRoZXJfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGl0 aGVyX2VuYWJsZWQgKGJvb2wgZGl0aGVyX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJp eCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01ODgsNiArNDYw LDM5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAi Y29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUg OiBDb2dsLk9iamVjdCB7CisrCQlwdWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5F cnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdl dF9jb21wb25lbnRzICgpOworKwkJcHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g dWludDhbXT8gZGF0YSk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQg b3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CisrCQlwdWJsaWMgdWludCBn ZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyBib29sIGdldF9wcmVtdWx0aXBsaWVkICgp OworKwkJcHVibGljIHVpbnQgZ2V0X3dpZHRoICgpOworKwkJcHVibGljIGJvb2wgaXNfc2xpY2Vk ICgpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5l d19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFn cywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworKwkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0K KysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwg aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9y bWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSk7CisrCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAu OCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5n IGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1 YmxpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1 Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CisrCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQor KwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwg dWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGlu dGVybmFsX2Zvcm1hdCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGlj IHZvaWQgc2V0X2NvbXBvbmVudHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7 CisrCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCBy b3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGlu dCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIp XQorKwkJcHVibGljIHZvaWQgc2V0X3ByZW11bHRpcGxpZWQgKGJvb2wgcHJlbXVsdGlwbGllZCk7 CisrCQlwdWJsaWMgYm9vbCBzZXRfcmVnaW9uIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRz dF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0 aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKysJCXB1YmxpYyBib29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAg KGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lk dGgsIHVpbnQgZHN0X2hlaWdodCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKysJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1NpbXBsZVR5cGVdCisgCXB1 YmxpYyBzdHJ1Y3QgQW5nbGUgOiBpbnQzMiB7CitAQCAtNjM1LDEwICs1NDAsNiBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0 IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9t XzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwg dWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2Miw3ICs1NjMsNyBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0 YW5jZV9jb3VudDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJ WCIpXQorIAlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlw dWJsaWMgZmxvYXQgeXg7CitAQCAtNjg5LDMyICs1OTAsMjcgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJv dHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB1 bm93bmVkIGZsb2F0W10gZ2V0X2FycmF5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVy c2UpOworKwkJcHVibGljIGJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNl KTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY29nbF9tYXRyaXhfaW5pdF9pZGVudGl0eSIpXQorIAkJ cHVibGljIE1hdHJpeC5pZGVudGl0eSAoKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxl ciAoQ29nbC5FdWxlciBldWxlcik7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlv biAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgaW5pdF9mcm9t X2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBpbml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHks IGZsb2F0IHR6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgaXNfaWRlbnRpdHkgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19pZGVudGl0eSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0 IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9u X3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0 IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0ND b2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9tdWx0aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5t dWx0aXBseSAoQ29nbC5NYXRyaXggYSwgQ29nbC5NYXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRv cCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9h dCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lk IHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZs b2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25l bnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0 LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgcm90YXRl IChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIg ZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90 YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2 b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQg c2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3opOworLQkJcHVibGljIHZvaWQgdHJh bnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYg ZmxvYXQgdyk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29n bC5NYXRyaXggbWF0cml4LCByZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCBy ZWYgZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21w b25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVf b3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgdHJh bnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCitAQCAtODAxLDE2ICs2OTcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlXSU5E T1dfQlVGRkVSLAorIAkJT0ZGU0NSRUVOX0JVRkZFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7 CistCQlOT05FLAorLQkJUkVELAorLQkJR1JFRU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlB TEwKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfREVQVEhfVEVTVF9GVU5DVElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJcHVibGljIGVudW0gRGVwdGhUZXN0RnVuY3Rpb24geworIAkJTkVWRVIsCitAQCAtODIyLDQ2 ICs3MDgsNDEgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJR0VRVUFMLAorIAkJQUxXQVlTCisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9FR0xfSU1BR0VfRkxBR18i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJFX1JFQ1RBTkdM RSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJ WEVMUywKKy0JCVNIQURFUlNfR0xTTCwKKy0JCU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxU SVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9CTElULAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNU RU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNF UywKKy0JCURFUFRIX1JBTkdFLAorLQkJVEVYVFVSRV9OUE9UX0JBU0lDLAorLQkJVEVYVFVSRV9O UE9UX01JUE1BUCwKKy0JCVRFWFRVUkVfTlBPVF9SRVBFQVQsCistCQlQT0lOVF9TUFJJVEUsCist CQlURVhUVVJFXzNELAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9S X1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCisrCXB1Ymxp YyBlbnVtIEVnbEltYWdlRmxhZ3MgeworKwkJTk9ORSwKKysJCU5PX0dFVF9EQVRBCisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X0ZFQVRVUkVfSURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIEZlYXR1cmVJRCB7CisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVf SURfVU5TSUdORURfSU5UX0lORElDRVMsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVS RV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFEIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVS X0ZPUl9SRUFELAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZF Ul9GT1JfV1JJVEUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFLAor KwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5UIild CisrCQlPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1l ID0gIkNPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSIpXQorKwkJT0dMX0ZFQVRVUkVf SURfUFJFU0VOVEFUSU9OX1RJTUUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9J RF9GRU5DRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfRkVOQ0UsCisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJF X1JHLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSIpXQor KwkJT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9G RUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMIildCisrCQlPR0xfRkVBVFVSRV9J RF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9G RUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0JMSVRfRlJB TUVCVUZGRVIKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJs aWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJQ09OVElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf Rk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElB TCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBl bnVtIEZyYW1lRXZlbnQgeworQEAgLTg3NCw2ICs3NTUsMTQgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBx dWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVTRVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFwaGljc1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9S LAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQsCisrCQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAor KwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAorKwkJUFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJs aWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRFLAorQEAgLTkwMCwxMiArNzg5LDYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorIAkJTElORUFSX01JUE1B UF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlh bExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQ RV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFU RVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MCw2 ICs4NTMsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJQkdSQV8xMDEwMTAyLAorIAkJQVJHQl8y MTAxMDEwLAorIAkJQUJHUl8yMTAxMDEwLAorKwkJUkdCQV9GUF8xNjE2MTYxNiwKKysJCUJHUkFf RlBfMTYxNjE2MTYsCisrCQlBUkdCX0ZQXzE2MTYxNjE2LAorKwkJQUJHUl9GUF8xNjE2MTYxNiwK KyAJCVJHQkFfODg4OF9QUkUsCisgCQlCR1JBXzg4ODhfUFJFLAorIAkJQVJHQl84ODg4X1BSRSwK K0BAIC05ODAsOSArODY3LDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUJHUkFfMTAxMDEwMl9Q UkUsCisgCQlBUkdCXzIxMDEwMTBfUFJFLAorIAkJQUJHUl8yMTAxMDEwX1BSRSwKKysJCVJHQkFf RlBfMTYxNjE2MTZfUFJFLAorKwkJQkdSQV9GUF8xNjE2MTYxNl9QUkUsCisrCQlBUkdCX0ZQXzE2 MTYxNjE2X1BSRSwKKysJCUFCR1JfRlBfMTYxNjE2MTZfUFJFLAorIAkJREVQVEhfMTYsCisgCQlE RVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5DSUxfOAorKwkJREVQVEhfMjRfU1RFTkNJTF84Owor KwkJcHVibGljIGludCBnZXRfYnl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGlj IGludCBnZXRfbl9wbGFuZXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5n ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJW0ZsYWdzXQorQEAgLTEwNDEsMTMgKzkzNSw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5P X1NMSUNJTkcsCisgCQlOT19BVExBUworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBlbnVt IFRleHR1cmVUeXBlIHsKKy0JCUAyRCwKKy0JCUAzRCwKKy0JCVJFQ1RBTkdMRQorLQl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9W RVJUSUNFU19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCXB1YmxpYyBlbnVtIFZlcnRpY2VzTW9kZSB7CitAQCAtMTA2Nyw3ICs5NTQs NiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJcHVibGljIGVudW0gV2luc3lzRmVhdHVyZSB7CisgCQlNVUxUSVBMRV9PTlND UkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCisgCQlWQkxBTktfQ09VTlRFUiwKKyAJCVZCTEFOS19X QUlULAorIAkJVEVYVFVSRV9GUk9NX1BJWE1BUCwKK0BAIC0xMDgyLDkgKzk2OCwxMiBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVi bGljIGRlbGVnYXRlIHZvaWQgRGVidWdPYmplY3RGb3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRl YnVnT2JqZWN0VHlwZUluZm8gaW5mbyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1 YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVy aWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENv Z2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAzLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGcmFtZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVu IG9uc2NyZWVuLCBDb2dsLkZyYW1lRXZlbnQgZXZlbnQsIENvZ2wuRnJhbWVJbmZvIGluZm8pOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3Mg PSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUg dm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wu T25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CitAQCAtMTA5MiwxMiArOTgxLDEwIEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUg dm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQg d2lkdGgsIGludCBoZWlnaHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNj cmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50 X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0 YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBk ZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBp cGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGlu ZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3Bv cyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2ds LkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKysJcHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVy ZTJERUdMSW1hZ2VFeHRlcm5hbEFsbG9jIChDb2dsLlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBH TGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBo YXNfdGFyZ2V0ID0gZmFsc2UpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ry b3lDYWxsYmFjayAodm9pZCogZGF0YSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQUZJUlNUX0JJVCIpXQorQEAgLTExMDgsNiArOTk1 LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQ VEhfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9N QVhfUExBTkVTIildCisrCXB1YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNP R0xfUFJFTVVMVF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVO Q0lMX0JJVCIpXQorQEAgLTExMTUsMjEgKzEwMDQsMTIgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RF WFRVUkVfTUFYX1dBU1RFIildCisgCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5C b29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9yLCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5C b29sIGNsdXR0ZXJfY2hlY2tfZXh0ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcg ZXh0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGJsaXRfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVi dWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVyIGRlc3QsIGludCBzcmNfeCwgaW50IHNyY195LCBp bnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xpYi5F cnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIg KENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJlKTsKKysJcHVibGljIHN0YXRpYyBib29sIGNsdXR0 ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJl KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY29sb3JfZXF1 YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9lcXVh bCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0 aWMgdm9pZCBjb2xvcl9pbml0X2Zyb21faHNsIChvdXQgQ29nbC5Db2xvciBjb2xvciwgZmxvYXQg aHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBmbG9hdCBsdW1pbmFuY2UpOworQEAgLTExNDMsMjM0ICsx MDIzLDg3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBkaXNhYmxlX2ZvZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBl bmRfZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVh dHVyZUZsYWdzIGZlYXR1cmVzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB2 b2lkIGZsdXNoICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxv YXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25l YXIsIGZsb2F0IHpfZmFyKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGlj IHN0YXRpYyB2b2lkIGZvcmVhY2hfZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wu RmVhdHVyZUNhbGxiYWNrIGNhbGxiYWNrKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9iYWNrZmFj ZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYmFja2ZhY2Vf Y3VsbGluZ19lbmFibGVkICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJl ZCwgb3V0IGludCBncmVlbiwgb3V0IGludCBibHVlLCBvdXQgaW50IGFscGhhKTsKKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKysJcHVibGljIHN0YXRpYyBpbnQ2NCBnZXRfY2xvY2tfdGlt ZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3Rl c3RfZW5hYmxlZCAoKTsKKysJcHVibGljIHN0YXRpYyBib29sIGdldF9kZXB0aF90ZXN0X2VuYWJs ZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZy YW1lYnVmZmVyIGdldF9kcmF3X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4 IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworKwlwdWJsaWMgc3RhdGljIENvZ2wuR3JhcGhpY3NS ZXNldFN0YXR1cyBnZXRfZ3JhcGhpY3NfcmVzZXRfc3RhdHVzIChDb2dsLkNvbnRleHQgY29udGV4 dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9n cm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CXB1YmxpYyBzdGF0aWMgR0xpYi5DYWxsYmFjayBnZXRfcHJvY19hZGRyZXNzIChzdHJpbmcgcyk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCogZ2V0X3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmll d3BvcnQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMg c3RhdGljIEdMaWIuVHlwZSBndHlwZV9tYXRyaXhfZ2V0X3R5cGUgKCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2Jq ZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGhhc19mZWF0dXJlIChDb2dsLkNvbnRleHQgY29u dGV4dCwgQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKysJcHVibGlj IHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfdmVydGV4X2J1ZmZlcl9pbmRpY2Vz IChDb2dsLkhhbmRsZSBoYW5kbGUpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVfaW5m byAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkJvb2wgbWF0cml4X2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9t LCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcGVyc3Bl Y3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zh cik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb2x5Z29uIChDb2ds LlRleHR1cmVWZXJ0ZXggdmVydGljZXMsIHVpbnQgbl92ZXJ0aWNlcywgQ29nbC5Cb29sIHVzZV9j b2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBwb3Bfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgcmVjdGFuZ2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9h dCB5XzIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xl X3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4Miwg ZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29y ZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkx LCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZs b2F0IHR5Mik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMg Ym9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworKwlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfb25zY3JlZW4gKHZvaWQqIG9iamVjdCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNfd2l0 aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10g dmVydHMsIHVpbnQgbl9yZWN0cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJcHVi bGljIHN0YXRpYyBib29sIGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwlwdWJs aWMgc3RhdGljIGJvb2wgaXNfdGV4dHVyZV8yZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9p ZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChD b2dsLkJvb2wgc2V0dGluZyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJcHVibGlj IHN0YXRpYyBib29sIG1hdHJpeF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CisrCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChib29sIHNldHRpbmcp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01v ZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOwor KwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZGlzYWJsZWRfb25fdGhyZWFkICh2b2lk KiBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4 IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCog bWF0ZXJpYWwpOworKwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZW5hYmxlZF9vbl90 aHJlYWQgKHZvaWQqIGRhdGEsIHN0cmluZyBncm91cCwgc3RyaW5nIGZpbGVuYW1lKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9y KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0 IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdy ZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVh ZF93aXRoX2ZkICh2b2lkKiBkYXRhLCBzdHJpbmcgZ3JvdXAsIGludCBmZCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIENv Z2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1 YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmlu ZyBzb3VyY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2Ug PSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21f Yml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2ds LlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwg Q29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBp eGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7Cisr CXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRl LCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisg CXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZmlsZSAoc3RyaW5n IGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBD b2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWlu dCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1 aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJs aWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgs IHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAo Q29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhh bmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBD b2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgQ29nbC5Cb29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJp ZGUsIHZvaWQqIHBvaW50ZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChD b2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg dmVydGV4X2J1ZmZlcl9kaXNhYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1 dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBo YW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRs ZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9p bmRleCwgaW50IG1heF9pbmRleCwgaW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmlu ZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0 aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2 ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29n bC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1 ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2 ZXJ0ZXhfYnVmZmVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0 ZXhfYnVmZmVyX3N1Ym1pdCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRl eF9idWZmZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHZpZXdwb3J0ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQz MiB4MTFfb25zY3JlZW5fZ2V0X3Zpc3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dl dF93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlk IChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFz eW5jIildIENvZ2wuT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0t Z2l0IHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBp CitpbmRleCA5M2VmZjhhNS4uZmVkYzZhNGEgMTAwNjQ0CistLS0gdmFwaS9wb2xraXQtZ29iamVj dC0xLnZhcGkKKysrKyB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaQorQEAgLTcsNyArNyw3IEBA IG5hbWVzcGFjZSBQb2xraXQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdGlvbkRlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9hY3Rpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2Fubm90YXRpb24gKHN0cmluZyBrZXkpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBn ZXRfYW5ub3RhdGlvbiAoc3RyaW5nIGtleSk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0 cmluZ1tdIGdldF9hbm5vdGF0aW9uX2tleXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2Rlc2NyaXB0aW9uICgpOworQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7 CisgCQlwdWJsaWMgUG9sa2l0LkF1dGhvcml0eUZlYXR1cmVzIGdldF9iYWNrZW5kX2ZlYXR1cmVz ICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9iYWNrZW5kX25hbWUgKCk7CisgCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2JhY2tlbmRfdmVyc2lvbiAoKTsKKy0JCXB1YmxpYyBz dHJpbmcgZ2V0X293bmVyICgpOworKwkJcHVibGljIHN0cmluZz8gZ2V0X293bmVyICgpOworIAkJ cHVibGljIHN0YXRpYyBQb2xraXQuQXV0aG9yaXR5IGdldF9zeW5jIChHTGliLkNhbmNlbGxhYmxl PyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGFzeW5j IGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRpb25fYWdlbnQgKFBvbGtpdC5TdWJqZWN0IHN1Ympl Y3QsIHN0cmluZyBsb2NhbGUsIHN0cmluZyBvYmplY3RfcGF0aCwgR0xpYi5DYW5jZWxsYWJsZT8g Y2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGJvb2wgcmVnaXN0ZXJf YXV0aGVudGljYXRpb25fYWdlbnRfc3luYyAoUG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5n IGxvY2FsZSwgc3RyaW5nIG9iamVjdF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJs ZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworQEAgLTU2LDIxICs1NiwyMiBAQCBuYW1lc3Bh Y2UgUG9sa2l0IHsKKyAJcHVibGljIGNsYXNzIEF1dGhvcml6YXRpb25SZXN1bHQgOiBHTGliLk9i amVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlw dWJsaWMgQXV0aG9yaXphdGlvblJlc3VsdCAoYm9vbCBpc19hdXRob3JpemVkLCBib29sIGlzX2No YWxsZW5nZSwgUG9sa2l0LkRldGFpbHM/IGRldGFpbHMpOworLQkJcHVibGljIHVub3duZWQgUG9s a2l0LkRldGFpbHMgZ2V0X2RldGFpbHMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0 YWlscz8gZ2V0X2RldGFpbHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMDEiKV0KKyAJ CXB1YmxpYyBib29sIGdldF9kaXNtaXNzZWQgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaXNfYXV0 aG9yaXplZCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pc19jaGFsbGVuZ2UgKCk7CisgCQlwdWJs aWMgYm9vbCBnZXRfcmV0YWluc19hdXRob3JpemF0aW9uICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF90ZW1wb3JhcnlfYXV0aG9yaXphdGlvbl9pZCAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIHN0cmluZz8gZ2V0X3RlbXBvcmFyeV9hdXRob3JpemF0aW9uX2lkICgpOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCB0eXBlX2lkID0gInBv bGtpdF9kZXRhaWxzX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBEZXRhaWxzIDogR0xp Yi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHVibGljIERldGFpbHMgKCk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBh cnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyBzdHJpbmdbXSBnZXRfa2V5 cyAoKTsKKysJCXB1YmxpYyBzdHJpbmdbXT8gZ2V0X2tleXMgKCk7CisgCQlwdWJsaWMgdm9pZCBp bnNlcnQgKHN0cmluZyBrZXksIHN0cmluZz8gdmFsdWUpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGxvb2t1cCAoc3RyaW5nIGtleSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGxvb2t1 cCAoc3RyaW5nIGtleSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtp dC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X3Blcm1pc3Npb25fZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGNsYXNzIFBlcm1pc3Npb24gOiBHTGliLlBlcm1pc3Npb24sIEdMaWIuQXN5bmNJ bml0YWJsZSwgR0xpYi5Jbml0YWJsZSB7CitAQCAtODgsNyArODksOCBAQCBuYW1lc3BhY2UgUG9s a2l0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXBy b3RlY3RlZCBTeXN0ZW1CdXNOYW1lICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9u YW1lICgpOworLQkJcHVibGljIFBvbGtpdC5TdWJqZWN0IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIu Q2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlw dWJsaWMgUG9sa2l0LlN1YmplY3Q/IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/ IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0 LlVuaXhVc2VyPyBnZXRfdXNlcl9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9 IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVj dCBAbmV3IChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5h bWUpOworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAt MTQ2LDkgKzE0OCwxMCBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXByb3RlY3RlZCBVbml4U2Vz c2lvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc2Vzc2lvbl9pZCAoKTsKKyAJ CXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3QgQG5ldyAoc3RyaW5nIHNlc3Npb25faWQpOwor LQkJcHVibGljIHN0YXRpYyBhc3luYyBQb2xraXQuU3ViamVjdCBuZXdfZm9yX3Byb2Nlc3MgKGlu dCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsK Ky0JCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3QgbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGlu dCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIu RXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIGFzeW5jIFBvbGtpdC5TdWJqZWN0PyBuZXdfZm9yX3By b2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2Vz c19zeW5jIChpbnQgcGlkLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRo cm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHZvaWQgc2V0X3Nlc3Npb25faWQgKHN0cmluZyBz ZXNzaW9uX2lkKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIGludCBwaWQgeyBj b25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzdHJpbmcgc2Vzc2lvbl9pZCB7IGdldDsgc2V0IGNvbnN0 cnVjdDsgfQorIAl9CitAQCAtMTU2LDE3ICsxNTksMTcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7Cisg CXB1YmxpYyBjbGFzcyBVbml4VXNlciA6IEdMaWIuT2JqZWN0LCBQb2xraXQuSWRlbnRpdHkgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVk IFVuaXhVc2VyICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJ cHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfbmFtZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3Vp ZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5IEBuZXcgKGludCB1aWQpOwor LQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFt ZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8g bmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMg dm9pZCBzZXRfdWlkIChpbnQgdWlkKTsKKyAJCXB1YmxpYyBpbnQgdWlkIHsgZ2V0OyBzZXQgY29u c3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xr aXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X2lkZW50aXR5X2dldF90eXBlICgpIildCisgCXB1Ymxp YyBpbnRlcmZhY2UgSWRlbnRpdHkgOiBHTGliLk9iamVjdCB7CisgCQlwdWJsaWMgYWJzdHJhY3Qg Ym9vbCBlcXVhbCAoUG9sa2l0LklkZW50aXR5IGIpOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQu SWRlbnRpdHkgZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwkJ cHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHk/IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyBhYnN0cmFjdCB1aW50IGhhc2ggKCk7CisgCQlw dWJsaWMgYWJzdHJhY3Qgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorQEAgLTIwMSw3ICsyMDQs NyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCUFETUlOSVNUUkFUT1JfQVVUSEVOVElDQVRJT05f UkVRVUlSRURfUkVUQUlORUQsCisgCQlBVVRIT1JJWkVEOworIAkJcHVibGljIHN0YXRpYyBib29s IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyaW5nLCBQb2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9u IG91dF9pbXBsaWNpdF9hdXRob3JpemF0aW9uKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBz dHJpbmcgdG9fc3RyaW5nIChQb2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIGltcGxpY2l0X2F1 dGhvcml6YXRpb24pOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgY3ByZWZp eCA9ICJQT0xLSVRfRVJST1JfIildCisgCXB1YmxpYyBlcnJvcmRvbWFpbiBFcnJvciB7CitAQCAt MjEyLDcgKzIxNSw3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJcHVibGljIHN0YXRpYyBHTGli LlF1YXJrIHF1YXJrICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xr aXQvcG9sa2l0LmgiKV0KKy0JcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgaWRlbnRpdHlf ZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwlwdWJsaWMgc3Rh dGljIFBvbGtpdC5JZGVudGl0eT8gaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRo cm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3Bv bGtpdC5oIildCisgCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3Qgc3ViamVjdF9mcm9tX3N0 cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisgfQorLS0gCisyLjI4LjAKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnVk Z2llLWRlc2t0b3AvdGVtcGxhdGUKaW5kZXggYjMyZTc3MzRkM2IuLmFlNWE5ZDVmNzY5IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnVk Z2llLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdidWRnaWUtZGVza3RvcCcKIHBrZ25hbWU9YnVkZ2llLWRlc2t0b3AKIHZlcnNpb249MTAuNS4x Ci1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVy PWdpcgogY29uZmlndXJlX2FyZ3M9Ii1Ed2l0aC1ndGstZG9jPWZhbHNlIC1Ed2l0aC1kZXNrdG9w LWljb25zPW5vbmUiCg== --===============3261510543049625968==--