From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 8456 invoked from network); 17 Sep 2020 00:35:56 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Sep 2020 00:35:56 -0000 Content-Type: multipart/mixed; boundary="===============7695624715188693932==" 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 02:35:52 +0200 List-Id: Message-ID: <20200917003552.TrB6rc_P9YqveSFGfTsmIWkhR2645-2t8ku3qE84R1c@z> GitHub notification mails are now in MIME to allow UTF8. --===============7695624715188693932== 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 NzguMS4wICoqKG5ldykqKg0KLSBbeF0geWVscC14c2wgLT4gMy4zOC4wDQotIFt4XSB5ZWxwLXRv b2xzIC0+IDMuMzguMA0KLSBbeF0geWVscCAtPiAzLjM4LjANCi0gW3hdIHZhbGEgLT4gMC41MC4w DQotIFt4XSB2YWxhZG9jIC0+IDAuNTAuMCANCi0gW3hdIHZhbGFiaW5kIC0+IChyZXZidW1wKSAN Ci0gW3hdIGRldmhlbHAgLT4gMy4zOC4wDQotIFt4XSBnZGwgLT4gMy4zNC4wDQotIFt4XSBsaWJz b3VwIC0+IDIuNzIuMA0KLSBbeF0gZ3Rrc291cmNldmlldzQgLT4gNC44LjANCi0gW3hdIHRlcGwg LT4gNS4wLjANCi0gW3hdIGdsYWRlMyAtPiAzLjM4LjANCi0gW3hdIGxpYmhhbmR5IC0+IChyZXZi dW1wKQ0KLSBbeF0gbGliaGFuZHkxIC0+IDEuMC4wDQotIFt4XSBsaWJ4ZmNlNHVpIC0+IChyZXZi dW1wKQ0KLSBbeF0gbGliZGF6emxlIC0+IDMuMzguMA0KLSBbeF0gYW5qdXRhIC0+IChyZXZidW1w KQ0KLSBbeF0gc3lzcHJvZiAtPiAzLjM4LjANCi0gW3hdIHRyYWNrZXIgLT4gMi4zLjYNCi0gW3hd IHRyYWNrZXItbWluZXJzIC0+IDIuMy41DQotIFt4XSB0cmFja2VyMyAtPiAzLjAuMCAqKihuZXcp KioNCi0gW3hdIHRyYWNrZXIzLW1pbmVycyAtPiAzLjAuMCAqKihuZXcpKioNCi0gW3hdIGJpamli ZW4gLT4gMy4zNi4zDQotIFt4XSBncmFwaGVuZSAtPiAxLjEwLjINCi0gW3hdIGFtdGsgLT4gNS4y LjANCi0gW3hdIGlvLmVsZW1lbnRhcnkuY29kZSAtPiAocmV2YnVtcCkNCi0gW3hdIHBob2RhdiAt PiAyLjUNCi0gW3hdIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgLT4gMy4zOC4wDQotIFt4XSBn bGliLW5ldHdvcmtpbmcgLT4gMi42Ni4wDQotIFt4XSBhdC1zcGkyLWNvcmUgLT4gMi4zOC4wDQot IFt4XSBhdC1zcGkyLWF0ayAtPiAyLjM4LjANCi0gW3hdIGxpYmd3ZWF0aGVyIC0+IDMuMzYuMQ0K LSBbeF0gZ25vbWUtbWVudXMgLT4gMy4zNi4wDQotIFt4XSBnbm9tZS1kZXNrdG9wIC0+IDMuMzgu MA0KLSBbeF0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uIC0+IDMuMzguMA0KLSBbeF0gbXV0dGVyIC0+ IDMuMzguMA0KLSBbeF0gY2hlZXNlIC0+IDMuMzguMA0KLSBbeF0gZXZvbHV0aW9uLWRhdGEtc2Vy dmVyIC0+IDMuMzguMA0KLSBbeF0gZm9sa3MgLT4gMC4xNC4wDQotIFt4XSBnbm9tZS1vbmxpbmUt YWNjb3VudHMgLT4gMy4zNy45MCAqKipiZXRhIHZlcnNpb24gbnVtYmVyLCBidXQgaW4gdGhlIDMu MzguMCByZWxlYXNlKioqDQotIFt4XSBnbm9tZS1jb250cm9sLWNlbnRlciAtPiAzLjM4LjANCi0g W3hdIGRjb25mLWVkaXRvciAtPiAzLjM4LjANCi0gW3hdIGdqcyAtPiAxLjY2LjANCi0gW3hdIGdu b21lLXNoZWxsIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyAtPiAzLjM4 LjANCi0gW3hdIGdkbSAtPiAzLjM4LjANCi0gW3hdIGdub21lLXNlc3Npb24gLT4gMy4zOC4wDQot IFt4XSBnbm9tZS1pbml0aWFsLXNldHVwIC0+IDMuMzguMA0KLSBbeF0geGRnLWRlc2t0b3AtcG9y dGFsLWd0ayAtPiAxLjguMA0KLSBbeF0gbmF1dGlsdXMgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1t YXBzIC0+IDMuMzguMA0KLSBbeF0gZXZvbHV0aW9uIC0+IDMuMzguMA0KLSBbeF0gZXZvbHV0aW9u LWV3cyAtPiAzLjM4LjANCi0gW3hdIHB5dGhvbjMtYXRzcGkgLT4gMi4zOC4wDQotIFt4XSBweXRo b24tYXRzcGkgLT4gMi4zOC4wDQotIFt4XSBvcmNhIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtd2Vh dGhlciAtPiAocmV2YnVtcCkNCi0gW3hdIHZ0ZTMgLT4gMC42Mi4wDQotIFt4XSBnbm9tZS10ZXJt aW5hbCAtPiAzLjM4LjANCi0gW3hdIGdub21lLWdldHRpbmctc3RhcnRlZC1kb2NzIC0+IDMuMzYu Mg0KLSBbeF0gZ25vbWUtdXNlci1kb2NzIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtZXB1Yi10aHVt Ym5haWxlciAtPiAxLjYNCi0gW3hdIGdub21lLWJvb2tzIC0+IChyZXZidW1wKQ0KLSBbeF0gZ25v bWUtY2hhcmFjdGVycyAtPiAocmV2YnVtcCkNCi0gW3hdIGdub21lLWRvY3VtZW50cyAtPiAocmV2 YnVtcCkNCi0gW3hdIGdub21lLWZvbnQtdmlld2VyIC0+IChyZXZidW1wKQ0KLSBbeF0gdG90ZW0g LT4gMy4zOC4wDQotIFt4XSBnbm9tZS1zY3JlZW5zYXZlciAtPiAocmV2YnVtcCArIGJ1aWxkIGZp eCkNCi0gW3hdIGdub21lLWNsb2NrcyAtPiAzLjM4LjANCi0gW3hdIGVwaXBoYW55IC0+IDMuMzgu MA0KLSBbeF0gYnVkZ2llLWRlc2t0b3AgLT4gKHJlYnVpbGQpDQoNCiMgT3RoZXIgdXBkYXRlcyAo c3RpbGwgVE9ETykNCg0KLSBbeF0gZ25vbWUtY29udGFjdHMgLT4gMy4zNy4yICp1bnN0YWJsZSoN Ci0gW3hdIGVvZyAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXBob3RvcyAtPiAz LjM3LjkxLjEgKioqYmV0YSoqKg0KLSBbeF0gZXZpbmNlIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0K LSBbeF0gZmlsZS1yb2xsZXIgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jYWxl bmRhciAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtbXVzaWMgLT4gMy4zNy4z ICp1bnN0YWJsZSoNCi0gW3hdIGdub21lLXBhbmVsIC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4 XSBtZXRhY2l0eSAtPiAzLjM3LjEgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtZmxhc2hiYWNrIC0+ IDMuMzcuMiAqdW5zdGFibGUqDQotIFt4XSBnZWRpdCAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBb eF0gZ2VkaXQtcGx1Z2lucyAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtbGF0 ZXggLT4gMy4zNy4yICp1bnN0YWJsZSoNCi0gW3hdIGJhb2JhYiAtPiAzLjM3LjkwICoqKmJldGEq KioNCi0gW3hdIGdub21lLWJveGVzIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUt Y2FsY3VsYXRvciAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWRpc2stdXRpbGl0 eSAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtc2NyZWVuc2hvdCAtPiAzLjM3Ljkw ICoqKmJldGEqKioNCi0gW3hdIGdub21lLXN5c3RlbS1tb25pdG9yIC0+IDMuMzcuOTEgKioqYmV0 YSoqKg0KLSBbeF0gZ25vbWUtYnVpbGRlciAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGFk d2FpdGEtaWNvbi10aGVtZSAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtYmFja2dy b3VuZHMgLT4gMy4zNy4yICp1bnN0YWJsZSoNCi0gW3hdIHBvbGFyaSAtPiAzLjM3LjMgKnVuc3Rh YmxlKg0KLSBbeF0gZ3ZmcyAtPiAxLjQ1LjkwICoqKmJldGEqKioNCi0gW3hdIHJ5Z2VsIC0+IDAu MzkuMiAqdW5zdGFibGUqDQotIFt4XSBzaW1wbGUtc2NhbiAtPiAzLjM3LjMgKnVuc3RhYmxlKg0K DQojIyBNZXJnZWQNCg0KLSBbeF0gbGlic2lnYysrMyAtPiAzLjAuMyAobmV3KQ0KLSBbeF0gbW0t Y29tbW9uIC0+IDEuMC4xDQotIFt4XSBnbGlibW0gLT4gMi42NC4yDQotIFt4XSBwYW5nb21tIC0+ IDIuNDIuMQ0KLSBbeF0gbGlibm90aWZ5IC0+IDAuNy45DQotIFt4XSBhdGsgLT4gMi4zNi4wDQot IFt4XSBndGsrMyAtPiAzLjI0LjIyDQotIFt4XSBsaWJwb3J0YWwgLT4gMC4zIChuZXcpDQotIFt4 XSBjb2dsIC0+IDEuMjIuMjgNCi0gW3hdIGdlb2NvZGUtZ2xpYiAtPiAzLjI2LjINCi0gW3hdIGdm YmdyYXBoIC0+IDAuMi40DQotIFt4XSBsaWJnc2YgLT4gMS4xNC40Nw0KLSBbeF0gbGlic2VjcmV0 IC0+IDAuMjAuMw0KLSBbeF0gbGliY2hhbXBsYWluIC0+IDAuMTIuMjANCi0gW3hdIGdvbSAtPiAw LjQNCi0gW3hdIGdzc2RwIC0+IDEuMi4zDQotIFt4XSBndGstdm5jIC0+IDEuMC4wIChkcm9wcyB1 bnVzZWQgZ3RrMiBzdXBwb3J0KQ0KLSBbeF0gZ3VwbnAgLT4gMS4yLjQNCi0gW3hdIGdub21lLXZp ZGVvLWVmZmVjdHMgLT4gMC41LjANCi0gW3hdIGdsaWIgLT4gMi42Ni4wDQotIFt4XSB3ZWJraXQy Z3RrIC0+IDIuMzAuMA0KDQojIyBUT0RPDQoNCi0gWyBdIHJldHJvLWd0aw0KLSBbIF0gZ25vbWUt Z2FtZXMKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8yNDI2MC5wYXRjaCBpcyBhdHRhY2hlZA== --===============7695624715188693932== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSBiN2U5NDUxOGUyZjRjYzVlNWJiY2U2YjI2MzA4MGIzYTI1NjIwMTM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjoyMzowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAx LzEwMl0gTmV3IHBhY2thZ2U6IG1vempzNzgtNzguMS4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL21vempzNzgtZGV2 ZWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uLzAwMS1zaWxlbmNlLXNhbmRi b3gtdmlvbGF0aW9ucy5wYXRjaCAgICAgIHwgIDI3ICsrKysrCiBzcmNwa2dzL21vempzNzgvcGF0 Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaCAgfCAgMjIgKysrKwogLi4uL21vempzNzgvcGF0Y2hl cy8wMDMtZml4LXdhc20tYXJtLnBhdGNoICAgIHwgIDE2ICsrKwogLi4uL21vempzNzgvcGF0Y2hl cy8wMDQtZml4LW11c2wtYnVpbGQucGF0Y2ggIHwgIDE3ICsrKwogLi4uLzAwNS1zcGlkZXJtb25r ZXktY2hlY2tzLWRpc2FibGUucGF0Y2ggICAgIHwgIDEyICsrCiAuLi4vMDA2LW1vempzNzgucGMt aG9ub3Itc3lzcm9vdC5wYXRjaCAgICAgICAgfCAgMTAgKysKIC4uLi9wYXRjaGVzLzAwNy1maXgt bWlwcy1zZ2lkZWZzX2gucGF0Y2ggICAgICB8ICAxMSArKwogc3JjcGtncy9tb3pqczc4L3BhdGNo ZXMvY292ZXJhZ2UtYXBpLnBhdGNoICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKwogc3JjcGtn cy9tb3pqczc4L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDczICsrKysrKysrKysr Kwogc3JjcGtncy9tb3pqczc4L3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IDEyIGZpbGVzIGNoYW5nZWQsIDI5OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAg c3JjcGtncy9tb3pqczc4LWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJt LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA0LWZp eC1tdXNsLWJ1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3Bh dGNoZXMvMDA1LXNwaWRlcm1vbmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jv b3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDct Zml4LW1pcHMtc2dpZGVmc19oLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pq czc4L3BhdGNoZXMvY292ZXJhZ2UtYXBpLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9tb3pqczc4L3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3Vw ZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGZl Y2YxMGFmMDliLi44ZDM2MmUxODQ5NiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9j b21tb24vc2hsaWJzCkBAIC0zNTM4LDYgKzM1MzgsNyBAQCBsaWJLRjVTeW5kaWNhdGlvbi5zby41 IHN5bmRpY2F0aW9uLTUuNTAuMF8xCiBsaWJscXItMS5zby4wIGxpYmxxci0wLjQuMl8xCiBsaWJt b3pqcy02MC5zby4wIG1vempzNjAtNjAuMC4yXzEKIGxpYm1vempzLTY4LnNvLjAgbW96anM2OC02 OC44LjBfMQorbGlibW96anMtNzguc28uMCBtb3pqczc4LTc4LjEuMF8xCiBsaWJlYnVyMTI4LnNv LjEgbGliZWJ1cjEyOC0xLjIuNF8xCiBsaWJndGtzb3VyY2V2aWV3LTQuc28uMCBndGtzb3VyY2V2 aWV3NC00LjAuMl8xCiBsaWJ3eF9ndGszdV9wcm9wZ3JpZC0zLjAuc28uMCB3eFdpZGdldHMtZ3Rr My0zLjAuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgtZGV2ZWwgYi9zcmNwa2dzL21v empzNzgtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAuLjc3MTM1 OTkzNTZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4LWRldmVsCkBAIC0wLDAg KzEgQEAKK21vempzNzgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMucGF0 Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlv bnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRjMDExOTRi NjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAxLXNpbGVu Y2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKKyJDYXJyaWVkIG92 ZXIgKyB1cGRhdGVkIGZyb20gbW96anM2OCIKK1Vwc3RyZWFtOiBubworRnJvbSA5YWQxMDU2OWUx MWEyZmI5NjM3NzE4OGY4OTViYzY2YWJjYzk1MTFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogTWFyYy1BbnRvaW5lIFBlcmVubm91IDxNYXJjLUFudG9pbmVAUGVyZW5ub3UuY29tPgor RGF0ZTogV2VkLCA1IFNlcCAyMDE4IDE1OjA1OjI0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIHNp bGVuY2Ugc2FuZGJveCB2aW9sYXRpb25zCisKK1NpZ25lZC1vZmYtYnk6IE1hcmMtQW50b2luZSBQ ZXJlbm5vdSA8TWFyYy1BbnRvaW5lQFBlcmVubm91LmNvbT4KKy0tLQorIHB5dGhvbi9tb3pidWls ZC9tb3pidWlsZC9mcm9udGVuZC9lbWl0dGVyLnB5IHwgNSAtLS0tLQorIDEgZmlsZSBjaGFuZ2Vk LCA1IGRlbGV0aW9ucygtKQorCistLS0gYS9weXRob24vbW96YnVpbGQvbW96YnVpbGQvZnJvbnRl bmQvZW1pdHRlci5weQorKysrIGIvcHl0aG9uL21vemJ1aWxkL21vemJ1aWxkL2Zyb250ZW5kL2Vt aXR0ZXIucHkKK0BAIC0xMjM5LDEyICsxMjM5LDYgQEAgY2xhc3MgVHJlZU1ldGFkYXRhRW1pdHRl cihMb2dnaW5nTWl4aW4pOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnaXMgYSBmaWxlbmFtZSwgYnV0IGEgZGlyZWN0b3J5IGlzIHJlcXVpcmVkOiAl cyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICco cmVzb2x2ZWQgdG8gJXMpJyAlIChsb2NhbF9pbmNsdWRlLCBmdWxsX3BhdGgpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0KQorLSAgICAg ICAgICAgIGlmIChmdWxsX3BhdGggPT0gY29udGV4dC5jb25maWcudG9wc3JjZGlyIG9yCistICAg ICAgICAgICAgICAgICAgICBmdWxsX3BhdGggPT0gY29udGV4dC5jb25maWcudG9wb2JqZGlyKToK Ky0gICAgICAgICAgICAgICAgcmFpc2UgU2FuZGJveFZhbGlkYXRpb25FcnJvcigKKy0gICAgICAg ICAgICAgICAgICAgICdQYXRoIHNwZWNpZmllZCBpbiBMT0NBTF9JTkNMVURFUyAnCistICAgICAg ICAgICAgICAgICAgICAnKCVzKSByZXNvbHZlcyB0byB0aGUgdG9wc3JjZGlyIG9yIHRvcG9iamRp ciAoJXMpLCB3aGljaCBpcyAnCistICAgICAgICAgICAgICAgICAgICAnbm90IGFsbG93ZWQnICUg KGxvY2FsX2luY2x1ZGUsIGZ1bGxfcGF0aCksIGNvbnRleHQpCisgICAgICAgICAgICAgaW5jbHVk ZV9vYmogPSBMb2NhbEluY2x1ZGUoY29udGV4dCwgbG9jYWxfaW5jbHVkZSkKKyAgICAgICAgICAg ICBsb2NhbF9pbmNsdWRlcy5hcHBlbmQoaW5jbHVkZV9vYmoucGF0aC5mdWxsX3BhdGgpCisgICAg ICAgICAgICAgeWllbGQgaW5jbHVkZV9vYmoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9w YXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAy LWZpeC1zb25hbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmNjNTQzMTA5Mzk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMv MDAyLWZpeC1zb25hbWUucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorIkNhcnJpZWQgb3ZlciBmcm9t IG1vempzNjgiCistLS0gYS9qcy9zcmMvYnVpbGQvTWFrZWZpbGUuaW4KKysrKyBiL2pzL3NyYy9i dWlsZC9NYWtlZmlsZS5pbgorQEAgLTc4LDYgKzc4LDggQEAKKyBlbmRpZgorIGlmbmVxICgsJChT SEFSRURfTElCUkFSWSkpCisgCSQoU1lTSU5TVEFMTCkgJChTSEFSRURfTElCUkFSWSkgJChERVNU RElSKSQobGliZGlyKQorKwltdiAtZiAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJB UlkpICQoREVTVERJUikkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkuMAorKwlsbiAtcyAkKFNI QVJFRF9MSUJSQVJZKS4wICQoREVTVERJUikkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkKKyBp ZmVxICgkKE9TX0FSQ0gpLERhcndpbikKKyAJaW5zdGFsbF9uYW1lX3Rvb2wgLWlkICQoYWJzcGF0 aCAkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkpICQoREVTVERJUikkKGxpYmRpcikvJChTSEFS RURfTElCUkFSWSkKKyBlbmRpZgorLS0tIGEvanMvc3JjL2J1aWxkL21vei5idWlsZAorKysrIGIv anMvc3JjL2J1aWxkL21vei5idWlsZAorQEAgLTI1LDYgKzI1LDcgQEAKKyBpZiBDT05GSUdbJ0pT X1NIQVJFRF9MSUJSQVJZJ106CisgICAgIEdlY2tvU2hhcmVkTGlicmFyeSgnanMnLCBsaW5rYWdl PU5vbmUpCisgICAgIFNIQVJFRF9MSUJSQVJZX05BTUUgPSBDT05GSUdbJ0pTX0xJQlJBUllfTkFN RSddCisrICAgIExERkxBR1MgKz0gWyctV2wsLXNvbmFtZSxsaWJ7fS5zby4wJy5mb3JtYXQoU0hB UkVEX0xJQlJBUllfTkFNRSldCisgCisgICAgICMgRW5zdXJlIHN5bWJvbCB2ZXJzaW9ucyBvZiBz aGFyZWQgbGlicmFyeSBvbiBMaW51eCBkbyBub3QgY29uZmxpY3QKKyAgICAgIyB3aXRoIHRob3Nl IGluIGxpYnh1bC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgt d2FzbS1hcm0ucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJt LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44OTFhNzY1MjA1 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2Fz bS1hcm0ucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorIlRha2VuIGZyb20gZmlyZWZveC1lc3IiCist LS0gYS9qcy9zcmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCisrKysgYi9qcy9zcmMvd2Fz bS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCitAQCAtMjQzLDkgKzI0Myw5IEBACisgLy8gSWYgeW91 IHJ1biBpbnRvIGNvbXBpbGUgcHJvYmxlbXMgb24gYSB0aWVyLTMgcGxhdGZvcm0sIHlvdSBjYW4g ZGlzYWJsZSB0aGUKKyAvLyBlbXVsYXRpb24gaGVyZS4KKyAKKy0jaWYgZGVmaW5lZChfX2xpbnV4 X18pICYmIGRlZmluZWQoX19hcm1fXykKKy0jICBkZWZpbmUgV0FTTV9FTVVMQVRFX0FSTV9VTkFM SUdORURfRlBfQUNDRVNTCistI2VuZGlmCisrLy8gI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBk ZWZpbmVkKF9fYXJtX18pCisrLy8gIyAgZGVmaW5lIFdBU01fRU1VTEFURV9BUk1fVU5BTElHTkVE X0ZQX0FDQ0VTUworKy8vICNlbmRpZgorIAorICNpZmRlZiBXQVNNX0VNVUxBVEVfQVJNX1VOQUxJ R05FRF9GUF9BQ0NFU1MKKyAjICBpbmNsdWRlIDxzeXMvdXNlci5oPgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tb3pqczc4L3BhdGNoZXMvMDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9t b3pqczc4L3BhdGNoZXMvMDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjI5ZmEyYWMzNQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1idWlsZC5wYXRjaApAQCAtMCwwICsx LDE3IEBACisiQ2FycmllZCBvdmVyIGZyb20gbW96anM2MCIKK1Vwc3RyZWFtOiBObworUmVhc29u OiBtb3pqczY4IG1pc2NvbXBpbGVzIG9uIG11c2wgaWYgYnVpbHQgd2l0aCBIQVZFX1RIUkVBRF9U TFNfS0VZV09SRDoKK2h0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv aXNzdWVzLzI1OTgKK2RpZmYgLS1naXQgYS9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbiBiL2pzL3Ny Yy9vbGQtY29uZmlndXJlLmluCistLS0gYS9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbgorKysrIGIv anMvc3JjL29sZC1jb25maWd1cmUuaW4KK0BAIC0xMjcyLDYgKzEyNzIsOSBAQAorICAgICAqLWFu ZHJvaWQqfCotbGludXhhbmRyb2lkKikKKyAgICAgICA6CisgICAgICAgOzsKKysgICAgKi1tdXNs KikKKysgICAgICA6CisrICAgICAgOzsKKyAgICAgKikKKyAgICAgICBBQ19ERUZJTkUoSEFWRV9U SFJFQURfVExTX0tFWVdPUkQpCisgICAgICAgOzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3 OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25rZXktY2hlY2tzLWRpc2FibGUucGF0Y2ggYi9zcmNwa2dz L21vempzNzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNmVhYmFiZDFmMgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25rZXktY2hl Y2tzLWRpc2FibGUucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorU291cmNlOkZlZG9yYQorUmVhc29u OiBDaGVja3MgZmFpbGVkKFRvZG86IEZpZ3VyZSBvdXQgd2h5KQorKysrIGEvY29uZmlnL3J1bl9z cGlkZXJtb25rZXlfY2hlY2tzLnB5CisrKysgYi9jb25maWcvcnVuX3NwaWRlcm1vbmtleV9jaGVj a3MucHkKK0BAIC0xMSw1ICsxMSw1IEBACisgICAgIGZvciBzY3JpcHQgaW4gc2NyaXB0czoKKyAg ICAgICAgIHJldGNvZGUgPSBzdWJwcm9jZXNzLmNhbGwoCisgICAgICAgICAgICAgW3N5cy5leGVj dXRhYmxlLCBzY3JpcHRdLCBjd2Q9YnVpbGRjb25maWcudG9wc3JjZGlyKQorLSAgICAgICAgaWYg cmV0Y29kZSAhPSAwOgorLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihzY3JpcHQgKyAiIGZh aWxlZCIpCisrICAgICAgICAjaWYgcmV0Y29kZSAhPSAwOgorKyAgICAgICAgIyAgICByYWlzZSBF eGNlcHRpb24oc2NyaXB0ICsgIiBmYWlsZWQiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDA2LW1vempzNzgucGMtaG9ub3Itc3lzcm9vdC5wYXRjaCBiL3NyY3BrZ3MvbW96 anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcxMjE0YjhlY2NmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA2LW1vempzNzgucGMtaG9ub3Itc3lzcm9v dC5wYXRjaApAQCAtMCwwICsxLDEwIEBACisiQ2FycmllZCBvdmVyIGZyb20gbW96anM2MCIKK1Jl YXNvbjogRml4IHRoZSAnLWluY2x1ZGUnIGRpcmVjdGl2ZSwgb3RoZXJ3aXNlIGl0IHRyaWVzIHRv IHVzZSB0aGUgaG9zdCdzIGhlYWRlcgorLS0tIGEvanMvc3JjL2J1aWxkL2pzLnBjLmluCisrKysg Yi9qcy9zcmMvYnVpbGQvanMucGMuaW4KK0BAIC0xMSw0ICsxMSw0IEBACisgIyBVc2UgLWlzeXN0 ZW0gZm9yIGluY2x1ZGVzIHJhdGhlciB0aGFuIC1JLCB0byBtYXJrIHRoZW0gYXMgInN5c3RlbSBo ZWFkZXJzIgorICMgdGhhdCBkb24ndCBnZW5lcmF0ZSB3YXJuaW5nIGRpYWdub3N0aWNzLiBGb3Ig anVzdGlmaWNhdGlvbiwgc2VlCisgIyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3df YnVnLmNnaT9pZD0xNTM5MDM2CistQ2ZsYWdzOiAtaW5jbHVkZSAke2luY2x1ZGVkaXJ9L0BKU19M SUJSQVJZX05BTUVAL2pzL1JlcXVpcmVkRGVmaW5lcy5oIC1pc3lzdGVtICR7aW5jbHVkZWRpcn0v QEpTX0xJQlJBUllfTkFNRUAKKytDZmxhZ3M6IC1pbmNsdWRlICR7cGNfc3lzcm9vdGRpcn0ke2lu Y2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05BTUVAL2pzL1JlcXVpcmVkRGVmaW5lcy5oIC1pc3lzdGVt ICR7aW5jbHVkZWRpcn0vQEpTX0xJQlJBUllfTkFNRUAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96 anM3OC9wYXRjaGVzLzAwNy1maXgtbWlwcy1zZ2lkZWZzX2gucGF0Y2ggYi9zcmNwa2dzL21vempz NzgvcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dpZGVmc19oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYmIxNDAyMzNhMAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNy1maXgtbWlwcy1zZ2lkZWZzX2gucGF0Y2gKQEAgLTAs MCArMSwxMSBAQAorLS0tIGEvbWZidC9SYW5kb21OdW0uY3BwCTIwMjAtMDQtMjkgMjM6NDk6NDAu MDAwMDAwMDAwICswMjAwCisrKysgYi9tZmJ0L1JhbmRvbU51bS5jcHAJMjAyMC0wOC0wNCAxOToy OTozNi4xMjc0NzEzMDEgKzAyMDAKK0BAIC01Miw3ICs1Miw3IEBACisgIyAgZWxpZiBkZWZpbmVk KF9fczM5MF9fKQorICMgICAgZGVmaW5lIEdFVFJBTkRPTV9OUiAzNDkKKyAjICBlbGlmIGRlZmlu ZWQoX19taXBzX18pCistIyAgICBpbmNsdWRlIDxzZ2lkZWZzLmg+CisrIyAgICBpbmNsdWRlIDxh c20vc2dpZGVmcy5oPgorICMgICAgaWYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMgorICMg ICAgICBkZWZpbmUgR0VUUkFORE9NX05SIDQzNTMKKyAjICAgIGVsaWYgX01JUFNfU0lNID09IF9N SVBTX1NJTV9BQkk2NApkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvY292ZXJh Z2UtYXBpLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvY292ZXJhZ2UtYXBpLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41M2U5NDc1NjFjZgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRj aApAQCAtMCwwICsxLDEwNyBAQAorRnJvbSBlNWEyZWI5OWY2NTNhZTAzYzY3ZTUzNmRmMWQ1NWQy NjVhMGExNjA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXZhbiBXZWxzaCA8Y29u dGFjdEBldmFud2Vsc2guY29tPgorRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAxMzoxNzozNiAtMDUw MAorU3ViamVjdDogW1BBVENIXSBCdWcgMTY1NDY5NiAtIEltcGxlbWVudCBjb2RlIGNvdmVyYWdl IEpTQVBJLgorIHI9bmJwLHB0b21hdG8sandhbGRlbgorCistLS0KKyBqcy9wdWJsaWMvZXhwZXJp bWVudGFsL0NvZGVDb3ZlcmFnZS5oIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysrKworIGpz L3NyYy9qc2ZyaWVuZGFwaS5jcHAgICAgICAgICAgICAgICAgfCAgMyArKysKKyBqcy9zcmMvbW96 LmJ1aWxkICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIGpzL3NyYy9zaGVsbC9qcy5jcHAg ICAgICAgICAgICAgICAgICAgfCAxMSArKysrKystLS0tLQorIDQgZmlsZXMgY2hhbmdlZCwgMzUg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQganMvcHVi bGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaAorCitkaWZmIC0tZ2l0IGEvanMvcHVibGlj L2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaCBiL2pzL3B1YmxpYy9leHBlcmltZW50YWwvQ29k ZUNvdmVyYWdlLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAuLjA2Y2Mw YzljYQorLS0tIC9kZXYvbnVsbAorKysrIGIvanMvcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292 ZXJhZ2UuaAorQEAgLTAsMCArMSwyNSBAQAorKy8qIC0qLSBNb2RlOiBDKys7IHRhYi13aWR0aDog ODsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyBjLWJhc2ljLW9mZnNldDogMiAtKi0KKysgKiB2aW06 IHNldCB0cz04IHN0cz0yIGV0IHN3PTIgdHc9ODA6CisrICogVGhpcyBTb3VyY2UgQ29kZSBGb3Jt IGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBNb3ppbGxhIFB1YmxpYworKyAqIExpY2Vu c2UsIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBNUEwgd2FzIG5vdCBkaXN0cmlidXRlZCB3aXRo IHRoaXMKKysgKiBmaWxlLCBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3Jn L01QTC8yLjAvLiAqLworKworKyNpZm5kZWYganNfZXhwZXJpbWVudGFsX0NvZGVDb3ZlcmFnZV9o CisrI2RlZmluZSBqc19leHBlcmltZW50YWxfQ29kZUNvdmVyYWdlX2gKKysKKysjaW5jbHVkZSAi anN0eXBlcy5oIiAgICAgLy8gSlNfRlJJRU5EX0FQSQorKworK3N0cnVjdCBKU19QVUJMSUNfQVBJ IEpTQ29udGV4dDsKKysKKytuYW1lc3BhY2UganMgeworKworKy8qKgorKyAqIEVuYWJsZSB0aGUg Y29sbGVjdGlvbiBvZiBsY292IGNvZGUgY292ZXJhZ2UgbWV0cmljcy4KKysgKiBNdXN0IGJlIGNh bGxlZCBiZWZvcmUgYSBydW50aW1lIGlzIGNyZWF0ZWQgYW5kIGJlZm9yZSBhbnkgY2FsbHMgdG8K KysgKiBHZXRDb2RlQ292ZXJhZ2VTdW1tYXJ5LgorKyAqLworK2V4dGVybiBKU19GUklFTkRfQVBJ IHZvaWQgRW5hYmxlQ29kZUNvdmVyYWdlKCk7CisrCisrfSAgLy8gbmFtZXNwYWNlIGpzCisrCisr I2VuZGlmICAvLyBqc19leHBlcmltZW50YWxfQ29kZUNvdmVyYWdlX2gKK2RpZmYgLS1naXQgYS9q cy9zcmMvanNmcmllbmRhcGkuY3BwIGIvanMvc3JjL2pzZnJpZW5kYXBpLmNwcAoraW5kZXggYWY3 YTAzYmQ0Li41ZjIwYzY1NzYgMTAwNjQ0CistLS0gYS9qcy9zcmMvanNmcmllbmRhcGkuY3BwCisr KysgYi9qcy9zcmMvanNmcmllbmRhcGkuY3BwCitAQCAtMjAsNiArMjAsNyBAQAorICNpbmNsdWRl ICJnYy9QdWJsaWNJdGVyYXRvcnMuaCIKKyAjaW5jbHVkZSAiZ2MvV2Vha01hcC5oIgorICNpbmNs dWRlICJqcy9DaGFyYWN0ZXJFbmNvZGluZy5oIgorKyNpbmNsdWRlICJqcy9leHBlcmltZW50YWwv Q29kZUNvdmVyYWdlLmgiICAvLyBqczo6RW5hYmxlQ29kZUNvdmVyYWdlCisgI2luY2x1ZGUgImpz L1ByaW50Zi5oIgorICNpbmNsdWRlICJqcy9Qcm94eS5oIgorICNpbmNsdWRlICJqcy9XcmFwcGVy LmgiCitAQCAtMTQ2NSw2ICsxNDY2LDggQEAgSlNfRlJJRU5EX0FQSSB2b2lkIGpzOjpFbmFibGVB Y2Nlc3NWYWxpZGF0aW9uKEpTQ29udGV4dCogY3gsIGJvb2wgZW5hYmxlZCkgeworICAgY3gtPmVu YWJsZUFjY2Vzc1ZhbGlkYXRpb24gPSBlbmFibGVkOworIH0KKyAKKytKU19GUklFTkRfQVBJIHZv aWQganM6OkVuYWJsZUNvZGVDb3ZlcmFnZSgpIHsganM6OmNvdmVyYWdlOjpFbmFibGVMQ292KCk7 IH0KKysKKyBKU19GUklFTkRfQVBJIHZvaWQganM6OlNldFJlYWxtVmFsaWRBY2Nlc3NQdHIoSlND b250ZXh0KiBjeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSlM6OkhhbmRsZU9iamVjdCBnbG9iYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wqIGFjY2Vzc3ApIHsKK2RpZmYgLS1naXQgYS9qcy9zcmMv bW96LmJ1aWxkIGIvanMvc3JjL21vei5idWlsZAoraW5kZXggZGViMTVkODNhLi5iNGU5ZTJiMDIg MTAwNzU1CistLS0gYS9qcy9zcmMvbW96LmJ1aWxkCisrKysgYi9qcy9zcmMvbW96LmJ1aWxkCitA QCAtMjEwLDYgKzIxMCw3IEBAIEVYUE9SVFMuanMgKz0gWworIF0KKyAKKyBFWFBPUlRTLmpzLmV4 cGVyaW1lbnRhbCArPSBbCisrICAgICcuLi9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFn ZS5oJywKKyAgICAgJy4uL3B1YmxpYy9leHBlcmltZW50YWwvU291cmNlSG9vay5oJywKKyBdCisg CitkaWZmIC0tZ2l0IGEvanMvc3JjL3NoZWxsL2pzLmNwcCBiL2pzL3NyYy9zaGVsbC9qcy5jcHAK K2luZGV4IDRiM2Y1NDVlNi4uMjUyZGQyNGYwIDEwMDY0NAorLS0tIGEvanMvc3JjL3NoZWxsL2pz LmNwcAorKysrIGIvanMvc3JjL3NoZWxsL2pzLmNwcAorQEAgLTEwNCwxMCArMTA0LDExIEBACisg I2luY2x1ZGUgImpzL0NvbXBpbGVPcHRpb25zLmgiCisgI2luY2x1ZGUgImpzL0NvbnRleHRPcHRp b25zLmgiICAvLyBKUzo6Q29udGV4dE9wdGlvbnN7LFJlZn0KKyAjaW5jbHVkZSAianMvRGVidWcu aCIKKy0jaW5jbHVkZSAianMvRXF1YWxpdHkuaCIgICAgICAgICAgICAgICAgIC8vIEpTOjpTYW1l VmFsdWUKKy0jaW5jbHVkZSAianMvRXJyb3JSZXBvcnQuaCIgICAgICAgICAgICAgIC8vIEpTOjpQ cmludEVycm9yCistI2luY2x1ZGUgImpzL0V4Y2VwdGlvbi5oIiAgICAgICAgICAgICAgICAvLyBK Uzo6U3RlYWxQZW5kaW5nRXhjZXB0aW9uU3RhY2sKKy0jaW5jbHVkZSAianMvZXhwZXJpbWVudGFs L1NvdXJjZUhvb2suaCIgIC8vIGpzOjp7U2V0LEZvcmdldCx9U291cmNlSG9vaworKyNpbmNsdWRl ICJqcy9FcXVhbGl0eS5oIiAgICAgICAgICAgICAgICAgICAvLyBKUzo6U2FtZVZhbHVlCisrI2lu Y2x1ZGUgImpzL0Vycm9yUmVwb3J0LmgiICAgICAgICAgICAgICAgIC8vIEpTOjpQcmludEVycm9y CisrI2luY2x1ZGUgImpzL0V4Y2VwdGlvbi5oIiAgICAgICAgICAgICAgICAgIC8vIEpTOjpTdGVh bFBlbmRpbmdFeGNlcHRpb25TdGFjaworKyNpbmNsdWRlICJqcy9leHBlcmltZW50YWwvQ29kZUNv dmVyYWdlLmgiICAvLyBqczo6RW5hYmxlQ29kZUNvdmVyYWdlCisrI2luY2x1ZGUgImpzL2V4cGVy aW1lbnRhbC9Tb3VyY2VIb29rLmgiICAgIC8vIGpzOjp7U2V0LEZvcmdldCx9U291cmNlSG9vawor ICNpbmNsdWRlICJqcy9HQ1ZlY3Rvci5oIgorICNpbmNsdWRlICJqcy9Jbml0aWFsaXphdGlvbi5o IgorICNpbmNsdWRlICJqcy9KU09OLmgiCitAQCAtMTE0MTYsNyArMTE0MTcsNyBAQCBpbnQgbWFp bihpbnQgYXJnYywgY2hhcioqIGFyZ3YsIGNoYXIqKiBlbnZwKSB7CisgCisgICBlbmFibGVDb2Rl Q292ZXJhZ2UgPSBvcC5nZXRCb29sT3B0aW9uKCJjb2RlLWNvdmVyYWdlIik7CisgICBpZiAoZW5h YmxlQ29kZUNvdmVyYWdlKSB7CistICAgIGNvdmVyYWdlOjpFbmFibGVMQ292KCk7CisrICAgIGpz OjpFbmFibGVDb2RlQ292ZXJhZ2UoKTsKKyAgIH0KKyAKKyAjaWZkZWYgSlNfV0lUSE9VVF9OU1BS CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvdGVtcGxhdGUgYi9zcmNwa2dzL21vempzNzgv dGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVhYWYwN2Jk N2RjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3RlbXBsYXRlCkBAIC0wLDAg KzEsNzMgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ21vempzNzgnCitwa2duYW1lPW1vempzNzgK K3ZlcnNpb249NzguMS4wCityZXZpc2lvbj0xCit3cmtzcmM9ImZpcmVmb3gtJHt2ZXJzaW9ufSIK K2J1aWxkX3dya3NyYz1qcy9zcmMKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2hvc3RtYWtl ZGVwZW5kcz0icGVybCBweXRob24gcGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZjIxMyBhdXRv Y29uZi1hcmNoaXZlCisgY2FyZ28gcnVzdCBsbHZtIGNsYW5nIHdoaWNoIHB5dGhvbjMiCittYWtl ZGVwZW5kcz0iaWN1LWRldmVsIGxpYmZmaS1kZXZlbCBuc3ByLWRldmVsIHB5dGhvbi1kZXZlbCBy ZWFkbGluZS1kZXZlbAorIHpsaWItZGV2ZWwgcHl0aG9uMy1kZXZlbCBydXN0LXN0ZCIKK2RlcGVu ZHM9Im5zcHI+PTQuMTkiCitzaG9ydF9kZXNjPSJNb3ppbGxhIEphdmFTY3JpcHQgaW50ZXJwcmV0 ZXIgYW5kIGxpYnJhcnkgKDc4Lnggc2VyaWVzKSIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+IgorbGljZW5zZT0iTVBMLTIuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5t b3ppbGxhLm9yZy9qcy8iCitkaXN0ZmlsZXM9IiR7TU9aSUxMQV9TSVRFfS9maXJlZm94L3JlbGVh c2VzLyR7dmVyc2lvbn1lc3Ivc291cmNlL2ZpcmVmb3gtJHt2ZXJzaW9ufWVzci5zb3VyY2UudGFy Lnh6IgorY2hlY2tzdW09MzYwMGEzOTZkOTMxMmM1ZTlmNjM3YjI2NzkyNmNhNDc3MWQ4NGE1NmIy NmI5NjBjYzdkNzJlOTg2ODNiNjRhMgorcGF0Y2hfYXJncz0iLU5wMSIKKworQ1hYRkxBR1MrPSIg LVduby1jbGFzcy1tZW1hY2Nlc3MiCitMREZMQUdTKz0iIC1XbCwteixzdGFjay1zaXplPTEwNDg1 NzYiCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9OT19BVE9NSUM4IiBdOyB0aGVuCisJbWFrZWRlcGVu ZHMrPSIgbGliYXRvbWljLWRldmVsIgorCUxERkxBR1MrPSIgLWxhdG9taWMiCitmaQorCitkb19j b25maWd1cmUoKSB7CisJbG9jYWwgX2FyZ3MKKwkjIHVzZSBnY2MgYXMgYXNzZW1ibGVyIHRvIGF2 b2lkIGVycm9ycworCXVuc2V0IEFTCisKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJ ZXhwb3J0IEhPU1RfQ0M9Y2MKKwkJZXhwb3J0IFRBUkdFVF9DQz0iJHtDQ30iCisJCWV4cG9ydCBI T1NUX0NGTEFHUz0iLU9zIgorCQlleHBvcnQgSE9TVF9DWFhGTEFHUz0iLU9zIgorCQlfYXJncys9 IiAtLXRhcmdldD0kWEJQU19DUk9TU19UUklQTEVUIC0tZW5hYmxlLWxpbmtlcj1iZmQiCisJZmkK KworCWF1dG9jb25mLTIuMTMgb2xkLWNvbmZpZ3VyZS5pbiA+IG9sZC1jb25maWd1cmUKKworCXRv dWNoICR7d3Jrc3JjfS9qcy9zcmMvY29uZmlndXJlCisJdG91Y2ggJHt3cmtzcmN9L2pzL3NyYy9v bGQtY29uZmlndXJlCisJU0hFTEw9L2Jpbi9iYXNoIFBZVEhPTj0vdXNyL2Jpbi9weXRob24yIC4v Y29uZmlndXJlIC0tcHJlZml4PS91c3IgXAorCQktLWRpc2FibGUtamVtYWxsb2MgLS1kaXNhYmxl LW9wdGltaXplIC0tZW5hYmxlLWN0eXBlcyBcCisJCS0tZW5hYmxlLXJlYWRsaW5lIC0tZW5hYmxl LXNoYXJlZC1qcyAtLWVuYWJsZS1zeXN0ZW0tZmZpIFwKKwkJLS1lbmFibGUtdGVzdHMgLS13aXRo LWludGwtYXBpIC0td2l0aC1zeXN0ZW0taWN1IC0td2l0aC1zeXN0ZW0tbnNwciBcCisJCS0tZW5h YmxlLWhhcmRlbmluZyAtLWVuYWJsZS1yZWxlYXNlIC0td2l0aC1zeXN0ZW0temxpYiBcCisJCS0t dGFyZ2V0PSR7WEJQU19UUklQTEVUfSAtLWhvc3Q9JHtYQlBTX1RSSVBMRVR9IFwKKwkJJHtfYXJn c30KK30KKworZG9fY2hlY2soKSB7CisJZGlzdC9iaW4vanNhcGktdGVzdHMgLS1mb3JtYXQ9bm9u ZSAtLWV4Y2x1ZGUtcmFuZG9tIGJhc2ljCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwkjIFJlbW92 ZSB1bm5lZWRlZCBzdGF0aWMgbGlicmFyeQorCXJtIC1mICIke0RFU1RESVJ9Ii91c3IvbGliLyou YWpzCit9CisKK21vempzNzgtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSJuc3ByLWRldmVs ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0g ZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vanM3 OC1jb25maWcKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJ dm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempz NzgvdXBkYXRlIGIvc3JjcGtncy9tb3pqczc4L3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMTk0N2UxOTIxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L21vempzNzgvdXBkYXRlCkBAIC0wLDAgKzEgQEAKK3BrZ25hbWU9J21vempzJwoKRnJvbSA5Yzk1 MGMxZGVhMTk4YTE4NzI0NTY0NjVkMDM2OWZlZjc3ODgwNjM3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxNyBTZXAgMjAyMCAwMTo1NDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAyLzEwMl0geWVs cC14c2w6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSB8 IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC14 c2wvdGVtcGxhdGUKaW5kZXggZjc0YTdmYmE2N2MuLjI2MDc5MmI1YmY1IDEwMDY0NAotLS0gYS9z cmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUK QEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXhzbCcKIHBrZ25hbWU9 eWVscC14c2wKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQotYXJj aHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBsaWJ4c2x0IgogbWFrZWRlcGVuZHM9ImxpYnhzbHQt ZGV2ZWwiCkBAIC0xMSw0ICsxMCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9ZZWxwL1hzbCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTRmZTUxYzAyMzNiNzlhNGMyMDRjNjg0OThkNDVmMDliMzQyYzMwZWQwMmM0 ZTQxODUwNmMwZTM1ZjA5MDRlYzMKK2NoZWNrc3VtPTEzYmNjMjAxMWM0YzU1Mzg0MTc0ZDE4Yzdi MmYwMDE1YTk2YjA0ZWZkMjRmM2Y2NDZhZjJlNzE2N2U3YWIwZDcKCkZyb20gYjE1MTIzZDA1NzEz YjMyYTcwNTJkMDRjYTc4M2VjN2Q5M2I4NjZiOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2Vw IDIwMjAgMDE6NTU6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAwMy8xMDJdIHllbHAtdG9vbHM6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBsYXRlIHwgNSAr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dzL3llbHAtdG9v bHMvdGVtcGxhdGUKaW5kZXggOWU4YTY3MGU2YjAuLjM1MDYxMGUzMzk3IDEwMDY0NAotLS0gYS9z cmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBs YXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneWVscC10b29scycKIHBr Z25hbWU9eWVscC10b29scwotdmVyc2lvbj0zLjMyLjIKK3ZlcnNpb249My4zOC4wCiByZXZpc2lv bj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBpdHN0b29sIGxpYnhzbHQiCiBtYWtlZGVwZW5kcz0ieWVscC14c2wi CkBAIC0xMiw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly93 d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MTgzODU2YjVl ZDBiMGJiMmMwNWRkMTIwNGFmMDIzOTQ2ZWQ0MzY5NDNlMzVlNzg5YWZiMDI5NWU1ZTcxZThmOQor Y2hlY2tzdW09NjA3Y2U0YjNlZTg1MTdjNDJkYjkyNGEwMWE3ODY2MGEwMzMxNzU5NWM3NTgyNTcz MWVhODZhOTIwZTJiMDRiMAoKRnJvbSBiNzhlNjI1OWQ1NDk5YTYwOTUwYWFhNWU1Y2JkZGM4OTU5 Y2RmZTRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1MzowNCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDA0LzEwMl0geWVscDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNw a2dzL3llbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlIGIv c3JjcGtncy95ZWxwL3RlbXBsYXRlCmluZGV4IDYzY2E3YzIyNWM4Li5kMTQxZDgwZDQzNiAxMDA2 NDQKLS0tIGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3llbHAnCiBwa2duYW1lPXll bHAKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zY2hlbWFzLWNvbXBp bGUgLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1llbHAiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1mZDRiM2UyM2QzMWFkMmJlYmU0MmFjOGY4MDI0MmIyZDli ZWY1MTQxOGJmNjJiNTlhY2RmMjQ0MGJkOTRlZDI0CitjaGVja3N1bT1kN2NkY2UwZTZkYmE1MTNi NGRmMTA5YzFmYTdlZmZjYmYwOGJiM2Y0ZDAwZDllNzkyYzdlZGYzNDU0NGY5NjU4CiAKIHllbHAt ZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJ5ZWxwLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i CgpGcm9tIGYwZDM5OTJhMDM3N2ZmN2E0M2ViMDIxM2M2OGRhMDEzYTY3ZDI0MjEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjI5OjIxICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MDUvMTAyXSB2YWxhOiB1cGRhdGUgdG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAg ICB8ICAyICstCiBzcmNwa2dzL3ZhbGEvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9j b21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA4ZDM2MmUxODQ5Ni4uNzhhNGQ4ODhj MDEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1 Nyw3ICszMTU3LDcgQEAgbGlic3lzcHJvZi0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYnN5c3By b2YtdWktMy5zbyBzeXNwcm9mLTMuMzQuMF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pqczUyLTUyLjMu MF8xCiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIuMy4wXzEKLWxpYnZhbGEtMC40OC5zby4w IGxpYnZhbGEtMC40OC4wXzEKK2xpYnZhbGEtMC41MC5zby4wIGxpYnZhbGEtMC41MC4wXzEKIGxp YnZhbGFkb2MtMC40OC5zby4wIGxpYnZhbGFkb2MtMC40OC4wXzEKIGxpYnZhbGFjY29kZWdlbi5z byBsaWJ2YWxhLTAuNDQuMF8xCiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhvZGF2LTIuMl8xCmRpZmYg LS1naXQgYS9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUgYi9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUKaW5k ZXggZTk1ODgyNWYxOTYuLjYzMTBiZjQzY2NmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZhbGEvdGVt cGxhdGUKKysrIGIvc3JjcGtncy92YWxhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAndmFsYScKIHBrZ25hbWU9dmFsYQogIyBTaG91bGQgYmUga2VwdCBpbiBz eW5jIHdpdGggJ3ZhbGFkb2MnIChzaGFyZWQgZGlzdGZpbGVzKQotdmVyc2lvbj0wLjQ4LjkKK3Zl cnNpb249MC41MC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25m aWd1cmVfYXJncz0iLS1kaXNhYmxlLXZhbGFkb2MiCkBAIC0xMiw5ICsxMiw5IEBAIHNob3J0X2Rl c2M9IkNvbXBpbGVyIGZvciB0aGUgR09iamVjdCB0eXBlIHN5c3RlbSIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1ZhbGEiCi1j aGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjQ4L05F V1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8w LjUwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdmFsYS8ke3ZlcnNpb24lLip9L3Zh bGEtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT05Y2VhMTZkM2JiM2RhZGRiZmUwNTU2Yjk5 ZmJmYTA4MTQ2MjMwZGI3NjUxZTFlNjc0Y2QwOGI0ZGY1Y2VmZWE5CitjaGVja3N1bT04MzhhZGM1 MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5Mzc0MGRlYzE1MzAzMTJjYzFjZjEyYzM2ZDRlMGU4N2QzMDcx CiBzaGxpYl9wcm92aWRlcz0ibGlidmFsYWNjb2RlZ2VuLnNvIgogCiBwb3N0X2luc3RhbGwoKSB7 CkBAIC0yMiw4ICsyMiw4IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAkjIHNvIHRoZSBwYWNrYWdlIHRo YXQgdXNlIGl0IGZhbGwgaW50byBvdXIgd3JhcHBlci4KIAkjIGtlZXAgdGhlIGJpbmFyeSB2ZXJz aW9uZWQsIHdlIGRvbid0IGtub3cgdGhlIHBvdGVudGlhbAogCSMgZmFsbG91dCBmcm9tIHVzaW5n IHRoZSB1bnZlcnNpb25lZCBvbmUKLQl2c2VkIC1lICdzfF52YXBpZ2VuPS4qfHZhcGlnZW49dmFw aWdlbi0wLjQ4fGcnIFwKLQkJIC1pICR7REVTVERJUn0vdXNyL2xpYi9wa2djb25maWcvdmFwaWdl bi0wLjQ4LnBjCisJdnNlZCAtZSAnc3xedmFwaWdlbj0uKnx2YXBpZ2VuPXZhcGlnZW4tMC41MHxn JyBcCisJCSAtaSAke0RFU1RESVJ9L3Vzci9saWIvcGtnY29uZmlnL3ZhcGlnZW4tMC41MC5wYwog fQogCiBsaWJ2YWxhX3BhY2thZ2UoKSB7CgpGcm9tIGFkZThkYTUxYTAwZWQzMzA2YmFlOTI5YTk1 ZjZmYjljMDBkOWI1ZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjMwOjMy ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMDYvMTAyXSB2YWxhZG9jOiB1cGRhdGUgdG8gMC41MC4w CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3MvdmFsYWRvYy90 ZW1wbGF0ZSB8IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwpp bmRleCA3OGE0ZDg4OGMwMS4uYzAxY2Y4YmRiODEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMK KysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1OCw3ICszMTU4LDcgQEAgbGlic3lzcHJvZi11aS0z LnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYm1vempzLTUyLnNvIG1vempzNTItNTIuMy4wXzEKIGxp Ym1vempzLTUyLnNvLjAgbW96anM1Mi01Mi4zLjBfMQogbGlidmFsYS0wLjUwLnNvLjAgbGlidmFs YS0wLjUwLjBfMQotbGlidmFsYWRvYy0wLjQ4LnNvLjAgbGlidmFsYWRvYy0wLjQ4LjBfMQorbGli dmFsYWRvYy0wLjUwLnNvLjAgbGlidmFsYWRvYy0wLjUwLjBfMQogbGlidmFsYWNjb2RlZ2VuLnNv IGxpYnZhbGEtMC40NC4wXzEKIGxpYnBob2Rhdi0yLjAuc28uMCBwaG9kYXYtMi4yXzEKIGxpYmdm c2hhcmUuc28uMiBsaWJnZnNoYXJlLTIuMC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmFsYWRv Yy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0ZQppbmRleCAyNGNhMDI4MzY1NS4u Y2U1YTFkN2E1NGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3ZhbGFkb2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICd2YWxhZG9jJwogcGtnbmFtZT12YWxhZG9jCiAjIFNob3VsZCBiZSBrZXB0IGluIHN5bmMg d2l0aCAndmFsYScgKHNoYXJlZCBkaXN0ZmlsZXMpCi12ZXJzaW9uPTAuNDguOQordmVyc2lvbj0w LjUwLjAKIHJldmlzaW9uPTEKIHdya3NyYz0idmFsYS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQpAQCAtMTMsOSArMTMsOSBAQCBzaG9ydF9kZXNjPSJWYWxhIERvY3VtZW50 YXRpb24gVG9vbCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL1Byb2plY3RzL1ZhbGEiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS92YWxhL3Jhdy8wLjQyL05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjUwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vdmFsYS8ke3ZlcnNpb24lLip9L3ZhbGEtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT05Y2VhMTZkM2JiM2RhZGRiZmUwNTU2Yjk5ZmJmYTA4MTQ2MjMwZGI3NjUxZTFlNjc0Y2QwOGI0 ZGY1Y2VmZWE5CitjaGVja3N1bT04MzhhZGM1MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5Mzc0MGRlYzE1 MzAzMTJjYzFjZjEyYzM2ZDRlMGU4N2QzMDcxCiAKIHByZV9jb25maWd1cmUoKSB7CiAJYXV0b3Jl Y29uZiAtaWYKCkZyb20gNzRiMTllNzMwMjdlNmFjNzNjNmIzODFjNzc1NWE3OWUxOWU1MDNkYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6MzI6MTMgKzAyMDAKU3ViamVjdDog W1BBVENIIDAwNy8xMDJdIHZhbGFiaW5kOiByZWJ1aWxkIGZvciB2YWxhLTAuNTAKCi0tLQogc3Jj cGtncy92YWxhYmluZC9wYXRjaGVzL3ZhbGEtMDUwLnBhdGNoIHwgMjUgKysrKysrKysrKysrKysr KysrKysrKysrKwogc3JjcGtncy92YWxhYmluZC90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwgIDIg Ky0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaCBiL3Ny Y3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uYmQ3YzZhNzQzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3ZhbGFiaW5kL3BhdGNoZXMvdmFsYS0wNTAucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJv bSBmOTQyMzE1NDAyZTNmYzM4ZGVmMTRhOTc0ZGQ1YjIxMGU1ZDJjMzhkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitE YXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjM5OjI5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGZp eCB3aXRoIHZhbGEtMC41MAorCistLS0KKyB2YWxhYmluZHdyaXRlci52YWxhIHwgMiArLQorIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0 IHZhbGFiaW5kd3JpdGVyLnZhbGEgdmFsYWJpbmR3cml0ZXIudmFsYQoraW5kZXggMTY1Y2RmNS4u Yzc5M2M5ZiAxMDA2NDQKKy0tLSB2YWxhYmluZHdyaXRlci52YWxhCisrKysgdmFsYWJpbmR3cml0 ZXIudmFsYQorQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljIGNsYXNzIFZhbGFiaW5kV3JpdGVyIDog Q29kZVZpc2l0b3IgeworIAkJaWYgKGdsaWJtb2RlKQorIAkJCWNvbnRleHQuYWRkX2RlZmluZSAo IkdPQkpFQ1QiKTsKKyAJCS8vIHJlcXVpcmVkIHRvIGF2b2lkIHVnbHkgcnVudGltZSBlcnJvcnMK Ky0JCWNvbnRleHQucHJvZmlsZSA9IFByb2ZpbGUuR09CSkVDVDsKKysJCWNvbnRleHQuc2V0X3Rh cmdldF9wcm9maWxlKFByb2ZpbGUuR09CSkVDVCk7CisgCX0KKyAKKyAJcHVibGljIHZvaWQgcGFy c2UgKCkgeworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YWxhYmluZC90ZW1w bGF0ZSBiL3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKaW5kZXggZjZmOTMxYzMwMzMuLjJiZjBk ZjMzNmUzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZhbGFiaW5kL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvdmFsYWJpbmQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICd2YWxhYmluZCcKIHBrZ25hbWU9dmFsYWJpbmQKIHZlcnNpb249MS43LjEKLXJldmlzaW9uPTUK K3JldmlzaW9uPTYKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25m aWcgdmFsYS1kZXZlbCBnaXQiCiBtYWtlZGVwZW5kcz0idmFsYS1kZXZlbCBnbGliLWRldmVsIgoK RnJvbSBmMzQ3YzU2MTIyNDgxMDFjNDhiZGRiOWQ2YjFjZWY4ZDUwYjU5N2I4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDA4 LzEwMl0gZGV2aGVscDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2RldmhlbHAvdGVt cGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIGIvc3JjcGtncy9k ZXZoZWxwL3RlbXBsYXRlCmluZGV4IGExYzJkY2JiNzYyLi44NmIzNzc2YWRmZCAxMDA2NDQKLS0t IGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZGV2aGVscC90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2RldmhlbHAnCiBwa2duYW1l PWRldmhlbHAKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVp bGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTEsNyArMTEsNyBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRGV2 aGVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjZjhlYzkzMDJiYzRhNzll MDFhYzUzYmQ5YzhiOTVhNTk2ZjcxZjM1MzUxZjQ4YjYzMjYzMjI3ZjA5YThhM2QKK2NoZWNrc3Vt PTkxOGVmYjE3MzEyMmIyNmQ0NWZhNTFjMTk0YTBiNjU5ZTYzZmVlNzcwNWY2NzIyZGIyNTM0ZmFi YzM0NTIzNjkKIAogZGV2aGVscC1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBk ZXZlbG9wbWVudCBmaWxlcyIKCkZyb20gNWZjYTFiYmNlNWU2MWU0MThlMTFlMjRkM2I4MTY0Nzcz ZDk1YzU5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89 QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6MjI6NDMgKzA3MDAKU3ViamVjdDog W1BBVENIIDAwOS8xMDJdIGdkbDogdXBkYXRlIHRvIDMuMzQuMC4KCi0tLQogc3JjcGtncy9nZGwv dGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z2RsL3RlbXBsYXRlCmluZGV4IGQ1YjE4MGJkNDNiLi4zNWJlZTgwM2Y5NiAxMDA2NDQKLS0tIGEv c3JjcGtncy9nZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGwvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGwnCiBwa2duYW1lPWdkbAotdmVyc2lvbj0z LjI4LjAKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSIkKHZv cHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4x LW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2RldmVsb3Bl ci5nbm9tZS5vcmcvZ2RsLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTUyY2M5 OGVjYzEwNTE0ODQ2N2IzYjJiNGUwZDI3YWU0ODRiMWI2NzEwZDUzNDEzZjc3MWVkMDdlZjFiNzM3 YjYKK2NoZWNrc3VtPTg1OGIzMGYwY2RjZTRjNGNiM2U4MzY1YTdkNTRjZTU3YzM4OGJlZmYzOGVh NTgzYmU1NDQ5YmM3OGRkYThkMDIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMKIGJ1aWxkX29w dGlvbnM9ImdpciIKCkZyb20gMTg2YTUxMjU5NjIxNGU4MzM0NWFlZjJkMDNjM2Y2YjQ4NWNhNjQ2 ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MTY6NDUgKzAyMDAKU3ViamVj dDogW1BBVENIIDAxMC8xMDJdIGxpYnNvdXA6IHVwZGF0ZSB0byAyLjcyLjAKCi0tLQogc3JjcGtn cy9saWJzb3VwL3RlbXBsYXRlIHwgMjUgKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZQppbmRl eCBmN2E5ODM3M2FjOC4uMWJhOGY4YTU4MjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGlic291cC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnNvdXAnCiBwa2duYW1lPWxpYnNvdXAKLXZlcnNpb249 Mi43MC4wCit2ZXJzaW9uPTIuNzIuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1 aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVkIC1EbnRs bT1kaXNhYmxlZAotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIGVuYWJsZWQgZGlzYWJs ZWQpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIGVuYWJsZWQgZGlzYWJsZWQpIC1EdGxzX2NoZWNr PWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVkIC1EbnRsbT1kaXNhYmxl ZCAtRHN5c3Byb2Y9ZGlzYWJsZWQKKyAtRHRsc19jaGVjaz1mYWxzZSAtRGludHJvc3BlY3Rpb249 JCh2b3B0X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKQorIC1EdmFwaT0kKHZvcHRfaWYgZ2lyIGVu YWJsZWQgZGlzYWJsZWQpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVsIGdsaWItZGV2 ZWwgcGtnLWNvbmZpZyBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgJ3ZhbGEnKSIKKyAkKHZvcHRf aWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGlieG1sMi1kZXZlbCBz cWxpdGUtZGV2ZWwgbGlicHNsLWRldmVsCi0gYnJvdGxpLWRldmVsICQodm9wdF9pZiB2YWxhICd2 YWxhLWRldmVsJykiCisgYnJvdGxpLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBk ZXBlbmRzPSJnbGliLW5ldHdvcmtpbmciCiBzaG9ydF9kZXNjPSJIVFRQIGxpYnJhcnkgaW1wbGVt ZW50YXRpb24gaW4gQyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCkBAIC0xOCwxMSArMTgsMTYgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9saWJzb3VwIgogY2hhbmdl bG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvbGlic291cC9nbm9t ZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NGIwMjBmNzRh ZWZhNDM4OTE4ZDhlNTNjZmY2MmUyYjFlNTllZmUyZGU1M2UwNmIxOWE0YjA3YjFmNGQ1MzQyCitj aGVja3N1bT0xNzBjM2Y4NDQ2YjBmNjVmOGU0YjkzNjAzMzQ5MTcyYjEwODVmYjg5MTdjMTgxZDEw OTYyZjAyYmI4NWY1Mzg3CiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWlsZF9vcHRpb25z PSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRp b25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBnaW8gdGVzdHMgY2Fu J3QgcnVuIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQogCiBsaWJzb3VwLWRldmVsX3Bh Y2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGlic291cD49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKQEAgLTMxLDggKzM2LDYgQEAgbGlic291cC1kZXZlbF9wYWNrYWdlKCkgewog CQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZy9saWJzb3VwLTIuNC5wYwogCQlpZiBbICIkYnVpbGRf b3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAvU291cC0yLjQu Z2lyCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUg dXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAkJdm1vdmUgdXNyL2luY2x1ZGUvbGlic291cC0yLjQKCkZy b20gMjg0ZjhkMWZhMjI4YjFmYjhlZGRiYzc5NTNjODkzYzViZDAzNDJiMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTY6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAxMS8x MDJdIGd0a3NvdXJjZXZpZXc0OiB1cGRhdGUgdG8gNC44LjAKCi0tLQogc3JjcGtncy9ndGtzb3Vy Y2V2aWV3NC90ZW1wbGF0ZSB8IDI5ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Rrc291cmNldmll dzQvdGVtcGxhdGUKaW5kZXggNjg0ODcxNjc3M2MuLjVjZmQ1ZWNmYmQ5IDEwMDY0NAotLS0gYS9z cmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3Rrc291cmNldmll dzQvdGVtcGxhdGUKQEAgLTEsMzIgKzEsMzcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2d0a3Nv dXJjZXZpZXc0JwogcGtnbmFtZT1ndGtzb3VyY2V2aWV3NAotdmVyc2lvbj00LjIuMAotcmV2aXNp b249MgordmVyc2lvbj00LjguMAorcmV2aXNpb249MQogd3Jrc3JjPSJndGtzb3VyY2V2aWV3LSR7 dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitidWlsZF9zdHlsZT1tZXNvbgog YnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtZ2xhZGUtY2F0YWxv ZyAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotICQodm9wdF9lbmFibGUgdmFsYSkg JCh2b3B0X2VuYWJsZSBndGtfZG9jIGd0ay1kb2MpIgorY29uZmlndXJlX2FyZ3M9Ii1EZ2xhZGVf Y2F0YWxvZz10cnVlICQodm9wdF9ib29sIGdpciBnaXIpCisgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkp ICQodm9wdF9ib29sIGd0a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9Imd0ayszLWRl dmVsIGdsaWItZGV2ZWwgaXRzdG9vbCBsaWJ4c2x0IHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFs YSB2YWxhKSAkKHZvcHRfaWYgZ3RrX2RvYyBndGstZG9jKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEp ICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9ImdsYWRlMy1kZXZlbCBn dGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwKLSAkKHZvcHRfaWYgdmFsYSB2 YWxhKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogc2hvcnRfZGVzYz0iVGV4dCB3aWRnZXQgdGhh dCBleHRlbmRzIEdUSysgR3RrVGV4dFZpZXcgd2lkZ2V0IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9HdGtTb3VyY2VWaWV3Igog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2d0a3NvdXJjZXZpZXcvJHt2ZXJzaW9uJS4qfS9ndGtz b3VyY2V2aWV3LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzQzMWViMjM0ZGM4M2M3ODE5 ZTU4Zjc3ZGQyYWY5NzMyNTJjNzc1MGRhMWM5ZDEyNWRkYzk0MjY4Zjk0ZjY3NQorY2hlY2tzdW09 MDBhMTkxMjE1MDBjZWRmMWJhZTk3ZjM1YWY4NjVkODM5ODQxZmQ3ODVkOWZhY2YxODg0OThlMTM5 NzViNGUxYQogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZh bGEgZ3RrX2RvYyIKK2J1aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgogZGVzY19vcHRpb25fZ3Rr X2RvYz0iQnVpbGQgQVBJIGRvY3MgdmlhIGd0ay1kb2MiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciB2YWxhIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGlmIFsgLXogIiRDUk9T U19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBndGtfZG9jIgogZmkK IAorIyBOZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CisKIGd0a3NvdXJjZXZpZXc0LWRldmVs X3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4bWwy LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNj Kz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCkBAIC0zNiwxMSArNDEsOSBAQCBndGtzb3VyY2V2aWV3 NC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSB1c3Iv c2hhcmUvZ2xhZGUKIAkJdm1vdmUgdXNyL3NoYXJlL2d0ay1kb2MKLQkJaWYgWyAiJGJ1aWxkX29w dGlvbl92YWxhIiBdOyB0aGVuCi0JCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQotCQlmaQogCQlpZiBb ICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAK KwkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQogfQoKRnJvbSA1MjcwMmRkOWM2N2Ey ZmExODY5MDJhOTQyZmJlZGFlNGRhOWJiOTZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcg MjAyMCAwMDoxMjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEyLzEwMl0gdGVwbDogdXBkYXRl IHRvIDUuMC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBzcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2ggfCA0NSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBzcmNwa2dzL3RlcGwvdGVtcGxhdGUgICAgICAgICAgICAgfCAxMCAr KystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNoCgpk aWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYzAxY2Y4YmRi ODEuLjMyMmJlZjQyMWVjIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9z aGxpYnMKQEAgLTM1NTQsNyArMzU1NCw3IEBAIGxpYnd4X2d0azN1X21lZGlhLTMuMC5zby4wIHd4 V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X3JpYmJvbi0zLjAuc28uMCB3eFdpZGdl dHMtZ3RrMy0zLjAuNF8xCiBsaWJ3eF9ndGszdV9nbC0zLjAuc28uMCB3eFdpZGdldHMtZ3RrMy0z LjAuNF8xCiBsaWJ3eF9ndGszdV9zdGMtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQot bGlidGVwbC00LnNvLjAgdGVwbC00LjIuMF8xCitsaWJ0ZXBsLTUuc28uMCB0ZXBsLTQuMi4wXzEK IGxpYm5vbWFjc0NvcmUuc28uMyBub21hY3MtMy4xMC4yXzQKIGxpYmF1ZGl0LnNvLjEgbGliYXVk aXQtMi44LjRfMQogbGliYXVwYXJzZS5zby4wIGxpYmF1cGFyc2UtMi44LjRfMQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNoIGIvc3JjcGtncy90ZXBsL3BhdGNo ZXMvbm8tZ2lyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5l MzQwMDI3YjdmMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdp ci5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitGcm9tIDE3ZTU3ZWQxNTY0NTBmZTU5MDAxY2IwYTE0 ZjhkODdjNDBkNmJmNzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MDk6 MTUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWxsb3cgZGlzYWJsaW5nIGdpcgorCistLS0KKyBt ZXNvbl9vcHRpb25zLnR4dCB8IDUgKysrKysKKyB0ZXBsL21lc29uLmJ1aWxkICB8IDQgKysrKwor IDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgbWVzb25fb3B0 aW9ucy50eHQgbWVzb25fb3B0aW9ucy50eHQKK2luZGV4IGNhZDk3ZGQuLjVlOTkwODQgMTAwNjQ0 CistLS0gbWVzb25fb3B0aW9ucy50eHQKKysrKyBtZXNvbl9vcHRpb25zLnR4dAorQEAgLTMsMyAr Myw4IEBAIG9wdGlvbigKKyAgIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IGZhbHNlLAorICAgZGVz Y3JpcHRpb246ICdCdWlsZCBBUEkgcmVmZXJlbmNlIChyZXF1aXJlcyBndGstZG9jKScKKyApCisr b3B0aW9uKAorKyAgJ2dpcicsCisrICB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVlLAorKyAg ZGVzY3JpcHRpb246ICdCdWlsZCBnb2JqZWN0LWludHJvc3BlY3Rpb24nCisrKQorZGlmZiAtLWdp dCB0ZXBsL21lc29uLmJ1aWxkIHRlcGwvbWVzb24uYnVpbGQKK2luZGV4IDIyNmQ5MTMuLmIzNWRk M2EgMTAwNjQ0CistLS0gdGVwbC9tZXNvbi5idWlsZAorKysrIHRlcGwvbWVzb24uYnVpbGQKK0BA IC0xNjQsNiArMTY0LDggQEAgUEtHX0NPTkZJRy5nZW5lcmF0ZSh0ZXBsX2xpYiwKKyAgIGxpYnJh cmllczogVEVQTF9QVUJMSUNfREVQUywKKyApCisgCisraWYgZ2V0X29wdGlvbignZ2lyJykKKysK KyBHTk9NRS5nZW5lcmF0ZV9naXIoCisgICB0ZXBsX2xpYiwKKyAgIGV4cG9ydF9wYWNrYWdlczog J3RlcGwtQDBAJy5mb3JtYXQoVEVQTF9BUElfVkVSU0lPTiksCitAQCAtMTgyLDMgKzE4NCw1IEBA IEdOT01FLmdlbmVyYXRlX2dpcigKKyAgICMgU3VwcG9ydCBmb3IgZGVwcyBiZWluZyBidWlsdCBh cyBzdWJwcm9qZWN0czoKKyAgIGRlcGVuZGVuY2llczogVEVQTF9ERVBTLAorICkKKysKKytlbmRp ZgorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy90ZXBsL3RlbXBsYXRlIGIvc3Jj cGtncy90ZXBsL3RlbXBsYXRlCmluZGV4IGY0ZDM3MWQ2MDNkLi43OThkNWNkMDA3NyAxMDA2NDQK LS0tIGEvc3JjcGtncy90ZXBsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdGVwbC90ZW1wbGF0ZQpA QCAtMSwxMCArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndGVwbCcKIHBrZ25hbWU9dGVw bAotdmVyc2lvbj00LjQuMAordmVyc2lvbj01LjAuMAogcmV2aXNpb249MQotYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQotYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iJCh2b3B0 X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikiCitidWlsZF9zdHlsZT1tZXNvbgorYnVpbGRfaGVs cGVyPWdpcgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBnaXIpIgogaG9zdG1ha2Vk ZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iYW10ay1kZXZlbCBs aWJnbGliLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0ayszLWRldmVsCiAgbGlieG1sMi1k ZXZlbCB1Y2hhcmRldC1kZXZlbCIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9UZXBsIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTZmNjY3M2E4YTI3ZThmMjgwNzI1ZGI4ZmJhY2Vj NzliMjA2NzZhZTA1NTg3NTUyMzlkMTVhOTgwOGZhYTI1NgorY2hlY2tzdW09YzZiZDI5MDRmNTMw NDhiN2QwMTQ5MjM2NjEwYjM4ZjUwMmYyNjM0ZDM5NWQ4YjliM2M2NTk1NTNmNDA0NWE3NAogCiBi dWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gYWZm ZWQ0Y2QyZGQ4ZWYyMmZiYjRhMTBmYzk2MGExMjlmMmMxMjFmMSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1D Mz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgU2Vw IDIwMjAgMjA6Mjc6MjIgKzA3MDAKU3ViamVjdDogW1BBVENIIDAxMy8xMDJdIGdsYWRlMzogdXBk YXRlIHRvIDMuMzguMC4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvYXV0b2dlbi1hdXRvY29u Zi5wYXRjaCB8IDk4IC0tLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wYXRjaGVzL2NvbmZpZ3VyZS1z aGVsbC1xdW90ZS5wYXRjaCAgICAgICB8IDExIC0tLQogc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9j cm9zcy5wYXRjaCAgICAgICAgICAgIHwgNDAgLS0tLS0tLS0KIHNyY3BrZ3MvZ2xhZGUzL3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgICB8IDE3ICsrLS0KIDUgZmlsZXMgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCAxNjEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hlbGwtcXVvdGUucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Nyb3NzLnBhdGNoCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMzIyYmVmNDIxZWMu LmRiMTY0NmYxOGUwIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp YnMKQEAgLTc3MCw3ICs3NzAsNyBAQCBsaWJvcmMtdGVzdC0wLjQuc28uMCBvcmMtMC40LjExXzEK IGxpYmdtaW1lLTIuNi5zby4wIGdtaW1lLTIuNi40XzEKIGxpYnRvdGVtLXBscGFyc2VyLnNvLjE4 IHRvdGVtLXBsLXBhcnNlci0zLjI2LjFfMQogbGlidG90ZW0tcGxwYXJzZXItbWluaS5zby4xOCBs aWJ0b3RlbS1wbHBhcnNlci1taW5pLTMuMjYuMV8xCi1saWJnbGFkZXVpLTIuc28uNiBsaWJnbGFk ZXVpMy0zLjEwLjBfMQorbGliZ2xhZGV1aS0yLnNvLjEzIGxpYmdsYWRldWkzLTMuMzguMF8xCiBs aWJ0ZGIuc28uMSBsaWJ0ZGItMS4yLjJfMQogbGliZ3NzZHAtMS4yLnNvLjAgZ3NzZHAtMS4yLjBf MQogbGliZ3VwbnAtMS4yLnNvLjAgZ3VwbnAtMS4yLjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9n bGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoIGIvc3JjcGtncy9nbGFkZTMvcGF0 Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBmMWRmYzM0MmI0Ny4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9h dXRvZ2VuLWF1dG9jb25mLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotRnJv bSA4MzQxY2Y3OGJjNjg3OWNiMmQ1MGUxMmI1ODg2ZWU3ZGNhM2QwOWYyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0phdmllcj0yMEphcmQ9QzM9QjNuPz0gPGpqYXJk b25AZ25vbWUub3JnPgotRGF0ZTogU2F0LCA5IEZlYiAyMDE5IDEzOjE1OjE3ICswMDAwCi1TdWJq ZWN0OiBbUEFUQ0hdIFVzZSBhdXRvcmVjb25mIGluc3RlYWQgZGVwcmVjYXRlZCBnbm9tZS1jb21t b24KLQotU2VlIGh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVDb21tb24vTWln cmF0aW9uCi0tLS0KLSBhdXRvZ2VuLnNoICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLQotIGNvbmZpZ3VyZS5hYyB8ICA2ICsrLS0tLQotIDIgZmls ZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYXV0b2dlbi5zaCBhdXRvZ2VuLnNoCi1pbmRleCAxZDhjZDg0MC4uZmQzNTY2M2IgMTAwNzU1 Ci0tLS0gYXV0b2dlbi5zaAotKysrIGF1dG9nZW4uc2gKLUBAIC0xLDIyICsxLDQxIEBACi0gIyEv YmluL3NoCi0gIyBSdW4gdGhpcyB0byBnZW5lcmF0ZSBhbGwgdGhlIGluaXRpYWwgbWFrZWZpbGVz LCBldGMuCi0rdGVzdCAtbiAiJHNyY2RpciIgfHwgc3JjZGlyPSQoZGlybmFtZSAiJDAiKQotK3Rl c3QgLW4gIiRzcmNkaXIiIHx8IHNyY2Rpcj0uCi0gCi0tc3JjZGlyPWBkaXJuYW1lICQwYAotLXRl c3QgLXogIiRzcmNkaXIiICYmIHNyY2Rpcj0uCi0rb2xkZGlyPSQocHdkKQotIAotLVBLR19OQU1F PSJnbGFkZSIKLStjZCAkc3JjZGlyCi0gCi0tKHRlc3QgLWYgJHNyY2Rpci9jb25maWd1cmUuYWMg XAotLSAgJiYgdGVzdCAtZiAkc3JjZGlyL2F1dG9nZW4uc2gpIHx8IHsKLS0gICAgZWNobyAtbiAi KipFcnJvcioqOiBEaXJlY3RvcnkgIlxgJHNyY2RpclwnIiBkb2VzIG5vdCBsb29rIGxpa2UgdGhl IgotLSAgICBlY2hvICIgdG9wLWxldmVsICRQS0dfTkFNRSBkaXJlY3RvcnkiCi0tICAgIGV4aXQg MQotKyh0ZXN0IC1mIGNvbmZpZ3VyZS5hYykgfHwgewotKyAgICAgICAgZWNobyAiKioqIEVSUk9S OiBEaXJlY3RvcnkgJyRzcmNkaXInIGRvZXMgbm90IGxvb2sgbGlrZSB0aGUgdG9wLWxldmVsIHBy b2plY3QgZGlyZWN0b3J5ICoqKiIKLSsgICAgICAgIGV4aXQgMQotIH0KLSAKLS13aGljaCBnbm9t ZS1hdXRvZ2VuLnNoIHx8IHsKLS0gICAgZWNobyAiWW91IG5lZWQgdG8gaW5zdGFsbCBnbm9tZS1j b21tb24gbW9kdWxlIGFuZCBtYWtlIgotLSAgICBlY2hvICJzdXJlIHRoZSBnbm9tZS1hdXRvZ2Vu LnNoIHNjcmlwdCBpcyBpbiB5b3VyIFwkUEFUSC4iCi0tICAgIGV4aXQgMQotLX0KLSsjIHNoZWxs Y2hlY2sgZGlzYWJsZT1TQzIwMTYKLStQS0dfTkFNRT0kKGF1dG9jb25mIC0tdHJhY2UgJ0FDX0lO SVQ6JDEnIGNvbmZpZ3VyZS5hYykKLSsKLStpZiBbICIkIyIgPSAwIC1hICJ4JE5PQ09ORklHVVJF IiA9ICJ4IiBdOyB0aGVuCi0rICAgICAgICBlY2hvICIqKiogV0FSTklORzogSSBhbSBnb2luZyB0 byBydW4gJ2NvbmZpZ3VyZScgd2l0aCBubyBhcmd1bWVudHMuIiA+JjIKLSsgICAgICAgIGVjaG8g IioqKiBJZiB5b3Ugd2lzaCB0byBwYXNzIGFueSB0byBpdCwgcGxlYXNlIHNwZWNpZnkgdGhlbSBv biB0aGUiID4mMgotKyAgICAgICAgZWNobyAiKioqICckMCcgY29tbWFuZCBsaW5lLiIgPiYyCi0r ICAgICAgICBlY2hvICIiID4mMgotK2ZpCi0rCi0rYWNsb2NhbCAtLWluc3RhbGwgfHwgZXhpdCAx Ci0rZ3RrZG9jaXplIC0tY29weSB8fCBleGl0IDEKLStpbnRsdG9vbGl6ZSAtLWZvcmNlIC0tY29w eSAtLWF1dG9tYWtlIHx8IGV4aXQgMQotK2F1dG9yZWNvbmYgLS12ZXJib3NlIC0tZm9yY2UgLS1p bnN0YWxsIHx8IGV4aXQgMQotKwotK2NkICIkb2xkZGlyIgotK2lmIFsgIiROT0NPTkZJR1VSRSIg PSAiIiBdOyB0aGVuCi0rICAgICAgICAkc3JjZGlyL2NvbmZpZ3VyZSAiJEAiIHx8IGV4aXQgMQot IAotLS4gZ25vbWUtYXV0b2dlbi5zaAotKyAgICAgICAgaWYgWyAiJDEiID0gIi0taGVscCIgXTsg dGhlbgotKyAgICAgICAgICAgICAgICBleGl0IDAKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAg ICAgICAgZWNobyAiTm93IHR5cGUgJ21ha2UnIHRvIGNvbXBpbGUgJFBLR19OQU1FIiB8fCBleGl0 IDEKLSsgICAgICAgIGZpCi0rZWxzZQotKyAgICAgICAgZWNobyAiU2tpcHBpbmcgY29uZmlndXJl IHByb2Nlc3MuIgotK2ZpCi1kaWZmIC0tZ2l0IGNvbmZpZ3VyZS5hYyBjb25maWd1cmUuYWMKLWlu ZGV4IGEzNTI0NjU2Li42MzhlNzgwMSAxMDA2NDQKLS0tLSBjb25maWd1cmUuYWMKLSsrKyBjb25m aWd1cmUuYWMKLUBAIC0zMyw2ICszMyw4IEBAIEFNX01BSU5UQUlORVJfTU9ERShbZW5hYmxlXSkK LSAjIHRvIG1ha2UKLSBBTV9TSUxFTlRfUlVMRVMoW3llc10pCi0gCi0rQVhfQ0hFQ0tfRU5BQkxF X0RFQlVHKFt5ZXNdLFtHTk9NRV9FTkFCTEVfREVCVUddKQotKwotICMgQ2hlY2tzIGZvciBwcm9n cmFtcwotIEFDX1BST0dfQ0MKLSBBQ19QUk9HX0lOU1RBTEwKLUBAIC03OSwxMCArODEsNiBAQCBB TV9DT05ESVRJT05BTChHTEFERV9VTlNUQUJMRSwgdGVzdCAieCRHTEFERV9VTlNUQUJMRSIgPSAi eHllcyIpCi0gCi0gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0gCi0tR05PTUVfREVCVUdfQ0hFQ0sKLS1HTk9NRV9DT01Q SUxFX1dBUk5JTkdTKFttYXhpbXVtXSkKLS1HTk9NRV9NQUlOVEFJTkVSX01PREVfREVGSU5FUwot LQotICMgRm9yIHRoZSBwbHVnaW5zLCB3ZSBkb24ndCB1c2UgdGhlIHdhcm5pbmcgZmxhZ3MgZGVm aW5lZCBieSBHTk9NRV9DT01QSUxFX1dBUk5JTkdTLgotICMgVGhlc2UgZmxhZ3MgaW5jbHVkZSAt V21pc3NpbmctcHJvdG90eXBlcywgd2hpY2ggd2UgcHJlZmVyIG5vdCB0byB1c2UuCi0gaWYgdGVz dCAieCRHQ0MiID0gInh5ZXMiOyB0aGVuCi0tLSAKLTIuMjQuMQotCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dsYWRlMy9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaCBiL3NyY3BrZ3Mv Z2xhZGUzL3BhdGNoZXMvY29uZmlndXJlLXNoZWxsLXF1b3RlLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBiM2M2MGNjZjM2NS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9n bGFkZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hlbGwtcXVvdGUucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxMSArMCwwIEBACi0tLS0gY29uZmlndXJlLmFjCi0rKysgY29uZmlndXJlLmFjCi1AQCAt Mjc5LDcgKzI3OSw3IEBACi0gZG5sIENoZWNrIGZvciBHREsgUXVhcnR6IGFuZCBNYWNPU1ggaW50 ZWdyYXRpb24gcGFja2FnZSAKLSBkbmwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIF9nZGtfdGd0PWAkUEtHX0NPTkZJRyAt LXZhcmlhYmxlPXRhcmdldHMgZ2RrLTMuMGAKLS1BTV9DT05ESVRJT05BTChbR0RLX1RBUkdFVF9R VUFSVFpdLCBbdGVzdCB4JF9nZGtfdGd0ID0geHF1YXJ0el0pCi0rQU1fQ09ORElUSU9OQUwoW0dE S19UQVJHRVRfUVVBUlRaXSwgW3Rlc3QgIngkX2dka190Z3QiID0geHF1YXJ0el0pCi0gaWYgdGVz dCAieCRfZ2RrX3RndCIgPSB4cXVhcnR6OyB0aGVuIAotICAgIFBLR19DSEVDS19NT0RVTEVTKEdU S19NQUMsIGd0ay1tYWMtaW50ZWdyYXRpb24tZ3RrMykKLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z2xhZGUzL3BhdGNoZXMvY3Jvc3MucGF0Y2ggYi9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Nyb3Nz LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2IxZDdlODQ2ZS4uMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jcm9zcy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDQwICswLDAgQEAKLS0tLSBtNC9weXRob24ubTQKLSsrKyBtNC9weXRob24ubTQK LUBAIC00MywxNyArNDMsOSBAQAotIFtBQ19SRVFVSVJFKFtBTV9QQVRIX1BZVEhPTl0pCi0gQUNf TVNHX0NIRUNLSU5HKGZvciBoZWFkZXJzIHJlcXVpcmVkIHRvIGNvbXBpbGUgcHl0aG9uIGV4dGVu c2lvbnMpCi0gZG5sIGRlZHVjZSBQWVRIT05fSU5DTFVERVMKLS1hbV9weXRob25fcHJpbnRfaW5j bHVkZXM9IlwKLS1mcm9tIGRpc3R1dGlscyBpbXBvcnQgc3lzY29uZmlnIGFzIHNjCi0taW5jbGRp cnMgPSBbW11dCi0tCi0tZm9yIGQgaW4gc2MuZ2V0X2NvbmZpZ192YXIoJ0lOQ0xESVJTVE9NQUtF Jykuc3BsaXQoKToKLS0gICAgaW5jbGRpcnMuYXBwZW5kKCctSScgKyBkKQotLQotLXByaW50KCcg Jy5qb2luKGluY2xkaXJzKSkKLS0iCi0reGJwc19zeXNyb290PWAkQ0MgLS1wcmludC1zeXNyb290 YAotIGlmIHRlc3QgIngkUFlUSE9OX0lOQ0xVREVTIiA9PSB4OyB0aGVuCi0tICBQWVRIT05fSU5D TFVERVM9YCRQWVRIT04gLWMgIiRhbV9weXRob25fcHJpbnRfaW5jbHVkZXMiYAotKyAgUFlUSE9O X0lOQ0xVREVTPWAiJHhicHNfc3lzcm9vdC8kUFlUSE9OLWNvbmZpZyIgLS1pbmNsdWRlc2AKLSBm aQotIEFDX1NVQlNUKFBZVEhPTl9JTkNMVURFUykKLSBkbmwgY2hlY2sgaWYgdGhlIGhlYWRlcnMg ZXhpc3Q6Ci1AQCAtNzQsMTYgKzY2LDExIEBACi0gW0FDX1JFUVVJUkUoW0FNX0NIRUNLX1BZVEhP Tl9IRUFERVJTXSkKLSBBQ19NU0dfQ0hFQ0tJTkcoZm9yIGxpYnJhcmllcyByZXF1aXJlZCB0byBl bWJlZCBweXRob24pCi0gZG5sIGRlZHVjZSBQWVRIT05fTElCUwotLWFtX3B5dGhvbl9wcmludF9s aWJzPSJcCi0tZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZyBhcyBzYwotLWxpYnMgPSAn LUwnICsgc2MuZ2V0X2NvbmZpZ192YXIoJ0xJQkRJUicpLnN0cmlwKCkKLS1saWJzICs9ICcgJyAr IHNjLmdldF9jb25maWdfdmFyKCdCTERMSUJSQVJZJykKLS1wcmludChsaWJzKSIKLSBhbV9weXRo b25fcHJpbnRfbGliX2xvYz0iXAotIGZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25maWcgYXMg c2MKLSBwcmludChzYy5nZXRfY29uZmlnX3ZhcignTElCRElSJykpIgotIGlmIHRlc3QgIngkUFlU SE9OX0xJQlMiID09IHg7IHRoZW4KLS0JUFlUSE9OX0xJQlM9YCRQWVRIT04gLWMgIiRhbV9weXRo b25fcHJpbnRfbGlicyJgCi0rCVBZVEhPTl9MSUJTPWAiJHhicHNfc3lzcm9vdC8kUFlUSE9OLWNv bmZpZyIgLS1sZGZsYWdzIC0tZW1iZWRgCi0gZmkKLSBpZiB0ZXN0ICJ4JFBZVEhPTl9MSUJfTE9D IiA9PSB4OyB0aGVuCi0gCVBZVEhPTl9MSUJfTE9DPWAkUFlUSE9OIC1jICIkYW1fcHl0aG9uX3By aW50X2xpYl9sb2MiYApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGFkZTMvdGVtcGxhdGUgYi9zcmNw a2dzL2dsYWRlMy90ZW1wbGF0ZQppbmRleCA5MTBjMTM4ZGY2YS4uZDNkOGUwZDVkY2YgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ2xhZGUzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xhZGUzL3RlbXBs YXRlCkBAIC0xLDMyICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbGFkZTMnCiBwa2du YW1lPWdsYWRlMwotdmVyc2lvbj0zLjIyLjIKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiB3 cmtzcmM9ImdsYWRlLSR7dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitidWls ZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLS1kaXNh YmxlLXN0YXRpYyAtLWVuYWJsZS1kZWJ1Zz1pbmZvIFBZVEhPTj0vdXNyL2Jpbi9weXRob24zCi0g LS1lbmFibGUtZ2xhZGV1aSAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIKK2NvbmZp Z3VyZV9hcmdzPSItRGd0a19kb2M9dHJ1ZSAtRG1hbj10cnVlICQodm9wdF9ib29sIGdpciBpbnRy b3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnbm9tZS1kb2MtdXRpbHMg aW50bHRvb2wgaXRzdG9vbCBwa2ctY29uZmlnCi0gYXV0b21ha2UgYXV0b2NvbmYtYXJjaGl2ZSBs aWJ0b29sIHllbHAtdG9vbHMgZ2V0dGV4dC1kZXZlbCBndGstZG9jIgotbWFrZWRlcGVuZHM9Imd0 ayszLWRldmVsIHB5dGhvbjMtZ29iamVjdC1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgorIGdqcy1k ZXZlbCB5ZWxwLXRvb2xzIGdldHRleHQtZGV2ZWwgZ3RrLWRvYyIKK21ha2VkZXBlbmRzPSJndGsr My1kZXZlbCBweXRob24zLWdvYmplY3QtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBnanMtZGV2ZWwi CiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIgogc2hvcnRf ZGVzYz0iVXNlciBJbnRlcmZhY2UgRGVzaWduZXIgZm9yIEdUSyszIgogbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly9nbGFkZS5nbm9tZS5vcmcvIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dsYWRlLyR7dmVyc2lvbiUuKn0vZ2xhZGUtJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1lZGVmYTZlYjI0YjRkMTViZDUyNTg5MTIxZGMxMDliYzA4 YzI4NjE1N2M0MTI4OGRlYjc0ZGQ5Y2MzZjI2YTIxCitjaGVja3N1bT00YTkxNGM1YzBiMTljMmU1 MmZkNGFkMTUwNzdkNDA2ZGJmZDZhZDAyNDVlMjM5ZDczOTBiZjg3ZjI3ZDkxMDNjCiBsaWIzMmRp c2FibGVkPXllcwogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2ly IgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKLXByZV9jb25maWd1cmUoKSB7Ci0JTk9D T05GSUdVUkU9MSAuL2F1dG9nZW4uc2gKLX0KLQogZG9fY2hlY2soKSB7CiAJIyBSZXF1aXJlIHJ1 bm5pbmcgeHNlcnZlcgogCToKCkZyb20gM2Q2NWY3ODlhYjk3MzE5ODVkMzJhYzQxN2I0NjNkN2Fl NTYyOTQ4OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89 QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDU6Mzg6NTUgKzA3MDAKU3ViamVjdDog W1BBVENIIDAxNC8xMDJdIGxpYmhhbmR5OiByZWJ1aWxkIGZvciBnbGFkZTMtMy4zOC4wLCBtb3Zl ZCB0byBHTk9NRQoKLS0tCiBzcmNwa2dzL2xpYmhhbmR5L3RlbXBsYXRlIHwgMTQgKysrKysrKysr Ky0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmhhbmR5 L3RlbXBsYXRlCmluZGV4IDM4NjcyZjFmYjZlLi5jMTljMzg5N2VmYSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9saWJoYW5keS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmhhbmR5L3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliaGFuZHknCiBwa2duYW1lPWxp YmhhbmR5CiB2ZXJzaW9uPTAuMC4xMwotcmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jrc3JjPSJs aWJoYW5keS12JHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Imdp ciIKQEAgLTE0LDE0ICsxNCwyMCBAQCBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZ2xpYi1k ZXZlbCAkKHZvcHRfaWYgZ2xhZGUgZ2xhZGUzLWRldmVsKSIKIHNob3J0X2Rlc2M9IkxpYnJhcnkg ZnVsbCBvZiBHVEsrIHdpZGdldHMgZm9yIG1vYmlsZSBwaG9uZXMiCiBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIi Ci1ob21lcGFnZT0iaHR0cHM6Ly9zb3VyY2UucHVyaS5zbS9MaWJyZW01L2xpYmhhbmR5IgotZGlz dGZpbGVzPSJodHRwczovL3NvdXJjZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHkvLS9hcmNoaXZl L3Yke3ZlcnNpb259L2xpYmhhbmR5LXYke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTEzOGJl Yzk0ZTY2ZDE1YTdhMTkzNTBiNjU4NDVkNDUyOWJjZDk2OWVhOTEzYWIzZWI0MzhmNTZmZTQ3ZDVk MzcKK2hvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliaGFuZHkiCitk aXN0ZmlsZXM9IiRob21lcGFnZS8tL2FyY2hpdmUvdiR7dmVyc2lvbn0vbGliaGFuZHktdiR7dmVy c2lvbn0udGFyLmd6IgorY2hlY2tzdW09NjQ1MzU1YTAwOWYyM2YyNTRlYWVjNzc1MmI5NDg5YzNj MmY1ODMyMzk3ZmNlYzc1NDMzYTdlMDBlZmJmZTUyZgogCiBidWlsZF9vcHRpb25zPSJnaXIgdmFs YSBnbGFkZSIKIGRlc2Nfb3B0aW9uX2dsYWRlPSJHZW5lcmF0ZSBnbGFkZSBtb2R1bGVzIGFuZCBj YXRhbG9nIGZpbGVzIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSBnbGFkZSIKIAor IyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliaGFuZHkvLS9tZXJnZV9yZXF1ZXN0 cy81NTkKK0NGTEFHUz0iLURHUENfT0JKRUNUX0RFTElNSVRFUj1HTEFERV9QUk9QRVJUWV9ERUZf T0JKRUNUX0RFTElNSVRFUiIKK0NGTEFHUys9IiAtRGdsYWRlX3dpZGdldF9hY3Rpb25fZ2V0X2Ns YXNzPWdsYWRlX3dpZGdldF9hY3Rpb25fZ2V0X2RlZiIKKyMgaHR0cHM6Ly9naXRsYWIuZ25vbWUu b3JnL0dOT01FL2dsYWRlLy0vY29tbWl0L2JiNjI2ZGQKK0NGTEFHUys9IiAtREdXQV9HRVRfQ0xB U1M9R0xBREVfV0lER0VUX0FEQVBUT1JfR0VUX0FEQVBUT1JfQ0xBU1MiCisKIGxpYmhhbmR5LWRl dmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IGd0ayszLWRldmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIK CkZyb20gY2JiNjk2YzIzYWEwNDkyZjcwZDE2YWUyYzIyNDBlNzZmODc2MjM2YiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9 QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1v biwgMTQgU2VwIDIwMjAgMjA6MzQ6NDYgKzA3MDAKU3ViamVjdDogW1BBVENIIDAxNS8xMDJdIGxp YmhhbmR5MTogdXBkYXRlIHRvIDEuMC4wCgotLS0KIHNyY3BrZ3MvbGliaGFuZHkxL3RlbXBsYXRl IHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliaGFuZHkxL3RlbXBsYXRlIGIvc3JjcGtncy9s aWJoYW5keTEvdGVtcGxhdGUKaW5kZXggMTkxZTY5OGIwZDYuLjU0N2FmY2NhYTExIDEwMDY0NAot LS0gYS9zcmNwa2dzL2xpYmhhbmR5MS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmhhbmR5MS90 ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYmhhbmR5MScK IHBrZ25hbWU9bGliaGFuZHkxCi12ZXJzaW9uPTAuOTAuMAordmVyc2lvbj0xLjAuMAogcmV2aXNp b249MQogd3Jrc3JjPSJsaWJoYW5keS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9bWVzb24KQEAg LTE2LDEyICsxNiwxNSBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9zb3Vy Y2UucHVyaS5zbS9MaWJyZW01L2xpYmhhbmR5IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2xp YmhhbmR5LyR7dmVyc2lvbiUuKn0vbGliaGFuZHktJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT02YWIwODY5YTNhYTQ4MzI5OGVhMjBlYzg5ZDRjMTRjMzhiYTRkZTQxNmIzMzE4MWQyMWUxNWE2 MDM5ZGY1OTg1CitjaGVja3N1bT1hOTM5ODU4MmY0N2I3ZDcyOTIwNWQ2ZWFjMGMwNjhmZWYzNWFh ZjI0OWZkZDU3ZWVhMzcyNGY4NTE4ZDI2Njk5CiAKIGJ1aWxkX29wdGlvbnM9ImdpciBnbGFkZSIK IGRlc2Nfb3B0aW9uX2dsYWRlPSJHZW5lcmF0ZSBnbGFkZSBtb2R1bGVzIGFuZCBjYXRhbG9nIGZp bGVzIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgZ2xhZGUiCiAKKyMgaHR0cHM6Ly9naXRs YWIuZ25vbWUub3JnL0dOT01FL2dsYWRlLy0vY29tbWl0L2JiNjI2ZGQKK0NGTEFHUz0iLURHV0Ff R0VUX0NMQVNTPUdMQURFX1dJREdFVF9BREFQVE9SX0dFVF9BREFQVE9SX0NMQVNTIgorCiBsaWJo YW5keTEtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0gZ3RrKzMtZGV2ZWwiCiAJY29uZmxpY3RzPSJsaWJoYW5keS1kZXZlbD49 MCIKCkZyb20gYmQ2NzY5MWM2YWQ2NTg3YTcxMjM3Mzg5NDQyMzJiOGM1N2EwNzVjOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9 QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMTUgU2VwIDIwMjAgMDU6NDE6MDEgKzA3MDAKU3ViamVjdDogW1BBVENIIDAxNi8xMDJd IGxpYnhmY2U0dWk6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAKCi0tLQogc3JjcGtncy9saWJ4 ZmNlNHVpL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRlIGIv c3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRlCmluZGV4IDI1YTVjNDc5OTU1Li4wYTYyYWQxODJi NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv bGlieGZjZTR1aS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2xpYnhmY2U0dWknCiBwa2duYW1lPWxpYnhmY2U0dWkKIHZlcnNpb249NC4xNC4xCi1yZXZpc2lv bj00CityZXZpc2lvbj01CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9 ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGljIgoKRnJvbSAwMDViZDc3OTAz NWZmNDI2NmMyNjljZGZmMTU5NTlmMzU3NTJhZDJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDE3LzEwMl0gbGliZGF6emxl OiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlIHwgMjQg KysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygr KSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxh dGUgYi9zcmNwa2dzL2xpYmRhenpsZS90ZW1wbGF0ZQppbmRleCA1YWMwOWZlZWZjOS4uOWI4MDdi ZTk0NzQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvbGliZGF6emxlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdsaWJkYXp6bGUnCiBwa2duYW1lPWxpYmRhenpsZQotdmVyc2lvbj0zLjM2LjAKK3ZlcnNp b249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJn aXIiCi1jb25maWd1cmVfYXJncz0iLURlbmFibGVfZ3RrX2RvYz1mYWxzZSAtRHdpdGhfdmFwaT0k KHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNlKQotIC1Ed2l0aF9pbnRyb3NwZWN0aW9uPSQodm9wdF9p ZiBnaXIgdHJ1ZSBmYWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZp ZyAkKHZvcHRfaWYgdmFsYSAndmFsYScpIgorY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX2d0a19k b2M9ZmFsc2UKKyAkKHZvcHRfYm9vbCBnaXIgd2l0aF92YXBpKQorICQodm9wdF9ib29sIGdpciB3 aXRoX2ludHJvc3BlY3Rpb24pIgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25m aWcgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJnbGli LWRldmVsIgogc2hvcnRfZGVzYz0iTGlicmFyeSB0byBkZWxpZ2h0IHlvdXIgdXNlcnMgd2l0aCBm YW5jeSBmZWF0dXJlcyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS9saWJkYXp6bGUiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3Lmdp dGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9saWJkYXp6bGUvbGliZGF6emxlLTMtMzIvTkVXUyIK K2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYmRhenpsZS8tL3Jh dy8ke3ZlcnNpb259L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vbGliZGF6emxlLyR7 dmVyc2lvbiUuKn0vbGliZGF6emxlLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODJiMzFi YmY1NTBmYzYyOTcwYzc4YmY3ZjlkNTVlNWZhZTViOGVhMTNiMjRmZTJkMTNjOGM2MDM5NDA5ZDk1 OAorY2hlY2tzdW09ZTE4YWYyODIxNzk0M2JjZWMxMDY1ODUyOThhOTFlYzNkYTQ4YWEzYWQ2MmZk MDk5MmYyM2YwYzcwY2QxNjc4ZgogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29w dGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRp b25zX2RlZmF1bHQ9ImdpciIKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIGxp YmRhenpsZS1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfS0ke3ZlcnNp b259XyR7cmV2aXNpb259IGd0ayszLWRldmVsIgpAQCAtMjgsOCArMzQsNiBAQCBsaWJkYXp6bGUt ZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxk X29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0J CWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3Zh bGEKIAkJZmkKIAl9CgpGcm9tIGExNGVlMWNiMzQ1MDc3NWQ3N2JkNzM2YjQzMDJmYWRiOThmMmE3 ZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEw bj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwu Y29tPgpEYXRlOiBUdWUsIDE1IFNlcCAyMDIwIDA1OjQzOjEzICswNzAwClN1YmplY3Q6IFtQQVRD SCAwMTgvMTAyXSBhbmp1dGE6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAsIHZhbGEtMC41MAoK LS0tCiBzcmNwa2dzL2FuanV0YS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYW5qdXRhL3Rl bXBsYXRlIGIvc3JjcGtncy9hbmp1dGEvdGVtcGxhdGUKaW5kZXggYzIxYzkyN2NkMTIuLmI0NmQ1 OGFlYWZlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2FuanV0YS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2FuanV0YS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Fu anV0YScKIHBrZ25hbWU9YW5qdXRhCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MworcmV2aXNp b249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIK IGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtY29tcGlsZS13YXJuaW5ncyAtLWRpc2FibGUtc2No ZW1hcy1jb21waWxlCgpGcm9tIGZjNDQzMGE5NTdmZDY1MzQzNDAwNGM3ZTYxOWQ2OGMzOGU0OGI4 ODUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjI4OjE0ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwMTkvMTAyXSBzeXNwcm9mOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogLi4uL3Bh dGNoZXMvYWxsb2NzLWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoIHwgIDEyIC0tCiBzcmNwa2dz L3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAgfCAgMTAgKysKIHNyY3BrZ3Mv c3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2ggICAgICAgICAgICB8IDEyNSArKysrKysrKysrKysr KysrKysKIHNyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0p CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxsb2NzLWJ5LXNp emUtZ3NpemUtZm9ybWF0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zeXNwcm9m L3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2Yv cGF0Y2hlcy9tdXNsLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9z aGxpYnMKaW5kZXggZGIxNjQ2ZjE4ZTAuLjlhZDQ0M2E1MzY3IDEwMDY0NAotLS0gYS9jb21tb24v c2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMxNTMsOCArMzE1Myw4IEBAIGxpYm1pcmFn ZS5zby4xMSBsaWJtaXJhZ2UtMy4xLjBfMQogbGlid2todG1sdG94LnNvLjAgbGlid2todG1sdG9w ZGYtMC4xMi41XzEKIGxpYml4bWwuc28uMTAgbGlidXBucDEuOC0xLjguMl8xCiBsaWJ1cG5wLnNv LjEzIGxpYnVwbnAxLjgtMS44LjRfMQotbGlic3lzcHJvZi0zLnNvIHN5c3Byb2YtMy4zNC4wXzEK LWxpYnN5c3Byb2YtdWktMy5zbyBzeXNwcm9mLTMuMzQuMF8xCitsaWJzeXNwcm9mLTQuc28gc3lz cHJvZi0zLjM3LjkwXzEKK2xpYnN5c3Byb2YtdWktNC5zbyBzeXNwcm9mLTMuMzcuOTBfMQogbGli bW96anMtNTIuc28gbW96anM1Mi01Mi4zLjBfMQogbGlibW96anMtNTIuc28uMCBtb3pqczUyLTUy LjMuMF8xCiBsaWJ2YWxhLTAuNTAuc28uMCBsaWJ2YWxhLTAuNTAuMF8xCmRpZmYgLS1naXQgYS9z cmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2gg Yi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZWUwN2ViYmMyLi4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3Jt YXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1kaWZmIC1yYXVOIHNyYy90 ZXN0cy9hbGxvY3MtYnktc2l6ZS5jIHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jCi0tLS0gc3Jj L3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMJMjAyMC0wMy0yMiAyMDowMDoxMi42NzcwNDg4MjIgKzAx MDAKLSsrKyBzcmMvdGVzdHMvYWxsb2NzLWJ5LXNpemUuYwkyMDIwLTAzLTIyIDIwOjAxOjA3LjAw MDQxODM2MSArMDEwMAotQEAgLTEwOSw3ICsxMDksNyBAQAotICAgICB7Ci0gICAgICAgY29uc3Qg SXRlbSAqaXRlbSA9ICZnX2FycmF5X2luZGV4IChhciwgSXRlbSwgaSk7Ci0gCi0tICAgICAgZ19w cmludCAoIiUiR19HVUlOVDY0X0ZPUk1BVCIsJSJHX0dVSU5UNjRfRk9STUFUIiwlIkdfR1VJTlQ2 NF9GT1JNQVQiXG4iLAotKyAgICAgIGdfcHJpbnQgKCIlIkdfR1NJWkVfRk9STUFUIiwlIkdfR1NJ WkVfRk9STUFUIiwlIkdfR1NJWkVfRk9STUFUIlxuIiwKLSAgICAgICAgICAgICAgICBpdGVtLT5z aXplLCBpdGVtLT5jbXAsIGl0ZW0tPmNvdW50KTsKLSAgICAgfQotIH0KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9zeXNwcm9mL3BhdGNo ZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFi N2MyYzFjMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYnVp bGQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lz cHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNw cm9mLWNhcHR1cmUtY29uZGl0aW9uLmMKK0BAIC0yNjksNiArMjY5LDcgQEAgc3lzcHJvZl9jYXB0 dXJlX2NvbmRpdGlvbl9jb3B5IChjb25zdCBTeXNwcm9mQ2FwdHVyZUNvbmRpdGlvbiAqc2VsZikK KyAgICAgfQorIAorICAgc3lzcHJvZl9hc3NlcnRfbm90X3JlYWNoZWQgKCk7CisrICByZXR1cm4g TlVMTDsKKyB9CisgCisgc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3lzcHJvZi9w YXRjaGVzL211c2wucGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9tdXNsLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MWY0MjEyODg5MQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2gKQEAgLTAsMCAr MSwxMjUgQEAKK0Zyb20gMWQyZGUzMmU5N2JmNTU2OWNjMzNlZTlhOTBjODczZTFiYmQyYjFlNiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CitEYXRlOiBTdW4sIDYgU2VwIDIwMjAgMTg6MjE6MzcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0g Zml4IGJ1aWxkIG9uIG11c2wKKworLS0tCisgLi4uL3N5c3Byb2YtY2FwdHVyZS1jdXJzb3IuYyAg ICAgICAgICAgICAgICAgIHwgIDEgKworIC4uLi9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMgICAg ICAgICAgICAgICAgICB8ICAxICsKKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2Fw dHVyZS11dGlsLmMgfCAgMSArCisgLi4uL3N5c3Byb2YtY2FwdHVyZS13cml0ZXItY2F0LmMgICAg ICAgICAgICAgIHwgIDEgKworIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb2xsZWN0 b3IuYyAgICB8ICAxICsKKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0Lmgg ICAgICAgfCAyOCArKysrKysrKysrKysrKysrKysrCisgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9z eXNwcm9mLXBsYXRmb3JtLmMgICAgIHwgIDEgKworIDcgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0 aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3By b2YtY29tcGF0LmgKKworZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2Yt Y2FwdHVyZS1jdXJzb3IuYyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1j dXJzb3IuYworaW5kZXggMjQ1NjNmMC4uYmI3N2E2MCAxMDA2NDQKKy0tLSBzcmMvbGlic3lzcHJv Zi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jdXJzb3IuYworKysrIHNyYy9saWJzeXNwcm9mLWNh cHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jCitAQCAtNTksNiArNTksNyBAQAorICNpbmNs dWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgCisrI2luY2x1ZGUgInN5c3By b2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS1jb25kaXRpb24uaCIKKyAj aW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLWN1cnNvci5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNh cHR1cmUtcmVhZGVyLmgiCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJv Zi1jYXB0dXJlLXJlYWRlci5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJl LXJlYWRlci5jCitpbmRleCA2N2M2YjI4Li4yNTJkMDA2IDEwMDY0NAorLS0tIHNyYy9saWJzeXNw cm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXJlYWRlci5jCisrKysgc3JjL2xpYnN5c3Byb2Yt Y2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMKK0BAIC02OCw2ICs2OCw3IEBACisgI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgorICNpbmNsdWRlIDx1bmlzdGQuaD4KKyAKKysjaW5jbHVkZSAi c3lzcHJvZi1jb21wYXQuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLXJlYWRlci5oIgor ICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgiCisgI2luY2x1ZGUgInN5 c3Byb2YtY2FwdHVyZS13cml0ZXIuaCIKK2RpZmYgLS1naXQgc3JjL2xpYnN5c3Byb2YtY2FwdHVy ZS9zeXNwcm9mLWNhcHR1cmUtdXRpbC5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1j YXB0dXJlLXV0aWwuYworaW5kZXggMGJiZWEwNi4uMGU1ZjdlNyAxMDA2NDQKKy0tLSBzcmMvbGli c3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMKKysrKyBzcmMvbGlic3lzcHJv Zi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMKK0BAIC01Niw2ICs1Niw3IEBACisgCisg I2luY2x1ZGUgImNvbmZpZy5oIgorIAorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAjaW5jbHVkZSA8 YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorZGlm ZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS13cml0ZXItY2F0 LmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtd3JpdGVyLWNhdC5jCitp bmRleCA2NjE3MWI5Li45ZmViYmJiIDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUv c3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYworKysrIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUv c3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYworQEAgLTYzLDYgKzYzLDcgQEAKKyAjaW5jbHVk ZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJzeXNwcm9m LWNvbXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUuaCIKKyAjaW5jbHVkZSAic3lz cHJvZi1tYWNyb3MtaW50ZXJuYWwuaCIKKyAKK2RpZmYgLS1naXQgc3JjL2xpYnN5c3Byb2YtY2Fw dHVyZS9zeXNwcm9mLWNvbGxlY3Rvci5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1j b2xsZWN0b3IuYworaW5kZXggMWQ3YTBkNi4uN2FmNmM5NiAxMDA2NDQKKy0tLSBzcmMvbGlic3lz cHJvZi1jYXB0dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0 dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMKK0BAIC03Myw2ICs3Myw3IEBACisgCisgI2luY2x1ZGUg Im1hcHBlZC1yaW5nLWJ1ZmZlci5oIgorIAorKyNpbmNsdWRlICJzeXNwcm9mLWNvbXBhdC5oIgor ICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgiCisgI2luY2x1ZGUgInN5 c3Byb2YtY29sbGVjdG9yLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtbWFjcm9zLWludGVybmFsLmgi CitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb21wYXQuaCBzcmMv bGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0LmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwLi5hZTliZjEwCistLS0gL2Rldi9udWxsCisrKysgc3JjL2xpYnN5c3By b2YtY2FwdHVyZS9zeXNwcm9mLWNvbXBhdC5oCitAQCAtMCwwICsxLDI4IEBACisrLyogYWRkZWQg YnkgcTY2IEAgdm9pZCB0byBmaXggYnVpbGQgb24gbXVzbCAqLworKworKyNwcmFnbWEgb25jZQor KworKyNpZm5kZWYgX19HTElCQ19fCisrCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRl IDxlcnJuby5oPgorKworKy8qIGZyb20gZ2xpYmMgKi8KKysjaWZuZGVmIFRFTVBfRkFJTFVSRV9S RVRSWQorKyMgZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHByZXNzaW9uKSBcCisrICAoX19l eHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICAoeyBsb25nIGludCBfX3Jlc3VsdDsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgZG8gX19y ZXN1bHQgPSAobG9uZyBpbnQpIChleHByZXNzaW9uKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisrICAgICAgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYgZXJybm8gPT0gRUlO VFIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICBfX3Jlc3VsdDsgfSkp CisrI2VuZGlmCisrCisrc3RhdGljIGlubGluZSB2b2lkICpyZWFsbG9jYXJyYXkodm9pZCAqcCwg c2l6ZV90IG5tZW1iLCBzaXplX3Qgc3opIHsKKysgICAgaWYgKHN6ICYmIChubWVtYiA+ICgoc2l6 ZV90KS0xIC8gc3opKSkgeworKyAgICAgICAgZXJybm8gPSBFTk9NRU07CisrICAgICAgICByZXR1 cm4gTlVMTDsKKysgICAgfQorKyAgICByZXR1cm4gcmVhbGxvYyhwLCBubWVtYiAqIHN6KTsKKyt9 CisrCisrI2VuZGlmCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1w bGF0Zm9ybS5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1wbGF0Zm9ybS5jCitpbmRl eCBhODBhYjg5Li4wNWJkNTkwIDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lz cHJvZi1wbGF0Zm9ybS5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRm b3JtLmMKK0BAIC02MCw2ICs2MCw3IEBACisgI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisgI2lu Y2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJzeXNwcm9mLWNvbXBhdC5oIgorICNpbmNs dWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgiCisgI2luY2x1ZGUgInN5c3Byb2Yt cGxhdGZvcm0uaCIKKyAKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3lzcHJv Zi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZQppbmRleCA2OGJjYTYwMjU1My4u ZWFlNTFlYTczNTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdzeXNwcm9mJwogcGtnbmFtZT1zeXNwcm9mCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0z LjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURl bmFibGVfZ3RrPXRydWUgLURzeXN0ZW1kdW5pdGRpcj1kZWxldGVtZSIKQEAgLTExLDcgKzExLDcg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDov L3N5c3Byb2YuY29tLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg2NzBkYjRk YWNmN2IyMTlkMzBjNTc1YzQ2NWIxN2M4ZWQ2NzI0ZGJhZGUzNDdmMmNkZTk1NDhiZmYwMzkxMDgK K2NoZWNrc3VtPThiY2Q3MjhkYzJmNzRlNmY1ODk0MTAzNzBkZmIxYjg4MDE0NjhiYjNjYzE4MDNh YTI0MDczNWE3Y2ZmMjQxY2UKIAogIyBmb3IgSVRTIHJ1bGVzCiBpZiBbICIkQ1JPU1NfQlVJTEQi IF07IHRoZW4KCkZyb20gYzVmYzcwYzdlODU0NGI5ODZkMmQ1NmE0ZmI3ZmM5OTVjOTRjYTNjOCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDAyMC8xMDJdIHRyYWNrZXI6IHVwZGF0ZSB0byAyLjMuNgoKLS0tCiAuLi4vdHJhY2tl ci9wYXRjaGVzL2ZhaWxpbmctdGVzdC1tdXNsLnBhdGNoICAgfCAyNCArKysrKysrKysrKysrKysr KysrCiBzcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgOSAr KystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyL3BhdGNoZXMvZmFpbGluZy10ZXN0 LW11c2wucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RyYWNrZXIvcGF0Y2hlcy9mYWlsaW5n LXRlc3QtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmctdGVzdC1t dXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZjE4ZjA2 ZGU5YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmct dGVzdC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK0Zyb20gNWVlN2Q1OGYxOTU0MmQxZGFj ODcyYmFkZDcyNjY5ZWUyODhiZDMxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCAxNiBTZXAgMjAy MCAyMjoxMTo1MCArMDIwMAorU3ViamVjdDogW1BBVENIXSBkcm9wIHRlc3QgdGhhdCBmYWlscyBv biBtdXNsCisKKy0tLQorIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1aWxkIHwgMSAt CisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCB0ZXN0cy9saWJ0 cmFja2VyLWNvbW1vbi9tZXNvbi5idWlsZCB0ZXN0cy9saWJ0cmFja2VyLWNvbW1vbi9tZXNvbi5i dWlsZAoraW5kZXggNTViN2FkYS4uNjk2ODhlMCAxMDA2NDQKKy0tLSB0ZXN0cy9saWJ0cmFja2Vy LWNvbW1vbi9tZXNvbi5idWlsZAorKysrIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1 aWxkCitAQCAtMiw3ICsyLDYgQEAgbGlidHJhY2tlcl9jb21tb25fdGVzdHMgPSBbCisgICAgICdk YXRlLXRpbWUnLAorICAgICAnZGJ1cycsCisgICAgICdmaWxlLXV0aWxzJywKKy0gICAgJ3NjaGVk JywKKyAgICAgJ3R5cGUtdXRpbHMnLAorICAgICAndXRpbHMnLAorIF0KKy0tIAorMi4yOC4wCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJhY2tlci90 ZW1wbGF0ZQppbmRleCAzNzA3NGNiMzQ4ZC4uODEwNjc1Njc3ZmUgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvdHJhY2tlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUKQEAgLTEs MjIgKzEsMjMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXInCiBwa2duYW1lPXRyYWNr ZXIKLXZlcnNpb249Mi4zLjEKLXJldmlzaW9uPTIKK3ZlcnNpb249Mi4zLjYKK3JldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSIt RGRvY3M9ZmFsc2UgLURmdHM9dHJ1ZSAtRGZ1bmN0aW9uYWxfdGVzdHM9ZmFsc2UKICAtRGpvdXJu YWw9dHJ1ZSAtRG1hbj10cnVlIC1EbmV0d29ya19tYW5hZ2VyPWVuYWJsZWQgLURzdGVtbWVyPWRp c2FibGVkCiAgLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8iCi1ob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1j b25maWcgZ2xpYi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9ImRidXMtZGV2ZWwgbGliZ2xpYi1k ZXZlbCBpY3UtZGV2ZWwganNvbi1nbGliLWRldmVsCiAgbGlic291cC1kZXZlbCBsaWJ4bWwyLWRl dmVsIHNxbGl0ZS1kZXZlbCBOZXR3b3JrTWFuYWdlci1kZXZlbAogIGJhc2gtY29tcGxldGlvbiIK K2NoZWNrZGVwZW5kcz0idGFyIgogc2hvcnRfZGVzYz0iUGVyc29uYWwgc2VhcmNoIHRvb2wgYW5k IHN0b3JhZ2Ugc3lzdGVtIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9saXZl Lmdub21lLm9yZy9UcmFja2VyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3RyYWNrZXIvJHt2 ZXJzaW9uJS4qfS90cmFja2VyLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjY3NDg3MjZl NDY1YWQyZjRkOTkxNTYwNjM0YjFmZDBkZjg4NDFmM2Q5ODFiM2I4MzdjNDE2MmFiZWRmMDhhMQor Y2hlY2tzdW09YmQxZWI0MTIyMTM1Mjk2ZmE3YjU3YjFjM2ZhMGVkNjAyY2Y3ZDA2YzBiOGU1MzRk MGJkMTdmZjVmOTdmZWVmMgogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0bWFr ZWRlcGVuZHMrPSIgZGJ1cyIKCkZyb20gMTMxMzU3Mjk0ZDkxZDNjMmJiOGJjY2YwODc1OThhNWRl YTdlZWIyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDA6MjI6MTEgKzAyMDAK U3ViamVjdDogW1BBVENIIDAyMS8xMDJdIHRyYWNrZXItbWluZXJzOiB1cGRhdGUgdG8gMi4zLjUK Ci0tLQogc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSB8IDE3ICsrKysrKysrKy0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUgYi9zcmNwa2dzL3RyYWNr ZXItbWluZXJzL3RlbXBsYXRlCmluZGV4IDAyMGMxMjRmMzIyLi42MDBkMTQ0MjE4YyAxMDA2NDQK LS0tIGEvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RyYWNr ZXItbWluZXJzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn dHJhY2tlci1taW5lcnMnCiBwa2duYW1lPXRyYWNrZXItbWluZXJzCi12ZXJzaW9uPTIuMy4xCi1y ZXZpc2lvbj0zCit2ZXJzaW9uPTIuMy41CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgog Y29uZmlndXJlX2FyZ3M9Ii1EdHJhY2tlcl9jb3JlPXN5c3RlbSAtRGRvY3M9ZmFsc2UgLURleHRy YWN0PXRydWUKICAtRGZ1bmN0aW9uYWxfdGVzdHM9ZmFsc2UgLURjdWU9ZW5hYmxlZCAtRGV4aWY9 ZW5hYmxlZCAtRGZsYWM9ZW5hYmxlZApAQCAtMTAsMjEgKzEwLDIyIEBAIGNvbmZpZ3VyZV9hcmdz PSItRHRyYWNrZXJfY29yZT1zeXN0ZW0gLURkb2NzPWZhbHNlIC1EZXh0cmFjdD10cnVlCiAgLUR0 aWZmPWVuYWJsZWQgLUR2b3JiaXM9ZW5hYmxlZCAtRHhtbD1lbmFibGVkIC1EeG1wPWVuYWJsZWQg LUR4cHM9ZW5hYmxlZAogIC1EYmF0dGVyeV9kZXRlY3Rpb249dXBvd2VyIC1EY2hhcnNldF9kZXRl Y3Rpb249aWN1CiAgLURnZW5lcmljX21lZGlhX2V4dHJhY3Rvcj1nc3RyZWFtZXIgLURnc3RyZWFt ZXJfYmFja2VuZD1kaXNjb3ZlcmVyCi0gLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8iCisgLURz eXN0ZW1kX3VzZXJfc2VydmljZXM9bm8gLURtaW5lcl9yc3M9ZmFsc2UiCiBob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCBpbnRsdG9vbCIKIG1ha2VkZXBlbmRzPSJ0cmFja2Vy LWRldmVsIGZmbXBlZy1kZXZlbCBkYnVzLWRldmVsIGV4ZW1waS1kZXZlbCBsaWJmbGFjLWRldmVs CiAgbGliZ2xpYi1kZXZlbCBsaWJnZXhpdjItZGV2ZWwgZ3N0cmVhbWVyMS1kZXZlbCBpY3UtZGV2 ZWwgbGliY3VlLWRldmVsCiAgbGliZXhpZi1kZXZlbCBsaWJnc2YtZGV2ZWwgbGliZ3hwcy1kZXZl bCBsaWJpcHRjZGF0YS1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsCiAgbGlib3NpbmZvLWRldmVs IGxpYnBuZy1kZXZlbCBsaWJzZWNjb21wLWRldmVsIHRpZmYtZGV2ZWwgbGlieG1sMi1kZXZlbAog IGxpYnZvcmJpcy1kZXZlbCBwb3BwbGVyLWdsaWItZGV2ZWwgdGFnbGliLWRldmVsIHRvdGVtLXBs LXBhcnNlci1kZXZlbAotIHVwb3dlci1kZXZlbCB6bGliLWRldmVsIGdzdC1wbHVnaW5zLWJhc2Ux LWRldmVsIGdpZmxpYi1kZXZlbCIKKyB1cG93ZXItZGV2ZWwgemxpYi1kZXZlbCBnc3QtcGx1Z2lu cy1iYXNlMS1kZXZlbCBnaWZsaWItZGV2ZWwgbGliaGFyZmJ1enoiCiBzaG9ydF9kZXNjPSJEYXRh IG1pbmVycyBmb3IgdHJhY2tlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZGV2ZWxvcGVyLmdub21lLm9yZy9saWJ0cmFja2VyLW1pbmVyL3N0YWJsZSIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS90cmFja2VyLW1pbmVycy8ke3ZlcnNpb24lLip9L3RyYWNrZXItbWlu ZXJzLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09N2IxZGUwNmE3YTc5ZWExYzc4MTNjOGEy MWY4Y2QxYzU1ZjJiOTVmNzk5Y2Y5ZjQ3ZjAyMDRmM2JlOGE1OTBlMAorY2hlY2tzdW09OTUwOWQz N2ZiMjlhY2QyMzMwNThmNGRmNWJkMTIzNGI2OTJhYzZmOTQ2YmMyZTVmN2I4ZGJmNTFkZmU1Yjlm YQogCi0jIE1pc3NpbmcgbGliZ3JzcwotY29uZmlndXJlX2FyZ3MrPSIgLURtaW5lcl9yc3M9ZmFs c2UiCi1tYWtlZGVwZW5kcys9IiBsaWJoYXJmYnV6eiIKKyMgcmVsaWVzIG9uIHVuc3VwcG9ydGVk IG9wcyBpbiBjaHJvb3QKK2RvX2NoZWNrKCkgeworCToKK30KCkZyb20gY2RjNWIyZTBkZDY0ZDZh YzRlMzczNGIzOWI1ZTcxNzA3NTBkY2ZmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIw MjAgMDA6MTU6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyMi8xMDJdIE5ldyBwYWNrYWdlOiB0 cmFja2VyMy0zLjAuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgIHwgIDMgKystCiBz cmNwa2dzL2xpYnRyYWNrZXIzICAgICAgIHwgIDEgKwogc3JjcGtncy90cmFja2VyMy1kZXZlbCAg ICB8ICAxICsKIHNyY3BrZ3MvdHJhY2tlcjMvdGVtcGxhdGUgfCA1NyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdHJhY2tlcjMvdXBkYXRlICAgfCAgMSAr CiA1IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0 ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYnRyYWNrZXIzCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3Jj cGtncy90cmFja2VyMy1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdHJhY2tlcjMv dGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNrZXIzL3VwZGF0ZQoKZGlm ZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDlhZDQ0M2E1MzY3 Li41MDc3Nzc1MWY0YyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hs aWJzCkBAIC0zMTQ0LDYgKzMxNDQsOCBAQCBsaWJjcHBjbXMuc28uMSBjcHBjbXMtMS4wLjVfMQog bGliY3BwZGIuc28uMCBjcHBkYi0wLjMuMV8xCiBsaWJ0cmFja2VyLWNvbnRyb2wtMi4wLnNvLjAg bGlidHJhY2tlci0yLjAuMF8xCiBsaWJ0cmFja2VyLXNwYXJxbC0yLjAuc28uMCBsaWJ0cmFja2Vy LTIuMC4wXzEKK2xpYnRyYWNrZXItbWluZXItMi4wLnNvLjAgbGlidHJhY2tlci0yLjAuMV8xCits aWJ0cmFja2VyLXNwYXJxbC0zLjAuc28uMCBsaWJ0cmFja2VyMy0zLjAuMF8xCiBsaWJkb2NrYXBw LnNvLjMgbGliZG9ja2FwcC0wLjcuMl8xCiBsaWJrcmRjY29yZS5zby41IGtyZGMtMTcuMDQuM18x CiBsaWJBcmN1cy5zby4zIGxpYkFyY3VzLTMuMS4wXzEKQEAgLTMxNjIsNyArMzE2NCw2IEBAIGxp YnZhbGFkb2MtMC41MC5zby4wIGxpYnZhbGFkb2MtMC41MC4wXzEKIGxpYnZhbGFjY29kZWdlbi5z byBsaWJ2YWxhLTAuNDQuMF8xCiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhvZGF2LTIuMl8xCiBsaWJn ZnNoYXJlLnNvLjIgbGliZ2ZzaGFyZS0yLjAuMF8xCi1saWJ0cmFja2VyLW1pbmVyLTIuMC5zby4w IGxpYnRyYWNrZXItMi4wLjFfMQogbGlidGFjYWNzLnNvLjEgdGFjYWNzLTQuMC40LjI4XzEKIGxp YmZmbXMyLnNvLjQgbGliZmZtczItMi4yMy4xXzEKIGxpYmRkY3V0aWwuc28uMyBkZGN1dGlsLTAu OS45XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlidHJhY2tlcjMgYi9zcmNwa2dzL2xpYnRyYWNr ZXIzCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi41OWRkNjkxMWIzYgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlidHJhY2tlcjMKQEAgLTAsMCArMSBAQAordHJh Y2tlcjMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Ry YWNrZXIzLWRldmVsIGIvc3JjcGtncy90cmFja2VyMy1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAw MAppbmRleCAwMDAwMDAwMDAwMC4uNTlkZDY5MTFiM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3RyYWNrZXIzLWRldmVsCkBAIC0wLDAgKzEgQEAKK3RyYWNrZXIzClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyMy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvdHJhY2tlcjMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjFjMjEwMGYyNmNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90cmFja2VyMy90 ZW1wbGF0ZQpAQCAtMCwwICsxLDU3IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICd0cmFja2VyMycK K3BrZ25hbWU9dHJhY2tlcjMKK3ZlcnNpb249My4wLjAKK3JldmlzaW9uPTEKK3dya3NyYz10cmFj a2VyLSR7dmVyc2lvbn0KK2J1aWxkX3N0eWxlPW1lc29uCitidWlsZF9oZWxwZXI9ImdpciIKK2Nv bmZpZ3VyZV9hcmdzPSItRGRvY3M9ZmFsc2UgLURtYW49dHJ1ZSAtRG5ldHdvcmtfbWFuYWdlcj1l bmFibGVkCisgLURzdGVtbWVyPWRpc2FibGVkIC1Ec3lzdGVtZF91c2VyX3NlcnZpY2VzPWZhbHNl IgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIGFz Y2lpZG9jIgorbWFrZWRlcGVuZHM9ImRidXMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBpY3UtZGV2ZWwg anNvbi1nbGliLWRldmVsCisgbGlic291cC1kZXZlbCBsaWJ4bWwyLWRldmVsIHNxbGl0ZS1kZXZl bCBOZXR3b3JrTWFuYWdlci1kZXZlbAorIGJhc2gtY29tcGxldGlvbiIKK2NoZWNrZGVwZW5kcz0i dGFyIHB5dGhvbjMtZ29iamVjdCIKK3Nob3J0X2Rlc2M9IlBlcnNvbmFsIHNlYXJjaCB0b29sIGFu ZCBzdG9yYWdlIHN5c3RlbSIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCitob21lcGFn ZT0iaHR0cHM6Ly9saXZlLmdub21lLm9yZy9UcmFja2VyIgorZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9L3RyYWNrZXIvJHt2ZXJzaW9uJS4qfS90cmFja2VyLSR7dmVyc2lvbn0udGFyLnh6IgorY2hl Y2tzdW09NzA4NjQ1MTVmNTc1MmIwNTk2ZjljNDQyZDdlODY1ODU3MzRmNDJiODJhOTIzM2U1NWRh ZTZhYzJiMGQzMzgzNworCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRl cGVuZHMrPSIgZGJ1cyIKK2ZpCisKKyMgbmVlZHMgYSBkYnVzIHNldHVwCitkb19jaGVjaygpIHsK Kwk6Cit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJ CSMgVGVsbCB0aGUgYnVpbGQgc3lzdGVtIHRoYXQgd2UgaGF2ZSBpbnRlcm5hbCBmdHM1IGluIHNx bGl0ZTMKKwkJdnNlZCAtaSAiL1xbcHJvcGVydGllc1xdL2Egc3FsaXRlM19oYXNfZnRzNSA9ICd0 cnVlJyIgeGJwc19tZXNvbi5jcm9zcworCWZpCit9CisKK3RyYWNrZXIzLWRldmVsX3BhY2thZ2Uo KSB7CisJZGVwZW5kcz0ibGlidHJhY2tlcjM+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gbGliZ2xp Yi1kZXZlbCBqc29uLWdsaWItZGV2ZWwKKwkgbGlic291cC1kZXZlbCIKKwlzaG9ydF9kZXNjKz0i IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNs dWRlCisJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCisJCXZtb3ZlIHVzci9zaGFyZS92YWxhCisJ CXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJfQorfQor CitsaWJ0cmFja2VyM19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBzaGFyZWQgbGlicmFy aWVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi8qLnNvLioiCisJCXZtb3Zl IHVzci9saWIvZ2lyZXBvc2l0b3J5LTEuMAorCX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJh Y2tlcjMvdXBkYXRlIGIvc3JjcGtncy90cmFja2VyMy91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5ODQ3ZTI1YjU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy90cmFja2VyMy91cGRhdGUKQEAgLTAsMCArMSBAQAorcGF0dGVybj0iXFF0cmFja2VyXEUt XEtbMC05XStcLlswLTldKlwuWzAtOS5dKlswLTldKD89KSIKCkZyb20gM2MxZjRhMWJkM2Q0M2U3 MTA3NzM5YmJiZDZlMmE3Y2VjODJjYzljOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIw MjAgMDA6MTY6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyMy8xMDJdIE5ldyBwYWNrYWdlOiB0 cmFja2VyMy1taW5lcnMtMy4wLjAKCi0tLQogc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hl cy9idWlsZC5wYXRjaCAgIHwgIDI1ICsrKysrCiAuLi4vcGF0Y2hlcy9kb250LXVzZS1tYWxsb2Mt dHJpbS5wYXRjaCAgICAgICAgfCAxMDQgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3RyYWNr ZXIzLW1pbmVycy90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgMzQgKysrKysrCiAzIGZpbGVzIGNo YW5nZWQsIDE2MyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFj a2VyMy1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvZG9udC11c2UtbWFsbG9jLXRyaW0ucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNw a2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNThhMGQ4YzBmOAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwyNSBA QAorRnJvbSA4ZDcwOWMzYjU1ZGM5MjYyMWQ1ODcxZmI0MjlhMDJjNzhjYzRiMmQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIzOjU3OjMyICswMjAwCitTdWJqZWN0OiBbUEFU Q0hdIGZpeCBidWlsZAorCistLS0KKyBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZCB8 IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKwor ZGlmZiAtLWdpdCBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZCBzcmMvbGlidHJhY2tl ci1taW5lci9tZXNvbi5idWlsZAoraW5kZXggYTIyNjYyMy4uOWVhY2VlMyAxMDA2NDQKKy0tLSBz cmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZAorKysrIHNyYy9saWJ0cmFja2VyLW1pbmVy L21lc29uLmJ1aWxkCitAQCAtNDAsNyArNDAsNyBAQCBlbmRpZgorIAorIGxpYnRyYWNrZXJfbWlu ZXIgPSBsaWJyYXJ5KAorICAgICAndHJhY2tlci1taW5lci0nICsgdHJhY2tlcl9hcGlfdmVyc2lv biwKKy0gICAgbWluZXJfZW51bXNbMF0sIG1pbmVyX2VudW1zWzFdLCBtaW5lcl9zb3VyY2VzLAor KyAgICBtaW5lcl9lbnVtc1swXSwgbWluZXJfZW51bXNbMV0sIHRyYWNrZXJfbWluZXJzX2NvbW1v bl9lbnVtX2hlYWRlciwgbWluZXJfc291cmNlcywKKyAgICAgY19hcmdzOiB0cmFja2VyX2NfYXJn cywKKyAgICAgaW5zdGFsbDogdHJ1ZSwKKyAgICAgaW5zdGFsbF9kaXI6IHRyYWNrZXJfaW50ZXJu YWxfbGlic19kaXIsCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RyYWNrZXIz LW1pbmVycy9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10cmltLnBhdGNoIGIvc3JjcGtncy90cmFj a2VyMy1taW5lcnMvcGF0Y2hlcy9kb250LXVzZS1tYWxsb2MtdHJpbS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Y0MmE5MTIwOTcKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10cmlt LnBhdGNoCkBAIC0wLDAgKzEsMTA0IEBACitSZWFzb246IFRoaXMgcmV2ZXJ0cyAxOTFjYzUyMThi NTNmYmE4NWJhZWMxYzhjMTdiYjI0NmE3NDA0NGMwIGFuZAorY2NiMGI0ZWJiZmY0ZGZhY2YxN2Vh NjdjZTU2YmIyN2MzOTc0MTgxMS4gbWFsbG9jX3RyaW0gaXMgZ2xpYmMgc3BlY2lmaWMKK0FQSSwg c28gdGhpcyBjYXVzZXMgdGhlIGJ1aWxkIHRvIGZhaWwgb24gbXVzbC4KK1Vwc3RyZWFtOiBodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci1taW5lcnMvLS9pc3N1ZXMvMTM1Citk aWZmIC0tZ2l0IGEvc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYyBiL3NyYy9taW5lcnMvZnMv dHJhY2tlci1tYWluLmMKK2luZGV4IGM2MDA3MGQuLjIyMDkxNmQgMTAwNjQ0CistLS0gc3JjL21p bmVycy9mcy90cmFja2VyLW1haW4uYworKysrIHNyYy9taW5lcnMvZnMvdHJhY2tlci1tYWluLmMK K0BAIC01Nyw3ICs1Nyw2IEBACisgc3RhdGljIEdNYWluTG9vcCAqbWFpbl9sb29wOworIHN0YXRp YyBHREJ1c1Byb3h5ICppbmRleF9wcm94eTsKKyBzdGF0aWMgR1B0ckFycmF5ICpwcm94eV9mb2xk ZXJzOworLXN0YXRpYyBndWludCBjbGVhbnVwX2lkOworIAorIHN0YXRpYyBnaW50IGluaXRpYWxf c2xlZXAgPSAtMTsKKyBzdGF0aWMgZ2Jvb2xlYW4gbm9fZGFlbW9uOworQEAgLTQzMywzNyArNDMy LDYgQEAgbWluZXJfc3RhcnQgKFRyYWNrZXJNaW5lciAgKm1pbmVyLAorIAkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluZXIpOworIH0KKyAKKy1zdGF0aWMgZ2Jv b2xlYW4KKy1jbGVhbnVwX2NiIChncG9pbnRlciB1c2VyX2RhdGEpCisteworLQkvKiBSZWNsYWlt IGFzIG11Y2ggbWVtb3J5IGFzIHBvc3NpYmxlICovCistCW1hbGxvY190cmltICgwKTsKKy0KKy0J Y2xlYW51cF9pZCA9IDA7CistCistCXJldHVybiBHX1NPVVJDRV9SRU1PVkU7CistfQorLQorLSNp ZiBHTElCX0NIRUNLX1ZFUlNJT04gKDIsIDY0LCAwKQorLXN0YXRpYyB2b2lkCistb25fbG93X21l bW9yeSAoR01lbW9yeU1vbml0b3IgICAgICAgICAgICAqbW9uaXRvciwKKy0gICAgICAgICAgICAg ICBHTWVtb3J5TW9uaXRvcldhcm5pbmdMZXZlbCBsZXZlbCwKKy0gICAgICAgICAgICAgICBncG9p bnRlciAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpCisteworLQlpZiAobGV2ZWwgPiBHX01F TU9SWV9NT05JVE9SX1dBUk5JTkdfTEVWRUxfTE9XKQorLQkJbWFsbG9jX3RyaW0gKDApOworLX0K Ky0jZW5kaWYKKy0KKy1zdGF0aWMgdm9pZAorLW1pbmVyX3N0YXJ0ZWRfY2IgKFRyYWNrZXJNaW5l ckZTICpmcykKKy17CistCWlmIChjbGVhbnVwX2lkKSB7CistCQlnX3NvdXJjZV9yZW1vdmUgKGNs ZWFudXBfaWQpOworLQkJY2xlYW51cF9pZCA9IDA7CistCX0KKy19CistCisgc3RhdGljIHZvaWQK KyBtaW5lcl9maW5pc2hlZF9jYiAoVHJhY2tlck1pbmVyRlMgKmZzLAorICAgICAgICAgICAgICAg ICAgICBnZG91YmxlICAgICAgICAgc2Vjb25kc19lbGFwc2VkLAorQEAgLTQ4Myw4ICs0NTEsNiBA QCBtaW5lcl9maW5pc2hlZF9jYiAoVHJhY2tlck1pbmVyRlMgKmZzLAorIAkJCQkJCQkgVFJVRSk7 CisgCX0KKyAKKy0JY2xlYW51cF9pZCA9IGdfdGltZW91dF9hZGRfc2Vjb25kcyAoMzAsIGNsZWFu dXBfY2IsIE5VTEwpOworLQorIAkvKiBXZSdyZSBub3Qgc3RpY2tpbmcgYXJvdW5kIGZvciBmaWxl IHVwZGF0ZXMsIHNvIHN0b3AKKyAJICogdGhlIG1haW5sb29wIGFuZCBleGl0LgorIAkgKi8KK0BA IC05NDEsOSArOTA3LDYgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqYXJndltdKQorIAlUcmFj a2VyRW5kcG9pbnREQnVzICplbmRwb2ludDsKKyAJVHJhY2tlckRvbWFpbk9udG9sb2d5ICpkb21h aW5fb250b2xvZ3k7CisgCUdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGU7CistI2lmIEdMSUJfQ0hF Q0tfVkVSU0lPTiAoMiwgNjQsIDApCistCUdNZW1vcnlNb25pdG9yICptZW1vcnlfbW9uaXRvcjsK Ky0jZW5kaWYKKyAJZ2NoYXIgKmRvbWFpbl9uYW1lLCAqZGJ1c19uYW1lOworIAorIAltYWluX2xv b3AgPSBOVUxMOworQEAgLTExMjksMTggKzEwOTIsMTAgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hh ciAqYXJndltdKQorIAkJdHJhY2tlcl9taW5lcl9maWxlc19zZXRfbXRpbWVfY2hlY2tpbmcgKFRS QUNLRVJfTUlORVJfRklMRVMgKG1pbmVyX2ZpbGVzKSwgZG9fbXRpbWVfY2hlY2tpbmcpOworIAl9 CisgCistCWdfc2lnbmFsX2Nvbm5lY3QgKG1pbmVyX2ZpbGVzLCAic3RhcnRlZCIsCistCQkJICBH X0NBTExCQUNLIChtaW5lcl9zdGFydGVkX2NiKSwKKy0JCQkgIE5VTEwpOworIAlnX3NpZ25hbF9j b25uZWN0IChtaW5lcl9maWxlcywgImZpbmlzaGVkIiwKKyAJCQkgIEdfQ0FMTEJBQ0sgKG1pbmVy X2ZpbmlzaGVkX2NiKSwKKyAJCQkgIE5VTEwpOworIAorLSNpZiBHTElCX0NIRUNLX1ZFUlNJT04g KDIsIDY0LCAwKQorLQltZW1vcnlfbW9uaXRvciA9IGdfbWVtb3J5X21vbml0b3JfZHVwX2RlZmF1 bHQgKCk7CistCWdfc2lnbmFsX2Nvbm5lY3QgKG1lbW9yeV9tb25pdG9yLCAibG93LW1lbW9yeS13 YXJuaW5nIiwgb25fbG93X21lbW9yeSwgTlVMTCk7CistI2VuZGlmCistCisgCS8qIFByZWVtcHQg Y3JlYXRpb24gb2YgZ3JhcGhzICovCisgCXRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRl X2FzeW5jICh0cmFja2VyX21pbmVyX2dldF9jb25uZWN0aW9uIChtaW5lcl9maWxlcyksCisgCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ1JFQVRFIFNJTEVOVCBHUkFQ SCB0cmFja2VyOkZpbGVTeXN0ZW07ICIKK0BAIC0xMTgzLDExICsxMTM4LDYgQEAgbWFpbiAoZ2lu dCBhcmdjLCBnY2hhciAqYXJndltdKQorIAl0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX2Nsb3Nl IChzcGFycWxfY29ubik7CisgCWdfb2JqZWN0X3VucmVmIChzcGFycWxfY29ubik7CisgCistI2lm IEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCistCWdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nv bm5lY3RfYnlfZnVuYyAobWVtb3J5X21vbml0b3IsIG9uX2xvd19tZW1vcnksIE5VTEwpOworLQln X29iamVjdF91bnJlZiAobWVtb3J5X21vbml0b3IpOworLSNlbmRpZgorLQorIAlnX3ByaW50ICgi XG5PS1xuXG4iKTsKKyAKKyAJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdHJhY2tlcjMtbWluZXJzL3RlbXBsYXRlIGIvc3JjcGtncy90cmFja2VyMy1taW5lcnMvdGVt cGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBiZjE0YjQ4NDc5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90cmFja2VyMy1taW5lcnMvdGVtcGxhdGUKQEAg LTAsMCArMSwzNCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAndHJhY2tlcjMtbWluZXJzJworcGtn bmFtZT10cmFja2VyMy1taW5lcnMKK3ZlcnNpb249My4wLjAKK3JldmlzaW9uPTEKK3dya3NyYz10 cmFja2VyLW1pbmVycy0ke3ZlcnNpb259CitidWlsZF9zdHlsZT1tZXNvbgorIyBtaXNzaW5nIGxp Ymdyc3MgZm9yIG1pbmVyX3JzcworY29uZmlndXJlX2FyZ3M9Ii1EdHJhY2tlcl9jb3JlPXN5c3Rl bSAtRGRvY3M9ZmFsc2UgLURleHRyYWN0PXRydWUKKyAtRGZ1bmN0aW9uYWxfdGVzdHM9ZmFsc2Ug LURjdWU9ZW5hYmxlZCAtRGV4aWY9ZW5hYmxlZCAtRGZsYWM9ZW5hYmxlZAorIC1EZ2lmPWVuYWJs ZWQgLURnc2Y9ZW5hYmxlZCAtRGlwdGM9ZW5hYmxlZCAtRGlzbz1lbmFibGVkIC1EanBlZz1lbmFi bGVkCisgLURwZGY9ZW5hYmxlZCAtRHBsYXlsaXN0PWVuYWJsZWQgLURwbmc9ZW5hYmxlZCAtRHJh dz1lbmFibGVkIC1EdGFnbGliPWVuYWJsZWQKKyAtRHRpZmY9ZW5hYmxlZCAtRHZvcmJpcz1lbmFi bGVkIC1EeG1sPWVuYWJsZWQgLUR4bXA9ZW5hYmxlZCAtRHhwcz1lbmFibGVkCisgLURtaW5lcl9y c3M9ZmFsc2UgLURiYXR0ZXJ5X2RldGVjdGlvbj11cG93ZXIgLURjaGFyc2V0X2RldGVjdGlvbj1p Y3UKKyAtRGdlbmVyaWNfbWVkaWFfZXh0cmFjdG9yPWdzdHJlYW1lciAtRGdzdHJlYW1lcl9iYWNr ZW5kPWRpc2NvdmVyZXIKKyAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1mYWxzZSAtRG5ldHdvcmtf bWFuYWdlcj1lbmFibGVkIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwg aW50bHRvb2wgYXNjaWlkb2MiCittYWtlZGVwZW5kcz0idHJhY2tlcjMtZGV2ZWwgZmZtcGVnLWRl dmVsIGRidXMtZGV2ZWwgZXhlbXBpLWRldmVsIGxpYmZsYWMtZGV2ZWwKKyBsaWJnbGliLWRldmVs IGxpYmdleGl2Mi1kZXZlbCBnc3RyZWFtZXIxLWRldmVsIGljdS1kZXZlbCBsaWJjdWUtZGV2ZWwK KyBsaWJleGlmLWRldmVsIGxpYmdzZi1kZXZlbCBsaWJneHBzLWRldmVsIGxpYmlwdGNkYXRhLWRl dmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwKKyBsaWJvc2luZm8tZGV2ZWwgbGlicG5nLWRldmVsIGxp YnNlY2NvbXAtZGV2ZWwgdGlmZi1kZXZlbCBsaWJ4bWwyLWRldmVsCisgbGlidm9yYmlzLWRldmVs IHBvcHBsZXItZ2xpYi1kZXZlbCB0YWdsaWItZGV2ZWwgdG90ZW0tcGwtcGFyc2VyLWRldmVsCisg dXBvd2VyLWRldmVsIHpsaWItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwgZ2lmbGliLWRl dmVsCisgTmV0d29ya01hbmFnZXItZGV2ZWwgbGliaGFyZmJ1enoiCitzaG9ydF9kZXNjPSJEYXRh IG1pbmVycyBmb3IgdHJhY2tlcjMiCittYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9kZXZl bG9wZXIuZ25vbWUub3JnL2xpYnRyYWNrZXItbWluZXIvc3RhYmxlIgorZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9L3RyYWNrZXItbWluZXJzLyR7dmVyc2lvbiUuKn0vdHJhY2tlci1taW5lcnMtJHt2 ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT1iYjQ4MWE3YzIzYzVkZWY0ZjIxNTYyN2EwNjMwZmJl OWQxYzY0ZjMzMTk4MjU4NTlkN2E3MzY0NTczOGY0MDQyCisKKyMgcmVsaWVzIG9uIHVuc3VwcG9y dGVkIG9wcyBpbiBjaHJvb3QKK2RvX2NoZWNrKCkgeworCToKK30KCkZyb20gOWU5NDZhYTZlMmM5 Yzk1ZDRmYmNlZjVjYTdmN2U0NTljMDNiYTY4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIw RGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDY6 NDc6NTYgKzA3MDAKU3ViamVjdDogW1BBVENIIDAyNC8xMDJdIGJpamliZW46IHVwZGF0ZSB0byAz LjM2LjMuCgotLS0KIHNyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZSB8IDkgKysrKysrKy0tCiAxIGZp bGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZQppbmRl eCA3MzAwNTNiNWQxYy4uMGJmYTZmMjc1YWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmlqaWJlbi90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2JpamliZW4vdGVtcGxhdGUKQEAgLTEsOSArMSwxMCBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnYmlqaWJlbicKIHBrZ25hbWU9YmlqaWJlbgotdmVyc2lvbj0z LjM2LjEKK3ZlcnNpb249My4zNi4zCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1 aWxkX3N0eWxlPW1lc29uCitjb25maWd1cmVfYXJncz0iLUR6ZWl0Z2Vpc3Q9dHJ1ZSIKIGhvc3Rt YWtlZGVwZW5kcz0iaXRzdG9vbCBwa2ctY29uZmlnIGdldHRleHQiCiBtYWtlZGVwZW5kcz0iY2x1 dHRlci1ndGstZGV2ZWwgZXZvbHV0aW9uLWRldmVsIHRyYWNrZXItZGV2ZWwgd2Via2l0Mmd0ay1k ZXZlbAogIHplaXRnZWlzdC1kZXZlbCBsaWJoYW5keS1kZXZlbCIKQEAgLTE0LDUgKzE1LDkgQEAg bGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvTm90ZXMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50 LmNvbS9HTk9NRS9iaWppYmVuL2dub21lLSR7dmVyc2lvbiUuKn0vTkVXUyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTIxMmY2NmEzZDJjNzE3ZGZiM2QzNzIyMDQyNjE3ODA4OTM5 NWRhMjNlZjlmM2QwNTE3MTNhYWY2NTk3YTQxMTAKK2NoZWNrc3VtPTcwZTliNjIxZTExYmY3YWY2 YzYyNDhmOGM5OTgzMGY2ZmZiZmY2MDVmYjQzYTg0OGQyNjg4MGU3ZTFiNTJkZDYKIG5vY3Jvc3M9 ImV2b2x1dGlvbi1kYXRhLXNlcnZlciBjcm9zcyIKKworcHJlX2J1aWxkKCkgeworCW5pbmphIC1D IGJ1aWxkIHNyYy9saWJiaWppL2JpamktbWFyc2hhbGVycy5oCit9CgpGcm9tIDkzNmNlOWRlMGEw MGM4YzBlM2RlOWUwNGZkMzdiZGNlOGNhODI4ZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNl cCAyMDIwIDIwOjIwOjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjUvMTAyXSBncmFwaGVuZTog dXBkYXRlIHRvIDEuMTAuMgoKLS0tCiBzcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUgYi9zcmNwa2dzL2dyYXBoZW5lL3RlbXBs YXRlCmluZGV4IGY1Y2M5OWI0MTI4Li5lODY4MjM5YmZhMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n cmFwaGVuZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlCkBAIC0xLDYg KzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3JhcGhlbmUnCiBwa2duYW1lPWdyYXBoZW5l Ci12ZXJzaW9uPTEuMTAuMAordmVyc2lvbj0xLjEwLjIKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCIKIGhvbWVw YWdlPSJodHRwczovL2dpdGh1Yi5jb20vZWJhc3NpL2dyYXBoZW5lIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9L2dyYXBoZW5lLyR7dmVyc2lvbiUuKn0vZ3JhcGhlbmUtJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT00MDZkOTdmNTFkZDRjYTYxZTkxZjg0NjY2YTAwYzNlOTc2ZDNlNjY3Y2Qy NDhiNzZkOTJmZGIzNWNlODc2NDk5CitjaGVja3N1bT1lOTdkZTgyMDhmMWFhYzRmOTEzZDRmYTcx YWI3M2E3MDM0ZTgwNzE4NmZlYjJhYmU1NTg3NmU1MWM0MjVhN2Y2CiAKIGNhc2UgIiRYQlBTX1RB UkdFVF9NQUNISU5FIiBpbgogCWFybSopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EYXJtX25lb249ZmFs c2UiIDs7CgpGcm9tIGZlODEyZDUwZTNhNDgyODdhZTI4YjRmNmQyNDI4OGVjZTgyYjI3YjYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjIyOjQwICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMjYvMTAyXSBhbXRrOiB1cGRhdGUgdG8gNS4yLjAKCi0tLQogc3JjcGtncy9hbXRrL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZSBiL3NyY3BrZ3MvYW10 ay90ZW1wbGF0ZQppbmRleCA0NDljNTdlMDdlNi4uNDMzYmUyYjljNTQgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvYW10ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2FtdGsvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhbXRrJwogcGtnbmFtZT1hbXRrCi12ZXJzaW9u PTUuMS4xCit2ZXJzaW9uPTUuMi4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvQW10ayIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS9hbXRrLyR7dmVyc2lvbiUuKn0vYW10ay0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPWY5NjU2YmRkNDI3OGFhYmZiODU1NGYwMjkwNDliOWZmYWY1MWI1M2Zh YTQ2MzQ4M2E4NDAzNjU0NjMzNTVkZjEKK2NoZWNrc3VtPTgyMDU0NWJiNGNmODdlY2ViYzJjMzYz OGQ2YjZlNThiOGRiZDYwYTQxOWE5YjQzY2YwMjAxMjRlNWRhZDcwNzgKIAogYnVpbGRfb3B0aW9u cz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDJjN2E1NWQ3OWI3NDYz MDM4ODkzNGYwN2ViZWQ0MTM0YzRjNGIyYTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAy MDIwIDIwOjQ0OjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjcvMTAyXSBpby5lbGVtZW50YXJ5 LmNvZGU6IHJlYnVpbGQgZm9yIHZhbGEtMC41MAoKLS0tCiAuLi4vaW8uZWxlbWVudGFyeS5jb2Rl L3BhdGNoZXMvdmFsYTA1MC5wYXRjaCAgfCAyNSArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dz L2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZSAgICAgICAgICAgfCAgMiArLQogMiBmaWxlcyBj aGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNo IGIvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZWVlZTFmYjY2NAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3BhdGNoZXMvdmFsYTA1MC5wYXRj aApAQCAtMCwwICsxLDI1IEBACitGcm9tIGExODVkZTBlNzcxNmFhMmRlMmJmMjFkZTk2ZTZjOWFm MWRjYTgxYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NDM6MDcgKzAy MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IHdpdGggdmFsYS0wLjUwCisKKy0tLQorIHBsdWdpbnMv b3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEgfCAyICstCisgMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgcGx1Z2lucy9v dXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYSBwbHVnaW5zL291dGxpbmUvVmFsYS9W YWxhU3ltYm9sT3V0bGluZS52YWxhCitpbmRleCBjOGRiMzM5Li4zMTM4NmE2IDEwMDY0NAorLS0t IHBsdWdpbnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEKKysrKyBwbHVnaW5z L291dGxpbmUvVmFsYS9WYWxhU3ltYm9sT3V0bGluZS52YWxhCitAQCAtNjEsNyArNjEsNyBAQCBw dWJsaWMgY2xhc3MgQ29kZS5QbHVnaW5zLlZhbGFTeW1ib2xPdXRsaW5lIDogT2JqZWN0LCBDb2Rl LlBsdWdpbnMuU3ltYm9sT3V0bGluZQorIAorICAgICBwdWJsaWMgdm9pZCBwYXJzZV9zeW1ib2xz ICgpIHsKKyAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFZhbGEuQ29kZUNvbnRleHQgKCk7Cist ICAgICAgICBjb250ZXh0LnByb2ZpbGUgPSBWYWxhLlByb2ZpbGUuR09CSkVDVDsKKysgICAgICAg IGNvbnRleHQuc2V0X3RhcmdldF9wcm9maWxlKFZhbGEuUHJvZmlsZS5HT0JKRUNUKTsKKyAgICAg ICAgIGNvbnRleHQuYWRkX3NvdXJjZV9maWxlbmFtZSAoZG9jLmZpbGUuZ2V0X3BhdGggKCkpOwor ICAgICAgICAgY29udGV4dC5yZXBvcnQgPSBuZXcgUmVwb3J0ICgpOworICAgICAgICAgaWYgKGNh bmNlbGxhYmxlICE9IG51bGwpCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lv LmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3Rl bXBsYXRlCmluZGV4IDQ0N2U3ZTVmNjBhLi44ZDQzYWQ0MTMwZCAxMDA2NDQKLS0tIGEvc3JjcGtn cy9pby5lbGVtZW50YXJ5LmNvZGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pby5lbGVtZW50YXJ5 LmNvZGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdpby5l bGVtZW50YXJ5LmNvZGUnCiBwa2duYW1lPWlvLmVsZW1lbnRhcnkuY29kZQogdmVyc2lvbj0zLjQu MQotcmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJjb2RlLSR7dmVyc2lvbn0iCiBidWls ZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHZhbGEgaW50bHRvb2wg Z2xpYi1kZXZlbCIKCkZyb20gMzNmMDRlMTQ0OTA1NzY3NzhiNmY1MzM3ZDMzNmFlNDllZTEwODdm MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NTI6MjYgKzAyMDAKU3ViamVj dDogW1BBVENIIDAyOC8xMDJdIHBob2RhdjogdXBkYXRlIHRvIDIuNQoKLS0tCiBzcmNwa2dzL3Bo b2Rhdi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Bob2Rhdi90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvcGhvZGF2L3RlbXBsYXRlCmluZGV4IDFhOTBhMWEwZTU4Li4xMzA5Mjg5Njg5OSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9waG9kYXYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9waG9kYXYvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwaG9kYXYnCiBwa2du YW1lPXBob2RhdgotdmVyc2lvbj0yLjQKK3ZlcnNpb249Mi41CiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZD1kaXNhYmxlZCAtRGF2YWhpPWVu YWJsZWQgLURndGtfZG9jPWRpc2FibGVkCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL3Bob2RhdiIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTdkZGRjMmI3NWUwNGQwODY2YmI5YzlhODMwMjhhNTk3ZWJk NzNlZjRjMzdiZDZlYmUxMDMyYTg3MGI0M2I4YzMKK2NoZWNrc3VtPTcxZjBhOWNkNzBhZmQ0ZGQx NDEyYTAyOTgzMzFkYmI4YWM3MWMwMzc3ZjUyMTE3YWZjMTVlYjg4ZGM2ZmI5MTAKIAogcGhvZGF2 LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJzb3VwLWRldmVs IGxpYnhtbDItZGV2ZWwKCkZyb20gY2VkNThmM2U5YTU5ZDliNTkzMjdjYTc3OTI4ZDY2NTRmNDRi YjE1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDAyOS8xMDJdIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXM6IHVwZGF0ZSB0 byAzLjM4LjAKCi0tLQogLi4uL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaCAgICAgICAgICAg ICAgICAgICAgIHwgMTMgLS0tLS0tLS0tLS0tLQogc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1z Y2hlbWFzL3RlbXBsYXRlICAgICAgICAgIHwgIDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRjaGVzL2Zp eC1jcm9zcy1naXIucGF0Y2ggYi9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0 Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi Mjk5ZDVjOWNkMC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1z Y2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEz ICswLDAgQEAKLWRpZmYgLS1naXQgYS9oZWFkZXJzL21lc29uLmJ1aWxkIGIvaGVhZGVycy9tZXNv bi5idWlsZAotaW5kZXggM2NlOGI2MS4uMTEzMjY5NSAxMDA2NDQKLS0tLSBoZWFkZXJzL21lc29u LmJ1aWxkCi0rKysgaGVhZGVycy9tZXNvbi5idWlsZAotQEAgLTE5LDcgKzE5LDcgQEAgZW51bXNf eG1sID0gY3VzdG9tX3RhcmdldCgKLSAgIGluc3RhbGw6IHRydWUsCi0gICBpbnN0YWxsX2Rpcjog c2NoZW1hc2RpcikKLSAKLS1pZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKSBhbmQgZ2V0X29w dGlvbignaW50cm9zcGVjdGlvbicpCi0raWYgZ2V0X29wdGlvbignaW50cm9zcGVjdGlvbicpCi0g ICBub2luc3RfbGliID0gc2hhcmVkX2xpYnJhcnkoJ25vaW5zdCcsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaGVhZGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnN0YWxsOiBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0 ZQppbmRleCA0OWM2NGNjYTczOC4uNzZjNGIwZTA4MTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Nl dHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dzZXR0aW5ncy1k ZXNrdG9wLXNjaGVtYXMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJwogcGtnbmFtZT1nc2V0dGluZ3MtZGVza3Rv cC1zY2hlbWFzCi12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3Jl dmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3Vy ZV9hcmdzPSItRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKQEAgLTEy LDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09NzY0YWI2ODMyODY1MzYzMjQ1MzNhNThkNGU5NWZjNTdmODFh ZGFiYTdkODgwZGQwZWJiYmNlZDYzZTk2MGVhNgorY2hlY2tzdW09NTcwNGM4MjY2MDA0YjI5NjAz NjY3MWYyMjNjNzA1ZGMwNDZhYTY5NGExYjFhYmI4N2M2N2U3ZDI3NDdhOGM2NwogCiAjIFBhY2th Z2UgYnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2lyIgoKRnJvbSBjNzQ5NGIyMDE4MThk NGE1Njc4ZTAwZmVmZDI3MzQxYWNmOTZlOTdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcg MjAyMCAwNToyMDoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMwLzEwMl0gZ2xpYi1uZXR3b3Jr aW5nOiB1cGRhdGUgdG8gMi42Ni4wCgotLS0KIHNyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBs YXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUgYi9z cmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQppbmRleCA1ZWFmZmE4MmU2NC4uOTZmMzEy Y2ZmNGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZ2xpYi1uZXR3b3JraW5nJwogcGtnbmFtZT1nbGliLW5ldHdvcmtpbmcK LXZlcnNpb249Mi42NC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuNjYuMAorcmV2aXNpb249MQog YnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGluc3RhbGxlZF90ZXN0cz1mYWxz ZSAtRGdudXRscz1lbmFibGVkIC1EbGlicHJveHk9ZW5hYmxlZAogIC1EZ25vbWVfcHJveHk9ZW5h YmxlZCIKQEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbGliLW5ldHdvcmtpbmcvIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09YTRjMzQ2ZGVmN2Q4MTc0NjdkNzlhOTVjMjNiM2NjZjIy ZTRkZjE1NDg4NzA3MjZiNjMzOTY0MDA4NTJkYWY3MgorY2hlY2tzdW09YzVkN2JlMjQzN2ZkZDE5 NmVlYmZiNzBjNDUxN2I5NmQzYmE3ZWMxM2JkNDk2MzE4YjhmMDJkZWEzODNlMDA5OQogbGliMzJk aXNhYmxlZD15ZXMKIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSA1YzNmOTM2NWMzMThkZWYwYmU5 OTg5NTViOGY2NDhmNGZkYmZmMmFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMxLzEwMl0gYXQtc3BpMi1jb3JlOiB1cGRh dGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlIHwgMTQgKysr KysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUgYi9zcmNwa2dz L2F0LXNwaTItY29yZS90ZW1wbGF0ZQppbmRleCBiMzgzZmU5OWJlZC4uNzRlNjA3MDEyMDEgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYXQt c3BpMi1jb3JlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdhdC1zcGkyLWNvcmUnCiBwa2duYW1lPWF0LXNwaTItY29yZQotdmVyc2lvbj0yLjM0LjAKK3Zl cnNpb249Mi4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVy PSJnaXIiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZGJ1cyBnbGliLWRldmVsIgotbWFr ZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJYdHN0 LWRldmVsCi0gbGliWGV2aWUtZGV2ZWwgZGJ1cy1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBkYnVzIGdsaWItZGV2ZWwgZ2V0dGV4dCIKK21ha2VkZXBlbmRzPSJsaWJnbGliLWRl dmVsIGxpYlhleHQtZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBkYnVzLWRldmVsIgog c2hvcnRfZGVzYz0iQXNzaXN0aXZlIFRlY2hub2xvZ3kgU2VydmljZSBQcm92aWRlciBJbnRlcmZh Y2UiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvYXQtc3BpMi1jb3JlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 ZDYyOWNkYmQ2NzRlNTM5Zjg5MTIwMjg1MTJhZjU4Mzk5MDkzOGM3YjQ5ZTI1MTg0YzEyNmIwMDEy MWVmMTFjNgorY2hlY2tzdW09ODRlMzZjM2ZlNjY4NjIxMzNmNWZlMjI5NzcyYjc2YWEyNTI2ZTEw ZGU1MDE0YTM3NzhmMmZhNDZjZTU1MGRhNQogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwogYnVp bGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKKyMgbm9uLXRy aXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJOgorfQorCiBwb3N0X2luc3RhbGwoKSB7 CiAJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9zeXN0ZW1kCiB9CgpGcm9tIDM4ZjU4M2JhZDUy NGU1MmNjZTdhYjE5NjljZjcxNDA2ZmZiM2MwMzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzIvMTAyXSBhdC1zcGkyLWF0 azogdXBkYXRlIHRvIDIuMzguMAoKLS0tCiBzcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlIHwg OSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1wbGF0ZSBiL3NyY3BrZ3Mv YXQtc3BpMi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMuLmNmOTQ1ZGZmYjI2IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYXQtc3Bp Mi1hdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhdC1z cGkyLWF0aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249Mi4zNC4xCit2ZXJzaW9uPTIu MzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0ibGli dG9vbCBwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwiCkBAIC0xMCw3ICsxMCwxMiBAQCBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i TEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5nbm9tZS5vcmciCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03NzZkZjkzMDc0OGZkZTcxYzEyOGJlNmMzNjZh OTg3Yjk4YjZlZTY2ZDUwOGVkOWM4ZGIyMzU1YmY0YjljYzE2CitjaGVja3N1bT1jZmEwMDhhNWFm ODIyYjM2YWU2Mjg3ZjE4MTgyYzQwYzkxZGQ2OTljNTVmYWEzODYwNTg4MWVkMTc1Y2E0NjRmCisK KyMgbm9uLXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJOgorfQogCiBhdC1zcGky LWF0ay1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9ICR7c291cmNl cGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gYjZkNGNjYWEyODcxMmNhMDg2YjA3 Njg4ZmY1OWYyZjdjYmIwNDUxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzMy8xMDJdIGxpYmd3ZWF0aGVyOiB1cGRhdGUg dG8gMy4zNi4xCgotLS0KIHNyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUgfCAxNSArKysrKyst LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGli Z3dlYXRoZXIvdGVtcGxhdGUKaW5kZXggMzRjNjRkNmUzYTEuLmZjZGI1ODc5NTAxIDEwMDY0NAot LS0gYS9zcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliZ3dlYXRo ZXIvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYmd3 ZWF0aGVyJwogcGtnbmFtZT1saWJnd2VhdGhlcgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4z Ni4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1j b25maWd1cmVfYXJncz0iLURlbmFibGVfdmFsYT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNlKQot IC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpCitjb25maWd1cmVfYXJn cz0iJCh2b3B0X2Jvb2wgZ2lyIGVuYWJsZV92YWxhKSAkKHZvcHRfYm9vbCBnaXIgaW50cm9zcGVj dGlvbikKICAtRHpvbmVpbmZvX2Rpcj0vdXNyL3NoYXJlL3pvbmVpbmZvIgotaG9zdG1ha2VkZXBl bmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgJCh2b3B0X2lmIHZhbGEgdmFsYSki Citob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyAkKHZvcHRf aWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdlb2NvZGUtZ2xpYi1kZXZlbCBndGsrMy1kZXZl bCBsaWJzb3VwLWdub21lLWRldmVsIgogY2hlY2tkZXBlbmRzPSJ0emRhdGEiCiBzaG9ydF9kZXNj PSJHTk9NRSBXZWF0aGVyIGluZm9ybWF0aW9uIGFjY2VzcyBsaWJyYXJ5IgpAQCAtMTUsMTAgKzE0 LDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL1Byb2plY3RzL0xpYkdXZWF0aGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtn bmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09ZDJmZmVlYzAxNzg4ZDAzZDFiYmYzNTExM2ZjMmYwNTRjNmMzNjAwNzIxMDg4ZjgyN2JjYzMx ZTVjNjAzYTMyZAorY2hlY2tzdW09ZGUyNzA5ZjBlZTIzM2IyMDExNmQ1ZmE5ODYxZDQwNjA3MTc5 OGM0YWEzNzgzMGNhMjVmNWVmMmMwMDgzZTQ1MAogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIK LWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCiti dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogcG9zdF9wYXRjaCgpIHsKIAkjIFRoaXMgdGVz dCByZXF1aXJlcyBMQ19JREVOVElGSUNBVElPTiwgd2hpY2ggaXMgYSBHTElCQydzIGV4dGVuc2lv bgpAQCAtMzUsOCArMzQsNiBAQCBsaWJnd2VhdGhlci1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92 ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJ dm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxh IiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gNGU1YTI5 ZGE5YmFhMzM1OTkzYjM0NGE1ZTFkYzhhMmQyYTMxM2FiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNC8xMDJdIGdub21l LW1lbnVzOiB1cGRhdGUgdG8gMy4zNi4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS1tZW51cy90ZW1wbGF0ZQppbmRleCAyOTEwMjEyOWMzOC4uZTc4N2ZiOGRlNmIgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9t ZS1tZW51cy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLW1lbnVzJwogcGtnbmFtZT1nbm9tZS1tZW51cwotdmVyc2lvbj0zLjMyLjAKLXJldmlzaW9u PTIKK3ZlcnNpb249My4zNi4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJl CiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGljIgpA QCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLW1lbnVzIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Yzg1MGM2NGIyMDc0MjY1ZmU1OWUwOTlhMzQw Yjg2ODljZjNkZDQ2NThkYzlmZWRkZDJhYjVlOTVmMWE3NGI3NAorY2hlY2tzdW09ZDkzNDhmMzhi ZGU5NTZmYzMyNzUzYjI4YzFjZGUxOWMxNzViZmRiZjFmNGQ1YjA2MDAzYjNhYTA5MTUzYmIxZgog CiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20g NGIxM2ZiOTZhYTIwOTZmNjgyOWVlZjM4Y2Q1NWIxYWRjYWYyNDkxNCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNS8xMDJd IGdub21lLWRlc2t0b3A6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGlicyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9nbm9tZS1kZXNrdG9wL3Bh dGNoZXMvYnVpbGQucGF0Y2ggfCAxOCArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUt ZGVza3RvcC90ZW1wbGF0ZSAgICAgICAgICAgIHwgMTEgKysrKysrKystLS0KIDMgZmlsZXMgY2hh bmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlmZiAtLWdpdCBh L2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDUwNzc3NzUxZjRjLi5kZjQ4ODQx YzViNSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0x MTc2LDcgKzExNzYsNyBAQCBsaWJnc3RiYXNlY2FtZXJhYmluc3JjLTEuMC5zby4wIGdzdC1wbHVn aW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0Y29kZWNwYXJzZXJzLTEuMC5zby4wIGdzdC1wbHVnaW5z LWJhZDEtMS4wLjBfMQogbGliZ3N0cGxheWVyLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4w LjBfMQogbGliZ3N0Z2wtMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFzZTEtMS4xNC4wXzEKLWxpYmdu b21lLWRlc2t0b3AtMy5zby4xOCBnbm9tZS1kZXNrdG9wLTMuMzQuMF8xCitsaWJnbm9tZS1kZXNr dG9wLTMuc28uMTkgZ25vbWUtZGVza3RvcC0zLjM3LjkwLjFfMQogbGlic2VjcmV0LTEuc28uMCBs aWJzZWNyZXQtMC4xMF8xCiBsaWJnd2VhdGhlci0zLnNvLjE2IGxpYmd3ZWF0aGVyLTMuMzQuMF8x CiBsaWJnbm9tZWtiZC5zby44IGxpYmdub21la2JkLTMuNi4wXzEKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1kZXNr dG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmVmZWQwMGEyNWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1kZXNr dG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorY29tbWl0IDRmNTVmZjA3 ODQxMTk5M2I3ODJlNzRlYTE4YzVjNmFiMzVhZGY2ODUKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiAgIFdlZCBBdWcgMTIgMDU6MjY6MDAgMjAyMCAr MDIwMAorCisgICAgYmxhCisKK2RpZmYgLS1naXQgbGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5o IGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAoraW5kZXggMTExYmFiMy4uNzY5ODY3MiAxMDA2 NDQKKy0tLSBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgKKysrKyBsaWJnbm9tZS1kZXNrdG9w L2dub21lLXJyLmgKK0BAIC0yOCw2ICsyOCw3IEBACisgI2Vycm9yICAgIEdub21lUlIgaXMgdW5z dGFibGUgQVBJLiBZb3UgbXVzdCBkZWZpbmUgR05PTUVfREVTS1RPUF9VU0VfVU5TVEFCTEVfQVBJ IGJlZm9yZSBpbmNsdWRpbmcgZ25vbWVyci5oCisgI2VuZGlmCisgCisrI2luY2x1ZGUgPHN0ZGlu dC5oPgorICNpbmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPGdkay9nZGsuaD4KKyAKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZGVz a3RvcC90ZW1wbGF0ZQppbmRleCA5OTJjYjFmZjE2YS4uYmQwYjJmNWMxZDkgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRlc2t0 b3AvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21l LWRlc2t0b3AnCiBwa2duYW1lPWdub21lLWRlc2t0b3AKLXZlcnNpb249My4zNC4xCit2ZXJzaW9u PTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2ly IgotY29uZmlndXJlX2FyZ3M9Ii1EZ25vbWUtZGlzdHJpYnV0b3I9Vm9pZExpbnV4IC1EdWRldj1l bmFibGVkCitjb25maWd1cmVfYXJncz0iLURnbm9tZV9kaXN0cmlidXRvcj1Wb2lkTGludXggLUR1 ZGV2PWVuYWJsZWQgLURzeXN0ZW1kPWRpc2FibGVkCiAgLURpbnRyb3NwZWN0aW9uPSQodm9wdF9p ZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgaXRzdG9vbCBwa2ct Y29uZmlnIGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZXVkZXYtbGlidWRldi1kZXZlbCBnc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGd0ayszLWRldmVsCkBAIC0xNiwxMSArMTYsMTYg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1kZXNrdG9wIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09YzFkYmViNTY2NmRhZDI3MTY2Yzc2OWU0OGUyYWI0MWRkNWVkNzQ3 MThlYTM1ZWI1N2M4NDg4NzkwNjYyZGM1YQorY2hlY2tzdW09MDg5ZGJiZTNjNjZmZTU1NzU2NTlh NGEzODVkNWQ0YmJkOTljZjYzNzAzNGRmMzE3ZjIxY2Y1ODZiNWRkNmI5MAogCiBidWlsZF9vcHRp b25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAorIyBuZWVkcyBYCitkb19j aGVjaygpIHsKKwk6Cit9CisKIGdub21lLWRlc2t0b3AtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBl bmRzPSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsPj0zLjEyCiAJ IGdkay1waXhidWYtZGV2ZWwgaXNvLWNvZGVzIGxpYlgxMS1kZXZlbCBsaWJnbGliLWRldmVsIGxp YnNlY2NvbXAtZGV2ZWwKCkZyb20gODhhNmU4NmUyNzkwNjI2MGJlNzI3MmNkNmI5MjAxMjBhZWY5 Njc0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDAzNi8xMDJdIGdub21lLXNldHRpbmdzLWRhZW1vbjogdXBkYXRlIHRvIDMu MzguMAoKLS0tCiAuLi4vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoICAgICAgICAgICAg fCAxMzYgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90 ZW1wbGF0ZSAgICAgICAgfCAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXR0 aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBh dGNoIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xp Z2h0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNWNhNmJk NDNkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3Bh dGNoZXMvbG9naW5kLWJhY2tsaWdodC5wYXRjaApAQCAtMCwwICsxLDEzNiBAQAorRnJvbSAzODQ1 YjNhN2I1OGYyNmVjNjhkYmMxYzQ1N2VhZDA2ZjQ4ODExODBiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBG cmksIDE0IEF1ZyAyMDIwIDE3OjQ4OjIxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFRoZSBuZXcg bG9naW5kIGJyaWdodG5lc3MgY29kZSBkb2Vzbid0IHdvcmsgd2l0aCBlbG9naW5kLgorCitodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFlbW9uLy0vY29tbWl0 L2NkMDUxZTZjN2NjZmI3ZTdiMGVjNDQwNDA5YzU1OWIyZTUxMjg0ZTgKKy0tLQorIHBsdWdpbnMv cG93ZXIvZ3NkLWJhY2tsaWdodC5jIHwgNzcgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYyBwbHVnaW5zL3Bvd2Vy L2dzZC1iYWNrbGlnaHQuYworaW5kZXggY2E1ZjI3Mi4uNGFjYzJlNSAxMDA2NDQKKy0tLSBwbHVn aW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworKysrIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdo dC5jCitAQCAtNDAsOCArNDAsNiBAQCBzdHJ1Y3QgX0dzZEJhY2tsaWdodAorICAgICAgICAgZ2lu dCBicmlnaHRuZXNzX3N0ZXA7CisgCisgI2lmZGVmIF9fbGludXhfXworLSAgICAgICAgR0RCdXNQ cm94eSAqbG9naW5kX3Byb3h5OworLQorICAgICAgICAgR1VkZXZDbGllbnQgKnVkZXY7CisgICAg ICAgICBHVWRldkRldmljZSAqdWRldl9kZXZpY2U7CisgCitAQCAtNjEsMTAgKzU5LDYgQEAgZW51 bSB7CisgICAgICAgICBQUk9QX0xBU1QsCisgfTsKKyAKKy0jZGVmaW5lIFNZU1RFTURfREJVU19O QU1FICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmxvZ2luMSIKKy0jZGVm aW5lIFNZU1RFTURfREJVU19QQVRIICAgICAgICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVz a3RvcC9sb2dpbjEvc2Vzc2lvbi9hdXRvIgorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX0lOVEVSRkFD RSAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xLlNlc3Npb24iCistCisg c3RhdGljIEdQYXJhbVNwZWMgKnByb3BzW1BST1BfTEFTVF07CisgCisgc3RhdGljIHZvaWQgICAg IGdzZF9iYWNrbGlnaHRfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgICppZmFj ZSk7CitAQCAtNDgyLDMwICs0NzYsMTMgQEAgZ3NkX2JhY2tsaWdodF9zZXRfYnJpZ2h0bmVzc192 YWxfYXN5bmMgKEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0LAorICAgICAgICAgaWYgKGJhY2tsaWdo dC0+dWRldl9kZXZpY2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBCYWNrbGlnaHRIZWxw ZXJEYXRhICp0YXNrX2RhdGE7CisgCistICAgICAgICAgICAgICAgIGlmIChiYWNrbGlnaHQtPmxv Z2luZF9wcm94eSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94eV9jYWxs IChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdSkiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFja2xpZ2h0 IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ191ZGV2X2RldmljZV9nZXRfbmFtZSAoYmFja2xpZ2h0LT51ZGV2X2RldmljZSksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQpLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgTlVMTCwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgcGVyY2VudCA9IEFCU19UT19QRVJDRU5UQUdFIChiYWNrbGlnaHQtPmJy aWdodG5lc3NfbWluLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX21heCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVz c190YXJnZXQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19yZXR1cm5faW50ICh0 YXNrLCBwZXJjZW50KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB0YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBlckRhdGEsIDEpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tfZGF0YS0+dmFsdWUgPSBiYWNrbGlnaHQtPmJy aWdodG5lc3NfdGFyZ2V0OworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19zZXRfdGFz a19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFfZGVzdHJveSk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAgbm93LiBRdWV1ZSBp dCBhbmQgZW5zdXJlIHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKy0gICAgICAgICAgICAg ICAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+dGFza3MsIHRhc2spOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNrcXVldWUg KGJhY2tsaWdodCk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgdGFza19k YXRhID0gZ19uZXcwIChCYWNrbGlnaHRIZWxwZXJEYXRhLCAxKTsKKysgICAgICAgICAgICAgICAg dGFza19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQ7CisrICAgICAg ICAgICAgICAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdo dF90YXNrX2RhdGFfZGVzdHJveSk7CisrCisrICAgICAgICAgICAgICAgIC8qIFRhc2sgaXMgc2V0 IHVwIG5vdy4gUXVldWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2luZyBzb21ldGhpbmcuICov CisrICAgICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xpZ2h0LT50YXNrcywg dGFzayk7CisrICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNrcXVldWUg KGJhY2tsaWdodCk7CisgCisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KK0BA IC04MjMsNyArODAwLDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pbml0IChHSW5pdGFibGUg ICAgICAgKmluaXRhYmxlLAorIHsKKyAgICAgICAgIEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0ID0g R1NEX0JBQ0tMSUdIVCAoaW5pdGFibGUpOworICAgICAgICAgR25vbWVSUk91dHB1dCogb3V0cHV0 ID0gTlVMTDsKKy0gICAgICAgIEdFcnJvciAqbG9naW5kX2Vycm9yID0gTlVMTDsKKyAKKyAgICAg ICAgIGlmIChjYW5jZWxsYWJsZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgIGdfc2V0X2Vy cm9yX2xpdGVyYWwgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX05PVF9TVVBQT1JURUQs CitAQCAtODMyLDQ0ICs4MDgsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxlX2luaXQgKEdJbml0 YWJsZSAgICAgICAqaW5pdGFibGUsCisgICAgICAgICB9CisgCisgI2lmZGVmIF9fbGludXhfXwor LSAgICAgICAgYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkgPQorLSAgICAgICAgICAgICAgICBnX2Ri dXNfcHJveHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TWVNURU0sCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19OQU1FLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNRF9EQlVTX1BB VEgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTWVNU RU1EX0RCVVNfSU5URVJGQUNFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistICAgICAgICBpZiAoYmFja2xpZ2h0 LT5sb2dpbmRfcHJveHkpIHsKKy0gICAgICAgICAgICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgU2V0 QnJpZ2h0bmVzcyBtZXRob2QgZG9lcyBleGlzdCAqLworLSAgICAgICAgICAgICAgICBnX2RidXNf cHJveHlfY2FsbF9zeW5jIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLCBOVUxMLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05F LCAtMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJmxv Z2luZF9lcnJvcik7CistCistICAgICAgICAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMgKGxv Z2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHX0RCVVNfRVJST1JfSU5WQUxJRF9BUkdTKSkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIC8qIFdlIGFyZSBjYWxsaW5nIHRoZSBtZXRob2Qgd2l0aCBubyBhcmd1bWVudHMsIHNv CistICAgICAgICAgICAgICAgICAgICAgICAgICogdGhpcyBpcyBleHBlY3RlZC4KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX2Vy cm9yICgmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnX2Vycm9y X21hdGNoZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX1VOS05PV05fTUVUSE9EKSkg eworLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbWQgdmVyc2lvbiBpcyB0b28gb2xk LCBzbyBpZ25vcmUuCistICAgICAgICAgICAgICAgICAgICAgICAgICovCistICAgICAgICAgICAg ICAgICAgICAgICAgZ19jbGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7CistICAgICAgICAgICAg ICAgICAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7Cist ICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLyogRmFp bCBvbiBhbnl0aGluZyBlbHNlICovCistICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9v YmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIGlmIChsb2dpbmRfZXJyb3IpIHsKKy0gICAgICAgICAgICAg ICAgZ193YXJuaW5nICgiTm8gbG9naW5kIGZvdW5kOiAlcyIsIGxvZ2luZF9lcnJvci0+bWVzc2Fn ZSk7CistICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAobG9naW5kX2Vycm9yKTsKKy0gICAg ICAgIH0KKy0KKyAgICAgICAgIC8qIFRyeSBmaW5kaW5nIGEgdWRldiBkZXZpY2UuICovCisgICAg ICAgICBpZiAoZ3NkX2JhY2tsaWdodF91ZGV2X2luaXQgKGJhY2tsaWdodCkpCisgICAgICAgICAg ICAgICAgIGdvdG8gZm91bmQ7CitAQCAtOTExLDcgKzg0OSw2IEBAIGdzZF9iYWNrbGlnaHRfZmlu YWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyAjaWZkZWYgX19saW51eF9fCisgICAgICAgICBnX2Fz c2VydCAoYmFja2xpZ2h0LT5hY3RpdmVfdGFzayA9PSBOVUxMKTsKKyAgICAgICAgIGdfYXNzZXJ0 IChnX3F1ZXVlX2lzX2VtcHR5ICgmYmFja2xpZ2h0LT50YXNrcykpOworLSAgICAgICAgZ19jbGVh cl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CisgICAgICAgICBnX2NsZWFyX29i amVjdCAoJmJhY2tsaWdodC0+dWRldik7CisgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2ts aWdodC0+dWRldl9kZXZpY2UpOworICAgICAgICAgaWYgKGJhY2tsaWdodC0+aWRsZV91cGRhdGUp IHsKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFl bW9uL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vdGVtcGxhdGUKaW5k ZXggYTcwZTI4YmU1ZmEuLmI2ZGEyOGUyNTU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNl dHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1v bi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt c2V0dGluZ3MtZGFlbW9uJwogcGtnbmFtZT1nbm9tZS1zZXR0aW5ncy1kYWVtb24KLXZlcnNpb249 My4zNC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzKz0iLURzeXN0ZW1kPWZhbHNlIgotaG9zdG1ha2VkZXBl bmRzPSJjbWFrZSBkb2Nib29rLXhzbCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieHNsdCBw ZXJsIHBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jvb2steHNsIGdldHRl eHQgZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhzbHQKKyBwZXJsIHBrZy1jb25maWciCiBt YWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29sb3JkLWRl dmVsIGN1cHMtZGV2ZWwgZ2NyLWRldmVsCiAgZ2VvY2x1ZTItZGV2ZWwgZ25vbWUtZGVza3RvcC1k ZXZlbCBpYnVzLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdub21la2JkLWRldmVsCiAgbGli Z3dlYXRoZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnJzdmctZGV2ZWwgbGlid2Fjb20tZGV2 ZWwgbnNzLWRldmVsCkBAIC0xMiwxMyArMTMsMTMgQEAgbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5h Z2VyLWRldmVsIGFsc2EtbGliLWRldmVsIGNvbG9yZC1kZXZlbCBjdXBzLWRldmVsIGdjci1kZXYK ICB4Zjg2LWlucHV0LXdhY29tLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIHB1 bHNlYXVkaW8iCiBjaGVja2RlcGVuZHM9ImVsb2dpbmQgbGlibm90aWZ5IHB5dGhvbjMtZGJ1c21v Y2sgcHl0aG9uMy1nb2JqZWN0Ci0gcHl0aG9uMy1weWNvZGVzdHlsZSIKKyBweXRob24zLXB5Y29k ZXN0eWxlIHdoaWNoIGh3aWRzIGV1ZGV2Igogc2hvcnRfZGVzYz0iR05PTUUgc2V0dGluZ3MgZGFl bW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUu b3JnL0dOT01FL2dub21lLXNldHRpbmdzLWRhZW1vbiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRF fS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPTk5ODFhMjBiYWJmOGRhNzc0NGI3ZmJlMTc1YjllMzYwNzhiZjA4ZjNiZjY1ZmU1 YWVkZWI4MmNmZTI3YWMxMWYKK2NoZWNrc3VtPWI3ZWQ1YjVmYWI5YWFkMTkyY2VlZDZhOTViZTI4 MDUxMjRlM2M2M2M0Njg5MWJiYWUwNzZmN2VjM2ZkNjc5MmUKIAogaWYgWyAiJENST1NTX0JVSUxE IiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHBvbGtpdCIKCkZyb20gMmVhNDllNTYzNmEx NWZiMjYxN2RjYjczODY1M2JkMzgwMjBjMGE2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNy8xMDJdIG11dHRlcjogdXBk YXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMTggKy0KIC4uLi9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRj aCAgICAgICB8ICAxMSAtCiBzcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRj aCAgICAgfCA1MjEgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL211dHRlci90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0 aW9ucygrKSwgNTU1IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXV0 dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gKCmRpZmYgLS1naXQg YS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkZjQ4ODQxYzViNS4uZjJhNmU5 OTU3ZTQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAt MzAwMiwxNSArMzAwMiwxNSBAQCBsaWJkZWNvcmF0aW9uLnNvLjAgY29tcGl6LWNvcmUtMC44LjE0 XzEKIGxpYmNvbXBpemNvbmZpZy5zby4wIGxpYmNvbXBpemNvbmZpZy0wLjguMTRfMQogbGliZW1l cmFsZGVuZ2luZS5zby4wIGVtZXJhbGQtMC44LjE0XzEKIGxpYmhhbmd1bC5zby4xIGxpYmhhbmd1 bC0wLjEuMF8xCi1saWJtdXR0ZXItNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNs dXR0ZXItNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jbHV0dGVyLTUuc28uMCBtdXR0 ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhdGgtNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxp Ym11dHRlci1jb2dsLXBhdGgtNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wt NS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLTUuc28uMCBtdXR0ZXItMy4zNC4x XzEKLWxpYm11dHRlci1jb2dsLXBhbmdvLTUuc28gbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXIt Y29nbC1wYW5nby01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCitsaWJtdXR0ZXItNy5zby4wIG11dHRl ci0zLjM3LjkwXzEKK2xpYm11dHRlci1jbHV0dGVyLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGli bXV0dGVyLWNsdXR0ZXItNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBh dGgtNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC1wYXRoLTcuc28uMCBtdXR0 ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11 dHRlci1jb2dsLTcuc28uMCBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC1wYW5nby03 LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdvLTcuc28uMCBtdXR0ZXIt My4zNy45MF8xCiBsaWJnZW9jbHVlLTIuc28uMCBnZW9jbHVlMi0yLjQuNF8xCiBsaWJnZXB1Yi5z by4wIGxpYmdlcHViLTAuNF8xCiBsaWJzbG9weS5zby43LjUgc2xvcC03LjVfMQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2ggYi9z cmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDkwOTg4ODg3YzMuLjAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGNvZ2wvY29nbC9tZXNvbi5idWlsZAkyMDE5LTEw LTA4IDE5OjE1OjEwLjAwMDAwMDAwMCArMDIwMAotKysrIGNvZ2wvY29nbC9tZXNvbi5idWlsZAky MDE5LTEyLTE2IDE1OjQ1OjQ0LjAzNzY0MDU0OCArMDEwMAotQEAgLTQ4LDcgKzQ4LDcgQEAKLSBi dWlsdF9oZWFkZXJzICs9IFtjb2dsX2dsX2hlYWRlcl9oXQotIAotIGlmIGhhdmVfZWdsCi0tICBj b2dsX2VnbF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUgPEVHTC9lZ2wuaD5cbiNpbmNsdWRl IDxFR0wvZWdsZXh0Lmg+JwotKyAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJyNpbmNsdWRl IDxFR0wvZWdsLmg+XG4jaW5jbHVkZSA8RUdML2VnbGV4dC5oPlxuI2luY2x1ZGUgPEVHTC9lZ2xt ZXNhZXh0Lmg+JwotIGVsc2UKLSAgIGNvZ2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcnCi0gZW5k aWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNo IGIvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGViZmY2NWZiYTg1Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUy MSArMCwwIEBACi1CdWlsZCBtdXR0ZXIgYWdhaW5zdCBwaXBld2lyZS0wLjMsIGJhc2VkIG9uIGEg cGF0Y2ggYXQ6Ci1odHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbXV0dGVyLy0vbWVyZ2Vf cmVxdWVzdHMvMTA2MgotLS0tIG1lc29uLmJ1aWxkCi0rKysgbWVzb24uYnVpbGQKLUBAIC01MCw3 ICs1MCw3IEBAIGxpYmlucHV0X3JlcSA9ICc+PSAxLjcnCi0gZ2JtX3JlcSA9ICc+PSAxMC4zJwot Ci0gIyBzY3JlZW4gY2FzdCB2ZXJzaW9uIHJlcXVpcmVtZW50cwotLWxpYnBpcGV3aXJlX3JlcSA9 ICc+PSAwLjIuNScKLStsaWJwaXBld2lyZV9yZXEgPSAnPj0gMC4zLjAnCi0KLSBnbm9tZSA9IGlt cG9ydCgnZ25vbWUnKQotIHBrZyA9IGltcG9ydCgncGtnY29uZmlnJykKLUBAIC0yNDEsNyArMjQx LDcgQEAgZW5kaWYKLQotIGhhdmVfcmVtb3RlX2Rlc2t0b3AgPSBnZXRfb3B0aW9uKCdyZW1vdGVf ZGVza3RvcCcpCi0gaWYgaGF2ZV9yZW1vdGVfZGVza3RvcAotLSAgbGlicGlwZXdpcmVfZGVwID0g ZGVwZW5kZW5jeSgnbGlicGlwZXdpcmUtMC4yJywgdmVyc2lvbjogbGlicGlwZXdpcmVfcmVxKQot KyAgbGlicGlwZXdpcmVfZGVwID0gZGVwZW5kZW5jeSgnbGlicGlwZXdpcmUtMC4zJywgdmVyc2lv bjogbGlicGlwZXdpcmVfcmVxKQotIGVuZGlmCi0KLSBoYXZlX2ludHJvc3BlY3Rpb24gPSBnZXRf b3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLWRpZmYgLS1naXQgYS9zcmMvYmFja2VuZHMvbWV0YS1z Y3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMgYi9zcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1z dHJlYW0tc3JjLmMKLWluZGV4IDgyYzVjYmE0MzYuLmJhMWNlOTRhN2UgMTAwNjQ0Ci0tLS0gc3Jj L2JhY2tlbmRzL21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi0rKysgc3JjL2JhY2tlbmRz L21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi1AQCAtMjksNiArMjksNyBAQAotICNpbmNs dWRlIDxzcGEvcGFyYW0vcHJvcHMuaD4KLSAjaW5jbHVkZSA8c3BhL3BhcmFtL2Zvcm1hdC11dGls cy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0vdmlkZW8vZm9ybWF0LXV0aWxzLmg+Ci0rI2luY2x1 ZGUgPHNwYS91dGlscy9yZXN1bHQuaD4KLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gI2luY2x1ZGUg PHN5cy9tbWFuLmg+Ci0KLUBAIC02MiwxNSArNjMsNiBAQCBlbnVtCi0KLSBzdGF0aWMgZ3VpbnQg c2lnbmFsc1tOX1NJR05BTFNdOwotCi0tdHlwZWRlZiBzdHJ1Y3QgX01ldGFTcGFUeXBlCi0tewot LSAgc3RydWN0IHNwYV90eXBlX21lZGlhX3R5cGUgbWVkaWFfdHlwZTsKLS0gIHN0cnVjdCBzcGFf dHlwZV9tZWRpYV9zdWJ0eXBlIG1lZGlhX3N1YnR5cGU7Ci0tICBzdHJ1Y3Qgc3BhX3R5cGVfZm9y bWF0X3ZpZGVvIGZvcm1hdF92aWRlbzsKLS0gIHN0cnVjdCBzcGFfdHlwZV92aWRlb19mb3JtYXQg dmlkZW9fZm9ybWF0OwotLSAgdWludDMyX3QgbWV0YV9jdXJzb3I7Ci0tfSBNZXRhU3BhVHlwZTsK LS0KLSB0eXBlZGVmIHN0cnVjdCBfTWV0YVBpcGVXaXJlU291cmNlCi0gewotICAgR1NvdXJjZSBi YXNlOwotQEAgLTgyLDE5ICs3NCwxOSBAQCB0eXBlZGVmIHN0cnVjdCBfTWV0YVNjcmVlbkNhc3RT dHJlYW1TcmNQcml2YXRlCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW0gKnN0cmVhbTsKLQot KyAgc3RydWN0IHB3X2NvbnRleHQgKnBpcGV3aXJlX2NvbnRleHQ7Ci0gICBzdHJ1Y3QgcHdfY29y ZSAqcGlwZXdpcmVfY29yZTsKLS0gIHN0cnVjdCBwd19yZW1vdGUgKnBpcGV3aXJlX3JlbW90ZTsK LS0gIHN0cnVjdCBwd190eXBlICpwaXBld2lyZV90eXBlOwotICAgTWV0YVBpcGVXaXJlU291cmNl ICpwaXBld2lyZV9zb3VyY2U7Ci0tICBzdHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfcmVtb3RlX2xp c3RlbmVyOwotKyAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX2NvcmVfbGlzdGVuZXI7Ci0KLSAg IGdib29sZWFuIGlzX2VuYWJsZWQ7Ci0KLSAgIHN0cnVjdCBwd19zdHJlYW0gKnBpcGV3aXJlX3N0 cmVhbTsKLSAgIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9zdHJlYW1fbGlzdGVuZXI7Ci0rICB1 aW50MzJfdCBub2RlX2lkOwotCi0tICBNZXRhU3BhVHlwZSBzcGFfdHlwZTsKLSAgIHN0cnVjdCBz cGFfdmlkZW9faW5mb19yYXcgdmlkZW9fZm9ybWF0OwotKyAgaW50IHZpZGVvX3N0cmlkZTsKLQot ICAgdWludDY0X3QgbGFzdF9mcmFtZV90aW1lc3RhbXBfdXM7Ci0KLUBAIC0xMTIsOCArMTA0LDYg QEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFfc2NyZWVu X2Nhc3Rfc3RyZWFtX3NyY19pbml0X2luaXRhYmxlX2lmYWNlKQotICAgICAgICAgICAgICAgICAg ICAgICAgICBHX0FERF9QUklWQVRFIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYykpCi0KLS0jZGVm aW5lIFBST1BfUkFOR0UobWluLCBtYXgpIDIsIChtaW4pLCAobWF4KQotLQotIHN0YXRpYyB2b2lk Ci0gbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9zcGVjcyAoTWV0YVNjcmVlbkNhc3RT dHJlYW1TcmMgKnNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgICAgICAgICAgICAgICAgICAgICAqd2lkdGgsCi1AQCAtMjg2LDkgKzI3Niw2IEBAIG1ldGFf c2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfZW1wdHlfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0YSAo TWV0YVNjcmVlbkNhc3RTdHJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgeCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCAgICAgICAgICAgICAgICAgICAgICB5KQotIHsKLS0gIE1ldGFTY3JlZW5DYXN0U3Ry ZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19n ZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBlICpzcGFfdHlwZSA9ICZw cml2LT5zcGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXAgKnNwYV9tZXRhX2JpdG1h cDsKLQotICAgc3BhX21ldGFfY3Vyc29yLT5pZCA9IDE7Ci1AQCAtMzAwLDcgKzI4Nyw3IEBAIG1l dGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfZW1wdHlfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0 YSAoTWV0YVNjcmVlbkNhc3RTdHJlCi0gICBzcGFfbWV0YV9iaXRtYXAgPSBTUEFfTUVNQkVSIChz cGFfbWV0YV9jdXJzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFfbWV0 YV9jdXJzb3ItPmJpdG1hcF9vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLS0gIHNwYV9tZXRhX2JpdG1hcC0+Zm9ybWF0ID0g c3BhX3R5cGUtPnZpZGVvX2Zvcm1hdC5SR0JBOwotKyAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQg PSBTUEFfVklERU9fRk9STUFUX1JHQkE7Ci0gICBzcGFfbWV0YV9iaXRtYXAtPm9mZnNldCA9IHNp emVvZiAoc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0KLSAgIHNwYV9tZXRhX2N1cnNvci0+aG90 c3BvdC54ID0gMDsKLUBAIC0zMTcsOSArMzA0LDYgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX3NldF9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50ICAgICAgICAgICAgICAgICAgICAgIHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAgICAgICAgICAgICAgICAgICAgc2Nh bGUpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwot LSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgQ29nbFRleHR1 cmUgKmN1cnNvcl90ZXh0dXJlOwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3BhX21ldGFf Yml0bWFwOwotICAgaW50IGhvdHNwb3RfeCwgaG90c3BvdF95OwotQEAgLTM0Niw3ICszMzAsNyBA QCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEg KE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjCi0gICBzcGFfbWV0YV9iaXRtYXAgPSBTUEFfTUVNQkVS IChzcGFfbWV0YV9jdXJzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFf bWV0YV9jdXJzb3ItPmJpdG1hcF9vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLS0gIHNwYV9tZXRhX2JpdG1hcC0+Zm9ybWF0 ID0gc3BhX3R5cGUtPnZpZGVvX2Zvcm1hdC5SR0JBOwotKyAgc3BhX21ldGFfYml0bWFwLT5mb3Jt YXQgPSBTUEFfVklERU9fRk9STUFUX1JHQkE7Ci0gICBzcGFfbWV0YV9iaXRtYXAtPm9mZnNldCA9 IHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0KLSAgIG1ldGFfY3Vyc29yX3Nwcml0 ZV9nZXRfaG90c3BvdCAoY3Vyc29yX3Nwcml0ZSwgJmhvdHNwb3RfeCwgJmhvdHNwb3RfeSk7Ci1A QCAtMzgyLDEyICszNjYsMTAgQEAgc3RhdGljIHZvaWQKLSBhZGRfY3Vyc29yX21ldGFkYXRhIChN ZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBzcGFfYnVmZmVyICAgICAgICpzcGFfYnVmZmVyKQotIHsKLS0gIE1ldGFTY3JlZW5DYXN0U3Ry ZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19n ZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBlICpzcGFfdHlwZSA9ICZw cml2LT5zcGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfbWV0YV9jdXJzb3IgKnNwYV9tZXRhX2N1cnNv cjsKLQotLSAgc3BhX21ldGFfY3Vyc29yID0gc3BhX2J1ZmZlcl9maW5kX21ldGEgKHNwYV9idWZm ZXIsIHNwYV90eXBlLT5tZXRhX2N1cnNvcik7Ci0rICBzcGFfbWV0YV9jdXJzb3IgPSBzcGFfYnVm ZmVyX2ZpbmRfbWV0YV9kYXRhIChzcGFfYnVmZmVyLCBTUEFfTUVUQV9DdXJzb3IsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKCpzcGFfbWV0 YV9jdXJzb3IpKTsKLSAgIGlmIChzcGFfbWV0YV9jdXJzb3IpCi0gICAgIG1ldGFfc2NyZWVuX2Nh c3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX21ldGFkYXRhIChzcmMsIHNwYV9tZXRhX2N1cnNvcik7 Ci0gfQotQEAgLTQ0NywxNCArNDI5LDE0IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19t YXliZV9yZWNvcmRfZnJhbWUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMpCi0gICAgIHsK LSAgICAgICBkYXRhID0gc3BhX2J1ZmZlci0+ZGF0YXNbMF0uZGF0YTsKLSAgICAgfQotLSAgZWxz ZSBpZiAoc3BhX2J1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBwcml2LT5waXBld2lyZV90eXBlLT5k YXRhLk1lbUZkKQotKyAgZWxzZSBpZiAoc3BhX2J1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBTUEFf REFUQV9NZW1GZCkKLSAgICAgewotICAgICAgIG1hcCA9IG1tYXAgKE5VTEwsIHNwYV9idWZmZXIt PmRhdGFzWzBdLm1heHNpemUgKyBzcGFfYnVmZmVyLT5kYXRhc1swXS5tYXBvZmZzZXQsCi0gICAg ICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwKLSAgICAg ICAgICAgICAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5mZCwgMCk7Ci0gICAgICAgaWYgKG1h cCA9PSBNQVBfRkFJTEVEKQotICAgICAgICAgewotLSAgICAgICAgICBnX3dhcm5pbmcgKCJGYWls ZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlc1xuIiwKLSsgICAgICAgICAgZ193 YXJuaW5nICgiRmFpbGVkIHRvIG1tYXAgcGlwZXdpcmUgc3RyZWFtIGJ1ZmZlcjogJXMiLAotICAg ICAgICAgICAgICAgICAgICAgIHN0cmVycm9yIChlcnJubykpOwotICAgICAgICAgICByZXR1cm47 Ci0gICAgICAgICB9Ci1AQCAtNDY5LDI4ICs0NTEsMzAgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJl YW1fc3JjX21heWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYykK LQotICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19yZWNvcmRfZnJhbWUgKHNyYywg ZGF0YSkpCi0gICAgIHsKLS0gICAgICBzdHJ1Y3Qgc3BhX21ldGFfdmlkZW9fY3JvcCAqc3BhX21l dGFfdmlkZW9fY3JvcDsKLSsgICAgICBzdHJ1Y3Qgc3BhX21ldGFfcmVnaW9uICpzcGFfbWV0YV92 aWRlb19jcm9wOwotCi0gICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0uY2h1bmstPnNpemUgPSBz cGFfYnVmZmVyLT5kYXRhc1swXS5tYXhzaXplOwotKyAgICAgIHNwYV9idWZmZXItPmRhdGFzWzBd LmNodW5rLT5zdHJpZGUgPSBwcml2LT52aWRlb19zdHJpZGU7Ci0KLSAgICAgICAvKiBVcGRhdGUg VmlkZW9Dcm9wIGlmIG5lZWRlZCAqLwotICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AgPQotLSAg ICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGEgKHNwYV9idWZmZXIsIHByaXYtPnBpcGV3aXJlX3R5 cGUtPm1ldGEuVmlkZW9Dcm9wKTsKLSsgICAgICAgIHNwYV9idWZmZXJfZmluZF9tZXRhX2RhdGEg KHNwYV9idWZmZXIsIFNQQV9NRVRBX1ZpZGVvQ3JvcCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZiAoKnNwYV9tZXRhX3ZpZGVvX2Nyb3ApKTsKLSAgICAgICBpZiAo c3BhX21ldGFfdmlkZW9fY3JvcCkKLSAgICAgICAgIHsKLSAgICAgICAgICAgaWYgKG1ldGFfc2Ny ZWVuX2Nhc3Rfc3RyZWFtX3NyY19nZXRfdmlkZW9jcm9wIChzcmMsICZjcm9wX3JlY3QpKQotICAg ICAgICAgICAgIHsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnggPSBjcm9w X3JlY3QueDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnkgPSBjcm9wX3Jl Y3QueTsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndpZHRoID0gY3JvcF9y ZWN0LndpZHRoOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0g Y3JvcF9yZWN0LmhlaWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJl Z2lvbi5wb3NpdGlvbi54ID0gY3JvcF9yZWN0Lng7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92 aWRlb19jcm9wLT5yZWdpb24ucG9zaXRpb24ueSA9IGNyb3BfcmVjdC55OwotKyAgICAgICAgICAg ICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUud2lkdGggPSBjcm9wX3JlY3Qud2lk dGg7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS5oZWln aHQgPSBjcm9wX3JlY3QuaGVpZ2h0OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgZWxzZQot ICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnggPSAw OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9IDA7Ci0tICAgICAgICAg ICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT53aWR0aCA9IHByaXYtPnN0cmVhbV93aWR0aDsKLS0g ICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPmhlaWdodCA9IHByaXYtPnN0cmVhbV9o ZWlnaHQ7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24ucG9zaXRp b24ueCA9IDA7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24ucG9z aXRpb24ueSA9IDA7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24u c2l6ZS53aWR0aCA9IHByaXYtPnN0cmVhbV93aWR0aDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRh X3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCA9IHByaXYtPnN0cmVhbV9oZWlnaHQ7Ci0g ICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9Ci1AQCAtNTU1LDcgKzUzOSw2IEBAIG9u X3N0cmVhbV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgIE1l dGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotICAgTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmNQcml2YXRlICpwcml2ID0KLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dl dF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgdWludDMyX3Qgbm9kZV9pZDsKLQotICAgc3dp dGNoIChzdGF0ZSkKLSAgICAgewotQEAgLTU2MywxNCArNTQ2LDEyIEBAIG9uX3N0cmVhbV9zdGF0 ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAgICBnX3dhcm5pbmcg KCJwaXBld2lyZSBzdHJlYW0gZXJyb3I6ICVzIiwgZXJyb3JfbWVzc2FnZSk7Ci0gICAgICAgbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0gICAgICAgYnJl YWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX0NPTkZJR1VSRToKLS0gICAgICBub2RlX2lk ID0gcHdfc3RyZWFtX2dldF9ub2RlX2lkIChwcml2LT5waXBld2lyZV9zdHJlYW0pOwotLSAgICAg IGdfc2lnbmFsX2VtaXQgKHNyYywgc2lnbmFsc1tSRUFEWV0sIDAsICh1bnNpZ25lZCBpbnQpIG5v ZGVfaWQpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5F Q1RFRDoKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElORzoKLS0gICAgY2FzZSBQ V19TVFJFQU1fU1RBVEVfUkVBRFk6Ci0gICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1BBVVNFRDoK LSsgICAgICBpZiAocHJpdi0+bm9kZV9pZCA9PSBTUEFfSURfSU5WQUxJRCAmJiBwcml2LT5waXBl d2lyZV9zdHJlYW0pCi0rICAgICAgICB7Ci0rICAgICAgICAgIHByaXYtPm5vZGVfaWQgPSBwd19z dHJlYW1fZ2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0rICAgICAgICAgIGdf c2lnbmFsX2VtaXQgKHNyYywgc2lnbmFsc1tSRUFEWV0sIDAsICh1bnNpZ25lZCBpbnQpIHByaXYt Pm5vZGVfaWQpOwotKyAgICAgICAgfQotICAgICAgIGlmIChtZXRhX3NjcmVlbl9jYXN0X3N0cmVh bV9zcmNfaXNfZW5hYmxlZCAoc3JjKSkKLSAgICAgICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19kaXNhYmxlIChzcmMpOwotICAgICAgIGJyZWFrOwotQEAgLTU3OCw2OCArNTU5LDY5IEBA IG9uX3N0cmVhbV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSAg ICAgICBpZiAoIW1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pc19lbmFibGVkIChzcmMpKQot ICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2VuYWJsZSAoc3JjKTsKLSAgICAg ICBicmVhazsKLSsgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfVU5DT05ORUNURUQ6Ci0rICAgIGNh c2UgUFdfU1RSRUFNX1NUQVRFX0NPTk5FQ1RJTkc6Ci0rICAgICAgYnJlYWs7Ci0gICAgIH0KLSB9 Ci0KLSBzdGF0aWMgdm9pZAotLW9uX3N0cmVhbV9mb3JtYXRfY2hhbmdlZCAodm9pZCAgICAgICAg ICAgICAgICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg c3BhX3BvZCAqZm9ybWF0KQotK29uX3N0cmVhbV9wYXJhbV9jaGFuZ2VkICh2b2lkICAgICAgICAg ICAgICAgICAqZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAg ICAgICAgIGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc3BhX3Bv ZCAqZm9ybWF0KQotIHsKLSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwot ICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLSAgICAgbWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgc3RydWN0 IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgdWludDhf dCBwYXJhbXNfYnVmZmVyWzEwMjRdOwotICAgaW50MzJfdCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUs IHNpemU7Ci0gICBzdHJ1Y3Qgc3BhX3BvZF9idWlsZGVyIHBvZF9idWlsZGVyOwotICAgY29uc3Qg c3RydWN0IHNwYV9wb2QgKnBhcmFtc1szXTsKLSAgIGNvbnN0IGludCBicHAgPSA0OwotCi0tICBp ZiAoIWZvcm1hdCkKLS0gICAgewotLSAgICAgIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2 LT5waXBld2lyZV9zdHJlYW0sIDAsIE5VTEwsIDApOwotLSAgICAgIHJldHVybjsKLS0gICAgfQot KyAgaWYgKCFmb3JtYXQgfHwgaWQgIT0gU1BBX1BBUkFNX0Zvcm1hdCkKLSsgICAgcmV0dXJuOwot Ci0gICBzcGFfZm9ybWF0X3ZpZGVvX3Jhd19wYXJzZSAoZm9ybWF0LAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZwcml2LT52aWRlb19mb3JtYXQsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnByaXYtPnNwYV90eXBlLmZvcm1hdF92aWRlbyk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCk7Ci0KLSAgIHdpZHRoID0gcHJp di0+dmlkZW9fZm9ybWF0LnNpemUud2lkdGg7Ci0gICBoZWlnaHQgPSBwcml2LT52aWRlb19mb3Jt YXQuc2l6ZS5oZWlnaHQ7Ci0gICBzdHJpZGUgPSBTUEFfUk9VTkRfVVBfTiAod2lkdGggKiBicHAs IDQpOwotICAgc2l6ZSA9IGhlaWdodCAqIHN0cmlkZTsKLQotKyAgcHJpdi0+dmlkZW9fc3RyaWRl ID0gc3RyaWRlOwotKwotICAgcG9kX2J1aWxkZXIgPSBTUEFfUE9EX0JVSUxERVJfSU5JVCAocGFy YW1zX2J1ZmZlciwgc2l6ZW9mIChwYXJhbXNfYnVmZmVyKSk7Ci0KLS0gIHBhcmFtc1swXSA9IHNw YV9wb2RfYnVpbGRlcl9vYmplY3QgKAotKyAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWlsZGVyX2Fk ZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFt LmlkQnVmZmVycywgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5CdWZmZXJzLAotLSAgICAi OiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuc2l6ZSwgImkiLCBzaXplLAotLSAgICAi OiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuc3RyaWRlLCAiaSIsIHN0cmlkZSwKLS0g ICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLmJ1ZmZlcnMsICJpcnUiLCAxNiwg UFJPUF9SQU5HRSAoMiwgMTYpLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZl cnMuYWxpZ24sICJpIiwgMTYpOwotLQotLSAgcGFyYW1zWzFdID0gc3BhX3BvZF9idWlsZGVyX29i amVjdCAoCi0rICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbUJ1ZmZlcnMsIFNQQV9QQVJBTV9CdWZm ZXJzLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19idWZmZXJzLCBTUEFfUE9EX0NIT0lDRV9SQU5H RV9JbnQgKDE2LCAyLCAxNiksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2Jsb2NrcywgU1BBX1BP RF9JbnQgKDEpLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19zaXplLCBTUEFfUE9EX0ludCAoc2l6 ZSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX3N0cmlkZSwgU1BBX1BPRF9JbnQgKHN0cmlkZSks Ci0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2FsaWduLCBTUEFfUE9EX0ludCAoMTYpKTsKLSsKLSsg IHBhcmFtc1sxXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9idWls ZGVyLAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZE1ldGEsIHBpcGV3aXJlX3R5cGUtPnBh cmFtX21ldGEuTWV0YSwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnR5cGUs ICJJIiwgcGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRlb0Nyb3AsCi0tICAgICI6IiwgcGlwZXdpcmVf dHlwZS0+cGFyYW1fbWV0YS5zaXplLCAiaSIsIHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX3ZpZGVv X2Nyb3ApKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFNX01ldGEs Ci0rICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRBX1ZpZGVvQ3Jv cCksCi0rICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChzaXplb2YgKHN0cnVj dCBzcGFfbWV0YV9yZWdpb24pKSk7Ci0KLS0gIHBhcmFtc1syXSA9IHNwYV9wb2RfYnVpbGRlcl9v YmplY3QgKAotKyAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAg ICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdp cmVfdHlwZS0+cGFyYW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFt X21ldGEudHlwZSwgIkkiLCBwcml2LT5zcGFfdHlwZS5tZXRhX2N1cnNvciwKLS0gICAgIjoiLCBw aXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgQ1VSU09SX01FVEFfU0laRSAoNjQs IDY0KSk7Ci0rICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbU1ldGEsIFNQQV9QQVJBTV9NZXRhLAot KyAgICBTUEFfUEFSQU1fTUVUQV90eXBlLCBTUEFfUE9EX0lkIChTUEFfTUVUQV9DdXJzb3IpLAot KyAgICBTUEFfUEFSQU1fTUVUQV9zaXplLCBTUEFfUE9EX0ludCAoQ1VSU09SX01FVEFfU0laRSAo NjQsIDY0KSkpOwotCi0tICBwd19zdHJlYW1fZmluaXNoX2Zvcm1hdCAocHJpdi0+cGlwZXdpcmVf c3RyZWFtLCAwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgR19OX0VMRU1F TlRTIChwYXJhbXMpKTsKLSsgIHB3X3N0cmVhbV91cGRhdGVfcGFyYW1zIChwcml2LT5waXBld2ly ZV9zdHJlYW0sIHBhcmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMpKTsKLSB9Ci0KLSBzdGF0aWMg Y29uc3Qgc3RydWN0IHB3X3N0cmVhbV9ldmVudHMgc3RyZWFtX2V2ZW50cyA9IHsKLSAgIFBXX1ZF UlNJT05fU1RSRUFNX0VWRU5UUywKLSAgIC5zdGF0ZV9jaGFuZ2VkID0gb25fc3RyZWFtX3N0YXRl X2NoYW5nZWQsCi0tICAuZm9ybWF0X2NoYW5nZWQgPSBvbl9zdHJlYW1fZm9ybWF0X2NoYW5nZWQs Ci0rICAucGFyYW1fY2hhbmdlZCA9IG9uX3N0cmVhbV9wYXJhbV9jaGFuZ2VkLAotIH07Ci0KLSBz dGF0aWMgc3RydWN0IHB3X3N0cmVhbSAqCi1AQCAtNjUyLDggKzYzNCw2IEBAIGNyZWF0ZV9waXBl d2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3JjLAotICAgdWludDhfdCBi dWZmZXJbMTAyNF07Ci0gICBzdHJ1Y3Qgc3BhX3BvZF9idWlsZGVyIHBvZF9idWlsZGVyID0KLSAg ICAgU1BBX1BPRF9CVUlMREVSX0lOSVQgKGJ1ZmZlciwgc2l6ZW9mIChidWZmZXIpKTsKLS0gIE1l dGFTcGFUeXBlICpzcGFfdHlwZSA9ICZwcml2LT5zcGFfdHlwZTsKLS0gIHN0cnVjdCBwd190eXBl ICpwaXBld2lyZV90eXBlID0gcHJpdi0+cGlwZXdpcmVfdHlwZTsKLSAgIGZsb2F0IGZyYW1lX3Jh dGU7Ci0gICBNZXRhRnJhY3Rpb24gZnJhbWVfcmF0ZV9mcmFjdGlvbjsKLSAgIHN0cnVjdCBzcGFf ZnJhY3Rpb24gbWF4X2ZyYW1lcmF0ZTsKLUBAIC02NjEsNyArNjQxLDkgQEAgY3JlYXRlX3BpcGV3 aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICBjb25zdCBzdHJ1 Y3Qgc3BhX3BvZCAqcGFyYW1zWzFdOwotICAgaW50IHJlc3VsdDsKLQotLSAgcGlwZXdpcmVfc3Ry ZWFtID0gcHdfc3RyZWFtX25ldyAocHJpdi0+cGlwZXdpcmVfcmVtb3RlLAotKyAgcHJpdi0+bm9k ZV9pZCA9IFNQQV9JRF9JTlZBTElEOwotKwotKyAgcGlwZXdpcmVfc3RyZWFtID0gcHdfc3RyZWFt X25ldyAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJtZXRhLXNjcmVlbi1jYXN0LXNyYyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMKTsKLSAgIGlmICghcGlwZXdpcmVfc3RyZWFtKQotQEAgLTY4MiwxNyAr NjY0LDE3IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj ICAqc3JjLAotICAgbWF4X2ZyYW1lcmF0ZSA9IFNQQV9GUkFDVElPTiAoZnJhbWVfcmF0ZV9mcmFj dGlvbi5udW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9yYXRlX2Zy YWN0aW9uLmRlbm9tKTsKLQotLSAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAo Ci0rICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2Rf YnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRFbnVtRm9ybWF0LCBwaXBld2ly ZV90eXBlLT5zcGFfZm9ybWF0LAotLSAgICAiSSIsIHNwYV90eXBlLT5tZWRpYV90eXBlLnZpZGVv LAotLSAgICAiSSIsIHNwYV90eXBlLT5tZWRpYV9zdWJ0eXBlLnJhdywKLS0gICAgIjoiLCBzcGFf dHlwZS0+Zm9ybWF0X3ZpZGVvLmZvcm1hdCwgIkkiLCBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LkJH UngsCi0tICAgICI6Iiwgc3BhX3R5cGUtPmZvcm1hdF92aWRlby5zaXplLCAiUiIsICZTUEFfUkVD VEFOR0xFIChwcml2LT5zdHJlYW1fd2lkdGgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5zdHJlYW1faGVpZ2h0KSwKLS0g ICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLmZyYW1lcmF0ZSwgIkYiLCAmU1BBX0ZSQUNU SU9OICgwLCAxKSwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLm1heF9mcmFtZXJh dGUsICJGcnUiLCAmbWF4X2ZyYW1lcmF0ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JBTkdFICgmbWluX2ZyYW1lcmF0ZSwKLSsg ICAgU1BBX1RZUEVfT0JKRUNUX0Zvcm1hdCwgU1BBX1BBUkFNX0VudW1Gb3JtYXQsCi0rICAgIFNQ QV9GT1JNQVRfbWVkaWFUeXBlLCBTUEFfUE9EX0lkIChTUEFfTUVESUFfVFlQRV92aWRlbyksCi0r ICAgIFNQQV9GT1JNQVRfbWVkaWFTdWJ0eXBlLCBTUEFfUE9EX0lkIChTUEFfTUVESUFfU1VCVFlQ RV9yYXcpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2Zvcm1hdCwgU1BBX1BPRF9JZCAoU1BBX1ZJ REVPX0ZPUk1BVF9CR1J4KSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19zaXplLCBTUEFfUE9EX1Jl Y3RhbmdsZSAoJlNQQV9SRUNUQU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYt PnN0cmVhbV9oZWlnaHQpKSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19mcmFtZXJhdGUsIFNQQV9Q T0RfRnJhY3Rpb24gKCZTUEFfRlJBQ1RJT04gKDAsIDEpKSwKLSsgICAgU1BBX0ZPUk1BVF9WSURF T19tYXhGcmFtZXJhdGUsIFNQQV9QT0RfQ0hPSUNFX1JBTkdFX0ZyYWN0aW9uICgmbWF4X2ZyYW1l cmF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmbWluX2ZyYW1lcmF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWF4X2ZyYW1lcmF0 ZSkpOwotCi0gICBwd19zdHJlYW1fYWRkX2xpc3RlbmVyIChwaXBld2lyZV9zdHJlYW0sCi1AQCAt NzAyLDcgKzY4NCw3IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3Ry ZWFtU3JjICAqc3JjLAotCi0gICByZXN1bHQgPSBwd19zdHJlYW1fY29ubmVjdCAocGlwZXdpcmVf c3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBXX0RJUkVDVElPTl9PVVRQ VVQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTUEFfSURfSU5WQUxJRCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoUFdfU1RSRUFNX0ZMQUdfRFJJVkVSIHwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUFdfU1RSRUFNX0ZMQUdfTUFQX0JVRkZFUlMpLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhcmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMpKTsKLUBAIC03MTcsNDAg KzY5OSwxOCBAQCBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNy YyAgKnNyYywKLSB9Ci0KLSBzdGF0aWMgdm9pZAotLW9uX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAg ICAgICAgICAgICAgICpkYXRhLAotLSAgICAgICAgICAgICAgICAgIGVudW0gcHdfcmVtb3RlX3N0 YXRlICBvbGQsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1vdGVfc3RhdGUgIHN0YXRl LAotLSAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICplcnJvcl9tZXNzYWdl KQotK29uX2NvcmVfZXJyb3IgKHZvaWQgICAgICAgKmRhdGEsCi0rICAgICAgICAgICAgICAgdWlu dDMyX3QgICAgaWQsCi0rCSAgICAgICBpbnQgICAgICAgICBzZXEsCi0rCSAgICAgICBpbnQgICAg ICAgICByZXMsCi0rCSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlKQotIHsKLSAgIE1ldGFTY3Jl ZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQ cml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0 YW5jZV9wcml2YXRlIChzcmMpOwotLSAgc3RydWN0IHB3X3N0cmVhbSAqcGlwZXdpcmVfc3RyZWFt OwotLSAgR0Vycm9yICplcnJvciA9IE5VTEw7Ci0KLS0gIHN3aXRjaCAoc3RhdGUpCi0tICAgIHsK LS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfRVJST1I6Ci0tICAgICAgZ193YXJuaW5nICgicGlw ZXdpcmUgcmVtb3RlIGVycm9yOiAlc1xuIiwgZXJyb3JfbWVzc2FnZSk7Ci0tICAgICAgbWV0YV9z Y3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgYnJlYWs7 Ci0tICAgIGNhc2UgUFdfUkVNT1RFX1NUQVRFX0NPTk5FQ1RFRDoKLS0gICAgICBwaXBld2lyZV9z dHJlYW0gPSBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChzcmMsICZlcnJvcik7Ci0tICAgICAgaWYg KCFwaXBld2lyZV9zdHJlYW0pCi0tICAgICAgICB7Ci0tICAgICAgICAgIGdfd2FybmluZyAoIkNv dWxkIG5vdCBjcmVhdGUgcGlwZXdpcmUgc3RyZWFtOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKLS0g ICAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7Ci0tICAgICAgICAgIG1ldGFfc2NyZWVuX2Nh c3Rfc3RyZWFtX3NyY19ub3RpZnlfY2xvc2VkIChzcmMpOwotLSAgICAgICAgfQotLSAgICAgIGVs c2UKLS0gICAgICAgIHsKLS0gICAgICAgICAgcHJpdi0+cGlwZXdpcmVfc3RyZWFtID0gcGlwZXdp cmVfc3RyZWFtOwotLSAgICAgICAgfQotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBXX1JFTU9U RV9TVEFURV9VTkNPTk5FQ1RFRDoKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVElO RzoKLS0gICAgICBicmVhazsKLS0gICAgfQotKyAgZ193YXJuaW5nICgicGlwZXdpcmUgcmVtb3Rl IGVycm9yOiBpZDoldSAlcyIsIGlkLCBtZXNzYWdlKTsKLSsKLSsgIGlmIChpZCA9PSBQV19JRF9D T1JFICYmIHJlcyA9PSAtRVBJUEUpCi0rICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19u b3RpZnlfY2xvc2VkIChzcmMpOwotIH0KLQotIHN0YXRpYyBnYm9vbGVhbgotQEAgLTc5MywxNyAr NzUzLDYgQEAgc3RhdGljIEdTb3VyY2VGdW5jcyBwaXBld2lyZV9zb3VyY2VfZnVuY3MgPQotICAg cGlwZXdpcmVfbG9vcF9zb3VyY2VfZmluYWxpemUKLSB9OwotCi0tc3RhdGljIHZvaWQKLS1pbml0 X3NwYV90eXBlIChNZXRhU3BhVHlwZSAgICAgICAgICp0eXBlLAotLSAgICAgICAgICAgICAgIHN0 cnVjdCBzcGFfdHlwZV9tYXAgKm1hcCkKLS17Ci0tICBzcGFfdHlwZV9tZWRpYV90eXBlX21hcCAo bWFwLCAmdHlwZS0+bWVkaWFfdHlwZSk7Ci0tICBzcGFfdHlwZV9tZWRpYV9zdWJ0eXBlX21hcCAo bWFwLCAmdHlwZS0+bWVkaWFfc3VidHlwZSk7Ci0tICBzcGFfdHlwZV9mb3JtYXRfdmlkZW9fbWFw IChtYXAsICZ0eXBlLT5mb3JtYXRfdmlkZW8pOwotLSAgc3BhX3R5cGVfdmlkZW9fZm9ybWF0X21h cCAobWFwLCAmdHlwZS0+dmlkZW9fZm9ybWF0KTsKLS0gIHR5cGUtPm1ldGFfY3Vyc29yID0gc3Bh X3R5cGVfbWFwX2dldF9pZChtYXAsIFNQQV9UWVBFX01FVEFfX0N1cnNvcik7Ci0tfQotLQotIHN0 YXRpYyBNZXRhUGlwZVdpcmVTb3VyY2UgKgotIGNyZWF0ZV9waXBld2lyZV9zb3VyY2UgKHZvaWQp Ci0gewotQEAgLTgyOSw5ICs3NzgsOSBAQCBjcmVhdGVfcGlwZXdpcmVfc291cmNlICh2b2lkKQot ICAgcmV0dXJuIHBpcGV3aXJlX3NvdXJjZTsKLSB9Ci0KLS1zdGF0aWMgY29uc3Qgc3RydWN0IHB3 X3JlbW90ZV9ldmVudHMgcmVtb3RlX2V2ZW50cyA9IHsKLS0gIFBXX1ZFUlNJT05fUkVNT1RFX0VW RU5UUywKLS0gIC5zdGF0ZV9jaGFuZ2VkID0gb25fc3RhdGVfY2hhbmdlZCwKLStzdGF0aWMgY29u c3Qgc3RydWN0IHB3X2NvcmVfZXZlbnRzIGNvcmVfZXZlbnRzID0gewotKyAgUFdfVkVSU0lPTl9D T1JFX0VWRU5UUywKLSsgIC5lcnJvciA9IG9uX2NvcmVfZXJyb3IsCi0gfTsKLQotIHN0YXRpYyBn Ym9vbGVhbgotQEAgLTg1MSwzNyArODAwLDMxIEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3Ny Y19pbml0YWJsZV9pbml0IChHSW5pdGFibGUgICAgICppbml0YWJsZSwKLSAgICAgICByZXR1cm4g RkFMU0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdpcmVfY29yZSA9IHB3X2NvcmVfbmV3IChw cml2LT5waXBld2lyZV9zb3VyY2UtPnBpcGV3aXJlX2xvb3AsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwpOwotLSAgaWYgKCFwcml2LT5waXBld2lyZV9jb3JlKQot KyAgcHJpdi0+cGlwZXdpcmVfY29udGV4dCA9IHB3X2NvbnRleHRfbmV3IChwcml2LT5waXBld2ly ZV9zb3VyY2UtPnBpcGV3aXJlX2xvb3AsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIDApOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9jb250ZXh0KQot ICAgICB7Ci0gICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9S X0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjcmVhdGUgcGlwZXdpcmUg Y29yZSIpOwotKyAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBld2lyZSBj b250ZXh0Iik7Ci0gICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLS0gIHByaXYtPnBpcGV3 aXJlX3JlbW90ZSA9IHB3X3JlbW90ZV9uZXcgKHByaXYtPnBpcGV3aXJlX2NvcmUsIE5VTEwsIDAp OwotLSAgaWYgKCFwcml2LT5waXBld2lyZV9yZW1vdGUpCi0rICBwcml2LT5waXBld2lyZV9jb3Jl ID0gcHdfY29udGV4dF9jb25uZWN0IChwcml2LT5waXBld2lyZV9jb250ZXh0LCBOVUxMLCAwKTsK LSsgIGlmICghcHJpdi0+cGlwZXdpcmVfY29yZSkKLSAgICAgewotICAgICAgIGdfc2V0X2Vycm9y IChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9GQUlMRUQsCi0tICAgICAgICAgICAgICAg ICAgICJDb3VsZG4ndCBjcmVhdCBwaXBld2lyZSByZW1vdGUiKTsKLSsgICAgICAgICAgICAgICAg ICAgIkNvdWxkbid0IGNvbm5lY3QgcGlwZXdpcmUgY29udGV4dCIpOwotICAgICAgIHJldHVybiBG QUxTRTsKLSAgICAgfQotCi0tICBwd19yZW1vdGVfYWRkX2xpc3RlbmVyIChwcml2LT5waXBld2ly ZV9yZW1vdGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+cGlwZXdpcmVfcmVt b3RlX2xpc3RlbmVyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlbW90ZV9ldmVudHMs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMpOwotKyAgcHdfY29yZV9hZGRfbGlzdGVu ZXIgKHByaXYtPnBpcGV3aXJlX2NvcmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYt PnBpcGV3aXJlX2NvcmVfbGlzdGVuZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgJmNvcmVf ZXZlbnRzLAotKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0KLS0gIHByaXYtPnBpcGV3 aXJlX3R5cGUgPSBwd19jb3JlX2dldF90eXBlIChwcml2LT5waXBld2lyZV9jb3JlKTsKLS0gIGlu aXRfc3BhX3R5cGUgKCZwcml2LT5zcGFfdHlwZSwgcHJpdi0+cGlwZXdpcmVfdHlwZS0+bWFwKTsK LS0KLS0gIGlmIChwd19yZW1vdGVfY29ubmVjdCAocHJpdi0+cGlwZXdpcmVfcmVtb3RlKSAhPSAw KQotLSAgICB7Ci0tICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VS Uk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGNvbm5lY3QgcGlwZXdp cmUgcmVtb3RlIik7Ci0tICAgICAgcmV0dXJuIEZBTFNFOwotLSAgICB9Ci0rICBwcml2LT5waXBl d2lyZV9zdHJlYW0gPSBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChzcmMsIGVycm9yKTsKLSsgIGlm ICghcHJpdi0+cGlwZXdpcmVfc3RyZWFtKQotKyAgICByZXR1cm4gRkFMU0U7Ci0KLSAgIHJldHVy biBUUlVFOwotIH0KLUBAIC05MTIsOCArODU1LDggQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCi0gICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3Ry ZWFtX3NyY19kaXNhYmxlIChzcmMpOwotCi0gICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBl d2lyZV9zdHJlYW0sIHB3X3N0cmVhbV9kZXN0cm95KTsKLS0gIGdfY2xlYXJfcG9pbnRlciAoJnBy aXYtPnBpcGV3aXJlX3JlbW90ZSwgcHdfcmVtb3RlX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9wb2lu dGVyICgmcHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kZXN0cm95KTsKLSsgIGdfY2xlYXJf cG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvcmUsIHB3X2NvcmVfZGlzY29ubmVjdCk7Ci0rICBn X2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb250ZXh0LCBwd19jb250ZXh0X2Rlc3Ry b3kpOwotICAgZ19zb3VyY2VfZGVzdHJveSAoJnByaXYtPnBpcGV3aXJlX3NvdXJjZS0+YmFzZSk7 Ci0KLSAgIEdfT0JKRUNUX0NMQVNTIChtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfcGFyZW50 X2NsYXNzKS0+ZmluYWxpemUgKG9iamVjdCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211dHRlci90 ZW1wbGF0ZSBiL3NyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlCmluZGV4IDgwNmEzYmVmOWYwLi40Nzky ODQwMzRlYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9tdXR0ZXIvdGVtcGxhdGUKQEAgLTEsMzQgKzEsNDAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J211dHRlcicKIHBrZ25hbWU9bXV0dGVyCi12ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249MwordmVy c2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9 bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGVnbF9kZXZpY2U9dHJ1ZSAtRHVkZXY9dHJ1ZSAtRG5h dGl2ZV9iYWNrZW5kPXRydWUKLSAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9zcGVjdGlvbj10cnVl IC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZCIKKyAtRHByb2ZpbGVyPWZhbHNlIC1E aW50cm9zcGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZAorIC1E eHdheWxhbmRfaW5pdGZkPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWIt ZGV2ZWwgcGtnLWNvbmZpZyB6ZW5pdHkgd2F5bGFuZC1kZXZlbCB4b3JnLXNlcnZlciIKLW1ha2Vk ZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBqc29u LWdsaWItZGV2ZWwKLSBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGli Y2FuYmVycmEtZGV2ZWwgbGliaW5wdXQtZGV2ZWwKLSBNZXNhTGliLWRldmVsIHBpcGV3aXJlLWRl dmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIHdheWxhbmQtcHJvdG9jb2xzCi0gZ25vbWUt c2V0dGluZ3MtZGFlbW9uLWRldmVsIgotZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHplbml0 eSIKK21ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1k ZXZlbCBncmFwaGVuZS1kZXZlbAorIGpzb24tZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYlNN LWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKKyBsaWJpbnB1dC1kZXZlbCBN ZXNhTGliLWRldmVsIHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsCisg d2F5bGFuZC1wcm90b2NvbHMgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgorZGVwZW5kcz0i Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5Igogc2hv cnRfZGVzYz0iTGlnaHR3ZWlnaHQgR1RLKzMgd2luZG93IG1hbmFnZXIiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL011dHRlci8i CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iYTE4MjZjZjg4YmRiODFlNjM5NDNj YWMwMTRhOGU4YmNmMzVlYzE3OGM1MzI2NDQwMWY5YzcyZmRlYWI3NThlCi1zaGxpYl9wcm92aWRl cz0ibGlibXV0dGVyLWNsdXR0ZXItNS5zbyBsaWJtdXR0ZXItY29nbC01LnNvCi0gbGlibXV0dGVy LWNvZ2wtcGFuZ28tNS5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTUuc28iCitjaGVja3N1bT0wNThl ZDEzZDEwMjA4NWQzZTliNmZhNTU2NGM2NjA1MGE0NzhjMzY0YTBjYzU1YmM4NDRmZWEzZGRjZDkw ZWFiCitzaGxpYl9wcm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNy5zbyBsaWJtdXR0ZXItY29n bC03LnNvCisgbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTcu c28iCisKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQogCiBtdXR0ZXItZGV2ZWxfcGFj a2FnZSgpIHsKLQlkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGd0ayszLWRldmVs IGNsdXR0ZXItZGV2ZWwgbGliWDExLWRldmVsCi0JIGxpYlh0c3QtZGV2ZWwgbXV0dGVyLSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3JhcGhlbmUtZGV2ZWwg Y2x1dHRlci1kZXZlbAorCSBsaWJYMTEtZGV2ZWwgbGliWHRzdC1kZXZlbCBtdXR0ZXItJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJ cGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtn Y29uZmlnCi0JCXZtb3ZlICJ1c3IvbGliL211dHRlci01LyouZ2lyIgorCQl2bW92ZSAidXNyL2xp Yi9tdXR0ZXItNy8qLmdpciIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9CiB9CgpGcm9tIDEx NjNmNGY1YThhNWFlODA2Yjk3NGNmMGY5MjgwZjU5ZTA5NzEyZjYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzgvMTAyXSBj aGVlc2U6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUgfCAx NCArKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y2hlZXNlL3RlbXBsYXRlCmluZGV4IDdhNTZiYTAzOWZiLi5mYWEzMjllZTBlNCAxMDA2NDQKLS0t IGEvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUK QEAgLTEsMTEgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NoZWVzZScKIHBrZ25hbWU9 Y2hlZXNlCi12ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGd0a19k b2M9JCh2b3B0X2lmIGd0a19kb2MgJ3RydWUnICdmYWxzZScpCi0gLURtYW49JCh2b3B0X2lmIGd0 a19kb2MgJ3RydWUnICdmYWxzZScpIgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGd0a19k b2MgZ3RrX2RvYykgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBtYW4pIgogaG9zdG1ha2VkZXBlbmRzPSJn ZXR0ZXh0IGdkay1waXhidWYgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBsaWJy c3ZnCiAgJCh2b3B0X2lmIGd0a19kb2MgJ2d0ay1kb2MnKSAkKHZvcHRfaWYgZ2lyICdnb2JqZWN0 LWludHJvc3BlY3Rpb24nKSIKIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1dHRl ci1ndGstZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbApAQCAtMTcsNyArMTYsNyBAQCBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ2hlZXNl IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDE4NjU2MDBhYzg4MDEyZTEzNmIx ZWMzZGI3MmE0NjM0ZjU3YmMyMDM1ODk1Mjc3YmU3OTJiYjA3ODYyN2U3MworY2hlY2tzdW09ODhk MjczMmI0MjFiOTAzMTEwYTI2MjhkYjI1YzBkNjFlMjE5YzQyYmRmYjU5NzExNTEwMzNmYmE5NWE4 ZDE2ZgogCiBidWlsZF9vcHRpb25zPSJnaXIgZ3RrX2RvYyIKIGJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgpAQCAtMzcsMTEgKzM2LDggQEAgbGliY2hlZXNlX3BhY2thZ2UoKSB7CiB9CiAKIGNo ZWVzZS1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImdzdC1wbHVnaW5zLWJhZDEtZGV2ZWwK LQkJIGNsdXR0ZXItZ3N0My1kZXZlbAotCQkgY2x1dHRlci1ndGstZGV2ZWwKLQkJIGxpYmNhbmJl cnJhLWRldmVsCi0JCSBsaWJjaGVlc2U+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5k cz0iZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbCBjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1dHRlci1ndGst ZGV2ZWwKKwkgbGliY2FuYmVycmEtZGV2ZWwgbGliY2hlZXNlPj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgp IHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gMGQ1NjA1ODliOTk3MDY3MTg3YTNmNzk3NmNj YjcyOWRhMjZhZDhjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDAzOS8xMDJdIGV2b2x1dGlvbi1kYXRhLXNlcnZlcjogdXBk YXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBzcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZSB8IDI1ICsr KysrKysrKysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9z aGxpYnMKaW5kZXggZjJhNmU5OTU3ZTQuLjQxYzZlYjgwMjE0IDEwMDY0NAotLS0gYS9jb21tb24v c2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTYyNiw3ICs2MjYsNyBAQCBsaWJpY2Fsc3Nf Y3h4LnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJpY2FsdmNhbC5zby4zIGxpYmljYWwtMy4wLjRf MQogbGliaWNhbC1nbGliLnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJjYW1lbC0xLjIuc28uNjIg ZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzAuMF8xCi1saWJlZGF0YXNlcnZlci0xLjIuc28uMjQg ZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzIuMF8xCitsaWJlZGF0YXNlcnZlci0xLjIuc28uMjUg ZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzcuOTBfMQogbGliZWJhY2tlbmQtMS4yLnNvLjEwIGV2 b2x1dGlvbi1kYXRhLXNlcnZlci0zLjE3LjkwXzEKIGxpYmVkYXRhc2VydmVydWktMS4yLnNvLjIg ZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjguMF8xCiBsaWJlYm9vay1jb250YWN0cy0xLjIuc28u MyBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zNC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZv bHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlIGIvc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2 ZXIvdGVtcGxhdGUKaW5kZXggZTUwMjkyYTQzZWEuLjhjY2Y5Y2I2ZWIwIDEwMDY0NAotLS0gYS9z cmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2V2b2x1 dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQpAQCAtMSwyOSArMSwzNCBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZXZvbHV0aW9uLWRhdGEtc2VydmVyJwogcGtnbmFtZT1ldm9sdXRpb24tZGF0YS1z ZXJ2ZXIKLXZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzguMAorcmV2aXNp b249MQogYnVpbGRfc3R5bGU9Y21ha2UKLWJ1aWxkX2hlbHBlcj1naXIKK2J1aWxkX2hlbHBlcj0i Z2lyIHFlbXUiCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU9BPU9GRgotICQodm9wdF9pZiBn aXIgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFMQV9CSU5ESU5HUz1PTicg Jy1ERU5BQkxFX1dFQVRIRVI9T0ZGJykiCi1ob3N0bWFrZWRlcGVuZHM9ImZsZXggZ2xpYi1kZXZl bCBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYmdsaWItZGV2ZWwKLSAkKHZvcHRfaWYgZ2ly ICdnb2JqZWN0LWludHJvc3BlY3Rpb24nKSIKLW1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJj YW5iZXJyYS1kZXZlbCBsaWJnZGF0YS1kZXZlbCAkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVyLWRl dmVsKQotIGxpYmljYWwtZGV2ZWwgbGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRldmVsICQodm9w dF9pZiBnaXIgJ3ZhbGEtZGV2ZWwnKSB3ZWJraXQyZ3RrLWRldmVsIgotZGVwZW5kcz0iJCh2b3B0 X2lmIGdpciBsaWJnd2VhdGhlcikgbGlic291cC1nbm9tZSIKKyAkKHZvcHRfaWYgZ2lyICctREVO QUJMRV9JTlRST1NQRUNUSU9OPU9OIC1ERU5BQkxFX1ZBTEFfQklORElOR1M9T04nKSIKK2hvc3Rt YWtlZGVwZW5kcz0iZmxleCBnbGliLWRldmVsIGdwZXJmIGludGx0b29sIHBrZy1jb25maWcgbGli Z2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBs aWJnZGF0YS1kZXZlbCBsaWJpY2FsLWRldmVsCisgbGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRl dmVsIHdlYmtpdDJndGstZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZh bGEtZGV2ZWwpIgorZGVwZW5kcz0ibGliZ3dlYXRoZXIgbGlic291cC1nbm9tZSIKIHNob3J0X2Rl c2M9IkNlbnRyYWxpemVkIGFjY2VzcyB0byBhcHBvaW50bWVudHMgYW5kIGNvbnRhY3RzIgogbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxH UEwtMi4xLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1 dGlvbiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01F L2V2b2x1dGlvbi1kYXRhLXNlcnZlci9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT0xMzEyMmIyZWRkZGI5ODMwNjIwN2QyYTM1ZDVjY2FlMjVhOTA3MDI3 NjljYTBhMGI1MTY1M2I1OTg0OTg2Nzk2CitjaGVja3N1bT0xMzY4OWE3YjU1NzY1ODA2YzRkNWYz YjA1ZWY2YzI0YjBiZjk5NTdiOWVkOTI0MGMyZGQwOWEyY2RiMTNiMGFmCiAKIGJ1aWxkX29wdGlv bnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNf ZGVmYXVsdD0iZ2lyIgogZmkKIAorIyBwcm9ibGVtYXRpYworZG9fY2hlY2soKSB7CisJOgorfQor CiAjIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBiaW5hcnkgcnVudGltZSwgYWJvdXQg aWNvbnYgYW5kIHNmcnRpbWUuCiAjIG11c2wgKDEuMS4xNikgZG9lcyBub3Qgc3VwcG9ydCAiSVNP LTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXApLAogIyBhbHRob3VnaCBldm9sdXRp b24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCgpGcm9tIDgxNGVjMWVhNzk0ZGExNTlj ODZhZTE1YzQwYTM1MTgyZTM1MTU2YzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDAvMTAyXSBmb2xrczogdXBkYXRlIHRv IDAuMTQuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgIHwgIDcgKysrKy0tLQogc3JjcGtn cy9mb2xrcy90ZW1wbGF0ZSB8IDI4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDIgZmls ZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNDFjNmViODAyMTQuLjMzZDJh MzVmYTA0IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAg LTgzMSw5ICs4MzEsMTAgQEAgbGliZG1yLnNvLjAuMSBkZWVwaW4tbW92aWUtcmVib3JuLTMuMi41 XzEKIGxpYmdqcy5zby4wIGdqcy0xLjY1LjJfMQogbGlidGVsZXBhdGh5LWdsaWIuc28uMCB0ZWxl cGF0aHktZ2xpYi0wLjE1LjVfMQogbGliYWNjb3VudHNzZXJ2aWNlLnNvLjAgYWNjb3VudHNzZXJ2 aWNlLTAuNi40XzEKLWxpYmZvbGtzLnNvLjI1IGZvbGtzLTAuOS41XzEKLWxpYmZvbGtzLXRlbGVw YXRoeS5zby4yNSBmb2xrcy0wLjkuNV8xCi1saWJmb2xrcy1lZHMuc28uMjUgZm9sa3MtMC45LjVf MQorbGliZm9sa3Muc28uMjUgZm9sa3MtMC4xNC4wXzEKK2xpYmZvbGtzLWR1bW15LnNvLjI1IGZv bGtzLTAuMTQuMF8xCitsaWJmb2xrcy10ZWxlcGF0aHkuc28uMjUgZm9sa3MtMC4xNC4wXzEKK2xp YmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjE0LjBfMQogbGlibmljZS5zby4xMCBsaWJuaWNlLTAu MS4wXzEKIGxpYmd1cG5wLWlnZC0xLjAuc28uNCBndXBucC1pZ2QtMC4yLjBfMQogbGlidGVsZXBh dGh5LWxvZ2dlci5zby4zIHRlbGVwYXRoeS1sb2dnZXItMC42LjBfMQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9mb2xrcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKaW5kZXggMzMxMGM1 NGZhZGQuLmIwNzZiOTRiZWEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZvbGtzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKQEAgLTEsMjEgKzEsMjcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2ZvbGtzJwogcGtnbmFtZT1mb2xrcwotdmVyc2lvbj0wLjEzLjEKLXJldmlzaW9u PTIKK3ZlcnNpb249MC4xNC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotYnVpbGRf aGVscGVyPWdpcgotY29uZmlndXJlX2FyZ3M9Ii1EYl9sdG89ZmFsc2UgLURsaWJzb2NpYWx3ZWIt YmFja2VuZD1mYWxzZSIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBnbGli LWRldmVsIHZhbGEgcHl0aG9uIGdvYmplY3QtaW50cm9zcGVjdGlvbgotIGV2b2x1dGlvbi1kYXRh LXNlcnZlci1kZXZlbCIKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCitjb25maWd1cmVfYXJncz0i LURiX2x0bz1mYWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBnbGli LWRldmVsIHB5dGhvbjMgcHl0aG9uMy1kYnVzbW9jaworIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1k ZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9InJlYWRsaW5lLWRldmVsIHRl bGVwYXRoeS1nbGliLWRldmVsIHplaXRnZWlzdC1kZXZlbAotIGxpYmdlZTA4LWRldmVsIGV2b2x1 dGlvbi1kYXRhLXNlcnZlci1kZXZlbCB0cmFja2VyLWRldmVsIgorIGxpYmdlZTA4LWRldmVsIGV2 b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCB0cmFja2VyLWRldmVsCisgJCh2b3B0X2lmIGdpciB2 YWxhLWRldmVsKSIKIGRlcGVuZHM9InplaXRnZWlzdCIKIHNob3J0X2Rlc2M9IkdPYmplY3QgTGli cmFyeSB0byBhZ2dyZWdhdGUgcGVvcGxlIGludG8gbWV0YWNvbnRhY3RzIgogbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvRm9sa3Mi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zZGYxYzY2M2I4MmZlMjExYWVhZDJi MzFjYWUxZmM0MWQxMjRlODU0MzYzNzU3NjJmNjc0NWM0NWJhNDZhYTVkCitjaGVja3N1bT1kNmU3 NzhkYTYzN2QzYjMzZmQ5YTZiNDUxMTVlODE1N2Q4ODY4MjExZGMwOGI5NDNkMTA3NWI1ZWI3Mjgy YmI5CisKK2J1aWxkX29wdGlvbnM9ImdpciIKK2lmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhl bgorCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgorZmkKIAogZm9sa3MtZGV2ZWxfcGFja2Fn ZSgpIHsKIAlkZXBlbmRzPSIke21ha2VkZXBlbmRzfSAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCkBAIC0yNCw3ICszMCw5IEBAIGZvbGtzLWRldmVsX3BhY2thZ2UoKSB7CiAJ CXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlICJ1 c3IvbGliLyouc28iCi0JCXZtb3ZlIHVzci9zaGFyZS92YWxhCi0JCXZtb3ZlIHVzci9zaGFyZS9n aXItMS4wCisJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCisJCQl2bW92ZSB1c3Iv c2hhcmUvZ2lyLTEuMAorCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKKwkJZmkKIAl9CiB9CgpGcm9t IDQ0NGFkMjY0NjMyMTMwYWQyMWFhOGU0MjQ5MWUxYWYzNjk3MzM0NzAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDEvMTAy XSBnbm9tZS1vbmxpbmUtYWNjb3VudHM6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3Mv Z25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlIHwgMTQgKysrKysrLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW9u bGluZS1hY2NvdW50cy90ZW1wbGF0ZQppbmRleCAxOTNhN2Y5YjQzZi4uMjk5ODBkNDM0MjQgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtb25saW5lLWFjY291bnRzJwogcGtnbmFtZT1nbm9tZS1v bmxpbmUtYWNjb3VudHMKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcu OTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0i Z2lyIgogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCkBA IC0xMSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3Nw ZWN0aW9uKQogIC0tZW5hYmxlLW93bmNsb3VkIC0tZW5hYmxlLXdpbmRvd3MtbGl2ZSAtLWVuYWJs ZS1wb2NrZXQKICAtLWVuYWJsZS1sYXN0Zm0gLS1lbmFibGUtbWVkaWEtc2VydmVyIgogaG9zdG1h a2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtY29t bW9uCi0gbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhIHZhbGEpIgorIGxpYnhzbHQg cGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdjci1kZXZlbCBn dGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnNlY3JldC1kZXZl bAogIGxpYnNvdXAtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgcmVzdC1kZXZlbCB0ZWxlcGF0aHktZ2xp Yi1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIgpA QCAtMjAsMTAgKzIwLDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lT25saW5lQWNjb3VudHMiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0xYzhmNjI5OTA4MzNjYTQxMTg4ZGJiODBjNWU5OWQ5OWI1 N2E2MjYwOGNhNjc1YmJjZDM3YmMyMjQ0NzQyZjJlCitjaGVja3N1bT05ZjY5ODJjODk2ZTYyMzVh MmU4NWI4YTQ5N2M3YmY2M2E0YTI4OGI1Njc4ZGI0MGRjMzczNTE1ZWZiZWRiMWJiCiAKLWJ1aWxk X29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1 aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBnbm9tZS1v bmxpbmUtYWNjb3VudHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCAk e3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0zNSw4ICszNSw2IEBAIGdu b21lLW9ubGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL2dv YS0xLjAKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9z aGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgog CQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDQyYmZkZDIyZGM0MmE1NDUx OTAwZTY0ZmFkNWJkMGY5MzNlMDQ0NzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDIvMTAyXSBnbm9tZS1jb250cm9sLWNl bnRlcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBs YXRlICAgICAgICAgICAgICAgfCAgMiArCiAuLi4vZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hl cy9ubTEyMi5wYXRjaCAgfCAzOCArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLWNv bnRyb2wtY2VudGVyL3RlbXBsYXRlICAgICAgICAgfCAyNCArKysrKysrLS0tLS0KIDMgZmlsZXMg Y2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvTmV0 d29ya01hbmFnZXIvdGVtcGxhdGUKaW5kZXggZWRlYjgyNzg1NzkuLmU0ODJiYmE5OGRlIDEwMDY0 NAotLS0gYS9zcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvTmV0 d29ya01hbmFnZXIvdGVtcGxhdGUKQEAgLTEsNCArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdOZXR3b3JrTWFuYWdlcicKKyMgd2hlbiB1cGRhdGluZyB0byAxLjI0IG9yIG5ld2VyLCBkcm9w IHRoZSBjb21wYXQKKyMgcGF0Y2ggaW4gZ25vbWUtY29udHJvbC1jZW50ZXIgYW5kIHJlYnVpbGQg aXQKIHBrZ25hbWU9TmV0d29ya01hbmFnZXIKIHZlcnNpb249MS4yMi4xMAogcmV2aXNpb249Mgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBh dGNoIGIvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MzNmZWQzOTY4ZQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5w YXRjaApAQCAtMCwwICsxLDM4IEBACitGcm9tIDQxNTlmOTg0YmQzNTFjYWY2ZjBlMWFkYmQ5MGZl ZWI4NWFiMjUyZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjI6MDI6MDQg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gcmVzdG9yZSBjb21wYXRpYmlsaXR5IHdpdGggbmV0d29y a21hbmFnZXIgMS4yMgorCitkcm9wIHRoaXMgcGF0Y2ggYW5kIHJlYnVpbGQgZ25vbWUtY29udHJv bC1jZW50ZXIgd2hlbiB1cGRhdGluZyBubQorLS0tCisgcGFuZWxzL25ldHdvcmsvbmV0LWRldmlj ZS13aWZpLmMgfCA3IC0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBwYW5lbHMvbmV0d29yay9uZXQtZGV2aWNlLXdpZmkuYyBwYW5lbHMvbmV0d29y ay9uZXQtZGV2aWNlLXdpZmkuYworaW5kZXggY2I4NmU1Yi4uZDYzYzU3YyAxMDA2NDQKKy0tLSBw YW5lbHMvbmV0d29yay9uZXQtZGV2aWNlLXdpZmkuYworKysrIHBhbmVscy9uZXR3b3JrL25ldC1k ZXZpY2Utd2lmaS5jCitAQCAtMTE4MCwxMSArMTE4MCw2IEBAIG5tX2NsaWVudF9vbl9wZXJtaXNz aW9uX2NoYW5nZSAoTmV0RGV2aWNlV2lmaSAqc2VsZikgeworICAgICAgICAgTk1DbGllbnRQZXJt aXNzaW9uUmVzdWx0IHBlcm07CisgICAgICAgICBOTURldmljZVdpZmlDYXBhYmlsaXRpZXMgY2Fw czsKKyAKKy0gICAgICAgIGlmIChubV9jbGllbnRfZ2V0X3Blcm1pc3Npb25zX3N0YXRlIChzZWxm LT5jbGllbnQpICE9IE5NX1RFUk5BUllfVFJVRSkgeworLSAgICAgICAgICAgICAgICAvKiBwZXJt aXNzaW9ucyBhcmVuJ3QgcmVhZHkgeWV0ICovCistICAgICAgICAgICAgICAgIHJldHVybjsKKy0g ICAgICAgIH0KKy0KKyAgICAgICAgIC8qIG9ubHkgZW5hYmxlIHRoZSBidXR0b24gaWYgdGhlIHVz ZXIgY2FuIGNyZWF0ZSBhIGhvdHNwb3QgKi8KKyAgICAgICAgIHBlcm0gPSBubV9jbGllbnRfZ2V0 X3Blcm1pc3Npb25fcmVzdWx0IChzZWxmLT5jbGllbnQsIE5NX0NMSUVOVF9QRVJNSVNTSU9OX1dJ RklfU0hBUkVfT1BFTik7CisgICAgICAgICBjYXBzID0gbm1fZGV2aWNlX3dpZmlfZ2V0X2NhcGFi aWxpdGllcyAoTk1fREVWSUNFX1dJRkkgKHNlbGYtPmRldmljZSkpOworQEAgLTEyMjcsOCArMTIy Miw2IEBAIG5ldF9kZXZpY2Vfd2lmaV9uZXcgKENjUGFuZWwgKnBhbmVsLCBOTUNsaWVudCAqY2xp ZW50LCBOTURldmljZSAqZGV2aWNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdfQ0FMTEJBQ0sgKGFwX2FjdGl2YXRlZCksIHNlbGYsIEdfQ09OTkVDVF9TV0FQUEVEKTsKKyAg ICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChsaXN0LCAiY29uZmlndXJlIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChzaG93X2RldGFpbHNfZm9y X3JvdyksIHNlbGYsIEdfQ09OTkVDVF9TV0FQUEVEKTsKKy0gICAgICAgIGdfc2lnbmFsX2Nvbm5l Y3Rfb2JqZWN0IChjbGllbnQsICJub3RpZnkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfQ0FMTEJBQ0sobm1fY2xpZW50X29uX3Blcm1pc3Npb25fY2hhbmdlKSwgc2VsZiwg R19DT05ORUNUX1NXQVBQRUQpOworIAorICAgICAgICAgbm1fY2xpZW50X29uX3Blcm1pc3Npb25f Y2hhbmdlKHNlbGYpOworIAorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIv dGVtcGxhdGUKaW5kZXggOWZkYjg1M2FmYmYuLjE5MTEwMWFmYWFkIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY29u dHJvbC1jZW50ZXIvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjIgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLWNvbnRyb2wtY2VudGVyJwogcGtnbmFtZT1nbm9tZS1jb250cm9sLWNlbnRlcgot dmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURj aGVlc2U9JCh2b3B0X2lmIGNoZWVzZSB0cnVlIGZhbHNlKSIKLWhvc3RtYWtlZGVwZW5kcz0iZ2xp Yi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBrZy1jb25m aWcgcG9sa2l0Ci0gcHl0aG9uMyIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnc2V0dGlu Z3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBrZy1jb25maWcKKyBwb2xraXQgcHl0 aG9uMyIKIG1ha2VkZXBlbmRzPSJNb2RlbU1hbmFnZXItZGV2ZWwgYWNjb3VudHNzZXJ2aWNlLWRl dmVsIGFsc2EtcGx1Z2lucwogIGNvbG9yZC1ndGstZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVs IGdub21lLWRlc2t0b3AtZGV2ZWwgZ25vbWUtbWVudXMtZGV2ZWwKICBnbm9tZS1vbmxpbmUtYWNj b3VudHMtZGV2ZWwgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIGdyaWxvLWRldmVsIGlidXMt ZGV2ZWwKLSBsaWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwg bGliZ3RvcC1kZXZlbAorIGxpYlNNLWRldmVsIGxpYlh4Zjg2bWlzYy1kZXZlbCBsaWJnbm9tZWti ZC1kZXZlbCBsaWJndG9wLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxpYnB3cXVhbGl0eS1kZXZl bCBtaXQta3JiNS1kZXZlbCBuZXR3b3JrLW1hbmFnZXItYXBwbGV0LWRldmVsIHBvbGtpdC1kZXZl bAogIHB1bHNlYXVkaW8tZGV2ZWwgc2FtYmEtZGV2ZWwgdHpkYXRhIHVwb3dlci1kZXZlbCB2YWxh LWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsCiAgbGlieG1sMi1kZXZlbCBsaWJYMTEtZGV2ZWwgZ3Rr KzMtZGV2ZWwgY3Vwcy1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJ3YWNvbS1kZXZlbAogIGNsdXR0 ZXItZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIHVkaXNrczItZGV2ZWwg Z3NvdW5kLWRldmVsCiAgJCh2b3B0X2lmIGNoZWVzZSBjaGVlc2UtZGV2ZWwpIgotZGVwZW5kcz0i YWxzYS1wbHVnaW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxlLXV0aWxzCitkZXBlbmRzPSJhbHNh LXBsdWdpbnMtcHVsc2VhdWRpbyBkZXNrdG9wLWZpbGUtdXRpbHMgdXBvd2VyIGNvbG9yZCBjdXBz LXBrLWhlbHBlcgogIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgaGljb2xvci1pY29uLXRoZW1l IGlzby1jb2RlcyBzb3VuZC10aGVtZS1mcmVlZGVza3RvcAogIGNyYWNrbGliIgogc2hvcnRfZGVz Yz0iR05PTUUgY29udHJvbCBjZW50ZXIiCkBAIC0yNCwxMyArMjQsMTcgQEAgbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWNv bnRyb2wtY2VudGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NWY4MmVjZDU1 NTQxMzZjNDYyMjQ4ZWM1MzYzYjgyZDk1MzU4YjM5ZGZkNjc4NzAwNmQ4MzA3YjQ1MDRlNTE1ZQor Y2hlY2tzdW09ZjZiNmI1YjhlZjljMzhkODk1YmE1YWY4N2YzMWFkYWUwMjE5NGFkODZjOWFhNmNm ZjJkMmI5NzU1YzJkYjFkYQogCiBidWlsZF9vcHRpb25zPSJjaGVlc2UiCitidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImNoZWVzZSIKKwogZGVzY19vcHRpb25fY2hlZXNlPSJBZGQgc3VwcG9ydCBmb3Ig YWRkaW5nIHVzZXIgYWNjb3VudCBpbWFnZXMgd2l0aCB5b3VyIHdlYmNhbSIKLWlmIFsgLXogIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgotCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBjaGVlc2UiCi1m aQorCisjIG5lZWRzIFgxMSBhbmQgcmVxdWlyZXMgYWx0ZXJlZCBmaWxlc3lzdGVtCitkb19jaGVj aygpIHsKKwk6Cit9CiAKIENGTEFHUz0iLWZjb21tb24iCiAKCkZyb20gZGZhNWRjNmQwY2Y2MDM3 ZTIxMGQxMzA0OGFmOTk1ZWY5YzY3NmRmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0My8xMDJdIGRjb25mLWVkaXRvcjog dXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSB8IDYg KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9kY29u Zi1lZGl0b3IvdGVtcGxhdGUKaW5kZXggZGUyNTBiYmM4YTkuLjIzMjUyYjlmNzRlIDEwMDY0NAot LS0gYS9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Rjb25mLWVk aXRvci90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZGNv bmYtZWRpdG9yJwogcGtnbmFtZT1kY29uZi1lZGl0b3IKLXZlcnNpb249My4zNi4wCit2ZXJzaW9u PTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0i ZG9jYm9vay14c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKK2hvc3RtYWtl ZGVwZW5kcz0iZG9jYm9vay14c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSBn ZXR0ZXh0IgogbWFrZWRlcGVuZHM9ImRjb25mLWRldmVsIGd0ayszLWRldmVsIgogc2hvcnRfZGVz Yz0iTG93LWxldmVsIGNvbmZpZ3VyYXRpb24gc3lzdGVtIC0gR1RLKyBlZGl0b3IiCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL2Rj b25mIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzJlZWQwNTY3MDkxN2Y4ZTQz MjAwZTQwY2NjNmJlNjAyMTFmMGE4N2IwMTc1MzRlYWMxZmQ2YzcxNzNhMDY5MworY2hlY2tzdW09 NmQ4OTI0OWEzNzkwODJkZTZhOGU5NWEyYTIwMmQwY2E1ZmUxYzk3NzZiYzBkNWQzZWYwNjU1Njdk ODE4M2ViNAoKRnJvbSAyYTI4NjFiMWRlMTVjNjVjZTQ3MGJkN2YxMGUwYWVlNzQxMTUzM2Q5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjo0MjowMiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDQ0LzEwMl0gZ2pzOiB1cGRhdGUgdG8gMS42Ni4wCgotLS0KIHNyY3BrZ3MvZ2pzL3Rl bXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dqcy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z2pzL3RlbXBsYXRlCmluZGV4IGVjNDhiYWRkZjExLi44YTEzM2RkODA0OCAxMDA2NDQKLS0tIGEv c3JjcGtncy9nanMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nanMvdGVtcGxhdGUKQEAgLTEsMjcg KzEsMjcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dqcycKIHBrZ25hbWU9Z2pzCi12ZXJzaW9u PTEuNjUuMgordmVyc2lvbj0xLjY2LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBi dWlsZF9oZWxwZXI9ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1Ec2tpcF9kYnVzX3Rlc3Rz PXRydWUgLURza2lwX2d0a190ZXN0cz10cnVlCiAgLURwcm9maWxlcj1kaXNhYmxlZCAtRGluc3Rh bGxlZF90ZXN0cz1mYWxzZSIgIyBEaXNhYmxlIHRlc3RzIGJlY2F1c2UgdGhleSBuZWVkIGRidXMs IFggYW5kIEdUSy4KIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmlnIgotbWFr ZWRlcGVuZHM9ImRidXMtZ2xpYi1kZXZlbCBtb3pqczY4LWRldmVsIHJlYWRsaW5lLWRldmVsIHN5 c3Byb2YtZGV2ZWwiCittYWtlZGVwZW5kcz0iZGJ1cy1nbGliLWRldmVsIG1vempzNzgtZGV2ZWwg cmVhZGxpbmUtZGV2ZWwgc3lzcHJvZi1kZXZlbCIKIHNob3J0X2Rlc2M9Ik1vemlsbGEtYmFzZWQg amF2YXNjcmlwdCBiaW5kaW5ncyBmb3IgdGhlIEdOT01FIHBsYXRmb3JtIgogbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCwgTEdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9hY3Rpb24vc2hv dy9Qcm9qZWN0cy9HanMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9N RS9nanMvYmxvYi9nbm9tZS0zLTMwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT1hNjZlZGFkOGE1ZjEwMDI3ZjliMTgyZDg4YWY4NGI4MWYxM2U1YWQ1ODQwMzE5Y2ZhNzQ3 ZDY2ZTc3ZTAyMTRmCitjaGVja3N1bT1mMzBjZjkwZTAxNmRiNmM4ZmRkMDA1OTc0OTU1OTYxMTc2 MGYwNzIxZjM3NWIyYjYxZTBiNzIzOWI0M2FiNWY4CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGlj ZW5zZSBDT1BZSU5HCiB9CiAKIGdqcy1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdp cmVwb3NpdG9yeS1kZXZlbCBtb3pqczY4LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlkZXBlbmRzPSJsaWJnaXJlcG9zaXRvcnktZGV2ZWwgbW96anM3OC1kZXZl bCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAt IGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVk ZQoKRnJvbSA1NWM1MmYzZWVhYzdhNWQ2NzIyNWJmMDRhN2NkOWE2MmY1YzEwNGJmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDQ1LzEwMl0gZ25vbWUtc2hlbGw6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9t ZS1zaGVsbC90ZW1wbGF0ZSB8IDExICsrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2hl bGwvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCmluZGV4IDk2YzViODBh MTk0Li5mMjc3OTU1NzJlZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zaGVsbCcKIHBrZ25hbWU9Z25vbWUtc2hlbGwKLXZl cnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGJ1aWxkX2hlbHBlcj1naXIKIGNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2UiCiBo b3N0bWFrZWRlcGVuZHM9ImdvYmplY3QtaW50cm9zcGVjdGlvbiBndGstZG9jIGxpYnhzbHQgcGtn LWNvbmZpZyBweXRob24zIHNhc3NjCi0gYXNjaWlkb2MgcGVybCBnbGliLWRldmVsIG11dHRlci1k ZXZlbCIKKyBhc2NpaWRvYyBwZXJsIGdsaWItZGV2ZWwgbXV0dGVyLWRldmVsIGdldHRleHQgZ2pz LWRldmVsIgogbWFrZWRlcGVuZHM9ImF0LXNwaTItYXRrIGNhcmlib3UtZGV2ZWwgZXZvbHV0aW9u LWRhdGEtc2VydmVyLWRldmVsIGZvbGtzLWRldmVsCiAgZ2NyLWRldmVsIGdqcy1kZXZlbCBnbm9t ZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtY29udHJvbC1jZW50ZXItZGV2ZWwgZ25vbWUtZGVza3Rv cC1kZXZlbAogIGdub21lLW1lbnVzLWRldmVsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2 ZWwgZ3N0cmVhbWVyMS1kZXZlbCBndGsrMy1kZXZlbApAQCAtMjEsNCArMjEsOSBAQCBsaWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJv amVjdHMvR25vbWVTaGVsbCIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRl bnQuY29tL0dOT01FL2dub21lLXNoZWxsL2dub21lLTMtMzAvTkVXUyIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWNjZDg2NTU5YjljODk3YzIxOWQyZDJlYmZkYjg0MTNlZmE0YzFi ZWU4NDY0MjdjNzUwY2I4YTMwMWIzZjZkMWUKK2NoZWNrc3VtPWM2MjY0MDNiYzA4NzVlZTZkYThj N2E2MmFjMGNlZTMxMmJhZGI1MjNhZjA3M2NiMTY2MTI1MDE1YTc1YTBhOTcKKworIyBuZWVkcyBY Citkb19jaGVjaygpIHsKKwk6Cit9CgpGcm9tIDgxYzI5ZjEwMzlhOTZiNTIzOTJlOTc4ZmU0ZjAz MDczMWY4YTk0MDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwNDYvMTAyXSBnbm9tZS1zaGVsbC1leHRlbnNpb25zOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0 ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZQppbmRleCA5NzE2OGI0 MGY2Ni4uZTQ5MzAzODRmZDQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5z aW9ucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxh dGUKQEAgLTEsMTUgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNoZWxsLWV4 dGVuc2lvbnMnCiBwa2duYW1lPWdub21lLXNoZWxsLWV4dGVuc2lvbnMKLXZlcnNpb249My4zNC4x Cit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZXh0ZW5zaW9uX3NldD1hbGwiCi1ob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCIKIGRl cGVuZHM9Imdub21lLXNoZWxsPj0ke3ZlcnNpb259IG5hdXRpbHVzIHVuemlwIgogc2hvcnRfZGVz Yz0iRXh0ZW5zaW9ucyBmb3IgR05PTUUgc2hlbGwsIGluY2x1ZGluZyBjbGFzc2ljIG1vZGUiCiBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2pl Y3RzL0dub21lU2hlbGwvRXh0ZW5zaW9ucyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWIwYWQ1MTE0M2IxYmY0MGRlZjRhMTBmOGZkMGFiMGZmYjQ3MjE4MzA0ODAwNzk0ZTYyY2Fk ZDI5ZDBhY2M3NWIKK2NoZWNrc3VtPWY3MjZmODViYjM5OGIwODJhZDA5YTdkZWQzMDZmMjJiZDI1 ZDI1ODk4YzdmMThiZDc3NWRmNjY0MDBkMzkxOWYKCkZyb20gZDgxZDZjYzdjYjc2YjM2Y2ViMDUy NWNlMzliNTJkZGViZDc3NmNkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0Ny8xMDJdIGdkbTogdXBkYXRlIHRvIDMuMzgu MAoKLS0tCiBzcmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaCB8IDIz ICsrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dkbS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg ICAgICAgICB8IDI2ICsrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM3IGlu c2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Z2RtL3BhdGNoZXMvdGFrZS1vdXQtdGhlLXRyYXNoLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nZG0vcGF0Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2ggYi9zcmNwa2dzL2dkbS9wYXRj aGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNjkyN2M3Mjc3YjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dkbS9w YXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaApAQCAtMCwwICsxLDIzIEBACistLS0gbWVz b24uYnVpbGQKKysrKyBtZXNvbi5idWlsZAorQEAgLTk0LDE5ICs5NCw4IEBAIGlmIHhkbWNwX2Rl cC5mb3VuZCgpIGFuZCBnZXRfb3B0aW9uKCd0Y3Atd3JhcHBlcnMnKQorICAgbGlid3JhcF9kZXAg PSBjYy5maW5kX2xpYnJhcnkoJ2xpYndyYXAnKQorIGVuZGlmCisgIyBzeXN0ZW1kCistc3lzdGVt ZF9kZXAgPSBkZXBlbmRlbmN5KCdzeXN0ZW1kJykKKyBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVuZGVu Y3koJ2xpYnN5c3RlbWQnKQorLWlmIG1lc29uLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49 IDAuNTMnKQorLSAgc3lzdGVtZF9tdWx0aXNlYXRfeCA9IGZpbmRfcHJvZ3JhbSgnc3lzdGVtZC1t dWx0aS1zZWF0LXgnLAorLSAgICByZXF1aXJlZDogZmFsc2UsCistICAgIGRpcnM6IFsKKy0gICAg ICBzeXN0ZW1kX2RlcC5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCdzeXN0ZW1kdXRpbGRpcicpLAor LSAgICAgICcvbGliL3N5c3RlbWQnLAorLSAgICAgICcvdXNyL2xpYi9zeXN0ZW1kJywKKy0gICAg XSkKKy1lbHNlCistICBzeXN0ZW1kX211bHRpc2VhdF94ID0gZmluZF9wcm9ncmFtKCdzeXN0ZW1k LW11bHRpLXNlYXQteCcsIHJlcXVpcmVkOiBmYWxzZSkKKy1lbmRpZgorK3N5c3RlbWRfbXVsdGlz ZWF0X3ggPSBmaW5kX3Byb2dyYW0oJ3N5c3RlbWQtbXVsdGktc2VhdC14JywgcmVxdWlyZWQ6IGZh bHNlKQorIHN5c3RlbWRfeF9zZXJ2ZXIgPSBzeXN0ZW1kX211bHRpc2VhdF94LmZvdW5kKCk/IHN5 c3RlbWRfbXVsdGlzZWF0X3gucGF0aCgpIDogJy9saWIvc3lzdGVtZC9zeXN0ZW1kLW11bHRpLXNl YXQteCcKKyAjIFBseW1vdXRoCisgcGx5bW91dGhfZGVwID0gZGVwZW5kZW5jeSgncGx5LWJvb3Qt Y2xpZW50JywgcmVxdWlyZWQ6IGdldF9vcHRpb24oJ3BseW1vdXRoJykpCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dkbS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlCmluZGV4IGJiNWI0ODY5 MmQ0Li4xMTg4ODFlNGM0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZG0vdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nZG0vdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dkbScKIHBrZ25hbWU9Z2RtCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM4LjAKIHJl dmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQot Y29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCi0gLS1kaXNh YmxlLXNjaGVtYXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGljIC0td2l0aC1kZWZhdWx0LXBhbS1j b25maWc9YXJjaAotIC0td2l0aC1hdC1zcGktcmVnaXN0cnlkLWRpcmVjdG9yeT0vdXNyL2xpYmV4 ZWMgLS13aXRob3V0LXRjcC13cmFwcGVycwotIC0td2l0aC1zY3JlZW5zaG90LWRpcj0vdmFyL2xp Yi9nZG0vZ3JlZXRlciAtLXNiaW5kaXI9L3Vzci9iaW4gLS13aXRob3V0LXBseW1vdXRoCi0gLS13 aXRoLXhhdXRoLWRpcj0vcnVuL2dkbSAtLXdpdGgtcGlkLWZpbGU9L3J1bi9nZG0vZ2RtLnBpZAot IC0tZGlzYWJsZS1zeXN0ZW1kLWpvdXJuYWwgLS13aXRoLWluaXRpYWwtdnQ9NyAtLWVuYWJsZS13 YXlsYW5kLXN1cHBvcnQiCitidWlsZF9zdHlsZT1tZXNvbgorY29uZmlndXJlX2FyZ3M9IgorIC1E ZGVmYXVsdC1wYW0tY29uZmlnPWFyY2ggLURhdC1zcGktcmVnaXN0cnlkLWRpcj0vdXNyL2xpYmV4 ZWMKKyAtRHRjcC13cmFwcGVycz1mYWxzZSAtRHNjcmVlbnNob3QtZGlyPS92YXIvbGliL2dkbS9n cmVldGVyCisgLURwbHltb3V0aD1kaXNhYmxlZCAtRHhhdXRoLWRpcj0vcnVuL2dkbSAtRHBpZC1m aWxlPS9ydW4vZ2RtL2dkbS5waWQKKyAtRHN5c3RlbWQtam91cm5hbD1mYWxzZSAtRGluaXRpYWwt dnQ9NyAtRHdheWxhbmQtc3VwcG9ydD10cnVlCisgLURzZWxpbnV4PWRpc2FibGVkIC1EbGliYXVk aXQ9ZGlzYWJsZWQKKyAtRHN5c3RlbWRzeXN0ZW11bml0ZGlyPS90bXAgLURzeXN0ZW1kdXNlcnVu aXRkaXI9L3RtcCIKIGhvc3RtYWtlZGVwZW5kcz0iZGNvbmYgZ2V0dGV4dCBpdHN0b29sIHBrZy1j b25maWciCiBtYWtlZGVwZW5kcz0iYWNjb3VudHNzZXJ2aWNlLWRldmVsIGVsb2dpbmQtZGV2ZWwg Z2V0dGV4dC1kZXZlbCBnbGliLWRldmVsCiAgaXNvLWNvZGVzIGxpYlNNLWRldmVsIGxpYmNhbmJl cnJhLWRldmVsIG5zcy1kZXZlbCBwYW0tZGV2ZWwgdXBvd2VyLWRldmVsIgotZGVwZW5kcz0iZ25v bWUtc2V0dGluZ3MtZGFlbW9uIGdub21lLXNoZWxsIHhvcmctc2VydmVyIHhvcmctc2VydmVyLXh3 YXlsYW5kCi0geHJkYiIKK2RlcGVuZHM9Imdub21lLXNldHRpbmdzLWRhZW1vbiBnbm9tZS1zaGVs bCBnbm9tZS1zZXNzaW9uIGdub21lLXRoZW1lcy1leHRyYQorIGdzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXMgeG9yZy1zZXJ2ZXIgeG9yZy1zZXJ2ZXIteHdheWxhbmQgeHJkYiIKIGNoZWNrZGVwZW5k cz0iY2hlY2stZGV2ZWwiCiBzaG9ydF9kZXNjPSJHTk9NRSBEaXNwbGF5IE1hbmFnZXIiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3Rz L0dETSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU4NWRmNjU3YWE4ZDkzNjFh ZjRmYjEyMjAxNGQ4ZjEyM2E5M2JmZTQ1YTc2NjJmYmEyYjM3M2Q4MzlkYmQ4ZDMKK2NoZWNrc3Vt PTQ2ZDQ0MTVjMzljOTRjY2VlODFmYmFjMjExMDJlMmViY2QyODRkMzk4NThjODkzZTc1OTkwMGIx ZTg4NDM1YmEKIAogY29uZl9maWxlcz0iCiAJL2V0Yy9nZG0vY3VzdG9tLmNvbmYKQEAgLTQ3LDYg KzQ4LDcgQEAgcG9zdF9pbnN0YWxsKCkgewogCXZpbnN0YWxsICRGSUxFU0RJUi9Yc2Vzc2lvbiA3 NTUgZXRjL2dkbQogCiAJdnNlZCAtaSAicy9wYW1fc3lzdGVtZFwuc28vcGFtX2Vsb2dpbmQuc28v IiAkREVTVERJUi9ldGMvcGFtLmQvKgorCXJtIC1yZiAke0RFU1RESVJ9L3RtcAogCiAJIyBydW5p dCBzZXJ2aWNlCiAJdnN2IGdkbQpAQCAtNjAsNyArNjIsNyBAQCBsaWJnZG1fcGFja2FnZSgpIHsK IH0KIAogZ2RtLWRldmVsX3BhY2thZ2UoKSB7Ci0JZGVwZW5kcz0ibGliZ2RtPj0ke3ZlcnNpb259 XyR7cmV2aXNpb259IgorCWRlcGVuZHM9ImxpYmdkbT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBl bG9naW5kLWRldmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2df aW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gYmRhOTM3NDk5NGI3MDJlMTEw ZTFiMmI2YWE1NWZmZGU5N2Y1MzFhNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0OC8xMDJdIGdub21lLXNlc3Npb246IHVw ZGF0ZSB0byAzLjM4LjAKCi0tLQogLi4uLWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMt ZnJvLnBhdGNoIHwgNjcgKysrKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvbm8tc3lzdGVt ZC1kZXAucGF0Y2ggICAgICAgICAgICAgIHwgMTQgKysrKwogc3JjcGtncy9nbm9tZS1zZXNzaW9u L3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMTAgKystCiAzIGZpbGVzIGNoYW5nZWQsIDg4IGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9n bm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFj a2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9n bm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBwLVN0 cmlwLWJsYWNrbGlzdGVkLXZhcmlhYmxlcy1mcm8ucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNlc3Np b24vcGF0Y2hlcy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBwLVN0cmlwLWJsYWNrbGlzdGVkLXZh cmlhYmxlcy1mcm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmNmZDlmNGJhNmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3Bh dGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJs ZXMtZnJvLnBhdGNoCkBAIC0wLDAgKzEsNjcgQEAKK0Zyb20gMWRlMzU3NWExZWE5Y2RiMzU3OWFk NTM4MTA4YzUxODE4ODQ3Nzk3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJhc211 cyBUaG9tc2VuIDxvc3NAY29naXRyaS5kZXY+CitEYXRlOiBGcmksIDYgRGVjIDIwMTkgMTE6NDg6 MDIgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gcmV2ZXJ0OiBhdXRvc3RhcnQtYXBwOiBTdHJpcCBi bGFja2xpc3RlZCB2YXJpYWJsZXMgZnJvbQorIGF1dG9zdGFydCBlbnZpcm9ubWVudAorCitUaGlz IGJyZWFrcyBnbm9tZS1zZXNzaW9uIG9uIG5vbi1zeXN0ZW1kIHN5c3RlbXMuCisKK2h0dHBzOi8v Z2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9uL2lzc3Vlcy80NAorLS0tCisgZ25v bWUtc2Vzc2lvbi9nc20tYXV0b3N0YXJ0LWFwcC5jIHwgNSAtLS0tLQorIGdub21lLXNlc3Npb24v Z3NtLXV0aWwuYyAgICAgICAgICB8IDYgLS0tLS0tCisgZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5o ICAgICAgICAgIHwgMSAtCisgMyBmaWxlcyBjaGFuZ2VkLCAxMiBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL2dub21lLXNlc3Npb24vZ3NtLWF1dG9zdGFydC1hcHAuYyBiL2dub21lLXNlc3Np b24vZ3NtLWF1dG9zdGFydC1hcHAuYworaW5kZXggNmZkNTkxNS4uMDFiYTVmOSAxMDA2NDQKKy0t LSBnbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMKKysrKyBnbm9tZS1zZXNzaW9uL2dz bS1hdXRvc3RhcnQtYXBwLmMKK0BAIC05OTcsNyArOTk3LDYgQEAgYXV0b3N0YXJ0X2FwcF9zdGFy dF9zcGF3biAoR3NtQXV0b3N0YXJ0QXBwICphcHAsCisgICAgICAgICBnYm9vbGVhbiAgICAgICAg IHN1Y2Nlc3M7CisgICAgICAgICBHRXJyb3IgICAgICAgICAgKmxvY2FsX2Vycm9yOworICAgICAg ICAgY29uc3QgY2hhciAgICAgICpzdGFydHVwX2lkOworLSAgICAgICAgY29uc3QgY2hhciAqIGNv bnN0ICp2YXJpYWJsZV9ibGFja2xpc3Q7CisgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKmNo aWxkX2Vudmlyb25tZW50OworICAgICAgICAgaW50IGk7CisgICAgICAgICBHQXBwTGF1bmNoQ29u dGV4dCAqY3R4OworQEAgLTEwMTQsMTAgKzEwMTMsNiBAQCBhdXRvc3RhcnRfYXBwX3N0YXJ0X3Nw YXduIChHc21BdXRvc3RhcnRBcHAgKmFwcCwKKyAgICAgICAgIGxvY2FsX2Vycm9yID0gTlVMTDsK KyAgICAgICAgIGN0eCA9IGdfYXBwX2xhdW5jaF9jb250ZXh0X25ldyAoKTsKKyAKKy0gICAgICAg IHZhcmlhYmxlX2JsYWNrbGlzdCA9IGdzbV91dGlsX2dldF92YXJpYWJsZV9ibGFja2xpc3QgKCk7 CistICAgICAgICBmb3IgKGkgPSAwOyB2YXJpYWJsZV9ibGFja2xpc3RbaV0gIT0gTlVMTDsgaSsr KQorLSAgICAgICAgICAgICAgICBnX2FwcF9sYXVuY2hfY29udGV4dF91bnNldGVudiAoY3R4LCB2 YXJpYWJsZV9ibGFja2xpc3RbaV0pOworLQorICAgICAgICAgY2hpbGRfZW52aXJvbm1lbnQgPSBn c21fdXRpbF9saXN0ZW52ICgpOworICAgICAgICAgZm9yIChpID0gMDsgY2hpbGRfZW52aXJvbm1l bnRbaV0gIT0gTlVMTDsgaSsrKSB7CisgICAgICAgICAgICAgICAgIGNoYXIgKiplbnZpcm9ubWVu dF90dXBsZTsKK2RpZmYgLS1naXQgYS9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmMgYi9nbm9tZS1z ZXNzaW9uL2dzbS11dGlsLmMKK2luZGV4IDAyYmM0YTUuLmFkYTEyMjUgMTAwNjQ0CistLS0gZ25v bWUtc2Vzc2lvbi9nc20tdXRpbC5jCisrKysgZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jCitAQCAt ODA4LDkgKzgwOCwzIEBAIGdzbV91dGlsX2xpc3RlbnYgKHZvaWQpCisgICAgICAgICByZXR1cm4g KGNvbnN0IGNoYXIgKiBjb25zdCAqKSBjaGlsZF9lbnZpcm9ubWVudDsKKyAKKyB9CistCistY29u c3QgY2hhciAqIGNvbnN0ICoKKy1nc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0ICh2b2lk KQorLXsKKy0gICAgICAgIHJldHVybiB2YXJpYWJsZV9ibGFja2xpc3Q7CistfQorZGlmZiAtLWdp dCBhL2dub21lLXNlc3Npb24vZ3NtLXV0aWwuaCBiL2dub21lLXNlc3Npb24vZ3NtLXV0aWwuaAor aW5kZXggYmQ3YjY5OC4uOGJjYTVmNCAxMDA2NDQKKy0tLSBnbm9tZS1zZXNzaW9uL2dzbS11dGls LmgKKysrKyBnbm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKK0BAIC01MCw3ICs1MCw2IEBAIGNoYXIg KiAgICAgIGdzbV91dGlsX2dlbmVyYXRlX3N0YXJ0dXBfaWQgICAgICAgICAgICAodm9pZCk7Cisg dm9pZCAgICAgICAgZ3NtX3V0aWxfc2V0ZW52ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25z dCBjaGFyICp2YXJpYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnZhbHVlKTsKKyBjb25zdCBjaGFyICogY29uc3Qg KiBnc21fdXRpbF9saXN0ZW52ICAgICAgICAgICAgICAgKHZvaWQpOworLWNvbnN0IGNoYXIgKiBj b25zdCAqIGdzbV91dGlsX2dldF92YXJpYWJsZV9ibGFja2xpc3Qodm9pZCk7CisgCisgZ2Jvb2xl YW4gICAgZ3NtX3V0aWxfZXhwb3J0X2FjdGl2YXRpb25fZW52aXJvbm1lbnQgIChHRXJyb3IgICAg ICoqZXJyb3IpOworICNpZmRlZiBIQVZFX1NZU1RFTUQKKy0tIAorMi4yNC4wCisKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoIGIv c3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlNTVhMGY3OTg3Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0 Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BA IC0xMzAsMTAgKzEzMCw3IEBAIGlmIGVuYWJsZV9zeXN0ZW1kIG9yIGVuYWJsZV9jb25zb2xla2l0 CisgCisgICAjIENoZWNrIGZvciBzeXN0ZW1kCisgICBpZiBlbmFibGVfc3lzdGVtZAorLSAgICBz eXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ3N5c3RlbWQnLCB2ZXJzaW9uOiAnPj0gMjQyJywgcmVx dWlyZWQ6IHRydWUpCistICAgIHN5c3RlbWRfdXNlcnVuaXRkaXIgPSBzeXN0ZW1kX2RlcC5nZXRf cGtnY29uZmlnX3ZhcmlhYmxlKCdzeXN0ZW1kdXNlcnVuaXRkaXInLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVfdmFy aWFibGU6IFsncHJlZml4JywgcHJlZml4XSkKKy0KKysgICAgc3lzdGVtZF91c2VydW5pdGRpciA9 ICcvdG1wJworICAgICBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnN5c3RlbWQnLCB2 ZXJzaW9uOiAnPj0gMjA5JywgcmVxdWlyZWQ6IGZhbHNlKQorICAgICBzZXNzaW9uX2Jpbl9kZXBz ICs9IGxpYnN5c3RlbWRfZGVwCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNlc3Npb24v dGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUKaW5kZXggNDQ0NGYxNjJi ZjEuLmM5YmM0OTMwYzM5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCkBAIC0xLDkgKzEsOSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2Vzc2lvbicKIHBrZ25hbWU9Z25vbWUtc2Vzc2lv bgotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgotY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIgorY29uZmln dXJlX2FyZ3M9Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIC1Ec3lzdGVtZF9zZXNzaW9uPWRpc2Fi bGUiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyB4bWx0 byIKIG1ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ3RrKzMt ZGV2ZWwganNvbi1nbGliLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJJQ0UtZGV2ZWwgbGliU00t ZGV2ZWwgbGliWHRzdC1kZXZlbCBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbApAQCAtMTUsNCAr MTUsOCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNlc3Npb24iCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1kNzgwMWZlMmQ1YTc1MWIxOWNiNTgwODE3NzEzMTZhNzZh YWJkNWM1NTBjZDU4ZDRlNGM2YTVhNGVkMzU2NjYwCitjaGVja3N1bT03YmNjMGViMmNkYmE0YjNm NmQxYjQ1OWIzYTMwODczYjdiYjY1YjM4M2MxZjZhNWY2M2MzZTNiNWM3OTQzZDY3CisKK3Bvc3Rf aW5zdGFsbCgpIHsKKwlybSAtcmYgJHtERVNURElSfS90bXAKK30KCkZyb20gNjU0Nzk1NmNlNGI1 MGI4MWIwZmMxY2JkNjdkNmNiOTVkY2RiOTRhYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0OS8xMDJdIGdub21lLWluaXRp YWwtc2V0dXA6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1pbml0aWFsLXNl dHVwL3RlbXBsYXRlIHwgMTEgKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1pbml0aWFs LXNldHVwL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlCmlu ZGV4IDU1ZGYyZjUzYzFkLi42M2FiZDNjNWM4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1p bml0aWFsLXNldHVwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90 ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtaW5p dGlhbC1zZXR1cCcKIHBrZ25hbWU9Z25vbWUtaW5pdGlhbC1zZXR1cAotdmVyc2lvbj0zLjM0LjEK LXJldmlzaW9uPTMKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgotY29uZmlndXJlX2FyZ3M9Ii1Ec29mdHdhcmUtc291cmNlcz1kaXNhYmxlZCAtRHN5c3RlbWQ9 ZmFsc2UiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKK2NvbmZpZ3Vy ZV9hcmdzPSItRHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQgLURwYXJlbnRhbF9jb250cm9scz1k aXNhYmxlZAorIC1Ec3lzdGVtZD1mYWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBn bGliLWRldmVsIGdldHRleHQiCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWNj b3VudHNzZXJ2aWNlLWRldmVsIGxpYmdsaWItZGV2ZWwKICBnbm9tZS1kZXNrdG9wLWRldmVsIGNo ZWVzZS1kZXZlbCBsaWJnd2VhdGhlci1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCiAgZ25vbWUtb25s aW5lLWFjY291bnRzLWRldmVsIGdkbS1kZXZlbCBsaWJwd3F1YWxpdHktZGV2ZWwKQEAgLTE3LDQg KzE4LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9EZXNpZ24vT1MvSW5pdGlhbFNldHVwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09ZTcxZjEwZWY2YjYzMWNkOTJmZmRlNzc0ZTQxMzBiMzJiMjQ5NGI0ZGY1ZWYyODgzNzVk OGIxOTU3ZWVhYmZhMQorY2hlY2tzdW09M2E4NTdhZWY1ZWZiNjg5ZjQwODYzMmRiODQ2OWFkMjc2 MjBmNzYyZDk3NzA3MGEzNjAzNWM1MjJjNmY4Mjc1OQoKRnJvbSBkMDkwYTQ3YmJmNjNjMjVmYTJm MTU3ZTQ2MTU4MzgxNTJjNmUxOWJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUwLzEwMl0geGRnLWRlc2t0b3AtcG9ydGFs LWd0azogdXBkYXRlIHRvIDEuOC4wCgotLS0KIHNyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0 ay90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsv dGVtcGxhdGUgYi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUKaW5kZXgg ZGVlMGU0NjMzODYuLjc1MTdkMWIzMmQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3hkZy1kZXNrdG9w LXBvcnRhbC1ndGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3Rr L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneGRnLWRlc2t0 b3AtcG9ydGFsLWd0aycKIHBrZ25hbWU9eGRnLWRlc2t0b3AtcG9ydGFsLWd0awotdmVyc2lvbj0x LjYuMAordmVyc2lvbj0xLjguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3Vy ZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGxpYnhzbHQgZ2xpYi1kZXZlbCB4ZGctZGVz a3RvcC1wb3J0YWwgZ2V0dGV4dCIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRHVuY2Fl biA8ZHVuY2FlbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGFrL3hkZy1kZXNrdG9wLXBvcnRhbC1n dGsiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGFrLyR7cGtnbmFtZX0vcmVs ZWFzZXMvZG93bmxvYWQvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09OTU2ZmQxNjYwODI0N2U3MTE5ZDRjNmQ5NWE2ZGM2NTc4ZGNlMjU3ZDJmMjcyZDAz YjM0OTg1NzIyNTdlMmY3NgorY2hlY2tzdW09YTUyNTI5ZWQzMjFlMDQ0Y2E5YWRjYTVlOTcxOGQ5 YmE1N2M0MTRhMjYzNGRkNDEwOWRmMzQ0YzViOWVlZDc3ZgogCiBwb3N0X2luc3RhbGwoKSB7CiAJ cm0gLXJmICIke0RFU1RESVJ9L3Vzci9saWIvc3lzdGVtZCIKCkZyb20gZDIzYWEzYzMzYzU3M2Ri Mzc5OGFiZDg4OTczYThiYTczMmI0NTJmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1MS8xMDJdIG5hdXRpbHVzOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUgfCAxMCArKysrKy0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUgYi9zcmNwa2dzL25hdXRpbHVzL3Rl bXBsYXRlCmluZGV4IDUzN2E4NTE5NzNmLi5kZTk2OGYwMWQ3YyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9uYXV0aWx1cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCkBAIC0x LDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbmF1dGlsdXMnCiBwa2duYW1lPW5hdXRp bHVzCi12ZXJzaW9uPTMuMzYuMS4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtOCwxNiArOCwxNiBAQCBjb25maWd1 cmVfYXJncz0iLUR0ZXN0cz1oZWFkbGVzcyAtRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0 cnVlIGZhbHNlKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQg cGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJleGVtcGktZGV2ZWwgZ25vbWUtYXV0b2FyLWRldmVs IGdub21lLWRlc2t0b3AtZGV2ZWwgZ3RrKzMtZGV2ZWwKICBsaWJleGlmLWRldmVsIGxpYmdleGl2 Mi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYm5vdGlmeS1kZXZlbCBsaWJzZWNjb21wLWRldmVsCi0g bGliWDExLWRldmVsIGxpYnhtbDItZGV2ZWwgdHJhY2tlci1kZXZlbCBnc3QtcGx1Z2lucy1iYXNl MS1kZXZlbCIKKyBsaWJYMTEtZGV2ZWwgbGlieG1sMi1kZXZlbCB0cmFja2VyMy1kZXZlbCBnc3Qt cGx1Z2lucy1iYXNlMS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGlu Z3MtZGVza3RvcC1zY2hlbWFzIGhpY29sb3ItaWNvbi10aGVtZQotIHRyYWNrZXItbWluZXJzIHRy YWNrZXIiCi1jaGVja2RlcGVuZHM9InRyYWNrZXIiCisgdHJhY2tlcjMtbWluZXJzIHRyYWNrZXIz IgorY2hlY2tkZXBlbmRzPSJ0cmFja2VyMyB0cmFja2VyMy1taW5lcnMgcHl0aG9uMy1nb2JqZWN0 IGRidXMiCiBzaG9ydF9kZXNjPSJHTk9NRSBmaWxlIG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9O YXV0aWx1cyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbjo6 NH0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5MjUyZjUwODIxMWQ5 ZjM2OGE0OWRiNjk3ODkwZjg5NWQwODBmMDk1OTBhZWNhZjMzODAzYTUxOWRlZjdiZGUKK2NoZWNr c3VtPWM2ZjMzMGY5ZjNmN2RiZjM1YWZiNmVjMjA5NGI3NDZlZTc1ZDVlOTI4YzhmNjc4MGRhYjI2 NjcyMDg2Y2NhYzAKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIiCgpGcm9tIDI4MWZjZDA5YjIwY2I1ZTlmMjU0MjM1ZjBkZTI3ODliMWU5YmY4OWIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNTIvMTAyXSBnbm9tZS1tYXBzOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3Mv Z25vbWUtbWFwcy90ZW1wbGF0ZSB8IDEwICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1t YXBzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCmluZGV4IDAzMDBiZTYw NTk5Li4zMjg1ZmFmMTdlNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbWFwcycKIHBrZ25hbWU9Z25vbWUtbWFwcwotdmVyc2lv bj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgot aG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpbnRsdG9v bCBwa2ctY29uZmlnIEFwcFN0cmVhbSIKK2J1aWxkX2hlbHBlcj0iZ2lyIgoraG9zdG1ha2VkZXBl bmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgQXBwU3RyZWFtIgogbWFrZWRlcGVu ZHM9ImZvbGtzLWRldmVsIGdlb2NsdWUyLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnanMtZGV2 ZWwKLSBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVsIgor IGdub21lLWRlc2t0b3AtZGV2ZWwgbGliY2hhbXBsYWluLWRldmVsIHJlc3QtZGV2ZWwgbGliaGFu ZHkxLWRldmVsIgogZGVwZW5kcz0iZ2VvY2x1ZTIgZ2ZiZ3JhcGggZ2pzIgogc2hvcnRfZGVzYz0i R05PTUUgbWFwcyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9NYXBzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09MWEzMmVmZDk2YWQ4OThmNzdhNjM2ZDJkMDQ2M2Q3NTcwMDliNGI4MTIyNTljODlm ZmRjYjkxZDZhZmMwNTJmOQotbm9jcm9zcz0iZXZvbHV0aW9uLWRhdGFzZXJ2ZXIgY3Jvc3MgZ2ly IGRvZXNuJ3Qgd29yayIKK2NoZWNrc3VtPTU1NzU4MzQwZWJkMDg0NjEwMjgzYmYxZjZmZWM2YzA0 MjU1OWExODZlYjg2OTljMDU2YTIyZGZlZjFkOTdmOTkKCkZyb20gZTM5YTBkNmMxOTdiYzg5ZmFk OWQ5MGQ2NGUzYWU3ZGZlYzQ2YmEwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1My8xMDJdIGV2b2x1dGlvbjogdXBkYXRl IHRvIDMuMzguMAoKLS0tCiAuLi4vZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMu Y21ha2UgfCA0NSAtLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9p Y29udi1kZXRlY3QuaCAgICAgICAgfCAgNSAtLS0KIHNyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICB8IDM1ICsrKy0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2Vk LCA3IGluc2VydGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2Ug Yi9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YmU1NWI0MjA3MC4uMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQorKysgL2Rl di9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMgVGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgYnkgQ01h a2UgYmVjYXVzZSBpdCBkZXRlY3RlZCBUUllfUlVOKCkgY29tbWFuZHMKLSMgaW4gY3Jvc3Njb21w aWxpbmcgbW9kZS4gSXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSB0aGUgbmV4dCBDTWFrZSBydW4u Ci0jIENvcHkgaXQgdG8gYSBzYWZlIGxvY2F0aW9uLCBzZXQgdGhlIHZhcmlhYmxlcyB0byBhcHBy b3ByaWF0ZSB2YWx1ZXMKLSMgYW5kIHVzZSBpdCB0aGVuIHRvIHByZXNldCB0aGUgQ01ha2UgY2Fj aGUgKHVzaW5nIC1DKS4KLQotCi0jIF9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jICAgIGluZGlj YXRlcyB3aGV0aGVyIHRoZSBleGVjdXRhYmxlIHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHJ1biBv biBpdHMKLSMgICAgdGFyZ2V0IHBsYXRmb3JtLiBJZiBzbywgc2V0IF9jb3JyZWN0X2ljb252X0VY SVRDT0RFIHRvCi0jICAgIHRoZSBleGl0IGNvZGUgKGluIG1hbnkgY2FzZXMgMCBmb3Igc3VjY2Vz cyksIG90aGVyd2lzZSBlbnRlciAiRkFJTEVEX1RPX1JVTiIuCi0jIFRoZSBfY29ycmVjdF9pY29u dl9DT01QSUxFRCB2YXJpYWJsZSBob2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9S VU4oKS4KLSMgCi0jIFNvdXJjZSBmaWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2Vy dmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUg ICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZp bGVzL2NtVENfMzE1ZWUtX2NvcnJlY3RfaWNvbnZfRVhJVENPREUKLSMgUnVuIGFyZ3VtZW50cyA6 IAotIyAgICBDYWxsZWQgZnJvbTogWzJdCS91c3Ivc2hhcmUvY21ha2UtMy45L01vZHVsZXMvQ2hl Y2tDU291cmNlUnVucy5jbWFrZQotIyAgICAgICAgICAgICAgICAgWzFdCS9idWlsZGRpci9ldm9s dXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL0NNYWtlTGlzdHMudHh0Ci0KLXNldCggX2NvcnJlY3Rf aWNvbnZfRVhJVENPREUgCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9t IFRSWV9SVU4iIEZPUkNFKQotc2V0KF9jb3JyZWN0X2ljb252X0VYSVRDT0RFX19UUllSVU5fT1VU UFVUCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZP UkNFKQotCi0KLSMgSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFCi0jICAgIGluZGljYXRlcyB3aGV0 aGVyIHRoZSBleGVjdXRhYmxlIHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHJ1biBvbiBpdHMKLSMg ICAgdGFyZ2V0IHBsYXRmb3JtLiBJZiBzbywgc2V0IEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERSB0 bwotIyAgICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9yIHN1Y2Nlc3MpLCBvdGhl cndpc2UgZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgSEFWRV9MS1NUUkZUSU1FX0NPTVBJ TEVEIHZhcmlhYmxlIGhvbGRzIHRoZSBidWlsZCByZXN1bHQgZm9yIHRoaXMgVFJZX1JVTigpLgot IyAKLSMgU291cmNlIGZpbGUgICA6IC9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4y Ni4wL2J1aWxkL0NNYWtlRmlsZXMvQ01ha2VUbXAvc3JjLmMKLSMgRXhlY3V0YWJsZSAgICA6IC9i dWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmlsZXMvY21U Q19kMjg5Ny1IQVZFX0xLU1RSRlRJTUVfRVhJVENPREUKLSMgUnVuIGFyZ3VtZW50cyA6IAotIyAg ICBDYWxsZWQgZnJvbTogWzJdCS91c3Ivc2hhcmUvY21ha2UtMy45L01vZHVsZXMvQ2hlY2tDU291 cmNlUnVucy5jbWFrZQotIyAgICAgICAgICAgICAgICAgWzFdCS9idWlsZGRpci9ldm9sdXRpb24t ZGF0YS1zZXJ2ZXItMy4yNi4wL0NNYWtlTGlzdHMudHh0Ci0KLXNldCggSEFWRV9MS1NUUkZUSU1F X0VYSVRDT0RFIAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllf UlVOIiBGT1JDRSkKLXNldCggSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFX19UUllSVU5fT1VUUFVU Ci0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNF KQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaCBi L3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVjdC5oCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA0NmY0NzZkNWJjOS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ldm9s dXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAK LS8qIFRoaXMgaXMgYW4gYXV0by1nZW5lcmF0ZWQgaGVhZGVyLCBETyBOT1QgRURJVCEgKi8KLQot I2RlZmluZSBJQ09OVl9JU09fRF9GT1JNQVQgImlzby0lZC0lZCIKLSNkZWZpbmUgSUNPTlZfSVNP X1NfRk9STUFUICJpc28tJWQtJXMiCi0jZGVmaW5lIElDT05WXzEwNjQ2ICJpc28tMTA2NDYiCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9u L3RlbXBsYXRlCmluZGV4IDU2MGVkOTNkYTAyLi5hYTNmYTM0YmM0YyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9ldm9sdXRpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUK QEAgLTEsNTQgKzEsMzMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1dGlvbicKIHBrZ25h bWU9ZXZvbHV0aW9uCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPWNtYWtlCitidWlsZF9oZWxwZXI9ImdpciBxZW11IgogY29uZmlndXJlX2Fy Z3M9Ii1ERU5BQkxFX0FVVE9BUj1PRkYgLURFTkFCTEVfTElCQ1JZUFRVST1PRkYgLURFTkFCTEVf R1RLU1BFTEw9T0ZGCi0gLURFTkFCTEVfVEVYVF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxFX1BTVF9J TVBPUlQ9T0ZGCi0gLURFTkFCTEVfV0VBVEhFUj0kKHZvcHRfaWYgZ2lyIE9OIE9GRikiCisgLURF TkFCTEVfVEVYVF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZGIC1ERU5BQkxF X1dFQVRIRVI9T04iCiBob3N0bWFrZWRlcGVuZHM9Imdub21lLWRvYy11dGlscyBnb2JqZWN0LWlu dHJvc3BlY3Rpb24gaW50bHRvb2wgaXRzdG9vbAotIHBrZy1jb25maWciCisgcGtnLWNvbmZpZyBn bGliLWRldmVsIgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGNsdXR0ZXItZ3Rr LWRldmVsIGVuY2hhbnQyLWRldmVsCiAgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIGdzcGVs bC1kZXZlbCBndGtodG1sLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsCi0gJCh2b3B0X2lmIGdpciBs aWJnd2VhdGhlci1kZXZlbCkgbGlibm90aWZ5LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgeXRuZWYt ZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZlbCBsaWJub3RpZnktZGV2ZWwgd2Via2l0Mmd0ay1kZXZl bCB5dG5lZi1kZXZlbAogIGdub21lLWRlc2t0b3AtZGV2ZWwiCiBkZXBlbmRzPSJnbm9tZS1rZXly aW5nIgogc2hvcnRfZGVzYz0iSW50ZWdyYXRlZCBtYWlsLCBhZGRyZXNzYm9vayBhbmQgY2FsZW5k YXJpbmcgZm9yIEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTMuMC1vci1sYXRlciwg R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMv RXZvbHV0aW9uIgotY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20v R05PTUUvZXZvbHV0aW9uL2dub21lLTMtMzYvTkVXUyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcu Z2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlvbi9nbm9tZS0zLTM4L05FV1MiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04NzNhY2YxZGJlYzM4ZTY3ZTE2OTA2NDY0 NWFjM2E5YjlhOTQ0YmQyYjYzMzE2MWRmNmU1ZjA1NzAwZTM2Y2I4CitjaGVja3N1bT1mODFjYzQw ZjU0YWEyZDA1OWRhNGYzYTk0ZWIwOTM2MmU4MTUxMzMwNmM5NzRhNDFjYTc4OTViOWM4OTU3YzVk CiBzaGxpYl9wcm92aWRlcz0ibGliZXZvbHV0aW9uLWNhbGVuZGFyLnNvIGxpYmV2b2x1dGlvbi11 dGlsLnNvIGxpYmVtYWlsLWVuZ2luZS5zbwogIGxpYmV2b2x1dGlvbi1tYWlsLnNvIGxpYmV2b2x1 dGlvbi1zaGVsbC5zbyIKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JV SUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCi1lbHNlCi0JaG9zdG1h a2VkZXBlbmRzKz0iIGdsaWItZGV2ZWwiCiBmaQogCi0jIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNr cyB1c2luZyBiaW5hcnkgcnVudGltZSwgYWJvdXQgaWNvbnYgYW5kIHNmcnRpbWUuCi0jIG11c2wg KDEuMS4xNikgZG9lcyBub3Qgc3VwcG9ydCAiSVNPLTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRz IHJvYWRtYXApLAotIyBhbHRob3VnaCBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRo IG11c2wuCi0jIElmIGNyb3NzYnVpbGQsIGNtYWtlIGxldCBkaXNhYmxpbmcgcnVudGltZSBjaGVj a3MgdmlhIHNwZWNpZmljIGRpcmVjdGl2ZXMuCi0jIHRlc3QgaWNvbnYtZGV0ZWN0LmMgYWxzbyBn ZW5lcmF0ZXMgaWNvbnYtZGV0ZWN0LmggdGhhdCBpcyByZXF1aXJlZCBmb3IgYnVpbGQuCi0jIFNv IGNvbXBsZXRseSBkaXNhYmxlIHRlc3QgZnJvbSBpY29udi1kZXRlY3QuYyAoY21ha2UucGF0Y2gg ZmlsZSkgYW5kCi0jIHVzZSBhIGNtYWtlIGNhY2hlIGZpbGUgb24gY3Jvc3NidWlsZCB0byBkaXNh YmxlIHNmcnRpbWUgcnVubmluZyB0ZXN0LgotaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0J Y29uZmlndXJlX2FyZ3MrPSIgLUMgZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSIKLWZpCi0KLXBy ZV9jb25maWd1cmUoKSB7Ci0JbWtkaXIgLXAgYnVpbGQKLQljcCAke0ZJTEVTRElSfS9pY29udi1k ZXRlY3QuaCAke3dya3NyY30vYnVpbGQvLgotCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgot CQljcCAke0ZJTEVTRElSfS9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlICR7d3Jrc3JjfS9idWls ZC8uCi0JZmkKLX0KLQogZXZvbHV0aW9uLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0id2Vi a2l0Mmd0ay1kZXZlbCBndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGV2b2x1dGlvbi1kYXRhLXNl cnZlci1kZXZlbAogCSBndGtodG1sLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKCkZyb20gOTg2NGNhMjkyM2MyNjI0MjU5MGVhZTI1NDMzNmQxY2IzMmIzZWFlMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDA1NC8xMDJdIGV2b2x1dGlvbi1ld3M6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3Jj cGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9s dXRpb24tZXdzL3RlbXBsYXRlIGIvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlCmluZGV4 IDRmZjgxMTY0NjZjLi45OGVlM2E3N2ZlNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24t ZXdzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQpAQCAtMSw2 ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1dGlvbi1ld3MnCiBwa2duYW1lPWV2 b2x1dGlvbi1ld3MKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRExJQkVYRUNfSU5TVEFMTF9ESVI9 L3Vzci9saWIvZXZvbHV0aW9uIgpAQCAtMTAsNiArMTAsNiBAQCBzaG9ydF9kZXNjPSJNUyBFeGNo YW5nZSBpbnRlZ3JhdGlvbiB0aHJvdWdoIEV4Y2hhbmdlIFdlYiBTZXJ2aWNlcyIKIG1haW50YWlu ZXI9IlBldGVyIEt1Y2hhciA8bWFzYWpAZ214LmNvbT4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9uIgot Y2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZvbHV0 aW9uLWV3cy9nbm9tZS0zLTM2L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVz ZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24tZXdzL2dub21lLTMtMzgvTkVXUyIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWQwODgzYzdkMjI3ODI3Y2M1YzQ0NjhiN2UzMWEz ZWUzNzBiY2Q3ZDQxYTRkYmI5NTBhYjVkYjM2Yzk1NTFhYzEKK2NoZWNrc3VtPTU5YmY1OWNhYmI5 ZDE5M2Q5MTA3Njk3MmRkOGE2ZTcxZWJmMzRjN2JmYWQwMWNkNjk1NDI5NzM0N2EzMDc3YjMKCkZy b20gY2U3YjBjOGE0MmZkYjFiNjkwYmIxZGQyMTc1NTkyODM1OTk0ZDIyNyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1NS8x MDJdIHB5dGhvbjMtYXRzcGk6IHVwZGF0ZSB0byAyLjM4LjAKCi0tLQogc3JjcGtncy9weXRob24z LWF0c3BpL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLWF0c3BpL3Rl bXBsYXRlIGIvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlCmluZGV4IGEzM2EzNzRmZTE4 Li4yM2ZhOTg5MzRlNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtYXRzcGknCiBwa2duYW1lPXB5dGhvbjMtYXRzcGkK LXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzguMAorcmV2aXNpb249MQog YXJjaHM9bm9hcmNoCiB3cmtzcmM9InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKQEAgLTEzLDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9L3B5YXRzcGkvJHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09ODQ5NTRhNWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIz OWIyNDYzN2I0YzRkZDFmODYyMDM4OQorY2hlY2tzdW09ZmY4MDkzMTJmZDBjMmY2MWUxOTFjMTgx YTFhNjM4YTMwYjU3OWI5MWI2ODJjZmI1YTA1NTM1YTU1MjY1YjQzZAoKRnJvbSAwNzRiMDFiZGQ0 NmZmOWI2MWQxMzBhODY0MGI0OWIzMjQ0MzgxMTZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDU2LzEwMl0gcHl0aG9uLWF0 c3BpOiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRl IHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUgYi9zcmNwa2dz L3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQppbmRleCAwMTQxZDk3Zjg1ZC4uNzUwNWMzMmFkNjAgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0 aG9uLWF0c3BpL3RlbXBsYXRlCkBAIC0xLDggKzEsOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn cHl0aG9uLWF0c3BpJwogIyBLZWVwIHB5dGhvbjMtYXRzcGkgaW4gc3luYwogcGtnbmFtZT1weXRo b24tYXRzcGkKLXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzguMAorcmV2 aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtzcmM9InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxk X3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTE0LDQgKzE0LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9L3B5YXRzcGkvJHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODQ5NTRhNWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2Fi ODIwOGUxMWIzOWIyNDYzN2I0YzRkZDFmODYyMDM4OQorY2hlY2tzdW09ZmY4MDkzMTJmZDBjMmY2 MWUxOTFjMTgxYTFhNjM4YTMwYjU3OWI5MWI2ODJjZmI1YTA1NTM1YTU1MjY1YjQzZAoKRnJvbSBm OTM5MzZmZTFjY2FiODczZjFiMDAxZTNhNGU5MmVkMDc2MGFlYmZkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDU3LzEwMl0g b3JjYTogdXBkYXRlIHRvIDMuMzguMCwgZHJvcCBub2FyY2gKCi0tLQogc3JjcGtncy9vcmNhL3Rl bXBsYXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUgYi9zcmNwa2dzL29y Y2EvdGVtcGxhdGUKaW5kZXggZjcwMjAyZTZkNzYuLjM4ZTkyMzQ2Yjg2IDEwMDY0NAotLS0gYS9z cmNwa2dzL29yY2EvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcmNhL3RlbXBsYXRlCkBAIC0xLDgg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3JjYScKIHBrZ25hbWU9b3JjYQotdmVyc2lv bj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxk X3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0iaW50bHRvb2wgaXRzdG9vbCBw a2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImF0LXNwaTItYXRrLWRldmVsIGxpYmxvdWlzLWRldmVs IHB5dGhvbjMtZ29iamVjdC1kZXZlbCIKQEAgLTEzLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9PcmNhIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzFhYzY0OGI2YmUzMTQ4OGMyNmZmOTU5MTE0 Mjg3ODY5ZGY5Y2UzY2EyMTk5OWU0MGRlZDg3NzQxYzk4ODMxZgorY2hlY2tzdW09MWMzMjc5ZDc5 ODk4ZGIxMGExMDViY2I3MDViNWE0MDQyYjFiNTFhOWMwNTdhNmJkMGZmZDY1ZGFjMjM1NmZlZQog CiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgcHl0aG9u My1nb2JqZWN0LWRldmVsIgoKRnJvbSAzOTRkYThkMDg1M2M1YTliZDA3ZTZmZmVjM2YwNzQ0MDU3 ZjBhZDBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDU4LzEwMl0gZ25vbWUtd2VhdGhlcjogYnVtcAoKLS0tCiBzcmNwa2dz L2dub21lLXdlYXRoZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXdlYXRoZXIv dGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKaW5kZXggZDMwYmU5YmYx OTIuLmMwMjhlNDZiYTY1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtd2VhdGhlcicKIHBrZ25hbWU9Z25vbWUtd2VhdGhl cgogdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0i Z2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29u ZmlnIGl0c3Rvb2wgZ2xpYi1kZXZlbCBnanMiCgpGcm9tIDVlMjk4NjkzYjA2MjQ1MGZjZGY1YzQ3 NmY4Mzc1NzBiMmRmNWJjYTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTkvMTAyXSB2dGUzOiB1cGRhdGUgdG8gMC42Mi4w CgotLS0KIHNyY3BrZ3MvdnRlMy90ZW1wbGF0ZSB8IDE5ICsrKysrKysrLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQppbmRleCA2 MTE2YjNjYzYyMS4uNDFmOWY0ZTdlOWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdnRlMy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUKQEAgLTEsMjkgKzEsMjggQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ3Z0ZTMnCiBwa2duYW1lPXZ0ZTMKLXZlcnNpb249MC42MC4zCit2ZXJzaW9u PTAuNjIuMAogcmV2aXNpb249MQogd3Jrc3JjPSJ2dGUtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxl PW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGJfbmRlYnVnPWZh bHNlIC1EZ2lyPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkKLSAtRHZhcGk9JCh2b3B0X2lmIHZh bGEgdHJ1ZSBmYWxzZSkgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlIgorY29uZmlndXJl X2FyZ3M9Ii1EYl9uZGVidWc9ZmFsc2UgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlCisg JCh2b3B0X2Jvb2wgZ2lyIGdpcikgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpIgogaG9zdG1ha2VkZXBl bmRzPSJnbGliLWRldmVsIGdub21lLWRvYy11dGlscyBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmln Ci0gJCh2b3B0X2lmIHZhbGEgdmFsYSkiCi1tYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0aysz LWRldmVsIHBjcmUyLWRldmVsICQodm9wdF9pZiB2YWxhIHZhbGEtZGV2ZWwpIgotZGVwZW5kcz0i dnRlIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCittYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0 ayszLWRldmVsIHBjcmUyLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBzaG9ydF9k ZXNjPSJUZXJtaW5hbCB3aWRnZXQgd2l0aCBpbXByb3ZlZCBhY2Nlc3NpYmlsaXR5IGFuZCBJMThO IHN1cHBvcnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIsIExHUEwtMy4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9UZXJtaW5h bC9WVEUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdnRlLyR7dmVyc2lvbiUuKn0vdnRlLSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmViNzZlMTE4MWEzNTdkODYxMTJkNDQ3YTA4ZDEy N2UyMDgxNDM4ZGY3NmVjZTgzMjQzYjE4NjA5ZGQ5ODIyYQorY2hlY2tzdW09NGQyZDI0NmVkNDdm MDhjYzczZjY0NzFhYThlOWYzNzg5OThiN2QwZjdkY2IwYzQzM2YyOWRhNTgzOWRiYjAxNgogCiAj IFN1cHByZXNzIHdhcm5pbmdzIGFzIGVycm9ycyBmb3IgTlVMTCBmb3JtYXQgc3RyaW5ncyAobXVz bCBsaWJjKQogQ1hYRkxBR1M9Ii1Xbm8tZXJyb3I9Zm9ybWF0PSIKIAogIyBQYWNrYWdlIGJ1aWxk IG9wdGlvbnMKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIgogCiBwcmVfYnVpbGQoKSB7CiAJZXhwb3J0IEdJUl9FWFRSQV9MSUJTX1BBVEg9IiR7d3Jr c3JjfS9zcmMvLmxpYnMiCkBAIC0zOCw4ICszNyw2IEBAIHZ0ZTMtZGV2ZWxfcGFja2FnZSgpIHsK IAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRo ZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRp b25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9t IDYwYjlmNDFhZTM1MGQwZmUzYmU5YmE1ZGQ1YjRiMDNjNTkzNTlhNDIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjAvMTAy XSBnbm9tZS10ZXJtaW5hbDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLXRl cm1pbmFsL3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXRlcm1pbmFs L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQppbmRleCBiZjNkNWJj ZGQ0Mi4uMTI2YmE1OTU2ZmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQpAQCAtMSwxMSArMSwx MSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtdGVybWluYWwnCiBwa2duYW1lPWdub21l LXRlcm1pbmFsCi12ZXJzaW9uPTMuMzYuMS4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0 aWMgLS13aXRoLW5hdXRpbHVzLWV4dGVuc2lvbiIKIGhvc3RtYWtlZGVwZW5kcz0iYXBwZGF0YS10 b29scyBnbGliLWRldmVsIGludGx0b29sIGl0c3Rvb2wKLSBwa2ctY29uZmlnIgorIHBrZy1jb25m aWcgZG9jYm9vay14c2wiCiBtYWtlZGVwZW5kcz0iZGNvbmYtZGV2ZWwgZ25vbWUtc2hlbGwgZ3Nl dHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbAogIG5hdXRpbHVzLWRldmVsIHZ0ZTMtZGV2ZWwi CiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCkBAIC0xMyw4ICsxMyw4IEBAIHNob3J0X2Rl c2M9IkdOT01FIHRlcm1pbmFsIGVtdWxhdG9yIGFwcGxpY2F0aW9uIgogbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIsIEdGREwtMS4zLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L1Rlcm1pbmFsIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9u OjA6NH0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYzZDcwOGExZTc2 ZDc3YzFjODViMTI2ZjZlMDAzMjIwYTE1ZDRhNDZhNTBmZDgwNzBlMWEzYWFiZTY3OGEzNzYKK2Rp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTBhMGZjN2E4YjM4M2M2ZmZkNjE0NjliZTFk ZWE1YmE2M2NmZmFkODEyOTIxNzgwZTdmYWQ0MGMyZTJhZTU0ZjUKIGxpYjMyZGlzYWJsZWQ9eWVz CiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSAxZGU2NjE2ZTNjNzkwYzc5MTYx YzdiZDJhMzJmMTk2MTUzOTczNjlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYxLzEwMl0gZ25vbWUtZ2V0dGluZy1zdGFy dGVkLWRvY3M6IHVwZGF0ZSB0byAzLjM2LjIKCi0tLQogc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0 YXJ0ZWQtZG9jcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWdldHRpbmct c3RhcnRlZC1kb2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9j cy90ZW1wbGF0ZQppbmRleCA1YmVjOTM0OTBiYS4uYmVkOWI2OTYxNjIgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzJwogcGtnbmFtZT1nbm9t ZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4zNi4yCiBy ZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEx LDQgKzExLDQgQEAgbGljZW5zZT0iQ0MtQlktU0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcyIKICNjaGFuZ2Vs b2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQt ZG9jcy9yYXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1m NzBjZTJjYTIzYWQ3ODYyMTVmM2M5MmVjODU3ODNlM2FhYmVkMDdlNGY3ODcwMGZhMjdmOWIyY2Y3 NmUwM2RiCitjaGVja3N1bT0wNDk0Yjg5MTNhOTQ2YjY0NTA1MzZlMTIwYzE1NGFiZDI5MjM4ZWJi YTJmNTI3MzQ1OTJiMWY2NDVlNTIxZGM2CgpGcm9tIGFlZGJiMDg5MTI5YTk3ODA5YWU4NDMxMzVj NmEwMTNkNmE0NDcyODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjIvMTAyXSBnbm9tZS11c2VyLWRvY3M6IHVwZGF0ZSB0 byAzLjM4LjAsIGRyb3Agbm9hcmNoCgotLS0KIHNyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBs YXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlCmluZGV4IDRjYjU1Mzk2ZTM3Li5mOTk0MmUy NDg0MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbm9tZS11c2VyLWRvY3MnCiBwa2duYW1lPWdub21lLXVzZXItZG9jcwot dmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gK IGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ct Y29uZmlnIGl0c3Rvb2wgZ25vbWUtZG9jLXV0aWxzIgogbWFrZWRlcGVuZHM9InllbHAiCkBAIC0x Myw0ICsxMiw0IEBAIGxpY2Vuc2U9IkNDLUJZLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1 Yi5jb20vR05PTUUvZ25vbWUtdXNlci1kb2NzIgogI2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0 aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLXVzZXItZG9jcy9tYXN0ZXIvTkVXUyIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPThmOTkwN2ZmMTVmZmY5N2RhNzVlY2U2NDVj Yzg2NzY2NzAzYWM1NGQ3MTZkMjU1NjNiYTY3ZmZlZDFhZjI0ZWQKK2NoZWNrc3VtPTM4ZDNkYjVi NWRjNTkxMjgxMmEyYzZjYjI5NzY1YmZiMzkyNDJjZWRjZDdlZTM0N2RmOThmY2E3NzdkY2VlOGEK CkZyb20gMDExY2IwOGU5NDI2MDFlNmU3NmZmYTY3M2U1ODdhMDM3MzVjZDQwOSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2 My8xMDJdIGdub21lLWVwdWItdGh1bWJuYWlsZXI6IHVwZGF0ZSB0byAxLjYKCi0tLQogc3JjcGtn cy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVt Ym5haWxlci90ZW1wbGF0ZQppbmRleCBiMTZlNzA1NDc1Zi4uYzZlMWMwMmI5ZDMgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbm9tZS1lcHViLXRodW1ibmFpbGVyJwogcGtnbmFtZT1nbm9tZS1lcHVi LXRodW1ibmFpbGVyCi12ZXJzaW9uPTEuNQordmVyc2lvbj0xLjYKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKQEAgLTEw LDQgKzEwLDQgQEAgbWFpbnRhaW5lcj0iQWxpZiBSYWNobWF3YWRpIDxhcmNoQHN1Ym9zaXRvLmNv bT4iCiBsaWNlbnNlPSJHUEwtMyIKIGhvbWVwYWdlPSJodHRwczovL2dpdC5nbm9tZS5vcmcvYnJv d3NlL2dub21lLWVwdWItdGh1bWJuYWlsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT0zMDgyMTBmNTgwMDIxOWY2NGNhZTQ4MjhlNTliYjhlNmU0YzUzYjg4ODA0OGNmNDg3MjIxYWVi NDMzN2Q3OTFhCitjaGVja3N1bT1iNTAyNDIwZDliMDJlYTBiMGZjNzk4NmVmNWEwOTFhMTJiMjI4 NmJlMTRmZWQ5ZTQ3NTk0ZmU5ZmEwYzU4OThlCgpGcm9tIDVkMmFhODlhMGFmYTA5NGRkMzRkOThj NjI2YWNkZDgwYTI4N2VkYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjQvMTAyXSBnbm9tZS1ib29rczogYnVtcAoKLS0t CiBzcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1i b29rcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUKaW5kZXggMTE0Yjll MDM0YzIuLjFkNDk3NGZlMTgzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1ib29rcycKIHBrZ25hbWU9Z25vbWUtYm9va3MKIHZl cnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9oZWxwZXI9ImdpciIK IGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgdmFsYSBnbGli LWRldmVsIGxpYnJzdmcgZG9jYm9vay14c2wgbGlieHNsdAoKRnJvbSBkZTYwZDM2YzU4ZjUwNWVj Zjk5ZmI5YTFlNzRkYmU2NjQ5ODY0M2NhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY1LzEwMl0gZ25vbWUtY2hhcmFjdGVy czogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNoYXJh Y3RlcnMvdGVtcGxhdGUKaW5kZXggODk4NjhmNGJjMDQuLmFjMjY0ZTUxYTZhIDEwMDY0NAotLS0g YS9zcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1j aGFyYWN0ZXJzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Z25vbWUtY2hhcmFjdGVycycKIHBrZ25hbWU9Z25vbWUtY2hhcmFjdGVycwogdmVyc2lvbj0zLjM0 LjAKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9ImdpciIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnanMgZ2xpYi1kZXZlbCBpdHN0b29s IHBrZy1jb25maWciCgpGcm9tIDFhYzZjNTJmYTlhNmNmMTY4ZDYwNWQzOWJmOGIyYWU3ODI0YWQw OTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwNjYvMTAyXSBnbm9tZS1kb2N1bWVudHM6IGJ1bXAKCi0tLQogc3JjcGtncy9n bm9tZS1kb2N1bWVudHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRvY3VtZW50 cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCmluZGV4IDk3YjUz ZDYzNWQ3Li43ZTQ1YjgyNWU3MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kb2N1bWVudHMnCiBwa2duYW1lPWdu b21lLWRvY3VtZW50cwogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1 aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZG9j Ym9vay14c2wgZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBsaWJ4c2x0IGdk ay1waXhidWYKCkZyb20gMWUwNDU1NzkzMWU2NDAyMmFmNGEwNmIxNDcwMjdhYWU0NjgwYmJjOCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDA2Ny8xMDJdIGdub21lLWZvbnQtdmlld2VyOiBidW1wCgotLS0KIHNyY3BrZ3MvZ25v bWUtZm9udC12aWV3ZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWZvbnQtdmll d2VyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1wbGF0ZQppbmRleCA2 ZDAzNTM2NmQ0NC4uZjc0ZmNiY2IwMDAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZm9udC12 aWV3ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWZvbnQtdmlld2VyJwog cGtnbmFtZT1nbm9tZS1mb250LXZpZXdlcgogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcg Z2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJmb250Y29uZmlnLWRldmVsIGZyZWV0eXBlLWRldmVs IGdsaWItZGV2ZWwgZ3RrKzMtZGV2ZWwKCkZyb20gYzAzYjRmZDZmMDIzYjg2YThkMDY2Y2U4ZWZk M2Y2ZWNjN2U1M2MxNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA2OC8xMDJdIHRvdGVtOiB1cGRhdGUgdG8gMy4zOC4wCgot LS0KIHNyY3BrZ3MvdG90ZW0vdGVtcGxhdGUgfCAxNiArKysrKysrKystLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvdG90ZW0vdGVtcGxhdGUgYi9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCmluZGV4IDgxNTIy YjMxNDg4Li41NmZiMTUyNzBmYiAxMDA2NDQKLS0tIGEvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICd0b3RlbScKIHBrZ25hbWU9dG90ZW0KLXZlcnNpb249My4zNC4xCit2ZXJzaW9u PTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2ly IgogY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlLXB5dGhvbj1ubyAtRGVuYWJsZS1uYXV0aWx1cz15 ZXMKICAtRGVuYWJsZS1pbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgeWVzIG5vKQotIC1EZW5h YmxlLXZhbGE9JCh2b3B0X2lmIHZhbGEgeWVzIG5vKSIKKyAtRGVuYWJsZS12YWxhPSQodm9wdF9p ZiBnaXIgeWVzIG5vKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ25vbWUtZG9jLXV0aWxzIGludGx0b29s IGl0c3Rvb2wgcGtnLWNvbmZpZwotICQodm9wdF9pZiB2YWxhIHZhbGEpIGdzdHJlYW1lcjEgZ3N0 LXBsdWdpbnMtYmFzZTEgZ3N0LXBsdWdpbnMtZ29vZDEKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIGdz dHJlYW1lcjEgZ3N0LXBsdWdpbnMtYmFzZTEgZ3N0LXBsdWdpbnMtZ29vZDEKICBnbGliLWRldmVs IgogIyBYWFggbWlzc2luZyBsaXJjIHBsdWdpbi4KIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdzdDMt ZGV2ZWwgY2x1dHRlci1ndGstZGV2ZWwgZGJ1cy1nbGliLWRldmVsCkBAIC0yMSwxNiArMjEsMTgg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkxHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvQXBwcy9WaWRlb3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT02YmY4OWFiMDk2ZGZjNTY0ZjI2MDk3NmU0ODQxNjVmMDliZDg4NjQzNGQxODQ0MTBk MmY5NDRiZmJhNjExYTA5CitjaGVja3N1bT1hODI5ZjJiNWFhMDQzNWFhNDMxODE2MTUzMTkzZDU1 NDdmYWRlOWViOGQ0ODlmNTZiZTIyYWZiZTY1MWM0MzJmCiAKICMgWFhYIHh1bHJ1bm5lciBwbHVn aW4uCiAjIFhYWCByZWVuYWJsZSBweXRob24gcGx1Z2luIGlmIHB5bGludCBwa2cgZXhpc3RzLgog I3B5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL3RvdGVtL3BsdWdpbnMiCiAKLWRpc2FibGVfcGFyYWxs ZWxfYnVpbGQ9eWVzCitkb19jaGVjaygpIHsKKwk6Cit9CiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2 YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9Imdp ciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBsaWJ0b3RlbV9wYWNrYWdlKCkgewog CXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCgpGcm9tIGE3YThjMGRmOTk2NjZmMGY5 YmY0ZTdiYzNiYTJmZjQ0NzJlN2I5NDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjkvMTAyXSBnbm9tZS1zY3JlZW5zYXZl cjogYnVtcCArIGZpeCBidWlsZAoKLS0tCiBzcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNo ZXMvYnVpbGQucGF0Y2ggfCAxMiArKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2 ZXIvdGVtcGxhdGUgICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21l LXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNjcmVl bnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjZkY2RiZTdkZDdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1z Y3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBzcmMv Z3MtbWFuYWdlci5jCisrKysgc3JjL2dzLW1hbmFnZXIuYworQEAgLTgyMCw4ICs4MjAsNyBAQCBh cHBseV9iYWNrZ3JvdW5kX3RvX3dpbmRvdyAoR1NNYW5hZ2VyICptYW5hZ2VyLAorICAgICAgICAg c3VyZmFjZSA9IGdub21lX2JnX2NyZWF0ZV9zdXJmYWNlIChtYW5hZ2VyLT5wcml2LT5iZywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RrX3dpbmRvdywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UpOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQpOworICAgICAgICAgZ3Nfd2luZG93 X3NldF9iYWNrZ3JvdW5kX3N1cmZhY2UgKHdpbmRvdywgc3VyZmFjZSk7CisgICAgICAgICBjYWly b19zdXJmYWNlX2Rlc3Ryb3kgKHN1cmZhY2UpOworIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25v bWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBs YXRlCmluZGV4IDM2M2ZjZjEyZTEwLi5jM2E3MGNmZWY3YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9n bm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVy L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2Ny ZWVuc2F2ZXInCiBwa2duYW1lPWdub21lLXNjcmVlbnNhdmVyCiB2ZXJzaW9uPTMuNi4xCi1yZXZp c2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVf YXJncz0iLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgogaG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIGF1dG9tYWtlIGludGx0b29sIGdsaWItZGV2ZWwiCgpGcm9tIDQzNDc3YTgz OWE5ZDZmYzk4ZjM5ZGY0ZDIyN2VhNjg0Y2Y2MTY5ZjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzAvMTAyXSBnbm9tZS1j bG9ja3M6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlCmluZGV4IDNlMDQ5YjQyZmIxLi43MmY3MWY5MjY4YyAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS1jbG9ja3MvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLWNsb2NrcycKIHBrZ25hbWU9Z25vbWUtY2xvY2tzCi12ZXJzaW9uPTMuMzYuMAor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5 bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29sIGds aWItZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHZhbGEtZGV2ZWwgZ25vbWUt ZGVza3RvcC1kZXZlbAotIGxpYmd3ZWF0aGVyLWRldmVsIGxpYmhhbmR5LWRldmVsIGxpYm5vdGlm eS1kZXZlbCBnc291bmQtZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZlbCBsaWJoYW5keTEtZGV2ZWwg bGlibm90aWZ5LWRldmVsIGdzb3VuZC1kZXZlbAogIGdlb2NvZGUtZ2xpYi1kZXZlbCBkZXNrdG9w LWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lCiAgZ2VvY2x1ZTItZGV2ZWwiCiBkZXBlbmRz PSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIgpAQCAtMTUsNCArMTUsNCBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Fw cHMvQ2xvY2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9u JS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGM5NzhiMGM3Zjdi OWRhZWJkMjcyZDAxNzVmOGE1NDQxNWUyMDc4ZjEzNGY0OGFkZDVjZjI0MzYyZWVmNDljNgorY2hl Y2tzdW09ZDk1NmNiMDUwZjFjYTQ2YjQ0MzUxOWU0ZjU5YWIyMDQyOTBkNjI3MGRlYzkxYzc0YjUz ODk1YWVjYzc5NDQzOAoKRnJvbSA2ODIxNmUwYjc3N2NiMmJmMGM0ZjZjYjcwZGQxMmQ2N2Q0NmJh MDA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDcxLzEwMl0gZXBpcGhhbnk6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3Jj cGtncy9lcGlwaGFueS90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lcGlwaGFu eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUKaW5kZXggNWQ2YWM2YTYzN2Qu LmYyM2IyM2M2ZmJlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUKQEAgLTEsMTkgKzEsMTkgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2VwaXBoYW55JwogcGtnbmFtZT1lcGlwaGFueQotdmVyc2lvbj0zLjM2LjIKK3Zl cnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxl PW1lc29uCiBjb25maWd1cmVfYXJncz0iLURkaXN0cmlidXRvcl9uYW1lPVZvaWRMaW51eCAtRHVu aXRfdGVzdHM9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBp dHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYXZh aGktZ2xpYi1saWJzLWRldmVsIGdjci1kZXZlbAotIGdub21lLWRlc2t0b3AtZGV2ZWwganNvbi1n bGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keS1kZXZlbAorIGdub21lLWRlc2t0b3At ZGV2ZWwganNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwKICBs aWJub3RpZnktZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZ25vbWUtZGV2ZWwgbGlid25j ay1kZXZlbCBsaWJ4c2x0LWRldmVsCi0gbmV0dGxlLWRldmVsIG5zcy1kZXZlbCB3ZWJraXQyZ3Rr LWRldmVsIgorIG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJwb3J0 YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1l IGlzby1jb2RlcyB3ZWJraXQyZ3RrIgogc2hvcnRfZGVzYz0iSW50dWl0aXZlIEdOT01FIHdlYiBi cm93c2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9BcHBzL1dlYiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMyZTY3NmFh MGZlMjExODA5YTVlN2U4YTdlNDYxZDE4Mjg5MGYyNTNjNTNmNDYxMGYyNjEwMDk0YjZmYmZiNWUK K2NoZWNrc3VtPTIyOGU4MjBkN2M3Zjg1NDFlNGRiNWVjYzZjODFiNWE4OGJkZTliMWVhMTdjYWU0 YTVmMzg0NDZmNzk4OWM1NTIKCkZyb20gMDRmZDQ5MGVkNDk5MDU5ZjEwODc2MDZmZWRiZGJiNDJh MWQzYjA4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAK U3ViamVjdDogW1BBVENIIDA3Mi8xMDJdIGdub21lLWNvbnRhY3RzOiB1cGRhdGUgdG8gMy4zNy4y CgotLS0KIHNyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgfCAxMyArKysrKystLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNv bnRhY3RzL3RlbXBsYXRlCmluZGV4IDJhODIxM2E3MjQwLi5hYTRlZjk0MDEzNiAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNv bnRhY3RzL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn bm9tZS1jb250YWN0cycKIHBrZ25hbWU9Z25vbWUtY29udGFjdHMKLXZlcnNpb249My4zNC4wCi1y ZXZpc2lvbj0yCi13cmtzcmM9Imdub21lLWNvbnRhY3RzLSR7dmVyc2lvbiUuKn0iCit2ZXJzaW9u PTMuMzcuMgorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0i ZG9jYm9vay14c2wgZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB2YWxhIgor aG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBmb2xrcy1kZXZlbCBnZXR0ZXh0IGdsaWItZGV2 ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCiBtYWtlZGVwZW5kcz0iY2hlZXNlLWRldmVsIGZv bGtzLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCi0gbGliY2hh bXBsYWluLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB2YWxhLWRldmVsIGxpYmhhbmR5LWRldmVsIgor IGxpYmNoYW1wbGFpbi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgdmFsYS1kZXZlbCBsaWJoYW5keTEt ZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJHTk9NRSBj b250YWN0cyBtYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9BcHBzL0NvbnRhY3RzIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbiUuKn0udGFyLnh6Igot Y2hlY2tzdW09OTk2MDJlYzhkNjYwYzFmM2M5MmNhZTYzNTZmNjRmNzJmYjZkYjU4ZTU1YmNlMjdh NTk5MzMwYmY3YjYyMmYxMgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09MWQzNDY5 ZDVlOTBmMjNkMTI5ZDEyNzZiMmY5Yjg4NTQ1OWYzZDdiNDMwNTRjZDA5NzU5Yjg1YWM3NmM5MThi NAoKRnJvbSBkNGIwYmU2ZDIxNGYyNzcwYWM2YTNkNDEyOGY1MjNlOGJiOWI0MDgxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDczLzEwMl0gZ25vbWUtcGhvdG9zOiB1cGRhdGUgdG8gMy4zNy45MS4xCgotLS0KIHNyY3BrZ3Mv Z25vbWUtcGhvdG9zL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1waG90 b3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQppbmRleCAxZWQ4Yjk4 NjFlYy4uM2E3MmQ5YTUzYmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtcGhvdG9zJwogcGtnbmFtZT1nbm9tZS1waG90b3MK LXZlcnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcuOTEuMQogcmV2aXNpb249MQogYnVpbGRfaGVs cGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTUsOCArMTUsOCBAQCBzaG9ydF9kZXNj PSJBY2Nlc3MsIG9yZ2FuaXplLCBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvUGhv dG9zIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dub21lLXBob3Rvcy8ke3ZlcnNpb24lLip9 L2dub21lLXBob3Rvcy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNjNTljNzZlZjI4NjE4 ZWMwNTVhMTc5OWQxMDQwMjg3YjkwYTBiMDIxZmViMGEwMmIxZWFjMjhlOWMyZWI0MWEKK2Rpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS9nbm9tZS1waG90b3MvJHt2ZXJzaW9uJS4qLip9L2dub21lLXBo b3Rvcy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTI3OGRhMjMyMzRlMjdjNTQzMDIwZGFl OTQzYWQ1MjA4NmI5ZWNhYTVlZTNhYWQwYjAzMWI4NmVlMDRkMzk0YWEKIAogYnVpbGRfb3B0aW9u cz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDg1OWQ1NWMyYjExZWIw Y2NiMGFjMzYwMjIyMGMwYTEyMjRmYWUxZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzQvMTAyXSBlb2c6IHVwZGF0ZSB0 byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZW9nL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lb2cvdGVtcGxhdGUgYi9zcmNwa2dzL2VvZy90ZW1wbGF0ZQppbmRleCBlNGNhY2I3MDc5 ZS4uOTFlZTU0ZWRjNDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZW9nL3RlbXBsYXRlCkBAIC0xLDIwICsxLDIwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdlb2cnCiBwa2duYW1lPWVvZwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJl X2FyZ3M9Ii1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgogaG9zdG1h a2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgogbWFrZWRl cGVuZHM9ImV4ZW1waS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmV4aWYtZGV2ZWwgbGli cGVhcy1kZXZlbAotIGxpYnJzdmctZGV2ZWwgbGNtczItZGV2ZWwiCisgbGlicnN2Zy1kZXZlbCBs Y21zMi1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMg aGljb2xvci1pY29uLXRoZW1lIHNoYXJlZC1taW1lLWluZm8iCiBzaG9ydF9kZXNjPSJFeWUgb2Yg R05PTUUgZ3JhcGhpY3Mgdmlld2VyIHByb2dyYW0iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXllT2ZHbm9tZSIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS9lb2cvJHt2ZXJzaW9uJS4qfS9lb2ctJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT1lNDU0YTFhN2FhNWUzYTMzMjFlYWIwMTE2Nzc4MTEwZTVhN2E3YjYzYmNmMjE2NzZl ZGExYTdiZTE4N2M5Yzk1CitjaGVja3N1bT00YThhNjc2MzM4MDUyOTJhZDFhZjU0OWUzMTlhYTNm N2I2ZDc3NmYzM2RhYzIwZmQxOTVjZTQ2YmJkZDAyNjZhCiBzaGxpYl9wcm92aWRlcz0ibGliZW9n LnNvIgogbGliMzJkaXNhYmxlZD15ZXMKIAoKRnJvbSAyOWZkNzFjNzViNWNkMGVmNWI1MGM2MmJh ZjJmMjM1YjIxMzQ1YWRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc1LzEwMl0gZXZpbmNlOiB1cGRhdGUgdG8gMy4zNy45 MAoKLS0tCiBzcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSB8IDE0ICsrKysrKystLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZXZpbmNlL3RlbXBsYXRlIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKaW5kZXgg NDAzNWYxNWM2OTAuLmUxN2YyZDg5MGY2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2aW5jZS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZXZpbmNlJwogcGtnbmFtZT1ldmluY2UKLXZlcnNpb249My4zNi43 Cit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGlu dHJvc3BlY3Rpb24pIC0tZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUKLSAtLWVuYWJsZS1jb21pY3Mg LS1kaXNhYmxlLXN0YXRpYyAtLWVuYWJsZS14cHMgLS1kaXNhYmxlLXQxbGliCi0gLS1kaXNhYmxl LWJyb3dzZXItcGx1Z2luIC0tZW5hYmxlLXBzIgotaG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWlj b24tdGhlbWUgZ2V0dGV4dCBnbGliLWRldmVsIGdub21lLWRvYy11dGlscworYnVpbGRfc3R5bGU9 bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIgaW50cm9zcGVjdGlvbikKKyAt RGNvbWljcz1lbmFibGVkIC1EcHM9ZW5hYmxlZCAtRHhwcz1lbmFibGVkIC1EZHZpPWRpc2FibGVk CisgLUR0MWxpYj1kaXNhYmxlZCAtRGJyb3dzZXJfcGx1Z2luPWZhbHNlIgoraG9zdG1ha2VkZXBl bmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4dCBndGstZG9jIGdsaWItZGV2ZWwgZ25vbWUt ZG9jLXV0aWxzCiAgaXRzdG9vbCBwa2ctY29uZmlnIHBlcmwtWE1MLVBhcnNlciBhcHBzdHJlYW0t Z2xpYiIKICMgWFhYIG1pc3NpbmcgcGFja2FnZXMgZm9yIERWSSBiYWNrZW5kLgogbWFrZWRlcGVu ZHM9ImFkd2FpdGEtaWNvbi10aGVtZSBkanZ1bGlicmUtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZl bCBsaWJTTS1kZXZlbApAQCAtMTksNyArMTksNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZpbmNlIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09NjVkNjFhNDIzZTNmYmJlMDcwMDFmNjVlODc0MjJkZmI3ZDJlNDJi OWVkZjBjYTZhMWQ0MjdhZjlhMDRiOGYzMgorY2hlY2tzdW09MmE4NzgwNDNiOTIxMGFkN2FiNzA4 MDVmODNlNDAwNjU0ZTIxNGUxZjVlZjk2MDEwMGFkZjkzODgzMmQwMmVhZgogCiBidWlsZF9vcHRp b25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gOWQ2YjlmNjAxNTRi ZDcxMGM0ZWJhNjMzOTRkN2YwYTQ1Njc0NzAyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3Ni8xMDJdIGZpbGUtcm9sbGVy OiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2ZpbGUt cm9sbGVyL3RlbXBsYXRlCmluZGV4IDAzNjIyYTIyMzEzLi4xNmVlNWVhZGUxZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZpbGUtcm9sbGVy L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZmlsZS1yb2xs ZXInCiBwa2duYW1lPWZpbGUtcm9sbGVyCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM3Ljkw CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0 IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgpAQCAtMTIsNiArMTIsNiBAQCBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRmlsZVJv bGxlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI5MTQ0ZGU4ZjUzNmY1ODNl YzI5ZDcwM2MyYzE3MGJmMmQwMGM2YzE2NmNkNWUzZjdlZmFiZGE1NTFmMTA0NzgKK2NoZWNrc3Vt PWQ3ODRiOWIzMTViYTkzODYyMzVlNmRlNmUyNjJhZWQxNGFjODliYzBlNmVmM2E4NDhkZDNiMGYy OTM3M2MzYTEKIAogQ0ZMQUdTPSItZmNvbW1vbiIKCkZyb20gYWM2NzZlYjQyMGI4NDcyYWMwYzJh M2NhMjE0NDYzNmIyYzI3ZDllYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3Ny8xMDJdIGdub21lLWNhbGVuZGFyOiBidW1w CgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2FsZW5k YXIvdGVtcGxhdGUKaW5kZXggOWM5MWM4YjVmNGQuLjM3NGY0NTU2ZmY4IDEwMDY0NAotLS0gYS9z cmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2FsZW5k YXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1j YWxlbmRhcicKIHBrZ25hbWU9Z25vbWUtY2FsZW5kYXIKIHZlcnNpb249My4zNi4yCi1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0 ZXh0IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyICdnb2JqZWN0LWludHJvc3Bl Y3Rpb24nKSIKIG1ha2VkZXBlbmRzPSJldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgZ2VvY2x1 ZTItZGV2ZWwgZ2VvY29kZS1nbGliLWRldmVsCgpGcm9tIDk0MTM0YWQ2NGVlYjBjZDlmMThiMGVk MDMwODM4MTM4MGQ0NTQ2YTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE2OjUx OjU1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzgvMTAyXSBnbm9tZS1tdXNpYzogdXBkYXRlIHRv IDMuMzcuMwoKW2NpIHNraXBdCi0tLQogc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVzL3Bhbmdv MTQyLnBhdGNoIHwgMjggKysrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1tdXNp Yy90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwgIDcgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMy IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1tdXNp Yy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5hYTk4Y2Q5MGIyYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtbXVz aWMvcGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaApAQCAtMCwwICsxLDI4IEBACitGcm9tIGRjMGY1MWI2 M2U0YTdiMDhlMTFlOGVkMDE2NDg0ZWE2ZjViMjA1NzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IEZyaSwg MTQgQXVnIDIwMjAgMTY6NTA6MjggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gbWVzb246IHJlbW92 ZSBwYW5nbyBkZXBlbmRlbmN5CisKK1RoaXMgd2FzIGFkZGVkIGJlY2F1c2Ugb2YgYSBmZWF0dXJl IG1pc3NpbmcgaW4gcGFuZ28gb2xkZXIgdGhhbgorMS40NCwgYnV0IHdlIGhhdmUgdGhpcyBiYWNr cG9ydGVkLCBzbyB3ZSdyZSBva2F5LgorCitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv cHlnb2JqZWN0Ly0vaXNzdWVzLzMxMgorLS0tCisgbWVzb24uYnVpbGQgfCAxIC0KKyAxIGZpbGUg Y2hhbmdlZCwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IG1lc29uLmJ1aWxkIG1lc29uLmJ1 aWxkCitpbmRleCAwZWY1YjliLi41MmI4N2E2IDEwMDY0NAorLS0tIG1lc29uLmJ1aWxkCisrKysg bWVzb24uYnVpbGQKK0BAIC00Myw3ICs0Myw2IEBAIGRlcGVuZGVuY3koJ2xpYmRhenpsZS0xLjAn LCB2ZXJzaW9uOiAnPj0gMy4yOC4wJykKKyBkZXBlbmRlbmN5KCdsaWJtZWRpYWFydC0yLjAnLCB2 ZXJzaW9uOiAnPj0gMS45LjEnKQorIGRlcGVuZGVuY3koJ2xpYnNvdXAtMi40JykKKyBkZXBlbmRl bmN5KCd0cmFja2VyLXNwYXJxbC0yLjAnLCB2ZXJzaW9uOiAnPj0gMi4zLjAnKQorLWRlcGVuZGVu Y3koJ3BhbmdvJywgdmVyc2lvbjogJz49IDEuNDQuMCcpCisgZGVwZW5kZW5jeSgncHlnb2JqZWN0 LTMuMCcsIHZlcnNpb246ICc+PSAzLjM2LjEnKQorIGRlcGVuZGVuY3koJ3B5M2NhaXJvJywgdmVy c2lvbjogJz49IDEuMTQuMCcpCisgZGVwZW5kZW5jeSgnZ3JpbG8tMC4zJywgdmVyc2lvbjogJz49 IDAuMy4xMicsIGZhbGxiYWNrOiBbJ2dyaWxvJywgJ2xpYmdybF9kZXAnXSkKKy0tIAorMi4yOC4w CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLW11c2ljL3RlbXBsYXRlCmluZGV4IDEyNTExNzM2NDA3Li41YjcyMzkyNzM4MSAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW11 c2ljL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt bXVzaWMnCiBwa2duYW1lPWdub21lLW11c2ljCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3 LjMKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAg LTksMTEgKzksMTIgQEAgbWFrZWRlcGVuZHM9Imdub21lLWRlc2t0b3AtZGV2ZWwgZ3JpbG8tZGV2 ZWwgbGlibWVkaWFhcnQtZGV2ZWwKICBweXRob24zLWdvYmplY3QtZGV2ZWwgcHl0aG9uMy1kYnVz IHRyYWNrZXItZGV2ZWwgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsCiAgbGliZGF6emxlLWRl dmVsIGdyaWxvLXBsdWdpbnMgcHl0aG9uMy1jYWlyby1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3At ZmlsZS11dGlscyBweXRob24zLWRidXMgcHl0aG9uMy1nb2JqZWN0IHB5dGhvbjMtcmVxdWVzdHMK LSB0cmFja2VyIHRyYWNrZXItbWluZXJzIGdzdC1wbHVnaW5zLWdvb2QxIGdyaWxvLXBsdWdpbnMg bGliZGF6emxlIgorIHRyYWNrZXIgdHJhY2tlci1taW5lcnMgZ3N0LXBsdWdpbnMtZ29vZDEgZ3Jp bG8tcGx1Z2lucyBsaWJkYXp6bGUKKyBsaWJtZWRpYWFydCIKIHNob3J0X2Rlc2M9IkdOT01FIG11 c2ljIHBsYXlpbmcgYXBwbGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvTXVzaWMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT03YjgwZjYzMGQxNTgzMzQ5MzVhODc2MDI5NjU1MGNjOTFiNTBkNjA0ZmE2OGI0 MDJmZTUxNjViMTUzMWVjMzMyCitjaGVja3N1bT0yNDhiYzg1ODU5NjMyNzFhNGQyZmY3ZjI0OWM5 Zjc5MmFhZjBiNGRmZGUxZTk0YWJiNjhjOTE1MDEwMTVjZWJlCiBsaWIzMmRpc2FibGVkPXllcwoK RnJvbSA0OTY1MDUzOWIyODE2ODJiY2VkNWFiMWY4MTNhOTgwYzkwMDE4OTE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyMjozNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc5 LzEwMl0gZ25vbWUtcGFuZWw6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogY29tbW9uL3NobGlicyAg ICAgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUgfCA2ICsr Ky0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMzNkMmEzNWZh MDQuLmFjYWJmMmQ5M2U5IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9z aGxpYnMKQEAgLTU2NCw3ICs1NjQsNyBAQCBsaWJwYWNrYWdla2l0LWdsaWIyLnNvLjE4IFBhY2th Z2VLaXQtMS4xLjEyXzEKIGxpYnBzbC5zby41IGxpYnBzbC0wLjIwLjJfMQogbGlic291cC0yLjQu c28uMSBsaWJzb3VwLTIuMzQuMF8xCiBsaWJzb3VwLWdub21lLTIuNC5zby4xIGxpYnNvdXAtZ25v bWUtMi4zNC4wXzEKLWxpYnBhbmVsLWFwcGxldC5zby4zIGdub21lLXBhbmVsLTMuMzAuMF8xCits aWJnbm9tZS1wYW5lbC5zby4wIGdub21lLXBhbmVsLTMuMzcuMV8xCiBsaWJ1bmludW0uc28uNSBs aWJ1bmludW0tMi43XzEKIGxpYnVuaXF1ZS0zLjAuc28uMCBsaWJ1bmlxdWUtMi45MS40XzEKIGxp YndlYmtpdDJndGstNC4wLnNvLjM3IHdlYmtpdDJndGstMi42LjJfMQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUK aW5kZXggNzBmMjNiOGI1NTEuLjI0ZDlkMmI5ZWI1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LXBhbmVsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1wYW5lbCcKIHBrZ25hbWU9Z25v bWUtcGFuZWwKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzcuMQorcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9ImF4X2N2 X3pvbmVpbmZvX3R6ZGlyPS91c3Ivc2hhcmUvem9uZWluZm8iCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdHpkYXRhIGdldHRleHQi CkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRMLTEuMS1vci1sYXRlciwg TEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9q ZWN0cy9Hbm9tZVBhbmVsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YTZiYzAy NTUyNTJlZWI0Yjk2NGJjYmU1NWZkNzkwOGI2OWY5MTRjMDYyYzVlYzhkZmY1YWMwMjYyZDI5Yjkw ZAorY2hlY2tzdW09MWQ1OThmZDY4OTMzZTc2MDE4ZjJmYjExNmE3ODcxY2JjMDAzM2MxZjEwOWJm YmZlMDhhMWVjYjU2MDY3ZDE1MgogcGF0Y2hfYXJncz0iLU5wMSIKIAogZ25vbWUtcGFuZWwtZGV2 ZWxfcGFja2FnZSgpIHsKCkZyb20gNjZjZWU4ZDEzY2Q0MDk3ZmEyYWIyYjNlODM2NDY3Mjk0NGZj YzM0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMjM6MjQ6NTEgKzAyMDAKU3Vi amVjdDogW1BBVENIIDA4MC8xMDJdIG1ldGFjaXR5OiB1cGRhdGUgdG8gMy4zNy4xCgotLS0KIHNy Y3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgfCA5ICsrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21ldGFj aXR5L3RlbXBsYXRlIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQppbmRleCA1YWEyMzE0OTJl Ny4uNDMwOTc3NmJkNTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQpAQCAtMSwxOCArMSwxNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbWV0YWNpdHknCiBwa2duYW1lPW1ldGFjaXR5Ci1yZXZlcnRzPSIzLjM3LjFf MSIKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuMQogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdldHRleHQtZGV2ZWwg Z2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgeWVscC10b29scyB6ZW5pdHkiCiBtYWtlZGVw ZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBndGsrMy1kZXZlbCBsaWJjYW5i ZXJyYS1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJY Y29tcG9zaXRlLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKLSBsaWJYZml4ZXMtZGV2ZWwgbGliWGlu ZXJhbWEtZGV2ZWwgbGliWHJlbmRlci1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28tZGV2ZWwKLSBz dGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4tbG9hZGVyIgor IGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRldmVsIGxpYlgx MS1kZXZlbCBsaWJYcmVzLWRldmVsCisgcGFuZ28tZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24t ZGV2ZWwgVnVsa2FuLUhlYWRlcnMgdnVsa2FuLWxvYWRlciIKIGRlcGVuZHM9Inplbml0eSIKIHNo b3J0X2Rlc2M9IldpbmRvdyBNYW5hZ2VyIGZvciB0aGUgR05PTUUgZW52aXJvbm1lbnQiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv bWV0YWNpdHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMWM3ZDEwNDVjMzkw YWZiM2JmNDA1NzM1YjBiMjZjNDU5MTk3Y2JmNDNhZjM3YzQ2OWViODkxOGNlM2E0NTNkCitjaGVj a3N1bT04MGQ2ZjNkOTVhNDMyOGZiMjZkMGE2NDcxZjU3NWI3NDJiMzZiOGYyNzIxZjhmM2MxODA3 MTk3ZmE5MDBhMTI2CgpGcm9tIDBlNGVlMDI0ZTFiMzM0ZWJlMDNmOTNjNDc2YzNkZDAyODdmOTBi NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjQwOjM0ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwODEvMTAyXSBnbm9tZS1mbGFzaGJhY2s6IHVwZGF0ZSB0byAzLjM3LjIKCkFk ZGVkIFBBTSBjb25maWcgYXMgc3VnZ2VzdGVkIGJ5IG1uYWJpZC4KLS0tCiAuLi4vZ25vbWUtZmxh c2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0gfCAgNiArKysrCiBzcmNwa2dzL2dub21l LWZsYXNoYmFjay90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysrKy0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hi YWNrLnBhbQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21l LWZsYXNoYmFjay5wYW0gYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFz aGJhY2sucGFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNzc2ZjBi MzYzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2du b21lLWZsYXNoYmFjay5wYW0KQEAgLTAsMCArMSw2IEBACisjJVBBTS0xLjAKK2F1dGggICAgIGlu Y2x1ZGUgIHN5c3RlbS1hdXRoCithdXRoICAgICBvcHRpb25hbCBwYW1fZ25vbWVfa2V5cmluZy5z bworYWNjb3VudCAgaW5jbHVkZSAgc3lzdGVtLWF1dGgKK3Bhc3N3b3JkIGluY2x1ZGUgIHN5c3Rl bS1hdXRoCitzZXNzaW9uICBpbmNsdWRlICBzeXN0ZW0tYXV0aApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1w bGF0ZQppbmRleCBkMzIxMjBjYWI2Zi4uNjhhMWE2NzRhY2YgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3Rl bXBsYXRlCkBAIC0xLDIwICsxLDM2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mbGFz aGJhY2snCiBwa2duYW1lPWdub21lLWZsYXNoYmFjawotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249 My4zNy4yCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9Z2lyCiBidWlsZF9zdHlsZT1nbnUtY29u ZmlndXJlCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVt IgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGdsaWItZGV2ZWwgZ2V0dGV4 dCIKLW1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRl dmVsCi0gbGliZ2xpYi1kZXZlbCBnZGstcGl4YnVmLWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRl dmVsIHBvbGtpdC1kZXZlbAotIHB1bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGli eGNiLWRldmVsIGxpYlgxMS1kZXZlbCBwYW5nby1kZXZlbAotIGxpYnhrYmZpbGUtZGV2ZWwgZ25v bWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwiCitjb25maWd1cmVfYXJncz0i LS13aXRoLWNvbXBpei1zZXNzaW9uIC0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIK K2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnZXR0ZXh0IGdldHRleHQtZGV2ZWwgYXV0b21h a2UgbGlidG9vbCBnbGliLWRldmVsIgorbWFrZWRlcGVuZHM9InBhbS1kZXZlbCBlbG9naW5kLWRl dmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVsIHBvbGtpdC1kZXZlbAorIHB1bHNlYXVkaW8tZGV2 ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgxMS1kZXZlbCBsaWJ4a2JmaWxl LWRldmVsCisgbGliY29tcGl6Y29uZmlnLWRldmVsIGxpYmdsaWItZGV2ZWwgcGFuZ28tZGV2ZWwg Z3RrKzMtZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbAorIGdkbS1kZXZlbCBnbm9tZS1ibHVldG9vdGgt ZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBnbm9tZS1wYW5lbC1kZXZlbAorIGdzZXR0aW5ncy1k ZXNrdG9wLXNjaGVtYXMtZGV2ZWwiCiBkZXBlbmRzPSJnbm9tZS1ibHVldG9vdGggZ25vbWUtc2Vz c2lvbiBnbm9tZS1zZXR0aW5ncy1kYWVtb24KLSBnbm9tZS1wYW5lbCBnbm9tZS10aGVtZXMtc3Rh bmRhcmQgbWV0YWNpdHkiCisgZ25vbWUtcGFuZWwgZ25vbWUtdGhlbWVzLWV4dHJhIG1ldGFjaXR5 Igogc2hvcnRfZGVzYz0iR05PTUUgMyBzZXNzaW9uIHdpdGggc2ltaWxhciB1c2VyIGV4cGVyaWVu Y2UgdG8gdGhlIEdOT01FIDIueCBzZXJpZXMiCiBtYWludGFpbmVyPSJzaGl6b25pYyA8cmVhbHRp YXpAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZUZsYXNoYmFjayIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTNiZTY1Mzg4Y2QyYzhmMzk3NDFiY2MwNWRhODdlZjQwMDM1 MTgzYTlhMzk1MDJkNjc2OTYyNDJjMmFlYjQ2OWMKK2NoZWNrc3VtPWFiMGRlMDBiMGY2YzliZjMw YzE5NjUxNTY0YmQ5YTc0YmJkZmI3ZDc2ZGQyMTE5YjI2MzFhMzY3MWY4YmU2NTMKKworcG9zdF9l eHRyYWN0KCkgeworCXZzZWQgLWkgJ3MvbGliY29tcGl6Y29uZmlnID49IDBcLjlcLjE0XC4wL2xp YmNvbXBpemNvbmZpZyA+PSAwLjguMTYuMC8nIFwKKwkJY29uZmlndXJlLmFjCit9CisKK3ByZV9j b25maWd1cmUoKSB7CisJYXV0b3JlY29uZiAtaWYKK30KKworcG9zdF9pbnN0YWxsKCkgeworCXZp bnN0YWxsICR7RklMRVNESVJ9L2dub21lLWZsYXNoYmFjay5wYW0gNjQ0IC9ldGMvcGFtLmQgZ25v bWUtZmxhc2hiYWNrCisJdnNlZCAtaSAtZSAicy8gLS1zeXN0ZW1kLy9nIiBcCisJCSR7REVTVERJ Un0vdXNyL2xpYmV4ZWMvZ25vbWUtZmxhc2hiYWNrLXtjb21waXosbWV0YWNpdHl9Cit9CgpGcm9t IGI3YzZiYTRlNzQ0OWQ2MjgyNDcyOGExZjM0ZDIzOWFhZjM1NmUwNjkgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjE1OjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODIvMTAy 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 bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gOTM3ZWQ3NTQxOTNlNDExM2FkZTZj MzZhYjJmYzlhNDUyNWNkZDlmYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6 MTg6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4My8xMDJdIGdlZGl0LXBsdWdpbnM6IHJlYnVp bGQgYWdhaW5zdCBnZWRpdC0zLjM3LjMKCi0tLQogc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBs YXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIGIvc3JjcGtncy9n ZWRpdC1wbHVnaW5zL3RlbXBsYXRlCmluZGV4IGYyZjk0ZTYzZjU5Li5mMTZjMzA3ZTA1OSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2Vk aXQtcGx1Z2lucy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dlZGl0LXBsdWdpbnMnCiBwa2duYW1lPWdlZGl0LXBsdWdpbnMKIHZlcnNpb249My4zNi4yCi1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogcHljb21waWxlX2RpcnM9 InVzci9saWIvZ2VkaXQvcGx1Z2lucyIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRl dmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGFwcHN0cmVhbS1nbGliIHB5dGhvbjMtZ29iamVj dAoKRnJvbSA1OWFhNmYxZWIzZDZkZTk3M2I2ZWJhY2ZkOTJiYjI0YzUyYjEwZjczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDozMzo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDg0LzEwMl0gZ25vbWUtbGF0ZXg6IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQogc3JjcGtncy9nbm9t ZS1sYXRleC90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVt cGxhdGUgYi9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlCmluZGV4IDkwZDYwYmU4NjBhLi5l NGUyZjYyNjI5NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtbGF0ZXgnCiBwa2duYW1lPWdub21lLWxhdGV4Ci12ZXJzaW9uPTMu MzIuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM3LjIKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBl cj0iZ2lyIgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlz YWJsZS1hcHBzdHJlYW0tdXRpbCAtLWRpc2FibGUtZGNvbmYtbWlncmF0aW9uCkBAIC0xNSw3ICsx NSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9HTk9NRS1MYVRlWCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTBm MDY5YzdiNGM2NzU0MjU1YTFjN2UzZTNiMDUwOTI1ZDgwNzZmNTU0NTg1MjZhMzBhYjU5ZTBhN2Q1 MmFjYzkKK2NoZWNrc3VtPWEzNTIxZTIxZDRjYzViYzYwZmY2OTRmNTIwOWY0OTljYWE4MGYzOTVj ZTVkNjJjYjYzMmU0MjQzYWQyN2JhZDAKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDliNmY4MjVkZTk3Mzk0Zjc4MDdhN2I4ZWFjYjljMGIy MTJjOGQ4NGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjIzOjMzICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwODUvMTAyXSBiYW9iYWI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0K IHNyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmFvYmFiL3Rl bXBsYXRlIGIvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUKaW5kZXggYTAyOGJlNGNkNWIuLjYwODNh NzhmNTRmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2Jhb2JhYi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Jh b2JhYicKIHBrZ25hbWU9YmFvYmFiCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBr Zy1jb25maWcgaXRzdG9vbCBnbGliLWRldmVsIHZhbGEiCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyLCBHRkRMLTEuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL2FjdGlvbi9zaG93L0FwcHMvRGlza1VzYWdlQW5hbHl6ZXIiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT03Zjk4MWQ0ZjEzNWU0ZjgwZmJhM2Y2NmU4NmIwZWVlZGM5 NGEyNDM0NjQ5MjYyZmYwMWE1ZjBjYjAyN2IyMGM1CitjaGVja3N1bT00MWJlMzhlNDNmYWFmYjM5 Mjc2OWM4NzllMWU3NjJjYTM4ZTJkNzUxYzE3MWJlYTFmOTA0NzI5MGE4ODNmZWZlCgpGcm9tIDQy NGJiYmIyODUwN2U2ODBhZjQxNGQxZTFjNTgyZTRjNTNlNmUxZGQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDA0OjMxOjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODYvMTAyXSBn bm9tZS1ib3hlczogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1ib3hlcy90 ZW1wbGF0ZSB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlIGIv c3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQppbmRleCAwZmEyYWU3NmM3Mi4uZmQ4ZmViY2Jj ZDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLWJveGVzJwogcGtnbmFtZT1nbm9tZS1ib3hlcwotdmVyc2lvbj0zLjM2LjUKK3Zl cnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHls ZT1tZXNvbgpAQCAtOCw3ICs4LDggQEAgaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGl0c3Rvb2wg cGtnLWNvbmZpZyB2YWxhIGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iY2x1dHRlci1ndGstZGV2 ZWwgZnJlZXJkcC1kZXZlbCBndGstdm5jLWRldmVsIGxpYmFyY2hpdmUtZGV2ZWwKICBsaWJnbGli LWRldmVsIGxpYmd1ZGV2LWRldmVsIGxpYm9zaW5mby1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbGli c291cC1kZXZlbAogIGxpYnVzYi1kZXZlbCBsaWJ2aXJ0LWdsaWItZGV2ZWwgbGlieG1sMi1kZXZl bCBzcGljZS1ndGstZGV2ZWwgc3BpY2UtcHJvdG9jb2wKLSB0cmFja2VyLWRldmVsIHZhbGEtZGV2 ZWwgd2Via2l0Mmd0ay1kZXZlbCB2dGUzLWRldmVsIgorIHRyYWNrZXItZGV2ZWwgdmFsYS1kZXZl bCB3ZWJraXQyZ3RrLWRldmVsIHZ0ZTMtZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwKKyBsaWJo YW5keS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhl bWUgbGlib3NpbmZvIGxpYnZpcnQtZ2xpYiBxZW11IHRyYWNrZXIiCiBzaG9ydF9kZXNjPSJHTk9N RSAzIGFwcGxpY2F0aW9uIHRvIGFjY2VzcyByZW1vdGUgb3IgdmlydHVhbCBzeXN0ZW1zIgogbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKQEAgLTE2LDQgKzE3 LDQgQEAgbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtp Lmdub21lLm9yZy9BcHBzL0JveGVzIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2Vy Y29udGVudC5jb20vR05PTUUvZ25vbWUtYm94ZXMvZ25vbWUtMy0zNi9ORVdTIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGM1NGNhYmUzNTVlODc4ZDA0NTc1MTczNDZlNDI0N2E4 NjBiNjg4MzQxM2QzYmY3NzY4MWRjZDExZWY0MWJjZQorY2hlY2tzdW09MTIyZGEzOTEzMWFjYjk3 MWIzZTc2NDAwNmM1YzM2OTg0NDdhNWQ5MjIwYWFiMzM4M2RiNjNjMDkyOWRlOTE1ZAoKRnJvbSAw MmRkN2NlNWYxNDhkZTI3ZjAxNTAyMjFkNDhiNjg3MWQxNWJmNzJiIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog U3VuLCAxNiBBdWcgMjAyMCAwNDozNToyNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDg3LzEwMl0g Z25vbWUtY2FsY3VsYXRvcjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1j YWxjdWxhdG9yL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jYWxjdWxh dG9yL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlCmluZGV4IDA2 MjE0YjA4ZDliLi44MTExMjg0NGE0ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jYWxjdWxh dG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNhbGN1bGF0b3InCiBwa2du YW1lPWdub21lLWNhbGN1bGF0b3IKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9u PTMuMzcuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Imdp ciIKIGhvc3RtYWtlZGVwZW5kcz0iY21ha2UgZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtn LWNvbmZpZyB2YWxhIgpAQCAtMTQsNCArMTQsNCBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9DYWxjdWxhdG9yIgogY2hh bmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtY2Fs Y3VsYXRvci9nbm9tZS0zLTMyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT1hMmU4MzBmOWM5ODU2ZmFkNjVkYWQxZDZjMGFlNmFiYWQwZjBiNDk2Yzk5ODRhYzAwNTMxNWM1 Y2M0MjIwZGIzCitjaGVja3N1bT1iODk1YjVlYzYyYjk0OTU4MTBiMGE2Y2I5MDE1OGU2ZDE2MDcw OTZkMTUwYjRhYzVjZGNmOGFlZmNlZGVkNGMxCgpGcm9tIGYyYzdiMWVjOWRmNmFjMzhjMWM1NTE3 ZGU5YmY3Y2JjNjc5ZjA3NTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjQ0 OjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODgvMTAyXSBnbm9tZS1kaXNrLXV0aWxpdHk6IHVw ZGF0ZSB0byAzLjM3LjIKCi0tLQogc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUg fCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5L3RlbXBsYXRlCmluZGV4IGRjNjdiYmJhNzg1Li4xOTU1 NjExODUwYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kaXNrLXV0aWxpdHknCiBwa2duYW1lPWdub21l LWRpc2stdXRpbGl0eQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy4y CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EbG9naW5k PW5vbmUiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3RrLWRvYyBpbnRsdG9vbCBwa2ct Y29uZmlnIGxpYnhzbHQiCkBAIC0xMyw1ICsxMyw1IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9EaXNrcyIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTc5MWIxOGYyMzFiY2JjNmQ5NDFhZjM4MzdjYTViZTE0ZjIxNTdl NWNlM2QzMmJkYzViOWViODk0N2UxMmI0MTQKK2NoZWNrc3VtPTFjOTk4ZjU1NGRmZWM4YjQyM2M2 ODU4NzIzNTNhNWRiY2Y2NThjOWY3YmE0NzdjYWM3NjhhOTI1NjM2NDMzMDgKIGxpYjMyZGlzYWJs ZWQ9eWVzCgpGcm9tIGZlMGNlMjBhNTFmNzFkZjliMTc0NDI3YmU1ZmZiOTVlMjVmZTc4OTEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjQ5OjI2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwODkvMTAyXSBnbm9tZS1zY3JlZW5zaG90OiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBz cmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90 ZW1wbGF0ZQppbmRleCA5OWNhYjYyZWVlMS4uNTQxMTZhYTgxZWMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNo b3QvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21l LXNjcmVlbnNob3QnCiBwa2duYW1lPWdub21lLXNjcmVlbnNob3QKLXZlcnNpb249My4zNi4wCi1y ZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u CiBob3N0bWFrZWRlcGVuZHM9ImFwcGRhdGEtdG9vbHMgZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rv b2wgcGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJsaWJjYW5iZXJyYS1kZXZlbCIKK21ha2VkZXBl bmRzPSJsaWJjYW5iZXJyYS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9w LWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJTY3JlZW5zaG90IGNhcHR1cmUgdXRpbGl0eSBmb3Ig R05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvZ25vbWUtc2NyZWVuc2hvdCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTMzNDk1ZDg5MjcwNzE3OTI1NGI3NDNmOGY3MGM5YTgyY2RlNWM1ZjJjN2VhM2RiNjM0 YTJiYTdlYTczMzEyNjYKK2NoZWNrc3VtPTdhMzljYzc4NDdhNDgyZmE5YWFkOTg5Y2U2NWRmMGVm NWVlOWVmNzlhY2VkNzVkMTkzMWI3ZTllODZjMTBmMTMKCkZyb20gMWJlZTFlMWYwZTE4NmVkYTBk ODAzMGIwY2ExYzA1OGQ4YjQ0YjdjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAg MDQ6NTE6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5MC8xMDJdIGdub21lLXN5c3RlbS1tb25p dG9yOiB1cGRhdGUgdG8gMy4zNy45MQoKLS0tCiBzcmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9y L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVt cGxhdGUgYi9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlCmluZGV4IGZmMTFi MzU5MGE0Li5jYTAxODdjN2VhYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zeXN0ZW0tbW9u aXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRl CkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc3lzdGVtLW1vbml0 b3InCiBwa2duYW1lPWdub21lLXN5c3RlbS1tb25pdG9yCi12ZXJzaW9uPTMuMzYuMQordmVyc2lv bj0zLjM3LjkxCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9 Ii1Ec3lzdGVtZD1mYWxzZSIKQEAgLTExLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1N5c3RlbU1vbml0b3IiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04NjZiNDdhYjBmNGM3NWIwZWM1N2Q2MzAwMzM3 YTczNzM0NjNhYWFkNWRmOTVlZGRmZTUzNTRjMjJiZTdiY2ExCitjaGVja3N1bT0wZDc5YTE4ZGU1 ZThjZjRiYzQ5NDZjZWQ1ZmY3OGZhNjVmY2MyZTJkZDYzMzgyYjA4ZTMxNGM2Zjk0ZGYxZTk1CgpG cm9tIDNkMTExOWY1MjUzZGUyOGExYzE4NTgwZWVhZDBlZTc5MWM4Y2VkODcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjIzOjM4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTEv MTAyXSBnbm9tZS1idWlsZGVyOiB1cGRhdGUgdG8gMy4zNy45MAoKW2NpIHNraXBdCi0tLQogLi4u L2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoIHwgIDIyIC0tCiBzcmNw a2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaCAgfCAzMzQgLS0tLS0tLS0t LS0tLS0tLS0tCiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAg fCAgMTUgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMzYxIGRlbGV0aW9u cygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xp YmdpdDItMS4wLjAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLWJ1aWxk ZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVp bGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2ggYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIv cGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA3YjliNGEyYmYxYS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3Bh dGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAK LWNvbW1pdCA0NDEzNmEyZTVjNTI2MjNiMGU2MmMzODg0NmY1MTFmMzA3NjE1Y2UyCi1BdXRob3I6 IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFN1biBNYXkgMyAxOTo1MjowOSAy MDIwICswMjAwCi0KLSAgICBmaXggYnVpbGQgd2l0aCBsaWJnaXQyLTEuMC4wCi0KLWRpZmYgLS1n aXQgYS9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMgYi9z cmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMKLWluZGV4IDdm MDEwNDIuLjJjY2M0ZGYgMTAwNjQ0Ci0tLS0gYS9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1n aXQtcmVwb3NpdG9yeS1pbXBsLmMKLSsrKyBiL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdp dC1yZXBvc2l0b3J5LWltcGwuYwotQEAgLTMzLDExICszMyw3IEBACi0gI2luY2x1ZGUgImlwYy1n aXQtdHlwZXMuaCIKLSAjaW5jbHVkZSAiaXBjLWdpdC11dGlsLmgiCi0gCi0tI2lmIExJQkdJVDJf U09WRVJTSU9OID49IDI4Ci0gR19ERUZJTkVfQVVUT19DTEVBTlVQX0NMRUFSX0ZVTkMgKGdpdF9i dWYsIGdpdF9idWZfZGlzcG9zZSkKLS0jZWxzZQotLUdfREVGSU5FX0FVVE9fQ0xFQU5VUF9DTEVB Ul9GVU5DIChnaXRfYnVmLCBnaXRfYnVmX2ZyZWUpCi0tI2VuZGlmCi0gCi0gdHlwZWRlZiBlbnVt Ci0gewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIu cGF0Y2ggYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhjMjhlODJjMWUuLjAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMzM0ICswLDAgQEAKLUZyb20gYzhiODYyYjQ5MWNmYmJiNGY3OWIyNGQ3Y2Q5MGU0 ZmIxZjM3Y2I5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERpZWdvIEVzY2FsYW50 ZSBVcnJlbG8gPGRpZWdvZUBnbm9tZS5vcmc+Ci1EYXRlOiBGcmksIDI1IE9jdCAyMDE5IDA0OjQ5 OjE1IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFdJUDogYnVpbGQ6IEZpeCBsaW5rX3dob2xlIHVz YWdlIGZvciBtZXNvbiAwLjUyLjAKLQotTWVzb24gMC41Mi4wIGNoYW5nZWQgaG93IGxpbmtfd2hv bGUgYmVoYXZlcyBhbmQgaW4gZG9pbmcgc28gYnJva2Ugb3VyCi11c2FnZSBvZiBsaW5rX3dob2xl IGludGVybmFsbHkuCi0KLUEgcXVpY2sgZ2xhbmNlIG92ZXIgbWVzb25idWlsZC9iYWNrZW5kL25p bmphYmFja2VuZC5weSBzZWVtcyB0byBjb25maXJtCi1DaHJpc3RpYW4ncyBzdXNwaWNpb24gdGhh dCBsaW5rX3dpdGggaXMgd2hhdCB3ZSB3YW50IGZvciBpbnRlcm5hbCB1c2UsCi1hbmQgbGlua193 aG9sZSBmb3IgdGhlIGZpbmFsIGJpbmFyeS4KLQotWW91IGNhbiBzZWUgc29tZSBtb3JlIHJlZmVy ZW5jZXMgdG8gdGhpcyBhbmQgc2ltaWxhciBpc3N1ZXMgaW4gdGhlCi1mb2xsb3dpbmcgamhidWls ZCBjb21taXQ6Ci1odHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvamhidWlsZC9jb21taXQv ZGJlNjc5MDQ1ZmY1OTgyNTc3ZjIyZTdhZjhkYzhmZGZiZDFjNjMxMQotCi1GaXhlczogaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxkZXIvaXNzdWVzLzEwNTcKLS0tLQot IHNyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZCAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9j b3JlL21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2RlYnVnZ2VyL21lc29u LmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkICAgICB8ICAy ICstCi0gc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxkICAgIHwgIDIgKy0KLSBzcmMvbGli aWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZ3VpL21lc29u LmJ1aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZCAgICAgICAg IHwgIDIgKy0KLSBzcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZCAgICAgICAgfCAgMiArLQotIHNy Yy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZCAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9wcm9q ZWN0cy9tZXNvbi5idWlsZCAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWls ZCAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZCB8ICAyICst Ci0gc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZCAgIHwgIDIgKy0KLSBzcmMvbGliaWRl L3RoZW1lcy9tZXNvbi5idWlsZCAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvdGhyZWFkaW5nL21l c29uLmJ1aWxkICB8ICAyICstCi0gc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxkICAgICAgIHwg IDIgKy0KLSBzcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9s aWJpZGUvd2Via2l0L21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL21lc29uLmJ1aWxkICAg ICAgICAgICAgICAgICAgIHwgMjYgKysrKysrKysrKysrKysrKysrKysrKysrKy0KLSAyMCBmaWxl cyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvY29kZS9tZXNvbi5i dWlsZAotaW5kZXggZGRhY2RjMTYyLi4xYTRmYzVkMjYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRl L2NvZGUvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotQEAg LTE3NSw3ICsxNzUsNyBAQCBsaWJpZGVfY29kZSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtY29kZS0n ICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9jb2RlX2RlcCA9IGRlY2xhcmVfZGVwZW5k ZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9jb2RlX3ByaXZhdGVfaGVhZGVy cyArIGxpYmlkZV9jb2RlX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2ll czogbGliaWRlX2NvZGVfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9jb2Rl LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2NvZGUsCi0gICBpbmNsdWRlX2RpcmVj dG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3Ny Yy9saWJpZGUvY29yZS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAot aW5kZXggMWZhODJmYWQ5Li5iYjc1Y2JmMjYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2NvcmUv bWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotQEAgLTExNyw3 ICsxMTcsNyBAQCBsaWJpZGVfY29yZSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtY29yZS0nICsgbGli aWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfY29yZV9zb3VyYwotIGxpYmlkZV9jb3JlX2RlcCA9IGRl Y2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9jb3JlX3By aXZhdGVfaGVhZGVycyArIGxpYmlkZV9jb3JlX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAg IGRlcGVuZGVuY2llczogbGliaWRlX2NvcmVfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6 IGxpYmlkZV9jb3JlLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2NvcmUsCi0gICBp bmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlm ZiAtLWdpdCBhL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2Rl YnVnZ2VyL21lc29uLmJ1aWxkCi1pbmRleCBkZmZjYTIwY2EuLmI1ZTcyZDVjMCAxMDA2NDQKLS0t LSBhL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZGVi dWdnZXIvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3IEBAIGxpYmlkZV9kZWJ1Z2dlciA9IHN0 YXRpY19saWJyYXJ5KCdpZGUtZGVidWdnZXItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJp ZGVfZGVidWdnZXJfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291 cmNlczogbGliaWRlX2RlYnVnZ2VyX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9kZWJ1Z2dlcl9n ZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9kZWJ1Z2dl cl9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2RlYnVnZ2VyLAotKyAgICAg ICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2RlYnVnZ2VyLAotICAgaW5jbHVkZV9kaXJlY3Rvcmll czogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGli aWRlL2VkaXRvci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi1p bmRleCAyODM4NDI1YjcuLjgwOGVkNzg0ZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZWRpdG9y L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2VkaXRvci9tZXNvbi5idWlsZAotQEAgLTEw Nyw3ICsxMDcsNyBAQCBsaWJpZGVfZWRpdG9yID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1lZGl0b3It JyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2VkaXRvcgotIAotIGxpYmlkZV9lZGl0b3Jf ZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRl X2VkaXRvcl9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2VkaXRvciwKLSsg ICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9lZGl0b3IsCi0gICBpbmNsdWRlX2RpcmVjdG9y aWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBs aWJpZGVfZWRpdG9yX2dlbmVyYXRlZF9oZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGli aWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQK LWluZGV4IDIyNjM5N2MxNS4uZDQ4NzhhYTExIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9mb3Vu ZHJ5L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLUBA IC0xNzgsNyArMTc4LDcgQEAgbGliaWRlX2ZvdW5kcnkgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWZv dW5kcnktJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSAKLSBsaWJpZGVfZm91bmRyeV9kZXAgPSBk ZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZm91bmRy eV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2ZvdW5kcnksCi0rICAgICAg ICAgICAgbGlua193aXRoOiBsaWJpZGVfZm91bmRyeSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6 IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlk ZV9mb3VuZHJ5X2dlbmVyYXRlZF9oZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRl L2dyZWV0ZXIvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLWlu ZGV4IDM5NjhjYTQxZS4uMTIxZDQ5OGQwIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9ncmVldGVy L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLUBAIC04 Myw3ICs4Myw3IEBAIGxpYmlkZV9ncmVldGVyID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1ncmVldGVy LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX2dyZWV0ZXJfZGVwID0gZGVjbGFyZV9k ZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2dyZWV0ZXJfcHJpdmF0 ZV9oZWFkZXJzICsgbGliaWRlX2dyZWV0ZXJfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAg ZGVwZW5kZW5jaWVzOiBsaWJpZGVfZ3JlZXRlcl9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX2dyZWV0ZXIsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZ3JlZXRl ciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAp Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRl L2d1aS9tZXNvbi5idWlsZAotaW5kZXggOWY0NjlkMmZhLi45NDMxMTI4MmYgMTAwNjQ0Ci0tLS0g YS9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9ndWkvbWVzb24u YnVpbGQKLUBAIC0yMDQsNyArMjA0LDcgQEAgbGliaWRlX2d1aSA9IHN0YXRpY19saWJyYXJ5KCdp ZGUtZ3VpLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9ndWlfc291cmNlcywKLSBsaWJp ZGVfZ3VpX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6 IGxpYmlkZV9ndWlfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2d1aV9nZW5lcmF0ZWRfaGVhZGVy cywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9ndWlfZGVwcywKLS0gICAgICAgICAg IGxpbmtfd2hvbGU6IGxpYmlkZV9ndWksCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVf Z3VpLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlk ZS9pby9tZXNvbi5idWlsZAotaW5kZXggYjViNmY0YzY4Li5mNDhiM2JkOGQgMTAwNjQ0Ci0tLS0g YS9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2lvL21lc29uLmJ1 aWxkCi1AQCAtNjMsNyArNjMsNyBAQCBsaWJpZGVfaW8gPSBzdGF0aWNfbGlicmFyeSgnaWRlLWlv LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9pb19zb3VyY2VzLAotIAotIGxpYmlkZV9p b19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBbIGxp Ymdpb19kZXAsIGxpYmlkZV9jb3JlX2RlcCwgbGliaWRlX3RocmVhZGluZ19kZXAgXSwKLS0gICAg ICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9pbywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxp YmlkZV9pbywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4n KSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQgYi9zcmMv bGliaWRlL2xzcC9tZXNvbi5idWlsZAotaW5kZXggMjNhYmE3NGZhLi5jODE0MGNhMDMgMTAwNjQ0 Ci0tLS0gYS9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9sc3Av bWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3IEBAIGxpYmlkZV9sc3AgPSBzdGF0aWNfbGlicmFy eSgnaWRlLWxzcC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfbHNwX3NvdXJjZXMsCi0g bGliaWRlX2xzcF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3Vy Y2VzOiBsaWJpZGVfbHNwX3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6 IGxpYmlkZV9sc3BfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9sc3AsCi0r ICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfbHNwLAotICAgaW5jbHVkZV9kaXJlY3Rvcmll czogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGli aWRlL3BsdWdpbnMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQK LWluZGV4IGEzM2M1MjhjOS4uZmZmNTk5ZGIzIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9wbHVn aW5zL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLUBA IC01MSw3ICs1MSw3IEBAIGxpYmlkZV9wbHVnaW5zID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1wbHVn aW5zLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3BsdWdpbnNfZGVwID0gZGVjbGFy ZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3BsdWdpbnNfcHJp dmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3BsdWdpbnNfZGVw cywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9wbHVnaW5zLAotKyAgICAgICAgICAg IGxpbmtfd2l0aDogbGliaWRlX3BsdWdpbnMsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNs dWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcHJv amVjdHMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkCi1pbmRl eCA0NjNmZjA2YmMuLjNjYzk3MjVjNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvcHJvamVjdHMv bWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLUBAIC03 OSw3ICs3OSw3IEBAIGxpYmlkZV9wcm9qZWN0cyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtcHJvamVj dHMtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX3ByCi0gbGliaWRlX3Byb2plY3RzX2Rl cCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9w cm9qZWN0c19wcml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVf cHJvamVjdHNfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9wcm9qZWN0cywK LSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9wcm9qZWN0cywKLSAgIGluY2x1ZGVfZGly ZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEv c3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5i dWlsZAotaW5kZXggZTViM2I0M2FiLi5jZjczYWE5MWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRl L3NlYXJjaC9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQK LUBAIC01MSw3ICs1MSw3IEBAIGxpYmlkZV9zZWFyY2ggPSBzdGF0aWNfbGlicmFyeSgnaWRlLXNl YXJjaC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfc2VhcmNoCi0gCi0gbGliaWRlX3Nl YXJjaF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBs aWJpZGVfc2VhcmNoX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfc2VhcmNo LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3NlYXJjaCwKLSAgIGluY2x1ZGVfZGly ZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEv c3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9zb3VyY2V2aWV3 L21lc29uLmJ1aWxkCi1pbmRleCBjNGJhMTJkMWYuLjk5NjQxMjk4YiAxMDA2NDQKLS0tLSBhL3Ny Yy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9zb3VyY2V2 aWV3L21lc29uLmJ1aWxkCi1AQCAtMTU4LDcgKzE1OCw3IEBAIGxpYmlkZV9zb3VyY2V2aWV3ID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1zb3VyY2V2aWV3LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0g bGliaWRlX3NvdXJjZXZpZXdfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAg ICAgc291cmNlczogbGliaWRlX3NvdXJjZXZpZXdfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX3Nv dXJjZXZpZXdfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJp ZGVfc291cmNldmlld19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3NvdXJj ZXZpZXcsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfc291cmNldmlldywKLSAgIGlu Y2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZm IC0tZ2l0IGEvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGVy bWluYWwvbWVzb24uYnVpbGQKLWluZGV4IDFkN2M5ZjcyNy4uNmFmZmNhZTE0IDEwMDY0NAotLS0t IGEvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS90ZXJt aW5hbC9tZXNvbi5idWlsZAotQEAgLTkzLDcgKzkzLDcgQEAgbGliaWRlX3Rlcm1pbmFsID0gc3Rh dGljX2xpYnJhcnkoJ2lkZS10ZXJtaW5hbC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlk ZV90ZXJtaW5hbF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3Vy Y2VzOiBsaWJpZGVfdGVybWluYWxfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5k ZW5jaWVzOiBsaWJpZGVfdGVybWluYWxfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxp YmlkZV90ZXJtaW5hbCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV90ZXJtaW5hbCwK LSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0g Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRl L3RoZW1lcy9tZXNvbi5idWlsZAotaW5kZXggOWQ2YzhlMjQ3Li5kODgzYTRiODYgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS90aGVt ZXMvbWVzb24uYnVpbGQKLUBAIC00Niw3ICs0Niw3IEBAIGxpYmlkZV90aGVtZXMgPSBzdGF0aWNf bGlicmFyeSgnaWRlLXRoZW1lcy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV90aGVt ZXNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGli aWRlX3RoZW1lc19yZXNvdXJjZXNbMV0sCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVf dGhlbWVzX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfdGhlbWVzLAotKyAg ICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3RoZW1lcywKLSAgIGluY2x1ZGVfZGlyZWN0b3Jp ZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xp YmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5i dWlsZAotaW5kZXggZDM4ZGRmYjY0Li5kNjI4YmUyZmYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRl L3RocmVhZGluZy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24u YnVpbGQKLUBAIC02Niw3ICs2Niw3IEBAIGxpYmlkZV90aHJlYWRpbmcgPSBzdGF0aWNfbGlicmFy eSgnaWRlLXRocmVhZGluZy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfCi0gbGliaWRl X3RocmVhZGluZ19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3Vy Y2VzOiBsaWJpZGVfdGhyZWFkaW5nX3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRl bmNpZXM6IGxpYmlkZV90aHJlYWRpbmdfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxp YmlkZV90aHJlYWRpbmcsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdGhyZWFkaW5n LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkK LSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRl L3RyZWUvbWVzb24uYnVpbGQKLWluZGV4IDdiOTkyMjgyOC4uNWE1OTExMDZjIDEwMDY0NAotLS0t IGEvc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3RyZWUvbWVz b24uYnVpbGQKLUBAIC02MSw3ICs2MSw3IEBAIGxpYmlkZV90cmVlID0gc3RhdGljX2xpYnJhcnko J2lkZS10cmVlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV90cmVlX3NvdXJjCi0gbGli aWRlX3RyZWVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNl czogbGliaWRlX3RyZWVfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczog bGliaWRlX3RyZWVfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90cmVlLAot KyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3RyZWUsCi0gICBpbmNsdWRlX2RpcmVjdG9y aWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9s aWJpZGUvdmNzL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLWluZGV4 IDZiMGUxNTdjNC4uYzc2MmFmYjY0IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS92Y3MvbWVzb24u YnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkCi1AQCAtODQsNyArODQsNyBA QCBsaWJpZGVfdmNzID0gc3RhdGljX2xpYnJhcnkoJ2lkZS12Y3MtJyArIGxpYmlkZV9hcGlfdmVy c2lvbiwKLSAKLSBsaWJpZGVfdmNzX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAg ICBkZXBlbmRlbmNpZXM6IGxpYmlkZV92Y3NfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6 IGxpYmlkZV92Y3MsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdmNzLAotICAgaW5j bHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICAgICAgICAgICAg ICAgc291cmNlczogbGliaWRlX3Zjc19nZW5lcmF0ZWRfaGVhZGVycywKLSApCi1kaWZmIC0tZ2l0 IGEvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3dlYmtpdC9tZXNv bi5idWlsZAotaW5kZXggZTE3NjdhZTQ2Li5mY2U0NzdiMzYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGli aWRlL3dlYmtpdC9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVp bGQKLUBAIC0zOSw3ICszOSw3IEBAIGxpYmlkZV93ZWJraXQgPSBzdGF0aWNfbGlicmFyeSgnaWRl LXdlYmtpdC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfd2Via2l0Ci0gCi0gbGliaWRl X3dlYmtpdF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVz OiBsaWJpZGVfd2Via2l0X2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfd2Vi a2l0LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3dlYmtpdCwKLSAgIGluY2x1ZGVf ZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNv dXJjZXM6IGxpYmlkZV93ZWJraXRfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBh L3NyYy9tZXNvbi5idWlsZCBiL3NyYy9tZXNvbi5idWlsZAotaW5kZXggM2ViOWJhNTM1Li4xMTNh MTQyYWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9tZXNvbi5idWls ZAotQEAgLTQ4LDYgKzQ4LDMwIEBAIGdub21lX2J1aWxkZXJfZGVwcyA9IFsKLSAgIGxpYmlkZV90 cmVlX2RlcCwKLSBdCi0gCi0rZ25vbWVfYnVpbGRlcl9zdGF0aWMgPSBbCi0rICBsaWJpZGVfY29k ZSwKLSsgIGxpYmlkZV9jb3JlLAotKyAgbGliaWRlX2RlYnVnZ2VyLAotKyAgbGliaWRlX2VkaXRv ciwKLSsgIGxpYmlkZV9mb3VuZHJ5LAotKyAgbGliaWRlX2dyZWV0ZXIsCi0rICBsaWJpZGVfZ3Vp LAotKyAgbGliaWRlX2lvLAotKyAgbGliaWRlX2xzcCwKLSsgIGxpYmlkZV9wbHVnaW5zLAotKyAg bGliaWRlX3Byb2plY3RzLAotKyAgbGliaWRlX3NlYXJjaCwKLSsgIGxpYmlkZV9zb3VyY2V2aWV3 LAotKyAgbGliaWRlX3Rlcm1pbmFsLAotKyAgbGliaWRlX3RoZW1lcywKLSsgIGxpYmlkZV90aHJl YWRpbmcsCi0rICBsaWJpZGVfdHJlZSwKLSsgIGxpYmlkZV92Y3MsCi0rICBsaWJpZGVfd2Via2l0 LAotKwotKyAgcGx1Z2lucywKLStdCi0rCi0gaWYgbGlic3lzcHJvZl9jYXB0dXJlLmZvdW5kKCkK LSAgIGdub21lX2J1aWxkZXJfZGVwcyArPSBsaWJzeXNwcm9mX2NhcHR1cmUKLSBlbmRpZgotQEAg LTc3LDcgKzEwMSw3IEBAIGdub21lX2J1aWxkZXIgPSBleGVjdXRhYmxlKCdnbm9tZS1idWlsZGVy JywgJ21haW4uYycsICdidWctYnVkZHkuYycsCi0gICAgICAgICAgICAgY19hcmdzOiBsaWJpZGVf YXJncyArIGV4ZV9jX2FyZ3MgKyByZWxlYXNlX2FyZ3MsCi0gICAgICAgICAgbGlua19hcmdzOiBl eGVfbGlua19hcmdzLAotICAgICAgICAgICAgICAgIHBpZTogdHJ1ZSwKLS0gICAgICAgIGxpbmtf d2hvbGU6IHBsdWdpbnMsCi0rICAgICAgICBsaW5rX3dob2xlOiBnbm9tZV9idWlsZGVyX3N0YXRp YywKLSAgICAgIGluc3RhbGxfcnBhdGg6IHBrZ2xpYmRpcl9hYnMsCi0gICAgICAgZGVwZW5kZW5j aWVzOiBnbm9tZV9idWlsZGVyX2RlcHMsCi0gKQotLS0gCi0yLjI0LjEKLQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3Rl bXBsYXRlCmluZGV4IDhjOGMwMTVkOGEzLi4wOTY4MDI3YTY3YiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJ1aWxkZXIn CiBwa2duYW1lPWdub21lLWJ1aWxkZXIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj02Cit2ZXJz aW9uPTMuMzcuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9 cWVtdQogY29uZmlndXJlX2FyZ3M9Ii1Ed2l0aF93ZWJraXQ9dHJ1ZSAtRHdpdGhfc3lzcHJvZj10 cnVlIC1EaGVscD10cnVlIgpAQCAtMTEsMTUgKzExLDE1IEBAIG1ha2VkZXBlbmRzPSJjYWlyby1k ZXZlbCBjbGFuZyBkZXZoZWxwLWRldmVsIGVuY2hhbnQyLWRldmVsIGZsYXRwYWstZGV2ZWwKICBn c3BlbGwtZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwgZ3RrKzMtZGV2ZWwganNvbi1nbGliLWRl dmVsIGpzb25ycGMtZ2xpYi1kZXZlbAogIGxpYmRhenpsZS1kZXZlbCBsaWJnaXQyLWdsaWItZGV2 ZWwgbGliZ2xpYi1kZXZlbCBsaWJvc3RyZWUtZGV2ZWwgbGlicGVhcy1kZXZlbAogIGxpYnhtbDIt ZGV2ZWwgdGVtcGxhdGUtZ2xpYi1kZXZlbCB2YWxhLWRldmVsIHZ0ZTMtZGV2ZWwgd2Via2l0Mmd0 ay1kZXZlbAotIHB5dGhvbjMtZ29iamVjdC1kZXZlbCBzeXNwcm9mLWRldmVsIGdsYWRlMy1kZXZl bCIKKyBweXRob24zLWdvYmplY3QtZGV2ZWwgc3lzcHJvZi1kZXZlbCBnbGFkZTMtZGV2ZWwgbGli cG9ydGFsLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIGZsYXRwYWstYnVpbGRl ciBweXRob24zLWx4bWwgZGV2aGVscCBweXRob24zLWdvYmplY3QiCiBzaG9ydF9kZXNjPSJJREUg Zm9yIEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9BcHBzL0J1aWxkZXIiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9nbm9tZS1idWlsZGVyL3Jhdy9nbm9tZS1idWlsZGVyLTMtMzQvTkVXUyIKK2NoYW5n ZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxkZXIvcmF3L2du b21lLWJ1aWxkZXItMy0zNi9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MGI2ZTQ2MTA1N2VhODE1MWU4MDUyNGMwZWE3ZWYxY2I5NDhlOTJhZmRhOWRjNmJkMzNhZTMzOTJm MDQ1MDFhNAorY2hlY2tzdW09NzgwODljZjM5ZGRlNGVjZjFiNTEyNzMwYmRmNGM3NjkxMDQ3NjQ5 NWM0ZGFiNzBjMTQwODZiYWY3YWI4ZWZjMgogcGF0Y2hfYXJncz0iLU5wMSIKIAogY2FzZSAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiIGluCkBAIC0yOCwzICsyOCw4IEBAIGNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgogCQlMSUJTKz0iIC1sZXhlY2luZm8iCiAJCTs7CiBlc2FjCisKK3ByZV9j b25maWd1cmUoKSB7CisJIyB0aGlzIHRlc3QgbmVlZHMgWAorCXZzZWQgLWkgInMvdGVzdCgndGVz dC10ZXh0LWl0ZXInLyMmLyIgc3JjL3Rlc3RzL21lc29uLmJ1aWxkCit9CgpGcm9tIGQ1YmVlNjJl NDQwYTVhZTk4NDdhMWM2YmMwMzczMzk4ZDQ0YzJmODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2 IEF1ZyAyMDIwIDE4OjI0OjAyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTIvMTAyXSBhZHdhaXRh LWljb24tdGhlbWU6IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQogc3JjcGtncy9hZHdhaXRhLWljb24t dGhlbWUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVt ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCmluZGV4IGZl YmQyOTE1YmU2Li42Y2QyYmRiZTcwZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9hZHdhaXRhLWljb24t dGhlbWUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhZHdhaXRhLWljb24tdGhlbWUn CiBwa2duYW1lPWFkd2FpdGEtaWNvbi10aGVtZQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIK K3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKQEAgLTExLDQgKzExLDQg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkxHUEwtMy4wLW9yLWxhdGVyLCBDQy1CWS1TQS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9n aXRsYWIuZ25vbWUub3JnL0dOT01FL2Fkd2FpdGEtaWNvbi10aGVtZSIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWU0OTg1MTg2MjcwNDRkZmQ3ZGI3ZDc5YTViM2Q0Mzc4NDhjYWYx OTkxZWY0ZWYwMzZhMmQzYTJhYzJjMWYxNGQKK2NoZWNrc3VtPWE1OTRlNzQ0MDk3MWY4NjBjYzYx YjFiODI5MWJlMTVmZmMxYjhkZDA2YTlmMTE0ODVhNWE3ZmFmMTg5YmNmNmIKCkZyb20gYzg5ZDg1 NjgyN2NkZTM1YjFmZWRjYmIyOTdjNmZhYTUxOGQzM2E5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwg MTYgQXVnIDIwMjAgMTk6NTc6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5My8xMDJdIGdub21l LWJhY2tncm91bmRzOiB1cGRhdGUgdG8gMy4zNy4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtYmFja2dy b3VuZHMvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJhY2tncm91bmRz L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZQppbmRleCAwYjFl ZTQyNzM1My4uZjFmNDlkYTkzOGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYmFja2dyb3Vu ZHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJhY2tncm91bmRzJwogcGtn bmFtZT1nbm9tZS1iYWNrZ3JvdW5kcwotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3ZlcnNp b249My4zNy4yCityZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPW1lc29uCiBo b3N0bWFrZWRlcGVuZHM9Z2V0dGV4dApAQCAtMTAsNCArMTAsNCBAQCBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciwgQ0MtQlktMi4wLCBDQy1CWS1TQS0yLjAsIENDLUJZLVNBLTMuMCIKIGhvbWVwYWdlPSJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYmFja2dyb3VuZHMiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1iOGNiODFlNGNmOWQwODVmYmIyMzU0MDYzNWI0OTJkNWMx MjRhMWY4NjExYzJhYTlhYzYzODQxMTFkNzdiYjBiCitjaGVja3N1bT00YTJjYjg2ZmY5NmE2NTBl YjA0MTAxYzJhMWJiMGFlZmMwM2IzNTg3N2Y0MjMxMzEzNzhmNGMwZmRmMDNkYjY4CgpGcm9tIGU4 ZWE5OGI2N2Q0YmFmM2I5NTZlNWFmYjJlMTVkZjZjZDUyMTdiM2QgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDIxOjA1OjExICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTQvMTAyXSBw b2xhcmk6IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQogc3JjcGtncy9wb2xhcmkvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9wb2xhcmkvdGVtcGxhdGUgYi9zcmNwa2dzL3BvbGFyaS90ZW1w bGF0ZQppbmRleCAwNzY3YmFjOTdiOC4uNDFkMDhlZTgxYjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cG9sYXJpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9sYXJpL3RlbXBsYXRlCkBAIC0xLDYgKzEs NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9sYXJpJwogcGtnbmFtZT1wb2xhcmkKLXZlcnNp b249My4zNi4zCit2ZXJzaW9uPTMuMzcuMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24K IGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpdHN0b29sIGdvYmplY3QtaW50cm9zcGVjdGlv biBnZXR0ZXh0IgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFu QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvUG9sYXJpIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09NGYyNjY0N2U5ODFjNWQwYmY0MmRmNTgyYWRhYzIwYmJmZGFjZGZlOGM0ZmUx NTBhZjBjYTAzZDJlMGNlZjUzYQorY2hlY2tzdW09NzkwNWI5ZGRiM2Y4MTFkY2MyM2IzMDc1MDEx ODdlYWQ0ZGRjNzhlZDBhNjUyOWFmY2RkY2I5NDQzYmExMjkwOAogCiBpZiBbICIkQ1JPU1NfQlVJ TEQiIF0gOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIGdsaWItZGV2ZWwgcHJlbGluay1jcm9z cyBxZW11LXVzZXItc3RhdGljIgoKRnJvbSA5MTJjZjYxNjk1Y2Q2Y2U3ZTMyNmRiMTUzMTZjOWM3 ODE0ZDVhMzA3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToxMDo0NCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDk1LzEwMl0gZ3ZmczogdXBkYXRlIHRvIDEuNDUuOTAKCi0tLQog c3JjcGtncy9ndmZzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQppbmRleCAxMjdhMDU3NzkwMS4uMTY5MWQ1MzZkMWEg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2d2ZnMvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdndmZzJwogcGtnbmFt ZT1ndmZzCi12ZXJzaW9uPTEuNDQuMQordmVyc2lvbj0xLjQ1LjkwCiByZXZpc2lvbj0xCiBidWls ZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZHVzZXJ1bml0ZGlyPW5vIC1E dG1wZmlsZXNkaXI9bm8gLURsb2dpbmQ9ZmFsc2UKQEAgLTIwLDcgKzIwLDcgQEAgbGljZW5zZT0i TEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9q ZWN0cy9ndmZzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ3Zm cy9yYXcvZ25vbWUtMy0zNC9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 NTBlZjMyNDVkMWIwMzY2NmE0MDQ1NTEwOTE2OWEyYTFiZDUxNDE5ZmQyZDUxZjlmYTZjZmQ0Zjg5 ZjA0ZmI0NgorY2hlY2tzdW09ZGUxZjU2YWM0YmNiY2ViNzc3YWE3MmY2N2VlNWY1NzRhZjYzNjIx ODJhYjFjODA5N2RhNjU3ZTNkZGVhZGU4NwogCiAjIE1hbnVhbGx5IGRlY2xhcmUgc2hsaWJzIHVz ZWQgYnkgdGhlIHN1YnBrZ3MuCiBzaGxpYl9wcm92aWRlcz0ibGliZ3Zmc2NvbW1vbi5zbyBsaWJn dmZzZGFlbW9uLnNvIgoKRnJvbSBkODk4YWZmYjhiMWQzYzJmZTFmMTU0YTFjZWY5OGMzZjY2YzU0 MTlkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyMDo1OCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDk2LzEwMl0gcnlnZWw6IHVwZGF0ZSB0byAwLjM5LjIKCi0tLQogc3JjcGtn cy9yeWdlbC90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9yeWdlbC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUKaW5kZXggZDI4ZGJjMmNlMDguLmJkZWRkM2M2Yzg3 IDEwMDY0NAotLS0gYS9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcnlnZWwv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdyeWdlbCcKIHBr Z25hbWU9cnlnZWwKLXZlcnNpb249MC4zOC4zCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTAuMzkuMgor cmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmln dXJlX2FyZ3M9Ii1EZXhhbXBsZXM9ZmFsc2UgLUR0ZXN0cz1mYWxzZQpAQCAtOSwxNCArOSwxNCBA QCBjb25maWd1cmVfYXJncz0iLURleGFtcGxlcz1mYWxzZSAtRHRlc3RzPWZhbHNlCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9InNxbGl0 ZS1kZXZlbCBndGsrMy1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYmdlZTA4LWRldmVsCiAgZ3VwbnAt YXYtZGV2ZWwgZ3VwbnAtZGxuYS1kZXZlbCB0cmFja2VyLWRldmVsIGxpYm1lZGlhYXJ0LWRldmVs Ci0gZ3NzZHAtZGV2ZWwiCisgZ3NzZHAtZGV2ZWwgZ3N0MS1lZGl0aW5nLXNlcnZpY2VzLWRldmVs IgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIGRlc2t0b3AtZmlsZS11dGlscyIKIHNob3J0 X2Rlc2M9IkdOT01FIGhvbWUgbWVkaWEgc29sdXRpb24iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8 b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9SeWdlbCIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTA4YzIxYTU3N2Y3YmRhZDI2NDQ2YTc1ZmZhMzI3NzhiMjY4 NDJjM2IxMTg4MTY1ZjBiMTk4MTg1NTk3NDdkMDAKK2NoZWNrc3VtPTQ1M2YxY2U3ODJhNTFiYWU4 Zjc3NmE5MmY3MGQyMzM2MjVjOThhMWM0Y2QyZWMzYjQ1NDVjYjdlNzc3MzM2NjQKIAogY29uZl9m aWxlcz0iL2V0Yy9yeWdlbC5jb25mIgogCgpGcm9tIDkwYzU4ODE2ZWNiOWZhNmUwM2Y5ZjJmY2Ix N2U1OTI5MmIxMWVmYmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIzOjI0 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTcvMTAyXSBzaW1wbGUtc2NhbjogdXBkYXRlIHRvIDMu MzcuMwoKLS0tCiBzcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlIHwgNyArKystLS0tCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxhdGUgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBs YXRlCmluZGV4IDRhZTNiODY0M2ZkLi42ZTE3YTZlZmI0YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9z aW1wbGUtc2Nhbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCkBA IC0xLDcgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc2ltcGxlLXNjYW4nCiBwa2duYW1l PXNpbXBsZS1zY2FuCi1fZ25vbWVfdmVyc2lvbj0zLjM2Ci12ZXJzaW9uPTMuMzYuNAordmVyc2lv bj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9 ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSIKQEAgLTExLDUgKzEw LDUgQEAgc2hvcnRfZGVzYz0iR1RLIFNpbXBsZSBzY2FubmluZyB1dGlsaXR5IgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3NpbXBs ZS1zY2FuIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHtfZ25vbWVfdmVy c2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTU2YWYxODI5MWE3 NzYzZjc2M2RhNWYwZWRlZDI0N2QyZjhlYmY5MTEyYzI4NmVmODkwMTMzNzQ5NjlmZWY1MjUKK2Rp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPWY1ZDg5NzNjNmI0ODNkNTBkOWFjMDhhZTZj MDgwMmE3YTZiYjI1ODUzOGE4MTQ3MjY2ZTczYWE0NTFlZWQ5NTIKCkZyb20gYWRlN2MzMTg2YWJl YTcxMTQyZGEzM2NmMDc4YTI3NWI1Njk3MDI4MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2Vw IDIwMjAgMDE6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5OC8xMDJdIGdyaWxvOiB1cGRh dGUgdG8gMC4zLjEzLCBkcm9wIHZhbGEgb3B0aW9uCgotLS0KIHNyY3BrZ3MvZ3JpbG8vdGVtcGxh dGUgfCAxNiArKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3JpbG8vdGVtcGxhdGUgYi9z cmNwa2dzL2dyaWxvL3RlbXBsYXRlCmluZGV4IDRhNmFiNGNhYmUzLi42NGJhZTliZDRlMiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9ncmlsby90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dyaWxvL3RlbXBs YXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdncmlsbycKIHBrZ25h bWU9Z3JpbG8KLXZlcnNpb249MC4zLjEyCit2ZXJzaW9uPTAuMy4xMwogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZW5h YmxlLWludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKQotIC1EZW5hYmxlLXZh bGE9JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSAtRGVuYWJsZS1ndGstZG9jPWZhbHNlIgotaG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgZ2xpYi1kZXZlbCAkKHZvcHRfaWYgdmFs YSB2YWxhKSIKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIgZW5hYmxlLWludHJvc3Bl Y3Rpb24pICQodm9wdF9ib29sIGdpciB2YWxhKQorIC1EZW5hYmxlLWd0ay1kb2M9ZmFsc2UiCito b3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBnbGliLWRldmVsICQodm9wdF9pZiBn aXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGlieG1sMi1kZXZlbCBsaWJzb3Vw LWRldmVsIGxpYm9hdXRoLWRldmVsCiAgdG90ZW0tcGwtcGFyc2VyLWRldmVsIgogc2hvcnRfZGVz Yz0iRnJhbWV3b3JrIGZvY3VzZWQgb24gbWFraW5nIG1lZGlhIGRpc2NvdmVyeSBhbmQgYnJvd3Np bmcgZWFzeSIKQEAgLTE0LDExICsxNCwxMSBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290 dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cDovL2xpdmUuZ25vbWUub3JnL0dyaWxvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09ZGJmYmQ2MDgyMTAzMjg4NTkyYWY5NzU2ODE4MGI5Y2M4MWEzMzZhMjc0ZWQ1MTYw NDEyZjg3Njc1ZWMxMWE3MQorY2hlY2tzdW09ZDE0ODM3ZjIyMzQxOTQzZWQ4YTE4OWQ5ZjA4Mjdh MTcwMTZiODAyZDE4ZDBlZDA4MGUxNDEzZGUwZmRjOTI3YgogCiAjIFBhY2thZ2UgYnVpbGQgb3B0 aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIi CiAKIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gZ3Jp bG8+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0yNyw4ICsyNyw2IEBAIGdyaWxvLWRldmVs X3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCWlmIFsgIiRidWlsZF9vcHRpb25f Z2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIk YnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZp CiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCgpGcm9tIDg2MmVkZjhjZWM5ZDEwZmZmMGRiY2Q3 MzhlYzNjYTdkMjAzNDdlZGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDE3IFNlcCAyMDIwIDAxOjE1 OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTkvMTAyXSBncmlsby1wbHVnaW5zOiB1cGRhdGUg dG8gMC4zLjEyCgotLS0KIHNyY3BrZ3MvZ3JpbG8tcGx1Z2lucy90ZW1wbGF0ZSB8IDEyICsrKysr KysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dy aWxvLXBsdWdpbnMvdGVtcGxhdGUKaW5kZXggOGJmNjUxMzY2ZGEuLjU1YmNjZjFmZmI3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ncmls by1wbHVnaW5zL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dyaWxvLXBsdWdpbnMnCiBwa2duYW1lPWdyaWxvLXBsdWdpbnMKLXZlcnNpb249MC4zLjExCit2 ZXJzaW9uPTAuMy4xMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29sIGdsaWItZGV2ZWwgZ3BlcmYKLQlnbm9t ZS1kb2MtdXRpbHMiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgaXRzdG9v bCBnbGliLWRldmVsIGdwZXJmIGdub21lLWRvYy11dGlscyIKICMgWFhYIG1pc3NpbmcgcGx1Z2lu czogZmFrZW1ldGFkYXRhLgogbWFrZWRlcGVuZHM9ImdyaWxvLWRldmVsIGdvbS1kZXZlbCBndXBu cC1hdi1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJxdXZpLWRldmVsIHJlc3QtZGV2ZWwgc3Fs aXRlLWRldmVsIGxpYmdjcnlwdC1kZXZlbCBnbWltZS1kZXZlbApAQCAtMTYsNCArMTUsOSBAQCBt YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL2xpdmUuZ25vbWUub3JnL0dyaWxvIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZGRlMmU2MDViMTk5NDM0MWM2YmYwMTI0 OTNlMDU2YjQwNmIwODU3MTgzNGRlYTNiM2M2NzFkNWI4YjFkY2Q3MworY2hlY2tzdW09YzZiNmRm MDg2YTE2NGQ2NWMyMDZkNzAxMzljZTgwNTkxZjhmZWNhMzU0NTYxMmU0NWI4MjNmYjRmZTRiMjU3 NworCisjIGZlZWwgZnJlZSB0byBmaXgKK2RvX2NoZWNrKCkgeworCToKK30KCkZyb20gOTZmMWQ3 ZWZkMTFmMDk5MjAwNTAwODc2ODM3ZjNmMGMzNTk0ZDcyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTcgU2VwIDIwMjAgMDE6MjE6NTMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwMC8xMDJdIHJldHJv LWd0azogdXBkYXRlIHRvIDEuMC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgIHwg IDIgKy0KIHNyY3BrZ3MvcmV0cm8tZ3RrL3RlbXBsYXRlIHwgMTIgKysrKysrKysrLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZDY1NWVkYTFmMTcuLjA2MTg4 Njg1MDhhIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAg LTM1NzQsNyArMzU3NCw3IEBAIGxpYndscm9vdHMuc28uNiB3bHJvb3RzLTAuMTEuMF8xCiBsaWJi YXNlZW5jb2RlLnNvLjEgbGliYmFzZWVuY29kZS0xLjAuOV8xCiBsaWJjb3RwLnNvLjEyIGxpYmNv dHAtMS4yLjFfMQogbGlidW5hcnIuc28uMSBsaWJ1bmFyci0xLjAuMV8xCi1saWJyZXRyby1ndGst MC4xNC5zby4wIHJldHJvLWd0ay0wLjE2LjBfMQorbGlicmV0cm8tZ3RrLTEuc28uMCByZXRyby1n dGstMS4wLjBfMQogbGlibWFuZXR0ZS0wLjIuc28uMCBsaWJtYW5ldHRlLTAuMi4xXzEKIGxpYmZt dC5zby42IGZtdC01LjIuMV8xCiBsaWJlbGVtZW50YXJ5LWNhbGVuZGFyLnNvLjAgbGliaW8uZWxl bWVudGFyeS5jYWxlbmRhci00LjIuM18xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3JldHJvLWd0ay90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcmV0cm8tZ3RrL3RlbXBsYXRlCmluZGV4IGRhMGFlY2NkMjQzLi4w NGFkOWNmMDUxYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjggQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3JldHJvLWd0aycKIHBrZ25hbWU9cmV0cm8tZ3RrCi12ZXJzaW9uPTAuMTguMAor dmVyc2lvbj0xLjAuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBl cj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKSIK IGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmlnIHZhbGEiCi1tYWtlZGVwZW5k cz0iZ3RrKzMtZGV2ZWwgbGliZXBveHktZGV2ZWwgbGliZ2xpYi1kZXZlbCBwdWxzZWF1ZGlvLWRl dmVsIgorbWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGxpYmVwb3h5LWRldmVsIGxpYmdsaWItZGV2 ZWwgcHVsc2VhdWRpby1kZXZlbAorIGxpYnNhbXBsZXJhdGUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJH VEsrIExpYnJldHJvIGZyb250ZW5kIGZyYW1ld29yayIKIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9yZXRyby1ndGsiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jZWRiODgxMTc0YzQyZTg4OTU0ZWVjYjVkZmFjNzg5 NTRhMTk4MWFhZWViZGM4OTE4Yzg4NjFjNmMwOGE0NTEyCitjaGVja3N1bT01Yzc0MzdhNzY4MTI1 YTZmNjI3ZDA2M2VkODkwZTkzMjhkNDEwOGRiNTJhNmQ1YWExMGU1MmQyZjI1YmI4OGRiCiAKIGJ1 aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCisjIG5lZWRz IFgKK2RvX2NoZWNrKCkgeworCToKK30KKwogcmV0cm8tZ3RrLWRldmVsX3BhY2thZ2UoKSB7CiAJ ZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoKRnJvbSAwNDVlNzgwYmE1 ZWFmYjlkZGNlZGY1ZWNjY2FiZGFhYjViZjJmYTJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBT ZXAgMjAyMCAwMToyNjowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAxLzEwMl0gZ25vbWUtZ2Ft ZXM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1nYW1lcy90ZW1wbGF0ZSB8 IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZ2FtZXMvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLWdhbWVzL3RlbXBsYXRlCmluZGV4IDI3MzFkZjBmNmQ5Li41OGYzMTE1NmQwNiAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbm9tZS1nYW1lcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWdh bWVzL3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1nYW1lcycKIHBrZ25hbWU9Z25vbWUtZ2FtZXMKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMu MzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0 dGV4dCBnbGliLWRldmVsIHBrZy1jb25maWcgdmFsYS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJh cmNoaXZlLWRldmVsIGdyaWxvLWRldmVsIGd0ayszLWRldmVsIGxpYmdsaWItZGV2ZWwKICBsaWJt YW5ldHRlLWRldmVsIGxpYnJzdmctZGV2ZWwgbGlic291cC1kZXZlbCBsaWJ4bWwyLWRldmVsIHJl dHJvLWd0ay1kZXZlbAotIHNxbGl0ZS1kZXZlbCB0cmFja2VyLWRldmVsIGxpYmhhbmR5LWRldmVs IgorIHNxbGl0ZS1kZXZlbCB0cmFja2VyLWRldmVsIGxpYmhhbmR5MS1kZXZlbCIKIHNob3J0X2Rl c2M9IkJyb3dzZSBhbmQgcGxheSB5b3VyIGdhbWVzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0dhbWVzIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09MGZkNzI0NmQ2MWNlMjFjMGZjMTIxYzU0ODgwNTFhNTg2NmMxOWRl MmMyODM1YWQ3ZmU0YjE4YzA2NjI3ZGNiYQorY2hlY2tzdW09NWM4NjhmZDZlYjBiOGQyM2I5OTUw Mzk2MzMwNDNlOTBkOGQ5Mzg1NmQzMTU4MzJkZTNhMzE1ZDdiMWU1NGU0OAoKRnJvbSAzNzViNTJh OTBhNWY5OTk3MDE4ZmZiZmQzOTdkNGEyZmY0ZmYxODY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVHVlLCAx OCBBdWcgMjAyMCAwNTozNTowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAyLzEwMl0gYnVkZ2ll LWRlc2t0b3A6IHJlYnVpbGQgZm9yIG11dHRlci03CgpbY2kgc2tpcF0KLS0tCiAuLi4vYnVkZ2ll LWRlc2t0b3AvcGF0Y2hlcy9hcHBzeXMtYnVpbGQucGF0Y2ggfCAgICAxMSArCiAuLi4vYnVkZ2ll LWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggICAgfCAxMzQ3MiArKysrKysrKysrKysr KysrCiBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgICAg MiArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMzQ4NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2FwcHN5 cy1idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYnVkZ2llLWRlc2t0b3Av cGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdpZS1kZXNr dG9wL3BhdGNoZXMvYXBwc3lzLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9w YXRjaGVzL2FwcHN5cy1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uYjY2MjVmMDQ2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2J1ZGdpZS1k ZXNrdG9wL3BhdGNoZXMvYXBwc3lzLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBz cmMvYXBwc3lzL0FwcFN5c3RlbS52YWxhCisrKysgc3JjL2FwcHN5cy9BcHBTeXN0ZW0udmFsYQor QEAgLTcwLDcgKzcwLDcgQEAgcHVibGljIGNsYXNzIEFwcFN5c3RlbSA6IEdMaWIuT2JqZWN0Cisg ICAgIH0KKyAKKyAgICAgcHJpdmF0ZSB2b2lkIHNpZ25hbF9yZWNlaXZlZChHTGliLkRCdXNDb25u ZWN0aW9uIGNvbm5lY3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry aW5nIHNlbmRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc/IHNl bmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgb2JqZWN0X3Bh dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGludGVyZmFjZV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBzaWduYWxfbmFt ZSwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgu cGF0Y2ggYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MmZhNzZhMTdiMAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0 Y2gKQEAgLTAsMCArMSwxMzQ3MiBAQAorRnJvbSAzMGJhMGI1YTQ5ODZkNmJlMzY4N2ExZDdmYjQ4 MjkwNjE4NWVhOGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGF2aWQgTW9oYW1t ZWQgPGZvc3NmcmVlZG9tQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KK0RhdGU6IFR1ZSwgMTgg RmViIDIwMjAgMDY6NDA6MTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gZ25vbWUgMy4zOCBjb21w YXRpYmlsaXR5CisKK1NxdWFzaGVkIGJ5IEBxNjYgZnJvbToKKworaHR0cHM6Ly9naXRodWIuY29t L3NvbHVzLXByb2plY3QvYnVkZ2llLWRlc2t0b3AvcHVsbC8xOTg3CisKK3BsdXMgYW4gYXNzb3J0 bWVudCBvZiBvbGRlciBtdXR0ZXIgdXBkYXRlcyBmcm9tIGdpdCBtYXN0ZXIKKy0tLQorIG1lc29u LmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKy0KKyBtZXNv bl9vcHRpb25zLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxIC0KKyBzcmMv YXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEgICAgICAgICAgfCAgICA2IC0KKyBzcmMv YXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEzICstCisgc3Jj L3dtL2JhY2tncm91bmQudmFsYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArLQorIHNy Yy93bS9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzAgKy0KKyBz cmMvd20vc2hpbS52YWxhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCisg c3JjL3dtL3dtLnZhbGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQor IC4uLntDbHV0dGVyLTUubWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1ldGFkYXRhfSB8ICAgIDAKKyAu Li57Q2x1dHRlci00Lm1ldGFkYXRhID0+IENsdXR0ZXItNy5tZXRhZGF0YX0gfCAgIDQzIC0KKyB2 YXBpL3tDb2dsLTQubWV0YWRhdGEgPT4gQ29nbC02Lm1ldGFkYXRhfSAgICAgfCAgICAwCisgdmFw aS97Q29nbC01Lm1ldGFkYXRhID0+IENvZ2wtNy5tZXRhZGF0YX0gICAgIHwgICAgMiAtCisgdmFw aS9NZXRhLTMubWV0YWRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NiAtCisgdmFw aS97TWV0YS01Lm1ldGFkYXRhID0+IE1ldGEtNi5tZXRhZGF0YX0gICAgIHwgICAgMAorIHZhcGkv e01ldGEtNC5tZXRhZGF0YSA9PiBNZXRhLTcubWV0YWRhdGF9ICAgICB8ICAgMjUgKy0KKyB2YXBp L2dlbmVyYXRlLW11dHRlci12YXBpLnNoICAgICAgICAgICAgICAgICAgfCAgICAyICstCisgdmFw aS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpICAgICAgICAgICAgICAgIHwgIDY5MSArKysrKysr CisgdmFwaS9saWJtdXR0ZXItMi5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSAt CisgdmFwaS9saWJtdXR0ZXItMi52YXBpICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMyNSAt LS0tLS0tLS0tLS0tLQorIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEgICAgICAgICAgICAg ICAgICB8ICAgIDYgLQorIHZhcGkvbGlibXV0dGVyLTMuZGVwcyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgIDkgLQorIHZhcGkvbGlibXV0dGVyLTQuZGVwcyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgIDggLQorIHZhcGkvbGlibXV0dGVyLTQudmFwaSAgICAgICAgICAgICAgICAgICAg ICAgICB8IDE0MjUgLS0tLS0tLS0tLS0tLS0tCisgdmFwaS97bGlibXV0dGVyLTUuZGVwcyA9PiBs aWJtdXR0ZXItNi5kZXBzfSAgIHwgICAgMyArLQorIHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4g bGlibXV0dGVyLTYudmFwaX0gICB8ICAgNDUgKy0KKyB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52 YWxhICAgICAgICAgICAgICAgICAgfCAgICA3ICsKKyB2YXBpL2xpYm11dHRlci03LmRlcHMgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsKKyB2YXBpL3tsaWJtdXR0ZXItMy52YXBpID0+ IGxpYm11dHRlci03LnZhcGl9ICAgfCAgMzkwICsrLS0KKyB2YXBpL2xpYm11dHRlci1jb2dsLTQu dmFwaSAgICAgICAgICAgICAgICAgICAgfCAxMjcyIC0tLS0tLS0tLS0tLS0KKyB2YXBpL211dHRl ci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEgICAgICAgICAgICAgfCAgMTU4IC0tCisgLi4uc3RvbS52 YWxhID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9IHwgICAxMSAtCisgLi4uci1jbHV0 dGVyLTUuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci02LmRlcHN9IHwgICAgMiArLQorIC4uLnItY2x1 dHRlci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52YXBpfSB8ICA4MDYgKystLS0tLS0KKyAu Li5yLWNsdXR0ZXItNC5kZXBzID0+IG11dHRlci1jbHV0dGVyLTcuZGVwc30gfCAgICAzICstCisg Li4uci1jbHV0dGVyLTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9IHwgMTYxNSArKysr LS0tLS0tLS0tLS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC02LWN1c3RvbS52 YWxhfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNC5kZXBzID0+IG11dHRlci1jb2dsLTYuZGVw c30gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTUudmFwaSA9PiBtdXR0ZXItY29nbC02LnZhcGl9 IHwgIDQyMiArLS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52 YWxhfSB8ICAgMjAgKy0KKyAuLi57bXV0dGVyLWNvZ2wtNS5kZXBzID0+IG11dHRlci1jb2dsLTcu ZGVwc30gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTQudmFwaSA9PiBtdXR0ZXItY29nbC03LnZh cGl9IHwgIDY3MSArKystLS0tCisgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkgICAgICAgICAg ICAgICAgICAgIHwgICAzMSArLQorIDQyIGZpbGVzIGNoYW5nZWQsIDE5MjAgaW5zZXJ0aW9ucygr KSwgNzI1NCBkZWxldGlvbnMoLSkKKyByZW5hbWUgdmFwaS97Q2x1dHRlci01Lm1ldGFkYXRhID0+ IENsdXR0ZXItNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve0NsdXR0ZXItNC5tZXRh ZGF0YSA9PiBDbHV0dGVyLTcubWV0YWRhdGF9ICg3OCUpCisgcmVuYW1lIHZhcGkve0NvZ2wtNC5t ZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tDb2dsLTUu bWV0YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAoOTElKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2 YXBpL01ldGEtMy5tZXRhZGF0YQorIHJlbmFtZSB2YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4gTWV0 YS02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97TWV0YS00Lm1ldGFkYXRhID0+IE1l dGEtNy5tZXRhZGF0YX0gKDc2JSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9ncmFwaGVuZS1n b2JqZWN0LTEuMC52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIuZGVw cworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0yLnZhcGkKKyBkZWxldGUgbW9k ZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorIGRlbGV0ZSBtb2RlIDEwMDY0 NCB2YXBpL2xpYm11dHRlci0zLmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0 ZXItNC5kZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTQudmFwaQorIHJl bmFtZSB2YXBpL3tsaWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRlci02LmRlcHN9ICg1MCUpCisg cmVuYW1lIHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0dGVyLTYudmFwaX0gKDk3JSkK KyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorIGNyZWF0 ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03LmRlcHMKKyByZW5hbWUgdmFwaS97bGlibXV0 dGVyLTMudmFwaSA9PiBsaWJtdXR0ZXItNy52YXBpfSAoNzUlKQorIGRlbGV0ZSBtb2RlIDEwMDY0 NCB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL211 dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXIt NC1jdXN0b20udmFsYSA9PiBtdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhfSAoOTIlKQorIHJl bmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNi5kZXBz fSAoNjMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LnZhcGkgPT4gbXV0dGVyLWNs dXR0ZXItNi52YXBpfSAoOTMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LmRlcHMg PT4gbXV0dGVyLWNsdXR0ZXItNy5kZXBzfSAoNTQlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1 dHRlci00LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNy52YXBpfSAoODYlKQorIHJlbmFtZSB2YXBp L3ttdXR0ZXItY29nbC01LWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTYtY3VzdG9tLnZhbGF9 ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVyLWNvZ2wt Ni5kZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRl ci1jb2dsLTYudmFwaX0gKDY4JSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNC1jdXN0b20u dmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52YWxhfSAoODElKQorIHJlbmFtZSB2YXBpL3tt dXR0ZXItY29nbC01LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBzfSAoMTAwJSkKKyByZW5hbWUg dmFwaS97bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2dsLTcudmFwaX0gKDU5JSkKKwor ZGlmZiAtLWdpdCBtZXNvbi5idWlsZCBtZXNvbi5idWlsZAoraW5kZXggMmEwZTAzMTYuLjNjNGM2 YWMxIDEwMDY0NAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC0zMiwxNiAr MzIsMTYgQEAgYW1fY2ZsYWdzID0gWworIGFkZF9nbG9iYWxfYXJndW1lbnRzKGFtX2NmbGFncywg bGFuZ3VhZ2U6ICdjJykKKyBtZXNvbi5hZGRfaW5zdGFsbF9zY3JpcHQoJ21lc29uX3Bvc3RfaW5z dGFsbC5zaCcpCisgCistIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVtIDMuMjIgR05PTUUgc3RhY2sK Ky1nbm9tZV9taW5pbXVtX3ZlcnNpb24gPSAnPj0gMy4yMi4wJworKyMgQnVkZ2llIG5lZWRzIGEg bWluaW11bSAzLjI0IEdOT01FIHN0YWNrCisrZ25vbWVfbWluaW11bV92ZXJzaW9uID0gJz49IDMu MjQuMCcKKyAKKyBkZXBfZ3RrMyA9IGRlcGVuZGVuY3koJ2d0aystMy4wJywgdmVyc2lvbjogZ25v bWVfbWluaW11bV92ZXJzaW9uKQorLWRlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAnLCB2 ZXJzaW9uOiAnPj0gMi40Ni4wJykKKy1kZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11bml4 LTIuMCcsIHZlcnNpb246ICc+PSAyLjQ2LjAnKQorLWRlcF9wZWFzID0gZGVwZW5kZW5jeSgnbGli cGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS44LjAnKQorK2RlcF9nbGliID0gZGVwZW5kZW5jeSgn Z2xpYi0yLjAnLCB2ZXJzaW9uOiAnPj0gMi42Mi4wJykKKytkZXBfZ2lvdW5peCA9IGRlcGVuZGVu Y3koJ2dpby11bml4LTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9wZWFzID0gZGVw ZW5kZW5jeSgnbGlicGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4yNC4wJykKKyBkZXBfZ2RreDEx ID0gZGVwZW5kZW5jeSgnZ2RrLXgxMS0zLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNp b24pCisgZGVwX2xpYnV1aWQgPSBkZXBlbmRlbmN5KCd1dWlkJykKKy1kZXBfdmFsYSA9IGRlcGVu ZGVuY3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40MC4wJykKKytkZXBfdmFsYSA9IGRlcGVu ZGVuY3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40Ni4wJykKKyAKKyAjIE5lZWRlZCBmb3Ig a2V5Ym9hcmR5IGJpdHMKKyBkZXBfaWJ1cyA9IGRlcGVuZGVuY3koJ2lidXMtMS4wJywgdmVyc2lv bjogJz49IDEuNS4xMCcpCitAQCAtNTEsMTAgKzUxLDEwIEBAIGRlcF9nc2V0dGluZ3MgPSBkZXBl bmRlbmN5KCdnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJywgdmVyc2lvbjogZ25vbWVfbWluaW11 bV92CisgZGVwX2dzZCA9IGRlcGVuZGVuY3koJ2dub21lLXNldHRpbmdzLWRhZW1vbicsIHZlcnNp b246ICc+PTMuMjguMCcpCisgCisgIyB3bmNrIHVzZWQgYWxsIG92ZXIgdGhlIHBsYWNlLi4KKy1k ZXBfd25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lvbjogJz49IDMuMTQuMCcp CisrZGVwX3duY2sgPSBkZXBlbmRlbmN5KCdsaWJ3bmNrLTMuMCcsIHZlcnNpb246ICc+PSAzLjMy LjAnKQorIAorICMgYWNjb3VudHNzZXJ2aWNlIGluIG11bHRpcGxlIGFwcGxldHMKKy1kZXBfYWNj b3VudHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgnYWNjb3VudHNzZXJ2aWNlJywgdmVyc2lvbjogJz49 IDAuNi40MCcpCisrZGVwX2FjY291bnRzc2VydmljZSA9IGRlcGVuZGVuY3koJ2FjY291bnRzc2Vy dmljZScsIHZlcnNpb246ICc+PSAwLjYuNTUnKQorIAorICMgQ3JlYXRlIGNvbmZpZy5oCisgY2Rh dGEgPSBjb25maWd1cmF0aW9uX2RhdGEoKQorZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4dCBt ZXNvbl9vcHRpb25zLnR4dAoraW5kZXggZDcxYjA5YjUuLmRjYTkxMjk2IDEwMDY0NAorLS0tIG1l c29uX29wdGlvbnMudHh0CisrKysgbWVzb25fb3B0aW9ucy50eHQKK0BAIC0xLDUgKzEsNCBAQAor IG9wdGlvbignd2l0aC1zdGF0ZWxlc3MnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSwg ZGVzY3JpcHRpb246ICdFbmFibGUgc3RhdGVsZXNzIFhERyBwYXRocycpCisgb3B0aW9uKCd3aXRo LXBvbGtpdCcsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnRW5h YmxlIFBvbEtpdCBzdXBwb3J0JykKKy1vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJywgdHlwZTogJ2Jv b2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgZ25vbWUtYmx1ZXRvb3Ro IHN1cHBvcnQnKQorIG9wdGlvbignd2l0aC1ndGstZG9jJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1 ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdCdWlsZCBndGstZG9jIGRvY3VtZW50YXRpb24nKQorIG9w dGlvbignd2l0aC1kZXNrdG9wLWljb25zJywgdHlwZTogJ2NvbWJvJywgY2hvaWNlczogWyduYXV0 aWx1cycsICdub25lJ10sIHZhbHVlOiAnbmF1dGlsdXMnLCBkZXNjcmlwdGlvbjogJ0Rlc2t0b3Ag aWNvbiBoYW5kbGluZycpCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBs ZXQudmFsYSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK2luZGV4IGI5ODI2 Mzk0Li43MWYyODdjOSAxMDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0 LnZhbGEKKysrKyBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK0BAIC0yMCw5 ICsyMCw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0Cisgewor IAorICAgICBwcm90ZWN0ZWQgR3RrLkJveCB3aWRnZXQ7CistI2lmIFdJVEhfQkxVRVRPT1RICisg ICAgIHByb3RlY3RlZCBCbHVldG9vdGhJbmRpY2F0b3IgYmx1ZTsKKy0jZW5kaWYKKyAgICAgcHJv dGVjdGVkIFNvdW5kSW5kaWNhdG9yIHNvdW5kOworICAgICBwcm90ZWN0ZWQgUG93ZXJJbmRpY2F0 b3IgcG93ZXI7CisgICAgIHByb3RlY3RlZCBHdGsuRXZlbnRCb3g/IHdyYXA7CitAQCAtNjgsMTIg KzY2LDEwIEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgICAg ICAgICB0aGlzLnNldHVwX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIucG9wb3Zlcik7CisgICAg ICAgICB0aGlzLnNldHVwX3BvcG92ZXIoc291bmQuZWJveCwgc291bmQucG9wb3Zlcik7CisgCist I2lmIFdJVEhfQkxVRVRPT1RICisgICAgICAgICBibHVlID0gbmV3IEJsdWV0b290aEluZGljYXRv cigpOworICAgICAgICAgd2lkZ2V0LnBhY2tfc3RhcnQoYmx1ZSwgZmFsc2UsIGZhbHNlLCAyKTsK KyAgICAgICAgIGJsdWUuc2hvd19hbGwoKTsKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3Zlcihi bHVlLmVib3gsIGJsdWUucG9wb3Zlcik7CistI2VuZGlmCisgICAgIH0KKyAKKyAgICAgcHVibGlj IG92ZXJyaWRlIHZvaWQgcGFuZWxfcG9zaXRpb25fY2hhbmdlZChCdWRnaWUuUGFuZWxQb3NpdGlv biBwb3NpdGlvbikKK0BAIC05MSw5ICs4Nyw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQg OiBCdWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyOworICAgICAg ICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHBvd2VyLmVib3gsIHBvd2VyLnBvcG92ZXIpOwor ICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHNvdW5kLmVib3gsIHNvdW5kLnBvcG92 ZXIpOworLSNpZiBXSVRIX0JMVUVUT09USAorICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3Bv dmVyKGJsdWUuZWJveCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIH0gLy8gRW5k IGNsYXNzCisgCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZCBzcmMv YXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKK2luZGV4IDY5OWZiOGY0Li5iNGQyNzA2YyAxMDA2 NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKKysrKyBzcmMvYXBwbGV0cy9z dGF0dXMvbWVzb24uYnVpbGQKK0BAIC0xMCw2ICsxMCw3IEBAIGN1c3RvbV90YXJnZXQoJ3BsdWdp bi1maWxlLXN0YXR1cycsCisgICAgIGluc3RhbGxfZGlyIDogYXBwbGV0X3N0YXR1c19kaXIpCisg CisgYXBwbGV0X3N0YXR1c19zb3VyY2VzID0gWworKyAgICAnQmx1ZXRvb3RoSW5kaWNhdG9yLnZh bGEnLAorICAgICAnU3RhdHVzQXBwbGV0LnZhbGEnLAorICAgICAnUG93ZXJJbmRpY2F0b3IudmFs YScsCisgICAgICdTb3VuZEluZGljYXRvci52YWxhJywKK0BAIC0yMCwyMiArMjEsMTMgQEAgYXBw bGV0X3N0YXR1c19kZXBzID0gWworICAgICBkZXBfZ3RrMywKKyAgICAgZGVwX3BlYXMsCisgICAg IGRlcF9hY2NvdW50c3NlcnZpY2UsCisrICAgIGRlcGVuZGVuY3koJ2dub21lLWJsdWV0b290aC0x LjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pLAorICAgICBkZXBlbmRlbmN5KCd1 cG93ZXItZ2xpYicsIHZlcnNpb246ICc+PSAwLjk5LjAnKSwKKyAgICAgbGlua19saWJwbHVnaW4s CisgICAgIGd2Yy5nZXRfdmFyaWFibGUoJ2xpYmd2Y19kZXAnKSwKKyAgICAgbWVzb24uZ2V0X2Nv bXBpbGVyKCdjJykuZmluZF9saWJyYXJ5KCdtJywgcmVxdWlyZWQ6IGZhbHNlKSwKKyBdCisgCist IyBCbHVldG9vdGggaXMgb3B0aW9uYWwgdG8gYWxsb3cgc21hbGxlciBidWlsZHMKKy13aXRoX2Js dWV0b290aCA9IGdldF9vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJykKKy1hcHBsZXRfc3RhdHVzX3Zh bGFfYXJncyA9IFtdCistCistaWYgd2l0aF9ibHVldG9vdGggPT0gdHJ1ZQorLSAgICBhcHBsZXRf c3RhdHVzX2RlcHMgKz0gZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRvb3RoLTEuMCcsIHZlcnNpb246 IGdub21lX21pbmltdW1fdmVyc2lvbikKKy0gICAgYXBwbGV0X3N0YXR1c19zb3VyY2VzICs9ICdC bHVldG9vdGhJbmRpY2F0b3IudmFsYScKKy0gICAgYXBwbGV0X3N0YXR1c192YWxhX2FyZ3MgKz0g WyctRCcsICdXSVRIX0JMVUVUT09USCddCistZW5kaWYKKy0KKyBzaGFyZWRfbGlicmFyeSgKKyAg ICAgJ3N0YXR1c2FwcGxldCcsCisgICAgIGFwcGxldF9zdGF0dXNfc291cmNlcywKK0BAIC01MCw3 ICs0Miw2IEBAIHNoYXJlZF9saWJyYXJ5KAorICAgICAgICAgJy0tcGtnJywgJ2d2Yy0xLjAnLAor ICAgICAgICAgJy0tcGtnJywgJ2dpby11bml4LTIuMCcsCisgICAgICAgICAnLS12YXBpZGlyJywg am9pbl9wYXRocyhtZXNvbi5zb3VyY2Vfcm9vdCgpLCAndmFwaScpLAorLSAgICAgICAgYXBwbGV0 X3N0YXR1c192YWxhX2FyZ3MsCisgICAgIF0sCisgICAgIGluc3RhbGw6IHRydWUsCisgICAgIGlu c3RhbGxfZGlyOiBhcHBsZXRfc3RhdHVzX2RpciwKK2RpZmYgLS1naXQgc3JjL3dtL2JhY2tncm91 bmQudmFsYSBzcmMvd20vYmFja2dyb3VuZC52YWxhCitpbmRleCAwODRhYTlhYi4uYjMzMWUwYzQg MTAwNjQ0CistLS0gc3JjL3dtL2JhY2tncm91bmQudmFsYQorKysrIHNyYy93bS9iYWNrZ3JvdW5k LnZhbGEKK0BAIC0yMDQsOCArMjA0LDEzIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5k IDogQ2x1dHRlci5BY3RvcgorIAorICAgICAgICAgdmFyIGFjdG9yID0gbmV3IE1ldGEuQmFja2dy b3VuZEFjdG9yKGRpc3BsYXksIGluZGV4KTsKKyAgICAgICAgIHZhciBiYWNrZ3JvdW5kID0gbmV3 IE1ldGEuQmFja2dyb3VuZChkaXNwbGF5KTsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAg YWN0b3Iuc2V0X2JhY2tncm91bmQoYmFja2dyb3VuZCk7CistCisrI2Vsc2UKKysgICAgICAgIHZh ciBjb250ZW50ID0gYWN0b3IuZ2V0X2NvbnRlbnQoKTsKKysgICAgICAgIHVub3duZWQgTWV0YS5C YWNrZ3JvdW5kQ29udGVudCBiYWNrZ3JvdW5kX2NvbnRlbnQgPSAoTWV0YS5CYWNrZ3JvdW5kQ29u dGVudCkgY29udGVudDsKKysgICAgICAgIGJhY2tncm91bmRfY29udGVudC5zZXRfYmFja2dyb3Vu ZChiYWNrZ3JvdW5kKTsKKysjZW5kaWYKKyAgICAgICAgIHJlY3QgPSBkaXNwbGF5LmdldF9tb25p dG9yX2dlb21ldHJ5KGluZGV4KTsKKyAgICAgICAgIGFjdG9yLnNldF9zaXplKHJlY3Qud2lkdGgs IHJlY3QuaGVpZ2h0KTsKKyAgICAgICAgIGFjdG9yLnNldCgib3BhY2l0eSIsIDApOworQEAgLTIy MSwxMyArMjI2LDIxIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRlci5B Y3RvcgorICAgICAgICAgc2hhZGluZ19kaXJlY3Rpb24gPSAoR0Rlc2t0b3AuQmFja2dyb3VuZFNo YWRpbmcpc2V0dGluZ3MuZ2V0X2VudW0oQ09MT1JfU0hBRElOR19UWVBFX0tFWSk7CisgICAgICAg ICB2YXIgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhQUklNQVJZX0NPTE9SX0tFWSk7 CisgICAgICAgICBpZiAoY29sb3Jfc3RyICE9IG51bGwgJiYgY29sb3Jfc3RyICE9ICIiKSB7Cisr I2lmIEhBVkVfTVVUVEVSXzYKKyAgICAgICAgICAgICBwcmltYXJ5X2NvbG9yID0gQ2x1dHRlci5D b2xvci5mcm9tX3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAgICAgICAgQ2x1dHRl ci5Db2xvci5mcm9tX3N0cmluZyhvdXQgcHJpbWFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5k aWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorICAgICAg ICAgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhTRUNPTkRBUllfQ09MT1JfS0VZKTsK KyAgICAgICAgIGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsKKysj aWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgICAgIHNlY29uZGFyeV9jb2xvciA9IENsdXR0ZXIu Q29sb3IuZnJvbV9zdHJpbmcoY29sb3Jfc3RyKTsKKysjZWxzZQorKyAgICAgICAgICAgIENsdXR0 ZXIuQ29sb3IuZnJvbV9zdHJpbmcob3V0IHNlY29uZGFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysj ZW5kaWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorZGlm ZiAtLWdpdCBzcmMvd20vbWVzb24uYnVpbGQgc3JjL3dtL21lc29uLmJ1aWxkCitpbmRleCBlMzli ODY3OC4uNTgzY2U3OTAgMTAwNjQ0CistLS0gc3JjL3dtL21lc29uLmJ1aWxkCisrKysgc3JjL3dt L21lc29uLmJ1aWxkCitAQCAtMTcsMjAgKzE3LDE4IEBAIGJ1ZGdpZV93bV9zb3VyY2VzID0gWwor IAorIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzID0gW10KKyAKKy12YXBpX211dHRlciA9ICds aWJtdXR0ZXItMycKKy1kZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTMnLCB2ZXJz aW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24sIHJlcXVpcmVkOiBmYWxzZSkKKy1pZiBub3QgZGVw X211dHRlci5mb3VuZCgpCistICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXIt NCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2Rl cF9ncmFwaGVuZSA9IGRlcGVuZGVuY3koJ2dyYXBoZW5lLWdvYmplY3QtMS4wJywgdmVyc2lvbjog Jz49IDEuMTAnKQorK2RlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNycsIHZlcnNp b246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2lmIGRlcF9tdXR0 ZXIuZm91bmQoKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hB VkVfTVVUVEVSXzcnXQorKyAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTcgQUJJIGZy b20gR05PTUUgMy4zOCcpCisrICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci03JworK2Vsc2UK KysgICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci02JywgdmVyc2lvbjogZ25v bWVfbWluaW11bV92ZXJzaW9uKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBb Jy1EJywgJ0hBVkVfTVVUVEVSXzYnXQorICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAg ICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNCBBQkkgZnJvbSBHTk9NRSAzLjMyJykK Ky0gICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci00JworLSAgICBlbHNlCistICAgICAg ICBkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTUnLCB2ZXJzaW9uOiBnbm9tZV9t aW5pbXVtX3ZlcnNpb24pCistICAgICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAg ICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTUgQUJJIGZyb20gR05PTUUgMy4zNCcp CistICAgICAgICAgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTUnCistICAgICAgICAgICAg YnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX01VVFRFUl81J10KKy0g ICAgICAgIGVuZGlmCisrICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTYgQUJJ IGZyb20gR05PTUUgMy4zNicpCisrICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNicK KyAgICAgZW5kaWYKKyBlbmRpZgorIAorQEAgLTQyLDggKzQwLDggQEAgYnVkZ2llX3dtX2RlcHMg PSBbCisgICAgIGRlcF9pYnVzLAorIF0KKyAKKy1pZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9u X2NvbXBhcmUoJz49My4zMS45MScpCistICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9 IFsnLUQnLCAnSEFWRV9HU0RfMzMyJ10KKytpZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2Nv bXBhcmUoJz49My4zNi4wJykKKysgICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyct RCcsICdIQVZFX0dTRF9TVVBQT1JURUQnXQorIGVuZGlmCisgCisgYnVkZ2llX3dtX3ZhbGFfYXJn cyA9ICBbCitAQCAtNjAsNyArNTgsNyBAQCBidWRnaWVfd21fdmFsYV9hcmdzID0gIFsKKyAKKyBy cGF0aCA9ICcnCisgCistaWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+ PTMuMjguMCcpCisraWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMu MzYuMCcpCisgICAgIHJwYXRoID0gZGVwX211dHRlci5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCd0 eXBlbGliZGlyJykKKyAgICAgYnVkZ2llX3dtX3ZhbGFfYXJncyArPSBbJy0tZ2lyZGlyJywgcnBh dGhdCisgZW5kaWYKK2RpZmYgLS1naXQgc3JjL3dtL3NoaW0udmFsYSBzcmMvd20vc2hpbS52YWxh CitpbmRleCA0Y2RmYTBiMC4uZmMyNGIyODkgMTAwNjQ0CistLS0gc3JjL3dtL3NoaW0udmFsYQor KysrIHNyYy93bS9zaGltLnZhbGEKK0BAIC0xNCw3ICsxNCw3IEBAIG5hbWVzcGFjZSBCdWRnaWUg eworIHB1YmxpYyBzdHJ1Y3QgR3NkQWNjZWwgeworICAgICBzdHJpbmcgYWNjZWxlcmF0b3I7Cisg ICAgIHVpbnQgZmxhZ3M7CistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JU RUQKKyAgICAgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFnczsKKyAjZW5kaWYKKyB9CitA QCAtMTkzLDExICsxOTMsNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xpYi5PYmplY3QK KyAgICAgICAgIG9zZF9wcm94eSA9IG51bGw7CisgICAgIH0KKyAKKy0jaWYgSEFWRV9NVVRURVJf NQorICAgICBwcml2YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0aW9u LCBDbHV0dGVyLklucHV0RGV2aWNlIGRldiwgdWludCBkZXZpY2VfaWQpCistI2Vsc2UKKy0gICAg cHJpdmF0ZSB2b2lkIG9uX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCh1aW50IGFjdGlvbiwgdWludCBk ZXZpY2VfaWQpCistI2VuZGlmCisgICAgIHsKKyAgICAgICAgIEhhc2hUYWJsZTxzdHJpbmcsVmFy aWFudD4gcGFyYW1zID0gbmV3IEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFudD4oc3RyX2hhc2gsIHN0 cl9lcXVhbCk7CisgCitAQCAtMjMwLDcgKzIyNiw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0g OiBHTGliLk9iamVjdAorICAgICAgICAgfQorICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgor KyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgcHJpdmF0ZSB1aW50IF9ncmFiKHN0cmluZyBz ZW5kZXIsIHN0cmluZyBzZXEsIHVpbnQgZmxhZywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9m bGFncykKKyAgICAgeworICAgICAgICAgdmFyIHJldCA9IGRpc3BsYXkuZ3JhYl9hY2NlbGVyYXRv cihzZXEsIGdyYWJfZmxhZ3MpOworQEAgLTI3Myw3ICsyNjksNyBAQCBwdWJsaWMgY2xhc3MgU2hl bGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgICAgICBvbl9idXNfYWNxdWlyZWQsIG51bGws IG51bGwpOworICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQ T1JURUQKKyAgICAgcHVibGljIHVpbnQgR3JhYkFjY2VsZXJhdG9yKEJ1c05hbWUgc2VuZGVyLCBz dHJpbmcgYWNjZWxlcmF0b3IsIHVpbnQgZmxhZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGdyYWJf ZmxhZ3MpCisgICAgIHsKKyAgICAgICAgIHJldHVybiBfZ3JhYihzZW5kZXIsIGFjY2VsZXJhdG9y LCBmbGFncywgZ3JhYl9mbGFncyk7CitkaWZmIC0tZ2l0IHNyYy93bS93bS52YWxhIHNyYy93bS93 bS52YWxhCitpbmRleCBmZWU4OTQ0My4uYmNjZjNiOTUgMTAwNjQ0CistLS0gc3JjL3dtL3dtLnZh bGEKKysrKyBzcmMvd20vd20udmFsYQorQEAgLTEzNyw4ICsxMzcsOCBAQCBwdWJsaWMgY2xhc3Mg QnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICBwdWJsaWMgc3RhdGljIHN0cmluZ1tdPyBvbGRf YXJnczsKKyAgICAgcHVibGljIHN0YXRpYyBib29sIHdheWxhbmQgPSBmYWxzZTsKKyAKKy0gICAg c3RhdGljIENsdXR0ZXIuUG9pbnQgUFZfQ0VOVEVSOworLSAgICBzdGF0aWMgQ2x1dHRlci5Qb2lu dCBQVl9OT1JNOworKyAgICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfQ0VOVEVSOworKyAgICBz dGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfTk9STTsKKyAKKyAgICAgcHJpdmF0ZSBNZXRhLkJhY2tn cm91bmRHcm91cD8gYmFja2dyb3VuZF9ncm91cDsKKyAKK0BAIC0xNzEsMTAgKzE3MSwxMCBAQCBw dWJsaWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICAgICAgICAgIGxpY2Vuc2Ug PSAiR1BMLTIuMCIsCisgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiQnVkZ2llIFdpbmRvdyBN YW5hZ2VyIgorICAgICAgICAgfTsKKy0gICAgICAgIFBWX0NFTlRFUiA9IENsdXR0ZXIuUG9pbnQu YWxsb2MoKTsKKysgICAgICAgIFBWX0NFTlRFUiA9IEdyYXBoZW5lLlBvaW50KCk7CisrICAgICAg ICBQVl9OT1JNID0gR3JhcGhlbmUuUG9pbnQoKTsKKyAgICAgICAgIFBWX0NFTlRFUi54ID0gMC41 ZjsKKyAgICAgICAgIFBWX0NFTlRFUi55ID0gMC41ZjsKKy0gICAgICAgIFBWX05PUk0gPSBDbHV0 dGVyLlBvaW50LmFsbG9jKCk7CisgICAgICAgICBQVl9OT1JNLnggPSAwLjBmOworICAgICAgICAg UFZfTk9STS55ID0gMC4wZjsKKyAgICAgfQorQEAgLTEwMDEsNyArMTAwMSw3IEBAIHB1YmxpYyBj bGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICB0aWxlX3ByZXZpZXcuc2V0KCJz Y2FsZS14IiwgTk9USUZJQ0FUSU9OX01BUF9TQ0FMRV9YLCAic2NhbGUteSIsIE5PVElGSUNBVElP Tl9NQVBfU0NBTEVfWSwKKyAgICAgICAgICAgICAicGl2b3QtcG9pbnQiLCBQVl9DRU5URVIpOwor IAorLSAgICAgICAgdGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisrICAgICAgICAvL3Rp bGVfcHJldmlldy5sb3dlcih3aW5fYWN0b3IpOworICAgICAgICAgdGlsZV9wcmV2aWV3LnRpbGVf cmVjdCA9IHRpbGVfcmVjdDsKKyAKKyAgICAgICAgIHRpbGVfcHJldmlldy5zaG93KCk7CitkaWZm IC0tZ2l0IHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRhIHZhcGkvQ2x1dHRlci02Lm1ldGFkYXRhCitz aW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRh CityZW5hbWUgdG8gdmFwaS9DbHV0dGVyLTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9DbHV0 dGVyLTQubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTcubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXgg NzglCityZW5hbWUgZnJvbSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkv Q2x1dHRlci03Lm1ldGFkYXRhCitpbmRleCA1YzIxMmU4NS4uMTg1NTI3NGQgMTAwNjQ0CistLS0g dmFwaS9DbHV0dGVyLTQubWV0YWRhdGEKKysrKyB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorQEAg LTEsMTMgKzEsMTAgQEAKKyAvLyBOb24gbWluaS1vYmplY3QKKyBBY3RvckJveCBzdHJ1Y3QKKyBD b2xvciBzdHJ1Y3QKKy1Gb2cgc3RydWN0CistR2VvbWV0cnkgc3RydWN0CisgS25vdCBzdHJ1Y3QK KyBQYXRoTm9kZSBzdHJ1Y3QKKyBQZXJzcGVjdGl2ZSBzdHJ1Y3QKKyBVbml0cyBzdHJ1Y3QKKy1W ZXJ0ZXggc3RydWN0CisgCisgKi5yZWYgdW5vd25lZAorIAorQEAgLTE3LDcgKzE0LDYgQEAgaW5p dF93aXRoX2FyZ3MKKyBBY3RvcgorIAkuYXBwbHlfdHJhbnNmb3JtLm1hdHJpeCByZWYKKyAJLmdl dF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcy52ZXJ0cyBvdXQ9ZmFsc2UKKy0JLmdldF9hbGxvY2F0 aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQorIENhbnZhcworIAkubmV3IHN5bWJvbF90eXBl PSJjb25zdHJ1Y3RvciIKKyBFdmVudC50eXBlI21ldGhvZCBuYW1lPSJnZXRfdHlwZSIKK0BAIC0y Nyw3ICsyMyw2IEBAIEltYWdlCisgLy8gPz8/CisgQWN0b3IuaGFzX3BvaW50ZXIjbWV0aG9kIG5h bWU9ImdldF9oYXNfcG9pbnRlciIKKyBJbml0RXJyb3IgZXJyb3Jkb21haW49ZmFsc2UKKy1yZWRy YXcgc2tpcAorIAorIC8vIE5vdCBhbGwgYmFja2luZyBzeW1ib2xzIGFyZSBkZXByZWNhdGVkCisg QWN0b3IucGljayBkZXByZWNhdGVkPWZhbHNlCitAQCAtNTUsNyArNTAsNiBAQCBDb250YWluZXIK KyAJLmxvd2VyIHZpcnR1YWwKKyAJLnJhaXNlIHZpcnR1YWwKKyAJLipfY2hpbGRfbWV0YSN2aXJ0 dWFsX21ldGhvZCB2aXJ0dWFsCistCS5mb3JlYWNoX3dpdGhfaW50ZXJuYWxzI3ZpcnR1YWxfbWV0 aG9kIHZpcnR1YWwKKyAKKyAvLyBEZWZhdWx0IHZhbHVlcworIENvbnRhaW5lcgorQEAgLTcwLDMy ICs2NCwyMSBAQCBUZXh0CisgLy8gUmVwYXJlbnRlZCBmdW5jcyBtZXRob2RzIGNhbid0IGJlIGlu c3RhbmNlIG1ldGhvZHMKKyBmZWF0dXJlX2F2YWlsYWJsZSBza2lwCisgZmVhdHVyZV9nZXRfYWxs IHNraXAKKy1GZWF0dXJlRmxhZ3MudGV4dHVyZV9ucG90IHNraXAKKyAKKyAvLyBTa2lwcGVkIGJ5 IGctaSBmb3IgdW5rbm93biByZWFzb25zCisgTGF5b3V0TWFuYWdlcgorIAkuY3JlYXRlX2NoaWxk X21ldGEgc2tpcD1mYWxzZQorLU1vZGVsCistCS5pbnNlcnRfcm93IHNraXA9ZmFsc2UKKyAKKyAv LyBWYXJpYWRpYyBhcmd1bWVudHMKKy1BY3RvcgorLQkuYW5pbWF0ZSBza2lwPWZhbHNlCistCS5h bmltYXRlX3dpdGhfYWxwaGEgc2tpcD1mYWxzZQorLQkuYW5pbWF0ZV93aXRoX3RpbWVsaW5lIHNr aXA9ZmFsc2UKKy1BbmltYXRvcgorLQkuc2V0IHNraXA9ZmFsc2UKKyBCb3gKKyAJLnBhY2sgc2tp cD1mYWxzZQorIAkucGFja19hZnRlciBza2lwPWZhbHNlCisgCS5wYWNrX2F0IHNraXA9ZmFsc2UK KyAJLnBhY2tfYmVmb3JlIHNraXA9ZmFsc2UKKyBDb250YWluZXIKKy0JLmFkZF92YWxpc3Qgc2tp cD1mYWxzZQorIAkuY2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNl CisgCS5yZW1vdmUgc2tpcD1mYWxzZQorLQkucmVtb3ZlX3ZhbGlzdCBza2lwPWZhbHNlCisgSW50 ZXJ2YWwKKyAJLm5ldyBza2lwPWZhbHNlCisgCS5nZXRfaW50ZXJ2YWwgc2tpcD1mYWxzZQorQEAg LTEwNSwxNSArODgsNiBAQCBJbnRlcnZhbAorIExheW91dE1hbmFnZXIKKyAJLmNoaWxkX2dldCBz a2lwPWZhbHNlCisgCS5jaGlsZF9zZXQgc2tpcD1mYWxzZQorLUxpc3RNb2RlbAorLQkubmV3IHNr aXA9ZmFsc2UKKy1Nb2RlbAorLQkuYXBwZW5kIHNraXA9ZmFsc2UKKy0JLmluc2VydCBza2lwPWZh bHNlCistCS5wcmVwZW5kIHNraXA9ZmFsc2UKKy1Nb2RlbEl0ZXIKKy0JLmdldCBza2lwPWZhbHNl CistCS5zZXQgc2tpcD1mYWxzZQorIFNjcmlwdAorIAkuZ2V0X29iamVjdHMgc2tpcD1mYWxzZQor IAorQEAgLTEyMiwxNyArOTYsMTEgQEAgVGV4dHVyZQorIAkubmV3X2Zyb21fZmlsZSB0aHJvd3M9 IkNsdXR0ZXIuVGV4dHVyZUVycm9yIgorIAorIC8vIFNraXBwZWQgdXBzdHJlYW0gZm9yIHVua25v d24gcmVhc29ucworLUFscGhhLnJlZ2lzdGVyX2Z1bmMgc2tpcD1mYWxzZQorLVRpbWVvdXRQb29s IHNraXA9ZmFsc2UKKyBJbnRlcnZhbC5yZWdpc3Rlcl9wcm9ncmVzc19mdW5jIHNraXA9ZmFsc2UK Ky1mcmFtZV9zb3VyY2VfKiBza2lwPWZhbHNlCisgZ2V0X29wdGlvbl9ncm91cCBza2lwPWZhbHNl CisgZ2V0X29wdGlvbl9ncm91cF93aXRob3V0X2luaXQgc2tpcD1mYWxzZQorLXRocmVhZHNfYWRk X2ZyYW1lX3NvdXJjZSBza2lwPWZhbHNlCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlX2Z1bGwg c2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGUgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lk bGVfZnVsbCBza2lwPWZhbHNlCistdGhyZWFkc19zZXRfbG9ja19mdW5jdGlvbnMgc2tpcD1mYWxz ZQorIHRocmVhZHNfYWRkX3RpbWVvdXQgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX3RpbWVvdXRf ZnVsbCBza2lwPWZhbHNlCisgCitAQCAtMTQzLDE1ICsxMTEsMTIgQEAgQWN0b3JCb3gKKyBVbml0 cy5mcm9tXyogc2tpcAorIENvbG9yCisgCS5uZXcgc2tpcAorLVZlcnRleC5uZXcgc2tpcAorIAor IC8vIENsYXNzIG1ldGhvZHMKKyBjb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSBz a2lwCisgY29udGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVydGllcyBza2lwCisgCisgLy8g TW92ZSBzeW1ib2xzCistZ2V0X2FjdG9yX2J5X2dpZCBwYXJlbnQ9IkNsdXR0ZXIuQWN0b3IiIG5h bWU9ImdldF9ieV9naWQiCistZ2V0X2lucHV0X2RldmljZV9mb3JfaWQgcGFyZW50PSJDbHV0dGVy LklucHV0RGV2aWNlIiBuYW1lPSJnZXRfZm9yX2lkIgorIHVuaXRzX2Zyb21fKiBza2lwCisgCisg Ly8gQ2xhc3NlcyBtYXJrZWQgYXMgb3V0IGJ1dCBub3QgZG91YmxlIHB0cgorQEAgLTIwMiwyMyAr MTY3LDE1IEBAIFBBVEhfUkVMQVRJVkUgc2tpcD1mYWxzZQorIFBSSU9SSVRZX1JFRFJBVyBza2lw PWZhbHNlCisgCisgLy8gQ2x1dHRlciBkZXZzIGRvbid0IGxpa2UgdXMgY3JlYXRpbmcgbmVzdGVk IG5hbWVzcGFjZXMKKy1mcmFtZV9zb3VyY2VfKiBuYW1lPSJmcmFtZV9zb3VyY2VfKC4rKSIgcGFy ZW50PSJDbHV0dGVyLkZyYW1lU291cmNlIgorIHZhbHVlXyogbmFtZT0idmFsdWVfKC4rKSIgcGFy ZW50PSJDbHV0dGVyLlZhbHVlIgorIHRocmVhZHNfKiBuYW1lPSJ0aHJlYWRzXyguKykiIHBhcmVu dD0iQ2x1dHRlci5UaHJlYWRzIgorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZSBuYW1lPSJhZGQi IHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLkZyYW1lU291cmNlIgorLXRocmVhZHNfYWRkX2ZyYW1l X3NvdXJjZV9mdWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5GcmFt ZVNvdXJjZSIKKyB0aHJlYWRzX2FkZF9pZGxlIG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRo cmVhZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF9pZGxlX2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVu dD0iQ2x1dHRlci5UaHJlYWRzLklkbGUiCisgdGhyZWFkc19hZGRfdGltZW91dCBuYW1lPSJhZGQi IHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLlRpbWVvdXQiCisgdGhyZWFkc19hZGRfdGltZW91dF9m dWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5UaW1lb3V0IgorLXV0 aWxfbmV4dF9wMiBuYW1lPSJuZXh0X3Bvd2VyX29mXzIiIHBhcmVudD0iQ2x1dHRlci5VdGlsIgor IAorIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CisgQ29sb3IuYWxsb2Mgc3ltYm9sX3R5cGU9 ImZ1bmN0aW9uIgorLVBvaW50LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1SZWN0LmFs bG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1TaXplLmFsbG9jIHN5bWJvbF90eXBlPSJmdW5j dGlvbiIKKy1WZXJ0ZXguYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorIAorIEJpbkFsaWdu bWVudCBkZXByZWNhdGVkPWZhbHNlIGRlcHJlY2F0ZWRfc2luY2U9bnVsbAorIEJpbkFsaWdubWVu dC4qIGRlcHJlY2F0ZWQKK2RpZmYgLS1naXQgdmFwaS9Db2dsLTQubWV0YWRhdGEgdmFwaS9Db2ds LTYubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9Db2ds LTQubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NvZ2wtNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2 YXBpL0NvZ2wtNS5tZXRhZGF0YSB2YXBpL0NvZ2wtNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRl eCA5MSUKK3JlbmFtZSBmcm9tIHZhcGkvQ29nbC01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9D b2dsLTcubWV0YWRhdGEKK2luZGV4IDA5MmI1ZTI5Li5lNTJiZmEzNSAxMDA2NDQKKy0tLSB2YXBp L0NvZ2wtNS5tZXRhZGF0YQorKysrIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitAQCAtOSwxMiArOSwx MCBAQCBjcmVhdGVfc2hhZGVyIHNraXAKKyAKKyAKKyBpc19iaXRtYXAgc2tpcAorLWlzX21hdGVy aWFsIHNraXAKKyBpc19vZmZzY3JlZW4gc2tpcAorIGlzX3Byb2dyYW0gc2tpcAorIGlzX3NoYWRl ciBza2lwCisgaXNfdGV4dHVyZSBza2lwCistaXNfdmVydGV4X2J1ZmZlciBza2lwCisgCisgTWF0 cml4IHN0cnVjdAorICAgLmdldF9hcnJheSBhcnJheT10cnVlIGFycmF5X2xlbmd0aF9pZHg9LTEK K2RpZmYgLS1naXQgdmFwaS9NZXRhLTMubWV0YWRhdGEgdmFwaS9NZXRhLTMubWV0YWRhdGEKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMzcwZDQ5OTYuLjAwMDAwMDAwCistLS0gdmFw aS9NZXRhLTMubWV0YWRhdGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDY2ICswLDAgQEAKKy1CYWNr ZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCistQmFja2dyb3VuZCBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC5oIgorLUJhY2tncm91bmRBY3Rv ciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorLUJhY2tn cm91bmRHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o IgorLUJhY2tncm91bmRJbWFnZUNhY2hlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgiCistRGlzcGxheSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Rpc3BsYXku aCIKKy1NZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorLU1vbml0b3JNYW5hZ2Vy IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIKKy1SZWN0YW5n bGUgc3RydWN0CistUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIK Ky1QbHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1wcmVm c18qIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgor LWFkZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy14MTFfZXJyb3JfdHJh cF9wb3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LXgxMV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZXh0ZXJuYWxfYmluZGlu Z19uYW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9sb2NhbGVfZGly ZWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1nZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLWdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1pc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3N5bmNpbmcgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3ZlcmJvc2UgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3dheWxh bmRfY29tcG9zaXRvciBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistbGF0ZXJfYWRkIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy1sYXRlcl9yZW1vdmUgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLXBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1wdXNoX25vX21zZ19wcmVmaXggcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlY3QgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlbW92ZV92 ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9uZ19lcXVh bCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5z aWduZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50 PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIKKy1nZXRfd2luZG93X2FjdG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF93aW5kb3dfZ3JvdXBf Zm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxh eSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIgorLWdldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1l dGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IgorLWRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRv ciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWVuYWJsZV91 bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lv biBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29t cG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWZv Y3VzX3N0YWdlX3dpbmRvdyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXN0YWdlX2lzX2ZvY3VzZWQgcGFyZW50PSJN ZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIKKy1rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIgcGFyZW50PSJNZXRhLktleUJpbmRp bmciIG5hbWU9InNldF9jdXN0b21faGFuZGxlciIKKy1LZXlIYW5kbGVyRnVuYy5ldmVudCB0eXBl PSJDbHV0dGVyLktleUV2ZW50PyIKKy1nZXRfYmFja2VuZCBwYXJlbnQ9Ik1ldGEuQmFja2VuZCIK Ky1XaW5kb3cuZm9jdXMjc2lnbmFsIHNraXA9dHJ1ZQorLVdpbmRvdy5nZXRfeHdpbmRvdyBza2lw PWZhbHNlCistZ2V0X29wdGlvbl9jb250ZXh0IHNraXA9ZmFsc2UKKy1zZXRfZ25vbWVfd21fa2V5 YmluZGluZ3Mgc2tpcD1mYWxzZQorLXNldF93bV9uYW1lIHNraXA9ZmFsc2UKKy1pbml0IHNraXA9 ZmFsc2UKKy1ydW4gc2tpcD1mYWxzZQorLXNob3dfZGlhbG9nIHNraXA9ZmFsc2UKKy1nZXRfYmFj a2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorZGlmZiAtLWdpdCB2 YXBpL01ldGEtNS5tZXRhZGF0YSB2YXBpL01ldGEtNi5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRl eCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL01ldGEtNS5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkv TWV0YS02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS00Lm1ldGFkYXRhIHZhcGkvTWV0 YS03Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDc2JQorcmVuYW1lIGZyb20gdmFwaS9NZXRh LTQubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL01ldGEtNy5tZXRhZGF0YQoraW5kZXggYWUyYTc4 MTcuLjcyNjI5ZmJhIDEwMDY0NAorLS0tIHZhcGkvTWV0YS00Lm1ldGFkYXRhCisrKysgdmFwaS9N ZXRhLTcubWV0YWRhdGEKK0BAIC0xLDI2ICsxLDIxIEBACisgQmFja2VuZCBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorIEJhY2tncm91bmQgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9tZXRhLWJhY2tncm91bmQuaCIKKyBCYWNrZ3JvdW5kQWN0b3IgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIKKytCYWNrZ3JvdW5kQ29udGVudCBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1jb250ZW50LmgiCisgQmFja2dyb3Vu ZEdyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiCisg QmFja2dyb3VuZEltYWdlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgiCisgQmFja2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCIKKyBCYXJyaWVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYmFy cmllci5oIgorIEJhcnJpZXJFdmVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JhcnJpZXIuaCIK Ky1Cb3hlcyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JveGVzLmgiCisgQ2xvc2VEaWFsb2cgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIgorLUNvbXBvc2l0b3IgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLmgiCistQ29tcG9zaXRvck11dHRlciBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgQ3Vyc29yVHJhY2tlciBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCIKKyBEaXNwbGF5IGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvZGlzcGxheS5oIgorIERuZCBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL21ldGEtZG5kLmgiCistR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9ncm91cC5oIgor IElkbGVNb25pdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIK KyBJbmhpYml0U2hvcnRjdXRzRGlhbG9nIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCIKKy1LZXliaW5kaW5ncyBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL2tleWJpbmRpbmdzLmgiCisgTGF1bmNoQ29udGV4dCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCIKKyBNZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFp bi5oIgorIE1vbml0b3JNYW5hZ2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCIKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5o IgorIFByZWZlcmVuY2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIgorIFJlbW90ZUFj Y2Vzc0NvbnRyb2xsZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oIgorIFJlbW90ZUFjY2Vzc0hhbmRsZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiCitAQCAtMzEsOSArMjYsNyBAQCBTb3Vu ZFBsYXllciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiCisgU3Rh Z2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXN0YWdlLmgiCisgU3RhcnR1cE5vdGlmaWNh dGlvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIK KyBUaGVtZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3RoZW1lLmgiCistVHlwZXMgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS90eXBlcy5oIgorLVV0aWwgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCistVmVyc2lvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtdmVyc2lvbi5oIgorK1dh eWxhbmRDbGllbnQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdheWxhbmQtY2xpZW50Lmgi CisgV2luZG93IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvd2luZG93LmgiCisgV2luZG93QWN0b3Ig Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIgorIFdpbmRvd0dyb3Vw IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIKK0BAIC00NiwxNyAr MzksMTEgQEAgUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBQ bHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBwcmVmc18q IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgorIGFk ZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9w b3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgx MV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZXh0ZXJuYWxfYmluZGluZ19u YW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdldF9sb2NhbGVfZGlyZWN0 aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1n ZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorIGdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBpc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX3N5bmNpbmcgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorQEAgLTY4LDEzICs1NSw4IEBA IHBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKyBwdXNoX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJlY3QgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJlbW92ZV92ZXJib3NlX3RvcGljIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zZXRfc3RhZ2VfaW5w dXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19oYXNoIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy12ZXJib3NlX3Jl YWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXdh cm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor IHNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKyBnZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBnZXRfd2luZG93X2Fj dG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorQEAgLTgzLDEwICs2NSw3IEBAIGdldF90b3Bfd2luZG93X2dyb3Vw X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhCisgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3Np dG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZGlzYWJs ZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZW5hYmxlX3VucmVkaXJlY3Rf Zm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0i TWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZm9jdXNfc3RhZ2Vf d2luZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29tcG9z aXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGtleWJp bmRpbmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFtZT0i c2V0X2N1c3RvbV9oYW5kbGVyIgorIEtleUhhbmRsZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0ZXIu S2V5RXZlbnQ/IgorIGdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5CYWNrZW5kIgorZGlmZiAtLWdp dCB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGku c2gKK2luZGV4IDZiMDcwMjQwLi5iMjMzZTU4NiAxMDA3NTUKKy0tLSB2YXBpL2dlbmVyYXRlLW11 dHRlci12YXBpLnNoCisrKysgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAorQEAgLTEsNyAr MSw3IEBACisgIyEvYmluL2Jhc2gKKyBzZXQgLXhlCisgCistdmVyc2lvbj0kezEtNH0KKyt2ZXJz aW9uPSR7Ni03fQorIGdpcmRpcj0kKHBrZy1jb25maWcgbGlibXV0dGVyLSR2ZXJzaW9uIC0tdmFy aWFibGU9Z2lyZGlyKQorIAorIGNkICQoZGlybmFtZSAkMCkKK2RpZmYgLS1naXQgdmFwaS9ncmFw aGVuZS1nb2JqZWN0LTEuMC52YXBpIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi42OTgwMTUzNQorLS0tIC9kZXYvbnVs bAorKysrIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorQEAgLTAsMCArMSw2OTEgQEAK KysvKiBncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBu b3QgbW9kaWZ5LiAqLworKworK1tDQ29kZSAoY3ByZWZpeCA9ICJHcmFwaGVuZSIsIGdpcl9uYW1l c3BhY2UgPSAiR3JhcGhlbmUiLCBnaXJfdmVyc2lvbiA9ICIxLjAiLCBsb3dlcl9jYXNlX2NwcmVm aXggPSAiZ3JhcGhlbmVfIildCisrbmFtZXNwYWNlIEdyYXBoZW5lIHsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2Jv eF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9ib3hfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEJveCB7CisrCQlwdWJsaWMgYm9vbCBj b250YWluc19ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3Bv aW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5Cb3g/IGVtcHR5ICgpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkJv eCBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kIChHcmFwaGVuZS5Qb2ludDNEIHBv aW50KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3NjYWxhciAoZmxvYXQgc2NhbGFy KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdmVj KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgZ2V0X2JvdW5kaW5nX3NwaGVyZSAoKTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQg Z2V0X2RlcHRoICgpOworKwkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMg R3JhcGhlbmUuUG9pbnQzRCBnZXRfbWF4ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qg Z2V0X21pbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9zaXplICgpOworKwkJcHVi bGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVm IEdyYXBoZW5lLlZlYzMgdmVydGljZXNbOF0pOworKwkJcHVibGljIGZsb2F0IGdldF93aWR0aCAo KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluZmluaXRlICgpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0IChHcmFwaGVuZS5Qb2ludDNEPyBt aW4sIEdyYXBoZW5lLlBvaW50M0Q/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5C b3g/IGluaXRfZnJvbV9ib3ggKEdyYXBoZW5lLkJveCBzcmMpOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuQm94PyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFt ZSA9ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBl ID0gImd1aW50IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gbWluLCBHcmFw aGVuZS5WZWMzPyBtYXgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zy b21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJy YXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhl bmUuVmVjM1tdIHZlY3RvcnMpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChHcmFwaGVu ZS5Cb3ggYiwgb3V0IEdyYXBoZW5lLkJveCByZXMpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLkJveD8gbWludXNfb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdy YXBoZW5lLkJveD8gb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJv eD8gb25lX21pbnVzX29uZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggdW5pb24gKEdyYXBo ZW5lLkJveCBiKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IHplcm8g KCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gImdyYXBoZW5lX2V1bGVyX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2V1bGVy X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0 cnVjdCBFdWxlciB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuRXVsZXIgYik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Jl dGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdl dF9nYW1tYSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlck9yZGVyIGdldF9vcmRlciAoKTsK KysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVy PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyPyBzcmMpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9tYXRyaXggKEdyYXBoZW5l Lk1hdHJpeD8gbSwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5p b24/IHEsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fcmFk aWFucyAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRl cik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3ZlYzMgKEdy YXBoZW5lLlZlYzM/IHYsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfd2l0aF9vcmRlciAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhlbmUu RXVsZXIgcmVvcmRlciAoR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3Jh cGhlbmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiB0b19xdWF0ZXJuaW9uICgpOworKwkJcHVi bGljIEdyYXBoZW5lLlZlYzMgdG9fdmVjMyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZnJ1c3R1bV90 IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9mcnVzdHVtX2dldF90eXBlICgpIildCisrCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBGcnVzdHVtIHsKKysJCXB1YmxpYyBi b29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5GcnVzdHVt IGIpOworKwkJcHVibGljIHZvaWQgZ2V0X3BsYW5lcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIHJlZiBHcmFwaGVuZS5QbGFuZSBwbGFuZXNbNl0pOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuRnJ1c3R1bT8gaW5pdCAoR3JhcGhlbmUuUGxhbmUgcDAsIEdyYXBoZW5lLlBsYW5l IHAxLCBHcmFwaGVuZS5QbGFuZSBwMiwgR3JhcGhlbmUuUGxhbmUgcDMsIEdyYXBoZW5lLlBsYW5l IHA0LCBHcmFwaGVuZS5QbGFuZSBwNSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVz dHVtPyBpbml0X2Zyb21fZnJ1c3R1bSAoR3JhcGhlbmUuRnJ1c3R1bSBzcmMpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0 cml4IG1hdHJpeCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX2JveCAoR3JhcGhlbmUuQm94 IGJveCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJl IHNwaGVyZSk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdv YmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX21hdHJpeF90IiwgdHlwZV9pZCA9ICJncmFwaGVu ZV9tYXRyaXhfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBNYXRyaXggeworKwkJcHVi bGljIGJvb2wgZGVjb21wb3NlIChvdXQgR3JhcGhlbmUuVmVjMyB0cmFuc2xhdGUsIG91dCBHcmFw aGVuZS5WZWMzIHNjYWxlLCBvdXQgR3JhcGhlbmUuUXVhdGVybmlvbiByb3RhdGUsIG91dCBHcmFw aGVuZS5WZWMzIHNoZWFyLCBvdXQgR3JhcGhlbmUuVmVjNCBwZXJzcGVjdGl2ZSk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZGV0ZXJtaW5hbnQgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBo ZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMg Ym9vbCBlcXVhbF9mYXN0IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfcm93ICh1aW50IGluZGV4Xyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ZhbHVl ICh1aW50IHJvdywgdWludCBjb2wpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIGZsb2F0IGdldF94X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeF90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV9zY2FsZSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3lfdHJhbnNsYXRpb24g KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3pf c2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF96X3RyYW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fMmQgKGRvdWJsZSB4eCwg ZG91YmxlIHl4LCBkb3VibGUgeHksIGRvdWJsZSB5eSwgZG91YmxlIHhfMCwgZG91YmxlIHlfMCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5NYXRyaXg/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IGZsb2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4 IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHYwLCBHcmFwaGVu ZS5WZWM0IHYxLCBHcmFwaGVuZS5WZWM0IHYyLCBHcmFwaGVuZS5WZWM0IHYzKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8g aW5pdF9mcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9h dCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2lkZW50aXR5 ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuTWF0cml4PyBpbml0X2xvb2tfYXQgKEdyYXBoZW5lLlZlYzMgZXllLCBHcmFwaGVuZS5W ZWMzIGNlbnRlciwgR3JhcGhlbmUuVmVjMyB1cCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfb3J0aG8gKGZsb2F0 IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCB0b3AsIGZsb2F0IGJvdHRvbSwgZmxvYXQgel9uZWFy LCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZs b2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcm90 YXRlIChmbG9hdCBhbmdsZSwgR3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9zY2Fs ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfc2tldyAoZmxvYXQg eF9za2V3LCBmbG9hdCB5X3NrZXcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3RyYW5zbGF0ZSAoR3JhcGhlbmUu UG9pbnQzRCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5NYXRyaXggaW50ZXJwb2xhdGUgKEdyYXBoZW5lLk1hdHJpeCBiLCBkb3VibGUgZmFjdG9y KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGludmVyc2Ug KG91dCBHcmFwaGVuZS5NYXRyaXggcmVzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBib29sIGlzXzJkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGJvb2wgaXNfYmFja2ZhY2VfdmlzaWJsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfc2luZ3VsYXIgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IG11bHRpcGx5 IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJ cHVibGljIGJvb2wgbmVhciAoR3JhcGhlbmUuTWF0cml4IGIsIGZsb2F0IGVwc2lsb24pOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCBub3Jt YWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuTWF0cml4IHBlcnNwZWN0aXZlIChmbG9hdCBkZXB0aCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBwcmludCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwcm9qZWN0X3BvaW50IChHcmFwaGVu ZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5RdWFkIHByb2plY3RfcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHByb2plY3RfcmVjdF9ib3Vu ZHMgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChH cmFwaGVuZS5FdWxlciBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChHcmFwaGVuZS5RdWF0ZXJuaW9uIHEpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3ggKGZsb2F0IGFu Z2xlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0 ZV95IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdm9pZCByb3RhdGVfeiAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IGZhY3Rvcl94LCBmbG9hdCBmYWN0b3Jf eSwgZmxvYXQgZmFjdG9yX3opOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHZvaWQgc2tld194eSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeHogKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3X3l6IChmbG9hdCBmYWN0b3Ip OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdG9fMmQgKG91 dCBkb3VibGUgeHgsIG91dCBkb3VibGUgeXgsIG91dCBkb3VibGUgeHksIG91dCBkb3VibGUgeXks IG91dCBkb3VibGUgeF8wLCBvdXQgZG91YmxlIHlfMCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIHJlZiBmbG9hdCB2WzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB0cmFuc2Zvcm1fYm91bmRzIChHcmFwaGVuZS5SZWN0IHIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLkJveCB0 cmFuc2Zvcm1fYm94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgdHJhbnNmb3JtX3BvaW50IChHcmFwaGVuZS5Q b2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludDNEIHRyYW5zZm9ybV9wb2ludDNkIChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheSB0cmFuc2Zvcm1f cmF5IChHcmFwaGVuZS5SYXkgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuUXVhZCB0cmFuc2Zvcm1fcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJh bnNmb3JtX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgdHJhbnNmb3JtX3ZlYzMgKEdyYXBoZW5l LlZlYzMgdik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjNCB0cmFuc2Zvcm1fdmVjNCAoR3JhcGhlbmUuVmVjNCB2KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQz RCBwb3MpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l Lk1hdHJpeCB0cmFuc3Bvc2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlw dWJsaWMgR3JhcGhlbmUuUG9pbnQzRCB1bnByb2plY3RfcG9pbnQzZCAoR3JhcGhlbmUuTWF0cml4 IG1vZGVsdmlldywgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bnRyYW5zZm9ybV9ib3VuZHMgKEdy YXBoZW5lLlJlY3QgciwgR3JhcGhlbmUuUmVjdCBib3VuZHMpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdW50cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5lLlBv aW50IHAsIEdyYXBoZW5lLlJlY3QgYm91bmRzLCBvdXQgR3JhcGhlbmUuUG9pbnQgcmVzKTsKKysJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiZ3JhcGhlbmVfcGxhbmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcGxhbmVfZ2V0X3R5 cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFBs YW5lIHsKKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7 CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUGxhbmUgYik7CisrCQlwdWJsaWMgZmxv YXQgZ2V0X2NvbnN0YW50ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X25vcm1hbCAo KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0IChHcmFwaGVuZS5WZWMz PyBub3JtYWwsIGZsb2F0IGNvbnN0YW50KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBs YW5lPyBpbml0X2Zyb21fcGxhbmUgKEdyYXBoZW5lLlBsYW5lIHNyYyk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5WZWMzIG5vcm1h bCwgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Q bGFuZT8gaW5pdF9mcm9tX3BvaW50cyAoR3JhcGhlbmUuUG9pbnQzRCBhLCBHcmFwaGVuZS5Qb2lu dDNEIGIsIEdyYXBoZW5lLlBvaW50M0QgYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Q bGFuZT8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5QbGFuZSBuZWdhdGUgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgbm9ybWFsaXpl ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Q bGFuZSB0cmFuc2Zvcm0gKEdyYXBoZW5lLk1hdHJpeCBtYXRyaXgsIEdyYXBoZW5lLk1hdHJpeD8g bm9ybWFsX21hdHJpeCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBo ZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50X3QiLCB0eXBlX2lkID0gImdy YXBoZW5lX3BvaW50X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJcHVibGljIHN0cnVjdCBQb2ludCB7CisrCQlwdWJsaWMgZmxvYXQgeDsKKysJCXB1YmxpYyBm bG9hdCB5OworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludCBiLCBvdXQg ZmxvYXQgZF94LCBvdXQgZmxvYXQgZF95KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVu ZS5Qb2ludCBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0IChmbG9h dCB4LCBmbG9hdCB5KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zy b21fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gaW5pdF9mcm9tX3ZlYzIgKEdy YXBoZW5lLlZlYzIgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBpbnRlcnBvbGF0ZSAo R3JhcGhlbmUuUG9pbnQgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBuZWFyIChH cmFwaGVuZS5Qb2ludCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHRvX3ZlYzIgKCk7CisrCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3Bv aW50M2RfdCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJwb2ludDNkIiwgdHlwZV9pZCA9ICJncmFw aGVuZV9wb2ludDNkX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJcHVibGljIHN0cnVjdCBQb2ludDNEIHsKKysJCXB1YmxpYyBmbG9hdCB4OworKwkJcHVibGlj IGZsb2F0IHk7CisrCQlwdWJsaWMgZmxvYXQgejsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNE IGNyb3NzIChHcmFwaGVuZS5Qb2ludDNEIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFw aGVuZS5WZWMzIGRlbHRhKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlBvaW50M0Qg Yik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdF9mcm9tX3BvaW50 IChHcmFwaGVuZS5Qb2ludDNEIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2lu dDNEPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyB2KTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludDNEIGludGVycG9sYXRlIChHcmFwaGVuZS5Qb2ludDNEIGIsIGRvdWJsZSBmYWN0b3Ip OworKwkJcHVibGljIGZsb2F0IGxlbmd0aCAoKTsKKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBo ZW5lLlBvaW50M0QgYiwgZmxvYXQgZXBzaWxvbik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQz RCBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMg R3JhcGhlbmUuUG9pbnQzRCBub3JtYWxpemVfdmlld3BvcnQgKEdyYXBoZW5lLlJlY3Qgdmlld3Bv cnQsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 M0Qgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0b192ZWMz ICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IHplcm8gKCk7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gImdyYXBoZW5lX3F1YWRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcXVhZF9nZXRf dHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3Qg UXVhZCB7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBib3VuZHMgKCk7CisrCQlwdWJsaWMgYm9v bCBjb250YWlucyAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5Qb2ludD8gZ2V0X3BvaW50ICh1aW50IGluZGV4Xyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5RdWFkPyBpbml0IChHcmFwaGVuZS5Qb2ludCBwMSwgR3JhcGhlbmUuUG9pbnQgcDIsIEdy YXBoZW5lLlBvaW50IHAzLCBHcmFwaGVuZS5Qb2ludCBwNCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBpbml0X2Zyb21fcG9p bnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQgcG9pbnRz WzRdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXRfZnJvbV9yZWN0IChH cmFwaGVuZS5SZWN0IHIpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9xdWF0ZXJuaW9uX3QiLCB0eXBlX2lk ID0gImdyYXBoZW5lX3F1YXRlcm5pb25fZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFF1YXRlcm5pb24geworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIGFkZCAoR3JhcGhl bmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlF1YXRlcm5p b24gYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXQgKGZsb2F0IHgsIGZsb2F0 IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVy bmlvbj8gaW5pdF9mcm9tX2FuZ2xlX3ZlYzMgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4 aXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX2Fu Z2xlcyAoZmxvYXQgZGVnX3gsIGZsb2F0IGRlZ195LCBmbG9hdCBkZWdfeik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9u PyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGUpOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IG0p OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3F1YXRl cm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24gc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9yYWRpYW5zIChmbG9hdCByYWRfeCwgZmxvYXQgcmFk X3ksIGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/ IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2lkZW50aXR5ICgpOworKwkJcHVibGljIEdyYXBoZW5l LlF1YXRlcm5pb24gaW52ZXJ0ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIG11bHRpcGx5IChHcmFwaGVuZS5RdWF0ZXJuaW9u IGIpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbm9ybWFsaXplICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHNj YWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gc2xlcnAg KEdyYXBoZW5lLlF1YXRlcm5pb24gYiwgZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lkIHRv X2FuZ2xlX3ZlYzMgKG91dCBmbG9hdCBhbmdsZSwgb3V0IEdyYXBoZW5lLlZlYzMgYXhpcyk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19hbmdsZXMgKG91 dCBmbG9hdCBkZWdfeCwgb3V0IGZsb2F0IGRlZ195LCBvdXQgZmxvYXQgZGVnX3opOworKwkJcHVi bGljIEdyYXBoZW5lLk1hdHJpeCB0b19tYXRyaXggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19yYWRpYW5zIChvdXQgZmxvYXQgcmFkX3gsIG91dCBm bG9hdCByYWRfeSwgb3V0IGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHRv X3ZlYzQgKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdv YmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3JheV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9y YXlfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMg c3RydWN0IFJheSB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmF5IGIpOworKwkJ cHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2Nsb3Nlc3RfcG9pbnRfdG9fcG9pbnQgKEdyYXBo ZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfZGlyZWN0aW9uICgp OworKwkJcHVibGljIGZsb2F0IGdldF9kaXN0YW5jZV90b19wbGFuZSAoR3JhcGhlbmUuUGxhbmUg cCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BvaW50IChHcmFwaGVuZS5Qb2lu dDNEIHApOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X29yaWdpbiAoKTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9wb3NpdGlvbl9hdCAoZmxvYXQgdCk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5SYXk/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IG9yaWdpbiwg R3JhcGhlbmUuVmVjMz8gZGlyZWN0aW9uKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJh eT8gaW5pdF9mcm9tX3JheSAoR3JhcGhlbmUuUmF5IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5SYXk/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBvcmlnaW4sIEdyYXBo ZW5lLlZlYzM/IGRpcmVjdGlvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X2JveCAoR3JhcGhl bmUuQm94IGIsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3NwaGVy ZSAoR3JhcGhlbmUuU3BoZXJlIHMsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50 ZXJzZWN0X3RyaWFuZ2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0LCBvdXQgZmxvYXQgdF9vdXQpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNf Ym94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJ cHVibGljIGJvb2wgaW50ZXJzZWN0c19zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3RyaWFu Z2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmVjdF90IiwgdHlw ZV9pZCA9ICJncmFwaGVuZV9yZWN0X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBSZWN0IHsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dCBvcmlnaW47CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplOworKwkJcHVibGljIHN0YXRp YyBHcmFwaGVuZS5SZWN0PyBhbGxvYyAoKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50 IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKEdyYXBo ZW5lLlJlY3QgYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmVjdCBiKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGV4cGFu ZCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJ cHVibGljIGZsb2F0IGdldF9hcmVhICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9i b3R0b21fbGVmdCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfYm90dG9tX3JpZ2h0 ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMg ZmxvYXQgZ2V0X2hlaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX2xl ZnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X3RvcF9yaWdodCAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVuZS5WZWMyIHZlcnRpY2VzWzRd KTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3gg KCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5SZWN0PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0 KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluaXRfZnJvbV9yZWN0IChHcmFw aGVuZS5SZWN0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbnNldCAo ZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlJlY3QgaW5zZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJ cHVibGljIEdyYXBoZW5lLlJlY3QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlJlY3QgYiwgZG91Ymxl IGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKEdyYXBoZW5lLlJlY3QgYiwg b3V0IEdyYXBoZW5lLlJlY3QgcmVzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/ IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5SZWN0IG5vcm1hbGl6ZV9yICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu UmVjdD8gb2Zmc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBvZmZzZXRfciAoZmxvYXQgZF94LCBm bG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJv dW5kICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5SZWN0IHJvdW5kX2V4dGVudHMgKCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5SZWN0PyByb3VuZF90b19waXhlbCAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBzY2FsZSAoZmxvYXQgc19oLCBm bG9hdCBzX3YpOworKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdW5pb24gKEdyYXBoZW5lLlJlY3Qg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgR3JhcGhlbmUuUmVjdD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfc2ltZDRmX3QiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBTaW1kNEYgeworKwl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJn cmFwaGVuZV9zaW1kNHg0Zl90IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1 Y3QgU2ltZDRYNEYgeworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaXplX3QiLCB0eXBlX2lkID0gImdyYXBo ZW5lX3NpemVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlw dWJsaWMgc3RydWN0IFNpemUgeworKwkJcHVibGljIGZsb2F0IHdpZHRoOworKwkJcHVibGljIGZs b2F0IGhlaWdodDsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TaXplIGIpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuU2l6ZT8gaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhl aWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0X2Zyb21fc2l6ZSAo R3JhcGhlbmUuU2l6ZSBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlNpemUgaW50ZXJwb2xhdGUg KEdyYXBoZW5lLlNpemUgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6 ZSBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVu ZS5TaXplPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zcGhlcmVfdCIsIHR5cGVfaWQgPSAi Z3JhcGhlbmVfc3BoZXJlX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKysJcHVibGljIHN0cnVjdCBTcGhlcmUgeworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9p bnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChH cmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5T cGhlcmUgYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2VudGVyICgpOworKwkJcHVibGljIGZsb2F0 IGdldF9yYWRpdXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXQg KEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlciwgZmxvYXQgcmFkaXVzKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlNwaGVyZT8gaW5pdF9mcm9tX3BvaW50cyAoW0NDb2RlIChhcnJheV9sZW5n dGhfY25hbWUgPSAibl9wb2ludHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5n dGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5Qb2ludDNEW10gcG9pbnRzLCBHcmFwaGVuZS5Q b2ludDNEPyBjZW50ZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0 X2Zyb21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3Jh cGhlbmUuVmVjM1tdIHZlY3RvcnMsIEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlcik7CisrCQlwdWJs aWMgYm9vbCBpc19lbXB0eSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNsYXRl IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfdCIs IHR5cGVfaWQgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFRyaWFuZ2xlIHsKKysJCXB1YmxpYyBi b29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIGJvb2wg ZXF1YWwgKEdyYXBoZW5lLlRyaWFuZ2xlIGIpOworKwkJcHVibGljIGZsb2F0IGdldF9hcmVhICgp OworKwkJcHVibGljIGJvb2wgZ2V0X2Jhcnljb29yZHMgKEdyYXBoZW5lLlBvaW50M0Q/IHAsIG91 dCBHcmFwaGVuZS5WZWMyIHJlcyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGlu Z19ib3ggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWlkcG9pbnQgKCk7Cisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfbm9ybWFsICgpOworKwkJcHVibGljIEdyYXBoZW5l LlBsYW5lIGdldF9wbGFuZSAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludHMgKG91dCBHcmFw aGVuZS5Qb2ludDNEIGEsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVuZS5Qb2lu dDNEIGMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGdl dF91diAoR3JhcGhlbmUuUG9pbnQzRD8gcCwgR3JhcGhlbmUuVmVjMiB1dl9hLCBHcmFwaGVuZS5W ZWMyIHV2X2IsIEdyYXBoZW5lLlZlYzIgdXZfYywgb3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsKKysJ CXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAob3V0IEdyYXBoZW5lLlZlYzMgYSwgb3V0IEdyYXBo ZW5lLlZlYzMgYiwgb3V0IEdyYXBoZW5lLlZlYzMgYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGluaXRfZnJvbV9m bG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGFbM10sIFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBiWzNdLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gZmxvYXQgY1szXSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Ucmlhbmds ZT8gaW5pdF9mcm9tX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0Q/IGEsIEdyYXBoZW5lLlBvaW50 M0Q/IGIsIEdyYXBoZW5lLlBvaW50M0Q/IGMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu VHJpYW5nbGU/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBhLCBHcmFwaGVuZS5WZWMz PyBiLCBHcmFwaGVuZS5WZWMzPyBjKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjMl90IiwgdHlwZV9p ZCA9ICJncmFwaGVuZV92ZWMyX2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgVmVjMiB7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBh ZGQgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjMiBkaXZpZGUgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWMyIGIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdy YXBoZW5lLlZlYzIgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuVmVjMj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBp bml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNb Ml0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuVmVjMj8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBpbnRlcnBvbGF0 ZSAoR3JhcGhlbmUuVmVjMiB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWF4IChHcmFwaGVuZS5WZWMyIGIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIg bWluIChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzIgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWMy IHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWMyIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBv bmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjMiBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHN1YnRyYWN0IChHcmFwaGVuZS5WZWMyIGIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFsyXSk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVj Mj8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB6ZXJv ICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0 LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWMzX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzNf Z2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWMzIHsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGFkZCAoR3JhcGhlbmUuVmVjMyBi KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMz IGNyb3NzIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZGl2aWRlIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuVmVj MyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIGVxdWFs IChHcmFwaGVuZS5WZWMzIHYyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWMyIGdldF94eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF94eTAgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfeHl6MCAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXox ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzQgZ2V0X3h5encgKGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIGZsb2F0IGdldF96ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5WZWMzPyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSBmbG9hdCBzcmNbM10pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzMg c3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjMyBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVjMyB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbWF4IChH cmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzMgbWluIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbXVsdGlwbHkgKEdyYXBoZW5lLlZl YzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFy IChHcmFwaGVuZS5WZWMzIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5vcm1hbGl6ZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5WZWMzPyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjMyBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHN1YnRyYWN0IChHcmFwaGVu ZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQg dG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFsz XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgR3JhcGhlbmUuVmVjMz8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHlfYXhpcyAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFw aGVuZS5WZWMzPyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gemVybyAoKTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3Jh cGhlbmVfdmVjNF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV92ZWM0X2dldF90eXBlICgpIildCisr CXB1YmxpYyBzdHJ1Y3QgVmVjNCB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjNCBhZGQgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBkaXZpZGUgKEdyYXBoZW5l LlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg ZG90IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJ cHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzQgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF93ICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5eiAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlZlYzQ/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8g aW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgc3Jj WzRdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMyIChHcmFwaGVuZS5WZWMyIHNyYywgZmxvYXQgeiwg ZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyBzcmMsIGZsb2F0 IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBpbnRlcnBvbGF0 ZSAoR3JhcGhlbmUuVmVjNCB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWF4IChHcmFwaGVuZS5WZWM0IGIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQg bWluIChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzQgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWM0 IHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWM0IG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBv bmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjNCBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHN1YnRyYWN0IChHcmFwaGVuZS5WZWM0IGIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFs0XSk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVj ND8gd19heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHhfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB5X2F4 aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjND8gel9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHplcm8gKCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX2V1bGVyX29yZGVyX3QiLCBjcHJlZml4ID0gIkdSQVBIRU5FX0VVTEVS X09SREVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisrCXB1YmxpYyBlbnVtIEV1bGVyT3JkZXIgeworKwkJREVGQVVMVCwKKysJCVhZWiwKKysJ CVlaWCwKKysJCVpYWSwKKysJCVhaWSwKKysJCVlYWiwKKysJCVpZWCwKKysJCVNYWVosCisrCQlT WFlYLAorKwkJU1haWSwKKysJCVNYWlgsCisrCQlTWVpYLAorKwkJU1laWSwKKysJCVNZWFosCisr CQlTWVhZLAorKwkJU1pYWSwKKysJCVNaWFosCisrCQlTWllYLAorKwkJU1pZWiwKKysJCVJaWVgs CisrCQlSWFlYLAorKwkJUllaWCwKKysJCVJYWlgsCisrCQlSWFpZLAorKwkJUllaWSwKKysJCVJa WFksCisrCQlSWVhZLAorKwkJUllYWiwKKysJCVJaWFosCisrCQlSWFlaLAorKwkJUlpZWgorKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFt ZSA9ICJncmFwaGVuZV9yYXlfaW50ZXJzZWN0aW9uX2tpbmRfdCIsIGNwcmVmaXggPSAiR1JBUEhF TkVfUkFZX0lOVEVSU0VDVElPTl9LSU5EXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBSYXlJbnRlcnNlY3Rpb25LaW5k IHsKKysJCU5PTkUsCisrCQlFTlRFUiwKKysJCUxFQVZFCisrCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX0hBU19H Q0MiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfR0NDOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfSEFTX1NDQUxB UiIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19TQ0FMQVI7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfU1NF IildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX1NTRTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJIildCisrCXB1 YmxpYyBjb25zdCBkb3VibGUgUEk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9QSV8yIildCisrCXB1YmxpYyBjb25z dCBkb3VibGUgUElfMjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdv YmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1NJTURfUyIpXQorKwlwdWJsaWMgY29uc3Qgc3Ry aW5nIFNJTURfUzsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzJfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUMyX0xFTjsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzNf TEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBW RUMzX0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzRfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUM0X0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImZhbHNlIildCisrCXB1Ymxp YyBjb25zdCBpbnQgQGZhbHNlOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAidHJ1ZSIpXQorKwlwdWJsaWMgY29uc3QgaW50IEB0cnVl OworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi5kZXBzIHZhcGkvbGlibXV0dGVyLTIu ZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAK Ky0tLSB2YXBpL2xpYm11dHRlci0yLmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBA QAorLWNhaXJvCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4 YnVmLTIuMAorLWd0aystMy4wCisteDExCisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29n bC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi52YXBpIHZhcGkvbGlibXV0dGVyLTIu dmFwaQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwYTZjNDM1Ny4uMDAwMDAwMDAK Ky0tLSB2YXBpL2xpYm11dHRlci0yLnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzMjUgKzAs MCBAQAorLS8qIGxpYm11dHRlci52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9k aWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJN ZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMy4wIiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIild CistbmFtZXNwYWNlIE1ldGEgeworLQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFk ZF9saXN0ZW5lciAoTWV0YS5QcmVmc0NoYW5nZWRGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGJl bGxfaXNfYXVkaWJsZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX25hbWUgKGlu dCBpLCBzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9h Y3Rpb25fZG91YmxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJh ckFjdGlvbiBnZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rl c2t0b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBnZXRfYXR0YWNoX21vZGFsX2RpYWxvZ3MgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg Z2V0X2F1dG9fbWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9fcmFpc2UgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIGludCBnZXRfYXV0b19yYWlzZV9kZWxheSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25M YXlvdXQgZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2NlbnRlcl9uZXdf d2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgaW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2N1cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgaW50IGdldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9k cmFnZ2FibGVfYm9yZGVyX3dpZHRoICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9keW5hbWljX3dvcmtz cGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IGdldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5G b2N1c01vZGUgZ2V0X2ZvY3VzX21vZGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2lu ZG93cyBnZXRfZm9jdXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2ZvcmNlX2Z1 bGxzY3JlZW4gKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2ln bm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0Fj dGlvbiBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdl dF9tb3VzZV9idXR0b25fbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgZ2V0 X21vdXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X21vdXNlX2J1dHRvbl9yZXNp emUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIGludCBnZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg Z2V0X3JhaXNlX29uX2NsaWNrICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaG93X2ZhbGxiYWNrX2Fw cF9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnREZXNjcmlwdGlvbiBnZXRfdGl0 bGViYXJfZm9udCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfdmlzdWFsX2JlbGwgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGlj IEdEZXNrdG9wLlZpc3VhbEJlbGxUeXBlIGdldF92aXN1YWxfYmVsbF90eXBlICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIHN0cmluZyBnZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBnZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBvdmVycmlkZV9wcmVmZXJlbmNlX3NjaGVtYSAoc3RyaW5nIGtleSwg c3RyaW5nIHNjaGVtYSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2xpc3RlbmVyIChNZXRhLlByZWZz Q2hhbmdlZEZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJv b2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGVi YXIgKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X251bV93b3Jrc3BhY2VzIChpbnQg bl93b3Jrc3BhY2VzKTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3Rv cGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVi dWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJtZXRhX2J1ZyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGJ1ZyAoc3Ry aW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIm1ldGFfZGVidWdfc3Bld19yZWFsIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgZGVidWdfc3Bld19yZWFsIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxlX3Vu cmVkaXJlY3RfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5y ZWRpcmVjdF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf ZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlf c3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRp cmVjdF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJl Y3RfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wb3AiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3BvcCAoTWV0YS5EaXNwbGF5IGRpc3Bs YXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV9lcnJvcl90cmFwX3B1c2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90 cmFwX3B1c2ggKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wdXNoX3dpdGhf cmV0dXJuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0 dXJuIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3Jf YWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVf Zm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZhdGFsIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgZmF0YWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZyZWVfZ3NsaXN0 X2FuZF9lbGVtZW50cyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZyZWVfZ3NsaXN0X2FuZF9l bGVtZW50cyAoR0xpYi5TTGlzdDx2b2lkKj4gbGlzdF90b19kZWVwX2ZyZWUpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhf c3RybmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmlu ZyBzcmMsIHNpemVfdCBuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKy0JCXB1YmxpYyBz dGF0aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dl dF9vdmVybGF5X3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyBYLldpbmRvdyBnZXRfb3Zlcmxh eV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5nIildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChpbnQgZ3Jh dml0eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVn Z2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIm1ldGFfaXNfc3luY2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3N5bmNp bmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJtZXRhX2lzX3ZlcmJvc2UiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJib3Nl ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV9pc193YXlsYW5kX2NvbXBvc2l0b3IiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBp c193YXlsYW5kX2NvbXBvc2l0b3IgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX2FkZCIpXQorLQkJcHVibGljIHN0YXRp YyB1aW50IGxhdGVyX2FkZCAoTWV0YS5MYXRlclR5cGUgd2hlbiwgb3duZWQgR0xpYi5Tb3VyY2VG dW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAibWV0YV9sYXRlcl9yZW1vdmUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsYXRl cl9yZW1vdmUgKHVpbnQgbGF0ZXJfaWQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wb3Bfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHBvcF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wdXNoX25vX21zZ19wcmVm aXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX25vX21zZ19wcmVmaXggKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Jl Y3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5SZWN0YW5nbGU/IHJlY3QgKGludCB4LCBpbnQg eSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcmVtb3ZlX3ZlcmJvc2VfdG9waWMiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGlj IHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3Jl ZW4sIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxvZyIpXQorLQkJcHVibGlj IHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUsIHN0cmluZyBtZXNzYWdl LCBzdHJpbmc/IHRpbWVvdXQgPSBudWxsLCBzdHJpbmc/IGRpc3BsYXkgPSBudWxsLCBzdHJpbmc/ IG9rX3RleHQgPSBudWxsLCBzdHJpbmc/IGNhbmNlbF90ZXh0ID0gbnVsbCwgc3RyaW5nPyBpY29u X25hbWUgPSBudWxsLCBpbnQgdHJhbnNpZW50X2ZvciA9IDAsIEdMaWIuU0xpc3Q8c3RyaW5nPj8g Y29sdW1ucyA9IG51bGwsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gZW50cmllcyA9IG51bGwpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV90 b3BpY19yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdG9waWNfcmVhbCAoTWV0YS5EZWJ1 Z1RvcGljIHRvcGljLCBzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFs IildCistCQlwdWJsaWMgc3RhdGljIGludCB1bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwg dm9pZCogdjIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWlu dCB1bnNpZ25lZF9sb25nX2hhc2ggKHZvaWQqIHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV92ZXJib3NlX3JlYWwiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCB2ZXJib3NlX3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3dh cm5pbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB3YXJuaW5nIChzdHJpbmcgZm9ybWF0LCAu Li4pOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5 cGVfaWQgPSAibWV0YV9iYWNrZW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBj bGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIGNuYW1lID0gIm1ldGFfZ2V0 X2JhY2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0X2Jh Y2tlbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CistCQlwdWJsaWMg dm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcg b3B0aW9ucyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVj dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVj dCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRhLlNjcmVl biBzY3JlZW4pOworLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworLQkJcHVi bGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91 YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9p ZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHls ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFk aW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9y IHNlY29uZF9jb2xvcik7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNj cmVlbiBtZXRhX3NjcmVlbiB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5k X2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBD bHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMg QmFja2dyb3VuZEFjdG9yIChNZXRhLlNjcmVlbiBzY3JlZW4sIGludCBtb25pdG9yKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7Cist CQlwdWJsaWMgdm9pZCBzZXRfdmlnbmV0dGUgKGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5l c3MsIGRvdWJsZSBzaGFycG5lc3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg TWV0YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TY3JlZW4gbWV0YV9zY3JlZW4g eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7IH0K Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dldF90eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1w bGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIu U2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEdyb3VwICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3Jv dW5kSW1hZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2xv YWRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBl X2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgQmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3Vu ZEltYWdlQ2FjaGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5k SW1hZ2VDYWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmRJbWFn ZSBsb2FkIChHTGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5GaWxl IGZpbGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBCYXJyaWVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhcnJpZXIgKCk7CistCQlwdWJsaWMgdm9pZCBk ZXN0cm95ICgpOworLQkJcHVibGljIGJvb2wgaXNfYWN0aXZlICgpOworLQkJcHVibGljIHZvaWQg cmVsZWFzZSAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgTWV0YS5CYXJyaWVyRGlyZWN0aW9uIGRpcmVjdGlvbnMgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRp c3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgaW50IHgxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGludCB4MiB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBpbnQgeTEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBoaXQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBsZWZ0IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0 YV9iYXJyaWVyX2V2ZW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xh c3MgQmFycmllckV2ZW50IHsKKy0JCXB1YmxpYyBpbnQgZHQ7CistCQlwdWJsaWMgZG91YmxlIGR4 OworLQkJcHVibGljIGRvdWJsZSBkeTsKKy0JCXB1YmxpYyBpbnQgZXZlbnRfaWQ7CistCQlwdWJs aWMgYm9vbCBncmFiYmVkOworLQkJcHVibGljIGJvb2wgcmVsZWFzZWQ7CistCQlwdWJsaWMgdWlu dDMyIHRpbWU7CistCQlwdWJsaWMgZG91YmxlIHg7CistCQlwdWJsaWMgZG91YmxlIHk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIildCistCVtD b21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQ29tcG9zaXRvciB7CistCQlwdWJsaWMgdm9pZCBhZGRf d2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsK Ky0JCXB1YmxpYyBib29sIGZpbHRlcl9rZXliaW5kaW5nIChNZXRhLktleUJpbmRpbmcgYmluZGlu Zyk7CistCQlwdWJsaWMgdm9pZCBmbGFzaF9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwg Y25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBmb2N1c19zdGFnZV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFt cCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9nZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zv cl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2Vf Zm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdl dF9zdGFnZV9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf Z2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3I/IGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4gKE1ldGEu U2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93QWN0b3I+PyBn ZXRfd2luZG93X2FjdG9ycyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dl dF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3I/IGdldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2Ny ZWVuKTsKKy0JCXB1YmxpYyB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgpOworLQkJcHVibGljIHZv aWQgaGlkZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5Db21wRWZmZWN0IGVmZmVj dCk7CistCQlwdWJsaWMgdm9pZCBtYW5hZ2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkNvbXBv c2l0b3IgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZvaWQgcXVldWVf ZnJhbWVfZHJhd24gKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBub19kZWxheV9mcmFtZSk7Cist CQlwdWJsaWMgdm9pZCByZW1vdmVfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVi bGljIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0 YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlwdWJsaWMgdm9p ZCBzaG93X3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZmZWN0 KTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2luZG93IHdpbmRvdywg TWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHZvaWQg c2hvd193aW5kb3dfbWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRv d01lbnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIHZvaWQgc2l6 ZV9jaGFuZ2Vfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuU2l6ZUNoYW5nZSB3aGlj aF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBv bGRfYnVmZmVyX3JlY3QpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc3RhZ2VfaXNfZm9jdXNlZCIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIHN0YWdlX2lzX2ZvY3VzZWQgKE1ldGEuU2NyZWVuIHNjcmVlbik7 CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSBmcm9tLCBN ZXRhLldvcmtzcGFjZSB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1 YmxpYyB2b2lkIHN5bmNfc3RhY2sgKEdMaWIuTGlzdDxNZXRhLldpbmRvd0FjdG9yPiBzdGFjayk7 CistCQlwdWJsaWMgdm9pZCBzeW5jX3VwZGF0ZXNfZnJvemVuIChNZXRhLldpbmRvdyB3aW5kb3cp OworLQkJcHVibGljIHZvaWQgc3luY193aW5kb3dfZ2VvbWV0cnkgKE1ldGEuV2luZG93IHdpbmRv dywgYm9vbCBkaWRfcGxhY2VtZW50KTsKKy0JCXB1YmxpYyB2b2lkIHVubWFuYWdlICgpOworLQkJ cHVibGljIHZvaWQgd2luZG93X29wYWNpdHlfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsK Ky0JCXB1YmxpYyB2b2lkIHdpbmRvd19zaGFwZV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cp OworLQkJcHVibGljIHZvaWQgd2luZG93X3N1cmZhY2VfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2lu ZG93KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3RyYWNrZXJfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQ3Vyc29y VHJhY2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRyYWNrZXIg Z2V0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBnZXRf aG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlciAo aW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50 ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3Jf Y2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNw bGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOworLQkJcHVibGljIHZv aWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwpOworLQkJcHVibGlj IHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRpbmdzIHNldHRpbmdz LCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYyBo YW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEuU2NyZWVuIHNjcmVl biwgTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBwb2ludGVyX2FscmVh ZHlfZ3JhYmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVsb25nIG1vZG1hc2ss IHVpbnQzMiB0aW1lc3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOworLQkJcHVibGljIHZv aWQgY2xlYXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50 MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cg KE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBm cmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5Db21wb3NpdG9yIGdldF9jb21wb3NpdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3Vy cmVudF90aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJp cCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJcHVibGlj IHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBNZXRh LkdyYWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9rZXliaW5kaW5nX2Fj dGlvbiAodWludCBrZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2xh c3RfdXNlcl90aW1lICgpOworLQkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJM aXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0 PHdlYWsgTWV0YS5XaW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEu V29ya3NwYWNlPyB3b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0 X3RhYl9uZXh0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBN ZXRhLldpbmRvdz8gd2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIFgu RGlzcGxheSBnZXRfeGRpc3BsYXkgKCk7CistCQlwdWJsaWMgaW50IGdldF94aW5wdXRfb3Bjb2Rl ICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9y KTsKKy0JCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3BvaW50 ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuR3JvdXAgbG9va3VwX2dyb3VwIChYLldpbmRvdyBncm91 cF9sZWFkZXIpOworLQkJcHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1l KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdp bmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgR0xp Yi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIu U0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOworLQkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0 ZW5kZWRfYmFycmllcnMgKCk7CistCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQg YWN0aW9uX2lkKTsKKy0JCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bm1hbmFnZV9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVl biwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVm b3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CistCQlwdWJsaWMgYm9vbCB4d2luZG93 X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50 IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLlNjcmVlbiBv YmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuU2NyZWVuIG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1l dGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBtb2RpZmllcnNfYWNjZWxlcmF0 b3JfYWN0aXZhdGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG92ZXJsYXlfa2V5ICgpOwor LQkJcHVibGljIHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wg c2hvd19yZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAx LCBpbnQgcDIpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChz dHJpbmc/IG1lc3NhZ2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChN ZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRz X2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVi bGljIGNsYXNzIEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9ncm91cC5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgR3JvdXAgeworLQkJcHVi bGljIGludCBnZXRfc2l6ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1 cF9pZCAoKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2lu ZG93cyAoKTsKKy0JCXB1YmxpYyBib29sIHByb3BlcnR5X25vdGlmeSAoWC5FdmVudCBldmVudCk7 CistCQlwdWJsaWMgdm9pZCB1cGRhdGVfbGF5ZXJzICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFf aWRsZV9tb25pdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBJZGxlTW9uaXRvciA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXByb3RlY3RlZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9pZGxl X3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNo RnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChv d25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lk KTsKKy0JCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CistCQlwdWJsaWMgdm9pZCByZW1v dmVfd2F0Y2ggKHVpbnQgaWQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50 IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9j b3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5 X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlC aW5kaW5nIHsKKy0JCXB1YmxpYyB1aW50IGdldF9tYXNrICgpOworLQkJcHVibGljIE1ldGEuVmly dHVhbE1vZGlmaWVyIGdldF9tb2RpZmllcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X25hbWUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19idWlsdGluICgpOworLQkJcHVibGljIGJv b2wgaXNfcmV2ZXJzZWQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9r ZXliaW5kaW5ncy5oIiwgY25hbWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRs ZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmluZyBu YW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9p ZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJh Y3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xp Yi5EQnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLk1vbml0b3JNYW5hZ2VyIEBnZXQgKCk7CistCQlwdWJsaWMgaW50IGdldF9t b25pdG9yX2Zvcl9vdXRwdXQgKHVpbnQgaWQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZp cm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1wbHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQbHVn aW4gKCk7CistCQlwdWJsaWMgYm9vbCBiZWdpbl9tb2RhbCAoTWV0YS5Nb2RhbE9wdGlvbnMgb3B0 aW9ucywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZV9kaXNwbGF5 X2NoYW5nZSAoYm9vbCBvayk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgZGVzdHJveSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMg dm9pZCBkZXN0cm95X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJs aWMgdm9pZCBlbmRfbW9kYWwgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQg TWV0YS5QbHVnaW5JbmZvPyBnZXRfaW5mbyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2Ny ZWVuIGdldF9zY3JlZW4gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBoaWRlX3RpbGVfcHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCBib29sIGtleWJpbmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2Ug KCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19l ZmZlY3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBt YW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7Cist CQlwdWJsaWMgdm9pZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1pbmltaXplIChNZXRhLldpbmRv d0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5X aW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5v d25lZCBNZXRhLlBsdWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRv dywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51IChN ZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5 KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21l bnVfZm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51 LCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHNpemVfY2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yLCBNZXRhLlNpemVDaGFu Z2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5SZWN0 YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVfY2hhbmdlX2NvbXBs ZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBzdGFydCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKGludCBmcm9tLCBpbnQgdG8sIE1ldGEuTW90aW9uRGly ZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlX2NvbXBs ZXRlZCAoKTsKKy0gCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmlt aXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVf Y29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCBib29sIHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVlbi5oIiwgdHlwZV9pZCA9ICJt ZXRhX3NjcmVlbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2NyZWVuIDogR0xpYi5P YmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHJvdGVjdGVkIFNjcmVlbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBh cHBlbmRfbmV3X3dvcmtzcGFjZSAoYm9vbCBhY3RpdmF0ZSwgdWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CistCQlwdWJsaWMg aW50IGdldF9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21v bml0b3JfZm9yX3BvcyAoaW50IHgsIGludCB5KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlz cGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9uaXRv cl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5f ZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRl eF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdldF9tb25p dG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5TY3JlZW5EaXJlY3Rp b24gZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgaW50 IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgaW50IGdldF9wcmltYXJ5X21vbml0b3Ig KCk7CistCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJcHVibGljIHZvaWQg Z2V0X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuV29ya3NwYWNlPyBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOwor LQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PE1ldGEuV29ya3NwYWNlPiBnZXRfd29ya3NwYWNl cyAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHJvb3QgKCk7CistCQlwdWJsaWMgdm9pZCBv dmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLlNjcmVlbkNvcm5lciBzdGFydGluZ19jb3Ju ZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKy0J CXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwg dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOwor LQkJcHVibGljIHZvaWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1Ymxp YyBpbnQgbl93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVs bHNjcmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5n ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHN0YXJ0dXBfc2VxdWVuY2VfY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRh LldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2xlZnRfbW9uaXRvciAo aW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmth cmVhc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9hZGRlZCAo aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3JlbW92ZWQgKGlu dCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAoaW50 IG9iamVjdCwgaW50IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVmX2Z1 bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5 cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorLQlbQ29tcGFj dF0KKy0JcHVibGljIGNsYXNzIFNoYWRvdyB7CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChp bnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19o ZWlnaHQsIENhaXJvLlJlY3RhbmdsZUludCBib3VuZHMpOworLQkJcHVibGljIHZvaWQgcGFpbnQg KGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93 X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29sIGNsaXBfc3Ry aWN0bHkpOworLQkJcHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1 bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93 RmFjdG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3Rvcnkg Z2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAo c3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cg Z2V0X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LCBzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9w YXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1z IEBwYXJhbXMpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVy LkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNo YXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJv LlJlY3RhbmdsZUludCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRf dGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVh dGVfbWlwbWFwcyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1 cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25l ZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJl YSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS90aGVtZS5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgewor LQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgZ2V0X2Rl ZmF1bHQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlRoZW1lIEBuZXcgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCB0eXBlX2lkID0gIm1ldGFf d2luZG93X2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBH TGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwcm90ZWN0ZWQgV2luZG93ICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQz MiBjdXJyZW50X3RpbWUpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2Ug KHVpbnQzMiBjdXJyZW50X3RpbWUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJs aWMgYm9vbCBhbGxvd3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7 CistCQlwdWJsaWMgdm9pZCBiZWdpbl9ncmFiX29wIChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFt ZV9hY3Rpb24sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgp OworLQkJcHVibGljIGJvb2wgY2FuX21heGltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX21p bmltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX3NoYWRlICgpOworLQkJcHVibGljIHZvaWQg Y2hhbmdlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2 b2lkIGNoYW5nZV93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBl bmQpOworLQkJcHVibGljIHZvaWQgY2hlY2tfYWxpdmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVj dGFuZ2xlIGNsaWVudF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7Cist CQlwdWJsaWMgdm9pZCBAZGVsZXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuV2luZG93IGZpbmRfcm9vdF9hbmNlc3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZv Y3VzICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3Ig KE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3Ry YW5zaWVudCAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJl Y3RhbmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9y ZWN0KTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9IDAuMSwgYXJyYXlfbGVuZ3RoX3R5 cGUgPSAiZ3NpemUiKV0KKy0JCXB1YmxpYyBpbnRbXSBnZXRfYWxsX21vbml0b3JzICgpOworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGli Lk9iamVjdCBnZXRfY29tcG9zaXRvcl9wcml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9kZXNjcmlwdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBn ZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRnJhbWUgZ2V0X2ZyYW1lICgp OworLQkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uPyBnZXRfZnJhbWVfYm91bmRzICgpOwor LQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9mcmFtZV9yZWN0ICgpOworLQkJcHVibGljIE1l dGEuRnJhbWVUeXBlIGdldF9mcmFtZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5H cm91cCBnZXRfZ3JvdXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBf bWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2Fw cGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGlj YXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19t ZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtf dGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1 ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19v YmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0 YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9sYXllciAo KTsKKy0JCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X211 dHRlcl9oaW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3BpZCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfcm9sZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdl dF9zY3JlZW4gKCk7CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIHVub3du ZWQgTWV0YS5XaW5kb3c/IGdldF90aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF90aXRsZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFu c2llbnRfZm9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVi bGljIE1ldGEuV2luZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93 bV9jbGFzc19pbnN0YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19h cmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19h cmVhX2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29y a19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2luZG93IGdl dF94d2luZG93ICgpOworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7Cist CQlwdWJsaWMgYm9vbCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsK Ky0JCXB1YmxpYyBib29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX2FuY2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsK Ky0JCXB1YmxpYyBib29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19oaWRkZW4gKCk7CistCQlwdWJsaWMg Ym9vbCBpc19tb25pdG9yX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fYWxsX3dvcmtz cGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9wcmltYXJ5X21vbml0b3IgKCk7CistCQlw dWJsaWMgYm9vbCBpc19vdmVycmlkZV9yZWRpcmVjdCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3Jl bW90ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NjcmVlbl9zaXplZCAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX3NoYWRlZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NraXBfdGFza2JhciAoKTsKKy0J CXB1YmxpYyB2b2lkIGtpbGwgKCk7CistCQlwdWJsaWMgYm9vbCBsb2NhdGVkX29uX3dvcmtzcGFj ZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGxvd2VyICgpOwor LQkJcHVibGljIHZvaWQgbWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfZnVsbHNj cmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIG1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGly ZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1v dmVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udyk7Cist CQlwdWJsaWMgdm9pZCBtb3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94 X253LCBpbnQgcm9vdF95X253LCBpbnQgdywgaW50IGgpOworLQkJcHVibGljIHZvaWQgbW92ZV90 b19tb25pdG9yIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1 YmxpYyBib29sIHJlcXVlc3RlZF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29s IHJlcXVlc3RlZF9kb250X2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIHZvaWQgc2V0 X2NvbXBvc2l0b3JfcHJpdmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7CistCQlwdWJsaWMgdm9pZCBz ZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRy eSAoTWV0YS5SZWN0YW5nbGU/IHJlY3QpOworLQkJcHVibGljIHZvaWQgc2hhZGUgKHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgc2hvdmVfdGl0bGViYXJfb25zY3JlZW4gKCk7Cist CQlwdWJsaWMgYm9vbCBzaG93aW5nX29uX2l0c193b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9p ZCBzaHV0ZG93bl9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN0aWNrICgpOworLQkJcHVibGlj IGJvb2wgdGl0bGViYXJfaXNfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfYWJv dmUgKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2 b2lkIHVubWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1Ymxp YyB2b2lkIHVubWluaW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCB1bnNldF9kZW1hbmRzX2F0dGVu dGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJ cHVibGljIHZvaWQgdW5zdGljayAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgYWJvdmUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJv b2wgYXBwZWFyc19mb2N1c2VkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBib29sIGRlY29yYXRlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCBkZW1hbmRzX2F0dGVudGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBmdWxsc2NyZWVuIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5n IGd0a19hcHBfbWVudV9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtf YXBwbGljYXRpb25faWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9u X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19tZW51YmFyX29iamVj dF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a191bmlxdWVfYnVzX25hbWUgeyBn ZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3dpbmRvd19vYmplY3RfcGF0aCB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBpY29uIHsgb3du ZWQgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXpl ZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIENhaXJvLlN1cmZhY2UgbWluaV9pY29uIHsgb3duZWQgZ2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdldDsgfQorLQkJ cHVibGljIHN0cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgdXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3RpbWUgeyBnZXQ7 IH0KKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCVtDQ29kZSAoY25hbWUgPSAiZm9jdXMi KV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmb2N1c2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHBvc2l0aW9uX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmFpc2VkICgp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB1bm1hbmFnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2No YW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfYWN0b3JfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxl bWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNj cmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBn ZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93aW5kb3cgKCk7CistCQlw dWJsaWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsg c2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YV93aW5kb3dfc2hhcGUuaCIsIHJlZl9m dW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93 X3NoYXBlX2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVf dW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93 U2hhcGUgKENhaXJvLlJlZ2lvbiByZWdpb24pOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEu V2luZG93U2hhcGUgc2hhcGVfYik7CistCQlwdWJsaWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJv cmRlcl90b3AsIGludCBib3JkZXJfcmlnaHQsIGludCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVy X2xlZnQpOworLQkJcHVibGljIHVpbnQgaGFzaCAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1No YXBlIEByZWYgKCk7CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRl cl93aWR0aCwgaW50IGNlbnRlcl9oZWlnaHQpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd29ya3NwYWNlLmgiLCB0eXBl X2lkID0gIm1ldGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jr c3BhY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0 aXZhdGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9m b2N1cyAoTWV0YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0 aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNjcmVlbiBnZXRfc2NyZWVu ICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxsX21vbml0b3Jz ICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3Ig KGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgaW5kZXggKCk7CistCQlwdWJsaWMg R0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMpOwor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsg Z2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBv YmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRv dyBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5b3V0 IHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRl ZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbltdIGxlZnRfYnV0 dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWlu YXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIGxlZnRfYnV0dG9uc19oYXNfc3Bh Y2VyOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5h dGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uW10gcmlnaHRf YnV0dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVy bWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIHJpZ2h0X2J1dHRvbnNfaGFz X3NwYWNlcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOwor LQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1 YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7 CistCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciB0 b3RhbDsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J cHVibGljIHN0cnVjdCBQbHVnaW5JbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOwor LQkJcHVibGljIHdlYWsgc3RyaW5nIHZlcnNpb247CistCQlwdWJsaWMgd2VhayBzdHJpbmcgYXV0 aG9yOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CistCQlwdWJsaWMgd2VhayBzdHJp bmcgZGVzY3JpcHRpb247CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBs dWdpblZlcnNpb24geworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9tYWpvcjsKKy0JCXB1YmxpYyB1 aW50IHZlcnNpb25fbWlub3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworLQkJcHVi bGljIHVpbnQgdmVyc2lvbl9hcGk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFJl Y3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMg aW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7 CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0 KTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9y ZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1 YmxpYyBib29sIGhvcml6X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1Ymxp YyBib29sIGludGVyc2VjdCAoTWV0YS5SZWN0YW5nbGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xl IGRlc3QpOworLQkJcHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOwor LQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7Cist CQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTaGFkb3dQYXJhbXMgewor LQkJcHVibGljIGludCByYWRpdXM7CistCQlwdWJsaWMgaW50IHRvcF9mYWRlOworLQkJcHVibGlj IGludCB4X29mZnNldDsKKy0JCXB1YmxpYyBpbnQgeV9vZmZzZXQ7CistCQlwdWJsaWMgdWludDgg b3BhY2l0eTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworLQkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9 ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVj dGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJpZXJEaXJl Y3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlORUdBVElWRV9YLAor LQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1l dGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1 bmN0aW9uIHsKKy0JCU1FTlUsCistCQlNSU5JTUlaRSwKKy0JCU1BWElNSVpFLAorLQkJQ0xPU0Us CistCQlTSEFERSwKKy0JCUFCT1ZFLAorLQkJU1RJQ0ssCistCQlVTlNIQURFLAorLQkJVU5BQk9W RSwKKy0JCVVOU1RJQ0ssCistCQlBUFBNRU5VLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9DT01Q X0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpFLAorLQkJ REVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBl X2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEN1cnNvciB7 CistCQlOT05FLAorLQkJREVGQVVMVCwKKy0JCU5PUlRIX1JFU0laRSwKKy0JCVNPVVRIX1JFU0la RSwKKy0JCVdFU1RfUkVTSVpFLAorLQkJRUFTVF9SRVNJWkUsCistCQlTRV9SRVNJWkUsCistCQlT V19SRVNJWkUsCistCQlORV9SRVNJWkUsCistCQlOV19SRVNJWkUsCistCQlNT1ZFX09SX1JFU0la RV9XSU5ET1csCistCQlCVVNZLAorLQkJRE5EX0lOX0RSQUcsCistCQlETkRfTU9WRSwKKy0JCURO RF9DT1BZLAorLQkJRE5EX1VOU1VQUE9SVEVEX1RBUkdFVCwKKy0JCVBPSU5USU5HX0hBTkQsCist CQlDUk9TU0hBSVIsCistCQlJQkVBTSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9p ZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGlj IGVudW0gRGVidWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwK Ky0JCVNUQUNLLAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RB VEUsCistCQlXSU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5H LAorLQkJWElORVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCist CQlTVEFSVFVQLAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBF UywKKy0JCUNPTVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1F VEFfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0K Ky0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEaXJlY3Rpb24geworLQkJTEVGVCwKKy0JCVJJR0hU LAorLQkJVE9QLAorLQkJQk9UVE9NLAorLQkJVVAsCistCQlET1dOLAorLQkJSE9SSVpPTlRBTCwK Ky0JCVZFUlRJQ0FMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94 ZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRWRnZVR5cGUgeworLQkJV0lORE9XLAorLQkJ TU9OSVRPUiwKKy0JCVNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9FWElUXyIsIHR5cGVfaWQgPSAibWV0YV9leGl0 X2NvZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRXhpdENvZGUgeworLQkJU1VDQ0VT UywKKy0JCUVSUk9SCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2Zs YWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRnJhbWVGbGFncyB7 CistCQlBTExPV1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfQVBQTUVOVSwK Ky0JCUFMTE9XU19NSU5JTUlaRSwKKy0JCUFMTE9XU19NQVhJTUlaRSwKKy0JCUFMTE9XU19WRVJU SUNBTF9SRVNJWkUsCistCQlBTExPV1NfSE9SSVpPTlRBTF9SRVNJWkUsCistCQlIQVNfRk9DVVMs CistCQlTSEFERUQsCistCQlTVFVDSywKKy0JCU1BWElNSVpFRCwKKy0JCUFMTE9XU19TSEFERSwK Ky0JCUFMTE9XU19NT1ZFLAorLQkJRlVMTFNDUkVFTiwKKy0JCUlTX0ZMQVNISU5HLAorLQkJQUJP VkUsCistCQlUSUxFRF9MRUZULAorLQkJVElMRURfUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBF XyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIEZyYW1lVHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0cs CistCQlVVElMSVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVELAorLQkJTEFT VDsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuRnJhbWVUeXBlIHR5cGUp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3By ZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGVudW0gR3JhYk9wIHsKKy0JCU5PTkUsCistCQlDT01QT1NJVE9SLAor LQkJV0FZTEFORF9QT1BVUCwKKy0JCVdJTkRPV19CQVNFLAorLQkJRlJBTUVfQlVUVE9OLAorLQkJ TU9WSU5HLAorLQkJUkVTSVpJTkdfTlcsCistCQlSRVNJWklOR19OLAorLQkJUkVTSVpJTkdfTkUs CistCQlSRVNJWklOR19FLAorLQkJUkVTSVpJTkdfU1csCistCQlSRVNJWklOR19TLAorLQkJUkVT SVpJTkdfU0UsCistCQlSRVNJWklOR19XLAorLQkJS0VZQk9BUkRfTU9WSU5HLAorLQkJS0VZQk9B UkRfUkVTSVpJTkdfVU5LTk9XTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05XLAorLQkJS0VZQk9B UkRfUkVTSVpJTkdfTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05FLAorLQkJS0VZQk9BUkRfUkVT SVpJTkdfRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NXLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdf UywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfVworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0g Ik1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2Fj dGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKy0J CU5PTkUsCistCQlXT1JLU1BBQ0VfMSwKKy0JCVdPUktTUEFDRV8yLAorLQkJV09SS1NQQUNFXzMs CistCQlXT1JLU1BBQ0VfNCwKKy0JCVdPUktTUEFDRV81LAorLQkJV09SS1NQQUNFXzYsCistCQlX T1JLU1BBQ0VfNywKKy0JCVdPUktTUEFDRV84LAorLQkJV09SS1NQQUNFXzksCistCQlXT1JLU1BB Q0VfMTAsCistCQlXT1JLU1BBQ0VfMTEsCistCQlXT1JLU1BBQ0VfMTIsCistCQlXT1JLU1BBQ0Vf TEVGVCwKKy0JCVdPUktTUEFDRV9SSUdIVCwKKy0JCVdPUktTUEFDRV9VUCwKKy0JCVdPUktTUEFD RV9ET1dOLAorLQkJV09SS1NQQUNFX0xBU1QsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TLAorLQkJ U1dJVENIX0FQUExJQ0FUSU9OU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9HUk9VUCwKKy0JCVNXSVRD SF9HUk9VUF9CQUNLV0FSRCwKKy0JCVNXSVRDSF9XSU5ET1dTLAorLQkJU1dJVENIX1dJTkRPV1Nf QkFDS1dBUkQsCistCQlTV0lUQ0hfUEFORUxTLAorLQkJU1dJVENIX1BBTkVMU19CQUNLV0FSRCwK Ky0JCUNZQ0xFX0dST1VQLAorLQkJQ1lDTEVfR1JPVVBfQkFDS1dBUkQsCistCQlDWUNMRV9XSU5E T1dTLAorLQkJQ1lDTEVfV0lORE9XU19CQUNLV0FSRCwKKy0JCUNZQ0xFX1BBTkVMUywKKy0JCUNZ Q0xFX1BBTkVMU19CQUNLV0FSRCwKKy0JCVNIT1dfREVTS1RPUCwKKy0JCVBBTkVMX01BSU5fTUVO VSwKKy0JCVBBTkVMX1JVTl9ESUFMT0csCistCQlUT0dHTEVfUkVDT1JESU5HLAorLQkJU0VUX1NQ RVdfTUFSSywKKy0JCUFDVElWQVRFX1dJTkRPV19NRU5VLAorLQkJVE9HR0xFX0ZVTExTQ1JFRU4s CistCQlUT0dHTEVfTUFYSU1JWkVELAorLQkJVE9HR0xFX1RJTEVEX0xFRlQsCistCQlUT0dHTEVf VElMRURfUklHSFQsCistCQlUT0dHTEVfQUJPVkUsCistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1J WkUsCistCQlUT0dHTEVfU0hBREVELAorLQkJTUlOSU1JWkUsCistCQlDTE9TRSwKKy0JCUJFR0lO X01PVkUsCistCQlCRUdJTl9SRVNJWkUsCistCQlUT0dHTEVfT05fQUxMX1dPUktTUEFDRVMsCist CQlNT1ZFX1RPX1dPUktTUEFDRV8xLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMiwKKy0JCU1PVkVf VE9fV09SS1NQQUNFXzMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV80LAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfNSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzYsCistCQlNT1ZFX1RPX1dPUktTUEFDRV83 LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzksCistCQlN T1ZFX1RPX1dPUktTUEFDRV8xMCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzExLAorLQkJTU9WRV9U T19XT1JLU1BBQ0VfMTIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MRUZULAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfUklHSFQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9VUCwKKy0JCU1PVkVfVE9fV09S S1NQQUNFX0RPV04sCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MQVNULAorLQkJTU9WRV9UT19NT05J VE9SX0xFRlQsCistCQlNT1ZFX1RPX01PTklUT1JfUklHSFQsCistCQlNT1ZFX1RPX01PTklUT1Jf VVAsCistCQlNT1ZFX1RPX01PTklUT1JfRE9XTiwKKy0JCVJBSVNFX09SX0xPV0VSLAorLQkJUkFJ U0UsCistCQlMT1dFUiwKKy0JCU1BWElNSVpFX1ZFUlRJQ0FMTFksCistCQlNQVhJTUlaRV9IT1JJ Wk9OVEFMTFksCistCQlNT1ZFX1RPX0NPUk5FUl9OVywKKy0JCU1PVkVfVE9fQ09STkVSX05FLAor LQkJTU9WRV9UT19DT1JORVJfU1csCistCQlNT1ZFX1RPX0NPUk5FUl9TRSwKKy0JCU1PVkVfVE9f U0lERV9OLAorLQkJTU9WRV9UT19TSURFX1MsCistCQlNT1ZFX1RPX1NJREVfRSwKKy0JCU1PVkVf VE9fU0lERV9XLAorLQkJTU9WRV9UT19DRU5URVIsCistCQlPVkVSTEFZX0tFWSwKKy0JCUlTT19O RVhUX0dST1VQLAorLQkJQUxXQVlTX09OX1RPUCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5E SU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQor LQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJ UEVSX1dJTkRPVywKKy0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8i LCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51 bSBMYXRlclR5cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVM TFNDUkVFTiwKKy0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAi TUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9u X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CistCQlMVFIs CistCQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cu aCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVf ZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZs YWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgY3ByZWZpeCA9ICJN RVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIild CistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxS RUFEWV9HUkFCQkVELAorLQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9U SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZU LAorLQkJUklHSFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCist CQlET1dOX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9QUkVGXyIsIHR5cGVfaWQgPSAibWV0YV9wcmVmZXJlbmNl X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFByZWZlcmVuY2UgeworLQkJTU9VU0VfQlVU VE9OX01PRFMsCistCQlGT0NVU19NT0RFLAorLQkJRk9DVVNfTkVXX1dJTkRPV1MsCistCQlBVFRB Q0hfTU9EQUxfRElBTE9HUywKKy0JCVJBSVNFX09OX0NMSUNLLAorLQkJQUNUSU9OX0RPVUJMRV9D TElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9NSURETEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJ T05fUklHSFRfQ0xJQ0tfVElUTEVCQVIsCistCQlBVVRPX1JBSVNFLAorLQkJQVVUT19SQUlTRV9E RUxBWSwKKy0JCUZPQ1VTX0NIQU5HRV9PTl9QT0lOVEVSX1JFU1QsCistCQlUSVRMRUJBUl9GT05U LAorLQkJTlVNX1dPUktTUEFDRVMsCistCQlEWU5BTUlDX1dPUktTUEFDRVMsCistCQlLRVlCSU5E SU5HUywKKy0JCURJU0FCTEVfV09SS0FST1VORFMsCistCQlCVVRUT05fTEFZT1VULAorLQkJV09S S1NQQUNFX05BTUVTLAorLQkJVklTVUFMX0JFTEwsCistCQlBVURJQkxFX0JFTEwsCistCQlWSVNV QUxfQkVMTF9UWVBFLAorLQkJR05PTUVfQUNDRVNTSUJJTElUWSwKKy0JCUdOT01FX0FOSU1BVElP TlMsCistCQlDVVJTT1JfVEhFTUUsCistCQlDVVJTT1JfU0laRSwKKy0JCVJFU0laRV9XSVRIX1JJ R0hUX0JVVFRPTiwKKy0JCUVER0VfVElMSU5HLAorLQkJRk9SQ0VfRlVMTFNDUkVFTiwKKy0JCVdP UktTUEFDRVNfT05MWV9PTl9QUklNQVJZLAorLQkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKy0J CUFVVE9fTUFYSU1JWkUsCistCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9M RDsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuUHJlZmVyZW5jZSBwcmVm KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9zY3JlZW4uaCIsIGNw cmVmaXggPSAiTUVUQV9TQ1JFRU5fIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9jb3JuZXJfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2NyZWVuQ29ybmVyIHsKKy0JCVRPUExFRlQsCist CQlUT1BSSUdIVCwKKy0JCUJPVFRPTUxFRlQsCistCQlCT1RUT01SSUdIVAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZW51bS10eXBlcy5oIiwgY3ByZWZpeCA9 ICJNRVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2RpcmVjdGlvbl9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5EaXJlY3Rpb24geworLQkJVVAsCistCQlET1dO LAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwg dHlwZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IFNoYWRvd01vZGUgeworLQkJQVVUTywKKy0JCUZPUkNFRF9PRkYsCistCQlGT1JDRURfT04KKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXgg PSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFNpZGUgeworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9N CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVz LmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVf Y2hhbmdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpemVDaGFuZ2UgeworLQkJTUFY SU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJRlVMTFNDUkVFTiwKKy0JCVVORlVMTFNDUkVFTgor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZp eCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURFU0tUT1AsCistCQlCT1RUT00s CistCQlOT1JNQUwsCistCQlUT1AsCistCQlET0NLLAorLQkJRlVMTFNDUkVFTiwKKy0JCUZPQ1VT RURfV0lORE9XLAorLQkJT1ZFUlJJREVfUkVESVJFQ1QsCistCQlMQVNUCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RB Ql9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBUYWJMaXN0IHsKKy0JCU5PUk1BTCwKKy0JCURPQ0tTLAorLQkJR1JPVVAsCistCQlO T1JNQUxfQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxh eS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hv d190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlD T04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92 aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0g VmlydHVhbE1vZGlmaWVyIHsKKy0JCVNISUZUX01BU0ssCistCQlDT05UUk9MX01BU0ssCistCQlB TFRfTUFTSywKKy0JCU1FVEFfTUFTSywKKy0JCVNVUEVSX01BU0ssCistCQlIWVBFUl9NQVNLLAor LQkJTU9EMl9NQVNLLAorLQkJTU9EM19NQVNLLAorLQkJTU9ENF9NQVNLLAorLQkJTU9ENV9NQVNL CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJl Zml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3df Y2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlw ZSB7CistCQlXQVlMQU5ELAorLQkJWDExCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9p ZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g V2luZG93TWVudVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlw ZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdp bmRvd1R5cGUgeworLQkJTk9STUFMLAorLQkJREVTS1RPUCwKKy0JCURPQ0ssCistCQlESUFMT0cs CistCQlNT0RBTF9ESUFMT0csCistCQlUT09MQkFSLAorLQkJTUVOVSwKKy0JCVVUSUxJVFksCist CQlTUExBU0hTQ1JFRU4sCistCQlEUk9QRE9XTl9NRU5VLAorLQkJUE9QVVBfTUVOVSwKKy0JCVRP T0xUSVAsCistCQlOT1RJRklDQVRJT04sCistCQlDT01CTywKKy0JCURORCwKKy0JCU9WRVJSSURF X09USEVSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lk IElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0 Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5z dGFuY2VfcG9zID0gNS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMg KE1ldGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLlNjcmVlbiBzY3JlZW4sIE1ldGEuV2luZG93PyB3 aW5kb3csIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9w b3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRh LlByZWZlcmVuY2UgcHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dp bmRvdy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgV2lu ZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUi KV0KKy0JcHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdI VCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0J cHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKy0JcHVibGlj IGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKy0JcHVibGljIGNv bnN0IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNv bnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMg Y29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCistCXB1YmxpYyBj b25zdCBpbnQgTUlOT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGlj IGNvbnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIp XQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlf UFJFRlNfTk9USUZZIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZ OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJN RVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJB VzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi TUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJ WkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Ik1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklS VFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1 YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZh dGVfc2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4 aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRpb25Db250ZXh0 IGdldF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmVwbGFjZV9jdXJyZW50X3dt ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcmVzdGFydCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBxdWl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhf c2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nIG1lc3NhZ2UpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBp bnQgcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdt X2tleWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOwor LX0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRl ci0zLWN1c3RvbS52YWxhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDI5ZTU5Nzdk Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251 bGwKK0BAIC0xLDYgKzAsMCBAQAorLW5hbWVzcGFjZSBNZXRhIHsKKy0JcHVibGljIGFic3RyYWN0 IGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogTWV0YS5EQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uLCBH TGliLkRCdXNJbnRlcmZhY2UgeworLQkJLyogbm90IGV4cG9ydGVkICovCistCQlwdWJsaWMgc2ln bmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JfQorLX0KK2RpZmYgLS1naXQgdmFwaS9s aWJtdXR0ZXItMy5kZXBzIHZhcGkvbGlibXV0dGVyLTMuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0zLmRl cHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJvCistZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWd0aystMy4wCisteDEx CisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2RpZmYgLS1naXQgdmFwaS9s aWJtdXR0ZXItNC5kZXBzIHZhcGkvbGlibXV0dGVyLTQuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAzNjdjMzViOS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci00LmRl cHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDggKzAsMCBAQAorLWdkay0zLjAKKy1nZGstcGl4YnVm LTIuMAorLWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1ndGsrLTMuMAorLW11dHRlci1jbHV0 dGVyLTQKKy1tdXR0ZXItY29nbC00CisteDExCisteGZpeGVzLTQuMAorZGlmZiAtLWdpdCB2YXBp L2xpYm11dHRlci00LnZhcGkgdmFwaS9saWJtdXR0ZXItNC52YXBpCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IGUwZDM1NmEwLi4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTQu dmFwaQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTQyNSArMCwwIEBACistLyogbGlibXV0dGVyLTQu dmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUg KGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0g IjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKy1uYW1lc3BhY2UgTWV0YSB7Cist CW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVj dF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVj dF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1w dHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3Rh Z2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9l bmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVu YWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBm b2N1c19zdGFnZV93aW5kb3cgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCB1aW50MzIgdGltZXN0YW1w KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiLCBjbmFtZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zv cl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3Rh Z2VfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9zdGFnZV9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0g Im1ldGFfZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5 IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9y cyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBn ZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf Z2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5 IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBk aXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKy0JfQorLQluYW1lc3BhY2UgUHJlZnMg eworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJl ZnNfYmVsbF9pc19hdWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIChpbnQg aSwgc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGVi YXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0 X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX21p ZGRsZV9jbGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJh ckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9hY3Rpb25fcmlnaHRfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMg R0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRs ZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9hdXRvX21heGltaXplIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F1 dG9fbWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19yYWlzZSIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIHByZWZzX2dldF9hdXRvX3JhaXNlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9fcmFp c2VfZGVsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9hdXRvX3JhaXNlX2Rl bGF5ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQiKV0KKy0JCXB1YmxpYyBzdGF0aWMg TWV0YS5CdXR0b25MYXlvdXQgcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19n ZXRfY2VudGVyX25ld193aW5kb3dzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0 X2NlbnRlcl9uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2Vy IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHBy ZWZzX2dldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3JfdGhlbWUiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNfZ2V0X2N1cnNvcl90aGVtZSAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF9kaXNhYmxlX3dvcmthcm91bmRzIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgcHJlZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZHJhZ190 aHJlc2hvbGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9kcmFnX3RocmVzaG9s ZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoIildCistCQlwdWJsaWMg c3RhdGljIGludCBwcmVmc19nZXRfZHJhZ2dhYmxlX2JvcmRlcl93aWR0aCAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9keW5hbWljX3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19n ZXRfZHluYW1pY193b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf Z2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBwcmVmc19nZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9mb2N1c19tb2RlIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTW9kZSBwcmVm c19nZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19uZXdfd2luZG93cyIpXQor LQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1c05ld1dpbmRvd3MgcHJlZnNfZ2V0X2ZvY3Vz X25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVlbiAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNf Z2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9u cyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1l dGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBu YW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQorLQkJcHVibGljIHN0YXRp YyBpbnQgcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNl X2J1dHRvbl9tb2RzIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIHBy ZWZzX2dldF9tb3VzZV9idXR0b25fbW9kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25f cmVzaXplIildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbW91c2VfYnV0dG9uX3Jl c2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9udW1fd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRp YyBpbnQgcHJlZnNfZ2V0X251bV93b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3JhaXNlX29u X2NsaWNrIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNr ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBwcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF90aXRsZWJhcl9mb250IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9u dERlc2NyaXB0aW9uIHByZWZzX2dldF90aXRsZWJhcl9mb250ICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Zp c3VhbF9iZWxsIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxs ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMg R0Rlc2t0b3AuVmlzdWFsQmVsbFR5cGUgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfd29ya3NwYWNlX25hbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBz dHJpbmcgcHJlZnNfZ2V0X3dvcmtzcGFjZV9uYW1lIChpbnQgaSk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfd29y a3NwYWNlc19vbmx5X29uX3ByaW1hcnkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19n ZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19pbml0IildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxs c2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3Jl ZW4gKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFj ZXMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBwcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoYm9vbCB3aGV0aGVy KTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGljIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3Bp Yyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9 ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCistCQlwdWJsaWMgc3Rh dGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5k aW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgi LCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmlu ZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2Rp cmVjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9j YWxlX2RpcmVjdGlvbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0 aWwuaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNf ZGVidWdnaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9p c19zeW5jaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfc3luY2luZyAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNf dmVyYm9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcmJvc2UgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3dh eWxhbmRfY29tcG9zaXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3dheWxhbmRfY29t cG9zaXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgbGF0ZXJf YWRkIChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRh X2xhdGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxhdGVyX3JlbW92ZSAodWlu dCBsYXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgi LCBjbmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgcG9wX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcmVjdCIpXQorLQkJcHVi bGljIHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgs IGludCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9z aG93X2RpYWxvZyIpXQorLQkJcHVibGljIHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3Ry aW5nIHR5cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJpbmcgdGltZW91dCwgc3RyaW5nIGRpc3BsYXks IHN0cmluZyBva190ZXh0LCBzdHJpbmcgY2FuY2VsX3RleHQsIHN0cmluZyBpY29uX25hbWUsIGlu dCB0cmFuc2llbnRfZm9yLCBHTGliLlNMaXN0PHZvaWQqPiBjb2x1bW5zLCBHTGliLlNMaXN0PHZv aWQqPiBlbnRyaWVzKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19lcXVhbCIpXQorLQkJcHVibGljIHN0YXRp YyBpbnQgdW5zaWduZWRfbG9uZ19lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5zaWdu ZWRfbG9uZ19oYXNoIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgdW5zaWduZWRfbG9uZ19oYXNo ICh2b2lkKiB2KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcG9wIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgeDExX2Vycm9yX3RyYXBfcG9wIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3BsYXkpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94 MTFfZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHgx MV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5 KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0g Im1ldGFfeDExX2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHgxMV9l cnJvcl90cmFwX3B1c2ggKE1ldGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCB0eXBlX2lkID0g Im1ldGFfYmFja2VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFj a2VuZCA6IEdMaWIuT2JqZWN0LCBHTGliLkluaXRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCBjbmFtZSA9ICJt ZXRhX2dldF9iYWNrZW5kIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZW5k IGdldF9iYWNrZW5kICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNzQ29udHJvbGxlciBnZXRfcmVtb3Rl X2FjY2Vzc19jb250cm9sbGVyICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBn ZXRfc3RhZ2UgKCk7CistCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91cCAodWludCBpZHgp OworLQkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJp YW50cywgc3RyaW5nIG9wdGlvbnMpOworLQkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wg bnVtbG9ja19zdGF0ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50 IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50 IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChi b29sIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwg KCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxl IGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5 bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3Vu ZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFj a2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENs dXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiLCB0eXBlX2lkID0gIm1l dGFfYmFja2dyb3VuZF9hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dy b3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1h dGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIp XQorLQkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBt b25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQg YmFja2dyb3VuZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxlZCwg aW50IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21vbml0 b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFi bGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0 bmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29s IGdyYWRpZW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGludCBncmFkaWVudF9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgZG91YmxlIGdyYWRpZW50X21heF9kYXJrbmVzcyB7IGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5 IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCBtb25pdG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgdmlnbmV0dGUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgZG91YmxlIHZpZ25ldHRlX3NoYXJwbmVzcyB7IGdldDsgc2V0OyB9 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9ncm91cF9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEdyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLklt cGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRHcm91cCAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2dldF90eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dy b3VuZEltYWdlICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3N1Y2Nlc3MgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19s b2FkZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbG9hZGVkICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfY2FjaGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIEJhY2tncm91bmRJbWFnZUNhY2hlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tncm91 bmRJbWFnZUNhY2hlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFja2dyb3Vu ZEltYWdlQ2FjaGUgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kSW1h Z2UgbG9hZCAoR0xpYi5GaWxlIGZpbGUpOworLQkJcHVibGljIHZvaWQgcHVyZ2UgKEdMaWIuRmls ZSBmaWxlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsK Ky0JCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7 CistCQlwdWJsaWMgdm9pZCByZWxlYXNlIChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0 aW9ucyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3RydWN0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZl bnQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50 KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0Nv bXBhY3RdCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyRXZlbnQgeworLQkJcHVibGljIGludCBkdDsK Ky0JCXB1YmxpYyBkb3VibGUgZHg7CistCQlwdWJsaWMgZG91YmxlIGR5OworLQkJcHVibGljIGlu dCBldmVudF9pZDsKKy0JCXB1YmxpYyBib29sIGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxl YXNlZDsKKy0JCXB1YmxpYyB1aW50MzIgdGltZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1 YmxpYyBkb3VibGUgeTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl90cmFja2Vy X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBDdXJzb3JUcmFja2VyIDogR0xpYi5PYmpl Y3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIEN1cnNvclRyYWNrZXIgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5D dXJzb3JUcmFja2VyIGdldF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJ cHVibGljIHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworLQkJcHVibGljIHZv aWQgZ2V0X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7 CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29y X21vdmVkIChmbG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNw bGF5ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9u ZyBzZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBH TGliLlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQg TWV0YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJf b3AgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5HcmFiT3Agb3AsIGJvb2wgcG9pbnRlcl9hbHJl YWR5X2dyYWJiZWQsIGJvb2wgZnJhbWVfYWN0aW9uLCBpbnQgYnV0dG9uLCB1bG9uZyBtb2RtYXNr LCB1aW50MzIgdGltZXN0YW1wLCBpbnQgcm9vdF94LCBpbnQgcm9vdF95KTsKKy0JCXB1YmxpYyB2 b2lkIGNsZWFyX21vdXNlX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBjbG9zZSAodWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBlbmRfZ3JhYl9vcCAodWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJ cHVibGljIGludCBnZXRfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRf Y3VycmVudF90aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5k dHJpcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9mb2N1c193aW5kb3cg KCk7CistCQlwdWJsaWMgTWV0YS5HcmFiT3AgZ2V0X2dyYWJfb3AgKCk7CistCQlwdWJsaWMgdWlu dCBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHVpbnQga2V5Y29kZSwgdWxvbmcgbWFzayk7CistCQlw dWJsaWMgdWludDMyIGdldF9sYXN0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rh bmdsZSBnZXRfbW9uaXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wg Z2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBn ZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJs aWMgaW50IGdldF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0 YS5EaXNwbGF5RGlyZWN0aW9uIGRpcik7CistCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgp OworLQkJcHVibGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERl dmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVt YmVyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB2 b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5ZXIgKCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBN ZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEu V2luZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8g d29ya3NwYWNlKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAo TWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/ IHdpbmRvdywgYm9vbCBiYWNrd2FyZCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFj ZU1hbmFnZXIgZ2V0X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9h Y2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFn cyk7CistCQlwdWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRl ci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5Ymlu ZGluZyAoc3RyaW5nIG5hbWUpOworLQkJcHVibGljIHZvaWQgcmVxdWVzdF9wYWRfb3NkIChDbHV0 dGVyLklucHV0RGV2aWNlIHBhZCwgYm9vbCBlZGl0aW9uX21vZGUpOworLQkJcHVibGljIHZvaWQg c2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdl YWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xpYi5TTGlzdDxNZXRh LldpbmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19leHRlbmRlZF9iYXJy aWVycyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWludCBhY3Rpb25faWQp OworLQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0J CXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMy IHRpbWUyKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193aW5kb3cgeyBnZXQ7IH0KKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1 aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1l dGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3Jh Yl9vcF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJP cCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOwor LQkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgdWludCBw MCwgdWludCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVi bGljIHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd19v c2QgKGludCBvYmplY3QsIHN0cmluZyBwMCwgc3RyaW5nIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwg dW5vd25lZCBDbHV0dGVyLkFjdG9yPyBzaG93X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2Ug cGFkLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBzdHJpbmcgbGF5b3V0X3BhdGgsIGJvb2wgZWRp dGlvbl9tb2RlLCBpbnQgbW9uaXRvcl9pZHgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3df cmVzaXplX3BvcHVwIChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50 IHAyKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5n PyBtZXNzYWdlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfY3JlYXRlZCAoTWV0YS5XaW5kb3cg b2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZGVtYW5kc19hdHRlbnRpb24g KE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2VudGVy ZWRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25h bCB2b2lkIHdpbmRvd19sZWZ0X21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cg b2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIERuZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfZW50ZXIgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9w b3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEZyYW1lIHsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2lkbGVfbW9uaXRvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgSWRsZU1vbml0b3IgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgSWRsZU1vbml0b3IgKCk7Cist CQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVk IE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyB1aW50IGFk ZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2Fs bGJhY2spOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Nv cmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9y X2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgp OworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAi Z19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIild CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgS2V5QmluZGluZyB7CistCQlwdWJsaWMgdWlu dCBnZXRfbWFzayAoKTsKKy0JCXB1YmxpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW9kaWZp ZXJzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGlj IGJvb2wgaXNfYnVpbHRpbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JldmVyc2VkICgpOworLQkJ W0NDb2RlIChjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93 bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfbGF1bmNoX2NvbnRleHRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIExhdW5j aENvbnRleHQgOiBHTGliLkFwcExhdW5jaENvbnRleHQgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIExhdW5jaENvbnRleHQgKCk7Cist CQlwdWJsaWMgdm9pZCBzZXRfdGltZXN0YW1wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdl dDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHRp bWVzdGFtcCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBN ZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBl X2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBNb25pdG9yTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0J CXB1YmxpYyBib29sIGNhbl9zd2l0Y2hfY29uZmlnICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdl dF9kaXNwbGF5X2NvbmZpZ3VyYXRpb25fdGltZW91dCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9p c19idWlsdGluX2Rpc3BsYXlfb24gKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zvcl9j b25uZWN0b3IgKHN0cmluZyBjb25uZWN0b3IpOworLQkJcHVibGljIE1ldGEuTW9uaXRvclN3aXRj aENvbmZpZ1R5cGUgZ2V0X3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hf Y29uZmlnIChNZXRhLk1vbml0b3JTd2l0Y2hDb25maWdUeXBlIGNvbmZpZ190eXBlKTsKKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJtX2Rpc3BsYXlf Y2hhbmdlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5hbCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJt ZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2lu IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFs IChNZXRhLk1vZGFsT3B0aW9ucyBvcHRpb25zLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyB2b2lkIGNvbXBsZXRlX2Rpc3BsYXlfY2hhbmdlIChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRv d0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXliaW5kaW5nX2ZpbHRlciAoTWV0YS5L ZXlCaW5kaW5nIGJpbmRpbmcpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQga2lsbF9zd2l0Y2hfd29ya3NwYWNlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQga2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7 CistCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlw ZSBndHlwZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1l dGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWFwX2NvbXBsZXRlZCAoTWV0 YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBtaW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBt aW5pbWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBwbHVnaW5faW5m byAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfdGlsZV9w cmV2aWV3IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50 IHRpbGVfbW9uaXRvcl9udW1iZXIpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01l bnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3cs IE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZSAoTWV0YS5XaW5kb3dB Y3RvciBhY3RvciwgTWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUg b2xkX2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlwdWJs aWMgdm9pZCBzaXplX2NoYW5nZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9jaGFuZ2VkIChNZXRh LldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3dp dGNoX3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGly ZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2VfY29tcGxldGVkICgpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdW5taW5pbWl6ZSAoTWV0YS5X aW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplX2NvbXBsZXRlZCAo TWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgYm9vbCB4ZXZlbnRfZmlsdGVyIChYLkV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9p ZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgUmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBSZW1vdGVB Y2Nlc3NDb250cm9sbGVyICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1l dGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0 YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUmVt b3RlQWNjZXNzSGFuZGxlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsK Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBz dG9wcGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyB7CistCQlwdWJsaWMgaW50IGdldF9mb250X2RwaSAo KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3VpX3NjYWxpbmdfZmFjdG9yICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBy ZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19n ZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCistCVtD b21wYWN0XQorLQlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3Vu ZHMgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2lu ZG93X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBw YWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRvd194LCBpbnQgd2lu ZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5 LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CistCQlwdWJsaWMgTWV0 YS5TaGFkb3cgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0 eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAoKTsKKy0JCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1bHQgKCk7Cist CQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUs IGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRvdyAoTWV0YS5X aW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcgY2xhc3NfbmFt ZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0cmluZyBjbGFz c19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9z aGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVy ZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBD bHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgp OworLQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQg Y2xpcCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7Cist CQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOwor LQkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVy ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9u IG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQg eSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2No YW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNvdW5kUGxheWVyIDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNv dW5kUGxheWVyICgpOworLQkJcHVibGljIHZvaWQgcGxheV9mcm9tX2ZpbGUgKEdMaWIuRmlsZSBm aWxlLCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0g bnVsbCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fdGhlbWUgKHN0cmluZyBuYW1lLCBzdHJp bmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgU3RhZ2UgOiBDbHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhZ2Ug KCk7CistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRpc3Bs YXkpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjdG9yc19wYWludGVkICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRpb24gOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1 cE5vdGlmaWNhdGlvbiAoKTsKKy0JCXB1YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xh dW5jaGVyICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5 IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lk IGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFy dHVwX3NlcXVlbmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFydHVwU2VxdWVu Y2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cFNlcXVlbmNlICgpOworLQkJcHVibGljIHZvaWQg Y29tcGxldGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lk ICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfaWNvbl9uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9p ZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyB1 aW50NjQgZ2V0X3RpbWVzdGFtcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21j bGFzcyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBzdHJp bmcgYXBwbGljYXRpb25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBp Y29uX25hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpZCB7IGdldDsg Y29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJcHVibGljIHVpbnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGlj IHN0cmluZyB3bWNsYXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBpbnQgd29ya3Nw YWNlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGljIHZvaWQgZnJl ZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvdyAo KTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlICh1aW50MzIgY3VycmVudF90aW1lKTsKKy0JCXB1 YmxpYyB2b2lkIGFjdGl2YXRlX3dpdGhfd29ya3NwYWNlICh1aW50MzIgY3VycmVudF90aW1lLCBN ZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX21vdmUgKCk7 CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgYmVnaW5f Z3JhYl9vcCAoTWV0YS5HcmFiT3Agb3AsIGJvb2wgZnJhbWVfYWN0aW9uLCB1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyBib29sIGNhbl9jbG9zZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9t YXhpbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyBi b29sIGNhbl9zaGFkZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2UgKE1ldGEu V29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX2J5 X2luZGV4IChpbnQgc3BhY2VfaW5kZXgsIGJvb2wgYXBwZW5kKTsKKy0JCXB1YmxpYyB2b2lkIGNo ZWNrX2FsaXZlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBj bGllbnRfcmVjdF90b19mcmFtZV9yZWN0IChNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdCk7Cist CQlwdWJsaWMgdm9pZCBjb21wdXRlX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgQGRlbGV0ZSAo dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBmaW5kX3Jv b3RfYW5jZXN0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1cyAodWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2FuY2VzdG9yIChNZXRhLldpbmRvd0ZvcmVhY2hGdW5j IGZ1bmMpOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF90cmFuc2llbnQgKE1ldGEuV2luZG93Rm9y ZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19j bGllbnRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7CistCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9jbGllbnRfbWFjaGluZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0 X2NsaWVudF90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBv c2l0b3JfcHJpdmF0ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRp b24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9ib3VuZHMgKCk7CistCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7CistCQlwdWJsaWMgTWV0YS5G cmFtZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2d0a19hcHBfbWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfZ3RrX2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9n dGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2d0a19tZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9ndGtfdGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf Z3RrX3VuaXF1ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3Rr X3dpbmRvd19vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5 IChvdXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsK Ky0JCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworLQkJcHVibGljIE1ldGEu TWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRv ciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbXV0dGVyX2hpbnRzICgpOworLQkJ cHVibGljIGludCBnZXRfcGlkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9yb2xl ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zYW5kYm94ZWRfYXBwX2lkICgpOwor LQkJcHVibGljIHVpbnQgZ2V0X3N0YWJsZV9zZXF1ZW5jZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93 PyBnZXRfdGlsZV9tYXRjaCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUg KCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdHJhbnNpZW50X2ZvciAoKTsK Ky0JCXB1YmxpYyB1aW50MzIgZ2V0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRv d1R5cGUgZ2V0X3dpbmRvd190eXBlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93 bV9jbGFzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3NfaW5zdGFu Y2UgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRv cnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9jdXJyZW50X21v bml0b3IgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9u aXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3Bh Y2UgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHdpbmRvdyAoKTsK Ky0JCXB1YmxpYyB2b2lkIGdyb3VwX2xlYWRlcl9jaGFuZ2VkICgpOworLQkJcHVibGljIGJvb2wg aGFzX2ZvY3VzICgpOworLQkJcHVibGljIGJvb2wgaXNfYWJvdmUgKCk7CistCQlwdWJsaWMgYm9v bCBpc19hbHdheXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbmNl c3Rvcl9vZl90cmFuc2llbnQgKE1ldGEuV2luZG93IHRyYW5zaWVudCk7CistCQlwdWJsaWMgYm9v bCBpc19hdHRhY2hlZF9kaWFsb2cgKCk7CistCQlwdWJsaWMgYm9vbCBpc19jbGllbnRfZGVjb3Jh dGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29s IGlzX2hpZGRlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX21vbml0b3Jfc2l6ZWQgKCk7CistCQlw dWJsaWMgYm9vbCBpc19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29u X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIGlzX292ZXJyaWRlX3JlZGlyZWN0 ICgpOworLQkJcHVibGljIGJvb2wgaXNfcmVtb3RlICgpOworLQkJcHVibGljIGJvb2wgaXNfc2Ny ZWVuX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2hhZGVkICgpOworLQkJcHVibGljIGJv b2wgaXNfc2tpcF90YXNrYmFyICgpOworLQkJcHVibGljIHZvaWQga2lsbCAoKTsKKy0JCXB1Ymxp YyBib29sIGxvY2F0ZWRfb25fd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOwor LQkJcHVibGljIHZvaWQgbG93ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgpOwor LQkJcHVibGljIHZvaWQgbWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgbWF4aW1p emUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmlt aXplICgpOworLQkJcHVibGljIHZvaWQgbW92ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9v dF94X253LCBpbnQgcm9vdF95X253KTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1l IChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQg aCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1 YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21w b3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0 b3IgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVj dCBwcml2KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CistCQlw dWJsaWMgdm9pZCBzaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzaG92 ZV90aXRsZWJhcl9vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIHNob3dpbmdfb25faXRzX3dv cmtzcGFjZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNodXRkb3duX2dyb3VwICgpOworLQkJcHVibGlj IHZvaWQgc3RpY2sgKCk7CistCQlwdWJsaWMgYm9vbCB0aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsK Ky0JCXB1YmxpYyB2b2lkIHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9m dWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZs YWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIHVuc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgdW5zaGFk ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bnN0aWNrICgpOworLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhYm92ZSB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhcHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlbWFuZHNfYXR0ZW50aW9uIHsg Z2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW4g eyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoIHsgZ2V0 OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9pZCB7IGdldDsgfQorLQkJcHVi bGljIHN0cmluZyBndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1Ymxp YyBzdHJpbmcgZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgZ3RrX3VuaXF1ZV9idXNfbmFtZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfd2lu ZG93X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyB2b2lkKiBpY29uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIG1heGltaXplZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHZvaWQqIG1pbmlfaWNvbiB7IGdldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtaW5pbWl6ZWQgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgbXV0dGVyX2hpbnRzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIG9uX2FsbF93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlc2l6ZWFibGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgc2tpcF90YXNrYmFyIHsgZ2V0OyB9CistCQlwdWJs aWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIHVyZ2VudCB7IGdldDsgfQorLQkJcHVibGljIHVpbnQgdXNlcl90aW1lIHsgZ2V0OyB9 CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIHdpbmRvd190eXBlIHsgZ2V0OyB9CistCQlwdWJs aWMgc3RyaW5nIHdtX2NsYXNzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9zaXRp b25fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByYWlzZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgc2hvd24gKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFu Z2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg V2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93 QWN0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJ cHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Rlc3Ry b3llZCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKy0JCXB1YmxpYyBN ZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFk b3dfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21w bGV0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0 dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IFdpbmRvd0dyb3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3df c2hhcGVfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19zaGFwZV9nZXRfdHlwZSAoKSIsIHVu cmVmX2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3VucmVmIildCistCVtDb21wYWN0XQor LQlwdWJsaWMgY2xhc3MgV2luZG93U2hhcGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFdpbmRvd1NoYXBlIChDYWlyby5SZWdpb24gcmVn aW9uKTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLldpbmRvd1NoYXBlIHNoYXBlX2IpOwor LQkJcHVibGljIHZvaWQgZ2V0X2JvcmRlcnMgKGludCBib3JkZXJfdG9wLCBpbnQgYm9yZGVyX3Jp Z2h0LCBpbnQgYm9yZGVyX2JvdHRvbSwgaW50IGJvcmRlcl9sZWZ0KTsKKy0JCXB1YmxpYyB1aW50 IGhhc2ggKCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3dTaGFwZSBAcmVmICgpOworLQkJcHVibGlj IENhaXJvLlJlZ2lvbiB0b19yZWdpb24gKGludCBjZW50ZXJfd2lkdGgsIGludCBjZW50ZXJfaGVp Z2h0KTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1l dGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBH TGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0 YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldv cmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdo aWNoX21vbml0b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsKKy0JCXB1YmxpYyBHTGliLkxp c3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0 X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmplY3Qp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBvYmpl Y3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX21hbmFnZXJfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgV29ya3NwYWNlTWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNl IGFwcGVuZF9uZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGltZXN0YW1wKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgp OworLQkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3Nw YWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CistCQlwdWJsaWMgdm9pZCBv dmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29y bmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7Cist CQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Us IHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0K Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9u RGlyZWN0aW9uIHAxKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3gxMV9kaXNwbGF5X2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IFgxMURpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c190aGVfbm9fZm9jdXNfd2luZG93 ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNl ICgpOworLQkJcHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKy0JCXB1YmxpYyBpbnQg Z2V0X3NoYXBlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7Cist CQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2lu cHV0X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193 aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFD bG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBDbG9zZURpYWxvZyA6IEdMaWIuT2JqZWN0IHsK Ky0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGZvY3VzICgpOworLQkJcHVibGljIGFic3RyYWN0IHZv aWQgaGlkZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3Zpc2libGUgKCk7CistCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCBzaG93ICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYWJz dHJhY3QgTWV0YS5XaW5kb3cgd2luZG93IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtI YXNFbWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRhLkNsb3NlRGlh bG9nUmVzcG9uc2UgcmVzcG9uc2UpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFJbmhp Yml0U2hvcnRjdXRzRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hv cnRjdXRzX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIEluaGliaXRT aG9ydGN1dHNEaWFsb2cgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBo aWRlICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoKTsKKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGFic3RyYWN0IE1ldGEuV2luZG93IHdpbmRvdyB7IG93bmVkIGdl dDsgY29uc3RydWN0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBy ZXNwb25zZSAoTWV0YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBCdXR0b25M YXlvdXQgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2Vh ayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s0XTsKKy0JCVtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3Nw YWNlcls0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdl YWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworLQkJW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFz X3NwYWNlcls0XTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBz dHJ1Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBN ZXRhLlNpZGUgc2lkZV90eXBlOworLQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBGcmFtZUJv cmRlcnMgeworLQkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9y ZGVyIGludmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHRvdGFsOworLQkJcHVibGljIHZv aWQgY2xlYXIgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdp bkluZm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJsaWMgd2VhayBzdHJp bmcgdmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBhdXRob3I7CistCQlwdWJsaWMgd2Vh ayBzdHJpbmcgbGljZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVy c2lvbiB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworLQkJcHVibGljIHVpbnQgdmVy c2lvbl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CistCQlwdWJsaWMgdWlu dCB2ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7 CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBo ZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19y ZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rhbmds ZT8gY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3Rhbmds ZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMy KTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgYm9vbCBob3Jpel9vdmVybGFw IChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3QgKE1ldGEu UmVjdGFuZ2xlIHNyYzIsIG91dCBNZXRhLlJlY3RhbmdsZSBkZXN0KTsKKy0JCXB1YmxpYyBib29s IG92ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rhbmds ZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgdmVydF9vdmVy bGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CistCQlwdWJsaWMgaW50IHJhZGl1 czsKKy0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CistCQlwdWJsaWMgaW50IHhfb2Zmc2V0OworLQkJ cHVibGljIGludCB5X29mZnNldDsKKy0JCXB1YmxpYyB1aW50OCBvcGFjaXR5OworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1dCB7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0 YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBl bnVtIEJhcnJpZXJEaXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCist CQlORUdBVElWRV9YLAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFf QlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworLQkJTUVOVSwKKy0JCU1J TklNSVpFLAorLQkJTUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xv c2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIENsb3NlRGlh bG9nUmVzcG9uc2UgeworLQkJV0FJVCwKKy0JCUZPUkNFX0NMT1NFCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlV Tk1JTklNSVpFLAorLQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5PTkUsCistCQlERUZBVUxULAor LQkJTk9SVEhfUkVTSVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJV0VTVF9SRVNJWkUsCistCQlF QVNUX1JFU0laRSwKKy0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0laRSwKKy0JCU5FX1JFU0laRSwK Ky0JCU5XX1JFU0laRSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRPVywKKy0JCUJVU1ksCistCQlE TkRfSU5fRFJBRywKKy0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFksCistCQlETkRfVU5TVVBQT1JU RURfVEFSR0VULAorLQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NTSEFJUiwKKy0JCUlCRUFNLAor LQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJt ZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0g RGVidWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0JCVNU QUNLLAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUsCist CQlXSU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAorLQkJ WElORVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlTVEFS VFVQLAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywKKy0J CUNPTVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNw cmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZU LAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCistCQlI T1JJWk9OVEFMLAorLQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BM QVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIERpc3BsYXlDb3JuZXIgeworLQkJVE9QTEVGVCwKKy0JCVRPUFJJR0hULAorLQkJ Qk9UVE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9E SVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0J CUxFRlQsCistCQlSSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBl X2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEVkZ2VU eXBlIHsKKy0JCVdJTkRPVywKKy0JCU1PTklUT1IsCistCQlTQ1JFRU4KKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUNDRVNTLAorLQkJRVJST1IKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV9m bGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3Mg eworLQkJQUxMT1dTX0RFTEVURSwKKy0JCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX01JTklNSVpF LAorLQkJQUxMT1dTX01BWElNSVpFLAorLQkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKKy0JCUFM TE9XU19IT1JJWk9OVEFMX1JFU0laRSwKKy0JCUhBU19GT0NVUywKKy0JCVNIQURFRCwKKy0JCVNU VUNLLAorLQkJTUFYSU1JWkVELAorLQkJQUxMT1dTX1NIQURFLAorLQkJQUxMT1dTX01PVkUsCist CQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCistCQlBQk9WRSwKKy0JCVRJTEVEX0xFRlQs CistCQlUSUxFRF9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8i LCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51 bSBGcmFtZVR5cGUgeworLQkJTk9STUFMLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAor LQkJVVRJTElUWSwKKy0JCU1FTlUsCistCQlCT1JERVIsCistCQlBVFRBQ0hFRCwKKy0JCUxBU1Q7 CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJl Zml4ID0gIk1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCVdJTkRPV19CQVNFLAor LQkJQ09NUE9TSVRPUiwKKy0JCVdBWUxBTkRfUE9QVVAsCistCQlGUkFNRV9CVVRUT04sCistCQlN T1ZJTkcsCistCQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlSRVNJWklOR19ORSwK Ky0JCVJFU0laSU5HX0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5HX1MsCistCQlSRVNJ WklOR19TRSwKKy0JCVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcsCistCQlLRVlCT0FS RF9SRVNJWklOR19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcsCistCQlLRVlCT0FS RF9SRVNJWklOR19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlLRVlCT0FSRF9SRVNJ WklOR19FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FSRF9SRVNJWklOR19T LAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19XCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0Vf IiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2Ug eworLQkJQUxMT1csCistCQlERU5ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5E SU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworLQkJTk9ORSwKKy0JCVdP UktTUEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BBQ0VfMywKKy0JCVdPUktTUEFD RV80LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwKKy0JCVdPUktTUEFDRV83LAor LQkJV09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdPUktTUEFDRV8xMCwKKy0JCVdP UktTUEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktTUEFDRV9MRUZULAorLQkJV09S S1NQQUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09SS1NQQUNFX0RPV04sCistCQlX T1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMsCistCQlTV0lUQ0hfQVBQTElD QVRJT05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJU1dJVENIX0dST1VQX0JBQ0tX QVJELAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lORE9XU19CQUNLV0FSRCwKKy0J CVNXSVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tXQVJELAorLQkJQ1lDTEVfR1JP VVAsCistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xFX1dJTkRPV1MsCistCQlDWUNM RV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAorLQkJQ1lDTEVfUEFORUxTX0JB Q0tXQVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJTl9NRU5VLAorLQkJUEFORUxf UlVOX0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlTRVRfU1BFV19NQVJLLAorLQkJ QUNUSVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFNDUkVFTiwKKy0JCVRPR0dMRV9N QVhJTUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRPR0dMRV9USUxFRF9SSUdIVCwK Ky0JCVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCVRPR0dM RV9TSEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJQkVHSU5fTU9WRSwKKy0JCUJF R0lOX1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNFUywKKy0JCU1PVkVfVE9fV09S S1NQQUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJTU9WRV9UT19XT1JLU1BBQ0Vf MywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV81LAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzcsCistCQlNT1ZFX1RP X1dPUktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8x MiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9SSUdI VCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfRE9XTiwK Ky0JCU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RPX01PTklUT1JfTEVGVCwKKy0J CU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9VUCwKKy0JCU1PVkVf VE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCistCQlSQUlTRSwKKy0JCUxPV0VS LAorLQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpFX0hPUklaT05UQUxMWSwKKy0J CU1PVkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJfTkUsCistCQlNT1ZFX1RPX0NP Uk5FUl9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9WRV9UT19TSURFX04sCistCQlN T1ZFX1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJTU9WRV9UT19TSURFX1csCist CQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJSVNPX05FWFRfR1JPVVAsCist CQlBTFdBWVNfT05fVE9QLAorLQkJU1dJVENIX01PTklUT1IsCistCQlST1RBVEVfTU9OSVRPUiwK Ky0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVf aWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCist CXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRPVywK Ky0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRCwKKy0JCU5PTl9NQVNLQUJMRSwKKy0JCUlHTk9S RV9BVVRPUkVQRUFUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lk ID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5 cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwK Ky0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxl X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMb2NhbGVEaXJlY3Rpb24g eworLQkJTFRSLAorLQkJUlRMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8i LCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdz XQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJU SUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVf aWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVi bGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAorLQkJ S0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT05J VE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZp Z190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdU eXBlIHsKKy0JCUFMTF9NSVJST1IsCistCQlBTExfTElORUFSLAorLQkJRVhURVJOQUwsCistCQlC VUlMVElOLAorLQkJVU5LTk9XTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIs IHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJ UklHSFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlET1dO X1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQg PSAibWV0YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUGFk QWN0aW9uVHlwZSB7CistCQlCVVRUT04sCistCQlSSU5HLAorLQkJU1RSSVAKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7CistCQlNT1VTRV9CVVRUT05fTU9E UywKKy0JCUZPQ1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9XUywKKy0JCUFUVEFDSF9NT0RB TF9ESUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJT05fRE9VQkxFX0NMSUNLX1RJ VExFQkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9SSUdI VF9DTElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlBVVRPX1JBSVNFX0RFTEFZLAor LQkJRk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJVExFQkFSX0ZPTlQsCistCQlO VU1fV09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywKKy0JCUtFWUJJTkRJTkdTLAor LQkJRElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlPVVQsCistCQlXT1JLU1BBQ0Vf TkFNRVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVMTCwKKy0JCVZJU1VBTF9CRUxM X1RZUEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05PTUVfQU5JTUFUSU9OUywKKy0J CUNVUlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVTSVpFX1dJVEhfUklHSFRfQlVU VE9OLAorLQkJRURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NSRUVOLAorLQkJV09SS1NQQUNF U19PTkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAorLQkJQVVUT19N QVhJTUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNIT0xEOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9 ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKy0JCUFVVE8sCistCQlGT1JDRURf T0ZGLAorLQkJRk9SQ0VEX09OCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5 cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpZGUgewor LQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwKKy0J CVVOTUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxMU0NSRUVOCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU3RhY2tMYXllciB7CistCQlERVNLVE9QLAorLQkJ Qk9UVE9NLAorLQkJTk9STUFMLAorLQkJVE9QLAorLQkJRE9DSywKKy0JCU9WRVJSSURFX1JFRElS RUNULAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlw ZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYkxp c3QgeworLQkJTk9STUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwKKy0JCU5PUk1BTF9BTEwKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJf c2hvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0J CUlDT04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxf IiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0Zs YWdzXQorLQlwdWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0J CUNPTlRST0xfTUFTSywKKy0JCUFMVF9NQVNLLAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFT SywKKy0JCUhZUEVSX01BU0ssCistCQlNT0QyX01BU0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0 X01BU0ssCistCQlNT0Q1X01BU0sKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19D TElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd0NsaWVudFR5cGUgeworLQkJV0FZTEFORCwKKy0J CVgxMQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9 ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2lu ZG93TWVudVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X1dJTkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gV2luZG93VHlwZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9D SywKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAor LQkJVVRJTElUWSwKKy0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCistCQlQT1BV UF9NRU5VLAorLQkJVE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5E LAorLQkJT1ZFUlJJREVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0J cHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0 b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRpc3Bs YXksIE1ldGEuV2luZG93IHdpbmRvdywgW0NDb2RlICh0eXBlID0gIkNsdXR0ZXJLZXlFdmVudCoi KV0gQ2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hh bmdlZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDEu OSldCistCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRv dyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKy0JcHVibGlj IGNvbnN0IGludCBDVVJSRU5UX1RJTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNP Tl9OQU1FIildCistCXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9I RUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0 IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIildCist CXB1YmxpYyBjb25zdCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlD Uk9fVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj bmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5J X0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKy0J cHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01J Tk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBQ TFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9S RURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKy0JcHVibGljIGNvbnN0 IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZ X1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNu YW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJ VFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQi KV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj bmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1YmxpYyBjb25zdCBp bnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29s IGFjdGl2YXRlX3Nlc3Npb24gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQg KE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIEdM aWIuT3B0aW9uQ29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGlj IHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlzX3Jl c3RhcnQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHF1aXQgKE1ldGEuRXhpdENv ZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vz c2lvbiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBt ZXNzYWdlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tl eWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0 cmluZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgeDExX2luaXRfZ2Rr X2Rpc3BsYXkgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11 dHRlci01LmRlcHMgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDUwJQor cmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS5kZXBzCityZW5hbWUgdG8gdmFwaS9saWJtdXR0 ZXItNi5kZXBzCitpbmRleCA0OGFhNzU2My4uMjIzNTI1ZTQgMTAwNjQ0CistLS0gdmFwaS9saWJt dXR0ZXItNS5kZXBzCisrKysgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitAQCAtMSw1ICsxLDYgQEAK KyBndGsrLTMuMAorIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY2x1dHRlci01CisrbXV0dGVyLWNs dXR0ZXItNgorIHgxMQorIHhmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAt LWdpdCB2YXBpL2xpYm11dHRlci01LnZhcGkgdmFwaS9saWJtdXR0ZXItNi52YXBpCitzaW1pbGFy aXR5IGluZGV4IDk3JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS52YXBpCityZW5hbWUg dG8gdmFwaS9saWJtdXR0ZXItNi52YXBpCitpbmRleCBiOTVhMjhlNi4uYjM2YmUxYjcgMTAwNjQ0 CistLS0gdmFwaS9saWJtdXR0ZXItNS52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNi52YXBpCitA QCAtMSwxMiArMSwxMCBAQAorLS8qIGxpYm11dHRlci01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGln ZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkg dmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIs IGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2Nw cmVmaXggPSAibWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3Bh Y2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0 YV8iKV0KKyBuYW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFt ZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0 YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkg ZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIp XQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ci KV0KK0BAIC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEu RGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rp c3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5k b3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJt ZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf c3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9u IHJlZ2lvbik7CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVk aWJsZSIpXQorQEAgLTE2NCw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg dm9pZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5 b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBs YXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBs YXN0X2RldmljZV9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVjdCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0 eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorQEAgLTE3NCw3ICsxNzAs NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwg KCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxl IGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5 bGUpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3Vu ZFN0eWxlIHN0eWxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGU/IGZpbGUs IEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3Jh ZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0 dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KK0BAIC0yNzUsNyArMjcxLDcgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9t b3ZlZCAoZmxvYXQgb2JqZWN0LCBmbG9hdCBwMCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vy c29yX21vdmVkIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB2aXNp YmlsaXR5X2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KK0BA IC0zMjcsNiArMzIzLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wgeHNlcnZl cl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJcHVibGlj IE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lk IGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2Ug cDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg Z2xfdmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29w X2JlZ2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3Ag cDEpOworQEAgLTM1MCw2ICszNDcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgd29ya2FyZWFzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDEx X2Rpc3BsYXlfY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9v cGVuZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfc2V0dXAgKCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1kbmQuaCIsIHR5cGVf aWQgPSAibWV0YV9kbmRfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERuZCA6IEdMaWIu T2JqZWN0IHsKK0BAIC0zNzAsMTEgKzM2OCwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEu SWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50IGFkZF91c2Vy X2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2sp OworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7 CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2Rldmlj ZSAoaW50IGRldmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworIAkJ cHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGlj IENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorQEAg LTUzNiwxNSArNTMzLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBjaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3Is IEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBHTGli Lk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGlj IENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CisrCQlw dWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXAp OworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVi bGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBtYXBzKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOwor IAkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFx dWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGlu dCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2Vk ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc291bmQt cGxheWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIildCitA QCAtNzU2LDE3ICs3NTIsMTYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgYWJzdHJhY3Qg Y2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0 ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg V2luZG93QWN0b3IgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWly by5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0 X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4 dHVyZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVy ZSAoKTsKKyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5 bmNfdmlzaWJpbGl0eSAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdl dDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcg c2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZl Y3RzX2NvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsK KysJCXB1YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV93 aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDog Q2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0 ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTgxMyw3ICs4MDgsNyBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0 aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5k ZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOwor KwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXgg KGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChN ZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwg aW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3Nw YWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVi bGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgaW50 IG5ld19pbmRleCk7CitAQCAtODMzLDExICs4MjgsMTMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlw dWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOwor KwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJcHVibGljIGlu dCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVt YmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKyAJCXB1Ymxp YyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7 CisrCQlwdWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdpb24g cmVnaW9uKTsKKyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFgu V2luZG93IHh3aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVy ZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BAIC04 OTksNyArODk2LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9t aWNybzsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGlj IHN0cnVjdCBSZWN0YW5nbGUgeworIAkJcHVibGljIGludCB4OworIAkJcHVibGljIGludCB5Owor QEAgLTE0NDMsNiArMTQ0MCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0 ZV9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVy LkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3Ms IENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRh LkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKyAJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMs IHNpemVfdCBuKTsKK0BAIC0xNDU5LDYgKzE0NTgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGlj IHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0dGVy X2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3 RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBz dGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOwor QEAgLTE0NjcsNSArMTQ2OCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21f bmFtZSAoc3RyaW5nIHdtX25hbWUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9v bCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CitkaWZmIC0t Z2l0IHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20u dmFsYQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4xZTBiOTE3YworLS0t IC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEKK0BAIC0wLDAgKzEs NyBAQAorK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZv cmVfZnJhbWUgeworK30KKysKKytbQ0NvZGUgKGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1Ymxp YyBzdHJ1Y3QgZnJhbWUgeworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNy5kZXBzIHZh cGkvbGlibXV0dGVyLTcuZGVwcworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw Li4yZWY5MTllZQorLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTcuZGVwcworQEAg LTAsMCArMSw2IEBACisrZ3RrKy0zLjAKKytqc29uLWdsaWItMS4wCisrbXV0dGVyLWNsdXR0ZXIt NworK3gxMQorK3hmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2 YXBpL2xpYm11dHRlci0zLnZhcGkgdmFwaS9saWJtdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGlu ZGV4IDc1JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItMy52YXBpCityZW5hbWUgdG8gdmFw aS9saWJtdXR0ZXItNy52YXBpCitpbmRleCAxNzE1YWE4Zi4uOTBjNDE1OTAgMTAwNjQ0CistLS0g dmFwaS9saWJtdXR0ZXItMy52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNy52YXBpCitAQCAtMSwx MiArMSwxMCBAQAorLS8qIGxpYm11dHRlci0zLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRv IG5vdCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdl biwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9u YW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjMiLCBsb3dlcl9jYXNlX2NwcmVmaXgg PSAibWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAi TWV0YSIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0K KyBuYW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJt ZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2 b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxh eSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJ cHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRp c3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KK0BA IC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxh eSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXki KV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3Jv dXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3Nl dF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2Vf aW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lv bik7CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIp XQorQEAgLTQ3LDYgKzQzLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyBN ZXRhLkJ1dHRvbkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9jZW50ZXJfbmV3X3dpbmRvd3MiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRf Y2VudGVyX25ld193aW5kb3dzICgpOworKwkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NoZWNrX2FsaXZlX3RpbWVvdXQi KV0KKysJCXB1YmxpYyBzdGF0aWMgdWludCBwcmVmc19nZXRfY2hlY2tfYWxpdmVfdGltZW91dCAo KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIildCisgCQlwdWJsaWMgc3RhdGlj IGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY3Vy c29yX3NpemUiKV0KK0BAIC03NSw4ICs3Myw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9nbm9tZV9hbmltYXRpb25zIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0 X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90 aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9pZ25vcmVfcmVxdWVz dF9oaWRlX3RpdGxlYmFyICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCisg CQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGlu Z19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIp XQorQEAgLTEwNSw4ICsxMDEsNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGlj IHZvaWQgcHJlZnNfaW5pdCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIildCisg CQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hl dGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19zZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFy IChib29sIHdoZXRoZXIpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIildCisgCQlwdWJs aWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2Vz KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IildCitAQCAtMTE3LDEyICsx MTEsMTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF92ZXJi b3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworIAkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9leHRlcm5hbF9iaW5kaW5nX25h bWVfZm9yX2FjdGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmluZGlu Z19uYW1lX2Zvcl9hY3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rpb24pOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3Ry bmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBz cmMsIHNpemVfdCBuKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0 aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CisgCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZp dHlfdG9fc3RyaW5nIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlf dG9fc3RyaW5nIChpbnQgZ3Jhdml0eSk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5n IGdyYXZpdHlfdG9fc3RyaW5nIChNZXRhLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2lu ZyIpXQorIAkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfc3luY2lu ZyIpXQorQEAgLTE2NSwxMiArMTU3LDEzIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1 bm93bmVkIE1ldGEuRG5kIGdldF9kbmQgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLlJlbW90 ZUFjY2Vzc0NvbnRyb2xsZXIgZ2V0X3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlciAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworKwkJcHVibGljIGJvb2wg aXNfcmVuZGVyaW5nX2hhcmR3YXJlX2FjY2VsZXJhdGVkICgpOworIAkJcHVibGljIHZvaWQgbG9j a19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0 cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIGtleW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9s YXlvdXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IGxhc3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lk IGxhc3RfZGV2aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIs IHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAtMTgwLDcgKzE3 Myw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2Fs bCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZp bGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBz dHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOwor LQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3Jv dW5kU3R5bGUgc3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8gZmls ZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9n cmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENs dXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorQEAgLTE5MCw5ICsxODMsMTggQEAgbmFtZXNwYWNlIE1ldGEg eworIAlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLklt cGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0 YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQor KwkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVj dDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtYmFja2dyb3VuZC1jb250ZW50LmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9jb250 ZW50X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQ29udGVudCA6IEdM aWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIEJhY2tncm91bmRDb250ZW50ICgpOworKwkJ cHVibGljIHN0YXRpYyBDbHV0dGVyLkNvbnRlbnQgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXks IGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tn cm91bmQgYmFja2dyb3VuZCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5h YmxlZCwgaW50IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0 X21vbml0b3IgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9v bCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93 bmVkIGdldDsgc2V0OyB9CitAQCAtMjc3LDE0ICsyNzksMTQgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX2Rpc3Bs YXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBp bnQgeCwgb3V0IGludCB5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50 IHksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworKwkJcHVibGljIGJvb2wgZ2V0X3BvaW50 ZXJfdmlzaWJsZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRl ICgpOworIAkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsK KysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsg b3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hh bmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX2RidXNfZGlzcGxheV9jb25maWdfc2tl bGV0b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERCdXNEaXNwbGF5Q29uZmlnU2tl bGV0b24gOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBEQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1 cnNvcl9tb3ZlZCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdmlz aWJpbGl0eV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCisg CXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworQEAgLTMwOSwzMiArMzExLDM5 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBib29sIGdldF9tb25pdG9yX2luX2Z1bGxz Y3JlZW4gKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfaW5kZXhfZm9y X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvcl9u ZWlnaGJvcl9pbmRleCAoaW50IHdoaWNoX21vbml0b3IsIE1ldGEuRGlzcGxheURpcmVjdGlvbiBk aXIpOworKwkJcHVibGljIGZsb2F0IGdldF9tb25pdG9yX3NjYWxlIChpbnQgbW9uaXRvcik7Cisg CQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOworIAkJcHVibGljIHN0cmluZyBnZXRfcGFk X2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlw ZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3By aW1hcnlfbW9uaXRvciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2VsZWN0aW9uIGdldF9z ZWxlY3Rpb24gKCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0 IGludCBoZWlnaHQpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Tb3VuZFBsYXllciBnZXRfc291 bmRfcGxheWVyICgpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJy ZW50IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKyAJCXB1 YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxp c3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CisgCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldpbmRvdyBnZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFj ZSB3b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworIAkJcHVi bGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2VNYW5hZ2VyIGdldF93b3Jrc3BhY2VfbWFuYWdlciAo KTsKKy0JCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvcik7 CisrCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1l dGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzKTsKKyAJCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11 bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJCXB1 YmxpYyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9p ZCByZXF1ZXN0X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25f bW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOwor KwkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzIChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wg Zm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIEdMaWIuU0xpc3Q8d2Vh ayBNZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1ldGEu V2luZG93PiB3aW5kb3dzKTsKKyAJCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2JhcnJp ZXJzICgpOworIAkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3Rh bXApOworIAkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9pZCk7 CisgCQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJ cHVibGljIHZvaWQgdW5zZXRfaW5wdXRfZm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVi bGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGlt ZTIpOworIAkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorLQkJcHVi bGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQg cDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRl ZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQgcDEpOworKwkJcHVi bGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29y X3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdl ZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLkRpc3BsYXkg b2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIGdyYWJfb3BfZW5kIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwg TWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGluX2Z1bGxzY3JlZW5fY2hh bmdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgYm9vbCBpbml0X3hzZXJ2ZXIgKEdMaWIuVGFzayBv YmplY3QpOworIAkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3Rp dmF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVj dCwgdWludCBwMCwgdWludCBwMSk7CitAQCAtMzQ1LDcgKzM1NCw2IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3Qs IE1ldGEuUmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGludCBwMik7CisgCQlwdWJsaWMgc2lnbmFsIGJv b2wgc2hvd19yZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2FnZSk7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgc3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmplY3QpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0 KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2Jq ZWN0LCBNZXRhLldpbmRvdyBwMCk7CitAQCAtMzU0LDYgKzM2Miw3IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlz cGxheV9zZXR1cCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLWRuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMg Y2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworQEAgLTM2Myw3ICszNzIsNyBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGRuZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgRnJhbWUg eworIAl9CitAQCAtMzc0LDEzICszODMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklk bGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMgdWludCBhZGRfdXNlcl9h Y3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsK KyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOwor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2Ug KGludCBkZXZpY2VfaWQpOworIAkJcHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKyAJCXB1 YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBpZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBD bHV0dGVyLklucHV0RGV2aWNlIGRldmljZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlf ZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUi LCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9r ZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEtl eUJpbmRpbmcgeworIAkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CitAQCAtMzkxLDggKzM5OSwy MSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbQ0NvZGUgKGNuYW1lID0gIm1ldGFfa2V5YmluZGlu Z3Nfc2V0X2N1c3RvbV9oYW5kbGVyIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3Rv bV9oYW5kbGVyIChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxl cik7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oIiwgdHlwZV9pZCA9ICJtZXRhX2xhdW5jaF9jb250ZXh0X2dldF90eXBlICgpIild CisrCXB1YmxpYyBjbGFzcyBMYXVuY2hDb250ZXh0IDogR0xpYi5BcHBMYXVuY2hDb250ZXh0IHsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3Rl ZCBMYXVuY2hDb250ZXh0ICgpOworKwkJcHVibGljIHZvaWQgc2V0X3RpbWVzdGFtcCAodWludDMy IHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfd29ya3NwYWNlIChNZXRhLldvcmtzcGFj ZSB3b3Jrc3BhY2UpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNw bGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRo b2RdCisrCQlwdWJsaWMgdWludCB0aW1lc3RhbXAgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNz b3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlIHsgb3duZWQgZ2V0 OyBzZXQ7IH0KKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBNZXRhLkRC dXNEaXNwbGF5Q29uZmlnU2tlbGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSwgR0xpYi5EQnVzSW50 ZXJmYWNlIHsKKysJcHVibGljIGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5PYmplY3Qgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVk IE1vbml0b3JNYW5hZ2VyICgpOworIAkJcHVibGljIGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7 CitAQCAtNDA3LDYgKzQyOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIG1v bml0b3JzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdl ZF9pbnRlcm5hbCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hh bmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBs dWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworQEAgLTQzMCw2ICs0NTIsOCBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dv cmtzcGFjZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxf d2luZG93X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworKwkJW05vV3JhcHBlcl0K KysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG9jYXRlX3BvaW50ZXIgKCk7CisgCQlwdWJsaWMgc3Rh dGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0b3Ig YWN0b3IpOworQEAgLTQ2NSwyNiArNDg5LDU2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGlj IGNsYXNzIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgUmVtb3RlQWNj ZXNzQ29udHJvbGxlciAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfcmVtb3RlX2FjY2VzcyAo KTsKKysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdF9yZW1vdGVfYWNjZXNzICgpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9n ZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzSGFuZGxlIDogR0xpYi5P YmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ cHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kaXNh YmxlX2FuaW1hdGlvbnMgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0b3AgKCk7CisrCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBib29sIGlzX3JlY29yZGluZyB7IGdldDsgY29u c3RydWN0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RvcHBlZCAoKTsKKyAJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2Vs ZWN0aW9uX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb24gOiBHTGliLk9i amVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlw dWJsaWMgU2VsZWN0aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisrCQlwdWJsaWMgR0xpYi5M aXN0PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90 eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVj dGlvbl90eXBlLCBNZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgYXN5bmMg Ym9vbCB0cmFuc2Zlcl9hc3luYyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBz dHJpbmcgbWltZXR5cGUsIHNzaXplX3Qgc2l6ZSwgR0xpYi5PdXRwdXRTdHJlYW0gb3V0cHV0LCBH TGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJs aWMgdm9pZCB1bnNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBN ZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3duZXJf Y2hhbmdlZCAodWludCBvYmplY3QsIE1ldGEuU2VsZWN0aW9uU291cmNlIHAwKTsKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFf c2VsZWN0aW9uX3NvdXJjZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0aW9u U291cmNlIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlbGVjdGlvblNvdXJjZSAoKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIEdMaWIuTGlzdDxzdHJpbmc+IGdldF9taW1ldHlwZXMgKCk7CisrCQlwdWJsaWMgYm9v bCBpc19hY3RpdmUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBhc3luYyBHTGliLklucHV0U3RyZWFt IHJlYWRfYXN5bmMgKHN0cmluZyBtaW1ldHlwZSwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFi bGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0 aXZhdGVkICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0ZWQgKCk7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9p ZCA9ICJtZXRhX3NlbGVjdGlvbl9zb3VyY2VfbWVtb3J5X2dldF90eXBlICgpIildCisrCXB1Ymxp YyBjbGFzcyBTZWxlY3Rpb25Tb3VyY2VNZW1vcnkgOiBNZXRhLlNlbGVjdGlvblNvdXJjZSB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJNZXRhU2Vs ZWN0aW9uU291cmNlKiIpXQorKwkJcHVibGljIFNlbGVjdGlvblNvdXJjZU1lbW9yeSAoc3RyaW5n IG1pbWV0eXBlLCBHTGliLkJ5dGVzIGNvbnRlbnQpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtc2V0dGluZ3MuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIHsKKyAJCXB1YmxpYyBpbnQgZ2V0 X2ZvbnRfZHBpICgpOworIAkJcHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9z aGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCByZWZfZnVuY3Rp b24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAo KSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCisgCVtDb21wYWN0XQor IAlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKyAJCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3 aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdo dCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoaW50 IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVp Z2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3Rs eSk7CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwg aW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3df aGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJp Y3RseSk7CisgCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHVu cmVmICgpOworIAl9CitAQCAtNDk5LDI4ICs1NTMsNzQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3No YXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJl IDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENs dXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hh cGVkVGV4dHVyZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1 cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3Rhbmds ZUludCBjbGlwKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJl Y3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Rl eHR1cmUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRl X21pcG1hcHMpOworIAkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJl IG1hc2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQg Q2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEg KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBzaXplX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNvdW5kLXBs YXllci5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRfdHlwZSAoKSIpXQorKwlw dWJsaWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU291bmRQbGF5ZXIgKCk7 CisrCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5GaWxlIGZpbGUsIHN0cmluZyBk ZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJCXB1 YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUsIHN0cmluZyBkZXNjcmlwdGlv biwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXN0YWdlLmgiLCB0eXBlX2lkID0gIm1ldGFf c3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5TdGFn ZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFN0YWdlICgpOworIAkJcHVibGljIHN0YXRpYyBib29s IGlzX2ZvY3VzZWQgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBhY3RvcnNfcGFpbnRlZCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1 cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBOb3Rp ZmljYXRpb24gOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNhdGlvbiAoKTsKKysJCXB1 YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgpOworKwkJW05vQWNjZXNz b3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9p ZCA9ICJtZXRhX3N0YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNz IFN0YXJ0dXBTZXF1ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgpOworKwkJcHVibGlj IGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWNv bl9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKysJCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKysJCXB1YmxpYyB1aW50NjQgZ2V0X3RpbWVz dGFtcCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsKKysJCXB1 YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKysJCXB1YmxpYyBzdHJpbmcgYXBwbGljYXRpb25f aWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpY29uX25hbWUgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0OyB9Cisr CQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHVpbnQ2 NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyB3bWNsYXNz IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKysJCVtIYXNFbWl0dGVyXQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNvbXBsZXRl ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3RoZW1lLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBUaGVtZSB7 CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtd2F5bGFuZC1jbGllbnQuaCIsIHR5cGVfaWQgPSAibWV0YV93YXlsYW5k X2NsaWVudF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgV2F5bGFuZENsaWVudCA6IEdM aWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KysJCXB1YmxpYyBXYXlsYW5kQ2xpZW50IChHTGliLlN1YnByb2Nlc3NMYXVuY2hlciBsYXVuY2hl cikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBoaWRlX2Zyb21fd2luZG93X2xp c3QgKE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgYm9vbCBvd25zX3dpbmRvdyAoTWV0 YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyB2b2lkIHNob3dfaW5fd2luZG93X2xpc3QgKE1l dGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgR0xpYi5TdWJwcm9jZXNzIHNwYXdudiAoTWV0 YS5EaXNwbGF5IGRpc3BsYXksIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251 bGxfdGVybWluYXRlZCA9IHRydWUpXSBzdHJpbmdbXSBhcmd2KSB0aHJvd3MgR0xpYi5FcnJvcjsK KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVf aWQgPSAibWV0YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNz IFdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KK0BAIC01NDcsNiArNjQ3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFu Z2xlIGZyYW1lX3JlY3QpOworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVj dCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7Cisr CQlwdWJsaWMgTWV0YS5XaW5kb3dDbGllbnRUeXBlIGdldF9jbGllbnRfdHlwZSAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CisgCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3du ZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworQEAgLTU2MSw2ICs2NjIsNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a191bmlxdWVfYnVz X25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a193aW5kb3dfb2JqZWN0 X3BhdGggKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaWNvbl9nZW9tZXRyeSAob3V0IE1ldGEuUmVj dGFuZ2xlIHJlY3QpOworKwkJcHVibGljIHVpbnQ2NCBnZXRfaWQgKCk7CisgCQlwdWJsaWMgTWV0 YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsKKyAJCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3Mg Z2V0X21heGltaXplZCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CitAQCAtNjEw LDggKzcxMiw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXpl X2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3 LCBpbnQgaCk7CisgCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsK KyAJCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFz c19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2Nv bXBvc2l0b3IgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGli Lk9iamVjdCBwcml2KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7 CitAQCAtNjcyLDI0ICs3NzIsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25h bCB2b2lkIHNob3duICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgdW5tYW5hZ2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdl ZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0 b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKysJCXB1YmxpYyB2b2lk IGZyZWV6ZSAoKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJl Y3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0 YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJl ICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyBib29sIGlz X2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKysJCXB1 YmxpYyB2b2lkIHRoYXcgKCk7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgbWV0YV93aW5kb3cgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgc3RyaW5n IHNoYWRvd19jbGFzcyB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNldDsgfQorKwkJ cHVibGljIHNpZ25hbCB2b2lkIGRhbWFnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZm ZWN0c19jb21wbGV0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdGhhd2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFf d2luZG93X2dyb3VwX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBXaW5kb3dHcm91cCA6 IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0 dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03MjAsNyArODIxLDkgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFf Zm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgaW5kZXggKCk7 CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0 PiBzdHJ1dHMpOworKwkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0 PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMg Ym9vbCBhY3RpdmUgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIHVp bnQgbl93aW5kb3dzIHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC03MzYsMjcg KzgzOSwzMyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtz cGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93 b3Jrc3BhY2VfaW5kZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChp bnQgaW5kZXgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3Bh Y2VfYnlfaW5kZXggKGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3Bh Y2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRp Y2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCBy ZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3Rh bXApOworKwkJcHVibGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdv cmtzcGFjZSwgaW50IG5ld19pbmRleCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1Ymxp YyBpbnQgbGF5b3V0X2NvbHVtbnMgeyBnZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJ cHVibGljIGludCBsYXlvdXRfcm93cyB7IGdldDsgfQorIAkJcHVibGljIGludCBuX3dvcmtzcGFj ZXMgeyBnZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5n ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAs IE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3Bh Y2VzX3Jlb3JkZXJlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfeDExX2Rpc3BsYXlfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgWDEx RGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKHVp bnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9u ICgpOworIAkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMg aW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRf YmFzZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXNfd2luZG93 IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXAp OworKwkJcHVibGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoWC5Yc2VydmVyUmVnaW9u IHJlZ2lvbik7CisgCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChY LldpbmRvdyB4d2luZG93KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oIiwgdHlwZV9jbmFtZSA9ICJNZXRhQ2xvc2VEaWFsb2dJbnRl cmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX2dldF90eXBlICgpIildCitAQCAt Nzc5LDI0ICs4ODgsMjQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJW0hhc0VtaXR0ZXJdCisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jl c3BvbnNlIHJlc3BvbnNlKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0 cnVjdCBCdXR0b25MYXlvdXQgeworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCist CQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s1XTsKKysJCXB1 YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworIAkJW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9u c19oYXNfc3BhY2VyWzVdOworKwkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3Nw YWNlcls0XTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdl YWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzVdOworKwkJcHVibGljIHdlYWsg TWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3Nw YWNlcls1XTsKKysJCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzRd OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CisgCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBl OworIAkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CisgCQlwdWJsaWMgR3RrLkJv cmRlciB2aXNpYmxlOworIAkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxlOworQEAgLTgxMSwx NCArOTIwLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNl bnNlOworIAkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CisgCQlwdWJs aWMgdWludCB2ZXJzaW9uX21ham9yOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKyAJ CXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgdHlwZV9p ZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9n ZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50 IHg7CisgCQlwdWJsaWMgaW50IHk7CitAQCAtODM2LDcgKzk0NSw3IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIp OworIAkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFNo YWRvd1BhcmFtcyB7CisgCQlwdWJsaWMgaW50IHJhZGl1czsKKyAJCXB1YmxpYyBpbnQgdG9wX2Zh ZGU7CitAQCAtODQ0LDEyICs5NTMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGlu dCB5X29mZnNldDsKKyAJCXB1YmxpYyB1aW50OCBvcGFjaXR5OworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IHJlY3Q7CisgCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElS RUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0g Ik1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0 aW9uX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gQmFycmllckRpcmVj dGlvbiB7CisgCQlQT1NJVElWRV9YLAorQEAgLTg1NywyMSArOTY2LDIwIEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCU5FR0FUSVZFX1gsCisgCQlORUdBVElWRV9ZCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZV TkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJN RVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKyAJCU1FTlUsCisg CQlNSU5JTUlaRSwKKyAJCU1BWElNSVpFLAorIAkJQ0xPU0UsCistCQlBUFBNRU5VLAorIAkJTEFT VAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQg PSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJ QUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9uc2UgeworIAkJV0FJ VCwKKyAJCUZPUkNFX0NMT1NFCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQg PSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlw ZV9pZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENv bXBFZmZlY3QgeworIAkJQ1JFQVRFLAorIAkJVU5NSU5JTUlaRSwKK0BAIC04NzksNyArOTg3LDcg QEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTUlOSU1JWkUsCisgCQlOT05FCisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VS U09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8i LCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEN1 cnNvciB7CisgCQlOT05FLAorIAkJREVGQVVMVCwKK0BAIC05MDAsOSArMTAwOCwxMCBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlQT0lOVElOR19IQU5ELAorIAkJQ1JPU1NIQUlSLAorIAkJSUJFQU0s CisrCQlCTEFOSywKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2Rl YnVnX3RvcGljX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVi dWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBEZWJ1Z1Rv cGljIHsKKyAJCVZFUkJPU0UsCitAQCAtOTI4LDkgKzEwMzcsMTAgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJU0hBUEVTLAorIAkJQ09NUE9TSVRPUiwKKyAJCUVER0VfUkVTSVNUQU5DRSwKKy0JCURC VVMKKysJCURCVVMsCisrCQlJTlBVVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0g Im1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9 ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVt IERpcmVjdGlvbiB7CisgCQlMRUZULAorQEAgLTk0MiwyMSArMTA1MiwyMSBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8i LCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BM QVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCisgCXB1 YmxpYyBlbnVtIERpc3BsYXlDb3JuZXIgeworIAkJVE9QTEVGVCwKKyAJCVRPUFJJR0hULAorIAkJ Qk9UVE9NTEVGVCwKKyAJCUJPVFRPTVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9p ZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIs IHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKKyAJCUxFRlQsCisg CQlSSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgi LCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90 eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNw cmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gRWRnZVR5cGUgeworIAkJV0lORE9XLAorIAkJTU9OSVRPUiwK K0BAIC05NjcsMTIgKzEwNzcsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU1VDQ0VTUywKKyAJ CUVSUk9SCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgi LCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0 X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBGcmFtZUZsYWdzIHsKKyAJCUFM TE9XU19ERUxFVEUsCisgCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9XU19BUFBNRU5VLAorIAkJQUxM T1dTX01JTklNSVpFLAorIAkJQUxMT1dTX01BWElNSVpFLAorIAkJQUxMT1dTX1ZFUlRJQ0FMX1JF U0laRSwKK0BAIC05ODQsMTIgKzEwOTMsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQUxMT1dT X1NIQURFLAorIAkJQUxMT1dTX01PVkUsCisgCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcs CisgCQlBQk9WRSwKKyAJCVRJTEVEX0xFRlQsCisgCQlUSUxFRF9SSUdIVAorIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZS QU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGVudW0gRnJhbWVUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURJQUxPRywKK0BAIC0x MDAxLDcgKzExMDksNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlMQVNUOworIAkJcHVibGljIHVu b3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQg PSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAi bWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEdyYWJPcCB7CisgCQlO T05FLAorIAkJV0lORE9XX0JBU0UsCitAQCAtMTAyOCwxMiArMTEzNiwyNiBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKyAJCUtFWUJPQVJEX1JFU0laSU5HX1cK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxP R19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jl c3BvbnNlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFWSVRZXyIsIHR5cGVfaWQgPSAibWV0YV9ncmF2 aXR5X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIEdyYXZpdHkgeworKwkJTk9ORSwKKysJ CU5PUlRIX1dFU1QsCisrCQlOT1JUSCwKKysJCU5PUlRIX0VBU1QsCisrCQlXRVNULAorKwkJQ0VO VEVSLAorKwkJRUFTVCwKKysJCVNPVVRIX1dFU1QsCisrCQlTT1VUSCwKKysJCVNPVVRIX0VBU1Qs CisrCQlTVEFUSUMKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElBTE9HX1JFU1BPTlNFXyIs IHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGVudW0gSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHsK KyAJCUFMTE9XLAorIAkJREVOWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9p ZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElO R19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKyAJCU5PTkUsCisgCQlXT1JL U1BBQ0VfMSwKK0BAIC0xMTIyLDIyICsxMjQ0LDI1IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1P VkVfVE9fU0lERV9XLAorIAkJTU9WRV9UT19DRU5URVIsCisgCQlPVkVSTEFZX0tFWSwKKysJCUxP Q0FURV9QT0lOVEVSX0tFWSwKKyAJCUlTT19ORVhUX0dST1VQLAorIAkJQUxXQVlTX09OX1RPUCwK KyAJCVNXSVRDSF9NT05JVE9SLAorIAkJUk9UQVRFX01PTklUT1IsCisgCQlMQVNUCisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVU QV9LRVlfQklORElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5 cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3By ZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19m bGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdG bGFncyB7CisgCQlOT05FLAorIAkJUEVSX1dJTkRPVywKKyAJCUJVSUxUSU4sCisgCQlJU19SRVZF UlNFRCwKKy0JCU5PTl9NQVNLQUJMRQorKwkJTk9OX01BU0tBQkxFLAorKwkJSUdOT1JFX0FVVE9S RVBFQVQsCisrCQlOT19BVVRPX0dSQUIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRh X2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9s YXRlcl90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7CisgCQlS RVNJWkUsCisgCQlDQUxDX1NIT1dJTkcsCitAQCAtMTE0NiwyNSArMTI3MSwyNSBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlCRUZPUkVfUkVEUkFXLAorIAkJSURMRQorIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElS RUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAi TUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9u X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CisgCQlMVFIs CisgCQlSVEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cu aCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVf ZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhp bWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIE1heGlt aXplRmxhZ3MgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMLAorIAkJQk9USAorIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJlZml4 ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBl ICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKyAJCVBPSU5U RVJfQUxSRUFEWV9HUkFCQkVELAorIAkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIs IGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRh X21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NX SVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBlIHsK KyAJCUFMTF9NSVJST1IsCisgCQlBTExfTElORUFSLAorQEAgLTExNzIsNyArMTI5Nyw3IEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCUJVSUxUSU4sCisgCQlVTktOT1dOCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9O XyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9N T1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKK0BAIC0x MTgzLDcgKzEzMDgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlET1dOX0xFRlQsCisgCQlET1dO X1JJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5o IiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9hY3Rp b25fdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFf cGFkX2FjdGlvbl90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFBhZEFjdGlvblR5 cGUgeworIAkJQlVUVE9OLAorIAkJUklORywKK0BAIC0xMjIzLDMwICsxMzQ4LDM5IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCURSQUdHQUJMRV9CT1JERVJfV0lEVEgsCisgCQlBVVRPX01BWElNSVpF LAorIAkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7CisrCQlEUkFHX1RI UkVTSE9MRCwKKysJCUxPQ0FURV9QT0lOVEVSLAorKwkJQ0hFQ0tfQUxJVkVfVElNRU9VVDsKKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIsIGNwcmVmaXggPSAiTUVU QV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBXyIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQor KwlwdWJsaWMgZW51bSBTZWxlY3Rpb25UeXBlIHsKKysJCVNFTEVDVElPTl9QUklNQVJZLAorKwkJ U0VMRUNUSU9OX0NMSVBCT0FSRCwKKysJCVNFTEVDVElPTl9ETkQsCisrCQlOX1NFTEVDVElPTl9U WVBFUworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNw cmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2hhZG93TW9kZSB7CisgCQlBVVRPLAorIAkJ Rk9SQ0VEX09GRiwKKyAJCUZPUkNFRF9PTgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJt ZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2lkZSB7CisgCQlMRUZULAorIAkJUklHSFQs CisgCQlUT1AsCisgCQlCT1RUT00KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9p ZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0 eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0g U2l6ZUNoYW5nZSB7CisgCQlNQVhJTUlaRSwKKyAJCVVOTUFYSU1JWkUsCisgCQlGVUxMU0NSRUVO LAorIAkJVU5GVUxMU0NSRUVOCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0 YWNrX2xheWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3Rh Y2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU3RhY2tMYXllciB7CisgCQlE RVNLVE9QLAorIAkJQk9UVE9NLAorQEAgLTEyNTYsMTkgKzEzOTAsMTkgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJT1ZFUlJJREVfUkVESVJFQ1QsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNU XyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1Rf IiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVt IFRhYkxpc3QgeworIAkJTk9STUFMLAorIAkJRE9DS1MsCisgCQlHUk9VUCwKKyAJCU5PUk1BTF9B TEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBj cHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190 eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKyAJCUlDT04s CisgCQlJTlNUQU5UTFkKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0 dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0 YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVu dW0gVmlydHVhbE1vZGlmaWVyIHsKKyAJCVNISUZUX01BU0ssCitAQCAtMTI4MiwxNyArMTQxNiwx NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNT0Q0X01BU0ssCisgCQlNT0Q1X01BU0sKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAi TUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRf dHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAi bWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2lu ZG93Q2xpZW50VHlwZSB7CisgCQlXQVlMQU5ELAorIAkJWDExCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01F TlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X1dJTkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKyAJCVdNLAorIAkJQVBQCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4 ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAo KSIpXQorIAlwdWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURFU0tUT1As CitAQCAtMTMxMSw1MSArMTQ0NSw1NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlETkQsCisgCQlP VkVSUklERV9PVEhFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlwdWJs aWMgZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRvciBt b25pdG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5XaW5k b3cgd2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2ZW50KiIpXSBDbHV0dGVyLktl eUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMS45 KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJl bmNlIHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdp bmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9USU1FIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfQ1VSUkVOVF9USU1FIildCisgCXB1YmxpYyBjb25zdCBpbnQgQ1VSUkVOVF9USU1FOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFf REVGQVVMVF9JQ09OX05BTUUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorIAlwdWJsaWMgY29u c3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hF SUdIVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJN RVRBX0lDT05fV0lEVEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUFK T1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNQUpP Ul9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKyAJcHVi bGljIGNvbnN0IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01J TklfSUNPTl9IRUlHSFQiKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1F VEFfTUlOSV9JQ09OX1dJRFRIIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCisgCXB1YmxpYyBjb25z dCBpbnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJ T04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9W RVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIildCisgCXB1YmxpYyBjb25zdCBpbnQgUExV R0lOX0FQSV9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZ X0JFRk9SRV9SRURSQVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVE UkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1l ID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZ IildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJ VFlfUkVEUkFXIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJ T1JJVFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIild CisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tF WUJPQVJEX0lEIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCisgCXB1YmxpYyBjb25z dCBpbnQgVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJf SUQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFZJ UlRVQUxfQ09SRV9QT0lOVEVSX0lEOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3Rh dGljIHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVn X2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVi dWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfaW5pdCAoKTsKKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9p ZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAg KHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQg Z2V0X29wdGlvbl9jb250ZXh0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20g KCk7CitAQCAtMTM2OCw2ICsxNTA4LDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJl Z2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfY2x1dHRlcl9kZWJ1Z19m bGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxh ZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZv aWQgcmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKK0BAIC0xMzc1 LDYgKzE1MTcsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3MpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lk IHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEteDExLWRpc3BsYXkuaCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBz dGF0aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9 CisrW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImxpYm11dHRlci03LWN1c3RvbS5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUgeworK30KKytb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3VzdG9tLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGZyYW1lIHsKKyt9CitkaWZmIC0tZ2l0IHZh cGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDdkYzE4NDc2Li4wMDAwMDAwMAorLS0tIHZhcGkv bGlibXV0dGVyLWNvZ2wtNC52YXBpCisrKysgL2Rldi9udWxsCitAQCAtMSwxMjcyICswLDAgQEAK Ky0vKiBsaWJtdXR0ZXItY29nbC00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBt b2RpZnkuICovCistCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0g IkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIild CistbmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgQml0bWFwIDogQ29nbC5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJpdG1hcCAoKTsKKy0JCXB1YmxpYyBzdGF0 aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEJp dG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQgZ2V0 X2Zvcm1hdCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50 IGdldF9oZWlnaHQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IGludCBnZXRfcm93c3RyaWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5h bWUsIG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBFdWxlciB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9j bG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKy0JcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9t YXRlcmlhbF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIE1hdGVy aWFsIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wu TWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBmb3Jl YWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVu dCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNv bG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlz c2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBf bW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5k ZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0 X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVy cyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNv bG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUg Z2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Q29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2 b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhh RnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChD b2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29s IHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNv bG9yIGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBm bG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9y NHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3Ig ZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9u IChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5kbGUgdGV4dHVyZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50 IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFu dCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsRmls dGVyIG1pbl9maWx0ZXIsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJp eCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xh eWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJv b2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFw X21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQg c2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3Vs YXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXll ciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQkJcHVibGljIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBD b2dsLk1hdGVyaWFsTGF5ZXJUeXBlIGdldF90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9wICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9k ZV9zICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1v ZGUgZ2V0X3dyYXBfbW9kZV90ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vYmplY3RfZ2V0X2d0eXBlICgpIildCist CXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBPYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9iamVjdCAoKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2Zm c2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgT2Zmc2NyZWVuIDogQ29nbC5P YmplY3QsIENvZ2wuRnJhbWVidWZmZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9mZnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgT2Zmc2NyZWVuLnRvX3RleHR1 cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJl ZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90ZXh0dXJlIChDb2dsLlRleHR1cmUg dGV4dHVyZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xh c3MgT25zY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT25zY3JlZW4g KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuT25zY3Jl ZW5EaXJ0eUNsb3N1cmUgYWRkX2RpcnR5X2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3Rhcmdl dF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuRGlydHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5V c2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9j YWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVl blJlc2l6ZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBk ZXN0cm95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVm ZmVyc19jYWxsYmFjayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJs aWMgc3RhdGljIHZvaWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0 aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGlj IGludCBnZXRfYnVmZmVyX2FnZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCist CQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9yZXNpemFibGUgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBoaWRlICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9kaXJ0eV9jYWxsYmFj ayAoQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wu RnJhbWVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNs b3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92 ZV9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoQ29nbC5Cb29sIHJlc2l6YWJs ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzaG93ICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVm ZmVycyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBz d2FwX2J1ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVz KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX3Jl Z2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xf b25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBjbGFzcyBPbnNjcmVlbkRpcnR5Q2xv c3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9yZXNpemVfY2xvc3VyZV9nZXRfZ3R5cGUg KCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGlj IGNsYXNzIE9uc2NyZWVuUmVzaXplQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxp bmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBl bGluZSBjb3B5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgZm9yZWFjaF9sYXllciAoQ29nbC5QaXBlbGluZUxheWVyQ2FsbGJhY2sgY2FsbGJhY2spOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVBbHBo YUZ1bmMgZ2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENv Z2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBn ZXRfY3VsbF9mYWNlX21vZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xv ciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29n bC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19m aWx0ZXIgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21pbl9maWx0ZXIgKGludCBs YXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29n bC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9p bmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3duZWQg Q29nbC5UZXh0dXJlIGdldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBn ZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93 cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90 IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIGludCBnZXRfbl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgQ29nbC5Cb29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5p bmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9y bV9uYW1lKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkhh bmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0 aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVy ZW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf YW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNv bG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wg c2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFu dCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0 IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVk LCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JN YXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxf ZmFjZV9tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9u KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9u dF9mYWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBmcm9udF93aW5kaW5nKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUg KGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJf Y29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJf ZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0ZXIs IENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4 LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29n bC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFi bGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9y OworLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29n bC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVs aW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBl bGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlw ZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFi bGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQg c2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9j YXRpb24sIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVl KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlm b3JtX2Zsb2F0IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNv dW50LCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfdW5pZm9ybV9pbnQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21w b25lbnRzLCBpbnQgY291bnQsIGludCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0 aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9h dCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVidWZm ZXJfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgRnJhbWVidWZmZXIgOiBDb2ds Lk9iamVjdCB7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5C b29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXIgKHVsb25nIGJ1ZmZlcnMsIENvZ2wuQ29sb3Ig Y29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xl YXI0ZiAodWxvbmcgYnVmZmVycywgZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwg ZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZv aWQgZGlzY2FyZF9idWZmZXJzICh1bG9uZyBidWZmZXJzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X211bHRpdGV4dHVyZWRfcmVjdGFuZ2xlIChD b2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBm bG9hdCB5XzIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29y ZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZs b2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGVzIChDb2dsLlBp cGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSBj b29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVs aW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIs IGZsb2F0IHNfMSwgZmxvYXQgdF8xLCBmbG9hdCBzXzIsIGZsb2F0IHRfMik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5n bGVzIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gZmxvYXRbXSBjb29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJcHVibGljIHN0 YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgZmluaXNoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9h dCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9hbHBoYV9iaXRzICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfYmx1ZV9iaXRz ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JN YXNrIGdldF9jb2xvcl9tYXNrICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0 IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf ZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kaXRoZXJfZW5h YmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0 X2dyZWVuX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg aW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pc19zdGVyZW8gKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuTWF0cml4IGdl dF9tb2RlbHZpZXdfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9yZWRfYml0cyAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9zYW1wbGVzX3Blcl9w aXhlbCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgQ29nbC5T dGVyZW9Nb2RlIGdldF9zdGVyZW9fbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF92aWV3cG9ydDRmdiAoW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIG91dCB1bm93bmVkIGZsb2F0IHZpZXdwb3J0WzRdKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfaGVpZ2h0ICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9y dF93aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9h dCBnZXRfdmlld3BvcnRfeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfeSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIGlkZW50aXR5X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwg ZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwZXJzcGVjdGl2 ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX2NsaXAg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX21h dHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBw dXNoX21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8y LCBmbG9hdCB5XzIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHB1c2hfc2Npc3Nvcl9jbGlwIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo dCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBy ZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4 ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4 LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXAp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9z YW1wbGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg cmVzb2x2ZV9zYW1wbGVzX3JlZ2lvbiAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWln aHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0 ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVy IGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJv dGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0 IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2Vu YWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4Iild CistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRo X3dyaXRlX2VuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2RpdGhlcl9lbmFibGVkIChDb2dsLkJvb2wgZGl0aGVyX2VuYWJsZWQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9tb2RlbHZpZXdf bWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0 cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9z YW1wbGVzX3Blcl9waXhlbCAoaW50IHNhbXBsZXNfcGVyX3BpeGVsKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3RlcmVvX21vZGUgKENvZ2wuU3Rl cmVvTW9kZSBzdGVyZW9fbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgdm9pZCBzZXRfdmlld3BvcnQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBm bG9hdCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZs b2F0IHopOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJm YWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRl ICgpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVh cmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuVGV4 dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9kYXRh IChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOwor LQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRs ZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgp OworLQkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlw dWJsaWMgdWludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNlZCAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE4Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdf ZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3Ms IENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGlu dCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1h dCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4 IGRhdGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJl IG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3Ms IENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9m b3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQg aGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9y bWF0IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZSBu ZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgs IGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENv Z2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50 cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKy0JCXB1YmxpYyBDb2dsLkJv b2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50 OCBkYXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChDb2dsLkJvb2wg cHJlbXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb24gKGludCBzcmNf eCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQg ZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1h dCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQgc3Jj X3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50 IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3Ry dWN0IEFuZ2xlIDogaW50MzIgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBCb29sIDogaW50 IHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBl X2lkID0gImNvZ2xfY29sb3JfZ2V0X2d0eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0cnVjdCBDb2xvciB7CistCQlwdWJsaWMgQ29nbC5Db2xvcj8gY29w eSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCog djIpOworLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRf YWxwaGFfYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfZmxvYXQgKCk7CistCQlw dWJsaWMgZmxvYXQgZ2V0X2JsdWUgKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2JsdWVfYnl0ZSAo KTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYmx1ZV9mbG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBn ZXRfZ3JlZW4gKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2dyZWVuX2J5dGUgKCk7CistCQlwdWJs aWMgZmxvYXQgZ2V0X2dyZWVuX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWQgKCk7 CistCQlwdWJsaWMgdWludDggZ2V0X3JlZF9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9y ZWRfZmxvYXQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBpbml0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0 IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGlu aXRfZnJvbV80ZnYgKGZsb2F0IGNvbG9yX2FycmF5KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3Jl ZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2 IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdF9mcm9tX2hzbCAob3V0IENvZ2wuQ29sb3Ig Y29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgc2F0dXJhdGlvbiwgZmxvYXQgbHVtaW5hbmNlKTsKKy0J CXB1YmxpYyB2b2lkIHByZW11bHRpcGx5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfYnl0ZSAodWludDggYWxw aGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Fs cGhhX2Zsb2F0IChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfYmx1ZSAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0 IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9t XzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwg dWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuX2J5dGUg KHVpbnQ4IGdyZWVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9ncmVlbl9mbG9hdCAoZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfYnl0ZSAodWludDggcmVk KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRf ZmxvYXQgKGZsb2F0IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIHZvaWQgdG9faHNsIChvdXQgZmxvYXQgaHVlLCBvdXQgZmxvYXQgc2F0dXJhdGlvbiwgb3V0 IGZsb2F0IGx1bWluYW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCB1bnByZW11bHRpcGx5ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCXB1YmxpYyBzdHJ1Y3QgRGVidWdPYmplY3RUeXBlSW5mbyB7CistCQlw dWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Np bXBsZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3QgSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMgR0xp Yi5UeXBlIGdldF90eXBlICgpOworLQkJcHVibGljIENvZ2wuSGFuZGxlIEByZWYgKCk7CistCQlw dWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfbWF0cml4X2dldF9ndHlwZSAoKSIpXQorLQlw dWJsaWMgc3RydWN0IE1hdHJpeCB7CistCQlwdWJsaWMgZmxvYXQgeHg7CistCQlwdWJsaWMgZmxv YXQgeXg7CistCQlwdWJsaWMgZmxvYXQgeng7CistCQlwdWJsaWMgZmxvYXQgd3g7CistCQlwdWJs aWMgZmxvYXQgeHk7CistCQlwdWJsaWMgZmxvYXQgeXk7CistCQlwdWJsaWMgZmxvYXQgenk7Cist CQlwdWJsaWMgZmxvYXQgd3k7CistCQlwdWJsaWMgZmxvYXQgeHo7CistCQlwdWJsaWMgZmxvYXQg eXo7CistCQlwdWJsaWMgZmxvYXQgeno7CistCQlwdWJsaWMgZmxvYXQgd3o7CistCQlwdWJsaWMg ZmxvYXQgeHc7CistCQlwdWJsaWMgZmxvYXQgeXc7CistCQlwdWJsaWMgZmxvYXQgenc7CistCQlw dWJsaWMgZmxvYXQgd3c7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMg Q29nbC5NYXRyaXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgc3RhdGljIENvZ2wuQm9vbCBlcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJs aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBm bG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQkJcHVibGljIHVub3duZWQg ZmxvYXRbXSBnZXRfYXJyYXkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgQ29nbC5Cb29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7Cist CQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJcHVi bGljIHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9u KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfdHJh bnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19pZGVudGl0eSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5 ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3os IGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdv cmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBm bG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlf MSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlwdWJs aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9u ZWFyLCBmbG9hdCB6X2Zhcik7CistCQlwdWJsaWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5f Y29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3Ry aWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKy0JCXB1YmxpYyB2b2lk IHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2ds LkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlw dWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJs aWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZs b2F0IHosIHJlZiBmbG9hdCB3KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGlu dCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90 IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CistCQlwdWJsaWMg dm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zcG9zZSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHZpZXdfMmRfaW5fZnJ1c3R1bSAo ZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6 X25lYXIsIGZsb2F0IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9pbl9wZXJz cGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6 XzJkLCBmbG9hdCB3aWR0aF8yZCwgZmxvYXQgaGVpZ2h0XzJkKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBPbnNjcmVlbkRpcnR5 SW5mbyB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50 IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBz dHJ1Y3QgVGV4dHVyZVZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9h dCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlwdWJsaWMgZmxvYXQgdHg7CistCQlwdWJsaWMg ZmxvYXQgdHk7CistCQlwdWJsaWMgQ29nbC5Db2xvciBjb2xvcjsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RydWN0IFVzZXJEYXRhS2V5IHsK Ky0JCXB1YmxpYyBpbnQgdW51c2VkOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsQ29sb3JTaXplQ2hlY2siLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBfQ29sb3JTaXplQ2hlY2sgeworLQkJW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90 aW1lX2Fzc2VydF9Db2dsQ29sb3Jfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbE1hdHJpeFNpemVDaGVjayIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IF9NYXRyaXhTaXplQ2hlY2sgeworLQkJ W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29t cGlsZV90aW1lX2Fzc2VydF9Db2dsTWF0cml4X3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xUZXh0dXJlVmVydGV4U2l6 ZUNoZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX1RleHR1cmVW ZXJ0ZXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlw dWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsVGV4dHVyZVZlcnRleF9z aXplOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9BVFRSSUJVVEVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBBdHRyaWJ1dGVUeXBlIHsK Ky0JCUJZVEUsCistCQlVTlNJR05FRF9CWVRFLAorLQkJU0hPUlQsCistCQlVTlNJR05FRF9TSE9S VCwKKy0JCUZMT0FUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JJVE1BUF9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBCaXRtYXBFcnJv ciB7CistCQlGQUlMRUQsCistCQlVTktOT1dOX1RZUEUsCistCQlDT1JSVVBUX0lNQUdFCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX0JMRU5EX1NUUklOR19FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCbGVuZFN0cmluZ0Vycm9yIHsKKy0J CVBBUlNFX0VSUk9SLAorLQkJQVJHVU1FTlRfUEFSU0VfRVJST1IsCistCQlJTlZBTElEX0VSUk9S LAorLQkJR1BVX1VOU1VQUE9SVEVEX0VSUk9SOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVh cmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX0JVRkZFUl9CSVRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtG bGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCdWZmZXJC aXQgeworLQkJQ09MT1IsCistCQlERVBUSCwKKy0JCVNURU5DSUwKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor LQlwdWJsaWMgZW51bSBCdWZmZXJUYXJnZXQgeworLQkJV0lORE9XX0JVRkZFUiwKKy0JCU9GRlND UkVFTl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfQ09MT1JfTUFTS18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBDb2xvck1hc2sgeworLQkJTk9ORSwKKy0JCVJFRCwK Ky0JCUdSRUVOLAorLQkJQkxVRSwKKy0JCUFMUEhBLAorLQkJQUxMCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0RFUFRIX1RF U1RfRlVOQ1RJT05fIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIERlcHRo VGVzdEZ1bmN0aW9uIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFM LAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVY VFVSRV9SRUNUQU5HTEUsCistCQlURVhUVVJFX05QT1QsCistCQlURVhUVVJFX1lVViwKKy0JCVRF WFRVUkVfUkVBRF9QSVhFTFMsCistCQlTSEFERVJTX0dMU0wsCistCQlPRkZTQ1JFRU4sCistCQlP RkZTQ1JFRU5fTVVMVElTQU1QTEUsCistCQlPRkZTQ1JFRU5fQkxJVCwKKy0JCUZPVVJfQ0xJUF9Q TEFORVMsCistCQlTVEVOQ0lMX0JVRkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdO RURfSU5UX0lORElDRVMsCistCQlERVBUSF9SQU5HRSwKKy0JCVRFWFRVUkVfTlBPVF9CQVNJQywK Ky0JCVRFWFRVUkVfTlBPVF9NSVBNQVAsCistCQlURVhUVVJFX05QT1RfUkVQRUFULAorLQkJUE9J TlRfU1BSSVRFLAorLQkJVEVYVFVSRV8zRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1JFQUQsCistCQlN QVBfQlVGRkVSX0ZPUl9XUklURSwKKy0JCU9OU0NSRUVOX01VTFRJUExFLAorLQkJREVQVEhfVEVY VFVSRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBl bnVtIEZpbHRlclJldHVybiB7CistCQlDT05USU5VRSwKKy0JCVJFTU9WRQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0df TU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAor LQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JcHVibGljIGVudW0g RnJhbWVFdmVudCB7CistCQlTWU5DLAorLQkJQ09NUExFVEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVCVUZGRVJf RVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEZyYW1lYnVmZmVy RXJyb3IgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZSQU1FQlVGRkVSX0VSUk9SX0FMTE9D QVRFIildCistCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKy0JCXB1YmxpYyBzdGF0aWMg dWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKy0JCUJZVEUsCist CQlTSE9SVCwKKy0JCUlOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9BTFBIQV9GVU5DXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbEFscGhhRnVuYyB7CistCQlORVZF UiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RF UVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9GSUxURVJfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsRmlsdGVyIHsKKy0J CU5FQVJFU1QsCistCQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElO RUFSX01JUE1BUF9ORUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElORUFS X01JUE1BUF9MSU5FQVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBN YXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZ RVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworLQkJ UkVQRUFULAorLQkJQ0xBTVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJQworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElO RV9BTFBIQV9GVU5DXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBl bGluZUFscGhhRnVuYyB7CistCQlORVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVB TCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9QSVBFTElORV9DVUxMX0ZBQ0VfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J cHVibGljIGVudW0gUGlwZWxpbmVDdWxsRmFjZU1vZGUgeworLQkJTk9ORSwKKy0JCUZST05ULAor LQkJQkFDSywKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfRklMVEVSXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUZpbHRlciB7CistCQlORUFSRVNULAor LQkJTElORUFSLAorLQkJTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCwKKy0JCUxJTkVBUl9NSVBNQVBf TkVBUkVTVCwKKy0JCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKy0JCUxJTkVBUl9NSVBNQVBfTElO RUFSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX1BJUEVMSU5FX1dSQVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZVdyYXBN b2RlIHsKKy0JCVJFUEVBVCwKKy0JCU1JUlJPUkVEX1JFUEVBVCwKKy0JCUNMQU1QX1RPX0VER0Us CistCQlBVVRPTUFUSUMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElYRUxfRk9STUFUXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVu dW0gUGl4ZWxGb3JtYXQgeworLQkJQU5ZLAorLQkJQV84LAorLQkJUkdCXzU2NSwKKy0JCVJHQkFf NDQ0NCwKKy0JCVJHQkFfNTU1MSwKKy0JCVlVViwKKy0JCUdfOCwKKy0JCVJHXzg4LAorLQkJUkdC Xzg4OCwKKy0JCUJHUl84ODgsCistCQlSR0JBXzg4ODgsCistCQlCR1JBXzg4ODgsCistCQlBUkdC Xzg4ODgsCistCQlBQkdSXzg4ODgsCistCQlSR0JBXzEwMTAxMDIsCistCQlCR1JBXzEwMTAxMDIs CistCQlBUkdCXzIxMDEwMTAsCistCQlBQkdSXzIxMDEwMTAsCistCQlSR0JBXzg4ODhfUFJFLAor LQkJQkdSQV84ODg4X1BSRSwKKy0JCUFSR0JfODg4OF9QUkUsCistCQlBQkdSXzg4ODhfUFJFLAor LQkJUkdCQV80NDQ0X1BSRSwKKy0JCVJHQkFfNTU1MV9QUkUsCistCQlSR0JBXzEwMTAxMDJfUFJF LAorLQkJQkdSQV8xMDEwMTAyX1BSRSwKKy0JCUFSR0JfMjEwMTAxMF9QUkUsCistCQlBQkdSXzIx MDEwMTBfUFJFLAorLQkJREVQVEhfMTYsCistCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5D SUxfOAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFJl YWRQaXhlbHNGbGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09M T1JfQlVGRkVSIildCistCQlSRUFEX1BJWEVMU19DT0xPUl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUkVOREVS RVJfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFJlbmRlcmVy RXJyb3IgeworLQkJWExJQl9ESVNQTEFZX09QRU4sCistCQlCQURfQ09OU1RSQUlOVAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9TSEFERVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBTaGFkZXJUeXBlIHsKKy0JCVZFUlRFWCwKKy0JCUZS QUdNRU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1NURVJFT18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IGVudW0gU3RlcmVvTW9kZSB7CistCQlCT1RILAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X1NZU1RFTV9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBTeXN0ZW1FcnJvciB7CistCQlVTlNVUFBPUlRFRCwK Ky0JCU5PX01FTU9SWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX0NPTVBPTkVOVFNfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBlbnVtIFRl eHR1cmVDb21wb25lbnRzIHsKKy0JCUEsCistCQlSRywKKy0JCVJHQiwKKy0JCVJHQkEsCistCQlE RVBUSAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9URVhUVVJFX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBlbnVtIFRleHR1cmVFcnJvciB7Cist CQlTSVpFLAorLQkJRk9STUFULAorLQkJQkFEX1BBUkFNRVRFUiwKKy0JCVRZUEU7CistCQlwdWJs aWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV8iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBlbnVtIFRleHR1cmVGbGFncyB7CistCQlOT05FLAorLQkJTk9fQVVUT19NSVBNQVAsCist CQlOT19TTElDSU5HLAorLQkJTk9fQVRMQVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9UWVBFXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg ZW51bSBUZXh0dXJlVHlwZSB7CistCQlAMkQsCistCQlAM0QsCistCQlSRUNUQU5HTEUKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfVkVSVElDRVNfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBWZXJ0aWNlc01vZGUgeworLQkJUE9JTlRTLAor LQkJTElORVMsCistCQlMSU5FX0xPT1AsCistCQlMSU5FX1NUUklQLAorLQkJVFJJQU5HTEVTLAor LQkJVFJJQU5HTEVfU1RSSVAsCistCQlUUklBTkdMRV9GQU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfV0lORElOR18iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luZGluZyB7CistCQlDTE9DS1dJ U0UsCistCQlDT1VOVEVSX0NMT0NLV0lTRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luc3lzRmVhdHVyZSB7CistCQlNVUxU SVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCistCQlWQkxBTktfQ09VTlRFUiwKKy0J CVZCTEFOS19XQUlULAorLQkJVEVYVFVSRV9GUk9NX1BJWE1BUCwKKy0JCVNXQVBfQlVGRkVSU19F VkVOVCwKKy0JCVNXQVBfUkVHSU9OLAorLQkJU1dBUF9SRUdJT05fVEhST1RUTEUsCistCQlTV0FQ X1JFR0lPTl9TWU5DSFJPTklaRUQsCistCQlCVUZGRVJfQUdFLAorLQkJU1lOQ19BTkRfQ09NUExF VEVfRVZFTlQsCistCQlOX0ZFQVRVUkVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBl Q2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBNYXRlcmlhbExheWVyQ2Fs bGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSld CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9u c2NyZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVl bkRpcnR5SW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaW5zdGFuY2VfcG9zID0gMy45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2Ny ZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNj cmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNr IChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlw dWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZlciBm cmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGhhc190YXJnZXQgPSBmYWxzZSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVz dHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9BRklSU1RfQklUIildCistCXB1YmxpYyBjb25z dCBpbnQgQUZJUlNUX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY25hbWUgPSAiQ09HTF9BX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEFfQklUOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dM X0JHUl9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBCR1JfQklUOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0RFUFRIX0JJVCIpXQor LQlwdWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorLQlwdWJsaWMg Y29uc3QgaW50IFBSRU1VTFRfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCistCXB1YmxpYyBjb25zdCBp bnQgU1RFTkNJTF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNuYW1lID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0KKy0JcHVibGljIGNvbnN0IGlu dCBURVhUVVJFX01BWF9XQVNURTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9n bCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3Ry aW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1 ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVja19leHRlbnNpb25fQ0xVVFRFUiAo c3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl93aW5zeXNf aGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfbWF0cml4X3ByaW50IChDb2ds Lk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg ZGVidWdfb2JqZWN0X2ZvcmVhY2hfdHlwZSAoQ29nbC5EZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2Fs bGJhY2sgZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1 Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfZm9nICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5C b29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxv YXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGdldF9iaXRtYXNrcyAob3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwg b3V0IGludCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVk ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5GcmFt ZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBn ZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRp b25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJv amVjdGlvbl9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3Vy Y2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gb3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4 X2dldF90eXBlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJv b2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZvaWQq IG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhfYnVm ZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0 IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAo ZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVy ZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHBvcF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9t dWx0aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5 MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50 IHRleF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHJlY3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0 IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHky KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzX3dp dGhfdGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtd IHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUs IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19l bmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3Rf ZW5hYmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wu Q29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQg el9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXgg KENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4 IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9z b3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf c291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJs dWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNl X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBo YSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2ds LlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3Bv cnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz aGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRl cl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVy VHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu Qm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcgc291cmNlKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRt YXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVy ZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5h bF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1h dCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVy ZSB0ZXh0dXJlX25ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3Rhcmdl dCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rf d2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWln aHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJp eCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRs ZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmli dXRlVHlwZSB0eXBlLCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCog cG9pbnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxl IGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVm ZmVyX2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29n bC5WZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHZlcnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZl cnRpY2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQg bWF4X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg dmVydGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0 ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2ds LkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGlj ZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNU eXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9 ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQgd2lkdGgsIHVp bnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAoQ29n bC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3Jl ZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX29uc2NyZWVu X3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiB4 aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1hc2tDYWxsYmFj ayB1cGRhdGUpOworLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52 YWxhIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCBiOGQ4MzhkMC4uMDAwMDAwMDAKKy0tLSB2YXBpL211dHRlci1jbHV0dGVy LTUtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1OCArMCwwIEBACistbmFtZXNw YWNlIENsdXR0ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9C T1giLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMg c3RydWN0IEFjdG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2Jv eF9mcm9tX3ZlcnRpY2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2VzIChD bHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKy0gIH0KKy0KKy0gIHB1YmxpYyBzdHJ1Y3QgTWF0cml4 IDogQ29nbC5NYXRyaXggeworLSAgfQorLQorLSAgcHVibGljIGNsYXNzIEJhY2tlbmQgOiBHTGli Lk9iamVjdCB7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRk X29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLSAgICBbTm9XcmFwcGVyXQorLSAg ICBwdWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVycm9y OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIu U3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBH TGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGVu c3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0g ICAgcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2Rldmlj ZV9tYW5hZ2VyICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBDbHV0 dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAg IHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3JhcHBl cl0KKy0gICAgcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVy cm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYXJz ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZp cnR1YWwgdm9pZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgfQorLQorLSAgW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLSAgcHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIu QWN0b3IgeworLSAgICBwdWJsaWMgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2Vy IHsgZ2V0OyBzZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZ UEVfQ09MT1IiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBw dWJsaWMgc3RydWN0IENvbG9yIHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9y X2Zyb21faGxzIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX2hscyAoZmxvYXQgaHVlLCBmbG9h dCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfY29sb3JfZnJvbV9waXhlbCIpXQorLSAgICBwdWJsaWMgQ29sb3IuZnJvbV9waXhlbCAo dWludDMyIHBpeGVsKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21f c3RyaW5nIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7Cist ICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQorLSAgICBw dWJsaWMgYm9vbCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAgICBwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5Db2xvcj8gZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBj b2xvcik7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCist ICBwdWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2JqZWN0IHsKKy0gICAgcHVibGlj IHZvaWQgYWRkIChwYXJhbXMgQ2x1dHRlci5BY3RvcltdIGFjdG9ycyk7CistICAgIFtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQor LSAgICBwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3Bl cnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl9jb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistICAgIHB1YmxpYyBj bGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOwor LSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLSAgW0Nv bXBhY3RdCistICBwdWJsaWMgY2xhc3MgRXZlbnQgeworLSAgICBwdWJsaWMgQ2x1dHRlci5BbnlF dmVudCBhbnkgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQW55RXZlbnQgKikiKV0gZ2V0OyB9 CistICAgIHB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRvbiB7IFtDQ29kZSAoY25hbWUg PSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIu Q3Jvc3NpbmdFdmVudCBjcm9zc2luZyB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJDcm9zc2lu Z0V2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkgeyBb Q0NvZGUgKGNuYW1lID0gIihDbHV0dGVyS2V5RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1Ymxp YyBDbHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJN b3Rpb25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuU2Nyb2xsRXZlbnQg c2Nyb2xsIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9sbEV2ZW50ICopIildIGdldDsg fQorLSAgICBwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUgeyBbQ0Nv ZGUgKGNuYW1lID0gIihDbHV0dGVyU3RhZ2VTdGF0ZUV2ZW50ICopIildIGdldDsgfQorLSAgICBw dWJsaWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRl clRvdWNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkUGlu Y2hFdmVudCB0b3VjaHBhZF9waW5jaCB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBh ZFBpbmNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dp cGVFdmVudCB0b3VjaHBhZF9zd2lwZSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBh ZFN3aXBlRXZlbnQgKikiKV0gZ2V0OyB9CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAi Y2x1dHRlcl9zdGFnZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuR3JvdXAgeworLSAg ICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfcmVkcmF3IildCistICAgIHB1YmxpYyB2b2lkIHJl ZHJhdyAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2Jq ZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3Jl ZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5H ZW9tZXRyeSBnZW9tZXRyeSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFj dCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1Ymxp YyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dyYXBwZXIgKCk7CistICAgIFtO b1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7 CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGlnbm9yaW5nX3JlZHJh d19jbGlwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wg cmVhbGl6ZSAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQg cmVzaXplIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2li bGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVs bHNjcmVlbiAoYm9vbCBpc19mdWxsc2NyZWVuKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIGFic3RyYWN0IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLSAgICBbTm9XcmFw cGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wg aXNfcmVzaXphYmxlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZv aWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBh YnN0cmFjdCB2b2lkIHVucmVhbGl6ZSAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9 ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3Ig eworLSAgICBwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0K Ky0gICAgcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQorLSAg fQorLQorLSAgW0NvbXBhY3RdCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7CistICAgIFtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0gICAgcHVibGljIFRpbWVvdXRQ b29sIChpbnQgcHJpb3JpdHkpOworLSAgfQorLQorLSAgW0NDb2RlIChjcHJlZml4ID0gIkNMVVRU RVJfRkVBVFVSRV8iLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist ICBbRmxhZ3NdCistICBwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLSAgICBURVhUVVJFX05Q T1Q7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIpXQor LSAgICBwdWJsaWMgYm9vbCBpc19hdmFpbGFibGUgKCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0gICAgcHVibGljIHN0YXRpYyBDbHV0dGVyLkZl YXR1cmVGbGFncyBAZ2V0ICgpOworLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRU RVJfVFlQRV9VTklUUyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0gIHB1YmxpYyBzdHJ1Y3QgVW5pdHMgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJf dW5pdHNfZnJvbV9jbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9jbSAoZmxvYXQgY20pOwor LSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbSIpXQorLSAgICBwdWJs aWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9lbV9m b3JfZm9udCAoc3RyaW5nIGZvbnRfbmFtZSwgZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9tbSAo ZmxvYXQgbW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9waXhl bHMiKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLSAgICBbQ0Nv ZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLSAgICBwdWJsaWMgVW5pdHMu ZnJvbV9wdCAoZmxvYXQgcHQpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNf ZnJvbV9zdHJpbmciKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3Ry KTsKKy0gIH0KKy19CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFs YSB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggOTIl CityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKK3JlbmFtZSB0 byB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK2luZGV4IGI4ZDgzOGQwLi44OTIy NGJlNiAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKKysrKyB2 YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK0BAIC0xLDkgKzEsNCBAQAorIG5hbWVz cGFjZSBDbHV0dGVyIHsKKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1Jf Qk9YIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGlj IHN0cnVjdCBBY3RvckJveCB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9i b3hfZnJvbV92ZXJ0aWNlcyIpXQorLSAgICBwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAo Q2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CistICB9CisgCisgICBwdWJsaWMgc3RydWN0IE1hdHJp eCA6IENvZ2wuTWF0cml4IHsKKyAgIH0KK0BAIC0xOCw4ICsxMyw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVf Y29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CisgICAgIFtOb1dyYXBwZXJdCistICAgIHB1 YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFu YWdlciAoKTsKKy0gICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgQ2x1dHRlci5G ZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJs aWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworQEAgLTgzLDEwICs3Niw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAKKyAgIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorICAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2Jq ZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3Jl ZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5H ZW9tZXRyeSBnZW9tZXRyeSk7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyBhYnN0cmFj dCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CisgICAgIFtOb1dyYXBwZXJdCitkaWZmIC0tZ2l0 IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitz aW1pbGFyaXR5IGluZGV4IDYzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRl cHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYuZGVwcworaW5kZXggM2Y1YTkyYTYu LjdhNzBkNmRmIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzCisrKysgdmFw aS9tdXR0ZXItY2x1dHRlci02LmRlcHMKK0BAIC0xLDQgKzEsNCBAQAorIGF0aworIGNhaXJvCisg anNvbi1nbGliLTEuMAorLW11dHRlci1jb2dsLTUKKyttdXR0ZXItY29nbC02CitkaWZmIC0tZ2l0 IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitz aW1pbGFyaXR5IGluZGV4IDkzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZh cGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYudmFwaQoraW5kZXggMjRmN2Y2YjEu LjAxMzBhOTNjIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpCisrKysgdmFw aS9tdXR0ZXItY2x1dHRlci02LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8qIG11dHRlci1jbHV0 dGVyLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBt dXR0ZXItY2x1dHRlci02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnku ICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNs dXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJf IildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0 ZXIiLCBnaXJfdmVyc2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIild CisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0gIkNMVVRURVJfS0VZ XzAiKV0KK0BAIC00NjYxLDIyICs0NjYxLDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFsbG9jYXRpb25GbGFn cyBmbGFncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B bmltYXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgLi4uKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRl X3dpdGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhh diAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9w cm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0 aF9wb3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmUg KHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIC4uLik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRo X3RpbWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgW0NDb2Rl IChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0g Im5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFs dWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBhbmltYXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0 cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBs eV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBD bHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90cmFu c2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2ludDNE IHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbTm9XcmFw cGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0dGVy Lk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5WZXJ0ZXgg cG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChHcmFwaGVu ZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIHZvaWQgYmluZF9tb2RlbCAo R0xpYi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRGdW5j IGNyZWF0ZV9jaGlsZF9mdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00 Njg4LDIwICs0NjgwLDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2Nl bmRhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29u dGludWVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5Q YWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNr IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQg Y3JlYXRlX3BhbmdvX2xheW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50 LCBib29sIGNhcHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fi c19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3Jh cGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5P YmplY3QgZ2V0X2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7 CitAQCAtNDcwOSwxNiArNDcwMCwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg R0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rpb24+IGdldF9hY3Rpb25zICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggZ2V0X2FsbG9j YXRpb25fYm94ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21l dHJ5IGdldF9hbGxvY2F0aW9uX2dlb21ldHJ5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0 b3I/IGFuY2VzdG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0 ZXggdmVydHNbNF0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbmNo b3JfcG9pbnQgKG91dCBmbG9hdCBhbmNob3JfeCwgb3V0IGZsb2F0IGFuY2hvcl95KTsKKysJCXB1 YmxpYyB2b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3Rv ciwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBoZW5lLlBvaW50M0QgdmVydHNb NF0pOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2Fu Y2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29s b3IgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQor QEAgLTQ3NjgsOCArNDc1Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29s IGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAgLTQ4NDgsOCArNDgzMSw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24g Z2V0X3RleHRfZGlyZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJ CXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9y IHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BA IC00ODkyLDcgKzQ4NzMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBo YXNfbWFwcGVkX2Nsb25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1 YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJ CVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hYm92 ZSAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyk7CitAQCAtNDkx MiwxMCArNDg5Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGlzX3Nj YWxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgYm9vbCBp c192aXNpYmxlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9yPyBh Ym92ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuNiIpXQorQEAgLTQ5MjgsMTcgKzQ5MDUsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGJvb2wgbmVlZHNfZXhwYW5kIChDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0 aW9uKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X25vZGUg KENsdXR0ZXIuUGFpbnROb2RlIHJvb3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2 b2lkIHBpY2tfYm94IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRlci5B Y3RvckJveCBib3gpOworIAkJcHVibGljIHZvaWQgcG9wX2ludGVybmFsICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7CisgCQlwdWJsaWMgdm9p ZCBxdWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlw KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rvcj8gYmVsb3cpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIuQWN0aW9uIGFjdGlvbik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk2MCw4ICs0OTMyLDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2VmZmVjdF9ieV9uYW1lIChz dHJpbmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgcmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCist CQlwdWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdfcGFyZW50KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZXBsYWNlX2NoaWxkIChD bHV0dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdfY2hpbGQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MDQ2LDggKzUwMTYsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRvdWJsZSBzY2FsZV94LCBkb3Vi bGUgc2NhbGVfeSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxl X2Z1bGwgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgZmxvYXQgY2VudGVyX3gsIGZs b2F0IGNlbnRlcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2Nh bGVfd2l0aF9ncmF2aXR5IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIENsdXR0ZXIu R3Jhdml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJs aWMgdm9pZCBzZXRfc2NhbGVfeiAoZG91YmxlIHNjYWxlX3opOworIAkJcHVibGljIHZvaWQgc2V0 X3NpemUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworQEAgLTUxMTAsMTEgKzUwNzgsOCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJ cHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IG93bmVkIGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9 CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xpcF90b19hbGxv Y2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxOTksMTIg KzUxNjQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgb3BhY2l0eSB7 IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdl dDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBn ZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9h dCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBvc2l0 aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwb3NpdGlv biB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K K0BAIC01MjI1LDEzICs1MTkwLDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBk b3VibGUgcm90YXRpb25fYW5nbGVfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25f Y2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qg cm90YXRpb25fY2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9u X2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNE IHJvdGF0aW9uX2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlv bl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQz RCByb3RhdGlvbl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0 aW9uX2NlbnRlcl96X2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorQEAgLTUyNTcsNyArNTIyMiw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7 IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsg fQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9u IHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAg LTUzMTksMTEgKzUyODQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIGJvb2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50KTsK KyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQg KENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3NldCAoQ2x1 dHRlci5BY3Rvcj8gb2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0 ZXIuQ29sb3IgY29sb3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1 dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBxdWV1 ZV9yZWxheW91dCAoKTsKK0BAIC01MzYxLDYgKzUzMjcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGJvb2wgZW5hYmxlZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgc3RyaW5n IG5hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9ub2RlX2dldF90eXBl ICgpIildCisrCXB1YmxpYyBjbGFzcyBBY3Rvck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVy UGFpbnROb2RlKiIpXQorKwkJcHVibGljIEFjdG9yTm9kZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2FsaWduX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgQWxpZ25Db25zdHJhaW50IDog Q2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC01Mzg4LDE5ICs1MzU5LDEyIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bG9uZyBn ZXRfbW9kZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVs aW5lICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1 bG9uZyByZWdpc3Rlcl9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Z1bmMg KENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor IAkJcHVibGljIHZvaWQgc2V0X2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9mdW5jIChvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1bG9uZyBt b2RlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1l bGluZSk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQWxwaGEud2l0aF9mdW5jIChDbHV0 dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCBvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJ CXB1YmxpYyBkb3VibGUgYWxwaGEgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtNTQx MSwzNSArNTM3NSwyNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBjbGFzcyBBbmlt YXRpb24gOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBBbmltYXRpb24gKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlf bmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBiaW5kX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5J bnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24g KCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3Ry aW5nIHByb3BlcnR5X25hbWUpOworIAkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlwdWJs aWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRf b2JqZWN0ICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxp bmUgKCk7CisgCQlwdWJsaWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1l KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIu QWxwaGEgYWxwaGEpOworIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworIAkJcHVibGljIHZvaWQgc2V0 X21vZGUgKHVsb25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmpl Y3Qgb2JqZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGlu ZT8gdGltZWxpbmUpOworLQkJcHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJv cGVydHlfbmFtZSk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUg KHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lk IHVwZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwg aW50ZXJ2YWwpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0 ZXIuQWxwaGEgYWxwaGEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIHVpbnQgZHVyYXRp b24geyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJvb2wgbG9vcCB7IGdldDsgc2V0OyB9CisgCQlw dWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2Jq ZWN0IHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIEdMaWIu T2JqZWN0IG9iamVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5UaW1l bGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHN0YXJ0ZWQgKCk7CisgCX0KK0BAIC01NDYwLDIxICs1NDE1LDE4IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBCYWNrZW5kICgpOworIAkJW05vV3JhcHBlcl0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXAp OworLQkJcHVibGljIHZvaWQgYmVsbF9ub3RpZnkgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVi bGljIHZpcnR1YWwgYm9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJ CVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5k b3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9y OworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQg KENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKysJ CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfZGVmYXVsdF9zZWF0ICgpOworIAkJW05v V3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0 dXJlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENhaXJvLkZvbnRPcHRpb25zIGdldF9mb250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLklucHV0TWV0aG9kIGdldF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRf cmVzb2x1dGlvbiAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGlu aXRfZXZlbnRzICgpOworQEAgLTU0OTYsOTUgKzU0NDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHNl dHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlvdXIg OiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlvdXIgKCk7CistCQlw dWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVuYyBm dW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFscGhhX25vdGlm eSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0 X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgp OworLQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMg Q2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVkIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQor LQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBpbnQg ZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9zdGFydCwgb3V0IGlu dCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZv aWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGlu dCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0OyBz ZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0X3R5cGUgKCkiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIs IHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3BhY2l0eSA6IENsdXR0 ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1 YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgdWludDggb3BhY2l0 eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQsIG91 dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5 X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfZW5k IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3Bh Y2l0eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9zY2Fs ZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlv dXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2 aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEs IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2Nh bGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBv dXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9lbmQsIG91dCBkb3Vi bGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0 YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3Vi bGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfc3RhcnQg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf YmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisg CXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91 dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJpbkFsaWdubWVudCB4 X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIuQmluQWxpZ25tZW50 IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJpbkFs aWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBj aGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJpbkFs aWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRf YWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9h bGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9h bGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTc1OCwzNyArNTYyNiw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2NhaXJvX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIGNsYXNzIENhaXJvVGV4dHVyZSA6IENsdXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxlbWVu dG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIENhaXJvVGV4dHVyZSAodWludCB3aWR0aCwg dWludCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGVfcmVnaW9uIChpbnQgeF9vZmZzZXQsIGludCB5 X29mZnNldCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lk IGdldF9zdXJmYWNlX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGVf cmVjdGFuZ2xlIChDYWlyby5SZWN0YW5nbGVJbnQ/IHJlY3QpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmVzaXplIChib29sIHZhbHVlKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9zdXJmYWNlX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGF1dG9fcmVz aXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQg c3VyZmFjZV9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgdWludCBzdXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBDYWlyby5TdXJmYWNlIGNyZWF0 ZV9zdXJmYWNlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmF3IChDYWlyby5Db250 ZXh0IGNyKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2FudmFzX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBDYW52YXMgOiBHTGliLk9iamVj dCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC01OTIwLDYyICs1NzU3LDI0IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJ cHVibGljIGRvdWJsZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZp Y2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCist CXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERl dmljZU1hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBh ZGRfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5L YmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2 ZW50IHRvX2Rpc2NhcmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXRE ZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZp Y2VfdHlwZSk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2Ug Z2V0X2NvcmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7Cist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0 ICgpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9k ZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRp bmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBn ZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0 dGluZ3MpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRf c3VwcG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5cGVzICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8 d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CistCQlwdWJsaWMgdW5v d25lZCBHTGliLlNMaXN0PENsdXR0ZXIuSW5wdXREZXZpY2U+IHBlZWtfZGV2aWNlcyAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlbW92ZV9kZXZpY2UgKENsdXR0 ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHNlbGVjdF9zdGFnZV9ldmVudHMgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJcHVi bGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5 cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlT ZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0 dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ug ZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1 aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWlu dCBsb2NrZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xp Y2tfdHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tf dHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChD bHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBl IHRpbWVvdXRfdHlwZSwgdWludCBkZWxheSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2Ex MXlfdGltZW91dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Q b2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1 dERldmljZVRvb2wgcDApOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2FjdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBEcmFnQWN0 aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBEcmFnQWN0aW9u ICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0IGRyYWdfYXJl YSk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChHcmFwaGVuZS5SZWN0IGRyYWdfYXJl YSk7CisgCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBnZXRfZHJhZ19heGlzICgpOworIAkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZHJhZ19oYW5kbGUgKCk7CisgCQlwdWJsaWMg dm9pZCBnZXRfZHJhZ190aHJlc2hvbGQgKG91dCB1aW50IHhfdGhyZXNob2xkLCBvdXQgdWludCB5 X3RocmVzaG9sZCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9uX2Nvb3JkcyAob3V0IGZsb2F0 IG1vdGlvbl94LCBvdXQgZmxvYXQgbW90aW9uX3kpOworIAkJcHVibGljIHZvaWQgZ2V0X3ByZXNz X2Nvb3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdD8gZHJhZ19hcmVhKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJlY3Q/IGRyYWdfYXJlYSk7CisgCQlwdWJs aWMgdm9pZCBzZXRfZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOworIAkJcHVibGlj IHZvaWQgc2V0X2RyYWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOworIAkJcHVibGlj IHZvaWQgc2V0X2RyYWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9s ZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9Cisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJ W05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIGJvb2wgZHJhZ19hcmVhX3NldCB7IGdldDsgfQorQEAgLTYwMTEsMTMgKzU4MTAsMTMgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJv b2wgbW9kaWZ5X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOworIAkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0 UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVy LlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0LCBDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxh Z3MpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRl ci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAo Q2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg cG9zdF9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKCk7CisrCQlwdWJsaWMg dmlydHVhbCBib29sIHByZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4 dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9y ZXBhaW50ICgpOworIAl9CitAQCAtNjA2OCw3ICs1ODY3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRf cGFkX2V2ZW50X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0IGRv dWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZv aWQgZ2V0X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2b2lk IGdldF9wb3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVsYXRl ZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjMwOCw3ICs2MTA3LDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIGJvb2wgZ2V0X2F4aXNfdmFsdWUgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBkb3VibGVbXSBheGVzLCBDbHV0dGVyLklucHV0QXhpcyBheGlzLCBvdXQgZG91YmxlIHZhbHVl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY29v cmRzIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBDbHV0dGVyLlBvaW50IHBvaW50 KTsKKysJCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2Vx dWVuY2UsIEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KK0BAIC02MzIyLDcgKzYxMjEsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOwor LQkJcHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzNDQsMTYgKzYxNDMsMTcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9z dGFnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3Byb2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNl YXQgZ2V0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg R0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF92ZW5kb3JfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgZ3JhYiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgYm9vbCBpc19n cm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CistCQlwdWJsaWMgYm9v bCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9k ZXZpY2UpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVp bnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVp bnQgZXZkZXZfa2V5Y29kZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWNvZGVfdG9fZXZk ZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHNl cXVlbmNlX2dldF9ncmFiYmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2Up OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC02MzY5LDEyICs2MTY5LDExIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChD bHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVyXQor KwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfZnJvbV90b29sIChDbHV0dGVyLklucHV0RGV2 aWNlVG9vbCB0b29sKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdl ciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUg ZGV2aWNlX21vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBkZXZpY2Vf bm9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitA QCAtNjM5Nyw2ICs2MTk2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0cmlu ZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQor KwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdldDsg Y29uc3RydWN0OyB9CisgCX0KK0BAIC02NDM0LDcgKzYyMzQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY2FuX3Nob3dfcHJlZWRpdCAoYm9vbCBjYW5fc2hvd19w cmVlZGl0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X2hpbnRzIChDbHV0dGVyLklucHV0 Q29udGVudEhpbnRGbGFncyBoaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3B1cnBv c2UgKENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9zZSBwdXJwb3NlKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lk IHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9p ZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsK KyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9wcmVlZGl0X3RleHQg KHN0cmluZyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CitAQCAtNjQ1Myw3ICs2MjUzLDcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg cmVzZXQgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vy c29yX2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lk IHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9p ZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZz8gcHJlZWRpdCwgdWludCBj dXJzb3IpOworIAkJW05vV3JhcHBlcl0KK0BAIC02NDcwLDcgKzYyNzAsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIGNvbnRlbnRf cHVycG9zZSB7IGdldDsgc2V0OyB9CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBjb21taXQgKHN0cmluZyB0ZXh0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3Jf bG9jYXRpb25fY2hhbmdlZCAoQ2x1dHRlci5SZWN0IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFs IHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKEdyYXBoZW5lLlJlY3Qgb2JqZWN0KTsKKyAJ CVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAo dWludCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBpbnB1dF9wYW5l bF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgb2JqZWN0KTsKK0BAIC02NTQ2LDI3ICs2 MzQ2LDMxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmly dHVhbCBib29sIGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5n by5EaXJlY3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0 X251bV9sb2NrX3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQg KCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGlj IGNsYXNzIExheWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisr CQlwdWJsaWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5n bGUgdmlld3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOwor Kwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2Vy IDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0 dGVyLkFjdG9yQm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxw aGEgYmVnaW5fYW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKyAJCXB1Ymxp YyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFj dG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0 dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9w ZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAo Q2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOwor IAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250 YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZh bHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENs dXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29u dGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisrCQlbTm9X cmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbmRfYW5pbWF0aW9uICgpOworIAkJcHVi bGljIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIG5h bWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVh bCBkb3VibGUgZ2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hpbGRf bWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsK K0BAIC02NjIzLDEyICs2NDI3LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3Rl ZCBPZmZzY3JlZW5FZmZlY3QgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBDb2dsLkhhbmRsZSBjcmVh dGVfdGV4dHVyZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25l ZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91 dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuOCIpXQorIAkJcHVi bGljIGJvb2wgZ2V0X3RhcmdldF9zaXplIChvdXQgZmxvYXQgd2lkdGgsIG91dCBmbG9hdCBoZWln aHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENv Z2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90 YXJnZXQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoQ2x1dHRlci5Q YWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhZ2VfdHVybl9l ZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2 NDUsNiArNjQ0OSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHBl cmlvZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgZmxvYXQgcmFkaXVzIHsgZ2V0OyBzZXQ7IH0K KyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBy ZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9wYWludF9jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRl cl9wYWludF9jb250ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGFp bnRDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25l ZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHBv cF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wu RnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWlu dENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NTQsNyArNjQ2 OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1 cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1 aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0 dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xl IChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIs IGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVk IENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFp bnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChz dHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjcyLDcgKzY0ODcs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZv aWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjgyLDcgKzY0OTcsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg dm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsK KysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxv YXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3NjksMjYgKzY1 ODQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRo IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tf Y29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgp IiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0Nv bXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0 cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOwor KwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVf Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNs YXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFj dF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsK Ky0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgp OworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4 X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMg KENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3By b3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNp dGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC02Nzk4LDMzICs2NjA2LDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8g cHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNl dDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdF9nZXRfdHlwZSAoKSIpXQorLQlbQ29t cGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3Qg eworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5Qb2ludCBvcmlnaW47CistCQlwdWJsaWMgd2VhayBD bHV0dGVyLlNpemUgc2l6ZTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5SZWN0IGFsbG9jICgp OworLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CistCQlwdWJsaWMgYm9vbCBjb250 YWluc19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgYm9vbCBjb250YWlu c19yZWN0IChDbHV0dGVyLlJlY3QgYik7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNvcHkgKCk7 CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyB2b2lk IGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfY2VudGVyIChDbHV0dGVyLlBvaW50IGNlbnRl cik7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRf d2lkdGggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0 X3kgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgaW5pdCAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBpbnNldCAo ZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChDbHV0 dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0PyByZXMpOworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBu b3JtYWxpemUgKCk7CistCQlwdWJsaWMgdm9pZCBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95 KTsKKy0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzX3gsIGZsb2F0IHNfeSk7CistCQlwdWJs aWMgdm9pZCB1bmlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdCByZXMpOworLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCB6ZXJvICgpOworLQl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor IAlwdWJsaWMgY2xhc3MgUmVjdGFuZ2xlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9y LCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworQEAgLTY5MDcsOCArNjY4OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rvcioi KV0KKyAJCXB1YmxpYyBTY3JvbGxBY3RvciAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1v ZGUgZ2V0X3Njcm9sbF9tb2RlICgpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChD bHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChDbHV0 dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKEdyYXBoZW5l LlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChHcmFwaGVuZS5S ZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3Njcm9sbF9tb2RlIChDbHV0dGVyLlNjcm9s bE1vZGUgbW9kZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIHNjcm9sbF9tb2RlIHsg Z2V0OyBzZXQ7IH0KKyAJfQorQEAgLTY5MzAsNiArNjcxMSw0NCBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9zZWF0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWF0IDog R0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorKwkJcHJvdGVjdGVkIFNlYXQgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1 YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mg c2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBiZWxsX25vdGlmeSAoKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBD bHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgY29weV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IHNyYywgQ2x1dHRlci5FdmVu dCBkZXN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2aWNlIGNy ZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUp OworKwkJcHVibGljIHZvaWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7CisrCQlbTm9XcmFwcGVyXQor KwkJcHVibGljIHZpcnR1YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgZXZl bnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEEx MXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIu SW5wdXREZXZpY2UgZ2V0X2tleWJvYXJkICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBD bHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBD bHV0dGVyLklucHV0RGV2aWNlIGdldF9wb2ludGVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3Bv aW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdz KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBv cnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsKKysJCXB1YmxpYyBib29sIGdldF90b3VjaF9t b2RlICgpOworKwkJcHVibGljIHZpcnR1YWwgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERl dmljZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRp bmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2Vs bENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlf c2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJs aWMgdmlydHVhbCB2b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vz c29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0 KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERl dmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5n ZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNr LCB1aW50IGxvY2tlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2Vs bF9jbGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBj bGlja190eXBlKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0 ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91 dFR5cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBw dHJfYTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0 dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCBib29sIGNsaWNrZWQpOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBv YmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2V0 dGluZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJs aWMgY2xhc3MgU2V0dGluZ3MgOiBHTGliLk9iamVjdCB7CitAQCAtNzAwMiwxOCArNjgyMSw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFkZXJNYXRyaXggKCk7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9zaXplX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgU2l6ZSB7CistCQlwdWJsaWMgZmxvYXQgaGVp Z2h0OworLQkJcHVibGljIGZsb2F0IHdpZHRoOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlNp emUgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIGNvcHkgKCk7CistCQlwdWJsaWMg Ym9vbCBlcXVhbHMgKENsdXR0ZXIuU2l6ZSBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNpemUgaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhl aWdodCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NuYXBfY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCXB1YmxpYyBjbGFzcyBTbmFwQ29uc3RyYWlu dCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNzA1MiwxNCArNjg1OSwxMiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0 ZXIuUGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9k ZSwgZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9z aXplIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9h dCBzY2FsZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJ cHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfa2V5X2ZvY3VzICgp OworQEAgLTcwNjcsMTkgKzY4NzIsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZvaWQgZ2V0X21pbmltdW1fc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfbW90aW9u X2V2ZW50c19lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIGJvb2wgZ2V0X25vX2NsZWFyX2hpbnQgKCk7CisgCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVj dGl2ZSBnZXRfcGVyc3BlY3RpdmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IGdldF9yZWRyYXdfY2xpcF9ib3VuZHMgKCk7Cisr CQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRz ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF90aXRsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1Ymxp YyBib29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJv b2wgZ2V0X3VzZV9mb2cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJs aWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCitAQCAtNzA5NCwxNiAr Njg5NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYWNjZXB0 X2ZvY3VzIChib29sIGFjY2VwdF9mb2N1cyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9y IChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9p ZCBzZXRfZm9nIChDbHV0dGVyLkZvZyBmb2cpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorIAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X21pbmltdW1f c2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFi bGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9u b19jbGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wZXJzcGVj dGl2ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAo Ym9vbCB0aHJvdHRsZSk7CitAQCAtNzExMSw4ICs2OTA3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2Vf YWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChi b29sIGZvZyk7CisgCQlwdWJsaWMgdm9pZCBzaG93X2N1cnNvciAoKTsKKyAJCXB1YmxpYyB2b2lk IHRoYXdfdXBkYXRlcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9yZXNvdXJjZV9zY2FsZXMg KCk7CitAQCAtNzEyMiwyMCArNjkxNiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCXB1YmxpYyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9mb2N1 cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg Ym9vbCBub19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlIHsgZ2V0OyBz ZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0 bGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMjAiKV0KK0BAIC03MTU4LDggKzY5NDYsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgR0xpYi5TTGlz dDx3ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOworIAkJcHVibGljIHVub3duZWQg R0xpYi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIwLjgi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0YWdl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0YWdl IGRlZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BA IC03MjA2LDE2ICs2OTkyLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25h bWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5PiBnZXRfa2V5cyAoc3RyaW5nPyBz b3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/ IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXRlICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJpbmc+IGdldF9zdGF0ZXMgKCk7CisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2tleSAoc3RyaW5n PyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmpl Y3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0 cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRpb24pOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgc2V0X2tleSAoc3RyaW5nPyBzb3Vy Y2Vfc3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdCBvYmpl Y3QsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUsIEdMaWIuVmFsdWUgdmFsdWUsIGRv dWJsZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0X2RlbGF5KTsKK0BAIC03MjM2LDI0ICs3MDE2LDgg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBkb3VibGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGRvdWJsZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90YXJn ZXRfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRf dmFsdWUgKEdMaWIuVmFsdWUgdmFsdWUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcyNjUsNTMg KzcwMjksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIENsdXR0ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfdGFibGVfbGF5b3V0X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS40IildCistCXB1Ymxp YyBjbGFzcyBUYWJsZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFu YWdlcioiKV0KKy0JCXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1 dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5 X2FsaWduKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAoKTsKKy0JCXB1YmxpYyB1 aW50IGdldF9jb2x1bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dWludCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9leHBhbmQs IG91dCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBn ZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQgYm9vbCB5 X2ZpbGwpOworLQkJcHVibGljIGludCBnZXRfcm93X2NvdW50ICgpOworLQkJcHVibGljIHVpbnQg Z2V0X3Jvd19zcGFjaW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NwYW4gKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIG91dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQgcm93X3NwYW4pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCXB1 YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW4sIGludCByb3cp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5U YWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2x1bW5fc3BhY2lu ZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf ZWFzaW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9l eHBhbmQsIGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwp OworLQkJcHVibGljIHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJcHVi bGljIHZvaWQgc2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW5fc3Bhbiwg aW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNl X2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMgdWludCBjb2x1bW5fc3BhY2lu ZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5n X2R1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxv bmcgZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgcm93X3NwYWNpbmcg eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmlt YXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFwX2FjdGlvbl9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgVGFw QWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzM5LDcgKzcwNTYsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vyc29yX2Nv bG9yICgpOworIAkJcHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0 IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9y ZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVpbnQgZ2V0 X2N1cnNvcl9zaXplICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxlICgpOwor IAkJcHVibGljIGJvb2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0NTgsNyArNzE3NSw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0ZXIu R2VvbWV0cnkgZ2VvbWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29y X2V2ZW50IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3RleHQgKGlu dCBzdGFydF9wb3MsIGludCBlbmRfcG9zKTsKK0BAIC03NDk3LDkyICs3MjE0LDkgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIFRleHROb2RlIChQYW5nby5MYXlvdXQ/IGxheW91dCwg Q2x1dHRlci5Db2xvcj8gY29sb3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1 cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwg Q2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIFRleHR1cmUgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgVGV4dHVyZS5mcm9tX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rvcioi KV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmlu ZyBmaWxlbmFtZSkgdGhyb3dzIENsdXR0ZXIuVGV4dHVyZUVycm9yOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9iYXNlX3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF9tYXRl cmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRs ZSBnZXRfY29nbF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLlRleHR1cmVRdWFsaXR5IGdldF9maWx0ZXJfcXVhbGl0eSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgYm9vbCBnZXRfa2VlcF9hc3BlY3RfcmF0aW8gKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfZGF0YV9hc3luYyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgaW50IGdldF9tYXhfdGlsZV93YXN0ZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfcGlja193aXRoX2FscGhhICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9yZXBlYXQgKG91dCBib29sIHJlcGVhdF94LCBv dXQgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0 X3N5bmNfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBzZXRfYXJl YV9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBk YXRhLCBib29sIGhhc19hbHBoYSwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQs IGludCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29n bF9tYXRlcmlhbCAoQ29nbC5IYW5kbGUgY29nbF9tYXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfdGV4dHVyZSAoQ29nbC5IYW5kbGUgY29nbF90ZXgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWx0ZXJfcXVhbGl0eSAo Q2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIp XQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9y Z2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9v bCBoYXNfYWxwaGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJw cCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3l1dl9kYXRhIChbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQs IENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfa2VlcF9hc3BlY3RfcmF0aW8gKGJvb2wga2Vl cF9hc3BlY3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2Fz eW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sb2FkX2RhdGFfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3BpY2tfd2l0aF9hbHBoYSAoYm9vbCBwaWNrX3dpdGhfYWxw aGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXBlYXQgKGJvb2wg cmVwZWF0X3gsIGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zeW5jX3NpemUgKGJvb2wgc3luY19zaXplKTsKKysJcHVibGljIGNsYXNzIFRleHR1 cmUgOiBDbHV0dGVyLkFjdG9yIHsKKyAJCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJp YWwgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkaXNhYmxl X3NsaWNpbmcgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIHN0cmluZyBmaWxlbmFtZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlwdWJsaWMg Q2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSB7IGdldDsgc2V0IGNvbnN0cnVj dDsgfQorLQkJcHVibGljIGJvb2wga2VlcF9hc3BlY3RfcmF0aW8geyBnZXQ7IHNldDsgfQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfYXN5bmMgeyBzZXQ7IH0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBsb2FkX2RhdGFfYXN5bmMgeyBzZXQ7IH0KKy0J CXB1YmxpYyBib29sIHBpY2tfd2l0aF9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3kgeyBnZXQ7IHNldDsgfQorLQkJ cHVibGljIGJvb2wgc3luY19zaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGludCB0aWxlX3dhc3RlIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgbG9hZF9maW5pc2hlZCAoR0xpYi5FcnJvciBl cnJvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGl4YnVmX2NoYW5nZSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzaXplX2NoYW5nZSAoaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9ub2RlX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzYwOCw3ICs3MjQyLDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIGJvb2wgZ2V0X2F1dG9fcmV2ZXJzZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVy LlBvaW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIGJvb2wgZ2V0X2N1Ymlj X2Jlemllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnJl bnRfcmVwZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2NDUsNyAr NzI3OSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJvb2wgcmV2ZXJzZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemll cl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwg R3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCitAQCAtNzc0NCw2ICs3Mzc4LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5z Zm9ybV9ub2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBUcmFuc2Zvcm1Ob2RlIDog Q2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBUcmFuc2Zvcm1O b2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNpdGlv bl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgVHJhbnNpdGlvbiA6IENsdXR0ZXIuVGltZWxpbmUsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CitAQCAtNzc4Myw3ICs3NDIyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFZp cnR1YWxJbnB1dERldmljZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV90eXBlICgpOwor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9tYW5hZ2VyICgpOwor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfYWJzb2x1dGVfbW90aW9uICh1aW50NjQgdGlt ZV91cywgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5 X2J1dHRvbiAodWludDY0IHRpbWVfdXMsIHVpbnQzMiBidXR0b24sIENsdXR0ZXIuQnV0dG9uU3Rh dGUgYnV0dG9uX3N0YXRlKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Rpc2NyZXRl X3Njcm9sbCAodWludDY0IHRpbWVfdXMsIENsdXR0ZXIuU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlv biwgQ2x1dHRlci5TY3JvbGxTb3VyY2Ugc2Nyb2xsX3NvdXJjZSk7CitAQCAtNzc5NCwyNSArNzQz MiwyNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlm eV90b3VjaF9kb3duICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUg eSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9tb3Rpb24gKHVpbnQ2NCB0 aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgbm90aWZ5X3RvdWNoX3VwICh1aW50NjQgdGltZV91cywgaW50IHNsb3QpOworLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9t YW5hZ2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0 RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3pvb21fYWN0aW9uX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1YmxpYyBjbGFzcyBab29tQWN0aW9uIDogQ2x1 dHRlci5HZXN0dXJlQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisgCQlwdWJsaWMgWm9vbUFjdGlvbiAo KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7 CistCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9p bnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2lu dCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKEdy YXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIGdldF96b29t X2F4aXMgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfem9vbV9heGlzIChDbHV0dGVyLlpvb21BeGlz IGF4aXMpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgem9vbV9heGlzIHsgZ2V0OyBzZXQ7 IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIENsdXR0ZXIuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgR3JhcGhlbmUu UG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfY25hbWUgPSAiQ2x1dHRlckFu aW1hdGFibGVJbnRlcmZhY2UiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0YWJsZV9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIEFuaW1hdGFibGUgOiBHTGliLk9iamVjdCB7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwg c2luY2UgPSAiMS4wIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGJvb2wg YW5pbWF0ZV9wcm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9uLCBzdHJpbmcgcHJv cGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFsX3Zh bHVlLCBkb3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xpYi5QYXJhbVNwZWMg ZmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworQEAgLTc4MzAsOCArNzQ2OCw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0K KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFk ZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChD bHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor QEAgLTc4NTMsMTAgKzc0ODksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAoc3RyaW5nIGNoaWxkX25hbWUp OworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxk X3Byb3BlcnR5IildCisgCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5k X2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sgY2Fs bGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9yZWFj aF93aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQ2hp bGRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC40IildCitAQCAtNzg3NCw4ICs3NTA2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0ND b2RlICh2ZnVuY19uYW1lID0gInJlbW92ZSIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIHJlbW92ZV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3ZhbGlzdCAoQ2x1dHRlci5BY3Rv ciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJ cHVibGljIGFic3RyYWN0IHZvaWQgc29ydF9kZXB0aF9vcmRlciAoKTsKKyAJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGFjdG9yX2FkZGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC03 ODkyLDcgKzc1MjIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qg dm9pZCBpbnZhbGlkYXRlICgpOworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZV9z aXplICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2Nv bnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUpOworKwkJ cHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg Q2x1dHRlci5QYWludE5vZGUgbm9kZSwgQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4 dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgYXR0YWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KK0BAIC03OTA4LDEwICs3NTM4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorIAlwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRl ci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBh YnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7Cisg CQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAo KTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNzkzOSwxNCArNzU2NSwxNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXpl ICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94 ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2FjdG9yX2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsK KyAJCXB1YmxpYyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9h dCB4MjsKKyAJCXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7Cisr CQlwdWJsaWMgc3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94 IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250 YWlucyAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitA QCAtNzk1NSw4ICs3NTgzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wg ZXF1YWwgKENsdXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVy dGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorQEAgLTgwMDIsNyArNzYyOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xl SW50IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ0xV VFRFUl9UWVBFX0NPTE9SIildCisgCXB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworIAkJcHVibGljIHVp bnQ4IHJlZDsKKyAJCXB1YmxpYyB1aW50OCBncmVlbjsKK0BAIC04MDQxLDI0ICs3NjY3LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVi bGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvZ19nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0IEZvZyB7CistCQlwdWJsaWMg ZmxvYXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0IHpfZmFyOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9n ZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IEdlb21ldHJ5IHsKKy0J CXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyB1aW50IHdpZHRoOwor LQkJcHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeTEpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgdW5p b24gKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisg CXB1YmxpYyBzdHJ1Y3QgS2JkQTExeVNldHRpbmdzIHsKKyAJCXB1YmxpYyBDbHV0dGVyLktleWJv YXJkQTExeUZsYWdzIGNvbnRyb2xzOworQEAgLTgwNjksNyArNzY3Nyw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBp bnQgbW91c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQg eDsKK0BAIC04MTIxLDcgKzc3MjksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg ZG91YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9w YXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0 IFBhdGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgx MzEsNyArNzczOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFs IChDbHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94 ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsK K0BAIC04MTYyLDcgKzc3NzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2Vh ayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZp Y2UgZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNM VVRURVJfVFlQRV9VTklUUyIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1Ymxp YyBzdHJ1Y3QgVW5pdHMgeworIAkJcHVibGljIENsdXR0ZXIuVW5pdHM/IGNvcHkgKCk7CitAQCAt ODE4NiwyMyArNzc5NCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB0 b19waXhlbHMgKCk7CisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfdmVydGV4X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JcHVibGljIHN0cnVjdCBWZXJ0ZXggeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMg ZmxvYXQgeTsKKy0JCXB1YmxpYyBmbG9hdCB6OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5WZXJ0ZXg/IGFsbG9jICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4PyBjb3B5ICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0 ZXIuVmVydGV4IHZlcnRleF9iKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5WZXJ0ZXg/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BQ1RPUl9BTElHTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJf YWN0b3JfYWxpZ25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJcHVibGljIGVudW0gQWN0b3JBbGlnbiB7CitAQCAtODM0MCw2ICs3OTMxLDI3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVC VUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0Zs YWdzXQorKwlwdWJsaWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJ VEVYVFVSRSwKKysJCUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisr CQlTQ0hFRFVMRVIsCisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJ QU5JTUFUSU9OLAorKwkJTEFZT1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQ SU5HLAorKwkJT09CX1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lk ID0gImNsdXR0ZXJfZHJhZ19heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJcHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDcsNiArNzk1OSwxOSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlYX0FYSVMsCisgCQlZX0FYSVMKKyAJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNM VVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdfZmxhZ19nZXRfdHlw ZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0ZsYWcgeworKwkJRElT QUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdTLAorKwkJUkVEUkFX UywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisrCQlESVNBQkxFX09G RlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJUEFJTlRfREVGT1JN X1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1Rf UEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRf dHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50RmxhZ3Mgewor QEAgLTgzOTgsOCArODAyMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGVudW0g RmVhdHVyZUZsYWdzIHsKKyAJCVRFWFRVUkVfTlBPVCwKKyAJCVNXQVBfVEhST1RUTEUsCistCQlU RVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFHRV9TVEFUSUMsCisg CQlTVEFHRV9DVVJTT1IsCisgCQlTSEFERVJTX0dMU0wsCitAQCAtODY1Nyw2ICs4MjgwLDExIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVJFTF9MSU5FX1RPLAorIAkJUkVMX0NVUlZFX1RPCisg CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX0RFQlVHX05PUF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19kZWJ1 Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUGlja0RlYnVn RmxhZyB7CisrCQlQSUNLSU5HCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BJQ0tfIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BpY2tfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCXB1YmxpYyBlbnVtIFBpY2tNb2RlIHsKK0BAIC04ODUxLDEzICs4NDc5LDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJTEVGVCwKKyAJCVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RB QkxFX0FMSUdOTUVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfYWxpZ25tZW50X2dldF90 eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjIyIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFRhYmxlQWxpZ25tZW50 IHsKKy0JCVNUQVJULAorLQkJQ0VOVEVSLAorLQkJRU5ECistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRf RElSRUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0X2RpcmVjdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBlbnVtIFRleHREaXJl Y3Rpb24geworQEAgLTg5MzMsMjggKzg1NTQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ VkFMVUU7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX1RFWFRVUkVfRVJST1JfIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J cHVibGljIGVycm9yZG9tYWluIFRleHR1cmVFcnJvciB7CistCQlPVVRfT0ZfTUVNT1JZLAorLQkJ Tk9fWVVWLAorLQkJQkFEX0ZPUk1BVDsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFy ayAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQor IAlwdWJsaWMgZGVsZWdhdGUgQ2x1dHRlci5BY3RvciBBY3RvckNyZWF0ZUNoaWxkRnVuYyAoR0xp Yi5PYmplY3QgaXRlbSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC4yIildCisgCXB1Ymxp YyBkZWxlZ2F0ZSBkb3VibGUgQWxwaGFGdW5jIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9z ID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBCZWhhdmlv dXJGb3JlYWNoRnVuYyAoQ2x1dHRlci5CZWhhdmlvdXIgYmVoYXZpb3VyLCBDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlw dWJsaWMgZGVsZWdhdGUgYm9vbCBCaW5kaW5nQWN0aW9uRnVuYyAoR0xpYi5PYmplY3QgZ29iamVj dCwgc3RyaW5nIGFjdGlvbl9uYW1lLCB1aW50IGtleV92YWwsIENsdXR0ZXIuTW9kaWZpZXJUeXBl IG1vZGlmaWVycyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIENhbGxi YWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKysJcHVibGljIGRlbGVn YXRlIHZvaWQgRW1pdElucHV0RGV2aWNlRXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0 ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgRXZlbnRGaWx0ZXJGdW5jIChDbHV0 dGVyLkV2ZW50IGV2ZW50KTsKK0BAIC04OTg1LDkgKzg1OTcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklP UklUWV9SRURSQVc7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgc3RhdGljIENs dXR0ZXIuQWN0b3JCb3g/IGFjdG9yX2JveF9hbGxvYyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBiYXNl X2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTkwNTEsOSArODY2MCw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJs aWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdl dF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3Rh dGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTA2MSwxNyArODY2Nyw4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3Vw IGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFi ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3Ry aW5nIGdldF9zY3JpcHRfaWQgKEdMaWIuT2JqZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9rZXlib2FyZCAoQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBn cmFiX3BvaW50ZXIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLklu aXRFcnJvciBpbml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlf bGVuZ3RoX3BvcyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIwLjIiKV0KK0BAIC05MDg3LDI5ICs4Njg0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJ cHVibGljIHN0YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2FkZF9k YXRhX2Z1bGwgKHN0cmluZyB0ZXN0X3BhdGgsIG93bmVkIEdMaWIuVGVzdERhdGFGdW5jIHRlc3Rf ZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVz dF9jaGVja19hY3Rvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2lu dCBwb2ludCwgQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuQWN0b3I/IHJlc3VsdCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVj a19jb2xvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2lu dCwgQ2x1dHRlci5Db2xvciBjb2xvciwgb3V0IENsdXR0ZXIuQ29sb3IgcmVzdWx0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IHRlc3RfZ2V0X3N0YWdlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoaW50IGFyZ2Ms IHN0cmluZyBhcmd2KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMg aW50IHRlc3RfcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdW5ncmFiX2tleWJvYXJkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAlwdWJsaWMgc3RhdGljIHVpbnQgdW5pY29kZV90b19rZXlzeW0gKHVpbnQzMiB3Yyk7Cisg fQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcyB2YXBpL211dHRlci1jbHV0 dGVyLTcuZGVwcworc2ltaWxhcml0eSBpbmRleCA1NCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVy LWNsdXR0ZXItNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK2lu ZGV4IDk1MDk0MDI2Li42YmQxY2NmNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQu ZGVwcworKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy5kZXBzCitAQCAtMSw1ICsxLDQgQEAKKyBh dGsKKyBjYWlybworIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY29nbC00CistcGFuZ28KKyttdXR0 ZXItY29nbC03CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpIHZhcGkvbXV0 dGVyLWNsdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDg2JQorcmVuYW1lIGZyb20gdmFw aS9tdXR0ZXItY2x1dHRlci00LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTcu dmFwaQoraW5kZXggYzhhMWQyM2IuLmFlYTZhMzFhIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNs dXR0ZXItNC52YXBpCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03LnZhcGkKK0BAIC0xLDYgKzEs NiBAQAorLS8qIG11dHRlci1jbHV0dGVyLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8g bm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1dHRlci03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZh cGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIi LCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2Fz ZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBn aXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJfY2FzZV9j cHJlZml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2Ug S2V5IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNuYW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BAIC00NTc2LDIwICs0NTc2LDggQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBz dGF0aWMgdWludCBhZGRfcmVwYWludF9mdW5jX2Z1bGwgKENsdXR0ZXIuUmVwYWludEZsYWdzIGZs YWdzLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgZW50ZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsZWF2 ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHJl bW92ZV9yZXBhaW50X2Z1bmMgKHVpbnQgaGFuZGxlX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9sb2NrX2Z1bmN0aW9ucyAoR0xpYi5DYWxs YmFjayBlbnRlcl9mbiwgR0xpYi5DYWxsYmFjayBsZWF2ZV9mbik7CisgCX0KKyAJbmFtZXNwYWNl IFZhbHVlIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorQEAgLTQ2MzYsNyArNDYyNCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBzdGF0aWMgdm9pZCB0YWtlX3BhaW50X25vZGUgKEdMaWIuVmFsdWUgdmFsdWUsIENsdXR0ZXIu UGFpbnROb2RlPyBub2RlKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0aW9uX2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEFj dGlvbiA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBBY3Rpb24gKCk7CitAQCAtNDY2NCwzMyArNDY1 MSwyMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgYWRkX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lLCBDbHV0dGVyLlRy YW5zaXRpb24gdHJhbnNpdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRl ci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0 ZSAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYWxpZ25fZmlsbCAoQ2x1dHRlci5BY3RvckJveCBib3gs IGRvdWJsZSB4X2FsaWduLCBkb3VibGUgeV9hbGlnbiwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxs LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0 ZV9hbGlnbl9maWxsIChDbHV0dGVyLkFjdG9yQm94IGJveCwgZG91YmxlIHhfYWxpZ24sIGRvdWJs ZSB5X2FsaWduLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdo dCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZvaWQgYWxsb2Nh dGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0 aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BbGxvY2F0 aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGUgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIC4uLik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24g YW5pbWF0ZV93aXRoX2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhLCAuLi4pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0 aF9hbHBoYXYgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1l ID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBzdHJpbmdbXSBwcm9w ZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJh eV9sZW5ndGhfcG9zID0gMS41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3Rp bWVsaW5lICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCAuLi4pOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1h dGVfd2l0aF90aW1lbGluZXYgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0 aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9j bmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1 ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BbmltYXRpb24gYW5pbWF0ZXYgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAy LjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVl cyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoZmxvYXQgeCwgZmxv YXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5W ZXJ0ZXggYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBh bmNlc3RvciwgQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfcmVs YXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgR3JhcGhl bmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfdHJhbnNmb3JtIChy ZWYgQ2x1dHRlci5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0 ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3RyYW5zZm9ybV90b19wb2lu dCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2 ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyB2b2lkIGJp bmRfbW9kZWwgKEdMaWIuTGlzdE1vZGVsPyBtb2RlbCwgb3duZWQgQ2x1dHRlci5BY3RvckNyZWF0 ZUNoaWxkRnVuYyBjcmVhdGVfY2hpbGRfZnVuYyk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGlj IHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlX3Jlc291cmNlX3NjYWxlIChpbnQgcGhhc2UpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgY2xlYXJfYWN0aW9ucyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00NzAwLDIwICs0Njc3LDE5IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKCk7Cisr CQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRf Y29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVyLlBpY2tDb250 ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3BhbmdvX2xheW91 dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJs aWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNhcHR1cmUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxv Y2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5W ZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRp Y2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0 c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0X2FjY2Vzc2li bGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcyMSwyMSArNDY5 Nyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0 dGVyLkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBnZXRfYWxsb2NhdGlvbl9ib3ggKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgZ2V0X2FsbG9jYXRpb25f Z2VvbWV0cnkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9p ZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FuY2hvcl9wb2ludCAob3V0IGZsb2F0 IGFuY2hvcl94LCBvdXQgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmlt YXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0 ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3IgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2J5X2dpZCAodWludDMyIGlkXyk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfY2hpbGRfYXRfaW5kZXggKGludCBpbmRleF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KK0BAIC00NzYyLDggKzQ3MjUsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdm9pZCBnZXRfY29udGVudF9zY2FsaW5nX2ZpbHRlcnMgKG91dCBDbHV0dGVyLlNjYWxp bmdGaWx0ZXIgbWluX2ZpbHRlciwgb3V0IENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtYWdfZmlsdGVy KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLlBhaW50Vm9sdW1lIGdldF9kZWZhdWx0X3BhaW50X3ZvbHVtZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgZmxvYXQgZ2V0X2RlcHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB1aW50IGdldF9lYXNpbmdfZGVsYXkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorQEAgLTQ3NzYsMTIgKzQ3MzcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuRWZmZWN0PiBnZXRfZWZmZWN0cyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9maXJzdF9jaGlsZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlv biAob3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKyAJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFn cyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJ CVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOwor QEAgLTQ4MzksMTcgKzQ3OTksMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJv b2wgZ2V0X3JlYWN0aXZlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVi bGljIENsdXR0ZXIuUmVxdWVzdE1vZGUgZ2V0X3JlcXVlc3RfbW9kZSAoKTsKKy0JCXB1YmxpYyBi b29sIGdldF9yZXNvdXJjZV9zY2FsZSAob3V0IGZsb2F0IHJlc291cmNlX3NjYWxlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbiAoQ2x1dHRlci5Sb3Rh dGVBeGlzIGF4aXMsIG91dCBmbG9hdCB4LCBvdXQgZmxvYXQgeSwgb3V0IGZsb2F0IHopOworKwkJ cHVibGljIGZsb2F0IGdldF9yZXNvdXJjZV9zY2FsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRlci5S b3RhdGVBeGlzIGF4aXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGlj IHZvaWQgZ2V0X3NjYWxlIChvdXQgZG91YmxlIHNjYWxlX3gsIG91dCBkb3VibGUgc2NhbGVfeSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NjYWxlX2NlbnRlciAob3V0 IGZsb2F0IGNlbnRlcl94LCBvdXQgZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3NjYWxlX2dyYXZpdHkgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfc2NhbGVfeiAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC00ODYwLDggKzQ4MTQsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIGdldF90ZXh0 X2RpcmVjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg Q2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoKTsKKysJCXB1 YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9leHRlbnRzIChvdXQgdW5vd25lZCBHcmFwaGVuZS5S ZWN0IHJlY3QpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0 dGVyLkFjdG9yIHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KK0BAIC00ODg1LDEwICs0ODM4LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGJvb2wgZ2V0X3lfZXhwYW5kICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K KyAJCXB1YmxpYyBmbG9hdCBnZXRfel9wb3NpdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF96X3JvdGF0aW9uX2dyYXZpdHkgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBncmFiX2tleV9mb2N1cyAo KTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2FjdGlvbnMgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDkwMCwxOCArNDg1MiwyMCBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhhc19rZXlfZm9jdXMgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIGJvb2wgaGFzX21hcHBlZF9jbG9u ZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBi b29sIGhhc19vdmVybGFwcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCisrCQlbTm9XcmFwcGVyXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX2FsbCAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGli aXRfY3VsbGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCBpbnNlcnRfY2hpbGRfYWJvdmUgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0 b3I/IHNpYmxpbmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIGluc2VydF9jaGlsZF9hdF9pbmRleCAoQ2x1dHRlci5BY3RvciBjaGlsZCwgaW50IGluZGV4 Xyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0 X2NoaWxkX2JlbG93IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5n KTsKKysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfdHJhbnNmb3JtICgpOworKwkJcHVibGljIGJv b2wgaXNfZWZmZWN0aXZlbHlfb25fc3RhZ2VfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBpc19pbl9jbG9u ZV9wYWludCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCitAQCAtNDkyNCwzMyAr NDg3OCwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBpc19zY2FsZWQg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIGJvb2wgaXNfdmlz aWJsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlciAoQ2x1dHRlci5BY3Rvcj8gYWJvdmUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyX2JvdHRvbSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwg ZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVf YW5jaG9yX3BvaW50X2Zyb21fZ3Jhdml0eSAoQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgbW92ZV9ieSAoZmxvYXQg ZHgsIGZsb2F0IGR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg Ym9vbCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJ W05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRlci5Q YWludE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcG9wX2lu dGVybmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJu YWwgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5TdGFnZVZpZXc+IHBl ZWtfc3RhZ2Vfdmlld3MgKCk7CisrCQlwdWJsaWMgdm9pZCBwaWNrX2JveCAoQ2x1dHRlci5QaWNr Q29udGV4dCBwaWNrX2NvbnRleHQsIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKysJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuRnJhbWVDbG9jayBwaWNrX2ZyYW1lX2Nsb2NrICgpOworIAkJcHVibGlj IHZvaWQgcXVldWVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhd193aXRoX2NsaXAgKENhaXJvLlJlY3RhbmdsZUludD8g Y2xpcCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2UgKENsdXR0ZXIuQWN0b3I/IGJlbG93KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCByYWlzZV90b3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfYWN0aW9uIChDbHV0dGVyLkFjdGlvbiBhY3Rp b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ5NzIsOCArNDkxMyw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9lZmZlY3RfYnlfbmFt ZSAoc3RyaW5nIG5hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIHJlbW92ZV90cmFuc2l0aW9uIChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIp XQorLQkJcHVibGljIHZvaWQgcmVwYXJlbnQgKENsdXR0ZXIuQWN0b3IgbmV3X3BhcmVudCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVwbGFjZV9jaGls ZCAoQ2x1dHRlci5BY3RvciBvbGRfY2hpbGQsIENsdXR0ZXIuQWN0b3IgbmV3X2NoaWxkKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNDk4MSwxMSArNDkyMCw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCBzYXZlX2Vhc2luZ19zdGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gsIENs dXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgdm9pZCBzZXRfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5jaG9yX3kp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbmNob3JfcG9pbnRfZnJv bV9ncmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisrCQlwdWJsaWMgdm9pZCBzZXRf YWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kX2NvbG9yIChDbHV0dGVyLkNv bG9yPyBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwMDgsOCAr NDk0Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50 X3JlcGVhdCAoQ2x1dHRlci5Db250ZW50UmVwZWF0IHJlcGVhdCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfc2NhbGluZ19maWx0ZXJz IChDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgQ2x1dHRlci5TY2FsaW5nRmlsdGVy IG1hZ19maWx0ZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aCAoZmxvYXQgZGVwdGgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9lYXNp bmdfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BA IC01MDM5LDggKzQ5NzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBz ZXRfb2Zmc2NyZWVuX3JlZGlyZWN0IChDbHV0dGVyLk9mZnNjcmVlblJlZGlyZWN0IHJlZGlyZWN0 KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vcGFjaXR5ICh1aW50OCBvcGFjaXR5KTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9vcGFjaXR5X292ZXJyaWRlIChpbnQgb3BhY2l0eSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3BhcmVudCAoQ2x1dHRlci5BY3RvciBwYXJlbnQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9waXZvdF9wb2ludCAoZmxvYXQgcGl2 b3RfeCwgZmxvYXQgcGl2b3RfeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAg LTUwNTAsMTYgKzQ5ODEsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg c2V0X3JlYWN0aXZlIChib29sIHJlYWN0aXZlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yZXF1ZXN0X21vZGUgKENsdXR0ZXIuUmVxdWVzdE1vZGUg bW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JvdGF0aW9uIChD bHV0dGVyLlJvdGF0ZUF4aXMgYXhpcywgZG91YmxlIGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfcm90YXRpb25fYW5nbGUgKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxl IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9zY2FsZV9mdWxsIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxl X3ksIGZsb2F0IGNlbnRlcl94LCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3dpdGhfZ3Jhdml0eSAoZG91YmxlIHNjYWxlX3gsIGRv dWJsZSBzY2FsZV95LCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3ogKGRvdWJsZSBzY2FsZV96 KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zaXplIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsK K0BAIC01MDg1LDE3ICs1MDEwLDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2 b2lkIHNldF95X2V4cGFuZCAoYm9vbCBleHBhbmQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF96X3Bvc2l0aW9uIChmbG9hdCB6X3Bvc2l0aW9uKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfel9yb3RhdGlvbl9mcm9tX2dy YXZpdHkgKGRvdWJsZSBhbmdsZSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJcHVibGlj IGJvb2wgc2hvdWxkX3BpY2tfcGFpbnQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBzaG93X2FsbCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K KyAJCXB1YmxpYyBib29sIHRyYW5zZm9ybV9zdGFnZV9wb2ludCAoZmxvYXQgeCwgZmxvYXQgeSwg b3V0IGZsb2F0IHhfb3V0LCBvdXQgZmxvYXQgeV9vdXQpOworKwkJcHVibGljIHZvaWQgdW5pbmhp Yml0X2N1bGxpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg dmlydHVhbCB2b2lkIHVubWFwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lk IHVucGFyZW50ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZv aWQgdW5zZXRfZmxhZ3MgKENsdXR0ZXIuQWN0b3JGbGFncyBmbGFncyk7CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KK0BAIC01MTAzLDE2ICs1MDIzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIENsdXR0ZXIuQWN0aW9uIGFjdGlvbnMgeyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWN0 b3JCb3ggYWxsb2NhdGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBhbmNob3JfZ3Jhdml0eSB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgZmxvYXQgYW5jaG9yX3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGZsb2F0IGFuY2hvcl95IHsgZ2V0OyBzZXQ7 IH0KKysJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24geyBvd25lZCBnZXQ7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBi YWNrZ3JvdW5kX2NvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAg LTUxMjIsMTEgKzUwMzMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsg fQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkg Y2xpcCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVk IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBn ZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wg Y2xpcF90b19hbGxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor QEAgLTUxNDAsOCArNTA0OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0 dGVyLkNvbnRlbnRHcmF2aXR5IGNvbnRlbnRfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29udGVudFJlcGVhdCBj b250ZW50X3JlcGVhdCB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IGZsb2F0IGRlcHRoIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0ZXIuRWZmZWN0IGVmZmVjdCB7 IHNldDsgfQorQEAgLTUyMTEsMTIgKzUxMTcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBw aXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQg cGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBH cmFwaGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1LDggKzUxMzEsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5S ZXF1ZXN0TW9kZSByZXF1ZXN0X21vZGUgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgZmxvYXQgcmVzb3VyY2Vfc2NhbGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJs ZSByb3RhdGlvbl9hbmdsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor QEAgLTUyMzYsMjcgKzUxNDAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ogeyBnZXQ7 IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZl cnRleCByb3RhdGlvbl9jZW50ZXJfeSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25f Y2VudGVyX3ogeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSByb3RhdGlvbl9jZW50ZXJfel9ncmF2 aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBmbG9hdCBzY2FsZV9jZW50ZXJfeCB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgc2NhbGVf Y2VudGVyX3kgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBzY2FsZV9ncmF2aXR5IHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorIAkJcHVibGljIGRvdWJsZSBzY2FsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorQEAgLTUyNjksNyArNTE1Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRl ci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUg c2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7 IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyOTksOCArNTE4Miw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHlfZXhwYW5kIHsgZ2V0OyBzZXQ7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgel9wb3NpdGlvbiB7IGdl dDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc2lnbmFs IHZvaWQgYWxsb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5B bGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgYnV0dG9uX3ByZXNzX2V2ZW50IChDbHV0dGVyLkJ1 dHRvbkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KK0BAIC01MzMx LDIyICs1MjEyLDI1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCBib29sIG1vdGlvbl9ldmVudCAoQ2x1dHRlci5Nb3Rpb25FdmVudCBldmVudCk7CisgCQlb SGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50IChDbHV0 dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhcmVudF9zZXQgKENsdXR0ZXIu QWN0b3I/IG9sZF9wYXJlbnQpOworKwkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLkNv bG9yIGNvbG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIu UGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcXVldWVfcmVs YXlvdXQgKCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCByZWFsaXplICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgcmVzb3VyY2Vfc2NhbGVfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHNjcm9sbF9ldmVudCAoQ2x1dHRl ci5TY3JvbGxFdmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNob3cgKCk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgc3RhZ2Vfdmlld3NfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB0b3VjaF9ldmVu dCAoQ2x1dHRlci5FdmVudCBldmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor QEAgLTUzNTgsMjEgKzUyNDIsMzMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgdW5yZWFsaXplICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9t ZXRhX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGlj IGFic3RyYWN0IGNsYXNzIEFjdG9yTWV0YSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0 b3JNZXRhICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKyAJCVtOb1dy YXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9hY3RvciAoQ2x1dHRlci5BY3Rvcj8g YWN0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2VuYWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9l bmFibGVkIChib29sIGlzX2VuYWJsZWQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGFjdG9yIHsgZ2V0OyB9CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBz ZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgbmFt ZSB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25vZGVfZ2V0X3R5cGUgKCki KV0KKysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWlu dE5vZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNvbnN0cmFpbnQgOiBDbHV0 dGVyLkNvbnN0cmFpbnQgeworQEAgLTUzODAsODEgKzUyNzYsMTggQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIEFsaWduQ29uc3RyYWludCAoQ2x1dHRlci5BY3Rvcj8gc291cmNlLCBD bHV0dGVyLkFsaWduQXhpcyBheGlzLCBmbG9hdCBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIu QWxpZ25BeGlzIGdldF9hbGlnbl9heGlzICgpOworIAkJcHVibGljIGZsb2F0IGdldF9mYWN0b3Ig KCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcGl2b3RfcG9pbnQgKG91dCB1bm93bmVkIEdyYXBoZW5l LlBvaW50IHBpdm90X3BvaW50KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X3NvdXJjZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9hbGlnbl9heGlzIChDbHV0dGVyLkFsaWdu QXhpcyBheGlzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGZsb2F0IGZhY3Rvcik7Cisr CQlwdWJsaWMgdm9pZCBzZXRfcGl2b3RfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50 KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zb3VyY2UgKENsdXR0ZXIuQWN0b3I/IHNvdXJjZSk7Cisg CQlwdWJsaWMgQ2x1dHRlci5BbGlnbkF4aXMgYWxpZ25fYXhpcyB7IGdldDsgc2V0IGNvbnN0cnVj dDsgfQorIAkJcHVibGljIGZsb2F0IGZhY3RvciB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJ W05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQg eyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Igc291cmNlIHsgZ2V0 OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FscGhhX2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBBbHBoYSA6IEdMaWIuSW5pdGlhbGx5 VW5vd25lZCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBBbHBoYSAoKTsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBBbHBoYS5mdWxsIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCB1bG9uZyBt b2RlKTsKKy0JCXB1YmxpYyBkb3VibGUgZ2V0X2FscGhhICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdMaWIu Q2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY2xvc3VyZSAo R0xpYi5DbG9zdXJlIGNsb3N1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X2Z1bmMgKG93bmVkIENs dXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X3Rp bWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBBbHBoYS53aXRoX2Z1bmMgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93bmVk IENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJcHVibGljIGRvdWJsZSBhbHBoYSB7IGdldDsg fQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBn ZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5l IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0aW9uX2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBHTGliLk9iamVj dCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBm aW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kX2ludGVydmFs IChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRf YWxwaGEgKCk7CistCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUp OworLQkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUg KCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlwdWJsaWMg Ym9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQkJ cHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9sb29wIChib29sIGxvb3ApOworLQkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUp OworLQkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0KTsKKy0JCXB1 YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxpbmUpOworLQkJ cHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBwcm9wZXJ0eV9u YW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9pbnRlcnZhbCAo c3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0K Ky0JCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIGxv b3AgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldDsgfQorLQkJ cHVibGljIEdMaWIuT2JqZWN0IG9iamVjdCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRl ci5UaW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIHN0YXJ0ZWQgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0 XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtNTQ2NywzNyArNTMwMCwxNCBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JhY2tlbmRfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2VuZCA6 IEdMaWIuT2JqZWN0IHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9i amVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlw cm90ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGFkZF9vcHRpb25zIChHTGliLk9wdGlvbkdyb3VwIGdyb3VwKTsKKy0JCXB1YmxpYyB2b2lk IGJlbGxfbm90aWZ5ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wg Y3JlYXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAo Q2x1dHRlci5TdGFnZSB3cmFwcGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0 YWdlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIu RGV2aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworKwkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdW5vd25lZCBDYWlyby5Gb250T3B0aW9u cyBnZXRfZm9udF9vcHRpb25zICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dE1l dGhvZCBnZXRfaW5wdXRfbWV0aG9kICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5LZXlt YXAgZ2V0X2tleW1hcCAoKTsKKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Jlc29sdXRpb24gKCk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZmVhdHVyZXMgKCk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93 cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJl X3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgcmVkcmF3IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mb250X29wdGlvbnMgKENhaXJvLkZv bnRPcHRpb25zIG9wdGlvbnMpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X21ldGhvZCAoQ2x1 dHRlci5JbnB1dE1ldGhvZCBtZXRob2QpOworQEAgLTU1MDgsOTUgKzUzMTgsMTEgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNp Z25hbCB2b2lkIHNldHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91 cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBCZWhhdmlvdXIgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlv dXIgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJG b3JlYWNoRnVuYyBmdW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IGFscGhhX25vdGlmeSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5 IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRl ci5BY3Rvcj4gZ2V0X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEg Z2V0X2FscGhhICgpOworLQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRl ci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3Zl X2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7 CistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVk IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNl ID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2 aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/ IGFscGhhLCBpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9z dGFydCwgb3V0IGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5k KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIGludCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0 YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3Bh Y2l0eSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91 cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwg dWludDggb3BhY2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNp dHlfc3RhcnQsIG91dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1 aW50OCBvcGFjaXR5X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50 IG9wYWNpdHlfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIHVpbnQgb3BhY2l0eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Jl aGF2aW91cl9zY2FsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBj bGFzcyBCZWhhdmlvdXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5B bHBoYT8gYWxwaGEsIGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwg ZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3Nj YWxlX3N0YXJ0LCBvdXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9l bmQsIG91dCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJs ZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBkb3VibGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhf c2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfYmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFn ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJp bkFsaWdubWVudCB4X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIu QmluQWxpZ25tZW50IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBD bHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWdu KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0 dGVyLkFjdG9yPyBjaGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBD bHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5B bGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5B bGlnbm1lbnQgeF9hbGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTY0NCw5OCArNTM3MCwyOSBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyRWZmZWN0KiIpXQorIAkJcHVibGljIEJsdXJFZmZlY3QgKCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCistCXB1YmxpYyBjbGFzcyBCb3ggOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIEJveCAo Q2x1dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1hbmFnZXIgZ2V0X2xheW91dF9tYW5hZ2VyICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19hZnRl ciAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZywgLi4uKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2F0IChDbHV0dGVyLkFjdG9yIGFj dG9yLCBpbnQgcG9zaXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZv aWQgcGFja19iZWZvcmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxp bmcsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja3YgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGll cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50Iild IHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJv cGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1 aW50IildIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvcj8gY29sb3IpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXlvdXRfbWFuYWdlciAoQ2x1dHRlci5MYXlvdXRNYW5h Z2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9y IGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyBib29sIGNvbG9yX3NldCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMg Q2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBzZXQ7IH0KKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfYm94X2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCb3hMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFn ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQm94TGF5b3V0ICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIG91dCBDbHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5Cb3hB bGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVpbnQgZ2V0 X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWxvbmcg Z2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdl dF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyB2b2lkIGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGws IG91dCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgYm9vbCBnZXRfaG9tb2dlbmVvdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIENsdXR0ZXIuT3JpZW50YXRpb24gZ2V0X29yaWVudGF0aW9uICgpOworIAkJ cHVibGljIGJvb2wgZ2V0X3BhY2tfc3RhcnQgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfc3BhY2lu ZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlv bnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZlcnRpY2FsICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIGJvb2wgZXhwYW5kLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwsIENsdXR0ZXIuQm94 QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50 IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdf ZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCBleHBhbmQpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2hvbW9nZW5lb3VzIChib29sIGhvbW9nZW5lb3Vz KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfb3Jp ZW50YXRpb24gKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJcHVibGljIHZv aWQgc2V0X3BhY2tfc3RhcnQgKGJvb2wgcGFja19zdGFydCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf c3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9p ZCBzZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHZvaWQgc2V0X3ZlcnRpY2FsIChib29sIHZlcnRpY2FsKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBob21vZ2VuZW91 cyB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGlj IENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24geyBnZXQ7IHNldDsgfQorIAkJcHVibGlj IGJvb2wgcGFja19zdGFydCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCBzcGFjaW5nIHsg Z2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0 aW9ucyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgdmVy dGljYWwgeyBnZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9icmlnaHRuZXNzX2NvbnRyYXN0 X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAg LTU3NDksOSArNTQwNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNl dF9jb250cmFzdCAoZmxvYXQgY29udHJhc3QpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRyYXN0 X2Z1bGwgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUpOworIAkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBicmlnaHRuZXNzIHsgZ2V0OyBzZXQ7 IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3MgeyBvd25lZCBnZXQ7IHNldDsg fQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFz dCB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7IG93bmVk IGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU3NzAs MzcgKzU0MjcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJ CXB1YmxpYyBmbG9hdCB5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYWlyb190ZXh0dXJlX2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBDYWlyb1RleHR1cmUgOiBD bHV0dGVyLlRleHR1cmUsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0 dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1Ymxp YyBDYWlyb1RleHR1cmUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lk IGNsZWFyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3Jl YXRlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRl X3JlZ2lvbiAoaW50IHhfb2Zmc2V0LCBpbnQgeV9vZmZzZXQsIGludCB3aWR0aCwgaW50IGhlaWdo dCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBnZXRfYXV0 b19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3VyZmFjZV9zaXplIChvdXQgdWludCB3 aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB2b2lkIGludmFsaWRhdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX3JlY3RhbmdsZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50 PyByZWN0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hdXRvX3Jlc2l6ZSAoYm9vbCB2YWx1ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3VyZmFjZV9z aXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgYm9vbCBhdXRvX3Jlc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2VfaGVpZ2h0IHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV93aWR0aCB7IGdl dDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgQ2Fpcm8uU3VyZmFjZSBjcmVhdGVfc3VyZmFjZSAodWludCB3aWR0aCwgdWludCBo ZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZpcnR1YWwg c2lnbmFsIGJvb2wgZHJhdyAoQ2Fpcm8uQ29udGV4dCBjcik7CistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Nh bnZhc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgY2xhc3MgQ2FudmFzIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNTgy NywxNyArNTQ1MywyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5D b250YWluZXIgY29udGFpbmVyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Y2xpY2tfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJcHVibGljIGNsYXNzIENsaWNrQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioi KV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbGlja0FjdGlvbiAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9idXR0 b24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRf Y29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuTW9kaWZpZXJUeXBlIGdldF9z dGF0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJl bGVhc2UgKCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyBib29sIGhlbGQgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU4NDYsNyArNTQ3NSw5IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1Ymxp YyBpbnQgbG9uZ19wcmVzc190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBwcmVz c2VkIHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBjbGlja2VkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGxvbmdf cHJlc3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuTG9uZ1ByZXNzU3RhdGUgc3RhdGUp OworQEAgLTU4ODgsOCArNTUxOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3Rl ZCBDb25zdHJhaW50ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg dXBkYXRlX2FsbG9jYXRpb24gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3JCb3gg YWxsb2NhdGlvbik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRh dGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRp b24gZGlyZWN0aW9uLCBmbG9hdCBmb3Jfc2l6ZSwgZmxvYXQgbWluaW11bV9zaXplLCBmbG9hdCBu YXR1cmFsX3NpemUpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVkX3Np emUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9uLCBm bG9hdCBmb3Jfc2l6ZSwgcmVmIGZsb2F0IG1pbmltdW1fc2l6ZSwgcmVmIGZsb2F0IG5hdHVyYWxf c2l6ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU4OTgsNiArNTUy OCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRGbGFncyBmbGFnczsKKyAJCXB1 YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3IgcmVsYXRlZDsKKysJCXB1YmxpYyB3ZWFrIENsdXR0ZXIu RXZlbnRTZXF1ZW5jZSBzZXF1ZW5jZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Igc291 cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5TdGFnZSBzdGFnZTsKKyAJCXB1YmxpYyB1aW50 MzIgdGltZTsKK0BAIC01OTMxLDk4ICs1NTYyLDIxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRvdWJs ZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdlcl9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBhYnN0 cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFnZXIg KCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNlIChD bHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGlu Z3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29t cHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2Nh cmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRl X3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7Cist CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVfZGV2 aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJcHVi bGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGludCBk ZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVy LktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZp cnR1YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7Cist CQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNl cyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4g cGVla19kZXZpY2VzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg cmVtb3ZlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5T dGFnZSBzdGFnZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0 ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ug ZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5J bnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdz X2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hl ZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2No YW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9v bCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dldF90eXBlICgpIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIERyYWdBY3Rpb24gOiBDbHV0 dGVyLkFjdGlvbiB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorLQkJcHVibGljIERyYWdBY3Rpb24gKCk7CistCQlw dWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3QgZHJhZ19hcmVhKTsKKy0JCXB1 YmxpYyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9k cmFnX3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91dCB1aW50IHlfdGhyZXNob2xk KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChvdXQgZmxvYXQgbW90aW9uX3gs IG91dCBmbG9hdCBtb3Rpb25feSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzIChv dXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworLQkJcHVibGljIHZvaWQgc2V0 X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOworLQkJcHVibGljIHZvaWQgc2V0 X2RyYWdfYXhpcyAoQ2x1dHRlci5EcmFnQXhpcyBheGlzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9k cmFnX2hhbmRsZSAoQ2x1dHRlci5BY3Rvcj8gaGFuZGxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9k cmFnX3RocmVzaG9sZCAoaW50IHhfdGhyZXNob2xkLCBpbnQgeV90aHJlc2hvbGQpOworLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wg ZHJhZ19hcmVhX3NldCB7IGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZHJhZ19h eGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGRyYWdfaGFuZGxlIHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4X2RyYWdf dGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGludCB5X2RyYWdfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIGRyYWdfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gs IGZsb2F0IGV2ZW50X3ksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBkcmFnX2VuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxv YXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJz KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfbW90aW9uIChDbHV0dGVyLkFj dG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmFnX3Byb2dy ZXNzIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfZHJvcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgY2xhc3MgRHJvcEFjdGlvbiA6IENsdXR0ZXIuQWN0 aW9uIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMgRHJvcEFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCBib29sIGNhbl9kcm9wIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBl dmVudF94LCBmbG9hdCBldmVudF95KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRy b3AgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkcm9w X2NhbmNlbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRf eSk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBvdmVyX2luIChDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfb3V0IChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEVmZmVj dCA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBFZmZlY3QgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgYm9vbCBnZXRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1l IHZvbHVtZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIG1vZGlmeV9wYWludF92b2x1bWUgKENs dXR0ZXIuUGFpbnRWb2x1bWUgdm9sdW1lKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVi bGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4 dCwgQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKyAJCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7 CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19j b250ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFp bnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKENsdXR0ZXIuUGFpbnRD b250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IGJvb2wgcHJlX3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKENs dXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVwYWludCAoKTsKKyAJfQorQEAgLTYwMzMs OCArNTU4NywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVu dFR5cGUgdHlwZTsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXB1YmxpYyBFdmVudCAoQ2x1dHRlci5FdmVudFR5cGUgdHlwZSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50IGFkZF9maWx0ZXIgKENsdXR0 ZXIuU3RhZ2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ry b3lfbm90aWZ5X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMp OworIAkJcHVibGljIENsdXR0ZXIuRXZlbnQgY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0 ZXIuRXZlbnQgQGdldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJs aWMgZG91YmxlIGdldF9hbmdsZSAoQ2x1dHRlci5FdmVudCB0YXJnZXQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorQEAgLTYwNzMsNyArNTYzMSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyB1aW50IGdldF9tb2RlX2dyb3VwICgpOworIAkJcHVibGljIGJvb2wgZ2V0 X3BhZF9ldmVudF9kZXRhaWxzIChvdXQgdWludCBudW1iZXIsIG91dCB1aW50IG1vZGUsIG91dCBk b3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9wb3NpdGlvbiAoQ2x1dHRlci5Qb2ludCBwb3NpdGlvbik7CisrCQlwdWJsaWMgdm9p ZCBnZXRfcG9zaXRpb24gKEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3JlbGF0 ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTYxMDYsOCArNTY2NCwx MiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hpZnRfbW9kaWZp ZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgaXNf cG9pbnRlcl9lbXVsYXRlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IHBlZWsgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBwdXQgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9maWx0ZXIgKHVpbnQg aWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2J1 dHRvbiAodWludDMyIGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAt NjE0MCwxNiArNTcwMiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNl dF9zdGF0ZSAoQ2x1dHRlci5Nb2RpZmllclR5cGUgc3RhdGUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3RpbWUgKHVpbnQzMiB0aW1lXyk7CistCQlw dWJsaWMgQ2x1dHRlci5BbnlFdmVudCBhbnkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlF dmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5CdXR0b25FdmVudCBidXR0b24g e1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlw dWJsaWMgQ2x1dHRlci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHtbQ0NvZGUgKGNuYW1lID0gIihD bHV0dGVyQ3Jvc3NpbmdFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5LZXlF dmVudCBrZXkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSAgZ2V0OyB9 CistCQlwdWJsaWMgQ2x1dHRlci5Nb3Rpb25FdmVudCBtb3Rpb24ge1tDQ29kZSAoY25hbWUgPSAi KENsdXR0ZXJNb3Rpb25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TY3Jv bGxFdmVudCBzY3JvbGwge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTY3JvbGxFdmVudCAqKSIp XSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUg e1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gIGdldDsgfQor LQkJcHVibGljIENsdXR0ZXIuVG91Y2hFdmVudCB0b3VjaCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlclRvdWNoRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hwYWRQ aW5jaEV2ZW50IHRvdWNocGFkX3BpbmNoIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hw YWRQaW5jaEV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dp cGVFdmVudCB0b3VjaHBhZF9zd2lwZSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFk U3dpcGVFdmVudCAqKSIpXSAgZ2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9z ZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC02MTk4LDEwICs1NzUwLDI0 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisg CQlwdWJsaWMgYm9vbCBzbmFwX3RvX2dyaWQgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9mcmFtZV9jbG9ja19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgRnJhbWVDbG9jayA6 IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKysJCXB1YmxpYyBGcmFtZUNsb2NrIChmbG9hdCByZWZyZXNoX3JhdGUsIENsdXR0ZXIuRnJh bWVMaXN0ZW5lcklmYWNlIGlmYWNlLCB2b2lkKiB1c2VyX2RhdGEpOworKwkJcHVibGljIHZvaWQg YWRkX3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKysJCXB1YmxpYyBmbG9h dCBnZXRfcmVmcmVzaF9yYXRlICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdCAoKTsKKysJCXB1 YmxpYyB2b2lkIHJlbW92ZV90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7Cisr CQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVs ZV91cGRhdGVfbm93ICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0ICgpOworKwkJW0hhc0Vt aXR0ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVzdHJveSAoKTsKKysJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfZ2VzdHVyZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAlwdWJsaWMgY2xhc3MgR2VzdHVyZUFjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJB Y3Rpb24qIildCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgR2VzdHVy ZUFjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9p ZCBjYW5jZWwgKCk7CitAQCAtNjIxMSw2ICs1Nzc3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZGV2aWNlICh1aW50IHBv aW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkV2ZW50IGdldF9sYXN0X2V2ZW50ICh1aW50IHBvaW50KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzICh1aW50IHBv aW50LCBvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9tb3Rpb25fZGVsdGEgKHVp bnQgcG9pbnQsIG91dCBmbG9hdCBkZWx0YV94LCBvdXQgZmxvYXQgZGVsdGFfeSk7CitAQCAtNjIx OCw3ICs1Nzg1LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X25f Y3VycmVudF9wb2ludHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIGludCBnZXRfbl90b3VjaF9wb2ludHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxv YXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3JlbGVhc2VfY29vcmRzICh1aW50IHBvaW50LCBvdXQg ZmxvYXQgcmVsZWFzZV94LCBvdXQgZmxvYXQgcmVsZWFzZV95KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50U2VxdWVuY2UgZ2V0 X3NlcXVlbmNlICh1aW50IHBvaW50KTsKK0BAIC02MjQ2LDkgKzU4MTUsMTMgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHRocmVzaG9sZF90cmlnZ2VyX2Rpc3RhbmNlX3kg eyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkdlc3R1cmVUcmlnZ2VyRWRnZSB0aHJlc2hvbGRfdHJpZ2dlcl9lZGdlIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCBib29sIGdlc3R1cmVfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgZ2VzdHVyZV9jYW5jZWwgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVyZV9l bmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9wcm9ncmVzcyAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyaWRfbGF5b3V0X2dldF90eXBlICgpIild CitAQCAtNjI3OCwxOSArNTg1MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBi b29sIHJvd19ob21vZ2VuZW91cyB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCByb3dfc3Bh Y2luZyB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyb3VwX2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEdyb3VwIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyBHcm91cCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgaW50IGdldF9uX2NoaWxk cmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X250aF9jaGlsZCAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3Zl X2FsbCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIEltYWdlIDogR0xpYi5PYmplY3Qs IENsdXR0ZXIuQ29udGVudCB7CitAQCAtNjMwNiw2ICs1ODY2LDggQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAlwdWJsaWMgY2xhc3MgSW5wdXREZXZpY2UgOiBHTGliLk9iamVjdCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgSW5wdXRE ZXZpY2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5j ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLklucHV0RGV2aWNlIGdldF9hc3NvY2lhdGVkX2RldmljZSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KK0BAIC02MzEzLDcgKzU4NzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXhpc192 YWx1ZSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGRvdWJsZVtdIGF4ZXMsIENsdXR0 ZXIuSW5wdXRBeGlzIGF4aXMsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1 ZW5jZT8gc2VxdWVuY2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZ2V0 X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgR3JhcGhlbmUuUG9pbnQg cG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGludCBnZXRf ZGV2aWNlX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMjUsMTIg KzU4ODcsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERl dmljZVR5cGUgZ2V0X2RldmljZV90eXBlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfZ2V0X2lucHV0X2RldmljZV9mb3JfaWQiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZm9yX2lkIChpbnQg aWRfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJcHVibGljIGludCBnZXRfZ3Jv dXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGludCBnZXRfZ3JvdXBf bl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1 YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorQEAgLTYzNDYsMjMgKzU5MDUsMjEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGludCBnZXRfbl9tb2RlX2dyb3VwcyAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fcmluZ3MgKCk7 CisgCQlwdWJsaWMgaW50IGdldF9uX3N0cmlwcyAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9waHlz aWNhbF9zaXplIChkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRl cl9hY3RvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X3BvaW50ZXJfc3RhZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9kdWN0X2lkICgp OworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9zZWF0ICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5w dXREZXZpY2U+IGdldF9zbGF2ZV9kZXZpY2VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdmVuZG9yX2lkICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWIgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworLQkJcHVibGljIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBvdGhlcl9kZXZpY2UpOworLQkJcHVibGljIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1 aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX2dyb3Vw ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKysJCXB1YmxpYyB2aXJ0dWFs IGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wga2V5Y29kZV90b19l dmRldiAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworKwkJcHVi bGljIHZpcnR1YWwgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUs IHVpbnQgZXZkZXZfa2V5Y29kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBzZXF1ZW5jZV9nZXRfZ3JhYmJlZF9hY3RvciAo Q2x1dHRlci5FdmVudFNlcXVlbmNlIHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCitAQCAtNjM3OCwxMiArNTkzNSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdm9pZCB1bmdyYWIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlw dWJsaWMgdm9pZCB1cGRhdGVfZnJvbV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9vbCB1 cGRhdGVfc3RhZ2UpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBk YXRlX2Zyb21fdG9vbCAoQ2x1dHRlci5JbnB1dERldmljZVRvb2wgdG9vbCk7CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorIAkJcHVibGljIENsdXR0ZXIuSW5wdXRNb2RlIGRldmljZV9tb2RlIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKyAJCXB1YmxpYyBzdHJpbmcgZGV2aWNlX25vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTY0MDYsNiArNTk2Miw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyBw cm9kdWN0X2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2Vh dCB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJ cHVibGljIHN0cmluZyB2ZW5kb3JfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtNjQz MCw3ICs1OTg3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgY29tbWl0X3RleHQgKHN0cmluZyB0ZXh0KTsKKyAJCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZz ZXQsIHVpbnQgbGVuKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5n IChpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlwdWJsaWMgYm9vbCBmaWx0ZXJfa2V5X2V2ZW50 IChDbHV0dGVyLktleUV2ZW50IGtleSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBmb2N1c19pbiAoQ2x1dHRlci5JbnB1dE1ldGhvZCBpbnB1dF9tZXRob2QpOworQEAg LTY0NDMsNyArNjAwMCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNl dF9jYW5fc2hvd19wcmVlZGl0IChib29sIGNhbl9zaG93X3ByZWVkaXQpOworIAkJcHVibGljIHZv aWQgc2V0X2NvbnRlbnRfaGludHMgKENsdXR0ZXIuSW5wdXRDb250ZW50SGludEZsYWdzIGhpbnQp OworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcHVycG9zZSAoQ2x1dHRlci5JbnB1dENvbnRl bnRQdXJwb3NlIHB1cnBvc2UpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAo Q2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAo R3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0 ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nIHByZWVkaXQsIHVpbnQg Y3Vyc29yKTsKK0BAIC02NDYyLDcgKzYwMTksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCByZXNldCAoKTsKKyAJCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIu UmVjdCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAo R3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0 ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgc2V0X3By ZWVkaXRfdGV4dCAoc3RyaW5nPyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CisgCQlbTm9XcmFwcGVy XQorQEAgLTY0NzksOSArNjAzNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBD bHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgY29udGVudF9wdXJwb3NlIHsgZ2V0OyBzZXQ7IH0K KyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbW1pdCAoc3RyaW5nIHRl eHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChDbHV0 dGVyLlJlY3Qgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25f Y2hhbmdlZCAoR3JhcGhlbmUuUmVjdCBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCistCQlwdWJs aWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBsZW4p OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAoaW50IG9mZnNldCwg dWludCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0X3BhbmVsX3N0YXRlIChDbHV0 dGVyLklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgcmVxdWVzdF9zdXJyb3VuZGluZyAoKTsKK0BAIC02NTU1LDI4ICs2MTEyLDI4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBi b29sIGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5EaXJl Y3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9s b2NrX3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7Cisg CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNz IExheWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJs aWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUgdmll d3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xp Yi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFj dG9yQm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVn aW5fYW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5B Y3RvckJveCBhbGxvY2F0aW9uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5D b250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGlj IHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENs dXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVl KTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVy LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3By b3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3Is IHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hp bGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRp b24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3Bl cnR5IChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwg ZG91YmxlIGdldF9hbmltYXRpb25fcHJvZ3Jlc3MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEgZ2V0X2NoaWxkX21l dGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7Cisg CQlbTm9XcmFwcGVyXQorQEAgLTY2MzIsMTIgKzYxODksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHJvdGVjdGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENv Z2wuSGFuZGxlIGNyZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3Jl Y3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90 YXJnZXRfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAi MS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwg b3V0IGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHBhaW50X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFy Z2V0IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfcGFnZV90dXJuX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCitAQCAtNjY1NCw2ICs2MjExLDE3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBkb3VibGUgcGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMg eyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5j dGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1 YmxpYyBjbGFzcyBQYWludENvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJ CXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJ cHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKysJCXB1Ymxp YyB2b2lkIHBvcF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZm ZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5QYWludENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2 NjMsNyArNjIzMSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9t dWx0aXRleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRf Y29vcmRzLCB1aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFu Z2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVf cmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBm bG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1Ymxp YyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGlj IHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02Njgx LDcgKzYyNTAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJ cHVibGljIHZvaWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0 ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93 aWR0aCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjkxLDcgKzYyNjAs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgdm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXgg b3JpZ2luKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3Jp Z2luKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93 aWR0aCAoZmxvYXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3 NzgsODggKzYzNDcsMjkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIu UGF0aCBwYXRoIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNo ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0 dGVyX3BpY2tfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dl dF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYi KV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMg dm9pZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBA cmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVs aW5lX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIGNsYXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGlu ZU5vZGUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0g ImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQor LQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNz IFBvaW50IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJs aWMgc3RhdGljIENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2lu dCBjb3B5ICgpOworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91 dCBmbG9hdCB4X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9v bCBlcXVhbHMgKENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3Byb3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0 ZXIuVHJhbnNpdGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQorIAkJ cHVibGljIFByb3BlcnR5VHJhbnNpdGlvbiAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFu c2l0aW9uKiIpXQorKwkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlvbi5mb3JfYWN0b3IgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVy dHlfbmFtZSAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyBzdHJpbmcgcHJvcGVy dHlfbmFtZSB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90 eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlw dWJsaWMgY2xhc3MgUmVjdCB7CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsK Ky0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuU2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0 dGVyLlJlY3QgYWxsb2MgKCk7CistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0J CXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1 YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0 dGVyLlJlY3QgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIp OworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENs dXR0ZXIuUG9pbnQgY2VudGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJ cHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0J CXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBp bml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1 YmxpYyB2b2lkIGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBp bnRlcnNlY3Rpb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJs aWMgQ2x1dHRlci5SZWN0IG5vcm1hbGl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxv YXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxv YXQgc195KTsKKy0JCXB1YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5S ZWN0IHJlcyk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9y LCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIs IENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3Rhbmds ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYm9y ZGVyX2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9ib3Jk ZXJfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3Ip OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfd2lkdGggKHVp bnQgd2lkdGgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBj b2xvcik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZS53aXRoX2NvbG9yIChD bHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJvcmRlcl9jb2xv ciB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCBib3JkZXJfd2lkdGggeyBnZXQ7IHNldDsg fQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBoYXNfYm9yZGVyIHsgZ2V0OyBzZXQ7IH0KKysJ CXB1YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOwor KwkJcHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfcm9vdF9ub2RlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBSb290Tm9kZSA6 IENsdXR0ZXIuUGFpbnROb2RlIHsKK0BAIC02ODgwLDE1ICs2MzkwLDExIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBTY3JpcHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44 IildCisgCQlwdWJsaWMgdm9pZCBhZGRfc2VhcmNoX3BhdGhzIChbQ0NvZGUgKGFycmF5X2xlbmd0 aF9jbmFtZSA9ICJuX3BhdGhzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuMSwgYXJyYXlfbGVuZ3Ro X3R5cGUgPSAiZ3NpemUiKV0gc3RyaW5nW10gcGF0aHMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB2b2lkIGFkZF9zdGF0ZXMgKHN0cmluZz8gbmFtZSwgQ2x1dHRlci5TdGF0ZSBzdGF0 ZSk7CisgCQlwdWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHMgKHZvaWQqIHVzZXJfZGF0YSk7Cisg CQlwdWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHNfZnVsbCAoQ2x1dHRlci5TY3JpcHRDb25uZWN0 RnVuYyBmdW5jKTsKKyAJCXB1YmxpYyB2b2lkIGVuc3VyZV9vYmplY3RzICgpOworIAkJcHVibGlj IHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAoc3RyaW5nIG5hbWUpOworIAkJcHVibGlj IGludCBnZXRfb2JqZWN0cyAoLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlN0YXRlIGdldF9zdGF0ZXMgKHN0cmluZz8gbmFtZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90cmFuc2xh dGlvbl9kb21haW4gKCk7CisgCQlwdWJsaWMgdmlydHVhbCBHTGliLlR5cGUgZ2V0X3R5cGVfZnJv bV9uYW1lIChzdHJpbmcgdHlwZV9uYW1lKTsKK0BAIC02OTE2LDggKzY0MjIsOCBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgU2Nyb2xsQWN0b3IgKCk7CisgCQlw dWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIGdldF9zY3JvbGxfbW9kZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIHNjcm9sbF90b19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9p ZCBzY3JvbGxfdG9fcmVjdCAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2Ny b2xsX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBzY3Jv bGxfdG9fcmVjdCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY3Jv bGxfbW9kZSAoQ2x1dHRlci5TY3JvbGxNb2RlIG1vZGUpOworIAkJcHVibGljIENsdXR0ZXIuU2Ny b2xsTW9kZSBzY3JvbGxfbW9kZSB7IGdldDsgc2V0OyB9CisgCX0KK0BAIC02OTM5LDYgKzY0NDUs NDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMg ZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2VhdF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgU2VhdCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWF0ICgpOworKwkJW05vV3Jh cHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3MgKENs dXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg YmVsbF9ub3RpZnkgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAo Q2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKysJCVtOb1dy YXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvcHlfZXZlbnRfZGF0YSAoQ2x1dHRlci5F dmVudCBzcmMsIENsdXR0ZXIuRXZlbnQgZGVzdCk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVy LlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXRE ZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKysJCXB1YmxpYyB2b2lkIGVuc3VyZV9hMTF5X3N0YXRl ICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZnJlZV9ldmVudF9k YXRhIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9rYmRfYTExeV9z ZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZp cnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9rZXlib2FyZCAoKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfcG9pbnRlciAoKTsK KysJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRl ckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdG91Y2hfbW9kZSAo KTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1YmxpYyBib29sIGlz X3VuZm9jdXNfaW5oaWJpdGVkICgpOworKwkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIu SW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9rYmRfYTEx eV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGlj IHZvaWQgc2V0X3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlIChDbHV0dGVyLlBvaW50ZXJB MTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRl cl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOwor KwkJcHVibGljIHZvaWQgdW5pbmhpYml0X3VuZm9jdXMgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQor KwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwg dm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1Ymxp YyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3Qp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGlzX3VuZm9jdXNfaW5oaWJpdGVkX2NoYW5nZWQgKCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0 aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGti ZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2Vk X21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVf Y2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5J bnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0 X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVv dXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckEx MXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tlZCk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRl ci5JbnB1dERldmljZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZXR0aW5nc19nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTZXR0 aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDExLDE4ICs2NTU4LDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ cHJvdGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NpemVf Z2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9hdCBoZWlnaHQ7CistCQlwdWJs aWMgZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuU2l6ZSBhbGxvYyAoKTsK Ky0JCXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAo Q2x1dHRlci5TaXplIGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25zdHJhaW50IDogQ2x1dHRlci5D b25zdHJhaW50IHsKK0BAIC03MDQzLDEzNSArNjU3OCw2NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5Hcm91cCwgQXRrLklt cGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkFjdG9yLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CisgCQlwdWJsaWMgU3RhZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBjYXB0dXJlIChib29sIHBhaW50 LCBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgQ2x1dHRlci5DYXB0dXJlIGNhcHR1cmVzLCBpbnQg bl9jYXB0dXJlcyk7CisgCQlwdWJsaWMgdm9pZCBjYXB0dXJlX2ludG8gKGJvb2wgcGFpbnQsIENh aXJvLlJlY3RhbmdsZUludCByZWN0LCB1aW50OCBkYXRhKTsKKysJCXB1YmxpYyB2b2lkIGNsZWFy X3N0YWdlX3ZpZXdzICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3N0YWdlX2V2ZW50 IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2 ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBlbnN1cmVfY3VycmVudCAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9yZWRyYXcg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBlbnN1cmVf dmlld3BvcnQgKCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0 ZXIuUGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9k ZSwgZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9z aXplIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9h dCBzY2FsZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJ cHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Z1bGxzY3JlZW4gKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlf Zm9jdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBn ZXRfbWluaW11bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9tb3Rpb25fZXZlbnRz X2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9v bCBnZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIGdl dF9wZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyBDYWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2JvdW5kcyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25f ZXZlbnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJ CXB1YmxpYyBib29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIGJvb2wgZ2V0X3VzZV9mb2cgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CQlwdWJsaWMgYm9vbCBnZXRfdXNlcl9yZXNpemFibGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgYm9vbCBpc19kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0J CXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKysJCXB1YmxpYyBib29sIHBhaW50X3RvX2J1 ZmZlciAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0IHNjYWxlLCB1aW50OCBkYXRhLCBp bnQgc3RyaWRlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ2x1dHRlci5QYWludEZsYWcgcGFp bnRfZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZvaWQgcGFpbnRfdG9fZnJh bWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIsIENhaXJvLlJlY3RhbmdsZUlu dCByZWN0LCBmbG9hdCBzY2FsZSwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3MpOworIAkJ W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCisgCQlwdWJsaWMgdWludDhbXSByZWFkX3Bp eGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGggPSAtMSwgaW50IGhlaWdodCA9IC0xKTsKKy0J CVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0JCXB1YmxpYyB2b2lkIHJlZHJh dyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h Y2NlcHRfZm9jdXMgKGJvb2wgYWNjZXB0X2ZvY3VzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRf Y29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9mb2cgKENsdXR0ZXIuRm9nIGZvZyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBmdWxsc2NyZWVuKTsK KysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9rZXlfZm9jdXMgKENsdXR0ZXIuQWN0b3I/IGFj dG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9t aW5pbXVtX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKGJv b2wgZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfbm9fY2xlYXJfaGludCAoYm9vbCBub19jbGVhcik7CistCQlwdWJsaWMgdm9pZCBzZXRf cGVyc3BlY3RpdmUgKENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Rocm90dGxlX21vdGlvbl9l dmVudHMgKGJvb2wgdGhyb3R0bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29sIGZv Zyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNl cl9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29y ICgpOworLQkJcHVibGljIHZvaWQgdGhhd191cGRhdGVzICgpOworLQkJcHVibGljIHZvaWQgdXBk YXRlX3Jlc291cmNlX3NjYWxlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0J CXB1YmxpYyBib29sIGFjY2VwdF9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENs dXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCBjdXJzb3JfdmlzaWJsZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGZvZyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW5fc2V0IHsgZ2V0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBrZXlfZm9j dXMgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IGJvb2wgbm9fY2xlYXJfaGludCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgYm9vbCBvZmZzY3JlZW4geyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3Rp dmUgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3Rp dmUgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJp bmcgdGl0bGUgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZXJfcmVzaXphYmxlIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IGFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBhZnRlcl9wYWludCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl9w YWludCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWZ0 ZXJfdXBkYXRlIChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBiZWZvcmVfcGFpbnQgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25h bCB2b2lkIGJlZm9yZV91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3Rp dmF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCBib29sIGRlbGV0ZV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBmdWxs c2NyZWVuICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgdW5mdWxsc2NyZWVuICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgcGFpbnRfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldywgQ2Fpcm8uUmVnaW9uIHJl ZHJhd19jbGlwKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzE4NSw4ICs2NjUxLDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLlN0YWdlPiBsaXN0X3N0YWdlcyAoKTsKKyAJCXB1Ymxp YyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5TdGFnZT4gcGVla19zdGFnZXMgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVmYXVsdF9zdGFnZSAoQ2x1dHRlci5T dGFnZSBzdGFnZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1 dHRlci5TdGFnZSBkZWZhdWx0X3N0YWdlIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCitAQCAtNzIwNiw2MyArNjY3MCwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdWludDMyIHRpbWU7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfc3RhdGVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgU3RhdGUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX3ZpZXdfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGlj IGNsYXNzIFN0YWdlVmlldyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgU3RhdGUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2R1cmF0aW9uIChzdHJp bmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5TdGF0ZUtleT4g Z2V0X2tleXMgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRl X25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGF0ZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgc3RyaW5nPiBnZXRfc3Rh dGVzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGlt ZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHJlbW92ZV9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0 YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uIChzdHJpbmc/IHNv dXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCB1aW50IGR1cmF0aW9u KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YXRlIHNl dF9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZyB0YXJnZXRfc3RhdGVfbmFt ZSwgR0xpYi5PYmplY3Qgb2JqZWN0LCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgdWludCBtb2RlLCBH TGliLlZhbHVlIHZhbHVlLCBkb3VibGUgcHJlX2RlbGF5LCBkb3VibGUgcG9zdF9kZWxheSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBzZXRf c3RhdGUgKHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSB3YXJwX3RvX3N0YXRlIChzdHJpbmcgdGFy Z2V0X3N0YXRlX25hbWUpOworKwkJcHJvdGVjdGVkIFN0YWdlVmlldyAoKTsKKysJCXB1YmxpYyB2 b2lkIGFzc2lnbl9uZXh0X3NjYW5vdXQgKENvZ2wuU2Nhbm91dCBzY2Fub3V0KTsKKysJCXB1Ymxp YyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGlj IHZvaWQgZ2V0X2xheW91dCAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBnZXRfb2Zmc2NyZWVuX3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoQ29nbC5NYXRy aXggbWF0cml4KTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X29uc2Ny ZWVuICgpOworKwkJcHVibGljIGZsb2F0IGdldF9zY2FsZSAoKTsKKysJCXB1YmxpYyB2b2lkIGlu dmFsaWRhdGVfb2Zmc2NyZWVuX2JsaXRfcGlwZWxpbmUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBzZXR1cF9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoQ29nbC5Q aXBlbGluZSBwaXBlbGluZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9p ZCB0cmFuc2Zvcm1fcmVjdF90b19vbnNjcmVlbiAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHNyY19yZWN0 LCBpbnQgZHN0X3dpZHRoLCBpbnQgZHN0X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGRzdF9y ZWN0KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJ bnQgbGF5b3V0IHsgb3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgc3RyaW5nIHN0YXRlIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBjb21wbGV0ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGF0ZV9rZXlfZ2V0 X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J cHVibGljIGNsYXNzIFN0YXRlS2V5IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxv bmcgZ2V0X21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgR0xp Yi5PYmplY3QgZ2V0X29iamVjdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZG91 YmxlIGdldF9wb3N0X2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3Vi bGUgZ2V0X3ByZV9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIEdMaWIuVHlwZSBnZXRfcHJvcGVydHlfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NvdXJjZV9zdGF0ZV9uYW1lICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGFyZ2V0X3N0YXRlX25h bWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZhbHVlIChHTGli LlZhbHVlIHZhbHVlKTsKKysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBmbG9hdCByZWZyZXNoX3Jh dGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVi bGljIGZsb2F0IHNjYWxlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIHN0YWdlIHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgdXNlX3NoYWRvd2Zi IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3dpcGVfYWN0aW9uX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03Mjc0LDUzICs2NzA4 LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHN3aXBlIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBDbHV0dGVyLlN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Rh YmxlX2xheW91dF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xh c3MgVGFibGVMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIq IildCistCQlwdWJsaWMgVGFibGVMYXlvdXQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIu VGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGln bik7CistCQlwdWJsaWMgaW50IGdldF9jb2x1bW5fY291bnQgKCk7CistCQlwdWJsaWMgdWludCBn ZXRfY29sdW1uX3NwYWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQg Z2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxv bmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZXhwYW5kLCBvdXQg Ym9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Zp bGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmlsbCwgb3V0IGJvb2wgeV9maWxs KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3Jvd19jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9y b3dfc3BhY2luZyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBvdXQgaW50IGNvbHVtbl9zcGFuLCBvdXQgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7CistCQlwdWJsaWMg dm9pZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uLCBpbnQgcm93KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFj dG9yIGFjdG9yLCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuVGFibGVB bGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sdW1uX3NwYWNpbmcgKHVp bnQgc3BhY2luZyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2lu Z19kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZXhwYW5k LCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf ZmlsbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9yb3dfc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uX3NwYW4sIGludCBy b3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9hbmlt YXRpb25zIChib29sIGFuaW1hdGUpOworLQkJcHVibGljIHVpbnQgY29sdW1uX3NwYWNpbmcgeyBn ZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJh dGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGVh c2luZ19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9u cyB7IGdldDsgc2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhcF9hY3Rpb25fZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGNsYXNzIFRhcEFjdGlv biA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CitAQCAtNzM0OCw3ICs2NzM1LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2N1cnNvcl9jb2xvciAo KTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnNvcl9wb3NpdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93 bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAo b3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB1aW50IGdldF9jdXJz b3Jfc2l6ZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9jdXJzb3JfdmlzaWJsZSAoKTsKKyAJCXB1 YmxpYyBib29sIGdldF9lZGl0YWJsZSAoKTsKK0BAIC03NDY3LDcgKzY4NTQsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChDbHV0dGVyLkdlb21l dHJ5IGdlb21ldHJ5KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVu dCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV90ZXh0IChpbnQgc3Rh cnRfcG9zLCBpbnQgZW5kX3Bvcyk7CitAQCAtNzUwNSw5NCArNjg5Miw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91 dD8gbGF5b3V0LCBDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1 cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMg Y2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5B bmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rv cioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21f ZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWln aHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdl dF9jb2dsX21hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENvZ2wuSGFuZGxlIGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wg cmVwZWF0X3gsIG91dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgYm9vbCBnZXRfc3luY19zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBi b29sIHNldF9hcmVhX2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwg aW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3Mg ZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9jb2dsX21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRs ZSBjb2dsX3RleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRl cl9xdWFsaXR5IChDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5h bWUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29s IHNldF9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhb XSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3Ry aWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJy b3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwg aW50IGhlaWdodCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9y OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRp byAoYm9vbCBrZWVwX2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xvYWRfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29sIHBp Y2tfd2l0aF9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jl cGVhdCAoYm9vbCByZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOworLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ29n bC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIGRpc2FibGVfc2xpY2luZyB7IGdldDsgY29uc3RydWN0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9x dWFsaXR5IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVj dF9yYXRpbyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wg bG9hZF9hc3luYyB7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxv YWRfZGF0YV9hc3luYyB7IHNldDsgfQorLQkJcHVibGljIGJvb2wgcGlja193aXRoX2FscGhhIHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0 X3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBy ZXBlYXRfeSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHRpbGVfd2FzdGUgeyBn ZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBs b2FkX2ZpbmlzaGVkIChHTGliLkVycm9yIGVycm9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBwaXhidWZfY2hhbmdlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHNpemVfY2hhbmdlIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl90ZXh0dXJlX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIGNsYXNzIFRleHR1cmVOb2RlIDogQ2x1dHRlci5QaXBlbGluZU5vZGUg eworQEAgLTc2MDQsNyArNjkwMyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNs YXNzIFRpbWVsaW5lIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgVGltZWxpbmUgKHVpbnQgbXNlY3MpOworKwkJcHVibGljIFRp bWVsaW5lICh1aW50IGR1cmF0aW9uX21zKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CisgCQlwdWJsaWMgdm9pZCBhZGRfbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUsIGRvdWJsZSBw cm9ncmVzcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzYxMiwxMiArNjkx MSwxNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBhZHZhbmNlICh1aW50 IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGFk dmFuY2VfdG9fbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIGNsb25lICgpOworKwkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFRpbWVsaW5lLmZvcl9hY3RvciAo Q2x1dHRlci5BY3RvciBhY3RvciwgdWludCBkdXJhdGlvbl9tcyk7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUuZm9yX2ZyYW1l X2Nsb2NrIChDbHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2ssIHVpbnQgZHVyYXRpb25fbXMp OworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXZlcnNlICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jdWJp Y19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7 CisrCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2lu dCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIGludCBnZXRfY3VycmVudF9yZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCitAQCAtNzYzMSw4ICs2OTMzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZHVyYXRp b25faGludCAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9lbGFwc2VkX3RpbWUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisg CQlwdWJsaWMgZG91YmxlIGdldF9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCitAQCAtNzY1MSwxOCArNjk1MSwxOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfbWFya2VyIChz dHJpbmcgbWFya2VyX25hbWUpOworIAkJcHVibGljIHZvaWQgcmV3aW5kICgpOworKwkJcHVibGlj IHZvaWQgc2V0X2FjdG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXZlcnNlIChib29sIHJldmVy c2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9j dWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNf Mik7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Q b2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RpcmVjdGlvbiAoQ2x1dHRlci5U aW1lbGluZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCBzZXRfbG9vcCAoYm9vbCBsb29wKTsKKysJCXB1YmxpYyB2b2lkIHNldF9mcmFtZV9j bG9jayAoQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvZ3Jlc3NfZnVuYyAob3duZWQgQ2x1 dHRlci5UaW1lbGluZVByb2dyZXNzRnVuYz8gZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorQEAgLTc2NzQsNiArNjk3NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB2b2lkIHNraXAgKHVpbnQgbXNlY3MpOworIAkJcHVibGljIHZvaWQgc3RhcnQgKCk7Cisg CQlwdWJsaWMgdm9pZCBzdG9wICgpOworKwkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBn ZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1 YmxpYyBib29sIGF1dG9fcmV2ZXJzZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCitAQCAtNzY4Miw4ICs2OTgzLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIENsdXR0ZXIuVGltZWxpbmVEaXJlY3Rpb24gZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsg Z2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKysJCVtO b0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9j ayB7IG93bmVkIGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFuaW1hdGlvbk1vZGUgcHJvZ3Jlc3NfbW9kZSB7IGdl dDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2OTcsMTIgKzY5 OTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RvcHBlZCAoYm9vbCBpc19maW5pc2hl ZCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGltZW91dFBvb2wgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFRpbWVvdXRQb29s IChpbnQgcHJpb3JpdHkpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NzUzLDYgKzcwNDgsMTEgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfdHJhbnNmb3JtX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNz IFRyYW5zZm9ybU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJ cHVibGljIFRyYW5zZm9ybU5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl90cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1l bGluZSwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03NzkyLDcgKzcwOTIsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlwcm90ZWN0ZWQgVmlydHVhbElucHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBnZXRf ZGV2aWNlX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIg Z2V0X21hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9t b3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZp cnR1YWwgdm9pZCBub3RpZnlfYnV0dG9uICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwg Q2x1dHRlci5CdXR0b25TdGF0ZSBidXR0b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9p ZCBub3RpZnlfZGlzY3JldGVfc2Nyb2xsICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxE aXJlY3Rpb24gZGlyZWN0aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsK K0BAIC03ODAzLDI4ICs3MTAyLDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwg ZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNo X21vdGlvbiAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOwor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBp bnQgc2xvdCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmlj ZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVi bGljIENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsg b3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNz IFpvb21BY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1 YmxpYyBab29tQWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0 dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9w b2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9p bnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1l ZF9mb2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIu Wm9vbUF4aXMgZ2V0X3pvb21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMg KENsdXR0ZXIuWm9vbUF4aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29t X2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAo Q2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZh Y3Rvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBHcmFwaGVuZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9j bmFtZSA9ICJDbHV0dGVyQW5pbWF0YWJsZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9h bmltYXRhYmxlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29s IGFuaW1hdGVfcHJvcGVydHkgKENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGlvbiwgc3RyaW5nIHBy b3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgaW5pdGlhbF92YWx1ZSwgR0xpYi5WYWx1ZSBmaW5hbF92 YWx1ZSwgZG91YmxlIHByb2dyZXNzLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIEdMaWIuUGFyYW1TcGVj IGZpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKysJCXB1YmxpYyBhYnN0cmFj dCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2luaXRpYWxfc3RhdGUgKHN0 cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KK0BAIC03ODM1LDEyICs3MTMzLDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKyAJcHVibGljIGludGVyZmFjZSBDb250YWluZXIgOiBHTGliLk9iamVjdCB7Cist CQlwdWJsaWMgdm9pZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKyAJCVtD Q29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3Rf YWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor IAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NjAsMTggKzcxNTUsMTAgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95X2NoaWxkX21ldGEg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBmaW5kX2NoaWxkX2J5X25hbWUgKHN0cmluZyBj aGlsZF9uYW1lKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3Nf ZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorLQkJcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJh bVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEBmb3JlYWNoIChDbHV0dGVyLkNh bGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGZvcmVhY2hfd2l0aF9pbnRlcm5hbHMgKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBD bHV0dGVyLkNoaWxkTWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0b3I+ IGdldF9jaGlsZHJlbiAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJf Y2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBH TGliLlBhcmFtU3BlY1tdIGxpc3RfY2hpbGRfcHJvcGVydGllcyAoKTsKKyAJCVtDQ29kZSAodmZ1 bmNfbmFtZSA9ICJsb3dlciIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgbG93ZXJfY2hpbGQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNp YmxpbmcgPSBudWxsKTsKK0BAIC03ODgzLDggKzcxNzAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQor IAkJcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChDbHV0 dGVyLkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworQEAgLTc5MDEsNyArNzE4Niw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBh YnN0cmFjdCB2b2lkIGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZh bGlkYXRlX3NpemUgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQg cGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9k ZSk7CisrCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9y IGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBwYWlu dF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc5MTUsNDcgKzcyMDAsMTYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1c3RvbV9wcm9wZXJ0eSAo Q2x1dHRlci5TY3JpcHQgc2NyaXB0LCBzdHJpbmcgbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7Cisg CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfaWQgKHN0cmluZyBpZF8pOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgaW50 ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFn ZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGdl dF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93cmFwcGVy ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdf Y2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAo KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBpZ25vcmluZ19yZWRy YXdfY2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgcmVh bGl6ZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNpemUg KGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3Ry YWN0IHZvaWQgc2V0X2N1cnNvcl92aXNpYmxlIChib29sIGN1cnNvcl92aXNpYmxlKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBp c19mdWxsc2NyZWVuKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBz ZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3Ry YWN0IHZvaWQgc2V0X3VzZXJfcmVzaXphYmxlIChib29sIGlzX3Jlc2l6YWJsZSk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9y X2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJCXB1Ymxp YyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJ CXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJs aWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMg c3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxv YXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk2NCw4 ICs3MjE4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENs dXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9i b3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENs dXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor QEAgLTc5ODYsNiArNzIzOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IGluaXRfcmVjdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJv eCBpbnRlcnBvbGF0ZSAoQ2x1dHRlci5BY3RvckJveCBmaW5hbCwgZG91YmxlIHByb2dyZXNzKTsK KysJCXB1YmxpYyBib29sIGlzX2luaXRpYWxpemVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNjYWxlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KK0BAIC04MDExLDcgKzcyNjQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgd2VhayBDYWlyby5TdXJmYWNlIGltYWdlOworIAkJcHVibGljIENhaXJv LlJlY3RhbmdsZUludCByZWN0OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gImNsdXR0ZXJfY29sb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xv ciB7CisgCQlwdWJsaWMgdWludDggcmVkOworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgw MjcsMTIgKzcyODAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1 YWwgKENsdXR0ZXIuQ29sb3IgdjIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9m cm9tX2hscyIpXQorLQkJcHVibGljIENvbG9yLmZyb21faGxzIChmbG9hdCBodWUsIGZsb2F0IGx1 bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJf Y29sb3JfZnJvbV9waXhlbCIpXQorLQkJcHVibGljIENvbG9yLmZyb21fcGl4ZWwgKHVpbnQzMiBw aXhlbCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0K Ky0JCXB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisrCQlwdWJsaWMgc3Rh dGljIHZvaWQgZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZs b2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQg ZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBwaXhlbCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9zdHJp bmcgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBzdHJpbmcgc3RyKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBn ZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1aW50IGhhc2ggKCk7CitAQCAtODA0MSw4ICs3MjkzLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIENsdXR0ZXIuQ29sb3IgaW50ZXJwb2xhdGUgKENsdXR0ZXIuQ29sb3IgZmluYWwsIGRv dWJsZSBwcm9ncmVzcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBsaWdodGVuICgpOworLQkJ W0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistCQlwdWJsaWMg Ym9vbCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Ig c2hhZGUgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc3VidHJhY3Qg KENsdXR0ZXIuQ29sb3IgYik7CisgCQlwdWJsaWMgdm9pZCB0b19obHMgKG91dCBmbG9hdCBodWUs IG91dCBmbG9hdCBsdW1pbmFuY2UsIG91dCBmbG9hdCBzYXR1cmF0aW9uKTsKK0BAIC04MDUwLDIz ICs3MzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9m b2dfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0cnVjdCBGb2cg eworLQkJcHVibGljIGZsb2F0IHpfbmVhcjsKKy0JCXB1YmxpYyBmbG9hdCB6X2ZhcjsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfZ2VvbWV0cnlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBH ZW9tZXRyeSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMg dWludCB3aWR0aDsKKy0JCXB1YmxpYyB1aW50IGhlaWdodDsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGludGVyc2VjdHMgKENsdXR0ZXIuR2VvbWV0cnkgZ2Vv bWV0cnkxKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVy Lkdlb21ldHJ5IHVuaW9uIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5X2IpOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKysJcHVibGljIHN0cnVjdCBGcmFtZUxpc3RlbmVySWZhY2UgeworKwkJcHVibGljIHdl YWsgZ2xvYmFsOjpiZWZvcmVfZnJhbWUgYmVmb3JlX2ZyYW1lOworKwkJcHVibGljIHdlYWsgZ2xv YmFsOjpmcmFtZSBmcmFtZTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBL YmRBMTF5U2V0dGluZ3MgeworQEAgLTgwNzgsNyArNzMxNSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91 c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BA IC04MDg3LDggKzczMjQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wg ZXF1YWwgKENsdXR0ZXIuS25vdCBrbm90X2IpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJDT0dMX1RZUEVfTUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRy aXggeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1 dHRlci5NYXRyaXg/IGFsbG9jICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJ CXB1YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBnZXRfdHlw ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLk1hdHJpeD8gaW5pdF9mcm9tX2FycmF5IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gZmxvYXQgdmFsdWVzWzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfZnJvbV9tYXRyaXggKENsdXR0 ZXIuTWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuTWF0cml4PyBpbml0X2lkZW50aXR5ICgpOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorIAlwdWJsaWMgc3RydWN0IFBhZEJ1dHRvbkV2ZW50IHsKK0BAIC04MTMwLDcgKzczNzgs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZhbHVlOworIAkJcHVi bGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2RlIHsKKyAJCXB1Ymxp YyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxNDAsNyArNzM4OCw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlBhdGhOb2RlIG5v ZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVj dGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0cnVjdCBQ ZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTQ5LDYgKzczOTcsMTkg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHpfZmFyOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFBvaW50ZXJBMTF5U2V0dGluZ3MgeworKwkJcHVi bGljIENsdXR0ZXIuUG9pbnRlckExMXlGbGFncyBjb250cm9sczsKKysJCXB1YmxpYyBDbHV0dGVy LlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgZHdlbGxfY2xpY2tfdHlwZTsKKysJCXB1YmxpYyBD bHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxNb2RlIGR3ZWxsX21vZGU7CisrCQlwdWJsaWMgQ2x1dHRl ci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfc2luZ2xlOworKwkJcHVi bGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX2RvdWJs ZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2Vz dHVyZV9kcmFnOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBk d2VsbF9nZXN0dXJlX3NlY29uZGFyeTsKKysJCXB1YmxpYyBpbnQgc2Vjb25kYXJ5X2NsaWNrX2Rl bGF5OworKwkJcHVibGljIGludCBkd2VsbF9kZWxheTsKKysJCXB1YmxpYyBpbnQgZHdlbGxfdGhy ZXNob2xkOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yOCIp XQorIAlwdWJsaWMgc3RydWN0IFByb3hpbWl0eUV2ZW50IHsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2 ZW50VHlwZSB0eXBlOworQEAgLTgxNTgsNDcgKzc0MTksMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJsaWMgd2VhayBD bHV0dGVyLklucHV0RGV2aWNlIGRldmljZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3VuaXRzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVjdCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRl ci5Vbml0cz8gY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9jbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fY20g KGZsb2F0IGNtKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtIild CistCQlwdWJsaWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLQkJW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW1fZm9yX2ZvbnQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9t X2VtX2Zvcl9mb250IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistCQlbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fbW0g KGZsb2F0IG1tKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3BpeGVs cyIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLQkJW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcHQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3B0 IChmbG9hdCBwdCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJp bmciKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJs aWMgQ2x1dHRlci5Vbml0VHlwZSBnZXRfdW5pdF90eXBlICgpOworIAkJcHVibGljIGZsb2F0IGdl dF91bml0X3ZhbHVlICgpOworIAkJcHVibGljIGZsb2F0IHRvX3BpeGVscyAoKTsKKyAJCXB1Ymxp YyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RydWN0IFZlcnRl eCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZs b2F0IHo7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0YXRpYyBD bHV0dGVyLlZlcnRleD8gYWxsb2MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5WZXJ0ZXggdmVydGV4X2IpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlZl cnRleD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVS X0FDVE9SX0FMSUdOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9hbGlnbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBBY3RvckFs aWduIHsKK0BAIC04MjIzLDE0ICs3NDUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWV9B WElTLAorIAkJQk9USAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxs b2NhdGlvbl9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gQWxsb2NhdGlvbkZsYWdzIHsKKy0JCUFMTE9DQVRJ T05fTk9ORSwKKy0JCUFCU09MVVRFX09SSUdJTl9DSEFOR0VELAorLQkJREVMRUdBVEVfTEFZT1VU CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fbW9kZV9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVt IEFuaW1hdGlvbk1vZGUgeworQEAgLTgzMzYsNiArNzU1OCwyNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlZX0FYSVMsCisgCQlCT1RICisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVf aWQgPSAiY2x1dHRlcl9kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVi bGljIGVudW0gRGVidWdGbGFnIHsKKysJCU1JU0MsCisrCQlBQ1RPUiwKKysJCVRFWFRVUkUsCisr CQlFVkVOVCwKKysJCVBBSU5ULAorKwkJUEFOR08sCisrCQlCQUNLRU5ELAorKwkJU0NIRURVTEVS LAorKwkJU0NSSVBULAorKwkJU0hBREVSLAorKwkJTVVMVElTVEFHRSwKKysJCUFOSU1BVElPTiwK KysJCUxBWU9VVCwKKysJCVBJQ0ssCisrCQlFVkVOVExPT1AsCisrCQlDTElQUElORywKKysJCU9P Ql9UUkFOU0ZPUk1TCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RSQUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2RyYWdfYXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CXB1YmxpYyBlbnVtIERyYWdBeGlzIHsKK0BAIC04MzQzLDExICs3NTg2LDI0IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZF Q1RfUEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Ry YXdfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERy YXdEZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBF RF9SRURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NV TExJTkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVE UkFXLAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9w YWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVj dFBhaW50RmxhZ3MgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9B Q1RPUl9ESVJUWSIpXQorLQkJQUNUT1JfRElSVFkKKysJCUFDVE9SX0RJUlRZLAorKwkJQllQQVNT X0VGRkVDVAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FVkVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZXZl bnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorQEAgLTgzOTIsMjEgKzc2NDgsMTIg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKyAJcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfTlBPVCwKKy0J CVNXQVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMs CisgCQlTVEFHRV9TVEFUSUMsCistCQlTVEFHRV9VU0VSX1JFU0laRSwKKyAJCVNUQUdFX0NVUlNP UiwKKyAJCVNIQURFUlNfR0xTTCwKKyAJCU9GRlNDUkVFTiwKKyAJCVNUQUdFX01VTFRJUExFLAor LQkJU1dBUF9FVkVOVFM7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9hdmFp bGFibGUiKV0KKy0JCXB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0JCVtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRl ci5GZWF0dXJlRmxhZ3MgQGdldCAoKTsKKysJCVNXQVBfRVZFTlRTCisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVS X0ZMT1dfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Zsb3dfb3JpZW50YXRpb25fZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTg0MTQsMTIgKzc2NjEsMTAgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9 ICJDTFVUVEVSX0ZPTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvbnRfZmxhZ3NfZ2V0X3R5cGUg KCkiKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb250Rmxh Z3MgeworLQkJTUlQTUFQUElORywKKy0JCUhJTlRJTkcKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZSQU1FX1JFU1VM VF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZnJhbWVfcmVzdWx0X2dldF90eXBlICgpIildCisrCXB1 YmxpYyBlbnVtIEZyYW1lUmVzdWx0IHsKKysJCVBFTkRJTkdfUFJFU0VOVEVELAorKwkJSURMRQor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9HRVNUVVJFX1RSSUdHRVJfRURHRV8iLCB0eXBlX2lkID0gImNsdXR0 ZXJfZ2VzdHVyZV90cmlnZ2VyX2VkZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KK0BAIC04NjM0LDcgKzc4NzksOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGVudW0gT2Zmc2NyZWVuUmVkaXJl Y3QgeworIAkJQVVUT01BVElDX0ZPUl9PUEFDSVRZLAorLQkJQUxXQVlTCisrCQlBTFdBWVMsCisr CQlPTl9JRExFCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX09SSUVOVEFUSU9OXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9vcmllbnRhdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorQEAgLTg2NDIsNiArNzg4OCwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlIT1JJ Wk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFJTlRfRkxBR18iLCB0eXBl X2lkID0gImNsdXR0ZXJfcGFpbnRfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1 YmxpYyBlbnVtIFBhaW50RmxhZyB7CisrCQlOT05FLAorKwkJTk9fQ1VSU09SUywKKysJCUZPUkNF X0NVUlNPUlMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYW5f YXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJs aWMgZW51bSBQYW5BeGlzIHsKK0BAIC04NjYxLDYgKzc5MTQsMTEgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf REVCVUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5cGUg KCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJQ0tJ TkcKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19tb2Rl X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVu dW0gUGlja01vZGUgeworQEAgLTg2NjgsMTMgKzc5MjYsNDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJUkVBQ1RJVkUsCisgCQlBTEwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VMTF9DTElD S19UWVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlw ZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBl IHsKKysJCU5PTkUsCisrCQlQUklNQVJZLAorKwkJU0VDT05EQVJZLAorKwkJTUlERExFLAorKwkJ RE9VQkxFLAorKwkJRFJBRworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX0RJUkVDVElPTl8i LCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2R3ZWxsX2RpcmVjdGlvbl9nZXRfdHlw ZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIHsKKysJCU5P TkUsCisrCQlMRUZULAorKwkJUklHSFQsCisrCQlVUCwKKysJCURPV04KKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfQTExWV9EV0VMTF9NT0RFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdl bGxfbW9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsTW9k ZSB7CisrCQlXSU5ET1csCisrCQlHRVNUVVJFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbRmxh Z3NdCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RmxhZ3MgeworKwkJU0VDT05EQVJZX0NMSUNL X0VOQUJMRUQsCisrCQlEV0VMTF9FTkFCTEVECisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfVElNRU9V VF9UWVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfdGltZW91dF90eXBlX2dl dF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5VGltZW91dFR5cGUgeworKwkJ U0VDT05EQVJZX0NMSUNLLAorKwkJRFdFTEwsCisrCQlHRVNUVVJFCisrCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVS X1JFUEFJTlRfRkxBR1NfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlcGFpbnRfZmxhZ3NfZ2V0X3R5 cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgZW51bSBSZXBhaW50RmxhZ3MgeworIAkJUFJFX1BBSU5ULAorLQkJUE9TVF9QQUlOVCwKKy0J CVFVRVVFX1JFRFJBV19PTl9BREQKKysJCVBPU1RfUEFJTlQKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUkVR VUVTVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVxdWVzdF9tb2RlX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC04NzU1LDggKzgwNDYsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlw dWJsaWMgZW51bSBTdGFnZVN0YXRlIHsKKy0JCUZVTExTQ1JFRU4sCistCQlPRkZTQ1JFRU4sCisg CQlBQ1RJVkFURUQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQ09MT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3N0YXRpY19jb2xvcl9nZXRfdHlwZSAoKSIpXQorQEAgLTg4MjMsMTMgKzgxMTIsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEFC TEVfQUxJR05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0X3R5 cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFibGVBbGlnbm1lbnQg eworLQkJU1RBUlQsCistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVF9E SVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9uX2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVudW0gVGV4dERpcmVj dGlvbiB7CitAQCAtODkwNSwyOCArODE4NywxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlW QUxVRTsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNM VVRURVJfVEVYVFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlw dWJsaWMgZXJyb3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9NRU1PUlksCistCQlO T19ZVVYsCistCQlCQURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJr ICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisg CXB1YmxpYyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChHTGli Lk9iamVjdCBpdGVtKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGlj IGRlbGVnYXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3Mg PSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2aW91 ckZvcmVhY2hGdW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBkZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9iamVjdCBnb2JqZWN0 LCBzdHJpbmcgYWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5cGUg bW9kaWZpZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgQ2FsbGJh Y2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVsZWdh dGUgdm9pZCBFbWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRl ci5JbnB1dERldmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRlckZ1bmMgKENsdXR0 ZXIuRXZlbnQgZXZlbnQpOworQEAgLTg5NTcsOSArODIyNyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9S SVRZX1JFRFJBVzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBzdGF0aWMgQ2x1 dHRlci5BY3RvckJveD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGJhc2Vf aW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtODk3MSwzNyArODIzOCwxMiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1 YmxpYyBzdGF0aWMgYm9vbCBjaGVja193aW5kb3dpbmdfYmFja2VuZCAoc3RyaW5nIGJhY2tlbmRf dHlwZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXJfZ2x5cGhfY2Fj aGUgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9y IGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3Is IHVpbnQzMiBwaXhlbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg Ym9vbCBjb2xvcl9mcm9tX3N0cmluZyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBz dHIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5Db2xvcj8gY29sb3JfZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9h Y2Nlc3NpYmlsaXR5ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGlj IHZvaWQgZG9fZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IGV2ZW50X2FkZF9maWx0ZXIgKENsdXR0ZXIuU3Rh Z2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90 aWZ5X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQgZXZlbnRf Z2V0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q2x1dHRlci5FdmVudCBldmVudF9wZWVrICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIGV2ZW50X3JlbW92ZV9maWx0ZXIgKHVpbnQgaWQpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZXZlbnRzX3BlbmRpbmcgKCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAg LTkwMTQsOSArODI1Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiBnZXRfY3VycmVudF9ldmVudF90aW1l ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9kZWJ1Z19lbmFibGVkICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5CYWNrZW5kIGdl dF9kZWZhdWx0X2JhY2tlbmQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwMjYsMTggKzgyNjUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVy LlRleHREaXJlY3Rpb24gZ2V0X2RlZmF1bHRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRm9udEZsYWdzIGdldF9mb250X2ZsYWdzICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9u dE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAu NiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3Vw IGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwNDUsMjYgKzgyNzUsOCBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwX3dp dGhvdXRfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3BvaW50ZXJfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfc2NyaXB0X2lkIChH TGliLk9iamVjdCBnb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBn ZXRfc2hvd19mcHMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHVsb25nIGdldF90aW1lc3RhbXAgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJk IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu OCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIGludCBpZF8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBp bml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3Bv cyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIw LjIiKV0KK0BAIC05MDgwLDQxICs4MjkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0 YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVmYXVsdF9mcmFtZV9yYXRlICh1aW50IGZy YW1lc19wZXJfc2VjKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9u dF9mbGFncyAoQ2x1dHRlci5Gb250RmxhZ3MgZmxhZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfYWRkX2RhdGFf ZnVsbCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0YUZ1bmMgdGVzdF9mdW5j KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2No ZWNrX2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBv aW50LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rvcj8gcmVzdWx0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2Nv bG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBD bHV0dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1bHQpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgdGVz dF9nZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0IChpbnQgYXJnYywgc3Ry aW5nIGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQg dGVzdF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB1bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB1bmdyYWJfcG9pbnRlcl9mb3JfZGV2aWNlIChpbnQgaWRfKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAodWlu dDMyIHdjKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNS1jdXN0b20udmFsYSB2 YXBpL211dHRlci1jb2dsLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVu YW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9t dXR0ZXItY29nbC02LWN1c3RvbS52YWxhCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC5k ZXBzIHZhcGkvbXV0dGVyLWNvZ2wtNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFt ZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29n bC02LmRlcHMKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LnZhcGkgdmFwaS9tdXR0ZXIt Y29nbC02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNjglCityZW5hbWUgZnJvbSB2YXBpL211dHRl ci1jb2dsLTUudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitpbmRleCBh ODk2MTIyNC4uMTk1ZTNiMTcgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC01LnZhcGkKKysr KyB2YXBpL211dHRlci1jb2dsLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNv Z2wtNS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11 dHRlci1jb2dsLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8K KyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdp cl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKytbQ0NvZGUg KGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0g IjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xI YW5kbGUiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFj dF0KK0BAIC0yOCw5ICsyOCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBz ZXRfZGF0YSAoc2l6ZV90IG9mZnNldCwgW0NDb2RlIChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXpl X3QiKV0gdWludDhbXSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lkIHVubWFwICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0 X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBDb250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENv bnRleHQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQor IAlbQ29tcGFjdF0KK0BAIC02NSw2MiArNjYsMTcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRl cmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5 ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENv Z2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNv bG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfbGF5 ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dy YXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1Ymxp YyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJf aW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1v ZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVu b3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9w cm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENv Z2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9p ZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1 bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29n bC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2Js ZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29u c3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xv ciAoQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFs cGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVp bnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wu Q29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9s YXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4 LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0xMzMsNDEgKzg5 LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9v bCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgs IGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0 ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBN b2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93 cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90 IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6 ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxv YXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3Bl Y3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlh bCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxM YXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3Ag KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBn ZXRfd3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5 cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsx MDYsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2ds Lk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4 dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVu cmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVy ZSB0ZXh0dXJlKTsKKyAJfQorQEAgLTE5Niw5ICsxMjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtD Q29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxi YWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXpl Q2xvc3VyZSBhZGRfcmVzaXplX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3Mg PSAxLjUpXSBDb2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRh dGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdWludCBhZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5 IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3Np emVfQ0xVVFRFUiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE0IildCisgCQlwdWJsaWMgaW50IGdldF9idWZmZXJfYWdlICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KK0BAIC0yMTMsOCArMTM0LDYgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBj bG9zdXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHJl bW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9idWZmZXJz X2NhbGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KK0BAIC0yNDQsNyArMTYzLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf cGlwZWxpbmVfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wu T2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBQaXBlbGluZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJ CXB1YmxpYyBQaXBlbGluZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNTQsMTYgKzE3NCwxMCBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2Fs cGhhX3Rlc3RfcmVmZXJlbmNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxG YWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAo Q29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xh eWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjc0LDggKzE4OCw2IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdy YXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0 X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3Jh cF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjg2LDEwICsxOTgsNiBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQg Z2V0X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0 aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAt Mjk4LDEwICsyMDYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBl bGluZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wu Q29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBi bGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0 YW50X2NvbG9yKTsKK0BAIC0zMTQsMTAgKzIxOCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9k ZSAoQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xv ciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldp bmRpbmcgZnJvbnRfd2luZGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxl bmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0zMzUsOCArMjM1LDYgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1v ZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBN b2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFw TW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3Jh cE1vZGUgbW9kZSk7CitAQCAtMzQ1LDEwICsyNDMsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAo ZmxvYXQgcG9pbnRfc2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNw ZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGlu dCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM4MiwxMCArMjc2LDYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHVuaWZvcm1fbWF0cml4IChpbnQg dW5pZm9ybV9ubywgaW50IHNpemUsIGJvb2wgdHJhbnNwb3NlLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aF9wb3MgPSAyLjkpXSBmbG9hdFtdIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIHVzZSAoKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJD b2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3JlZiIsIHVucmVmX2Z1bmN0 aW9uID0gImNvZ2xfc2hhZGVyX3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3Mg U2hhZGVyIDogQ29nbC5IYW5kbGUgeworQEAgLTQ2NSwxMiArMzU1LDEwIEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0X2Nv bnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdl dF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFi bGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBib29sIGdl dF9kZXB0aF93cml0ZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor QEAgLTUxNiw2ICs0MDQsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBwdXNo X21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBm bG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVnaW9u IHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg cHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTI5LDEzICs0MTgsOSBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENv Z2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJ CXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJs aWMgdm9pZCBzZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkIChib29sIGVuYWJsZWQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9l bmFibGVkIChib29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorQEAgLTYzNSwxMCArNTIwLDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IHZvaWQgc2V0X2JsdWVfYnl0ZSAodWludDggYmx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9h dCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2Zyb21fNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBi bHVlLCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgdm9pZCBzZXRfZ3JlZW4gKGZsb2F0IGdyZWVuKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KK0BAIC02NjIsNyArNTQzLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHdl YWsgc3RyaW5nIG5hbWU7CisgCQlwdWJsaWMgdWxvbmcgaW5zdGFuY2VfY291bnQ7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJDT0dM X1RZUEVfTUFUUklYIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVj dCBNYXRyaXggeworIAkJcHVibGljIGZsb2F0IHh4OworIAkJcHVibGljIGZsb2F0IHl4OworQEAg LTY5Miw4ICs1NzMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBnZXRfaW52 ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2ds X21hdHJpeF9pbml0X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0cml4LmlkZW50aXR5ICgpOwor LQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCXB1 YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlv bik7CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVy KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGluaXRfdHJh bnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorQEAgLTcwMiwxOSArNTgyLDE1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9z aXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmpl Y3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ks IGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9tdWx0 aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRyaXggYSwgQ29nbC5N YXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJp Z2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMg KGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwg ZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxv YXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBy b2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBw b2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2lu dHMpOworIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQg eSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlv biBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVs ZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxv YXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVm IGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJsaWMgc3RhdGljIHZv aWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCByZWYgZmxvYXQgeCwg cmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9pZCB0 cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lk KiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9w b2ludHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODE4LDM4ICs2OTQsMzMg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTk9ORSwKKyAJCU5PX0dFVF9EQVRBCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZF QVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9Z VVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVO X01VTFRJU0FNUExFLAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAor LQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JB TkdFLAorLQkJUE9JTlRfU1BSSVRFLAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9C VUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJF CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9GRUFUVVJFX0lEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBGZWF0dXJlSUQgeworKwkJW0NDb2RlIChjbmFt ZSA9ICJDT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMiKV0KKysJCU9HTF9GRUFU VVJFX0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVBRCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JV RkZFUl9GT1JfUkVBRCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9C VUZGRVJfRk9SX1dSSVRFIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklU RSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVO VCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5ULAorKwkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUiKV0KKysJCU9HTF9GRUFU VVJFX0lEX1BSRVNFTlRBVElPTl9USU1FLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRV UkVfSURfRkVOQ0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0ZFTkNFLAorKwkJW0NDb2RlIChjbmFt ZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVY VFVSRV9SRywKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0Ui KV0KKysJCU9HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNP R0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCIpXQorKwkJT0dMX0ZFQVRV UkVfSURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJOQUwKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJQ09OVElO VUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7Cist CQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAgLTg2Miw2ICs3MzMs MTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7Cisg CQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVTRVRf U1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFwaGljc1Jl c2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQsCisrCQlJ Tk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAorKwkJUFVS R0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRFLAor QEAgLTg4OCwxMiArNzY3LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9NSVBNQVBf TElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJf VFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9U WVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIE1hdGVy aWFsV3JhcE1vZGUgeworQEAgLTk3MSw2ICs4NDQsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlE RVBUSF8xNiwKKyAJCURFUFRIXzMyLAorIAkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGlj IGludCBnZXRfYnl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRf bl9wbGFuZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KK0BAIC0xMDY0 LDkgKzkzOSw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBl Q2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNr IChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlb VmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJl Q2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2Fs bGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5m byk7CitAQCAtMTA3NCwxMyArOTQ5LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2Fs bGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChD b2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgUGlwZWxpbmVM YXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3Mg PSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5G cmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29s IFRleHR1cmUyREVHTEltYWdlRXh0ZXJuYWxBbGxvYyAoQ29nbC5UZXh0dXJlMkQgdGV4XzJkKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRh dGFEZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworQEAgLTEwOTIsNiArOTYzLDggQEAgbmFt ZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIild CisgCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVT IildCisrCXB1YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVM VF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIp XQorQEAgLTEwOTksMTkgKzk3Miw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01BWF9X QVNURSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFYX1dBU1RFOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGJsaXRfZnJhbWVidWZm ZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVyIGRlc3QsIGludCBzcmNf eCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5n IG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9y LCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVU VEVSIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5zeXNf aGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorQEAgLTExMjksNTcgKzk5MSwzOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVj dF9wcmludF9pbnN0YW5jZXMgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGZlYXR1cmVz X2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBm bG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgZm9yZWFjaF9mZWF0dXJlIChDb2dsLkNv bnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sgY2FsbGJhY2spOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0 bWFza3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQgaW50IGJsdWUsIG91dCBpbnQg YWxwaGEpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgc3RhdGljIGlu dDY0IGdldF9jbG9ja190aW1lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wg Z2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0 YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu OCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisrCXB1YmxpYyBz dGF0aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3RhdHVzIGdldF9ncmFwaGljc19yZXNldF9zdGF0dXMg KENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRp b25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLkNhbGxiYWNrIGdldF9wcm9j X2FkZHJlc3MgKHN0cmluZyBzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25f bWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkKiBnZXRfc291cmNlICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4IildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0eXBlX21hdHJpeF9nZXRfdHlw ZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBoYXNfZmVhdHVy ZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZvaWQqIG9iamVj dCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVidWZm ZXIgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTExOTMsNTMgKzEwMzYs OSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1 YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBt YXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0 IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAo ZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVy ZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBib29sIHVzZV9jb2xvcik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bf c291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVj dGFuZ2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0 ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhf Y29vcmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0 YW5nbGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4Miwg ZmxvYXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzIChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIwLjguNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3Rl eHR1cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0 cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxl ZCAoYm9vbCBzZXR0aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCitAQCAtMTI0Nyw1MyArMTA0NiwxMSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9k ZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJl ZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVu LCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlw dWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxl IGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIGJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhhbmRsZSBo YW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hh ZGVyLCBzdHJpbmcgc291cmNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJl X25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBm bGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KK0BAIC0xMzA2LDU5ICsxMDYzLDYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmlu ZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUg dHlwZSwgYm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVyKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJp bmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGlzYWJsZSAo Q29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9k ZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZl cl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1v ZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGludCBtYXhfaW5kZXgsIGlu dCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVy X2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dl dF9mb3JfcXVhZHMgKHVpbnQgbl9pbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5JbmRpY2VzVHlwZSB2 ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGluZGljZXMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGlj ZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlw dWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu OCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWlu dCB3aWR0aCwgdWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1 YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1 YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNj cmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4 MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVl biwgdWludDMyIHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDEx TWFza0NhbGxiYWNrIHVwZGF0ZSk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQt Y3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitzaW1pbGFyaXR5IGlu ZGV4IDgxJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCityZW5h bWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitpbmRleCAyNTUxODg1YS4uYzRk NGI5M2EgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCisrKysgdmFw aS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitAQCAtMSwxMCArMSw0IEBACisgbmFtZXNwYWNl IENvZ2wgeworLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIildCist CXB1YmxpYyBjbGFzcyBCaXRtYXA6IEhhbmRsZSB7CistCQlwdWJsaWMgc3RhdGljIEJpdG1hcCBu ZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQl9Cist CisgCVtDb21wYWN0XQorIAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKyAJcHVibGlj IGNsYXNzIEJ1ZmZlcjogSGFuZGxlIHsKK0BAIC00Miw3ICszNiw3IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCXB1YmxpYyBib29sIGlzX3ZlcnRleF9idWZmZXIgKCk7CisgCX0KKyAKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJjb2ds X3BhdGhfY29weSIpXSAKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY29weV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhfY29weSIpXQorIAlbQ29tcGFjdF0KKyAJcHVi bGljIGNsYXNzIFBhdGggeworIAkJcHVibGljIHN0YXRpYyB2b2lkIEBuZXcgKCk7CitAQCAtODIs MTggKzc2LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc291cmNlIChzdHJp bmcgc291cmNlKTsKKyAJfQorIAorLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2ds SGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV9yZWYiLCB1bnJlZl9mdW5jdGlv biA9ICJjb2dsX3RleHR1cmVfdW5yZWYiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmU6IEhhbmRs ZSB7CistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGlj IHVpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChD b2dsLkJpdG1hcCBibXBfaGFuZGxlLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhl bEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1 aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4 ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWludCBy b3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOwor LQkJcHVibGljIFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVy ZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdM aWIuRXJyb3I7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1 cmUgZnVsbF90ZXh0dXJlLCBpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50 IHN1Yl9oZWlnaHQpOworLQkJcHVibGljIFRleHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1 aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50 ZXJuYWxfZm9ybWF0KTsKKy0JfQorLQorIAlbQ29tcGFjdF0KKyAJW0NDb2RlIChjbmFtZSA9ICJD b2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl9yZWYiLCB1bnJl Zl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZmZXJfdW5yZWYiKV0KKyAJcHVibGljIGNsYXNz IFZlcnRleEJ1ZmZlcjogSGFuZGxlIHsKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LmRl cHMgdmFwaS9tdXR0ZXItY29nbC03LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1l IGZyb20gdmFwaS9tdXR0ZXItY29nbC01LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2ds LTcuZGVwcworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQudmFwaSB2YXBpL211dHRlci1j b2dsLTcudmFwaQorc2ltaWxhcml0eSBpbmRleCA1OSUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVy LWNvZ2wtNC52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK2luZGV4IDVk ZThmNDQ3Li42MjBjMjMxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQudmFwaQorKysr IHZhcGkvbXV0dGVyLWNvZ2wtNy52YXBpCitAQCAtMSwxMiArMSwxMyBAQAorLS8qIG11dHRlci1j b2dsLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBt dXR0ZXItY29nbC03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICov CisgCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBn aXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisrW0NDb2Rl IChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9 ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisgbmFtZXNwYWNlIENvZ2wgewor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2ds SGFuZGxlIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBh Y3RdCistCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLkhhbmRsZSB7CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0 X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLk9iamVjdCB7CisrCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQml0 bWFwICgpOworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDb2dsQml0bWFwKiIp XQorKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBm aWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorQEAgLTE2LDEwICsxNyw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF9yb3dzdHJpZGUgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9m cm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQp OworKwkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaXplX2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVu YW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgc3RhdGlj IENvZ2wuQml0bWFwIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIu RXJyb3I7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y25hbWUgPSAiQ29nbEhhbmRsZSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yOCwxNSArMjgsMjggQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJvb2wgc2V0X2RhdGEgKHNpemVfdCBvZmZzZXQs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoX3R5cGUgPSAic2l6ZV90IildIHVpbnQ4W10gZGF0YSk7Cisg CQlwdWJsaWMgdm9pZCB1bm1hcCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBFdWxlciB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIHR5cGVfaWQgPSAiY29nbF9jb250ZXh0X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMg Y2xhc3MgQ29udGV4dCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBDb250ZXh0ICgpOworKwkJcHVibGljIGJv b2wgaXNfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9z dXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKyAJcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CisgCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2luZm9f Z2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUluZm8gOiBDb2dsLk9iamVjdCB7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0 ZWQgRnJhbWVJbmZvICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1Ymxp YyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0 IildCisrCQlwdWJsaWMgaW50NjQgZ2V0X3ByZXNlbnRhdGlvbl90aW1lICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVmcmVzaF9yYXRlICgp OworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHJlZl9m dW5jdGlvbiA9ICJjb2dsX2hhbmRsZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX2hhbmRs ZV91bnJlZiIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEhhbmRsZSB7CitAQCAtNjUs NjUgKzc4LDIwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxs YmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Ft YmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRl X2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0J CXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQg bGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dy YXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0 PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIEByZWYg KENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIg KGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywg ZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmlu ZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2Js ZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29u c3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xv ciAoQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFs cGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVp bnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wu Q29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9s YXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJf aW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGlj IGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0 cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xv ciBjb25zdGFudCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorQEAgLTEzMSw0MyArOTksMTUgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29n bC5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29s IHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwg Q29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1v ZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21v ZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CisrCQlw dWJsaWMgYm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5 ZXJfaW5kZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hp bmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIg KENvZ2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3Jh cF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCki KV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMTgsOSBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVj dCwgQ29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAo Q29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2 b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0 dXJlKTsKKyAJfQorQEAgLTE5NCwxNyArMTMwLDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXBy b3RlY3RlZCBPbnNjcmVlbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlw dWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29k ZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNr IGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgQ29nbC5GcmFtZUNsb3N1cmUgYWRk X2ZyYW1lX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2ds LkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRl c3Ryb3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25z Y3JlZW5SZXNpemVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVf dGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywg Q29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1 ZmZlcnNOb3RpZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFj a2VuZF9zZXRfc2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludDY0IGdldF9mcmFtZV9j b3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBnZXRfcmVzaXphYmxlICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGhpZGUgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorQEAgLTIxMywxOCArMTQ4LDE2IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29nbC5G cmFtZUNsb3N1cmUgY2xvc3VyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXplQ2xv c3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3Zl X3N3YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJvb2wgcmVzaXphYmxl KTsKKysJCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNob3cgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzICgpOwor KwkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzIChDb2dsLkZyYW1lSW5mbyBmcmFtZV9pbmZvKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZl cnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKysJCXB1 YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBu X3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50 IG5fcmVjdGFuZ2xlcyk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3Rhbmds ZXMsIGludCBuX3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNv Z2xfb25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitA QCAtMjQ0LDcgKzE3Nyw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlw ZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxp bmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgUGlwZWxpbmUg KENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCitAQCAtMjU0LDQ0ICsxODgsMzAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hbHBoYV90ZXN0X3JlZmVyZW5j ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9h bWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVDdWxs RmFjZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24g KENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5kaW5nICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9s YXllcl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9taW5fZmls dGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChp bnQgbGF5ZXJfaW5kZXgpOworKwkJcHVibGljIGJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9j b29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUg KGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJs aWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVy X2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFw TW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0 ZXhfcG9pbnRfc2l6ZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9wZXJfdmVydGV4X3BvaW50X3Np emUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0 X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg ZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9u IChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMzAw LDExICsyMjAsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGlu ZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29s b3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5n IGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfYmxl bmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2ds LkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BA IC0zMTMsNDYgKzIyOSwzNSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRf Y29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9y NHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFz ayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxs RmFjZU1vZGUgY3VsbF9mYWNlX21vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wu Q29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRf bGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJv d3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5 ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJpbmVf Y29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2ZpbHRlcnMg KGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZUZpbHRlciBtaW5fZmlsdGVyLCBDb2dsLlBp cGVsaW5lRmlsdGVyIG1hZ19maWx0ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5N YXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXhfbWlwbWFwX2xldmVs IChpbnQgbGF5ZXIsIGludCBtYXhfbGV2ZWwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRl eCwgQ29nbC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X2xh eWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29y ZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2Vu YWJsZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOwor IAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5U ZXh0dXJlIHRleHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5l V3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGlu ZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxp bmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVs aW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUp IHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRf c2l6ZSAoYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3Np emUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3No aW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAo aW50IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2Nh dGlvbiwgaW50IHZhbHVlKTsKK0BAIC0zNjEsNyArMjY2LDcgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1f aW50IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBp bnQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMs IGludCBjb3VudCwgQ29nbC5Cb29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworKwkJcHVibGlj IHZvaWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVu c2lvbnMsIGludCBjb3VudCwgYm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENv Z2wuSGFuZGxlIHByb2dyYW0pOworIAl9CitAQCAtMzg4LDcgKzI5Myw3IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJu aW9uIHsKKysJcHVibGljIGNsYXNzIFNjYW5vdXQgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rp b24gPSAiY29nbF9zaGFkZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfdW5y ZWYiKV0KKyAJW0NvbXBhY3RdCitAQCAtNDAxLDQ4ICszMDYsMjMgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJcHVibGljIGJvb2wgaXNfY29tcGlsZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBzb3VyY2Ug KHN0cmluZyBzb3VyY2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0 dXJlX3JlZiIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIsIHVucmVmX2Z1 bmN0aW9uID0gImNvZ2xfdGV4dHVyZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNs YXNzIFRleHR1cmUgOiBDb2dsLkhhbmRsZSB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRl ICgpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVh cmsgKCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1wX2hh bmRsZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZGF0YSAodWludCB3aWR0aCwgdWludCBo ZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwg Q29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWNoYXJbXSBkYXRhKTsKKy0JCXB1YmxpYyBUZXh0dXJl LmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29n bC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVi bGljIFRleHR1cmUuZnJvbV9zdWJfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIGZ1bGxfdGV4dHVyZSwg aW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9u ZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4 ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlwdWJsaWMg Q29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf Z2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3Rhcmdl dCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGludCBnZXRfbWF4 X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93c3RyaWRl ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBp c19zbGljZWQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRl eHR1cmUgbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50 IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3Ry aWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENv Z2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIu RXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUg bmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50IHdp ZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwgQ29n bC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2ds LlRleHR1cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQg c3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWln aHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2NvbXBvbmVudHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CistCQlwdWJs aWMgQ29nbC5Cb29sIHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0 cmlkZSwgdWludDggZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfcHJlbXVsdGlwbGllZCAo Q29nbC5Cb29sIHByZW11bHRpcGxpZWQpOworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9u IChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dp ZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZv cm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1h cCAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93 aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQkJcHVibGljIFRl eHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxh Z3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInRl eHR1cmVfMmQiLCB0eXBlX2lkID0gImNvZ2xfdGV4dHVyZV8yZF9nZXRfZ3R5cGUgKCkiKV0KKysJ cHVibGljIGNsYXNzIFRleHR1cmUyRCA6IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRl eHR1cmUyRCAoKTsKKysJCXB1YmxpYyB2b2lkIGVnbF9pbWFnZV9leHRlcm5hbF9hbGxvY19maW5p c2ggKHZvaWQqIHVzZXJfZGF0YSwgR0xpYi5EZXN0cm95Tm90aWZ5IGRlc3Ryb3kpOworKwkJcHVi bGljIHZvaWQgZWdsX2ltYWdlX2V4dGVybmFsX2JpbmQgKCk7CisrCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisr CQlwdWJsaWMgVGV4dHVyZTJELmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXApOworKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGxvd2VyX2Nhc2Vf Y3N1ZmZpeCA9ICJ0ZXh0dXJlXzJkX3NsaWNlZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJk X3NsaWNlZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRleHR1cmUyRFNsaWNlZCA6 IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRFNsaWNlZCAoKTsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE2IildCisrCQlwdWJsaWMgVGV4dHVyZTJEU2xpY2VkLmZyb21fYml0bWFwIChDb2ds LkJpdG1hcCBibXAsIGludCBtYXhfd2FzdGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24g PSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4 X2J1ZmZlcl91bnJlZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00NjgsNyArMzQ4LDcgQEAgbmFtZXNw YWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0 eXBlX2lkID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBpbnRl cmZhY2UgRnJhbWVidWZmZXIgOiBDb2dsLk9iamVjdCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9y OworKwkJcHVibGljIGJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVy cywgQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAt NDg4LDYgKzM2OCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMy IGVycm9yX3F1YXJrICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIGZpbmlzaCAoKTsKKysJCXB1YmxpYyB2b2lkIGZsdXNoICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZs b2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6 X2Zhcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDk1LDIyICszNzYsMTgg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVi bGljIGludCBnZXRfYmx1ZV9iaXRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworKwkJcHVibGljIHVu b3duZWQgQ29nbC5Db250ZXh0IGdldF9jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRo X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQg KCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9lbmFi bGVkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfZ3JlZW5fYml0cyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsK Ky0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKysJCXB1YmxpYyBib29sIGdl dF9pc19zdGVyZW8gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KK0BAIC01NDcsMTIgKzQyNCwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlw dWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlf MSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xp cCAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg Q29nbC5Cb29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo dCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CisrCQlwdWJsaWMgYm9v bCByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGlu dCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRt YXApOworKwkJcHVibGljIGJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQg eSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVz ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU2MCwxOSArNDM4LDEzIEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxl ciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24p OworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90 ZXh0dXJlX2VuYWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5C b29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworKwkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRl X2VuYWJsZWQgKGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBk aXRoZXJfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKGJvb2wg ZGl0aGVyX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01ODgsNiArNDYwLDM5IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCB0cmFu c2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9n dHlwZSAoKSIpXQorKwlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7Cisr CQlwdWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBz dGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgpOwor KwkJcHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93 c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXT8gZGF0YSk7Cisr CQlwdWJsaWMgYm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0 IHVpbnQgb3V0X2dsX3RhcmdldCk7CisrCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworKwkJ cHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKysJCXB1YmxpYyBib29sIGdldF9wcmVtdWx0aXBsaWVkICgpOworKwkJcHVibGljIHVpbnQg Z2V0X3dpZHRoICgpOworKwkJcHVibGljIGJvb2wgaXNfc2xpY2VkICgpOworKwkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29n bC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1h dCBpbnRlcm5hbF9mb3JtYXQpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKysJCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9y bWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIHVpbnQ4W10gZGF0YSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0 YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRl eHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93 cyBHTGliLkVycm9yOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmUg bmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRo LCBpbnQgc3ViX2hlaWdodCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBD b2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wu VGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVu dHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CisrCQlwdWJsaWMgYm9vbCBz ZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdM aWIuRXJyb3I7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQg c2V0X3ByZW11bHRpcGxpZWQgKGJvb2wgcHJlbXVsdGlwbGllZCk7CisrCQlwdWJsaWMgYm9vbCBz ZXRfcmVnaW9uIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVp bnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29n bC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K KysJCXB1YmxpYyBib29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNy Y195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdo dCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1NpbXBsZVR5cGVdCisgCXB1YmxpYyBzdHJ1Y3QgQW5nbGUg OiBpbnQzMiB7CitAQCAtNjM1LDEwICs1NDAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJs aWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZs b2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4 IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorQEAgLTY2Miw3ICs1NjMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMg d2VhayBzdHJpbmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gIkNP R0xfVFlQRV9NQVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3Ry dWN0IE1hdHJpeCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7CitA QCAtNjg5LDMyICs1OTAsMjcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgZnJ1 c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBm bG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB1bm93bmVkIGZsb2F0W10gZ2V0 X2FycmF5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworKwkJcHVibGljIGJv b2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKyAJCVtDQ29kZSAoY25h bWUgPSAiY29nbF9tYXRyaXhfaW5pdF9pZGVudGl0eSIpXQorIAkJcHVibGljIE1hdHJpeC5pZGVu dGl0eSAoKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxl cik7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9u IHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5F dWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBpbml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZsb2F0IHR6KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfaWRlbnRpdHkg KCk7CisrCQlwdWJsaWMgYm9vbCBpc19pZGVudGl0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBm bG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94 LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0 IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2ds X21hdHJpeF9tdWx0aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRy aXggYSwgQ29nbC5NYXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxl ZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxv YXQgZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBv cnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwg ZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9h dCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1 YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRl X2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0 LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENv Z2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAo R3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBm bG9hdCBzeSwgZmxvYXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYg ZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJs aWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCBy ZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlw dWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3Ry aWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNf b3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODAx LDE2ICs2OTcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlXSU5ET1dfQlVGRkVSLAorIAkJT0ZG U0NSRUVOX0JVRkZFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05FLAorLQkJUkVE LAorLQkJR1JFRU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfREVQVEhf VEVTVF9GVU5DVElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gRGVw dGhUZXN0RnVuY3Rpb24geworIAkJTkVWRVIsCitAQCAtODIyLDQ2ICs3MDgsNDEgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJR0VRVUFMLAorIAkJQUxXQVlTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9FR0xfSU1BR0VfRkxBR18iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKyAJW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBl bnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJFX1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBP VCwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCVNIQURFUlNf R0xTTCwKKy0JCU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9GRlND UkVFTl9CTElULAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJ VkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdF LAorLQkJVEVYVFVSRV9OUE9UX0JBU0lDLAorLQkJVEVYVFVSRV9OUE9UX01JUE1BUCwKKy0JCVRF WFRVUkVfTlBPVF9SRVBFQVQsCistCQlQT0lOVF9TUFJJVEUsCistCQlURVhUVVJFXzNELAorLQkJ TUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JF RU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCisrCXB1YmxpYyBlbnVtIEVnbEltYWdlRmxh Z3MgeworKwkJTk9ORSwKKysJCU5PX0dFVF9EQVRBCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfSURfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1Ymxp YyBlbnVtIEZlYXR1cmVJRCB7CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9V TlNJR05FRF9JTlRfSU5ESUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lO RElDRVMsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZP Ul9SRUFEIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFELAorKwkJW0ND b2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUiKV0KKysJ CU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFLAorKwkJW0NDb2RlIChjbmFtZSA9 ICJDT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5UIildCisrCQlPR0xfRkVBVFVSRV9J RF9TV0FQX0JVRkZFUlNfRVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9J RF9QUkVTRU5UQVRJT05fVElNRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJ TUUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9GRU5DRSIpXQorKwkJT0dM X0ZFQVRVUkVfSURfRkVOQ0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9U RVhUVVJFX1JHIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHLAorKwkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURf QlVGRkVSX0FHRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVf RUdMX0lNQUdFX0VYVEVSTkFMIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFH RV9FWFRFUk5BTCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JMSVRfRlJB TUVCVUZGRVIiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIKKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf RklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1 cm4geworIAkJQ09OVElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVu dW0gRm9nTW9kZSB7CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFM X1NRVUFSRUQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgewor QEAgLTg3NCw2ICs3NTUsMTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJS T1JfQUxMT0NBVEU7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf R1JBUEhJQ1NfUkVTRVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMg ZW51bSBHcmFwaGljc1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRF WFRfUkVTRVQsCisrCQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhU X1JFU0VULAorKwkJUFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VO U0lHTkVEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlw ZSB7CisgCQlCWVRFLAorQEAgLTkwMCwxMiArNzg5LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ TkVBUkVTVF9NSVBNQVBfTElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf TUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlb Q0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlN QVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1 YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MCw2ICs4NTMsMTAgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJQkdSQV8xMDEwMTAyLAorIAkJQVJHQl8yMTAxMDEwLAorIAkJQUJHUl8y MTAxMDEwLAorKwkJUkdCQV9GUF8xNjE2MTYxNiwKKysJCUJHUkFfRlBfMTYxNjE2MTYsCisrCQlB UkdCX0ZQXzE2MTYxNjE2LAorKwkJQUJHUl9GUF8xNjE2MTYxNiwKKyAJCVJHQkFfODg4OF9QUkUs CisgCQlCR1JBXzg4ODhfUFJFLAorIAkJQVJHQl84ODg4X1BSRSwKK0BAIC05ODAsOSArODY3LDE2 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUJHUkFfMTAxMDEwMl9QUkUsCisgCQlBUkdCXzIxMDEw MTBfUFJFLAorIAkJQUJHUl8yMTAxMDEwX1BSRSwKKysJCVJHQkFfRlBfMTYxNjE2MTZfUFJFLAor KwkJQkdSQV9GUF8xNjE2MTYxNl9QUkUsCisrCQlBUkdCX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFC R1JfRlBfMTYxNjE2MTZfUFJFLAorIAkJREVQVEhfMTYsCisgCQlERVBUSF8zMiwKKy0JCURFUFRI XzI0X1NURU5DSUxfOAorKwkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGludCBnZXRf Ynl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMg KCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFE X1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0ZsYWdzXQorQEAgLTEw NDEsMTMgKzkzNSw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5PX1NMSUNJTkcsCisgCQlOT19B VExBUworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9URVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVUeXBlIHsKKy0J CUAyRCwKKy0JCUAzRCwKKy0JCVJFQ1RBTkdMRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9WRVJUSUNFU19NT0RFXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1Ymxp YyBlbnVtIFZlcnRpY2VzTW9kZSB7CitAQCAtMTA2Nyw3ICs5NTQsNiBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGlj IGVudW0gV2luc3lzRmVhdHVyZSB7CisgCQlNVUxUSVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhS T1RUTEUsCisgCQlWQkxBTktfQ09VTlRFUiwKKyAJCVZCTEFOS19XQUlULAorIAkJVEVYVFVSRV9G Uk9NX1BJWE1BUCwKK0BAIC0xMDgyLDkgKzk2OCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEu OSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQg RGVidWdPYmplY3RGb3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUluZm8g aW5mbyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3Rh bmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2ds LkJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQg bGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlw dWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1 cmUpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAzLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBGcmFtZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLkZy YW1lRXZlbnQgZXZlbnQsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5 Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8g aW5mbyk7CitAQCAtMTA5MiwxMiArOTgxLDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6 ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9w b3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFj ayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wg UGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJf aW5kZXgpOworKwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENv Z2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1Ymxp YyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1l YnVmZmVyKTsKKysJcHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRlcm5h bEFsbG9jIChDb2dsLlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2Up XQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCog ZGF0YSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1l ID0gIkNPR0xfQUZJUlNUX0JJVCIpXQorQEAgLTExMDgsNiArOTk1LDggQEAgbmFtZXNwYWNlIENv Z2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisgCXB1Ymxp YyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1 YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0K KyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTEx MTUsMjEgKzEwMDQsMTIgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIild CisgCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNoZWNrX2V4dGVuc2lv biAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNv bG9yIGNvbG9yLCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJfY2hlY2tf ZXh0ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKysJcHVibGljIHN0 YXRpYyBib29sIGJsaXRfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZy YW1lYnVmZmVyIGRlc3QsIGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3Rf eSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5C b29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVy ZSBmZWF0dXJlKTsKKysJcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0 dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY29sb3JfZXF1YWwgKHZvaWQqIHYxLCB2b2lk KiB2Mik7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9lcXVhbCAodm9pZCogdjEsIHZvaWQq IHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9pbml0 X2Zyb21faHNsIChvdXQgQ29nbC5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0 aW9uLCBmbG9hdCBsdW1pbmFuY2UpOworQEAgLTExNDMsMjM0ICsxMDIzLDg3IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZv aWQgZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxl X2ZvZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVhdHVyZUZsYWdzIGZlYXR1cmVz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGZsdXNoICgpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgu MiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmln aHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsK KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGZvcmVh Y2hfZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUNhbGxiYWNrIGNh bGxiYWNrKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQg KCk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwg b3V0IGludCBibHVlLCBvdXQgaW50IGFscGhhKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKysJcHVibGljIHN0YXRpYyBpbnQ2NCBnZXRfY2xvY2tfdGltZSAoQ29nbC5Db250ZXh0IGNv bnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKysJ cHVibGljIHN0YXRpYyBib29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9kcmF3 X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1cmVGbGFn cyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0 cml4ICgpOworKwlwdWJsaWMgc3RhdGljIENvZ2wuR3JhcGhpY3NSZXNldFN0YXR1cyBnZXRfZ3Jh cGhpY3NfcmVzZXRfc3RhdHVzIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJs aWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgR0xp Yi5DYWxsYmFjayBnZXRfcHJvY19hZGRyZXNzIChzdHJpbmcgcyk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0 cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCogZ2V0X3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBn dHlwZV9tYXRyaXhfZ2V0X3R5cGUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0 YXRpYyBib29sIGhhc19mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJl SUQgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9v bCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGlzX2Nv bnRleHQgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5Cb29sIGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgaXNfdmVydGV4X2J1ZmZlcl9pbmRpY2VzIChDb2dsLkhhbmRsZSBoYW5k bGUpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVfaW5mbyAodm9pZCogb2JqZWN0KTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgbWF0cml4X2VxdWFs ICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIG9ydGhv IChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0 IG5lYXIsIGZsb2F0IGZhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnks IGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb2x5Z29uIChDb2dsLlRleHR1cmVWZXJ0ZXggdmVy dGljZXMsIHVpbnQgbl92ZXJ0aWNlcywgQ29nbC5Cb29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNl ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xl IChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJl X2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRz X2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVf d2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQg eTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CisrCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1ZmZl ciAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRz LCB1aW50IG5fcmVjdHMpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMg c3RhdGljIGJvb2wgaXNfb25zY3JlZW4gKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44LjYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAo W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0 cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlz X3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5n bGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNf dGV4dHVyZV8yZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgeik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1Ymxp YyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7 CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJcHVibGljIHN0YXRpYyBib29sIG1hdHJp eF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVz dF9lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf YmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVu c2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9t b2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworKwlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X3RyYWNpbmdfZGlzYWJsZWRfb25fdGhyZWFkICh2b2lkKiBkYXRhKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworKwlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZW5hYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEs IHN0cmluZyBncm91cCwgc3RyaW5nIGZpbGVuYW1lKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4s IGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1 aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0 dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3Ry aW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisrCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZF93aXRoX2ZkICh2b2lkKiBk YXRhLCBzdHJpbmcgZ3JvdXAsIGludCBmZCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFk ZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFk ZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29n bC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBz aGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCisgCXB1Ymxp YyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1h cCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVy bmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJl X25ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3Mg ZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFs X2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CisrCXB1YmxpYyBzdGF0aWMgQ29n bC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4 ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29n bC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRl eHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93 cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVy ZV9uZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQg d2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBD b2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmlu ZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUg dHlwZSwgQ29nbC5Cb29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50ZXIp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5kbGUs IHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kaXNh YmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGlj ZXNNb2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhf YnVmZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01v ZGUgbW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1heF9pbmRl eCwgaW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9i dWZmZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5kbGUg aGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGlj ZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNU eXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92 ZXJ0aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIild CistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3JlZiAo Q29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1pdCAo Q29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5yZWYgKENv Z2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZpZXdwb3J0 ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0 X3Zpc3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlkIChDb2ds Lk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9u c2NyZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wuT25zY3Jl ZW5YMTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvcG9sa2l0LWdv YmplY3QtMS52YXBpIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpCitpbmRleCA5M2VmZjhhNS4u ZmVkYzZhNGEgMTAwNjQ0CistLS0gdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKKysrKyB2YXBp L3BvbGtpdC1nb2JqZWN0LTEudmFwaQorQEAgLTcsNyArNyw3IEBAIG5hbWVzcGFjZSBQb2xraXQg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVj dGVkIEFjdGlvbkRlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9h Y3Rpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Fubm90YXRpb24gKHN0 cmluZyBrZXkpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfYW5ub3RhdGlvbiAoc3Ry aW5nIGtleSk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rl cm1pbmF0ZWQgPSB0cnVlKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZ1tdIGdldF9hbm5vdGF0 aW9uX2tleXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgp OworQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwdWJsaWMgUG9sa2l0 LkF1dGhvcml0eUZlYXR1cmVzIGdldF9iYWNrZW5kX2ZlYXR1cmVzICgpOworIAkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9iYWNrZW5kX25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X2JhY2tlbmRfdmVyc2lvbiAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgZ2V0X293bmVyICgp OworKwkJcHVibGljIHN0cmluZz8gZ2V0X293bmVyICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xr aXQuQXV0aG9yaXR5IGdldF9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51 bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGFzeW5jIGJvb2wgcmVnaXN0ZXJfYXV0 aGVudGljYXRpb25fYWdlbnQgKFBvbGtpdC5TdWJqZWN0IHN1YmplY3QsIHN0cmluZyBsb2NhbGUs IHN0cmluZyBvYmplY3RfcGF0aCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93 cyBHTGliLkVycm9yOworIAkJcHVibGljIGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRpb25fYWdl bnRfc3luYyAoUG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5nIG9i amVjdF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBH TGliLkVycm9yOworQEAgLTU2LDIxICs1NiwyMiBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVi bGljIGNsYXNzIEF1dGhvcml6YXRpb25SZXN1bHQgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgQXV0aG9yaXphdGlv blJlc3VsdCAoYm9vbCBpc19hdXRob3JpemVkLCBib29sIGlzX2NoYWxsZW5nZSwgUG9sa2l0LkRl dGFpbHM/IGRldGFpbHMpOworLQkJcHVibGljIHVub3duZWQgUG9sa2l0LkRldGFpbHMgZ2V0X2Rl dGFpbHMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0YWlscz8gZ2V0X2RldGFpbHMg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMDEiKV0KKyAJCXB1YmxpYyBib29sIGdldF9k aXNtaXNzZWQgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaXNfYXV0aG9yaXplZCAoKTsKKyAJCXB1 YmxpYyBib29sIGdldF9pc19jaGFsbGVuZ2UgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcmV0YWlu c19hdXRob3JpemF0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90ZW1wb3Jh cnlfYXV0aG9yaXphdGlvbl9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gZ2V0X3Rl bXBvcmFyeV9hdXRob3JpemF0aW9uX2lkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCB0eXBlX2lkID0gInBvbGtpdF9kZXRhaWxzX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBEZXRhaWxzIDogR0xpYi5PYmplY3QgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIERldGFpbHMg KCk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0 ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyBzdHJpbmdbXSBnZXRfa2V5cyAoKTsKKysJCXB1YmxpYyBz dHJpbmdbXT8gZ2V0X2tleXMgKCk7CisgCQlwdWJsaWMgdm9pZCBpbnNlcnQgKHN0cmluZyBrZXks IHN0cmluZz8gdmFsdWUpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGxvb2t1cCAoc3RyaW5n IGtleSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGxvb2t1cCAoc3RyaW5nIGtleSk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVf aWQgPSAicG9sa2l0X3Blcm1pc3Npb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBl cm1pc3Npb24gOiBHTGliLlBlcm1pc3Npb24sIEdMaWIuQXN5bmNJbml0YWJsZSwgR0xpYi5Jbml0 YWJsZSB7CitAQCAtODgsNyArODksOCBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTeXN0ZW1CdXNO YW1lICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGlj IFBvbGtpdC5TdWJqZWN0IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNl bGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlN1Ympl Y3Q/IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVs bCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlVuaXhVc2VyPyBnZXRfdXNl cl9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGli LkVycm9yOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBAbmV3IChzdHJpbmcgbmFt ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIHN0 cmluZyBuYW1lIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtMTQ2LDkgKzE0OCwxMCBAQCBu YW1lc3BhY2UgUG9sa2l0IHsKKyAJCXByb3RlY3RlZCBVbml4U2Vzc2lvbiAoKTsKKyAJCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfc2Vzc2lvbl9pZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9s a2l0LlN1YmplY3QgQG5ldyAoc3RyaW5nIHNlc3Npb25faWQpOworLQkJcHVibGljIHN0YXRpYyBh c3luYyBQb2xraXQuU3ViamVjdCBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2Vs bGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBzdGF0aWMg UG9sa2l0LlN1YmplY3QgbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGludCBwaWQsIEdMaWIuQ2FuY2Vs bGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMg c3RhdGljIGFzeW5jIFBvbGtpdC5TdWJqZWN0PyBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdM aWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1Ymxp YyBzdGF0aWMgUG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2Vzc19zeW5jIChpbnQgcGlkLCBH TGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOwor IAkJcHVibGljIHZvaWQgc2V0X3Nlc3Npb25faWQgKHN0cmluZyBzZXNzaW9uX2lkKTsKKysJCVtO b0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIGludCBwaWQgeyBjb25zdHJ1Y3Q7IH0KKyAJCXB1 YmxpYyBzdHJpbmcgc2Vzc2lvbl9pZCB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAl9CitAQCAt MTU2LDE3ICsxNTksMTcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCXB1YmxpYyBjbGFzcyBVbml4 VXNlciA6IEdMaWIuT2JqZWN0LCBQb2xraXQuSWRlbnRpdHkgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFVuaXhVc2VyICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQgc3Ry aW5nPyBnZXRfbmFtZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3VpZCAoKTsKKyAJCXB1YmxpYyBz dGF0aWMgUG9sa2l0LklkZW50aXR5IEBuZXcgKGludCB1aWQpOworLQkJcHVibGljIHN0YXRpYyBQ b2xraXQuSWRlbnRpdHkgbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJy b3I7CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gbmV3X2Zvcl9uYW1lIChzdHJp bmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfdWlkIChpbnQg dWlkKTsKKyAJCXB1YmxpYyBpbnQgdWlkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAi cG9sa2l0X2lkZW50aXR5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgSWRlbnRp dHkgOiBHTGliLk9iamVjdCB7CisgCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBlcXVhbCAoUG9sa2l0 LklkZW50aXR5IGIpOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgZnJvbV9zdHJp bmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xr aXQuSWRlbnRpdHk/IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsK KyAJCXB1YmxpYyBhYnN0cmFjdCB1aW50IGhhc2ggKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgc3Ry aW5nIHRvX3N0cmluZyAoKTsKKyAJfQorQEAgLTIwMSw3ICsyMDQsNyBAQCBuYW1lc3BhY2UgUG9s a2l0IHsKKyAJCUFETUlOSVNUUkFUT1JfQVVUSEVOVElDQVRJT05fUkVRVUlSRURfUkVUQUlORUQs CisgCQlBVVRIT1JJWkVEOworIAkJcHVibGljIHN0YXRpYyBib29sIGZyb21fc3RyaW5nIChzdHJp bmcgc3RyaW5nLCBQb2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIG91dF9pbXBsaWNpdF9hdXRo b3JpemF0aW9uKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nIChQ b2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIGltcGxpY2l0X2F1dGhvcml6YXRpb24pOworKwkJ cHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgY3ByZWZpeCA9ICJQT0xLSVRfRVJST1Jf IildCisgCXB1YmxpYyBlcnJvcmRvbWFpbiBFcnJvciB7CitAQCAtMjEyLDcgKzIxNSw3IEBAIG5h bWVzcGFjZSBQb2xraXQgeworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0KKy0J cHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmlu ZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0 eT8gaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIildCisgCXB1Ymxp YyBzdGF0aWMgUG9sa2l0LlN1YmplY3Qgc3ViamVjdF9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikg dGhyb3dzIEdMaWIuRXJyb3I7CisgfQorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxh dGUKaW5kZXggYjMyZTc3MzRkM2IuLmFlNWE5ZDVmNzY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2J1 ZGdpZS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdidWRnaWUtZGVza3RvcCcK IHBrZ25hbWU9YnVkZ2llLWRlc2t0b3AKIHZlcnNpb249MTAuNS4xCi1yZXZpc2lvbj0zCityZXZp c2lvbj00CiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPWdpcgogY29uZmlndXJlX2Fy Z3M9Ii1Ed2l0aC1ndGstZG9jPWZhbHNlIC1Ed2l0aC1kZXNrdG9wLWljb25zPW5vbmUiCg== --===============7695624715188693932==--