From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 13006 invoked from network); 18 Aug 2020 04:28:15 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 18 Aug 2020 04:28:15 -0000 Content-Type: multipart/mixed; boundary="===============0545318341629805724==" 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: Tue, 18 Aug 2020 06:28:13 +0200 List-Id: Message-ID: <20200818042813.BtMeTFuvXSYMePFPf1S1fdG7SDj2BqhirKmXvKZ9FQ4@z> GitHub notification mails are now in MIME to allow UTF8. --===============0545318341629805724== 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 ZC1wYWNrYWdlcy9wdWxsLzIyOTM2KQ0KLSBbIF0gZHJvcCB0aGUgYHZhbGFgIG9wdGlvbiBpbiB0 aGUgcmVzdCBvZiB0aGUgcGFja2FnZXMNCg0KIyBVcGRhdGVkDQoNCi0gW3hdIGdsaWIgLT4gMi42 NS4xICp1bnN0YWJsZSogKGBndGtfZG9jYCBvcHRpb24gZG9lcyBub3Qgd29yazogbmVlZHMgdW5y ZWxlYXNlZCBgZ3RrLWRvY2ApDQotIFt4XSBnbGliLW5ldHdvcmtpbmcgLT4gMi42NS45MCAqKipi ZXRhKioqDQotIFt4XSBhdC1zcGkyLWNvcmUgLT4gMi4zNy45MCAqKipiZXRhKioqDQotIFt4XSBh dC1zcGkyLWF0ayAtPiAyLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHdlYmtpdDJndGsgLT4gMi4y OS45MSAqKipiZXRhKioqDQotIFt4XSBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIC0+IDMuMzcu MiAqdW5zdGFibGUqDQotIFt4XSBnbm9tZS1kZXNrdG9wIC0+IDMuMzcuOTAuMSAqKipiZXRhKioq DQotIFt4XSBsaWJnd2VhdGhlciAtPiAzLjM2LjEgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtc2V0 dGluZ3MtZGFlbW9uIC0+IDMuMzcuMCAqdW5zdGFibGUqDQotIFt4XSBtdXR0ZXIgLT4gMy4zNy45 MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1tZW51cyAtPiAzLjM2LjAgKipzdGFibGUqKg0KLSBb eF0gY2hlZXNlIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBldm9sdXRpb24tZGF0YS1z ZXJ2ZXIgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jb250cm9sLWNlbnRlciAt PiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gdHJhY2tlciAtPiAyLjMuNCAqKnN0YWJsZSoqDQot IFt4XSBmb2xrcyAtPiAwLjE0LjAgKipzdGFibGUqKg0KLSBbeF0gZGNvbmYtZWRpdG9yIC0+IDMu MzYuNCAqKnN0YWJsZSoqDQotIFt4XSBkZXZoZWxwIC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4 XSBnbm9tZS1zaGVsbCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXNoZWxsLWV4 dGVuc2lvbnMgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnZG0gLT4gMy4zNy45MCAqKipi ZXRhKioqDQotIFt4XSBnbm9tZS1zZXNzaW9uIC0+IDMuMzcuMCAqdW5zdGFibGUqDQotIFt4XSBn bm9tZS1vbmxpbmUtYWNjb3VudHMgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1p bml0aWFsLXNldHVwIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0KLSBbeF0geGRnLWRlc2t0b3AtcG9y dGFsLWd0ayAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gbmF1dGlsdXMgLT4gMy4zNy45 MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1tYXBzIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBb eF0gZXZvbHV0aW9uIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZXZvbHV0aW9uLWV3cyAt PiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHB5dGhvbjMtYXRzcGkgLT4gMi4zNy45MCAqKipi ZXRhKioqDQotIFt4XSBweXRob24tYXRzcGkgLT4gMi4zNy45MCAqKipiZXRhKioqDQotIFt4XSBv cmNhIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtd2VhdGhlciAtPiAocmV2YnVt cCkgKipzdGFibGUqKg0KLSBbeF0gdnRlMyAtPiAwLjYxLjkwICoqKmJldGEqKioNCi0gW3hdIGdu b21lLXRlcm1pbmFsIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtZ2V0dGluZy1z dGFydGVkLWRvY3MgLT4gMy4zNi4yICoqc3RhYmxlKioNCi0gW3hdIGdub21lLXVzZXItZG9jcyAt PiAzLjM2LjIgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtZXB1Yi10aHVtYm5haWxlciAtPiAxLjYg KipzdGFibGUqKg0KLSBbeF0gZ25vbWUtYm9va3MgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0g W3hdIGdub21lLWNoYXJhY3RlcnMgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIGdub21l LWRvY3VtZW50cyAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtZm9udC12aWV3 ZXIgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIGdub21lLXNjcmVlbnNhdmVyIC0+IChy ZXZidW1wICsgYnVpbGQgZml4KSAqKnN0YWJsZSoqDQotIFt4XSB0b3RlbSAtPiAocmV2YnVtcCkg KipzdGFibGUqKg0KLSBbeF0gZ25vbWUtY2xvY2tzIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBb eF0gbGliZGF6emxlIC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4XSBlcGlwaGFueSAtPiAzLjM3 LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWNvbnRhY3RzIC0+IDMuMzcuMSAqdW5zdGFibGUq DQotIFt4XSBlb2cgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1waG90b3MgLT4g My4zNy4yICp1bnN0YWJsZSoNCi0gW3hdIGV2aW5jZSAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBb eF0gZmlsZS1yb2xsZXIgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jYWxlbmRh ciAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtbXVzaWMgLT4gMy4zNy4zICp1 bnN0YWJsZSoNCi0gW3hdIGdub21lLXBhbmVsIC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4XSBt ZXRhY2l0eSAtPiAzLjM3LjEgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtZmxhc2hiYWNrIC0+IDMu MzcuMiAqdW5zdGFibGUqDQotIFt4XSB0ZXBsIC0+IDQuNDkuMyAqdW5zdGFibGUqDQotIFt4XSBn ZWRpdCAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ2VkaXQtcGx1Z2lucyAtPiAocmV2YnVt cCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtbGF0ZXggLT4gMy4zNy4yICp1bnN0YWJsZSoNCi0g W3hdIGJhb2JhYiAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWJveGVzIC0+IDMu MzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtY2FsY3VsYXRvciAtPiAzLjM3LjkwICoqKmJl dGEqKioNCi0gW3hdIGdub21lLWRpc2stdXRpbGl0eSAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBb eF0gZ25vbWUtc2NyZWVuc2hvdCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXN5 c3RlbS1tb25pdG9yIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ3Rrc291cmNldmlldzQg LT4gNC43LjkwICoqKmJldGEqKioNCi0gW3hdIHN5c3Byb2YgLT4gMy4zNy45MCAqKipiZXRhKioq DQotIFt4XSBtb3pqczc4IC0+IChuZXcpICoqc3RhYmxlKioNCi0gW3hdIGdqcyAtPiAxLjY1Ljkw ICoqKmJldGEqKioNCi0gW3hdIGdub21lLWJ1aWxkZXIgLT4gMy4zNy45MCAqKipiZXRhKioqIChu ZWVkcyB1bnN0YWJsZSBgZ2xpYmApDQotIFt4XSBhZHdhaXRhLWljb24tdGhlbWUgLT4gMy4zNy4y ICp1bnN0YWJsZSoNCi0gW3hdIGdub21lLWJhY2tncm91bmRzIC0+IDMuMzcuMiAqdW5zdGFibGUq DQotIFt4XSBwb2xhcmkgLT4gMy4zNy4zICp1bnN0YWJsZSoNCi0gW3hdIGd2ZnMgLT4gMS40NS45 MCAqKipiZXRhKioqDQotIFt4XSBsaWJzb3VwIC0+IDIuNzEuMCAqdW5zdGFibGUqDQotIFt4XSBy eWdlbCAtPiAwLjM5LjIgKnVuc3RhYmxlKg0KLSBbeF0gc2ltcGxlLXNjYW4gLT4gMy4zNy4zICp1 bnN0YWJsZSoNCi0gW3hdIHllbHAteHNsIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0geWVs cCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHllbHAtdG9vbHMgLT4gMy4zNy45MCAqKipi ZXRhKioqDQotIFt4XSBidWRnaWUtZGVza3RvcCAtPiAocmVidWlsZCwgdW50ZXN0ZWQpICoqc3Rh YmxlKioNCg0KIyMgTWVyZ2VkDQoNCi0gW3hdIGxpYnNpZ2MrKzMgLT4gMy4wLjMgKG5ldykNCi0g W3hdIG1tLWNvbW1vbiAtPiAxLjAuMQ0KLSBbeF0gZ2xpYm1tIC0+IDIuNjQuMg0KLSBbeF0gcGFu Z29tbSAtPiAyLjQyLjENCi0gW3hdIGxpYm5vdGlmeSAtPiAwLjcuOQ0KLSBbeF0gYXRrIC0+IDIu MzYuMA0KLSBbeF0gZ3RrKzMgLT4gMy4yNC4yMg0KLSBbeF0gZ3JhcGhlbmUgLT4gMS4xMC4wDQot IFt4XSBhbXRrIC0+IDUuMS4xDQotIFt4XSBsaWJoYW5keTEgLT4gMC45MC4wIChuZXcpDQotIFt4 XSBsaWJwb3J0YWwgLT4gMC4zIChuZXcpDQotIFt4XSBjb2dsIC0+IDEuMjIuMjgNCi0gW3hdIGdl b2NvZGUtZ2xpYiAtPiAzLjI2LjINCi0gW3hdIGdmYmdyYXBoIC0+IDAuMi40DQotIFt4XSBsaWJn c2YgLT4gMS4xNC40Nw0KLSBbeF0gbGlic2VjcmV0IC0+IDAuMjAuMw0KLSBbeF0gbGliY2hhbXBs YWluIC0+IDAuMTIuMjANCi0gW3hdIHZhbGEgLT4gMC40OC45DQotIFt4XSB2YWxhZG9jIC0+IDAu NDguOQ0KLSBbeF0gZ29tIC0+IDAuNA0KLSBbeF0gZ3NzZHAgLT4gMS4yLjMNCi0gW3hdIGd0ay12 bmMgLT4gMS4wLjAgKGRyb3BzIHVudXNlZCBndGsyIHN1cHBvcnQpDQotIFt4XSBwaG9kYXYgLT4g Mi40DQotIFt4XSBndXBucCAtPiAxLjIuNA0KLSBbeF0gZ25vbWUtdmlkZW8tZWZmZWN0cyAtPiAw LjUuMA0KDQojIyBUT0RPDQoNCi0gWyBdIHJldHJvLWd0ayAodW5yZWxlYXNlZCkNCi0gWyBdIGdu b21lLWdhbWVzIChibG9ja2VkIG9uIGByZXRyby1ndGtgKQ0KDQojIFdvbid0IHVwZGF0ZQ0KDQot IGd0azQgLT4gMy45OS4wIChub3QgYSBkZXBlbmRlbmN5IG9mIGFueXRoaW5nIGFuZCByZXF1aXJl cyBjdXJyZW50IGBwYW5nb2AgYW5kIGl0J3MgaW1wcmFjdGljYWwgdG8gYmFja3BvcnQ7IHdlJ2xs IHByb2JhYmx5IG5lZWQgdG8gZmluYWxseSB1cGRhdGUgYHBhbmdvYCkKCkEgcGF0Y2ggZmlsZSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yNDI2 MC5wYXRjaCBpcyBhdHRhY2hlZA== --===============0545318341629805724== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSAwNzMyMGYzYjAwOWIwMzEyY2VkZjRjZTI2YThlZDdiNzJhNTAxMGRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToxODo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv ODNdIGdsaWI6IHVwZGF0ZSB0byAyLjY1LjEKCmNhdmVhdDogZG9jcyBkb24ndCB3b3JrIHlldAot LS0KIC4uLi9nbGliL3BhdGNoZXMvZGlzYWJsZS1icm9rZW4tdGVzdHMucGF0Y2ggICB8IDU4ICsr KysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ2xpYi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg ICAgICAgICB8IDE0ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGliL3BhdGNoZXMvZGlz YWJsZS1icm9rZW4tdGVzdHMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWIvcGF0Y2hl cy9kaXNhYmxlLWJyb2tlbi10ZXN0cy5wYXRjaCBiL3NyY3BrZ3MvZ2xpYi9wYXRjaGVzL2Rpc2Fi bGUtYnJva2VuLXRlc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi40YTM2OTEyMGI3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ2xpYi9wYXRjaGVz L2Rpc2FibGUtYnJva2VuLXRlc3RzLnBhdGNoCkBAIC0wLDAgKzEsNTggQEAKK0Zyb20gODAyMGMy ZjY2OWQ0NWRkNzFiN2U3OWJiMDg4Zjg3OTcwYjE5MTAwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogU3Vu LCAxNiBBdWcgMjAyMCAwNToxMzoxOCArMDIwMAorU3ViamVjdDogW1BBVENIXSBkaXNhYmxlIGJy b2tlbiB0ZXN0cworCistLS0KKyBnaW8vdGVzdHMvbWVzb24uYnVpbGQgIHwgNiAtLS0tLS0KKyBn bGliL3Rlc3RzL21lc29uLmJ1aWxkIHwgMyAtLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgZ2lvL3Rlc3RzL21lc29uLmJ1aWxkIGdpby90ZXN0cy9tZXNv bi5idWlsZAoraW5kZXggZDhlYmQ1Ni4uZWYwNjE1OCAxMDA2NDQKKy0tLSBnaW8vdGVzdHMvbWVz b24uYnVpbGQKKysrKyBnaW8vdGVzdHMvbWVzb24uYnVpbGQKK0BAIC0zOSw3ICszOSw2IEBAIGdp b190ZXN0cyA9IHsKKyAgICdjcmVkZW50aWFscycgOiB7fSwKKyAgICdkYXRhLWlucHV0LXN0cmVh bScgOiB7fSwKKyAgICdkYXRhLW91dHB1dC1zdHJlYW0nIDoge30sCistICAnZGVmYXVsdHZhbHVl JyA6IHsnZXh0cmFfc291cmNlcycgOiBbZ2lvdHlwZWZ1bmNzX2luY119LAorICAgJ2ZpbGVhdHRy aWJ1dGVtYXRjaGVyJyA6IHt9LAorICAgJ2ZpbHRlci1zdHJlYW1zJyA6IHt9LAorICAgJ2dpb21v ZHVsZScgOiB7fSwKK0BAIC03OSw3ICs3OCw2IEBAIGdpb190ZXN0cyA9IHsKKyAgICd0bHMtaW50 ZXJhY3Rpb24nIDogeydleHRyYV9zb3VyY2VzJyA6IFsnZ3Rlc3R0bHNiYWNrZW5kLmMnXX0sCisg ICAndGxzLWRhdGFiYXNlJyA6IHsnZXh0cmFfc291cmNlcycgOiBbJ2d0ZXN0dGxzYmFja2VuZC5j J119LAorICAgJ3Rscy1iaW5kaW5ncycgOiB7J2V4dHJhX3NvdXJjZXMnIDogWydndGVzdHRsc2Jh Y2tlbmQuYyddfSwKKy0gICdnZGJ1cy1hZGRyZXNzLWdldC1zZXNzaW9uJyA6IHt9LAorICAgJ3dp bjMyLWFwcGluZm8nIDoge30sCisgfQorIAorQEAgLTEzNiwxMCArMTM0LDYgQEAgZW5kaWYKKyBp ZiBob3N0X21hY2hpbmUuc3lzdGVtKCkgIT0gJ3dpbmRvd3MnCisgICBnaW9fdGVzdHMgKz0gewor ICAgICAnZmlsZScgOiB7fSwKKy0gICAgJ2dkYnVzLXBlZXInIDogeworLSAgICAgICdkZXBlbmRl bmNpZXMnIDogW2xpYmdkYnVzX2V4YW1wbGVfb2JqZWN0bWFuYWdlcl9kZXBdLAorLSAgICAgICdp bnN0YWxsX3JwYXRoJyA6IGluc3RhbGxlZF90ZXN0c19leGVjZGlyCistICAgIH0sCisgICAgICdn ZGJ1cy1wZWVyLW9iamVjdC1tYW5hZ2VyJyA6IHt9LAorICAgICAnbGl2ZS1nLWZpbGUnIDoge30s CisgICAgICdzb2NrZXQtYWRkcmVzcycgOiB7fSwKK2RpZmYgLS1naXQgZ2xpYi90ZXN0cy9tZXNv bi5idWlsZCBnbGliL3Rlc3RzL21lc29uLmJ1aWxkCitpbmRleCA2ZWIyM2U4Li4xZjhjZDVjIDEw MDY0NAorLS0tIGdsaWIvdGVzdHMvbWVzb24uYnVpbGQKKysrKyBnbGliL3Rlc3RzL21lc29uLmJ1 aWxkCitAQCAtMjAsOSArMjAsNiBAQCBnbGliX3Rlc3RzID0geworICAgJ2Vudmlyb25tZW50JyA6 IHt9LAorICAgJ2Vycm9yJyA6IHt9LAorICAgJ2ZpbGV1dGlscycgOiB7fSwKKy0gICdnZGF0ZXRp bWUnIDogeworLSAgICAnc3VpdGUnIDogWydzbG93J10sCistICB9LAorICAgJ2d1dWlkJyA6IHt9 LAorICAgJ2d2YXJpYW50JyA6IHsKKyAgICAgJ3N1aXRlJyA6IFsnc2xvdyddLAorLS0gCisyLjI4 LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliL3RlbXBsYXRlIGIvc3JjcGtncy9nbGliL3Rl bXBsYXRlCmluZGV4IDViYmY1OWU2NzYwLi42N2M5YmQ4YThmYSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbGliL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwx MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYicKIHBrZ25hbWU9Z2xpYgotdmVyc2lvbj0y LjY0LjMKK3ZlcnNpb249Mi42NS4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZmFtPWZhbHNlIC1EbWFuPXRydWUgLURzZWxpbnV4PWRpc2FibGVkCi0g LURndGtfZG9jPSQodm9wdF9pZiBndGtfZG9jIHRydWUgZmFsc2UpIgorICQodm9wdF9ib29sIGd0 a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBsaWJ4 c2x0IGRvY2Jvb2steHNsICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9 InpsaWItZGV2ZWwgcGNyZS1kZXZlbCBsaWJmZmktZGV2ZWwgZGJ1cy1kZXZlbCBlbGZ1dGlscy1k ZXZlbCBsaWJtb3VudC1kZXZlbCIKIGNoZWNrZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHNo YXJlZC1taW1lLWluZm8gdHpkYXRhIgpAQCAtMTQsMTMgKzE0LDE3IEBAIGxpY2Vuc2U9IkxHUEwt Mi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMv R0xpYiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWIvcmF3 L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dsaWIvJHt2ZXJzaW9uJS4q fS9nbGliLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmU5Y2JjOTc5MjVkMTRjODA0OTM1 ZjA2N2EzYWQ3N2VmNTVjMGJiZTliZWZlNjg5NjIzMThmNWE3NjdjZWIyMgorY2hlY2tzdW09YmM2 M2JmNmMzMjcxM2UwZWUxZGRkYzI4ZTAzZjIzYjRhMjBjNzhiY2I5YTJjNWIwZjRlZWE0MWU0NmZi OWNlZQogCiBidWlsZF9vcHRpb25zPSJndGtfZG9jIgogZGVzY19vcHRpb25fZ3RrX2RvYz0iQnVp bGQgR1RLIEFQSSBkb2NzIgogCi1pZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQlidWls ZF9vcHRpb25zX2RlZmF1bHQrPSIgZ3RrX2RvYyIKKyNpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KKyMJYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGd0a19kb2MiCisjZmkKKworaWYgWyAi JGJ1aWxkX29wdGlvbl9ndGtfZG9jIiBdOyB0aGVuCisJYnJva2VuPSJuZWVkcyBndGstZG9jIDEu MzIuMSwgbm90IHJlbGVhc2VkIHlldCIKIGZpCiAKIGxpYmdsaWItZGV2ZWxfcGFja2FnZSgpIHsK CkZyb20gMjMxODhmNzI0OGM3NmFjZDM5YTBjNThlMjljMGI3YzUwNTA2N2M2YiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6MjA6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzgzXSBnbGliLW5ldHdvcmtpbmc6IHVwZGF0ZSB0byAyLjY1LjkwCgotLS0KIHNyY3BrZ3MvZ2xp Yi1uZXR3b3JraW5nL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliLW5ldHdv cmtpbmcvdGVtcGxhdGUgYi9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQppbmRleCA1 ZWFmZmE4MmU2NC4uMWQ2MWE2MTY5YmEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xpYi1uZXR3b3Jr aW5nL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYi1uZXR3b3JraW5nJwogcGtnbmFt ZT1nbGliLW5ldHdvcmtpbmcKLXZlcnNpb249Mi42NC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIu NjUuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURp bnN0YWxsZWRfdGVzdHM9ZmFsc2UgLURnbnV0bHM9ZW5hYmxlZCAtRGxpYnByb3h5PWVuYWJsZWQK ICAtRGdub21lX3Byb3h5PWVuYWJsZWQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xpYi1uZXR3 b3JraW5nLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE0YzM0NmRlZjdkODE3 NDY3ZDc5YTk1YzIzYjNjY2YyMmU0ZGYxNTQ4ODcwNzI2YjYzMzk2NDAwODUyZGFmNzIKK2NoZWNr c3VtPTBiNGRmNWY2NDNiN2UwODIyMzY5MGExMjQ5Y2UzMDIzMjliNjE1NmYyNjQwZDdiMDIxN2Yx OTJiMzMwYWY1NjYKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20g NGFhMTAwYTFmN2EwZWQxNzY2MTBhOWJhOGE3ZmQzNThjNDZkOGZiNCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzgzXSBh dC1zcGkyLWNvcmU6IHVwZGF0ZSB0byAyLjM3LjkwCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1jb3Jl L3RlbXBsYXRlIHwgMTQgKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWNvcmUv dGVtcGxhdGUgYi9zcmNwa2dzL2F0LXNwaTItY29yZS90ZW1wbGF0ZQppbmRleCBiMzgzZmU5OWJl ZC4uNDljYjNmYTFiZjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdhdC1zcGkyLWNvcmUnCiBwa2duYW1lPWF0LXNwaTItY29yZQot dmVyc2lvbj0yLjM0LjAKK3ZlcnNpb249Mi4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGRi dXMgZ2xpYi1kZXZlbCIKLW1ha2VkZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYlhleHQtZGV2ZWwg bGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbAotIGxpYlhldmllLWRldmVsIGRidXMtZGV2ZWwiCito b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZGJ1cyBnbGliLWRldmVsIGdldHRleHQiCittYWtl ZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJYZXh0LWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3Qt ZGV2ZWwgZGJ1cy1kZXZlbCIKIHNob3J0X2Rlc2M9IkFzc2lzdGl2ZSBUZWNobm9sb2d5IFNlcnZp Y2UgUHJvdmlkZXIgSW50ZXJmYWNlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2F0LXNwaTItY29yZSIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWQ2MjljZGJkNjc0ZTUzOWY4OTEyMDI4NTEyYWY1ODM5OTA5Mzhj N2I0OWUyNTE4NGMxMjZiMDAxMjFlZjExYzYKK2NoZWNrc3VtPWNhYTcyMjk5ZDVlN2YyYWE0Yjgx OThlMzc0MDU3NTFiZGE1YTIyYTViYTk3N2I5YzdiZjM0MTk5NTkzYmI2YmIKIAogIyBQYWNrYWdl IGJ1aWxkIG9wdGlvbnMKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgogCisjIG5vbi10cml2aWFsIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkgeworCToKK30K KwogcG9zdF9pbnN0YWxsKCkgewogCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvc3lzdGVtZAog fQoKRnJvbSA1ZjUzNGM5NWM2Njk5ZDI3NWQyMjY1ZDVmZjk5MDcyZmUzYWEzMjMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDQvODNdIGF0LXNwaTItYXRrOiB1cGRhdGUgdG8gMi4zNy45MAoKLS0tCiBzcmNwa2dzL2F0LXNw aTItYXRrL3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90 ZW1wbGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMu LjM5OTFmMTkyZjBhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdhdC1zcGkyLWF0aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249 Mi4zNC4xCit2ZXJzaW9uPTIuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBo b3N0bWFrZWRlcGVuZHM9ImxpYnRvb2wgcGtnLWNvbmZpZyBpbnRsdG9vbCBnbGliLWRldmVsIgpA QCAtMTAsNyArMTAsMTIgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly93 d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Nzc2ZGY5MzA3 NDhmZGU3MWMxMjhiZTZjMzY2YTk4N2I5OGI2ZWU2NmQ1MDhlZDljOGRiMjM1NWJmNGI5Y2MxNgor Y2hlY2tzdW09OTk4NDdhM2I2MWJmMmFjOThhNDdlNDdlZGI0ZGU0ZWE1YzRmMzI2YzgyMzhhZDEw NjYxYmQ2ZDljNDZiNDhmMAorCisjIG5vbi10cml2aWFsIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkg eworCToKK30KIAogYXQtc3BpMi1hdGstZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke21h a2VkZXBlbmRzfSAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCgpGcm9tIDIy MTFiYzA3ZDNhY2M0NWFiMmQ4ZGM1YWY2N2ZlNmQ4MDFkYzU1ZWUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDIxOjI5OjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNS84M10gd2Vi a2l0Mmd0azogdXBkYXRlIHRvIDIuMjkuOTEKCi0tLQogLi4uL3BhdGNoZXMvZG9udC1kaXNhYmxl LWdpci1kdXJpbmctY3Jvc3MucGF0Y2ggICAgfCAxMCAtLS0tLS0tLS0tCiBzcmNwa2dzL3dlYmtp dDJndGsvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrLS0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy93ZWJraXQyZ3RrL3BhdGNoZXMvZG9udC1kaXNhYmxlLWdp ci1kdXJpbmctY3Jvc3MucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3dlYmtpdDJndGsvcGF0 Y2hlcy9kb250LWRpc2FibGUtZ2lyLWR1cmluZy1jcm9zcy5wYXRjaCBiL3NyY3BrZ3Mvd2Via2l0 Mmd0ay9wYXRjaGVzL2RvbnQtZGlzYWJsZS1naXItZHVyaW5nLWNyb3NzLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTliN2UzMjM4YS4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy93ZWJraXQyZ3RrL3BhdGNoZXMvZG9udC1kaXNhYmxlLWdpci1kdXJpbmctY3Jvc3MucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0gU291cmNlL2NtYWtlL09wdGlv bnNHVEsuY21ha2Uub3JpZwkyMDE5LTAyLTEwIDE4OjA0OjA3Ljg5ODQxNzc3OCArMDEwMAotKysr IFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCTIwMTktMDItMTAgMTg6MDQ6MzYuNjczNDE1 NTY5ICswMTAwCi1AQCAtMzU3LDcgKzM1Nyw2IEBACi0gIyBPdmVycmlkZSB0aGUgY2FjaGVkIHZh cmlhYmxlcywgZ3RrLWRvYyBhbmQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGRvIG5vdCByZWFsbHkg d29yayB3aGVuIGNyb3NzLWJ1aWxkaW5nLgotIGlmIChDTUFLRV9DUk9TU0NPTVBJTElORykKLSAg ICAgc2V0KEVOQUJMRV9HVEtET0MgT0ZGKQotLSAgICBzZXQoRU5BQkxFX0lOVFJPU1BFQ1RJT04g T0ZGKQotIGVuZGlmICgpCi0gCi0gIyBPdmVycmlkZSB0aGUgY2FjaGVkIHZhcmlhYmxlLCBndGst ZG9jIGRvZXMgbm90IHJlYWxseSB3b3JrIHdoZW4gYnVpbGRpbmcgb24gTWFjLgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy93ZWJraXQyZ3RrL3RlbXBsYXRlIGIvc3JjcGtncy93ZWJraXQyZ3RrL3RlbXBs YXRlCmluZGV4IGY0ZmZlZmEyMzdiLi40ZGJiYjczYjkwMSAxMDA2NDQKLS0tIGEvc3JjcGtncy93 ZWJraXQyZ3RrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvd2Via2l0Mmd0ay90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3dlYmtpdDJndGsnCiBwa2duYW1lPXdl YmtpdDJndGsKLXZlcnNpb249Mi4yOC4zCit2ZXJzaW9uPTIuMjkuOTEKIHJldmlzaW9uPTEKIHdy a3NyYz0id2Via2l0Z3RrLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTQsNiAr MTQsNyBAQCBjb25maWd1cmVfYXJncz0iLURQT1JUPUdUSyAtRFVTRV9MRF9HT0xEPU9GRgogIC1E Q01BS0VfQ19GTEFHU19SRUxXSVRIREVCSU5GTz0tRE5ERUJVRwogIC1EQ01BS0VfTElOS0VSPSR7 WEJQU19DUk9TU19UUklQTEVUfS1nY2MKICAtRFJVQllfVkVSU0lPTj0yLjcKKyAtRFVTRV9TWVNU RU1EPU9GRgogIC1ERU5BQkxFX0dUS0RPQz1PRkYgLURVU0VfR1NUUkVBTUVSX0dMPU9GRiAtRFVT RV9XUEVfUkVOREVSRVI9T0ZGCiAgLURFTkFCTEVfTUlOSUJST1dTRVI9JCh2b3B0X2lmIG1pbmli cm93c2VyIE9OIE9GRikKICAtREVOQUJMRV9KSVQ9JCh2b3B0X2lmIGppdCBPTiBPRkYpCkBAIC0y Myw4ICsyNCw4IEBAIGNvbmZpZ3VyZV9hcmdzPSItRFBPUlQ9R1RLIC1EVVNFX0xEX0dPTEQ9T0ZG CiAgLURFTkFCTEVfWDExX1RBUkdFVD0kKHZvcHRfaWYgeDExIE9OIE9GRikKICAtREVOQUJMRV9T QU1QTElOR19QUk9GSUxFUj0kKHZvcHRfaWYgc2FtcGxpbmdfcHJvZmlsZXIgT04gT0ZGKQogIC1E RU5BQkxFX0JVQkJMRVdSQVBfU0FOREJPWD0kKHZvcHRfaWYgYnViYmxld3JhcCBPTiBPRkYpIgot aG9zdG1ha2VkZXBlbmRzPSJwZXJsIHB5dGhvbiBwa2ctY29uZmlnIGdwZXJmIGZsZXggcnVieSBn ZXR0ZXh0IGdsaWItZGV2ZWwgZ2VvY2x1ZTIKLSAkKHZvcHRfaWYgd2F5bGFuZCB3YXlsYW5kLWRl dmVsKSIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24gcGtnLWNvbmZpZyBncGVyZiBmbGV4 IHJ1YnkgZ2V0dGV4dCBnbGliLWRldmVsCisgZ2VvY2x1ZTIgbGliaGFyZmJ1enogJCh2b3B0X2lm IHdheWxhbmQgd2F5bGFuZC1kZXZlbCkiCiBtYWtlZGVwZW5kcz0iYXQtc3BpMi1jb3JlLWRldmVs IGxpYmpwZWctdHVyYm8tZGV2ZWwgbGlicG5nLWRldmVsCiAgaGFyZmJ1enotZGV2ZWwgZ3N0LXBs dWdpbnMtYmFzZTEtZGV2ZWwgZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbCBzcWxpdGUtZGV2ZWwKICBs aWJzb3VwLWRldmVsIGxpYnhzbHQtZGV2ZWwgZ251dGxzLWRldmVsIGljdS1kZXZlbCBlbmNoYW50 LWRldmVsCkBAIC0zOCw3ICszOSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciwgQlNELTItQ2xhdXNl IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2Via2l0Z3RrLm9yZy8iCiBkaXN0ZmlsZXM9IiR7aG9tZXBh Z2V9L3JlbGVhc2VzL3dlYmtpdGd0ay0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYwODk4 YWMwNzJjMjIwZTEzYTRhZWU4MTk0MDg0MjFhNmNiNTZhNmViODkxNzBjZWFmZTUyNDY4YjA5MDM1 MjIKK2NoZWNrc3VtPWNiYmFkYjVlNTAyMWYwMDNkYzIxZjhhZTkzMDhjZjhhY2FmZjkwZTIxZGRi MDY5YWI1NTllYTUxMDgxOWNkMDEKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIHdheWxhbmQgeDExIGJ1 YmJsZXdyYXAgaml0IHNhbXBsaW5nX3Byb2ZpbGVyIG1pbmlicm93c2VyIgogYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJnaXIgd2F5bGFuZCB4MTEgYnViYmxld3JhcCBtaW5pYnJvd3NlciIKQEAgLTQ4 LDggKzQ5LDkgQEAgZGVzY19vcHRpb25faml0PSJKYXZhU2NyaXB0IEpJVCAoT25seSBzb21lIGFy Y2hpdGVjdHVyZXMpIgogZGVzY19vcHRpb25fc2FtcGxpbmdfcHJvZmlsZXI9IlNhbXBsaW5nIHBy b2ZpbGVyIHN1cHBvcnQgKEpJVCArIGdsaWJjIG9ubHkpIgogZGVzY19vcHRpb25fbWluaWJyb3dz ZXI9IkJ1aWxkIHRoZSBtaW5pYnJvd3NlciIKIAotbWFrZWRlcGVuZHMrPSIgbGliaGFyZmJ1enoi Ci1ob3N0bWFrZWRlcGVuZHMrPSIgbGliaGFyZmJ1enoiCitkb19jaGVjaygpIHsKKwk6Cit9CiAK ICMgZGV0ZWN0aW9uICsgcnVudGltZQogaWYgWyAiJGJ1aWxkX29wdGlvbl9idWJibGV3cmFwIiBd OyB0aGVuCgpGcm9tIGQwMWZkODA2YjRjOTA2Zjg4YjhmYWE5NDg1NDQ4NmM2YzYxNTY0YWIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNi84M10gZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hczogdXBkYXRlIHRvIDMuMzcuMgoK LS0tCiAuLi4vcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoICAgICAgICAgICAgICAgICAgICAg fCAxMyAtLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVt cGxhdGUgICAgICAgICAgfCAgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdp ci5wYXRjaCBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRjaGVzL2ZpeC1j cm9zcy1naXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyOTlkNWM5Y2Qw Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0 Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAot ZGlmZiAtLWdpdCBhL2hlYWRlcnMvbWVzb24uYnVpbGQgYi9oZWFkZXJzL21lc29uLmJ1aWxkCi1p bmRleCAzY2U4YjYxLi4xMTMyNjk1IDEwMDY0NAotLS0tIGhlYWRlcnMvbWVzb24uYnVpbGQKLSsr KyBoZWFkZXJzL21lc29uLmJ1aWxkCi1AQCAtMTksNyArMTksNyBAQCBlbnVtc194bWwgPSBjdXN0 b21fdGFyZ2V0KAotICAgaW5zdGFsbDogdHJ1ZSwKLSAgIGluc3RhbGxfZGlyOiBzY2hlbWFzZGly KQotIAotLWlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpIGFuZCBnZXRfb3B0aW9uKCdpbnRy b3NwZWN0aW9uJykKLStpZiBnZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLSAgIG5vaW5zdF9s aWIgPSBzaGFyZWRfbGlicmFyeSgnbm9pbnN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbGw6IGZh bHNlKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBs YXRlIGIvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlCmluZGV4IDQ5 YzY0Y2NhNzM4Li41NWYwOTc3ZDFjMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMnCiBwa2duYW1lPWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMK LXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQog YnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1E aW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgpAQCAtMTIsNyArMTIsNyBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT03NjRhYjY4MzI4NjUzNjMyNDUzM2E1OGQ0ZTk1ZmM1N2Y4MWFkYWJhN2Q4ODBk ZDBlYmJiY2VkNjNlOTYwZWE2CitjaGVja3N1bT1lMzM4ZThjYmNlMTY4NGI3ZGYyZTUwYjJkNzBh MGIwZmU0NzE3NmZiMGIzNzNlNmJjNjdiMjY5NjBiNDBkOGVmCiAKICMgUGFja2FnZSBidWlsZCBv cHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCgpGcm9tIDUwNDNmM2QzNGNkZmU0MmZjZmVkODk0 MWYyNWJmYjUzM2IwYTNjMzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy84M10gZ25vbWUtZGVza3RvcDogdXBkYXRlIHRv IDMuMzcuOTAuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDE4 ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlICAgICAg ICAgICAgfCAxMyArKysrKysrKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1kZXNr dG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29t bW9uL3NobGlicwppbmRleCA3MjhkNWM0ZjBiZS4uZjU3ZjAzZDcxNjIgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMTE3OCw3ICsxMTc4LDcgQEAgbGli Z3N0YmFzZWNhbWVyYWJpbnNyYy0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYWQxLTEuMC4wXzEKIGxp YmdzdGNvZGVjcGFyc2Vycy0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYWQxLTEuMC4wXzEKIGxpYmdz dHBsYXllci0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYWQxLTEuMC4wXzEKIGxpYmdzdGdsLTEuMC5z by4wIGdzdC1wbHVnaW5zLWJhc2UxLTEuMTQuMF8xCi1saWJnbm9tZS1kZXNrdG9wLTMuc28uMTgg Z25vbWUtZGVza3RvcC0zLjM0LjBfMQorbGliZ25vbWUtZGVza3RvcC0zLnNvLjE5IGdub21lLWRl c2t0b3AtMy4zNy45MC4xXzEKIGxpYnNlY3JldC0xLnNvLjAgbGlic2VjcmV0LTAuMTBfMQogbGli Z3dlYXRoZXItMy5zby4xNiBsaWJnd2VhdGhlci0zLjM0LjBfMQogbGliZ25vbWVrYmQuc28uOCBs aWJnbm9tZWtiZC0zLjYuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0 Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmVkMDBhMjVkZAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBh dGNoCkBAIC0wLDAgKzEsMTggQEAKK2NvbW1pdCA0ZjU1ZmYwNzg0MTE5OTNiNzgyZTc0ZWExOGM1 YzZhYjM1YWRmNjg1CitBdXRob3I6IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgorRGF0ZTogICBXZWQgQXVnIDEyIDA1OjI2OjAwIDIwMjAgKzAyMDAKKworICAgIGJsYQorCitk aWZmIC0tZ2l0IGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaCBsaWJnbm9tZS1kZXNrdG9wL2du b21lLXJyLmgKK2luZGV4IDExMWJhYjMuLjc2OTg2NzIgMTAwNjQ0CistLS0gbGliZ25vbWUtZGVz a3RvcC9nbm9tZS1yci5oCisrKysgbGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5oCitAQCAtMjgs NiArMjgsNyBAQAorICNlcnJvciAgICBHbm9tZVJSIGlzIHVuc3RhYmxlIEFQSS4gWW91IG11c3Qg ZGVmaW5lIEdOT01FX0RFU0tUT1BfVVNFX1VOU1RBQkxFX0FQSSBiZWZvcmUgaW5jbHVkaW5nIGdu b21lcnIuaAorICNlbmRpZgorIAorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAjaW5jbHVkZSA8Z2xp Yi5oPgorICNpbmNsdWRlIDxnZGsvZ2RrLmg+CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWRlc2t0b3AvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWRlc2t0b3AvdGVtcGxhdGUKaW5kZXgg OTkyY2IxZmYxNmEuLjBhZWE4YzE5OGZmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWRlc2t0 b3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlCkBAIC0xLDEw ICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kZXNrdG9wJwogcGtnbmFtZT1n bm9tZS1kZXNrdG9wCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwLjEKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdz PSItRGdub21lLWRpc3RyaWJ1dG9yPVZvaWRMaW51eCAtRHVkZXY9ZW5hYmxlZAorY29uZmlndXJl X2FyZ3M9Ii1EZ25vbWVfZGlzdHJpYnV0b3I9Vm9pZExpbnV4IC1EdWRldj1lbmFibGVkIC1Ec3lz dGVtZD1kaXNhYmxlZAogIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2Up IgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRldmVs IgogbWFrZWRlcGVuZHM9ImV1ZGV2LWxpYnVkZXYtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy1kZXZlbCBndGsrMy1kZXZlbApAQCAtMTUsMTIgKzE1LDE3IEBAIHNob3J0X2Rlc2M9IkdO T01FIGRlc2t0b3AgbWFuYWdlbWVudCB1dGlsaXRpZXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L2dub21lLWRlc2t0b3AiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jMWRiZWI1 NjY2ZGFkMjcxNjZjNzY5ZTQ4ZTJhYjQxZGQ1ZWQ3NDcxOGVhMzVlYjU3Yzg0ODg3OTA2NjJkYzVh CitkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLiouKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTk5NjEyNWQ3NTA4MmNmMGNlZTBh NTFiMGFhNDcxZmRjNjIzODUyMTVjODg4NzAzMjdjNGUwZWIxMDdhYWIwZjcKIAogYnVpbGRfb3B0 aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKKyMgbmVlZHMgWAorZG9f Y2hlY2soKSB7CisJOgorfQorCiBnbm9tZS1kZXNrdG9wLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVw ZW5kcz0iZ3RrKzMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbD49My4xMgog CSBnZGstcGl4YnVmLWRldmVsIGlzby1jb2RlcyBsaWJYMTEtZGV2ZWwgbGliZ2xpYi1kZXZlbCBs aWJzZWNjb21wLWRldmVsCgpGcm9tIGEzNTZkZmI1NzAzNDJiMWI4Yzg4MDQxZjdmOTBhMWQ5MGJi ZjZhZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwOC84M10gbGliZ3dlYXRoZXI6IHVwZGF0ZSB0byAzLjM2LjEKCi0tLQog c3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZSB8IDE1ICsrKysrKy0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlIGIvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0 ZQppbmRleCAzNGM2NGQ2ZTNhMS4uZmNkYjU4Nzk1MDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGli Z3dlYXRoZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQpAQCAt MSwxMyArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZ3dlYXRoZXInCiBwa2duYW1l PWxpYmd3ZWF0aGVyCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM2LjEKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIt RGVuYWJsZV92YWxhPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3NwZWN0aW9u PSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBn aXIgZW5hYmxlX3ZhbGEpICQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKQogIC1Eem9uZWlu Zm9fZGlyPS91c3Ivc2hhcmUvem9uZWluZm8iCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwg aW50bHRvb2wgcGtnLWNvbmZpZyAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKK2hvc3RtYWtlZGVwZW5k cz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFsYSkiCiBt YWtlZGVwZW5kcz0iZ2VvY29kZS1nbGliLWRldmVsIGd0ayszLWRldmVsIGxpYnNvdXAtZ25vbWUt ZGV2ZWwiCiBjaGVja2RlcGVuZHM9InR6ZGF0YSIKIHNob3J0X2Rlc2M9IkdOT01FIFdlYXRoZXIg aW5mb3JtYXRpb24gYWNjZXNzIGxpYnJhcnkiCkBAIC0xNSwxMCArMTQsMTAgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4x LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvTGli R1dlYXRoZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMmZmZWVjMDE3ODhk MDNkMWJiZjM1MTEzZmMyZjA1NGM2YzM2MDA3MjEwODhmODI3YmNjMzFlNWM2MDNhMzJkCitjaGVj a3N1bT1kZTI3MDlmMGVlMjMzYjIwMTE2ZDVmYTk4NjFkNDA2MDcxNzk4YzRhYTM3ODMwY2EyNWY1 ZWYyYzAwODNlNDUwCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVm YXVsdD0iZ2lyIgogCiBwb3N0X3BhdGNoKCkgewogCSMgVGhpcyB0ZXN0IHJlcXVpcmVzIExDX0lE RU5USUZJQ0FUSU9OLCB3aGljaCBpcyBhIEdMSUJDJ3MgZXh0ZW5zaW9uCkBAIC0zNSw4ICszNCw2 IEBAIGxpYmd3ZWF0aGVyLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGliLyouc28i CiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUv Z2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQoKRnJvbSAxMjQzZjE0OTQ5ODk3ZDYyN2Q0MWU1 MzJlNDBhOTVjMzQ0MWY4ZTg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0 ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvODNdIGdub21lLXNldHRpbmdzLWRhZW1vbjog dXBkYXRlIHRvIDMuMzcuMAoKLS0tCiAuLi4vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNo ICAgICAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNldHRp bmdzLWRhZW1vbi90ZW1wbGF0ZSAgICAgICAgfCAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQy IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQt YmFja2xpZ2h0LnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9s b2dpbmQtYmFja2xpZ2h0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5lNWNhNmJkNDNkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGlu Z3MtZGFlbW9uL3BhdGNoZXMvbG9naW5kLWJhY2tsaWdodC5wYXRjaApAQCAtMCwwICsxLDEzNiBA QAorRnJvbSAzODQ1YjNhN2I1OGYyNmVjNjhkYmMxYzQ1N2VhZDA2ZjQ4ODExODBiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CitEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE3OjQ4OjIxICswMjAwCitTdWJqZWN0OiBbUEFU Q0hdIFRoZSBuZXcgbG9naW5kIGJyaWdodG5lc3MgY29kZSBkb2Vzbid0IHdvcmsgd2l0aCBlbG9n aW5kLgorCitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFl bW9uLy0vY29tbWl0L2NkMDUxZTZjN2NjZmI3ZTdiMGVjNDQwNDA5YzU1OWIyZTUxMjg0ZTgKKy0t LQorIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jIHwgNzcgKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3MCBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYyBw bHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworaW5kZXggY2E1ZjI3Mi4uNGFjYzJlNSAxMDA2 NDQKKy0tLSBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworKysrIHBsdWdpbnMvcG93ZXIv Z3NkLWJhY2tsaWdodC5jCitAQCAtNDAsOCArNDAsNiBAQCBzdHJ1Y3QgX0dzZEJhY2tsaWdodAor ICAgICAgICAgZ2ludCBicmlnaHRuZXNzX3N0ZXA7CisgCisgI2lmZGVmIF9fbGludXhfXworLSAg ICAgICAgR0RCdXNQcm94eSAqbG9naW5kX3Byb3h5OworLQorICAgICAgICAgR1VkZXZDbGllbnQg KnVkZXY7CisgICAgICAgICBHVWRldkRldmljZSAqdWRldl9kZXZpY2U7CisgCitAQCAtNjEsMTAg KzU5LDYgQEAgZW51bSB7CisgICAgICAgICBQUk9QX0xBU1QsCisgfTsKKyAKKy0jZGVmaW5lIFNZ U1RFTURfREJVU19OQU1FICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmxv Z2luMSIKKy0jZGVmaW5lIFNZU1RFTURfREJVU19QQVRIICAgICAgICAgICAgICAgICAgICAgICAi L29yZy9mcmVlZGVza3RvcC9sb2dpbjEvc2Vzc2lvbi9hdXRvIgorLSNkZWZpbmUgU1lTVEVNRF9E QlVTX0lOVEVSRkFDRSAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xLlNl c3Npb24iCistCisgc3RhdGljIEdQYXJhbVNwZWMgKnByb3BzW1BST1BfTEFTVF07CisgCisgc3Rh dGljIHZvaWQgICAgIGdzZF9iYWNrbGlnaHRfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxl SWZhY2UgICppZmFjZSk7CitAQCAtNDgyLDMwICs0NzYsMTMgQEAgZ3NkX2JhY2tsaWdodF9zZXRf YnJpZ2h0bmVzc192YWxfYXN5bmMgKEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0LAorICAgICAgICAg aWYgKGJhY2tsaWdodC0+dWRldl9kZXZpY2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBC YWNrbGlnaHRIZWxwZXJEYXRhICp0YXNrX2RhdGE7CisgCistICAgICAgICAgICAgICAgIGlmIChi YWNrbGlnaHQtPmxvZ2luZF9wcm94eSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1 c19wcm94eV9jYWxsIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdSkiLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiYmFja2xpZ2h0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ191ZGV2X2RldmljZV9nZXRfbmFtZSAoYmFja2xpZ2h0LT51ZGV2 X2RldmljZSksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgTlVMTCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudCA9IEFCU19UT19QRVJDRU5UQUdFIChi YWNrbGlnaHQtPmJyaWdodG5lc3NfbWluLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX21heCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdo dC0+YnJpZ2h0bmVzc190YXJnZXQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19y ZXR1cm5faW50ICh0YXNrLCBwZXJjZW50KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBl ckRhdGEsIDEpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tfZGF0YS0+dmFsdWUgPSBi YWNrbGlnaHQtPmJyaWdodG5lc3NfdGFyZ2V0OworLSAgICAgICAgICAgICAgICAgICAgICAgIGdf dGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFf ZGVzdHJveSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAg bm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJlIHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKy0g ICAgICAgICAgICAgICAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+dGFz a3MsIHRhc2spOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vz c190YXNrcXVldWUgKGJhY2tsaWdodCk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg ICAgICAgdGFza19kYXRhID0gZ19uZXcwIChCYWNrbGlnaHRIZWxwZXJEYXRhLCAxKTsKKysgICAg ICAgICAgICAgICAgdGFza19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJn ZXQ7CisrICAgICAgICAgICAgICAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2Rh dGEsIGJhY2tsaWdodF90YXNrX2RhdGFfZGVzdHJveSk7CisrCisrICAgICAgICAgICAgICAgIC8q IFRhc2sgaXMgc2V0IHVwIG5vdy4gUXVldWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2luZyBz b21ldGhpbmcuICovCisrICAgICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xp Z2h0LT50YXNrcywgdGFzayk7CisrICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vz c190YXNrcXVldWUgKGJhY2tsaWdodCk7CisgCisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg ICAgICAgIH0KK0BAIC04MjMsNyArODAwLDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pbml0 IChHSW5pdGFibGUgICAgICAgKmluaXRhYmxlLAorIHsKKyAgICAgICAgIEdzZEJhY2tsaWdodCAq YmFja2xpZ2h0ID0gR1NEX0JBQ0tMSUdIVCAoaW5pdGFibGUpOworICAgICAgICAgR25vbWVSUk91 dHB1dCogb3V0cHV0ID0gTlVMTDsKKy0gICAgICAgIEdFcnJvciAqbG9naW5kX2Vycm9yID0gTlVM TDsKKyAKKyAgICAgICAgIGlmIChjYW5jZWxsYWJsZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAg ICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX05P VF9TVVBQT1JURUQsCitAQCAtODMyLDQ0ICs4MDgsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxl X2luaXQgKEdJbml0YWJsZSAgICAgICAqaW5pdGFibGUsCisgICAgICAgICB9CisgCisgI2lmZGVm IF9fbGludXhfXworLSAgICAgICAgYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkgPQorLSAgICAgICAg ICAgICAgICBnX2RidXNfcHJveHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TWVNURU0s CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19O QU1FLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lT VEVNRF9EQlVTX1BBVEgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTWVNURU1EX0RCVVNfSU5URVJGQUNFLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistICAgICAgICBp ZiAoYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkpIHsKKy0gICAgICAgICAgICAgICAgLyogQ2hlY2sg dGhhdCB0aGUgU2V0QnJpZ2h0bmVzcyBtZXRob2QgZG9lcyBleGlzdCAqLworLSAgICAgICAgICAg ICAgICBnX2RidXNfcHJveHlfY2FsbF9zeW5jIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLCBO VUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FM TF9GTEFHU19OT05FLCAtMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistCistICAgICAgICAgICAgICAgIGlmIChnX2Vycm9y X21hdGNoZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfSU5WQUxJRF9BUkdTKSkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIC8qIFdlIGFyZSBjYWxsaW5nIHRoZSBtZXRob2Qgd2l0aCBubyBh cmd1bWVudHMsIHNvCistICAgICAgICAgICAgICAgICAgICAgICAgICogdGhpcyBpcyBleHBlY3Rl ZC4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAg ICBnX2NsZWFyX2Vycm9yICgmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgfSBlbHNl IGlmIChnX2Vycm9yX21hdGNoZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX1VOS05P V05fTUVUSE9EKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbWQgdmVyc2lv biBpcyB0b28gb2xkLCBzbyBpZ25vcmUuCistICAgICAgICAgICAgICAgICAgICAgICAgICovCist ICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2lu ZF9wcm94eSk7CistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgLyogRmFpbCBvbiBhbnl0aGluZyBlbHNlICovCistICAgICAgICAgICAgICAgICAgICAg ICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmIChsb2dpbmRfZXJyb3IpIHsKKy0g ICAgICAgICAgICAgICAgZ193YXJuaW5nICgiTm8gbG9naW5kIGZvdW5kOiAlcyIsIGxvZ2luZF9l cnJvci0+bWVzc2FnZSk7CistICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAobG9naW5kX2Vy cm9yKTsKKy0gICAgICAgIH0KKy0KKyAgICAgICAgIC8qIFRyeSBmaW5kaW5nIGEgdWRldiBkZXZp Y2UuICovCisgICAgICAgICBpZiAoZ3NkX2JhY2tsaWdodF91ZGV2X2luaXQgKGJhY2tsaWdodCkp CisgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CitAQCAtOTExLDcgKzg0OSw2IEBAIGdzZF9i YWNrbGlnaHRfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyAjaWZkZWYgX19saW51eF9fCisg ICAgICAgICBnX2Fzc2VydCAoYmFja2xpZ2h0LT5hY3RpdmVfdGFzayA9PSBOVUxMKTsKKyAgICAg ICAgIGdfYXNzZXJ0IChnX3F1ZXVlX2lzX2VtcHR5ICgmYmFja2xpZ2h0LT50YXNrcykpOworLSAg ICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CisgICAgICAg ICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+dWRldik7CisgICAgICAgICBnX2NsZWFyX29i amVjdCAoJmJhY2tsaWdodC0+dWRldl9kZXZpY2UpOworICAgICAgICAgaWYgKGJhY2tsaWdodC0+ aWRsZV91cGRhdGUpIHsKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt c2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24v dGVtcGxhdGUKaW5kZXggYTcwZTI4YmU1ZmEuLmYyNTQ1OWVjZTgyIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNl dHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtc2V0dGluZ3MtZGFlbW9uJwogcGtnbmFtZT1nbm9tZS1zZXR0aW5ncy1kYWVt b24KLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMAorcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzKz0iLURzeXN0ZW1kPWZhbHNlIgot aG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBkb2Nib29rLXhzbCBnbGliLWRldmVsIGxpYmdsaWItZGV2 ZWwgbGlieHNsdCBwZXJsIHBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jv b2steHNsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhzbHQKKyBwZXJsIHBr Zy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2 ZWwgY29sb3JkLWRldmVsIGN1cHMtZGV2ZWwgZ2NyLWRldmVsCiAgZ2VvY2x1ZTItZGV2ZWwgZ25v bWUtZGVza3RvcC1kZXZlbCBpYnVzLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdub21la2Jk LWRldmVsCiAgbGliZ3dlYXRoZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnJzdmctZGV2ZWwg bGlid2Fjb20tZGV2ZWwgbnNzLWRldmVsCkBAIC0xMiwxMyArMTMsMTMgQEAgbWFrZWRlcGVuZHM9 Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFsc2EtbGliLWRldmVsIGNvbG9yZC1kZXZlbCBjdXBzLWRl dmVsIGdjci1kZXYKICB4Zjg2LWlucHV0LXdhY29tLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1p Y29uLXRoZW1lIHB1bHNlYXVkaW8iCiBjaGVja2RlcGVuZHM9ImVsb2dpbmQgbGlibm90aWZ5IHB5 dGhvbjMtZGJ1c21vY2sgcHl0aG9uMy1nb2JqZWN0Ci0gcHl0aG9uMy1weWNvZGVzdHlsZSIKKyBw eXRob24zLXB5Y29kZXN0eWxlIHdoaWNoIGh3aWRzIGV1ZGV2Igogc2hvcnRfZGVzYz0iR05PTUUg c2V0dGluZ3MgZGFlbW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9n aXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNldHRpbmdzLWRhZW1vbiIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTk5ODFhMjBiYWJmOGRhNzc0NGI3ZmJlMTc1YjllMzYwNzhi ZjA4ZjNiZjY1ZmU1YWVkZWI4MmNmZTI3YWMxMWYKK2NoZWNrc3VtPWRmNzA5MzEzYjgwOTY4MDE2 NTcwZjM0MWViYzMxZWVlODMyOWYzMTJjMDY4ZjY4MWMwYTE5NGFkOTRiMDBkZjAKIAogaWYgWyAi JENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHBvbGtpdCIKCkZyb20g ZjIyZDcxNTlhNjI4ZGFjM2JlMTg5YTlhMTM5YzlhYjFlYjIxYjlmYSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzgzXSBt dXR0ZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogLi4uL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWlu Y2x1ZGVzLnBhdGNoICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdp cmUtMC4zLnBhdGNoICAgICB8IDUyMSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXV0dGVy L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8ICAzMiArLQogNCBmaWxlcyBjaGFuZ2Vk LCAyOCBpbnNlcnRpb25zKCspLCA1NTQgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAoK ZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGY1N2YwM2Q3 MTYyLi40Y2RjNjA2ZGYxNSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24v c2hsaWJzCkBAIC0zMDA1LDE1ICszMDA1LDE1IEBAIGxpYmRlY29yYXRpb24uc28uMCBjb21waXot Y29yZS0wLjguMTRfMQogbGliY29tcGl6Y29uZmlnLnNvLjAgbGliY29tcGl6Y29uZmlnLTAuOC4x NF8xCiBsaWJlbWVyYWxkZW5naW5lLnNvLjAgZW1lcmFsZC0wLjguMTRfMQogbGliaGFuZ3VsLnNv LjEgbGliaGFuZ3VsLTAuMS4wXzEKLWxpYm11dHRlci01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1s aWJtdXR0ZXItY2x1dHRlci01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNsdXR0ZXIt NS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvIG11dHRlci0z LjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJt dXR0ZXItY29nbC01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtNS5zby4wIG11 dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBtdXR0ZXItMy4zNC4xXzEK LWxpYm11dHRlci1jb2dsLXBhbmdvLTUuc28uMCBtdXR0ZXItMy4zNC4xXzEKK2xpYm11dHRlci03 LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNsdXR0ZXItNy5zbyBtdXR0ZXItMy4z Ny45MF8xCitsaWJtdXR0ZXItY2x1dHRlci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0 dGVyLWNvZ2wtcGF0aC03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhdGgt Ny5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLTcuc28gbXV0dGVyLTMuMzcu OTBfMQorbGlibXV0dGVyLWNvZ2wtNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1j b2dsLXBhbmdvLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5z by4wIG11dHRlci0zLjM3LjkwXzEKIGxpYmdlb2NsdWUtMi5zby4wIGdlb2NsdWUyLTIuNC40XzEK IGxpYmdlcHViLnNvLjAgbGliZ2VwdWItMC40XzEKIGxpYnNsb3B5LnNvLjcuNSBzbG9wLTcuNV8x CmRpZmYgLS1naXQgYS9zcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRl cy5wYXRjaCBiL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTA5ODg4ODdjMy4uMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gY29nbC9jb2dsL21lc29uLmJ1 aWxkCTIwMTktMTAtMDggMTk6MTU6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgY29nbC9jb2dsL21l c29uLmJ1aWxkCTIwMTktMTItMTYgMTU6NDU6NDQuMDM3NjQwNTQ4ICswMTAwCi1AQCAtNDgsNyAr NDgsNyBAQAotIGJ1aWx0X2hlYWRlcnMgKz0gW2NvZ2xfZ2xfaGVhZGVyX2hdCi0gCi0gaWYgaGF2 ZV9lZ2wKLS0gIGNvZ2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcjaW5jbHVkZSA8RUdML2VnbC5o PlxuI2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4nCi0rICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcg PSAnI2luY2x1ZGUgPEVHTC9lZ2wuaD5cbiNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+XG4jaW5jbHVk ZSA8RUdML2VnbG1lc2FleHQuaD4nCi0gZWxzZQotICAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5n ID0gJycKLSBlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2ly ZS0wLjMucGF0Y2ggYi9zcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJmZjY1ZmJhODUuLjAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNTIxICswLDAgQEAKLUJ1aWxkIG11dHRlciBhZ2FpbnN0IHBpcGV3aXJlLTAuMywg YmFzZWQgb24gYSBwYXRjaCBhdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tdXR0 ZXIvLS9tZXJnZV9yZXF1ZXN0cy8xMDYyCi0tLS0gbWVzb24uYnVpbGQKLSsrKyBtZXNvbi5idWls ZAotQEAgLTUwLDcgKzUwLDcgQEAgbGliaW5wdXRfcmVxID0gJz49IDEuNycKLSBnYm1fcmVxID0g Jz49IDEwLjMnCi0KLSAjIHNjcmVlbiBjYXN0IHZlcnNpb24gcmVxdWlyZW1lbnRzCi0tbGlicGlw ZXdpcmVfcmVxID0gJz49IDAuMi41JwotK2xpYnBpcGV3aXJlX3JlcSA9ICc+PSAwLjMuMCcKLQot IGdub21lID0gaW1wb3J0KCdnbm9tZScpCi0gcGtnID0gaW1wb3J0KCdwa2djb25maWcnKQotQEAg LTI0MSw3ICsyNDEsNyBAQCBlbmRpZgotCi0gaGF2ZV9yZW1vdGVfZGVza3RvcCA9IGdldF9vcHRp b24oJ3JlbW90ZV9kZXNrdG9wJykKLSBpZiBoYXZlX3JlbW90ZV9kZXNrdG9wCi0tICBsaWJwaXBl d2lyZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjInLCB2ZXJzaW9uOiBsaWJwaXBl d2lyZV9yZXEpCi0rICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0w LjMnLCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0gZW5kaWYKLQotIGhhdmVfaW50cm9zcGVj dGlvbiA9IGdldF9vcHRpb24oJ2ludHJvc3BlY3Rpb24nKQotZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0cmVhbS1zcmMuYyBiL3NyYy9iYWNrZW5kcy9tZXRhLXNj cmVlbi1jYXN0LXN0cmVhbS1zcmMuYwotaW5kZXggODJjNWNiYTQzNi4uYmExY2U5NGE3ZSAxMDA2 NDQKLS0tLSBzcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLSsrKyBz cmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLUBAIC0yOSw2ICsyOSw3 IEBACi0gI2luY2x1ZGUgPHNwYS9wYXJhbS9wcm9wcy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0v Zm9ybWF0LXV0aWxzLmg+Ci0gI2luY2x1ZGUgPHNwYS9wYXJhbS92aWRlby9mb3JtYXQtdXRpbHMu aD4KLSsjaW5jbHVkZSA8c3BhL3V0aWxzL3Jlc3VsdC5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4K LSAjaW5jbHVkZSA8c3lzL21tYW4uaD4KLQotQEAgLTYyLDE1ICs2Myw2IEBAIGVudW0KLQotIHN0 YXRpYyBndWludCBzaWduYWxzW05fU0lHTkFMU107Ci0KLS10eXBlZGVmIHN0cnVjdCBfTWV0YVNw YVR5cGUKLS17Ci0tICBzdHJ1Y3Qgc3BhX3R5cGVfbWVkaWFfdHlwZSBtZWRpYV90eXBlOwotLSAg c3RydWN0IHNwYV90eXBlX21lZGlhX3N1YnR5cGUgbWVkaWFfc3VidHlwZTsKLS0gIHN0cnVjdCBz cGFfdHlwZV9mb3JtYXRfdmlkZW8gZm9ybWF0X3ZpZGVvOwotLSAgc3RydWN0IHNwYV90eXBlX3Zp ZGVvX2Zvcm1hdCB2aWRlb19mb3JtYXQ7Ci0tICB1aW50MzJfdCBtZXRhX2N1cnNvcjsKLS19IE1l dGFTcGFUeXBlOwotLQotIHR5cGVkZWYgc3RydWN0IF9NZXRhUGlwZVdpcmVTb3VyY2UKLSB7Ci0g ICBHU291cmNlIGJhc2U7Ci1AQCAtODIsMTkgKzc0LDE5IEBAIHR5cGVkZWYgc3RydWN0IF9NZXRh U2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUKLSB7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbSAq c3RyZWFtOwotCi0rICBzdHJ1Y3QgcHdfY29udGV4dCAqcGlwZXdpcmVfY29udGV4dDsKLSAgIHN0 cnVjdCBwd19jb3JlICpwaXBld2lyZV9jb3JlOwotLSAgc3RydWN0IHB3X3JlbW90ZSAqcGlwZXdp cmVfcmVtb3RlOwotLSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGU7Ci0gICBNZXRhUGlw ZVdpcmVTb3VyY2UgKnBpcGV3aXJlX3NvdXJjZTsKLS0gIHN0cnVjdCBzcGFfaG9vayBwaXBld2ly ZV9yZW1vdGVfbGlzdGVuZXI7Ci0rICBzdHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfY29yZV9saXN0 ZW5lcjsKLQotICAgZ2Jvb2xlYW4gaXNfZW5hYmxlZDsKLQotICAgc3RydWN0IHB3X3N0cmVhbSAq cGlwZXdpcmVfc3RyZWFtOwotICAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX3N0cmVhbV9saXN0 ZW5lcjsKLSsgIHVpbnQzMl90IG5vZGVfaWQ7Ci0KLS0gIE1ldGFTcGFUeXBlIHNwYV90eXBlOwot ICAgc3RydWN0IHNwYV92aWRlb19pbmZvX3JhdyB2aWRlb19mb3JtYXQ7Ci0rICBpbnQgdmlkZW9f c3RyaWRlOwotCi0gICB1aW50NjRfdCBsYXN0X2ZyYW1lX3RpbWVzdGFtcF91czsKLQotQEAgLTEx Miw4ICsxMDQsNiBAQCBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2luaXRfaW5pdGFibGVfaWZhY2UpCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIEdfQUREX1BSSVZBVEUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj KSkKLQotLSNkZWZpbmUgUFJPUF9SQU5HRShtaW4sIG1heCkgMiwgKG1pbiksIChtYXgpCi0tCi0g c3RhdGljIHZvaWQKLSBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X3NwZWNzIChNZXRh U2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICp3aWR0aCwKLUBAIC0yODYsOSArMjc2 LDYgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRl X21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAg ICAgICB4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHkpCi0gewotLSAgTWV0YVNj cmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNw YV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3Bh X21ldGFfYml0bWFwOwotCi0gICBzcGFfbWV0YV9jdXJzb3ItPmlkID0gMTsKLUBAIC0zMDAsNyAr Mjg3LDcgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3By aXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQ QV9NRU1CRVIgKHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNwYV9tZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFw LT5mb3JtYXQgPSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRt YXAtPmZvcm1hdCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+ b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgc3BhX21ldGFf Y3Vyc29yLT5ob3RzcG90LnggPSAwOwotQEAgLTMxNyw5ICszMDQsNiBAQCBtZXRhX3NjcmVlbl9j YXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0 U3RyZWFtU3JjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgeSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0ICAgICAgICAgICAg ICAgICAgICBzY2FsZSkKLSB7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnBy aXYgPQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZh dGUgKHNyYyk7Ci0tICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0g ICBDb2dsVGV4dHVyZSAqY3Vyc29yX3RleHR1cmU7Ci0gICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFw ICpzcGFfbWV0YV9iaXRtYXA7Ci0gICBpbnQgaG90c3BvdF94LCBob3RzcG90X3k7Ci1AQCAtMzQ2 LDcgKzMzMCw3IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX3Nwcml0 ZV9tZXRhZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMKLSAgIHNwYV9tZXRhX2JpdG1hcCA9 IFNQQV9NRU1CRVIgKHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNwYV9tZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0 bWFwLT5mb3JtYXQgPSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9i aXRtYXAtPmZvcm1hdCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1h cC0+b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgbWV0YV9j dXJzb3Jfc3ByaXRlX2dldF9ob3RzcG90IChjdXJzb3Jfc3ByaXRlLCAmaG90c3BvdF94LCAmaG90 c3BvdF95KTsKLUBAIC0zODIsMTIgKzM2NiwxMCBAQCBzdGF0aWMgdm9pZAotIGFkZF9jdXJzb3Jf bWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMsCi0gICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHNwYV9idWZmZXIgICAgICAgKnNwYV9idWZmZXIpCi0gewotLSAgTWV0YVNj cmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNw YV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2N1cnNvciAqc3Bh X21ldGFfY3Vyc29yOwotCi0tICBzcGFfbWV0YV9jdXJzb3IgPSBzcGFfYnVmZmVyX2ZpbmRfbWV0 YSAoc3BhX2J1ZmZlciwgc3BhX3R5cGUtPm1ldGFfY3Vyc29yKTsKLSsgIHNwYV9tZXRhX2N1cnNv ciA9IHNwYV9idWZmZXJfZmluZF9tZXRhX2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX0N1cnNv ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZiAoKnNwYV9tZXRhX2N1cnNvcikpOwotICAgaWYgKHNwYV9tZXRhX2N1cnNvcikKLSAgICAgbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9jdXJzb3JfbWV0YWRhdGEgKHNyYywgc3BhX21l dGFfY3Vyc29yKTsKLSB9Ci1AQCAtNDQ3LDE0ICs0MjksMTQgQEAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX21heWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNy YykKLSAgICAgewotICAgICAgIGRhdGEgPSBzcGFfYnVmZmVyLT5kYXRhc1swXS5kYXRhOwotICAg ICB9Ci0tICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IHByaXYtPnBpcGV3 aXJlX3R5cGUtPmRhdGEuTWVtRmQpCi0rICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50 eXBlID09IFNQQV9EQVRBX01lbUZkKQotICAgICB7Ci0gICAgICAgbWFwID0gbW1hcCAoTlVMTCwg c3BhX2J1ZmZlci0+ZGF0YXNbMF0ubWF4c2l6ZSArIHNwYV9idWZmZXItPmRhdGFzWzBdLm1hcG9m ZnNldCwKLSAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hB UkVELAotICAgICAgICAgICAgICAgICAgIHNwYV9idWZmZXItPmRhdGFzWzBdLmZkLCAwKTsKLSAg ICAgICBpZiAobWFwID09IE1BUF9GQUlMRUQpCi0gICAgICAgICB7Ci0tICAgICAgICAgIGdfd2Fy bmluZyAoIkZhaWxlZCB0byBtbWFwIHBpcGV3aXJlIHN0cmVhbSBidWZmZXI6ICVzXG4iLAotKyAg ICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVy OiAlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3IgKGVycm5vKSk7Ci0gICAgICAg ICAgIHJldHVybjsKLSAgICAgICAgIH0KLUBAIC00NjksMjggKzQ1MSwzMCBAQCBtZXRhX3NjcmVl bl9jYXN0X3N0cmVhbV9zcmNfbWF5YmVfcmVjb3JkX2ZyYW1lIChNZXRhU2NyZWVuQ2FzdFN0cmVh bVNyYyAqc3JjKQotCi0gICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3JlY29yZF9m cmFtZSAoc3JjLCBkYXRhKSkKLSAgICAgewotLSAgICAgIHN0cnVjdCBzcGFfbWV0YV92aWRlb19j cm9wICpzcGFfbWV0YV92aWRlb19jcm9wOwotKyAgICAgIHN0cnVjdCBzcGFfbWV0YV9yZWdpb24g KnNwYV9tZXRhX3ZpZGVvX2Nyb3A7Ci0KLSAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5jaHVu ay0+c2l6ZSA9IHNwYV9idWZmZXItPmRhdGFzWzBdLm1heHNpemU7Ci0rICAgICAgc3BhX2J1ZmZl ci0+ZGF0YXNbMF0uY2h1bmstPnN0cmlkZSA9IHByaXYtPnZpZGVvX3N0cmlkZTsKLQotICAgICAg IC8qIFVwZGF0ZSBWaWRlb0Nyb3AgaWYgbmVlZGVkICovCi0gICAgICAgc3BhX21ldGFfdmlkZW9f Y3JvcCA9Ci0tICAgICAgICBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgcHJpdi0+ cGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRlb0Nyb3ApOwotKyAgICAgICAgc3BhX2J1ZmZlcl9maW5k X21ldGFfZGF0YSAoc3BhX2J1ZmZlciwgU1BBX01FVEFfVmlkZW9Dcm9wLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mICgqc3BhX21ldGFfdmlkZW9fY3JvcCkpOwot ICAgICAgIGlmIChzcGFfbWV0YV92aWRlb19jcm9wKQotICAgICAgICAgewotICAgICAgICAgICBp ZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF92aWRlb2Nyb3AgKHNyYywgJmNyb3Bf cmVjdCkpCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3Jv cC0+eCA9IGNyb3BfcmVjdC54OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+ eSA9IGNyb3BfcmVjdC55OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+d2lk dGggPSBjcm9wX3JlY3Qud2lkdGg7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9w LT5oZWlnaHQgPSBjcm9wX3JlY3QuaGVpZ2h0OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlk ZW9fY3JvcC0+cmVnaW9uLnBvc2l0aW9uLnggPSBjcm9wX3JlY3QueDsKLSsgICAgICAgICAgICAg IHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55ID0gY3JvcF9yZWN0Lnk7Ci0r ICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCA9IGNy b3BfcmVjdC53aWR0aDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lv bi5zaXplLmhlaWdodCA9IGNyb3BfcmVjdC5oZWlnaHQ7Ci0gICAgICAgICAgICAgfQotICAgICAg ICAgICBlbHNlCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9f Y3JvcC0+eCA9IDA7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT55ID0gMDsK LS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndpZHRoID0gcHJpdi0+c3RyZWFt X3dpZHRoOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0gcHJp di0+c3RyZWFtX2hlaWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJl Z2lvbi5wb3NpdGlvbi54ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3At PnJlZ2lvbi5wb3NpdGlvbi55ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Ny b3AtPnJlZ2lvbi5zaXplLndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotKyAgICAgICAgICAg ICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUuaGVpZ2h0ID0gcHJpdi0+c3RyZWFt X2hlaWdodDsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC01NTUsNyAr NTM5LDYgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpk YXRhLAotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2Ny ZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICB1aW50MzJfdCBub2RlX2lk OwotCi0gICBzd2l0Y2ggKHN0YXRlKQotICAgICB7Ci1AQCAtNTYzLDE0ICs1NDYsMTIgQEAgb25f c3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAg IGdfd2FybmluZyAoInBpcGV3aXJlIHN0cmVhbSBlcnJvcjogJXMiLCBlcnJvcl9tZXNzYWdlKTsK LSAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsK LSAgICAgICBicmVhazsKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09ORklHVVJFOgotLSAg ICAgIG5vZGVfaWQgPSBwd19zdHJlYW1fZ2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVh bSk7Ci0tICAgICAgZ19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2ln bmVkIGludCkgbm9kZV9pZCk7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NU QVRFX1VOQ09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5HOgot LSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9SRUFEWToKLSAgICAgY2FzZSBQV19TVFJFQU1fU1RB VEVfUEFVU0VEOgotKyAgICAgIGlmIChwcml2LT5ub2RlX2lkID09IFNQQV9JRF9JTlZBTElEICYm IHByaXYtPnBpcGV3aXJlX3N0cmVhbSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgcHJpdi0+bm9k ZV9pZCA9IHB3X3N0cmVhbV9nZXRfbm9kZV9pZCAocHJpdi0+cGlwZXdpcmVfc3RyZWFtKTsKLSsg ICAgICAgICAgZ19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVk IGludCkgcHJpdi0+bm9kZV9pZCk7Ci0rICAgICAgICB9Ci0gICAgICAgaWYgKG1ldGFfc2NyZWVu X2Nhc3Rfc3RyZWFtX3NyY19pc19lbmFibGVkIChzcmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5f Y2FzdF9zdHJlYW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0gICAgICAgYnJlYWs7Ci1AQCAtNTc4LDY4 ICs1NTksNjkgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAg ICpkYXRhLAotICAgICAgIGlmICghbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2lzX2VuYWJs ZWQgKHNyYykpCi0gICAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZW5hYmxlIChz cmMpOwotICAgICAgIGJyZWFrOwotKyAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5FQ1RF RDoKLSsgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElORzoKLSsgICAgICBicmVhazsK LSAgICAgfQotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RyZWFtX2Zvcm1hdF9jaGFuZ2VkICh2 b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0rb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQgKHZv aWQgICAgICAgICAgICAgICAgICpkYXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCAgICAgICAgICAgICAgaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNy YyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAg ICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7 Ci0tICBzdHJ1Y3QgcHdfdHlwZSAqcGlwZXdpcmVfdHlwZSA9IHByaXYtPnBpcGV3aXJlX3R5cGU7 Ci0gICB1aW50OF90IHBhcmFtc19idWZmZXJbMTAyNF07Ci0gICBpbnQzMl90IHdpZHRoLCBoZWln aHQsIHN0cmlkZSwgc2l6ZTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXI7 Ci0gICBjb25zdCBzdHJ1Y3Qgc3BhX3BvZCAqcGFyYW1zWzNdOwotICAgY29uc3QgaW50IGJwcCA9 IDQ7Ci0KLS0gIGlmICghZm9ybWF0KQotLSAgICB7Ci0tICAgICAgcHdfc3RyZWFtX2ZpbmlzaF9m b3JtYXQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSwgMCwgTlVMTCwgMCk7Ci0tICAgICAgcmV0dXJu OwotLSAgICB9Ci0rICBpZiAoIWZvcm1hdCB8fCBpZCAhPSBTUEFfUEFSQU1fRm9ybWF0KQotKyAg ICByZXR1cm47Ci0KLSAgIHNwYV9mb3JtYXRfdmlkZW9fcmF3X3BhcnNlIChmb3JtYXQsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+c3BhX3R5cGUuZm9ybWF0X3ZpZGVvKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+dmlkZW9fZm9ybWF0KTsKLQotICAg d2lkdGggPSBwcml2LT52aWRlb19mb3JtYXQuc2l6ZS53aWR0aDsKLSAgIGhlaWdodCA9IHByaXYt PnZpZGVvX2Zvcm1hdC5zaXplLmhlaWdodDsKLSAgIHN0cmlkZSA9IFNQQV9ST1VORF9VUF9OICh3 aWR0aCAqIGJwcCwgNCk7Ci0gICBzaXplID0gaGVpZ2h0ICogc3RyaWRlOwotCi0rICBwcml2LT52 aWRlb19zdHJpZGUgPSBzdHJpZGU7Ci0rCi0gICBwb2RfYnVpbGRlciA9IFNQQV9QT0RfQlVJTERF Ul9JTklUIChwYXJhbXNfYnVmZmVyLCBzaXplb2YgKHBhcmFtc19idWZmZXIpKTsKLQotLSAgcGFy YW1zWzBdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9k X2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVf dHlwZS0+cGFyYW0uaWRCdWZmZXJzLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLkJ1ZmZl cnMsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zaXplLCAiaSIsIHNp emUsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zdHJpZGUsICJpIiwg c3RyaWRlLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuYnVmZmVycywg ImlydSIsIDE2LCBQUk9QX1JBTkdFICgyLCAxNiksCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+ cGFyYW1fYnVmZmVycy5hbGlnbiwgImkiLCAxNik7Ci0tCi0tICBwYXJhbXNbMV0gPSBzcGFfcG9k X2J1aWxkZXJfb2JqZWN0ICgKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtQnVmZmVycywgU1BB X1BBUkFNX0J1ZmZlcnMsCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2J1ZmZlcnMsIFNQQV9QT0Rf Q0hPSUNFX1JBTkdFX0ludCAoMTYsIDIsIDE2KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYmxv Y2tzLCBTUEFfUE9EX0ludCAoMSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX3NpemUsIFNQQV9Q T0RfSW50IChzaXplKSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfc3RyaWRlLCBTUEFfUE9EX0lu dCAoc3RyaWRlKSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYWxpZ24sIFNQQV9QT0RfSW50ICgx NikpOwotKwotKyAgcGFyYW1zWzFdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAg ICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdp cmVfdHlwZS0+cGFyYW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFt X21ldGEudHlwZSwgIkkiLCBwaXBld2lyZV90eXBlLT5tZXRhLlZpZGVvQ3JvcCwKLS0gICAgIjoi LCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgc2l6ZW9mIChzdHJ1Y3Qgc3Bh X21ldGFfdmlkZW9fY3JvcCkpOwotKyAgICBTUEFfVFlQRV9PQkpFQ1RfUGFyYW1NZXRhLCBTUEFf UEFSQU1fTWV0YSwKLSsgICAgU1BBX1BBUkFNX01FVEFfdHlwZSwgU1BBX1BPRF9JZCAoU1BBX01F VEFfVmlkZW9Dcm9wKSwKLSsgICAgU1BBX1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BPRF9JbnQgKHNp emVvZiAoc3RydWN0IHNwYV9tZXRhX3JlZ2lvbikpKTsKLQotLSAgcGFyYW1zWzJdID0gc3BhX3Bv ZF9idWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMl0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29i amVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRN ZXRhLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLk1ldGEsCi0tICAgICI6IiwgcGlwZXdpcmVf dHlwZS0+cGFyYW1fbWV0YS50eXBlLCAiSSIsIHByaXYtPnNwYV90eXBlLm1ldGFfY3Vyc29yLAot LSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuc2l6ZSwgImkiLCBDVVJTT1JfTUVU QV9TSVpFICg2NCwgNjQpKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BB UkFNX01ldGEsCi0rICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRB X0N1cnNvciksCi0rICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChDVVJTT1Jf TUVUQV9TSVpFICg2NCwgNjQpKSk7Ci0KLS0gIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2 LT5waXBld2lyZV9zdHJlYW0sIDAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1z LCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotKyAgcHdfc3RyZWFtX3VwZGF0ZV9wYXJhbXMgKHBy aXYtPnBpcGV3aXJlX3N0cmVhbSwgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotIH0K LQotIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfc3RyZWFtX2V2ZW50cyBzdHJlYW1fZXZlbnRzID0g ewotICAgUFdfVkVSU0lPTl9TVFJFQU1fRVZFTlRTLAotICAgLnN0YXRlX2NoYW5nZWQgPSBvbl9z dHJlYW1fc3RhdGVfY2hhbmdlZCwKLS0gIC5mb3JtYXRfY2hhbmdlZCA9IG9uX3N0cmVhbV9mb3Jt YXRfY2hhbmdlZCwKLSsgIC5wYXJhbV9jaGFuZ2VkID0gb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQs Ci0gfTsKLQotIHN0YXRpYyBzdHJ1Y3QgcHdfc3RyZWFtICoKLUBAIC02NTIsOCArNjM0LDYgQEAg Y3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0g ICB1aW50OF90IGJ1ZmZlclsxMDI0XTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1 aWxkZXIgPQotICAgICBTUEFfUE9EX0JVSUxERVJfSU5JVCAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZl cikpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotLSAgc3Ry dWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgZmxv YXQgZnJhbWVfcmF0ZTsKLSAgIE1ldGFGcmFjdGlvbiBmcmFtZV9yYXRlX2ZyYWN0aW9uOwotICAg c3RydWN0IHNwYV9mcmFjdGlvbiBtYXhfZnJhbWVyYXRlOwotQEAgLTY2MSw3ICs2NDEsOSBAQCBj cmVhdGVfcGlwZXdpcmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSAg IGNvbnN0IHN0cnVjdCBzcGFfcG9kICpwYXJhbXNbMV07Ci0gICBpbnQgcmVzdWx0OwotCi0tICBw aXBld2lyZV9zdHJlYW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9yZW1vdGUsCi0r ICBwcml2LT5ub2RlX2lkID0gU1BBX0lEX0lOVkFMSUQ7Ci0rCi0rICBwaXBld2lyZV9zdHJlYW0g PSBwd19zdHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9jb3JlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm1ldGEtc2NyZWVuLWNhc3Qtc3JjIiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi1A QCAtNjgyLDE3ICs2NjQsMTcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNh c3RTdHJlYW1TcmMgICpzcmMsCi0gICBtYXhfZnJhbWVyYXRlID0gU1BBX0ZSQUNUSU9OIChmcmFt ZV9yYXRlX2ZyYWN0aW9uLm51bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy YW1lX3JhdGVfZnJhY3Rpb24uZGVub20pOwotCi0tICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxk ZXJfb2JqZWN0ICgKLSsgIHBhcmFtc1swXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgK LSAgICAgJnBvZF9idWlsZGVyLAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZEVudW1Gb3Jt YXQsIHBpcGV3aXJlX3R5cGUtPnNwYV9mb3JtYXQsCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlh X3R5cGUudmlkZW8sCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3N1YnR5cGUucmF3LAotLSAg ICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZm9ybWF0LCAiSSIsIHNwYV90eXBlLT52aWRl b19mb3JtYXQuQkdSeCwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLnNpemUsICJS IiwgJlNQQV9SRUNUQU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPnN0cmVhbV9o ZWlnaHQpLAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIs ICZTUEFfRlJBQ1RJT04gKDAsIDEpLAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8u bWF4X2ZyYW1lcmF0ZSwgIkZydSIsICZtYXhfZnJhbWVyYXRlLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfUkFOR0UgKCZtaW5fZnJh bWVyYXRlLAotKyAgICBTUEFfVFlQRV9PQkpFQ1RfRm9ybWF0LCBTUEFfUEFSQU1fRW51bUZvcm1h dCwKLSsgICAgU1BBX0ZPUk1BVF9tZWRpYVR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9UWVBF X3ZpZGVvKSwKLSsgICAgU1BBX0ZPUk1BVF9tZWRpYVN1YnR5cGUsIFNQQV9QT0RfSWQgKFNQQV9N RURJQV9TVUJUWVBFX3JhdyksCi0rICAgIFNQQV9GT1JNQVRfVklERU9fZm9ybWF0LCBTUEFfUE9E X0lkIChTUEFfVklERU9fRk9STUFUX0JHUngpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX3NpemUs IFNQQV9QT0RfUmVjdGFuZ2xlICgmU1BBX1JFQ1RBTkdMRSAocHJpdi0+c3RyZWFtX3dpZHRoLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJpdi0+c3RyZWFtX2hlaWdodCkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2ZyYW1l cmF0ZSwgU1BBX1BPRF9GcmFjdGlvbiAoJlNQQV9GUkFDVElPTiAoMCwgMSkpLAotKyAgICBTUEFf Rk9STUFUX1ZJREVPX21heEZyYW1lcmF0ZSwgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfRnJhY3Rpb24g KCZtYXhfZnJhbWVyYXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtaW5fZnJhbWVyYXRlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZt YXhfZnJhbWVyYXRlKSk7Ci0KLSAgIHB3X3N0cmVhbV9hZGRfbGlzdGVuZXIgKHBpcGV3aXJlX3N0 cmVhbSwKLUBAIC03MDIsNyArNjg0LDcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNj cmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0KLSAgIHJlc3VsdCA9IHB3X3N0cmVhbV9jb25uZWN0 IChwaXBld2lyZV9zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdfRElS RUNUSU9OX09VVFBVVCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQQV9JRF9JTlZBTElELAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChQV19TVFJFQU1fRkxBR19EUklWRVIgfAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQV19TVFJFQU1fRkxBR19NQVBfQlVGRkVSUyksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwot QEAgLTcxNyw0MCArNjk5LDE4IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5D YXN0U3RyZWFtU3JjICAqc3JjLAotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RhdGVfY2hhbmdl ZCAodm9pZCAgICAgICAgICAgICAgICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgZW51bSBw d19yZW1vdGVfc3RhdGUgIG9sZCwKLS0gICAgICAgICAgICAgICAgICBlbnVtIHB3X3JlbW90ZV9z dGF0ZSAgc3RhdGUsCi0tICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgKmVy cm9yX21lc3NhZ2UpCi0rb25fY29yZV9lcnJvciAodm9pZCAgICAgICAqZGF0YSwKLSsgICAgICAg ICAgICAgICB1aW50MzJfdCAgICBpZCwKLSsJICAgICAgIGludCAgICAgICAgIHNlcSwKLSsJICAg ICAgIGludCAgICAgICAgIHJlcywKLSsJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gewot ICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0tICBNZXRhU2NyZWVuQ2Fz dFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9z cmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3QgcHdfc3RyZWFtICpwaXBl d2lyZV9zdHJlYW07Ci0tICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLQotLSAgc3dpdGNoIChzdGF0 ZSkKLS0gICAgewotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9FUlJPUjoKLS0gICAgICBnX3dh cm5pbmcgKCJwaXBld2lyZSByZW1vdGUgZXJyb3I6ICVzXG4iLCBlcnJvcl9tZXNzYWdlKTsKLS0g ICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLS0g ICAgICBicmVhazsKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgotLSAgICAg IHBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgJmVycm9yKTsK LS0gICAgICBpZiAoIXBpcGV3aXJlX3N0cmVhbSkKLS0gICAgICAgIHsKLS0gICAgICAgICAgZ193 YXJuaW5nICgiQ291bGQgbm90IGNyZWF0ZSBwaXBld2lyZSBzdHJlYW06ICVzIiwgZXJyb3ItPm1l c3NhZ2UpOwotLSAgICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLS0gICAgICAgICAgbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgICB9 Ci0tICAgICAgZWxzZQotLSAgICAgICAgewotLSAgICAgICAgICBwcml2LT5waXBld2lyZV9zdHJl YW0gPSBwaXBld2lyZV9zdHJlYW07Ci0tICAgICAgICB9Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNh c2UgUFdfUkVNT1RFX1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFU RV9DT05ORUNUSU5HOgotLSAgICAgIGJyZWFrOwotLSAgICB9Ci0rICBnX3dhcm5pbmcgKCJwaXBl d2lyZSByZW1vdGUgZXJyb3I6IGlkOiV1ICVzIiwgaWQsIG1lc3NhZ2UpOwotKwotKyAgaWYgKGlk ID09IFBXX0lEX0NPUkUgJiYgcmVzID09IC1FUElQRSkKLSsgICAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0gfQotCi0gc3RhdGljIGdib29sZWFuCi1A QCAtNzkzLDE3ICs3NTMsNiBAQCBzdGF0aWMgR1NvdXJjZUZ1bmNzIHBpcGV3aXJlX3NvdXJjZV9m dW5jcyA9Ci0gICBwaXBld2lyZV9sb29wX3NvdXJjZV9maW5hbGl6ZQotIH07Ci0KLS1zdGF0aWMg dm9pZAotLWluaXRfc3BhX3R5cGUgKE1ldGFTcGFUeXBlICAgICAgICAgKnR5cGUsCi0tICAgICAg ICAgICAgICAgc3RydWN0IHNwYV90eXBlX21hcCAqbWFwKQotLXsKLS0gIHNwYV90eXBlX21lZGlh X3R5cGVfbWFwIChtYXAsICZ0eXBlLT5tZWRpYV90eXBlKTsKLS0gIHNwYV90eXBlX21lZGlhX3N1 YnR5cGVfbWFwIChtYXAsICZ0eXBlLT5tZWRpYV9zdWJ0eXBlKTsKLS0gIHNwYV90eXBlX2Zvcm1h dF92aWRlb19tYXAgKG1hcCwgJnR5cGUtPmZvcm1hdF92aWRlbyk7Ci0tICBzcGFfdHlwZV92aWRl b19mb3JtYXRfbWFwIChtYXAsICZ0eXBlLT52aWRlb19mb3JtYXQpOwotLSAgdHlwZS0+bWV0YV9j dXJzb3IgPSBzcGFfdHlwZV9tYXBfZ2V0X2lkKG1hcCwgU1BBX1RZUEVfTUVUQV9fQ3Vyc29yKTsK LS19Ci0tCi0gc3RhdGljIE1ldGFQaXBlV2lyZVNvdXJjZSAqCi0gY3JlYXRlX3BpcGV3aXJlX3Nv dXJjZSAodm9pZCkKLSB7Ci1AQCAtODI5LDkgKzc3OCw5IEBAIGNyZWF0ZV9waXBld2lyZV9zb3Vy Y2UgKHZvaWQpCi0gICByZXR1cm4gcGlwZXdpcmVfc291cmNlOwotIH0KLQotLXN0YXRpYyBjb25z dCBzdHJ1Y3QgcHdfcmVtb3RlX2V2ZW50cyByZW1vdGVfZXZlbnRzID0gewotLSAgUFdfVkVSU0lP Tl9SRU1PVEVfRVZFTlRTLAotLSAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdGF0ZV9jaGFuZ2VkLAot K3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfY29yZV9ldmVudHMgY29yZV9ldmVudHMgPSB7Ci0rICBQ V19WRVJTSU9OX0NPUkVfRVZFTlRTLAotKyAgLmVycm9yID0gb25fY29yZV9lcnJvciwKLSB9Owot Ci0gc3RhdGljIGdib29sZWFuCi1AQCAtODUxLDM3ICs4MDAsMzEgQEAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgKmluaXRhYmxlLAotICAg ICAgIHJldHVybiBGQUxTRTsKLSAgICAgfQotCi0tICBwcml2LT5waXBld2lyZV9jb3JlID0gcHdf Y29yZV9uZXcgKHByaXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3 aXJlX2NvcmUpCi0rICBwcml2LT5waXBld2lyZV9jb250ZXh0ID0gcHdfY29udGV4dF9uZXcgKHBy aXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCk7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJl X2NvbnRleHQpCi0gICAgIHsKLSAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1Is IEdfSU9fRVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0 ZSBwaXBld2lyZSBjb3JlIik7Ci0rICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY3JlYXRl IHBpcGV3aXJlIGNvbnRleHQiKTsKLSAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAg cHJpdi0+cGlwZXdpcmVfcmVtb3RlID0gcHdfcmVtb3RlX25ldyAocHJpdi0+cGlwZXdpcmVfY29y ZSwgTlVMTCwgMCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX3JlbW90ZSkKLSsgIHByaXYtPnBp cGV3aXJlX2NvcmUgPSBwd19jb250ZXh0X2Nvbm5lY3QgKHByaXYtPnBpcGV3aXJlX2NvbnRleHQs IE5VTEwsIDApOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9jb3JlKQotICAgICB7Ci0gICAgICAg Z19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAg ICAgICAgICAgICAgICAgIkNvdWxkbid0IGNyZWF0IHBpcGV3aXJlIHJlbW90ZSIpOwotKyAgICAg ICAgICAgICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2lyZSBjb250ZXh0Iik7Ci0gICAg ICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLS0gIHB3X3JlbW90ZV9hZGRfbGlzdGVuZXIgKHBy aXYtPnBpcGV3aXJlX3JlbW90ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5w aXBld2lyZV9yZW1vdGVfbGlzdGVuZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVt b3RlX2V2ZW50cywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0rICBwd19jb3Jl X2FkZF9saXN0ZW5lciAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAmcHJpdi0+cGlwZXdpcmVfY29yZV9saXN0ZW5lciwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAmY29yZV9ldmVudHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgc3JjKTsKLQotLSAg cHJpdi0+cGlwZXdpcmVfdHlwZSA9IHB3X2NvcmVfZ2V0X3R5cGUgKHByaXYtPnBpcGV3aXJlX2Nv cmUpOwotLSAgaW5pdF9zcGFfdHlwZSAoJnByaXYtPnNwYV90eXBlLCBwcml2LT5waXBld2lyZV90 eXBlLT5tYXApOwotLQotLSAgaWYgKHB3X3JlbW90ZV9jb25uZWN0IChwcml2LT5waXBld2lyZV9y ZW1vdGUpICE9IDApCi0tICAgIHsKLS0gICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJS T1IsIEdfSU9fRVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY29u bmVjdCBwaXBld2lyZSByZW1vdGUiKTsKLS0gICAgICByZXR1cm4gRkFMU0U7Ci0tICAgIH0KLSsg IHByaXYtPnBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgZXJy b3IpOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9zdHJlYW0pCi0rICAgIHJldHVybiBGQUxTRTsK LQotICAgcmV0dXJuIFRSVUU7Ci0gfQotQEAgLTkxMiw4ICs4NTUsOCBAQCBtZXRhX3NjcmVlbl9j YXN0X3N0cmVhbV9zcmNfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKLSAgICAgbWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0KLSAgIGdfY2xlYXJfcG9pbnRlciAo JnByaXYtPnBpcGV3aXJlX3N0cmVhbSwgcHdfc3RyZWFtX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9w b2ludGVyICgmcHJpdi0+cGlwZXdpcmVfcmVtb3RlLCBwd19yZW1vdGVfZGVzdHJveSk7Ci0tICBn X2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb3JlLCBwd19jb3JlX2Rlc3Ryb3kpOwot KyAgZ19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kaXNjb25u ZWN0KTsKLSsgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvbnRleHQsIHB3X2Nv bnRleHRfZGVzdHJveSk7Ci0gICBnX3NvdXJjZV9kZXN0cm95ICgmcHJpdi0+cGlwZXdpcmVfc291 cmNlLT5iYXNlKTsKLQotICAgR19PQkpFQ1RfQ0xBU1MgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbXV0dGVyL3RlbXBsYXRlIGIvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKaW5kZXggODA2YTNi ZWY5ZjAuLjk5OTRhZjdlNmRjIDEwMDY0NAotLS0gYS9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQpAQCAtMSwzNCArMSw0MCBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbXV0dGVyJwogcGtnbmFtZT1tdXR0ZXIKLXZlcnNpb249My4zNC4xCi1yZXZp c2lvbj0zCit2ZXJzaW9uPTMuMzcuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgog YnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGVnbF9kZXZpY2U9dHJ1ZSAtRHVk ZXY9dHJ1ZSAtRG5hdGl2ZV9iYWNrZW5kPXRydWUKLSAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9z cGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZCIKKyAtRHByb2Zp bGVyPWZhbHNlIC1EaW50cm9zcGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Y d2F5bGFuZAorIC1EeHdheWxhbmRfaW5pdGZkPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJn ZXR0ZXh0IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyB6ZW5pdHkgd2F5bGFuZC1kZXZlbCB4b3JnLXNl cnZlciIKLW1ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3Rv cC1kZXZlbCBqc29uLWdsaWItZGV2ZWwKLSBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0 c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGliaW5wdXQtZGV2ZWwKLSBNZXNhTGliLWRldmVs IHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIHdheWxhbmQtcHJvdG9j b2xzCi0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgorbWFrZWRlcGVuZHM9ImVsb2dpbmQt ZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGdyYXBoZW5lLWRldmVsCisganNv bi1nbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJj YW5iZXJyYS1kZXZlbAorIGxpYmlucHV0LWRldmVsIE1lc2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2 ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKKyB3YXlsYW5kLXByb3RvY29scyBnbm9tZS1z ZXR0aW5ncy1kYWVtb24tZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5 Igogc2hvcnRfZGVzYz0iTGlnaHR3ZWlnaHQgR1RLKzMgd2luZG93IG1hbmFnZXIiCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL011 dHRlci8iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iYTE4MjZjZjg4YmRiODFl NjM5NDNjYWMwMTRhOGU4YmNmMzVlYzE3OGM1MzI2NDQwMWY5YzcyZmRlYWI3NThlCi1zaGxpYl9w cm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNS5zbyBsaWJtdXR0ZXItY29nbC01LnNvCi0gbGli bXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTUuc28iCitjaGVja3N1 bT01MGRjN2EwNDU5NTQ5YzczNWFjZDllOGJiNzllNDEwOGNiMDRiMTE5OGU2Zjg1NWE5YzE5NzU5 NjFiNzdkYWU1CitzaGxpYl9wcm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNy5zbyBsaWJtdXR0 ZXItY29nbC03LnNvCisgbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBsaWJtdXR0ZXItY29nbC1w YXRoLTcuc28iCisKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQogCiBtdXR0ZXItZGV2 ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGd0aysz LWRldmVsIGNsdXR0ZXItZGV2ZWwgbGliWDExLWRldmVsCi0JIGxpYlh0c3QtZGV2ZWwgbXV0dGVy LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcyBndGsrMy1kZXZlbCBncmFwaGVuZS1kZXZlbCBjbHV0dGVyLWRldmVsCisJIGxpYlgxMS1k ZXZlbCBsaWJYdHN0LWRldmVsIG11dHRlci0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0 X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUg dXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKLQkJdm1vdmUgInVzci9saWIv bXV0dGVyLTUvKi5naXIiCisJCXZtb3ZlICJ1c3IvbGliL211dHRlci03LyouZ2lyIgogCQl2bW92 ZSAidXNyL2xpYi8qLnNvIgogCX0KIH0KCkZyb20gZTFmNTg3YTc3ODUzMGFkZjY2MjhhNzk1MTIx MWNiZGU5NGY5YzhlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDExLzgzXSBnbm9tZS1tZW51czogdXBkYXRlIHRvIDMuMzYu MAoKLS0tCiBzcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUK aW5kZXggMjkxMDIxMjljMzguLmU3ODdmYjhkZTZiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LW1lbnVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1tZW51cycKIHBrZ25hbWU9Z25v bWUtbWVudXMKLXZlcnNpb249My4zMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzYuMAorcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJnaXIiCiBj b25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIsIExHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS9nbm9tZS1tZW51cyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPWM4NTBjNjRiMjA3NDI2NWZlNTllMDk5YTM0MGI4Njg5Y2YzZGQ0NjU4ZGM5ZmVkZGQy YWI1ZTk1ZjFhNzRiNzQKK2NoZWNrc3VtPWQ5MzQ4ZjM4YmRlOTU2ZmMzMjc1M2IyOGMxY2RlMTlj MTc1YmZkYmYxZjRkNWIwNjAwM2IzYWEwOTE1M2JiMWYKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgog YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDllYTI3ODVkOWNhNGVmZDc0ODlhNDhl MmIzMjhhNjFkZjI3OTJiYzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi84M10gY2hlZXNlOiBidW1wCgotLS0KIHNyY3Br Z3MvY2hlZXNlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUgYi9z cmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQppbmRleCA3YTU2YmEwMzlmYi4uMDM3Y2RhNDljOTggMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvY2hlZXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hlZXNlL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2hlZXNlJwogcGtn bmFtZT1jaGVlc2UKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWls ZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURndGtf ZG9jPSQodm9wdF9pZiBndGtfZG9jICd0cnVlJyAnZmFsc2UnKQoKRnJvbSAzOTc3NjUzYWQzMWVj MGQ3ZWY3Yjk0YjY2MjkxNDQyNGI2NGFkYzQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvODNdIGV2b2x1dGlvbi1kYXRh LXNlcnZlcjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVt cGxhdGUgfCAyNSArKysrKysrKysrKysrKystLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE2 IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDRjZGM2MDZkZjE1Li5iYzUxNGUxMzY2OSAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC02MjgsNyArNjI4LDcg QEAgbGliaWNhbHNzX2N4eC5zby4zIGxpYmljYWwtMy4wLjRfMQogbGliaWNhbHZjYWwuc28uMyBs aWJpY2FsLTMuMC40XzEKIGxpYmljYWwtZ2xpYi5zby4zIGxpYmljYWwtMy4wLjRfMQogbGliY2Ft ZWwtMS4yLnNvLjYyIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjMwLjBfMQotbGliZWRhdGFzZXJ2 ZXItMS4yLnNvLjI0IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjMyLjBfMQorbGliZWRhdGFzZXJ2 ZXItMS4yLnNvLjI1IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjM3LjkwXzEKIGxpYmViYWNrZW5k LTEuMi5zby4xMCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4xNy45MF8xCiBsaWJlZGF0YXNlcnZl cnVpLTEuMi5zby4yIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI4LjBfMQogbGliZWJvb2stY29u dGFjdHMtMS4yLnNvLjMgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzQuMF8xCmRpZmYgLS1naXQg YS9zcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0 aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCmluZGV4IDRhZTgyMGJlMDY4Li41MjA2OWFkOTkzYiAx MDA2NDQKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUKQEAgLTEsMjkgKzEsMzQgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1dGlvbi1kYXRhLXNlcnZlcicKIHBrZ25hbWU9ZXZv bHV0aW9uLWRhdGEtc2VydmVyCi12ZXJzaW9uPTMuMzYuMQotcmV2aXNpb249MgordmVyc2lvbj0z LjM3LjkwCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQotYnVpbGRfaGVscGVyPWdpcgor YnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9VT0E9T0ZG Ci0gJCh2b3B0X2lmIGdpciAnLURFTkFCTEVfSU5UUk9TUEVDVElPTj1PTiAtREVOQUJMRV9WQUxB X0JJTkRJTkdTPU9OJyAnLURFTkFCTEVfV0VBVEhFUj1PRkYnKSIKLWhvc3RtYWtlZGVwZW5kcz0i ZmxleCBnbGliLWRldmVsIGdwZXJmIGludGx0b29sIHBrZy1jb25maWcgbGliZ2xpYi1kZXZlbAot ICQodm9wdF9pZiBnaXIgJ2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgotbWFrZWRlcGVuZHM9ImJv b3N0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdkYXRhLWRldmVsICQodm9wdF9pZiBnaXIg bGliZ3dlYXRoZXItZGV2ZWwpCi0gbGliaWNhbC1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbWl0LWty YjUtZGV2ZWwgJCh2b3B0X2lmIGdpciAndmFsYS1kZXZlbCcpIHdlYmtpdDJndGstZGV2ZWwiCi1k ZXBlbmRzPSIkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVyKSBsaWJzb3VwLWdub21lIgorICQodm9w dF9pZiBnaXIgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFMQV9CSU5ESU5H Uz1PTicpIgoraG9zdG1ha2VkZXBlbmRzPSJmbGV4IGdsaWItZGV2ZWwgZ3BlcmYgaW50bHRvb2wg cGtnLWNvbmZpZyBsaWJnbGliLWRldmVsIgorbWFrZWRlcGVuZHM9ImJvb3N0LWRldmVsIGxpYmNh bmJlcnJhLWRldmVsIGxpYmdkYXRhLWRldmVsIGxpYmljYWwtZGV2ZWwKKyBsaWJzZWNyZXQtZGV2 ZWwgbWl0LWtyYjUtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJnd2VhdGhlci1kZXZlbAorICQo dm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCitkZXBlbmRzPSJsaWJnd2VhdGhlciBsaWJzb3VwLWdu b21lIgogc2hvcnRfZGVzYz0iQ2VudHJhbGl6ZWQgYWNjZXNzIHRvIGFwcG9pbnRtZW50cyBhbmQg Y29udGFjdHMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iTEdQTC0yLjEtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvRXZvbHV0aW9uIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29u dGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWRhdGEtc2VydmVyL2dub21lLTMtMzYvTkVXUyIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTEzMTIyYjJlZGRkYjk4MzA2MjA3ZDJhMzVk NWNjYWUyNWE5MDcwMjc2OWNhMGEwYjUxNjUzYjU5ODQ5ODY3OTYKK2NoZWNrc3VtPTZjZDcxZWRm NDJlNjk5YWI4ZThiZDQ5MDhhZWIxMzEyMTBiNTk0Y2U5NjFiZGU2OGZkMjczMzNiMmFlZDQ0MzAK IAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJ YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiBmaQogCisjIHByb2JsZW1hdGljCitkb19jaGVj aygpIHsKKwk6Cit9CisKICMgY21ha2UgcGVyZm9tcm1zIDIgY2hlY2tzIHVzaW5nIGJpbmFyeSBy dW50aW1lLCBhYm91dCBpY29udiBhbmQgc2ZydGltZS4KICMgbXVzbCAoMS4xLjE2KSBkb2VzIG5v dCBzdXBwb3J0ICJJU08tMjAyMi1KUCIgZW5jb2RpbmcgKHNlZSBpdHMgcm9hZG1hcCksCiAjIGFs dGhvdWdoIGV2b2x1dGlvbi1kYXRhLXNlcnZlciBpcyBmaW5lIHdpdGggbXVzbC4KCkZyb20gMmI3 YjEwMTQyYjQyZjQ3MWI5ZGQyNWE4NWIxZDQxMjM0NWUzMDlhNiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE0LzgzXSBnbm9t ZS1jb250cm9sLWNlbnRlcjogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBzcmNwa2dzL2dub21lLWNv bnRyb2wtY2VudGVyL3RlbXBsYXRlIHwgMjIgKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY29u dHJvbC1jZW50ZXIvdGVtcGxhdGUKaW5kZXggMGUyNzg3ODk4YWUuLjVlNzY3ZDNlMWUzIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjIgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dub21lLWNvbnRyb2wtY2VudGVyJwogcGtnbmFtZT1nbm9tZS1jb250 cm9sLWNlbnRlcgotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zNy4zCiByZXZpc2lvbj0xCiBi 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 Y2hlY2tzdW09N2U2NDU1ZDY2MzczNmM5NzMwMTllOWQwYzIyMDA0ZDEwY2UzNGRhZmRkN2Q2OWJl MjM5MDE3YmY4MTI4MzZiOQogCiBidWlsZF9vcHRpb25zPSJjaGVlc2UiCitidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImNoZWVzZSIKKwogZGVzY19vcHRpb25fY2hlZXNlPSJBZGQgc3VwcG9ydCBmb3Ig YWRkaW5nIHVzZXIgYWNjb3VudCBpbWFnZXMgd2l0aCB5b3VyIHdlYmNhbSIKLWlmIFsgLXogIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgotCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBjaGVlc2UiCi1m aQorCisjIG5lZWRzIFgxMSBhbmQgcmVxdWlyZXMgYWx0ZXJlZCBmaWxlc3lzdGVtCitkb19jaGVj aygpIHsKKwk6Cit9CiAKIGdub21lLWNvbnRyb2wtY2VudGVyLWRldmVsX3BhY2thZ2UoKSB7CiAJ c2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoKRnJvbSA3ZDA1YWIzYTg5NmVjNDRj NTQyYTc2YzAwMzU1YWMyZjAwZGU0Zjg2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvODNdIHRyYWNrZXI6IHVwZGF0ZSB0 byAyLjMuNAoKLS0tCiBzcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUgfCA5ICsrKysrLS0tLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUgYi9zcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUKaW5k ZXggMzcwNzRjYjM0OGQuLjE5MzM4ZGI0NWUxIDEwMDY0NAotLS0gYS9zcmNwa2dzL3RyYWNrZXIv dGVtcGxhdGUKKysrIGIvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIzIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0cmFja2VyJwogcGtnbmFtZT10cmFja2VyCi12ZXJzaW9u PTIuMy4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuMy40CityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURkb2NzPWZhbHNl IC1EZnRzPXRydWUgLURmdW5jdGlvbmFsX3Rlc3RzPWZhbHNlCiAgLURqb3VybmFsPXRydWUgLURt YW49dHJ1ZSAtRG5ldHdvcmtfbWFuYWdlcj1lbmFibGVkIC1Ec3RlbW1lcj1kaXNhYmxlZAogIC1E c3lzdGVtZF91c2VyX3NlcnZpY2VzPW5vIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGds aWItZGV2ZWwgdmFsYSIKK2hvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGdsaWIt ZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJkYnVzLWRldmVsIGxpYmdsaWItZGV2ZWwgaWN1LWRl dmVsIGpzb24tZ2xpYi1kZXZlbAogIGxpYnNvdXAtZGV2ZWwgbGlieG1sMi1kZXZlbCBzcWxpdGUt ZGV2ZWwgTmV0d29ya01hbmFnZXItZGV2ZWwKICBiYXNoLWNvbXBsZXRpb24iCitjaGVja2RlcGVu ZHM9InRhciIKIHNob3J0X2Rlc2M9IlBlcnNvbmFsIHNlYXJjaCB0b29sIGFuZCBzdG9yYWdlIHN5 c3RlbSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vbGl2ZS5nbm9tZS5vcmcv VHJhY2tlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS90cmFja2VyLyR7dmVyc2lvbiUuKn0v dHJhY2tlci0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI2NzQ4NzI2ZTQ2NWFkMmY0ZDk5 MTU2MDYzNGIxZmQwZGY4ODQxZjNkOTgxYjNiODM3YzQxNjJhYmVkZjA4YTEKK2NoZWNrc3VtPTU3 Nzk1MjI0NGFiOTc3Yzc4YjBiODhlMmY2M2M0MTk3ZWFiYTE2ZTRkNjZiZmY2OTJiN2Y1ODk5M2Uw NjUxNmQKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0i IGRidXMiCgpGcm9tIGI4NzI0ZDk1ZTg4MzlmYTk2MDlmMzhmZTllMDAxZTM5NDFmNDgwZWUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxNi84M10gZm9sa3M6IHVwZGF0ZSB0byAwLjE0LjAKCi0tLQogY29tbW9uL3NobGlicyAg ICAgICAgICB8ICA3ICsrKystLS0KIHNyY3BrZ3MvZm9sa3MvdGVtcGxhdGUgfCAyOCArKysrKysr KysrKysrKysrKystLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyks IDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hs aWJzCmluZGV4IGJjNTE0ZTEzNjY5Li5hNzE2YzIwMjY4MiAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC04MzMsOSArODMzLDEwIEBAIGxpYmRtci5zby4w LjEgZGVlcGluLW1vdmllLXJlYm9ybi0zLjIuNV8xCiBsaWJnanMuc28uMCBnanMtMS42NS4yXzEK IGxpYnRlbGVwYXRoeS1nbGliLnNvLjAgdGVsZXBhdGh5LWdsaWItMC4xNS41XzEKIGxpYmFjY291 bnRzc2VydmljZS5zby4wIGFjY291bnRzc2VydmljZS0wLjYuNF8xCi1saWJmb2xrcy5zby4yNSBm b2xrcy0wLjkuNV8xCi1saWJmb2xrcy10ZWxlcGF0aHkuc28uMjUgZm9sa3MtMC45LjVfMQotbGli Zm9sa3MtZWRzLnNvLjI1IGZvbGtzLTAuOS41XzEKK2xpYmZvbGtzLnNvLjI1IGZvbGtzLTAuMTQu MF8xCitsaWJmb2xrcy1kdW1teS5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtdGVsZXBh dGh5LnNvLjI1IGZvbGtzLTAuMTQuMF8xCitsaWJmb2xrcy1lZHMuc28uMjUgZm9sa3MtMC4xNC4w XzEKIGxpYm5pY2Uuc28uMTAgbGlibmljZS0wLjEuMF8xCiBsaWJndXBucC1pZ2QtMS4wLnNvLjQg Z3VwbnAtaWdkLTAuMi4wXzEKIGxpYnRlbGVwYXRoeS1sb2dnZXIuc28uMyB0ZWxlcGF0aHktbG9n Z2VyLTAuNi4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUgYi9zcmNwa2dz L2ZvbGtzL3RlbXBsYXRlCmluZGV4IDMzMTBjNTRmYWRkLi5iMDc2Yjk0YmVhMiAxMDA2NDQKLS0t IGEvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZvbGtzL3RlbXBsYXRlCkBA IC0xLDIxICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdmb2xrcycKIHBrZ25hbWU9Zm9s a3MKLXZlcnNpb249MC4xMy4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTAuMTQuMAorcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KLWJ1aWxkX2hlbHBlcj1naXIKLWNvbmZpZ3VyZV9hcmdzPSIt RGJfbHRvPWZhbHNlIC1EbGlic29jaWFsd2ViLWJhY2tlbmQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWcgaW50bHRvb2wgZ2xpYi1kZXZlbCB2YWxhIHB5dGhvbiBnb2JqZWN0LWlu dHJvc3BlY3Rpb24KLSBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwiCitidWlsZF9oZWxwZXI9 ImdpciBxZW11IgorY29uZmlndXJlX2FyZ3M9Ii1EYl9sdG89ZmFsc2UiCitob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWcgaW50bHRvb2wgZ2xpYi1kZXZlbCBweXRob24zIHB5dGhvbjMtZGJ1c21v Y2sKKyBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1h a2VkZXBlbmRzPSJyZWFkbGluZS1kZXZlbCB0ZWxlcGF0aHktZ2xpYi1kZXZlbCB6ZWl0Z2Vpc3Qt ZGV2ZWwKLSBsaWJnZWUwOC1kZXZlbCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgdHJhY2tl ci1kZXZlbCIKKyBsaWJnZWUwOC1kZXZlbCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgdHJh Y2tlci1kZXZlbAorICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBkZXBlbmRzPSJ6ZWl0Z2Vp c3QiCiBzaG9ydF9kZXNjPSJHT2JqZWN0IExpYnJhcnkgdG8gYWdncmVnYXRlIHBlb3BsZSBpbnRv IG1ldGFjb250YWN0cyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL1Byb2plY3RzL0ZvbGtzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09M2RmMWM2NjNiODJmZTIxMWFlYWQyYjMxY2FlMWZjNDFkMTI0ZTg1NDM2Mzc1NzYyZjY3 NDVjNDViYTQ2YWE1ZAorY2hlY2tzdW09ZDZlNzc4ZGE2MzdkM2IzM2ZkOWE2YjQ1MTE1ZTgxNTdk ODg2ODIxMWRjMDhiOTQzZDEwNzViNWViNzI4MmJiOQorCitidWlsZF9vcHRpb25zPSJnaXIiCitp ZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKK2ZpCiAKIGZvbGtzLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5k c30gJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgpAQCAtMjQsNyArMzAsOSBA QCBmb2xrcy1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1 c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgotCQl2bW92ZSB1c3Ivc2hh cmUvdmFsYQotCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAorCQlpZiBbICIkYnVpbGRfb3B0aW9u X2dpciIgXTsgdGhlbgorCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKKwkJCXZtb3ZlIHVzci9z aGFyZS92YWxhCisJCWZpCiAJfQogfQoKRnJvbSA5OGU1ZmY0NjZlOTBlYWY2YWUyYjI5YTY1ZWQ5 NmFiOTkxYzM5ZDllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTcvODNdIGRjb25mLWVkaXRvcjogdXBkYXRlIHRvIDMuMzYu NAoKLS0tCiBzcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxh dGUKaW5kZXggZGUyNTBiYmM4YTkuLjg4OWU3OTRlNmIyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Rj b25mLWVkaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZQpA QCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZGNvbmYtZWRpdG9yJwogcGtn bmFtZT1kY29uZi1lZGl0b3IKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzYuNAogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZ2xp Yi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKK2hvc3RtYWtlZGVwZW5kcz0iZG9jYm9v ay14c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSBnZXR0ZXh0IgogbWFrZWRl cGVuZHM9ImRjb25mLWRldmVsIGd0ayszLWRldmVsIgogc2hvcnRfZGVzYz0iTG93LWxldmVsIGNv bmZpZ3VyYXRpb24gc3lzdGVtIC0gR1RLKyBlZGl0b3IiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL2Rjb25mIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzJlZWQwNTY3MDkxN2Y4ZTQzMjAwZTQwY2NjNmJlNjAy MTFmMGE4N2IwMTc1MzRlYWMxZmQ2YzcxNzNhMDY5MworY2hlY2tzdW09M2VjMzA5YmJjOTIwYjE1 YzJhNTY4M2UxYTQ5NjJhYmY2OTExYTg3NjJjOGExMTNjNGQ3OTRmN2UwZWE1M2U3OQoKRnJvbSA2 YWRjY2I5YTVlNDM5YTE4Y2JhZDcxZDZiNjlmNDM3ZTQ4NjcxOWI3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTgvODNdIGRl dmhlbHA6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZGV2aGVscC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZGV2aGVscC90 ZW1wbGF0ZQppbmRleCBhMWMyZGNiYjc2Mi4uOWM1YzQwNzYzYzkgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZGV2aGVscC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKQEAgLTEs NiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdkZXZoZWxwJwogcGtnbmFtZT1kZXZoZWxw Ci12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjEKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBl cj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAgLTExLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0RldmhlbHAiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00Y2Y4ZWM5MzAyYmM0YTc5ZTAxYWM1M2Jk OWM4Yjk1YTU5NmY3MWYzNTM1MWY0OGI2MzI2MzIyN2YwOWE4YTNkCitjaGVja3N1bT04MWZmYmI5 ZTEzN2NkMDAzMWE0ZjQzMDRhMTI0NGQwYjQzMjhlNGE3YzAwZDc0OWE4ZmMwZTJiYmFhMzAwNWY5 CiAKIGRldmhlbHAtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1l bnQgZmlsZXMiCgpGcm9tIGZhYzI4ODA3Y2RjODhkZjkzYjZjZmJhN2Y4OWZhYzc0ZTc3NmM4ZTcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxOS84M10gZ25vbWUtc2hlbGw6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3Br Z3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUgfCAxMSArKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXNoZWxsL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQppbmRleCA5 NmM1YjgwYTE5NC4uMGI0ZjcwYjg4NTUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQpAQCAtMSwxMiArMSwx MiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2hlbGwnCiBwa2duYW1lPWdub21lLXNo ZWxsCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPWdpcgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZD1m YWxzZSIKIGhvc3RtYWtlZGVwZW5kcz0iZ29iamVjdC1pbnRyb3NwZWN0aW9uIGd0ay1kb2MgbGli eHNsdCBwa2ctY29uZmlnIHB5dGhvbjMgc2Fzc2MKLSBhc2NpaWRvYyBwZXJsIGdsaWItZGV2ZWwg bXV0dGVyLWRldmVsIgorIGFzY2lpZG9jIHBlcmwgZ2xpYi1kZXZlbCBtdXR0ZXItZGV2ZWwgZ2V0 dGV4dCBnanMtZGV2ZWwiCiBtYWtlZGVwZW5kcz0iYXQtc3BpMi1hdGsgY2FyaWJvdS1kZXZlbCBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgZm9sa3MtZGV2ZWwKICBnY3ItZGV2ZWwgZ2pzLWRl dmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBnbm9tZS1jb250cm9sLWNlbnRlci1kZXZlbCBnbm9t ZS1kZXNrdG9wLWRldmVsCiAgZ25vbWUtbWVudXMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy1kZXZlbCBnc3RyZWFtZXIxLWRldmVsIGd0ayszLWRldmVsCkBAIC0yMSw0ICsyMSw5IEBA IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9Qcm9qZWN0cy9Hbm9tZVNoZWxsIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1 c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtc2hlbGwvZ25vbWUtMy0zMC9ORVdTIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Y2NkODY1NTliOWM4OTdjMjE5ZDJkMmViZmRiODQx M2VmYTRjMWJlZTg0NjQyN2M3NTBjYjhhMzAxYjNmNmQxZQorY2hlY2tzdW09MDY5ZDExMTU2YTYx ODY1NTY0YWM3YzA2NDliYzYwZDE4NmRkODM4YmEwZjE3NDZkMzUzYWJhMmIxOGJiNTI4OQorCisj IG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KCkZyb20gYTFlYTZkNjJlNWNkMjYwNmUzNjIz MWY1MjQxNzhhMWIxNWE4MTBjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzgzXSBnZG06IHVwZGF0ZSB0byAzLjM3Ljkw CgotLS0KIHNyY3BrZ3MvZ2RtL3RlbXBsYXRlIHwgMzEgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlIGIvc3JjcGtncy9nZG0vdGVtcGxh dGUKaW5kZXggYmI1YjQ4NjkyZDQuLmQ5NDk5YjMzNjE3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dk bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dkbS90ZW1wbGF0ZQpAQCAtMSwyNyArMSwyOCBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2RtJwogcGtnbmFtZT1nZG0KLXZlcnNpb249My4zNC4xCit2 ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJv c3BlY3Rpb24pCi0gLS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGljIC0t d2l0aC1kZWZhdWx0LXBhbS1jb25maWc9YXJjaAotIC0td2l0aC1hdC1zcGktcmVnaXN0cnlkLWRp cmVjdG9yeT0vdXNyL2xpYmV4ZWMgLS13aXRob3V0LXRjcC13cmFwcGVycwotIC0td2l0aC1zY3Jl ZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3JlZXRlciAtLXNiaW5kaXI9L3Vzci9iaW4gLS13aXRo b3V0LXBseW1vdXRoCi0gLS13aXRoLXhhdXRoLWRpcj0vcnVuL2dkbSAtLXdpdGgtcGlkLWZpbGU9 L3J1bi9nZG0vZ2RtLnBpZAotIC0tZGlzYWJsZS1zeXN0ZW1kLWpvdXJuYWwgLS13aXRoLWluaXRp YWwtdnQ9NyAtLWVuYWJsZS13YXlsYW5kLXN1cHBvcnQiCitidWlsZF9zdHlsZT1tZXNvbgorY29u ZmlndXJlX2FyZ3M9IgorIC1EZGVmYXVsdC1wYW0tY29uZmlnPWFyY2ggLURhdC1zcGktcmVnaXN0 cnlkLWRpcj0vdXNyL2xpYmV4ZWMKKyAtRHRjcC13cmFwcGVycz1mYWxzZSAtRHNjcmVlbnNob3Qt ZGlyPS92YXIvbGliL2dkbS9ncmVldGVyCisgLURwbHltb3V0aD1kaXNhYmxlZCAtRHhhdXRoLWRp cj0vcnVuL2dkbSAtRHBpZC1maWxlPS9ydW4vZ2RtL2dkbS5waWQKKyAtRHN5c3RlbWQtam91cm5h bD1mYWxzZSAtRGluaXRpYWwtdnQ9NyAtRHdheWxhbmQtc3VwcG9ydD10cnVlCisgLURzZWxpbnV4 PWRpc2FibGVkIC1EbGliYXVkaXQ9ZGlzYWJsZWQKKyAtRHN5c3RlbWRzeXN0ZW11bml0ZGlyPS90 bXAgLURzeXN0ZW1kdXNlcnVuaXRkaXI9L3RtcCIKIGhvc3RtYWtlZGVwZW5kcz0iZGNvbmYgZ2V0 dGV4dCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iYWNjb3VudHNzZXJ2aWNlLWRl dmVsIGVsb2dpbmQtZGV2ZWwgZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsCiAgaXNvLWNvZGVzIGxp YlNNLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIG5zcy1kZXZlbCBwYW0tZGV2ZWwgdXBvd2VyLWRl dmVsIgotZGVwZW5kcz0iZ25vbWUtc2V0dGluZ3MtZGFlbW9uIGdub21lLXNoZWxsIHhvcmctc2Vy dmVyIHhvcmctc2VydmVyLXh3YXlsYW5kCi0geHJkYiIKK2RlcGVuZHM9Imdub21lLXNldHRpbmdz LWRhZW1vbiBnbm9tZS1zaGVsbCBnbm9tZS1zZXNzaW9uIGdub21lLXRoZW1lcy1leHRyYQorIGdz ZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgeG9yZy1zZXJ2ZXIgeG9yZy1zZXJ2ZXIteHdheWxhbmQg eHJkYiIKIGNoZWNrZGVwZW5kcz0iY2hlY2stZGV2ZWwiCiBzaG9ydF9kZXNjPSJHTk9NRSBEaXNw bGF5IE1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL1Byb2plY3RzL0dETSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PWU4NWRmNjU3YWE4ZDkzNjFhZjRmYjEyMjAxNGQ4ZjEyM2E5M2JmZTQ1YTc2NjJmYmEyYjM3M2Q4 MzlkYmQ4ZDMKK2NoZWNrc3VtPTUzYzI5MTFlOGI3Mjk4NjQyZjQxYmJkNTcxOWYzODVlNGZmNzM0 NDA2MTI3YTAwMmIzZjE1NzMyMTZhODRlMTIKIAogY29uZl9maWxlcz0iCiAJL2V0Yy9nZG0vY3Vz dG9tLmNvbmYKQEAgLTQzLDEwICs0NCwxNiBAQCBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K IAlob3N0bWFrZWRlcGVuZHMrPSIgZ2xpYi1kZXZlbCBwYW0tZGV2ZWwiCiBmaQogCitwcmVfY29u ZmlndXJlKCkgeworCSMgb25seSB1c2VkIHRvIGd1ZXNzIHVuaXQgZmlsZSBpbnN0YWxsYXRpb24g cGF0aAorCXZzZWQgLWkgJ3MsXnN5c3RlbWRfZGVwLCNzeXN0ZW1kX2RlcCwnIG1lc29uLmJ1aWxk Cit9CisKIHBvc3RfaW5zdGFsbCgpIHsKIAl2aW5zdGFsbCAkRklMRVNESVIvWHNlc3Npb24gNzU1 IGV0Yy9nZG0KIAogCXZzZWQgLWkgInMvcGFtX3N5c3RlbWRcLnNvL3BhbV9lbG9naW5kLnNvLyIg JERFU1RESVIvZXRjL3BhbS5kLyoKKwlybSAtcmYgJHtERVNURElSfS90bXAKIAogCSMgcnVuaXQg c2VydmljZQogCXZzdiBnZG0KQEAgLTYwLDcgKzY3LDcgQEAgbGliZ2RtX3BhY2thZ2UoKSB7CiB9 CiAKIGdkbS1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdkbT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlkZXBlbmRzPSJsaWJnZG0+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZWxv Z2luZC1kZXZlbCIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2lu c3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCgpGcm9tIGE1NzQ3YjAyZTU0MDViYzViYzJm Zjc1OWY2MGZkMTVmNDM5MDk1OTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMS84M10gZ25vbWUtc2Vzc2lvbjogdXBkYXRl IHRvIDMuMzcuMAoKLS0tCiBzcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1k LWRlcC5wYXRjaCB8IDE0ICsrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNlc3Npb24vdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrKystLS0KIDIgZmlsZXMgY2hhbmdl ZCwgMjEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5wYXRjaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNo IGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlNTVhMGY3OTg3Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAu cGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQK K0BAIC0xMzAsMTAgKzEzMCw3IEBAIGlmIGVuYWJsZV9zeXN0ZW1kIG9yIGVuYWJsZV9jb25zb2xl a2l0CisgCisgICAjIENoZWNrIGZvciBzeXN0ZW1kCisgICBpZiBlbmFibGVfc3lzdGVtZAorLSAg ICBzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ3N5c3RlbWQnLCB2ZXJzaW9uOiAnPj0gMjQyJywg cmVxdWlyZWQ6IHRydWUpCistICAgIHN5c3RlbWRfdXNlcnVuaXRkaXIgPSBzeXN0ZW1kX2RlcC5n ZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCdzeXN0ZW1kdXNlcnVuaXRkaXInLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVf dmFyaWFibGU6IFsncHJlZml4JywgcHJlZml4XSkKKy0KKysgICAgc3lzdGVtZF91c2VydW5pdGRp ciA9ICcvdG1wJworICAgICBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnN5c3RlbWQn LCB2ZXJzaW9uOiAnPj0gMjA5JywgcmVxdWlyZWQ6IGZhbHNlKQorICAgICBzZXNzaW9uX2Jpbl9k ZXBzICs9IGxpYnN5c3RlbWRfZGVwCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNlc3Np b24vdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUKaW5kZXggNDQ0NGYx NjJiZjEuLjA3Y2E3NjI2MjI4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCkBAIC0xLDkgKzEsOSBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2Vzc2lvbicKIHBrZ25hbWU9Z25vbWUtc2Vz c2lvbgotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zNy4wCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgotY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIgorY29u ZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIC1Ec3lzdGVtZF9zZXNzaW9uPWRp c2FibGUiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyB4 bWx0byIKIG1ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ3Rr KzMtZGV2ZWwganNvbi1nbGliLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJJQ0UtZGV2ZWwgbGli U00tZGV2ZWwgbGliWHRzdC1kZXZlbCBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbApAQCAtMTUs NCArMTUsOCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNlc3Npb24iCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kNzgwMWZlMmQ1YTc1MWIxOWNiNTgwODE3NzEzMTZh NzZhYWJkNWM1NTBjZDU4ZDRlNGM2YTVhNGVkMzU2NjYwCitjaGVja3N1bT1jYjE0MGYyYjhlZTc2 OGZmOGIzZGNlM2RkYjQ3OWU3MWU5NTEzOGU5MDRjODM0M2EzOGM2MGEyZDFlODVmOThmCisKK3Bv c3RfaW5zdGFsbCgpIHsKKwlybSAtcmYgJHtERVNURElSfS90bXAKK30KCkZyb20gYjc5YmNmY2Zj OWNmMDBlNjQ2ODZiNDQxMzJhODQxYzM0ZTEyNjdjYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMg QXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDIyLzgzXSBnbm9tZS1vbmxp bmUtYWNjb3VudHM6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtb25saW5l LWFjY291bnRzL3RlbXBsYXRlIHwgMTIgKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt b25saW5lLWFjY291bnRzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMv dGVtcGxhdGUKaW5kZXggZDZhMjJkOWRhNzIuLjI5OTgwZDQzNDI0IDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW9u bGluZS1hY2NvdW50cy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLW9ubGluZS1hY2NvdW50cycKIHBrZ25hbWU9Z25vbWUtb25saW5lLWFjY291bnRz Ci12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTExLDcgKzExLDcgQEAgY29u ZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCiAgLS1lbmFibGUt b3duY2xvdWQgLS1lbmFibGUtd2luZG93cy1saXZlIC0tZW5hYmxlLXBvY2tldAogIC0tZW5hYmxl LWxhc3RmbSAtLWVuYWJsZS1tZWRpYS1zZXJ2ZXIiCiBob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2st eHNsIGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1jb21tb24KLSBsaWJ4c2x0IHBrZy1j b25maWcgJCh2b3B0X2lmIHZhbGEgdmFsYSkiCisgbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9p ZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ2NyLWRldmVsIGd0ayszLWRldmVsIGpzb24tZ2xp Yi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgbGlic2VjcmV0LWRldmVsCiAgbGlic291cC1kZXZlbCBt aXQta3JiNS1kZXZlbCByZXN0LWRldmVsIHRlbGVwYXRoeS1nbGliLWRldmVsIHdlYmtpdDJndGst ZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUiCkBAIC0yMCwxMCArMjAsMTAgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJv amVjdHMvR25vbWVPbmxpbmVBY2NvdW50cyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTFjOGY2Mjk5MDgzM2NhNDExODhkYmI4MGM1ZTk5ZDk5YjU3YTYyNjA4Y2E2NzViYmNkMzdi YzIyNDQ3NDJmMmUKK2NoZWNrc3VtPTlmNjk4MmM4OTZlNjIzNWEyZTg1YjhhNDk3YzdiZjYzYTRh Mjg4YjU2NzhkYjQwZGMzNzM1MTVlZmJlZGIxYmIKIAotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEi Ci1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgor YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZl bF9wYWNrYWdlKCkgewogCWRlcGVuZHM9Imd0ayszLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKQEAgLTM1LDggKzM1LDYgQEAgZ25vbWUtb25saW5lLWFjY291bnRz LWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvZ29hLTEuMAogCQlpZiBbICIkYnVp bGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkK LQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUv dmFsYQogCQlmaQogCX0KCkZyb20gNTEzNTc3OTc0NTQ2MGRjMThhYTJiZDU0YTY4OTllNWRiMzQx M2QxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDIzLzgzXSBnbm9tZS1pbml0aWFrLXNldHVwOiB1cGRhdGUgdG8gMy4zNy45 MQoKLS0tCiBzcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUgfCAxMSArKysrKyst LS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUgYi9zcmNwa2dz L2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUKaW5kZXggYWJhNWEwOTRjMjguLjA2YzlhMDg1 OWRkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlCkBAIC0xLDEwICsxLDExIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1pbml0aWFsLXNldHVwJwogcGtnbmFtZT1nbm9t ZS1pbml0aWFsLXNldHVwCi12ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249MgordmVyc2lvbj0zLjM3 LjkxCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotY29uZmlndXJlX2FyZ3M9Ii1Ec29m dHdhcmUtc291cmNlcz1kaXNhYmxlZCAtRHN5c3RlbWQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKK2NvbmZpZ3VyZV9hcmdzPSItRHNvZnR3YXJlLXNvdXJj ZXM9ZGlzYWJsZWQgLURwYXJlbnRhbF9jb250cm9scz1kaXNhYmxlZAorIC1Ec3lzdGVtZD1mYWxz ZSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIGdldHRleHQiCiBtYWtl ZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWNjb3VudHNzZXJ2aWNlLWRldmVsIGxpYmds aWItZGV2ZWwKICBnbm9tZS1kZXNrdG9wLWRldmVsIGNoZWVzZS1kZXZlbCBsaWJnd2VhdGhlci1k ZXZlbCB3ZWJraXQyZ3RrLWRldmVsCiAgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsIGdkbS1k ZXZlbCBsaWJwd3F1YWxpdHktZGV2ZWwKQEAgLTE3LDQgKzE4LDQgQEAgbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9EZXNpZ24vT1MvSW5pdGlhbFNl dHVwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTcxZjEwZWY2YjYzMWNkOTJm ZmRlNzc0ZTQxMzBiMzJiMjQ5NGI0ZGY1ZWYyODgzNzVkOGIxOTU3ZWVhYmZhMQorY2hlY2tzdW09 ZDRhNzEwZDUxY2Q2ODYyMDg3OTkxYTVlNTVkMDFiYmY4Yzk4Y2Y5NzlkNmE5ODhiZGQ3YjU1MGRk OTViNmU4OAoKRnJvbSBmZDQ3ZDI2NTNjMTk1MDExNzE2MmMyOTUxMjM4ZWE1YjM0Y2ExOTg4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMjQvODNdIHhkZy1kZXNrdG9wLXBvcnRhbC1ndGs6IGJ1bXAKCi0tLQogc3JjcGtncy94 ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy94ZGctZGVz a3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlIGIvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3Rr L3RlbXBsYXRlCmluZGV4IGRlZTBlNDYzMzg2Li41NThjNzVmNTM5ZCAxMDA2NDQKLS0tIGEvc3Jj cGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveGRnLWRl c2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsnCiBwa2duYW1lPXhkZy1kZXNrdG9wLXBvcnRh bC1ndGsKIHZlcnNpb249MS42LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBsaWJ4c2x0IGdsaWIt ZGV2ZWwgeGRnLWRlc2t0b3AtcG9ydGFsIGdldHRleHQiCiBtYWtlZGVwZW5kcz0iZmxhdHBhay1k ZXZlbCBndGsrMy1kZXZlbCBsaWJ4c2x0LWRldmVsIGxpYmdsaWItZGV2ZWwKCkZyb20gYmJhNTYz NWRlMjlkYjllOTUxMGVmMWU0ZGFkNTIxYWI5MGU2ODQ0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI1LzgzXSBnbm9tZS1z aGVsbC1leHRlbnNpb25zOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLXNo ZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNo ZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMv dGVtcGxhdGUKaW5kZXggOTcxNjhiNDBmNjYuLmYyZTY3OGViYmNlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1z aGVsbC1leHRlbnNpb25zL3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1zaGVsbC1leHRlbnNpb25zJwogcGtnbmFtZT1nbm9tZS1zaGVsbC1leHRl bnNpb25zCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBhcmNo cz1ub2FyY2gKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURleHRlbnNpb25f c2V0PWFsbCIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKK2hvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBnZXR0ZXh0IgogZGVwZW5kcz0iZ25vbWUtc2hlbGw+PSR7dmVyc2lvbn0gbmF1 dGlsdXMgdW56aXAiCiBzaG9ydF9kZXNjPSJFeHRlbnNpb25zIGZvciBHTk9NRSBzaGVsbCwgaW5j bHVkaW5nIGNsYXNzaWMgbW9kZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVTaGVsbC9FeHRlbnNpb25zIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjBhZDUxMTQzYjFiZjQwZGVmNGExMGY4ZmQwYWIw ZmZiNDcyMTgzMDQ4MDA3OTRlNjJjYWRkMjlkMGFjYzc1YgorY2hlY2tzdW09MzZmMmM1ZDkwNmUw N2QzZjFkYzk4YmViNDRmNWM2YmRmNDgzMTRmY2UzNjljYzc5NTJjOGIxOTc4MDA0Nzg5OQoKRnJv bSBhMzRjYmZhMWZiZTYwNWIyYzhkY2I5ZGU3ZTMzOTU5NjU3YmMyZTc2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjYvODNd IG5hdXRpbHVzOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL25hdXRpbHVzL3RlbXBs YXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv bmF1dGlsdXMvdGVtcGxhdGUKaW5kZXggNTM3YTg1MTk3M2YuLjBlNmM0MzEzODg0IDEwMDY0NAot LS0gYS9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbmF1dGlsdXMvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICduYXV0aWx1cycKIHBr Z25hbWU9bmF1dGlsdXMKLXZlcnNpb249My4zNi4xLjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtMTEsMTMgKzEx LDEzIEBAIG1ha2VkZXBlbmRzPSJleGVtcGktZGV2ZWwgZ25vbWUtYXV0b2FyLWRldmVsIGdub21l LWRlc2t0b3AtZGV2ZWwgZ3RrKzMtZGV2ZWwKICBsaWJYMTEtZGV2ZWwgbGlieG1sMi1kZXZlbCB0 cmFja2VyLWRldmVsIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1m aWxlLXV0aWxzIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgaGljb2xvci1pY29uLXRoZW1lCiAg dHJhY2tlci1taW5lcnMgdHJhY2tlciIKLWNoZWNrZGVwZW5kcz0idHJhY2tlciIKK2NoZWNrZGVw ZW5kcz0idHJhY2tlciB0cmFja2VyLW1pbmVycyIKIHNob3J0X2Rlc2M9IkdOT01FIGZpbGUgbWFu YWdlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL05hdXRpbHVzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uOjo0fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09ZjkyNTJmNTA4MjExZDlmMzY4YTQ5ZGI2OTc4OTBmODk1ZDA4MGYwOTU5MGFlY2Fm MzM4MDNhNTE5ZGVmN2JkZQorY2hlY2tzdW09NmY3MDE1MzA1NmRhY2VhZjk0ZDVjYzljNjBhOGFh OTgyZGQ2MTkzYjE0YTkwNTYwZmZhNzQwYzY2ODYxNTUyNQogCiBidWlsZF9vcHRpb25zPSJnaXIi CiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gOTA5NzMxMGM5M2QwMDRkNDNmMDE4 MWE4NzlhZjFiMzBiYTkyZDYzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI3LzgzXSBnbm9tZS1tYXBzOiB1cGRhdGUgdG8g My4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbWFwcy90 ZW1wbGF0ZQppbmRleCAwMzAwYmU2MDU5OS4uOWE5ZTk4ZjUwMDIgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtbWFwcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUK QEAgLTEsMTYgKzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLW1hcHMnCiBwa2du YW1lPWdub21lLW1hcHMKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ29iamVj dC1pbnRyb3NwZWN0aW9uIGludGx0b29sIHBrZy1jb25maWcgQXBwU3RyZWFtIgorYnVpbGRfaGVs cGVyPSJnaXIiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZp ZyBBcHBTdHJlYW0iCiBtYWtlZGVwZW5kcz0iZm9sa3MtZGV2ZWwgZ2VvY2x1ZTItZGV2ZWwgZ2Vv Y29kZS1nbGliLWRldmVsIGdqcy1kZXZlbAotIGdub21lLWRlc2t0b3AtZGV2ZWwgbGliY2hhbXBs YWluLWRldmVsIHJlc3QtZGV2ZWwiCisgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJjaGFtcGxhaW4t ZGV2ZWwgcmVzdC1kZXZlbCBsaWJoYW5keTEtZGV2ZWwiCiBkZXBlbmRzPSJnZW9jbHVlMiBnZmJn cmFwaCBnanMiCiBzaG9ydF9kZXNjPSJHTk9NRSBtYXBzIGFwcGxpY2F0aW9uIgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL01hcHMiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xYTMyZWZkOTZhZDg5OGY3N2E2MzZkMmQw NDYzZDc1NzAwOWI0YjgxMjI1OWM4OWZmZGNiOTFkNmFmYzA1MmY5Ci1ub2Nyb3NzPSJldm9sdXRp b24tZGF0YXNlcnZlciBjcm9zcyBnaXIgZG9lc24ndCB3b3JrIgorY2hlY2tzdW09N2MxMDEwZjBh Zjg5YzliZWRjODNjZjM0ZmU0MmU0YjY0NGRmYTAwZGQ3ODNlZTQyNDdmMDY2ZTMxMzhhZDBkZAoK RnJvbSA2ZjYyMDU1NDMxZWRhM2YwOTUzMDk4ZDM1NWY3YjM5YTJkZDViMDg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjgv ODNdIGV2b2x1dGlvbjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogLi4uL2V2b2x1dGlvbi9maWxl cy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlIHwgNDUgLS0tLS0tLS0tLS0tLS0tLS0tLQogc3Jj cGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmggICAgICAgIHwgIDUgLS0tCiBzcmNw a2dzL2V2b2x1dGlvbi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAzMyArKystLS0tLS0t LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1l VGVzdHMuY21ha2UKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9p Y29udi1kZXRlY3QuaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2Fi bGVSdW50aW1lVGVzdHMuY21ha2UgYi9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVu dGltZVRlc3RzLmNtYWtlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YmU1NWI0MjA3 MC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRp bWVUZXN0cy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMgVGhpcyBmaWxl IHdhcyBnZW5lcmF0ZWQgYnkgQ01ha2UgYmVjYXVzZSBpdCBkZXRlY3RlZCBUUllfUlVOKCkgY29t bWFuZHMKLSMgaW4gY3Jvc3Njb21waWxpbmcgbW9kZS4gSXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBi eSB0aGUgbmV4dCBDTWFrZSBydW4uCi0jIENvcHkgaXQgdG8gYSBzYWZlIGxvY2F0aW9uLCBzZXQg dGhlIHZhcmlhYmxlcyB0byBhcHByb3ByaWF0ZSB2YWx1ZXMKLSMgYW5kIHVzZSBpdCB0aGVuIHRv IHByZXNldCB0aGUgQ01ha2UgY2FjaGUgKHVzaW5nIC1DKS4KLQotCi0jIF9jb3JyZWN0X2ljb252 X0VYSVRDT0RFCi0jICAgIGluZGljYXRlcyB3aGV0aGVyIHRoZSBleGVjdXRhYmxlIHdvdWxkIGhh dmUgYmVlbiBhYmxlIHRvIHJ1biBvbiBpdHMKLSMgICAgdGFyZ2V0IHBsYXRmb3JtLiBJZiBzbywg c2V0IF9jb3JyZWN0X2ljb252X0VYSVRDT0RFIHRvCi0jICAgIHRoZSBleGl0IGNvZGUgKGluIG1h bnkgY2FzZXMgMCBmb3Igc3VjY2VzcyksIG90aGVyd2lzZSBlbnRlciAiRkFJTEVEX1RPX1JVTiIu Ci0jIFRoZSBfY29ycmVjdF9pY29udl9DT01QSUxFRCB2YXJpYWJsZSBob2xkcyB0aGUgYnVpbGQg cmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4KLSMgCi0jIFNvdXJjZSBmaWxlICAgOiAvYnVpbGRk aXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL0NNYWtlVG1w L3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVy LTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2NtVENfMzE1ZWUtX2NvcnJlY3RfaWNvbnZfRVhJVENP REUKLSMgUnVuIGFyZ3VtZW50cyA6IAotIyAgICBDYWxsZWQgZnJvbTogWzJdCS91c3Ivc2hhcmUv Y21ha2UtMy45L01vZHVsZXMvQ2hlY2tDU291cmNlUnVucy5jbWFrZQotIyAgICAgICAgICAgICAg ICAgWzFdCS9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL0NNYWtlTGlzdHMu dHh0Ci0KLXNldCggX2NvcnJlY3RfaWNvbnZfRVhJVENPREUgCi0gICAgIDAKLSAgICAgQ0FDSEUg SU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotc2V0KF9jb3JyZWN0X2ljb252 X0VYSVRDT0RFX19UUllSVU5fT1VUUFVUCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJl c3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotCi0KLSMgSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RF Ci0jICAgIGluZGljYXRlcyB3aGV0aGVyIHRoZSBleGVjdXRhYmxlIHdvdWxkIGhhdmUgYmVlbiBh YmxlIHRvIHJ1biBvbiBpdHMKLSMgICAgdGFyZ2V0IHBsYXRmb3JtLiBJZiBzbywgc2V0IEhBVkVf TEtTVFJGVElNRV9FWElUQ09ERSB0bwotIyAgICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2Vz IDAgZm9yIHN1Y2Nlc3MpLCBvdGhlcndpc2UgZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUg SEFWRV9MS1NUUkZUSU1FX0NPTVBJTEVEIHZhcmlhYmxlIGhvbGRzIHRoZSBidWlsZCByZXN1bHQg Zm9yIHRoaXMgVFJZX1JVTigpLgotIyAKLSMgU291cmNlIGZpbGUgICA6IC9idWlsZGRpci9ldm9s dXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmlsZXMvQ01ha2VUbXAvc3JjLmMK LSMgRXhlY3V0YWJsZSAgICA6IC9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4w L2J1aWxkL0NNYWtlRmlsZXMvY21UQ19kMjg5Ny1IQVZFX0xLU1RSRlRJTUVfRVhJVENPREUKLSMg UnVuIGFyZ3VtZW50cyA6IAotIyAgICBDYWxsZWQgZnJvbTogWzJdCS91c3Ivc2hhcmUvY21ha2Ut My45L01vZHVsZXMvQ2hlY2tDU291cmNlUnVucy5jbWFrZQotIyAgICAgICAgICAgICAgICAgWzFd CS9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL0NNYWtlTGlzdHMudHh0Ci0K LXNldCggSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFIAotICAgICAwCi0gICAgIENBQ0hFIElOVEVS TkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLXNldCggSEFWRV9MS1NUUkZUSU1FX0VY SVRDT0RFX19UUllSVU5fT1VUUFVUCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3Vs dCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi9m aWxlcy9pY29udi1kZXRlY3QuaCBiL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVj dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmY0NzZkNWJjOS4uMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgKKysrIC9kZXYv bnVsbApAQCAtMSw1ICswLDAgQEAKLS8qIFRoaXMgaXMgYW4gYXV0by1nZW5lcmF0ZWQgaGVhZGVy LCBETyBOT1QgRURJVCEgKi8KLQotI2RlZmluZSBJQ09OVl9JU09fRF9GT1JNQVQgImlzby0lZC0l ZCIKLSNkZWZpbmUgSUNPTlZfSVNPX1NfRk9STUFUICJpc28tJWQtJXMiCi0jZGVmaW5lIElDT05W XzEwNjQ2ICJpc28tMTA2NDYiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlCmluZGV4IDU2MGVkOTNkYTAyLi5jYzczNTU5 OTQzYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9ldm9sdXRpb24vdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2V2b2x1dGlvbicKIHBrZ25hbWU9ZXZvbHV0aW9uCi12ZXJzaW9uPTMuMzYuMQordmVyc2lv bj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQorYnVpbGRfaGVscGVyPSJn aXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9BVVRPQVI9T0ZGIC1ERU5BQkxFX0xJ QkNSWVBUVUk9T0ZGIC1ERU5BQkxFX0dUS1NQRUxMPU9GRgotIC1ERU5BQkxFX1RFWFRfSElHSExJ R0hUPU9GRiAtREVOQUJMRV9QU1RfSU1QT1JUPU9GRgotIC1ERU5BQkxFX1dFQVRIRVI9JCh2b3B0 X2lmIGdpciBPTiBPRkYpIgorIC1ERU5BQkxFX1RFWFRfSElHSExJR0hUPU9GRiAtREVOQUJMRV9Q U1RfSU1QT1JUPU9GRiAtREVOQUJMRV9XRUFUSEVSPU9OIgogaG9zdG1ha2VkZXBlbmRzPSJnbm9t ZS1kb2MtdXRpbHMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGludGx0b29sIGl0c3Rvb2wKLSBwa2ct Y29uZmlnIgorIHBrZy1jb25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJOZXR3b3JrTWFu YWdlci1kZXZlbCBjbHV0dGVyLWd0ay1kZXZlbCBlbmNoYW50Mi1kZXZlbAogIGV2b2x1dGlvbi1k YXRhLXNlcnZlci1kZXZlbCBnc3BlbGwtZGV2ZWwgZ3RraHRtbC1kZXZlbCBsaWJjYW5iZXJyYS1k ZXZlbAotICQodm9wdF9pZiBnaXIgbGliZ3dlYXRoZXItZGV2ZWwpIGxpYm5vdGlmeS1kZXZlbCB3 ZWJraXQyZ3RrLWRldmVsIHl0bmVmLWRldmVsCisgbGliZ3dlYXRoZXItZGV2ZWwgbGlibm90aWZ5 LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgeXRuZWYtZGV2ZWwKICBnbm9tZS1kZXNrdG9wLWRldmVs IgogZGVwZW5kcz0iZ25vbWUta2V5cmluZyIKIHNob3J0X2Rlc2M9IkludGVncmF0ZWQgbWFpbCwg YWRkcmVzc2Jvb2sgYW5kIGNhbGVuZGFyaW5nIGZvciBHTk9NRSIKQEAgLTE5LDM2ICsxOSwxNSBA QCBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciwgTEdQTC0zLjAtb3ItbGF0ZXIsIEdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1dGlv biIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2 b2x1dGlvbi9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT04NzNhY2YxZGJlYzM4ZTY3ZTE2OTA2NDY0NWFjM2E5YjlhOTQ0YmQyYjYzMzE2MWRmNmU1ZjA1 NzAwZTM2Y2I4CitjaGVja3N1bT0wYTM1YTY2MTRhMTMwYTUxNzY4MTE0MGQzNzhiMTVjNjI5MDBi ODRhMThjMzlkYmYyNmQ5Zjk2ZjQyOGJkNGViCiBzaGxpYl9wcm92aWRlcz0ibGliZXZvbHV0aW9u LWNhbGVuZGFyLnNvIGxpYmV2b2x1dGlvbi11dGlsLnNvIGxpYmVtYWlsLWVuZ2luZS5zbwogIGxp YmV2b2x1dGlvbi1tYWlsLnNvIGxpYmV2b2x1dGlvbi1zaGVsbC5zbyIKIAogYnVpbGRfb3B0aW9u cz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIiCi1lbHNlCi0JaG9zdG1ha2VkZXBlbmRzKz0iIGdsaWItZGV2ZWwiCiBmaQog Ci0jIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBiaW5hcnkgcnVudGltZSwgYWJvdXQg aWNvbnYgYW5kIHNmcnRpbWUuCi0jIG11c2wgKDEuMS4xNikgZG9lcyBub3Qgc3VwcG9ydCAiSVNP LTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXApLAotIyBhbHRob3VnaCBldm9sdXRp b24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCi0jIElmIGNyb3NzYnVpbGQsIGNtYWtl IGxldCBkaXNhYmxpbmcgcnVudGltZSBjaGVja3MgdmlhIHNwZWNpZmljIGRpcmVjdGl2ZXMuCi0j IHRlc3QgaWNvbnYtZGV0ZWN0LmMgYWxzbyBnZW5lcmF0ZXMgaWNvbnYtZGV0ZWN0LmggdGhhdCBp cyByZXF1aXJlZCBmb3IgYnVpbGQuCi0jIFNvIGNvbXBsZXRseSBkaXNhYmxlIHRlc3QgZnJvbSBp Y29udi1kZXRlY3QuYyAoY21ha2UucGF0Y2ggZmlsZSkgYW5kCi0jIHVzZSBhIGNtYWtlIGNhY2hl IGZpbGUgb24gY3Jvc3NidWlsZCB0byBkaXNhYmxlIHNmcnRpbWUgcnVubmluZyB0ZXN0LgotaWYg WyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLUMgZGlzYWJsZVJ1 bnRpbWVUZXN0cy5jbWFrZSIKLWZpCi0KLXByZV9jb25maWd1cmUoKSB7Ci0JbWtkaXIgLXAgYnVp bGQKLQljcCAke0ZJTEVTRElSfS9pY29udi1kZXRlY3QuaCAke3dya3NyY30vYnVpbGQvLgotCWlm IFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQljcCAke0ZJTEVTRElSfS9kaXNhYmxlUnVudGlt ZVRlc3RzLmNtYWtlICR7d3Jrc3JjfS9idWlsZC8uCi0JZmkKLX0KLQogZXZvbHV0aW9uLWRldmVs X3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0id2Via2l0Mmd0ay1kZXZlbCBndGsrMy1kZXZlbCBsaWJn bGliLWRldmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbAogCSBndGtodG1sLWRldmVsICR7 c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gMmU5ZmZhNDBhNGM3OTI4 YzI5OGQ2YTYzZTdjMDFjYjU2NzJmY2I0NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI5LzgzXSBldm9sdXRpb24tZXdzOiB1 cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlIGIvc3JjcGtncy9ldm9s dXRpb24tZXdzL3RlbXBsYXRlCmluZGV4IDRmZjgxMTY0NjZjLi43MmNlZDUyMDAxNCAxMDA2NDQK LS0tIGEvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0 aW9uLWV3cy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2 b2x1dGlvbi1ld3MnCiBwa2duYW1lPWV2b2x1dGlvbi1ld3MKLXZlcnNpb249My4zNi4xCit2ZXJz aW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJn cz0iLURMSUJFWEVDX0lOU1RBTExfRElSPS91c3IvbGliL2V2b2x1dGlvbiIKQEAgLTEyLDQgKzEy LDQgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtp Lmdub21lLm9yZy9BcHBzL0V2b2x1dGlvbiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVi dXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlvbi1ld3MvZ25vbWUtMy0zNi9ORVdTIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDA4ODNjN2QyMjc4MjdjYzVjNDQ2OGI3ZTMx YTNlZTM3MGJjZDdkNDFhNGRiYjk1MGFiNWRiMzZjOTU1MWFjMQorY2hlY2tzdW09YmU5MTYwNWRm ZjVlMjc0ODdmY2JjY2VmYzkxM2MwMjdkMmQ2NjEwNDBlMDk0ZmJkODFmOTUxZGM5YTg2MTgxNQoK RnJvbSBlNzQ1MGE5NDkwMDQ5OGZkOTAzN2FjZDkyZDhkYzgwMWQ5MzE3ZDMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzAv ODNdIHB5dGhvbjMtYXRzcGk6IHVwZGF0ZSB0byAyLjM3LjkwCgotLS0KIHNyY3BrZ3MvcHl0aG9u My1hdHNwaS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQppbmRleCBhMzNhMzc0ZmUx OC4uMjk5MDc3ZDQ3MWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24zLWF0c3BpJwogcGtnbmFtZT1weXRob24zLWF0c3Bp Ci12ZXJzaW9uPTIuMzIuMQotcmV2aXNpb249NAordmVyc2lvbj0yLjM3LjkwCityZXZpc2lvbj0x CiBhcmNocz1ub2FyY2gKIHdya3NyYz0icHlhdHNwaS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQpAQCAtMTMsNCArMTMsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvcHlhdHNwaTIiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vcHlhdHNwaS8ke3ZlcnNpb24lLip9L3B5YXRzcGktJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT04NDk1NGE1YmJlYWNjODM2NDNmMDU3NzhkOGJlYWZjYWI4MjA4ZTEx YjM5YjI0NjM3YjRjNGRkMWY4NjIwMzg5CitjaGVja3N1bT00ZTE3YWNlNTljNmM4M2FjOTQxZDc0 Zjc2YWNiOTRjMDBmYjIyYjU2YmFhNmVhYWIzMTNmNWUxYWFiNzJmYzM4CgpGcm9tIGI5MTY5N2My OTNjZDU2YTU3ZWQ0NmY1ZGNjZjgyMzE4NWFlMWEyOGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMS84M10gcHl0aG9uLWF0 c3BpOiB1cGRhdGUgdG8gMi4zNy45MAoKLS0tCiBzcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0 ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlIGIvc3JjcGtn cy9weXRob24tYXRzcGkvdGVtcGxhdGUKaW5kZXggMDE0MWQ5N2Y4NWQuLmM1NDQ1MjNmOWQ0IDEw MDY0NAotLS0gYS9zcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5 dGhvbi1hdHNwaS90ZW1wbGF0ZQpAQCAtMSw4ICsxLDggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3B5dGhvbi1hdHNwaScKICMgS2VlcCBweXRob24zLWF0c3BpIGluIHN5bmMKIHBrZ25hbWU9cHl0 aG9uLWF0c3BpCi12ZXJzaW9uPTIuMzIuMQotcmV2aXNpb249NAordmVyc2lvbj0yLjM3LjkwCity ZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIHdya3NyYz0icHlhdHNwaS0ke3ZlcnNpb259IgogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTQsNCArMTQsNCBAQCBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvcHlhdHNwaTIiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vcHlhdHNwaS8ke3ZlcnNpb24lLip9L3B5YXRzcGktJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04NDk1NGE1YmJlYWNjODM2NDNmMDU3NzhkOGJlYWZj YWI4MjA4ZTExYjM5YjI0NjM3YjRjNGRkMWY4NjIwMzg5CitjaGVja3N1bT00ZTE3YWNlNTljNmM4 M2FjOTQxZDc0Zjc2YWNiOTRjMDBmYjIyYjU2YmFhNmVhYWIzMTNmNWUxYWFiNzJmYzM4CgpGcm9t IGJmODZmZDhiYzRlNmRiYzIzMmNhODcyY2RmYWM5N2Y2NjkzMGU1ZjAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMi84M10g b3JjYTogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9vcmNhL3RlbXBsYXRlIHwgNCAr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvb3JjYS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3JjYS90ZW1wbGF0ZQpp bmRleCBmNzAyMDJlNmQ3Ni4uMmIyOTY1YmZiYWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3JjYS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29yY2EvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdvcmNhJwogcGtnbmFtZT1vcmNhCi12ZXJzaW9uPTMuMzYuMQordmVy c2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9PcmNhIgogZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09YzFhYzY0OGI2YmUzMTQ4OGMyNmZmOTU5MTE0Mjg3ODY5ZGY5Y2UzY2Ey MTk5OWU0MGRlZDg3NzQxYzk4ODMxZgorY2hlY2tzdW09MWFiMmViNWJlOGMzNjMzYTJiNjFjMjZj NWUzYzllMWE1YjExMTRiYWYxNDhmYWU4OWNlYzM1ZGZiYTRjYjY0YgogCiBpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgcHl0aG9uMy1nb2JqZWN0LWRldmVs IgoKRnJvbSA0NmYzNDM5Njg4Zjc4NzM4NGM1OGY2ZTNmMWNjN2JiMDdlNTgyNTNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MzMvODNdIGdub21lLXdlYXRoZXI6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS13ZWF0aGVyL3Rl bXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCmluZGV4IGQzMGJlOWJmMTkyLi5jMDI4ZTQ2YmE2NSAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtd2VhdGhlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLXdlYXRoZXInCiBwa2duYW1lPWdub21lLXdlYXRoZXIKIHZlcnNpb249My4zNi4x Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxl PW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBpdHN0b29sIGdsaWIt ZGV2ZWwgZ2pzIgoKRnJvbSA0ZTViYjhmY2M1NjQ2YWJkZGFhMWNiYThmNjliZmE4NWYxYzQ0NmJh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMzQvODNdIHZ0ZTM6IHVwZGF0ZSB0byAwLjYxLjkwCgotLS0KIHNyY3BrZ3MvdnRl My90ZW1wbGF0ZSB8IDE5ICsrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGlu c2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdnRlMy90 ZW1wbGF0ZSBiL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQppbmRleCA2MTE2YjNjYzYyMS4uZjFiYTFj NmYxYTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Z0 ZTMvdGVtcGxhdGUKQEAgLTEsMjkgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Z0ZTMn CiBwa2duYW1lPXZ0ZTMKLXZlcnNpb249MC42MC4zCit2ZXJzaW9uPTAuNjEuOTAKIHJldmlzaW9u PTEKIHdya3NyYz0idnRlLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVs cGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURiX25kZWJ1Zz1mYWxzZSAtRGdpcj0kKHZvcHRf aWYgZ2lyIHRydWUgZmFsc2UpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpIC1E Yl9sdG89ZmFsc2UgLURfc3lzdGVtZD1mYWxzZSIKK2NvbmZpZ3VyZV9hcmdzPSItRGJfbmRlYnVn PWZhbHNlIC1EYl9sdG89ZmFsc2UgLURfc3lzdGVtZD1mYWxzZQorICQodm9wdF9ib29sIGdpciBn aXIpICQodm9wdF9ib29sIGdpciB2YXBpKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBn bm9tZS1kb2MtdXRpbHMgZ3BlcmYgaW50bHRvb2wgcGtnLWNvbmZpZwotICQodm9wdF9pZiB2YWxh IHZhbGEpIgotbWFrZWRlcGVuZHM9ImdudXRscy1kZXZlbCBndGsrMy1kZXZlbCBwY3JlMi1kZXZl bCAkKHZvcHRfaWYgdmFsYSB2YWxhLWRldmVsKSIKLWRlcGVuZHM9InZ0ZSIKKyAkKHZvcHRfaWYg Z2lyIHZhbGEpIgorbWFrZWRlcGVuZHM9ImdudXRscy1kZXZlbCBndGsrMy1kZXZlbCBwY3JlMi1k ZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgogc2hvcnRfZGVzYz0iVGVybWluYWwgd2lk Z2V0IHdpdGggaW1wcm92ZWQgYWNjZXNzaWJpbGl0eSBhbmQgSTE4TiBzdXBwb3J0IgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTMuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvVGVybWluYWwvVlRFIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9L3Z0ZS8ke3ZlcnNpb24lLip9L3Z0ZS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPWZlYjc2ZTExODFhMzU3ZDg2MTEyZDQ0N2EwOGQxMjdlMjA4MTQzOGRmNzZlY2U4 MzI0M2IxODYwOWRkOTgyMmEKK2NoZWNrc3VtPWQ5OWQ3MGNhMTNlMWExM2M3MjlkZTIxOTg0MzRi NzFhODM5YTE4MDhkODFhMGIxZWE4Y2ViMDIyZDYxOWU0ODcKIAogIyBTdXBwcmVzcyB3YXJuaW5n cyBhcyBlcnJvcnMgZm9yIE5VTEwgZm9ybWF0IHN0cmluZ3MgKG11c2wgbGliYykKIENYWEZMQUdT PSItV25vLWVycm9yPWZvcm1hdD0iCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWlsZF9v cHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWls ZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogcHJlX2J1aWxk KCkgewogCWV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke3dya3NyY30vc3JjLy5saWJzIgpA QCAtMzgsOCArMzcsNiBAQCB2dGUzLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGli Lyouc28iCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Iv c2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4K IAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQoKRnJvbSA3Njc1OWQ5NGI4NGZiYWM3 ZDBhMmQzMTFjZWY0NGNkZGZjNzgwZGI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzUvODNdIGdub21lLXRlcm1pbmFsOiB1 cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlIHwg OCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQppbmRleCBiZjNkNWJjZGQ0Mi4uOTI2NmY0M2E2MWUg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtdGVybWluYWwnCiBwa2duYW1lPWdub21lLXRlcm1pbmFsCi12ZXJzaW9u PTMuMzYuMS4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGljIC0td2l0aC1uYXV0aWx1 cy1leHRlbnNpb24iCiBob3N0bWFrZWRlcGVuZHM9ImFwcGRhdGEtdG9vbHMgZ2xpYi1kZXZlbCBp bnRsdG9vbCBpdHN0b29sCi0gcGtnLWNvbmZpZyIKKyBwa2ctY29uZmlnIGRvY2Jvb2steHNsIgog bWFrZWRlcGVuZHM9ImRjb25mLWRldmVsIGdub21lLXNoZWxsIGdzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXMtZGV2ZWwKICBuYXV0aWx1cy1kZXZlbCB2dGUzLWRldmVsIgogZGVwZW5kcz0iZGVza3Rv cC1maWxlLXV0aWxzIgpAQCAtMTMsOCArMTMsOCBAQCBzaG9ydF9kZXNjPSJHTk9NRSB0ZXJtaW5h bCBlbXVsYXRvciBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRMLTEuMy1vbmx5 IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9UZXJtaW5hbCIKLWRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbjowOjR9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mM2Q3MDhhMWU3NmQ3N2MxYzg1YjEyNmY2ZTAw MzIyMGExNWQ0YTQ2YTUwZmQ4MDcwZTFhM2FhYmU2NzhhMzc2CitkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCitjaGVja3N1bT1kNmRhMGY0OTkxMzQ1ZDQ3ZDczMGY5Y2FhZGY0NmU4ZTQxMDU5NzAxN2U2 YzYxNDc1ZTkyZjdjMjNhZDljMmE0CiBsaWIzMmRpc2FibGVkPXllcwogCiBpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KCkZyb20gZjM2NDBmYmU4ZDQzMDJiODQ3NWRkYzk0YWJhYTJiN2FlZDYx N2I0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDM2LzgzXSBnbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jczogdXBkYXRlIHRv IDMuMzYuMgoKLS0tCiBzcmNwa2dzL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRl IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlCmluZGV4IDVi ZWM5MzQ5MGJhLi5iZWQ5YjY5NjE2MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1nZXR0aW5n LXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWdldHRpbmctc3RhcnRl ZC1kb2NzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25v bWUtZ2V0dGluZy1zdGFydGVkLWRvY3MnCiBwa2duYW1lPWdub21lLWdldHRpbmctc3RhcnRlZC1k b2NzCi12ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM2LjIKIHJldmlzaW9uPTEKIGFyY2hzPW5v YXJjaAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTEsNCArMTEsNCBAQCBsaWNlbnNl PSJDQy1CWS1TQS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzIgogI2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3Jhdy9tYXN0ZXIvTkVX UyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY3MGNlMmNhMjNhZDc4NjIxNWYz YzkyZWM4NTc4M2UzYWFiZWQwN2U0Zjc4NzAwZmEyN2Y5YjJjZjc2ZTAzZGIKK2NoZWNrc3VtPTA0 OTRiODkxM2E5NDZiNjQ1MDUzNmUxMjBjMTU0YWJkMjkyMzhlYmJhMmY1MjczNDU5MmIxZjY0NWU1 MjFkYzYKCkZyb20gNGQ5Y2NiYjEyOTViNWE3NmVkMjhjYWUzNWE0NGI2ZmNiMDhlMTkzYyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BB VENIIDM3LzgzXSBnbm9tZS11c2VyLWRvY3M6IHVwZGF0ZSB0byAzLjM2LjIKCi0tLQogc3JjcGtn cy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS11 c2VyLWRvY3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQppbmRl eCA0Y2I1NTM5NmUzNy4uMmU4YWZlOWY5M2QgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtdXNl ci1kb2NzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlCkBA IC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtdXNlci1kb2NzJwogcGtn bmFtZT1nbm9tZS11c2VyLWRvY3MKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzYuMgogcmV2 aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMyw0 ICsxMyw0IEBAIGxpY2Vuc2U9IkNDLUJZLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5j b20vR05PTUUvZ25vbWUtdXNlci1kb2NzIgogI2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVi dXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLXVzZXItZG9jcy9tYXN0ZXIvTkVXUyIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPThmOTkwN2ZmMTVmZmY5N2RhNzVlY2U2NDVjYzg2 NzY2NzAzYWM1NGQ3MTZkMjU1NjNiYTY3ZmZlZDFhZjI0ZWQKK2NoZWNrc3VtPTE5OGZlNGM4MzY3 NzVhNWRjMjU0M2E2YTUyMGRmYjBhYzViZjI5MmNkY2IzNThhNTdjODZmMzVmNzA1ZTk5NTgKCkZy b20gZGYzZGU3Njc4MzI3MzRjMTIzNDA1ODIwYWFjOGVhOGI4YzMyZWYyZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM4Lzgz XSBnbm9tZS1lcHViLXRodW1ibmFpbGVyOiB1cGRhdGUgdG8gMS42CgotLS0KIHNyY3BrZ3MvZ25v bWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWls ZXIvdGVtcGxhdGUKaW5kZXggYjE2ZTcwNTQ3NWYuLmM2ZTFjMDJiOWQzIDEwMDY0NAotLS0gYS9z cmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9t ZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtZXB1Yi10aHVtYm5haWxlcicKIHBrZ25hbWU9Z25vbWUtZXB1Yi10aHVt Ym5haWxlcgotdmVyc2lvbj0xLjUKK3ZlcnNpb249MS42CiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCkBAIC0xMCw0ICsx MCw0IEBAIG1haW50YWluZXI9IkFsaWYgUmFjaG1hd2FkaSA8YXJjaEBzdWJvc2l0by5jb20+Igog bGljZW5zZT0iR1BMLTMiCiBob21lcGFnZT0iaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9n bm9tZS1lcHViLXRodW1ibmFpbGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MzA4 MjEwZjU4MDAyMTlmNjRjYWU0ODI4ZTU5YmI4ZTZlNGM1M2I4ODgwNDhjZjQ4NzIyMWFlYjQzMzdk NzkxYQorY2hlY2tzdW09YjUwMjQyMGQ5YjAyZWEwYjBmYzc5ODZlZjVhMDkxYTEyYjIyODZiZTE0 ZmVkOWU0NzU5NGZlOWZhMGM1ODk4ZQoKRnJvbSA1MDg2OTA0MmYwMzY4MDUxZjEyYjc2YTBkM2I3 OTMwYjJlMTZhNGNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMzkvODNdIGdub21lLWJvb2tzOiBidW1wCgotLS0KIHNyY3Br Z3MvZ25vbWUtYm9va3MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJvb2tzL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZQppbmRleCAxMTRiOWUwMzRjMi4u MWQ0OTc0ZmUxODMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dub21lLWJvb2tzJwogcGtnbmFtZT1nbm9tZS1ib29rcwogdmVyc2lvbj0z LjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRf c3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyB2YWxhIGdsaWItZGV2ZWwg bGlicnN2ZyBkb2Nib29rLXhzbCBsaWJ4c2x0CgpGcm9tIDk1ODZmMDM5OWYxMDA4MjY1NDMyM2U5 NTJlYmU3OTEyZTIyMWQ2NjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0MC84M10gZ25vbWUtY2hhcmFjdGVyczogYnVtcAoK LS0tCiBzcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVt cGxhdGUKaW5kZXggODk4NjhmNGJjMDQuLmFjMjY0ZTUxYTZhIDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJz L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY2hh cmFjdGVycycKIHBrZ25hbWU9Z25vbWUtY2hhcmFjdGVycwogdmVyc2lvbj0zLjM0LjAKLXJldmlz aW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIK IGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnanMgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25m aWciCgpGcm9tIDNkOTIzNWMyOWI3YzE1ZjVkN2VkYzJlODQxOGJiNDQyNDlhODZhZTcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCA0MS84M10gZ25vbWUtZG9jdW1lbnRzOiBidW1wCgotLS0KIHNyY3BrZ3MvZ25vbWUtZG9jdW1l bnRzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZQppbmRleCA5N2I1M2Q2MzVkNy4uN2U0 NWI4MjVlNzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZG9jdW1lbnRzJwogcGtnbmFtZT1nbm9tZS1kb2N1bWVu dHMKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9oZWxwZXI9 ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdl dHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIGdsaWItZGV2ZWwgbGlieHNsdCBnZGstcGl4YnVmCgpG cm9tIDUyZGU0MWEwODY0NWY5NDc4ZjZlYTdlYzgxMjA2NDI1NmJhNThhODQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0Mi84 M10gZ25vbWUtZm9udC12aWV3ZXI6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1mb250LXZpZXdl ci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBsYXRlCmluZGV4IDZkMDM1MzY2ZDQ0Li5m NzRmY2JjYjAwMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZm9udC12aWV3ZXInCiBwa2duYW1lPWdub21l LWZvbnQtdmlld2VyCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIgog bWFrZWRlcGVuZHM9ImZvbnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgZ2xpYi1kZXZlbCBn dGsrMy1kZXZlbAoKRnJvbSA5NmEyMTQ0MDJhOGQwOWE1ZDkyNTFmMDdiMDQ5ZTM2ZDA4NDE4ZWM5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNDMvODNdIHRvdGVtOiBidW1wLCBkcm9wIHZhbGEgb3B0aW9uCgotLS0KIHNyY3Br Z3MvdG90ZW0vdGVtcGxhdGUgfCAxNCArKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RvdGVt L3RlbXBsYXRlIGIvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQppbmRleCA4MTUyMmIzMTQ4OC4uYThj ZmIwMDAxYTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdG90ZW0vdGVtcGxhdGUKKysrIGIvc3JjcGtn cy90b3RlbS90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn dG90ZW0nCiBwa2duYW1lPXRvdGVtCiB2ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2Fy Z3M9Ii1EZW5hYmxlLXB5dGhvbj1ubyAtRGVuYWJsZS1uYXV0aWx1cz15ZXMKICAtRGVuYWJsZS1p bnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgeWVzIG5vKQotIC1EZW5hYmxlLXZhbGE9JCh2b3B0 X2lmIHZhbGEgeWVzIG5vKSIKKyAtRGVuYWJsZS12YWxhPSQodm9wdF9pZiBnaXIgeWVzIG5vKSIK IGhvc3RtYWtlZGVwZW5kcz0iZ25vbWUtZG9jLXV0aWxzIGludGx0b29sIGl0c3Rvb2wgcGtnLWNv bmZpZwotICQodm9wdF9pZiB2YWxhIHZhbGEpIGdzdHJlYW1lcjEgZ3N0LXBsdWdpbnMtYmFzZTEg Z3N0LXBsdWdpbnMtZ29vZDEKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIGdzdHJlYW1lcjEgZ3N0LXBs dWdpbnMtYmFzZTEgZ3N0LXBsdWdpbnMtZ29vZDEKICBnbGliLWRldmVsIgogIyBYWFggbWlzc2lu ZyBsaXJjIHBsdWdpbi4KIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1dHRlci1n dGstZGV2ZWwgZGJ1cy1nbGliLWRldmVsCkBAIC0yNywxMCArMjcsMTQgQEAgY2hlY2tzdW09NmJm ODlhYjA5NmRmYzU2NGYyNjA5NzZlNDg0MTY1ZjA5YmQ4ODY0MzRkMTg0NDEwZDJmOTQ0YmZiYTYx MWEwOQogIyBYWFggcmVlbmFibGUgcHl0aG9uIHBsdWdpbiBpZiBweWxpbnQgcGtnIGV4aXN0cy4K ICNweWNvbXBpbGVfZGlycz0idXNyL2xpYi90b3RlbS9wbHVnaW5zIgogCitkb19jaGVjaygpIHsK Kwk6Cit9CisKIGRpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCiAKLWJ1aWxkX29wdGlvbnM9Imdp ciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9 ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBsaWJ0b3RlbV9wYWNrYWdlKCkg ewogCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCgpGcm9tIGMyNzc1NzI3Mjc3NjMz MmJhZmRhN2ZhZDA4MmIyODM5NjU5MGQ3MTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0NC84M10gZ25vbWUtc2NyZWVuc2F2 ZXI6IGJ1bXAgKyBmaXggYnVpbGQKCi0tLQogc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci9wYXRj aGVzL2J1aWxkLnBhdGNoIHwgMTIgKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNjcmVlbnNh dmVyL3RlbXBsYXRlICAgICAgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9t ZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9n bm9tZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zY3Jl ZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi42ZGNkYmU3ZGQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUt c2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDEyIEBACistLS0gc3Jj L2dzLW1hbmFnZXIuYworKysrIHNyYy9ncy1tYW5hZ2VyLmMKK0BAIC04MjAsOCArODIwLDcgQEAg YXBwbHlfYmFja2dyb3VuZF90b193aW5kb3cgKEdTTWFuYWdlciAqbWFuYWdlciwKKyAgICAgICAg IHN1cmZhY2UgPSBnbm9tZV9iZ19jcmVhdGVfc3VyZmFjZSAobWFuYWdlci0+cHJpdi0+YmcsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdka193aW5kb3csCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KTsKKyAgICAgICAgIGdzX3dpbmRv d19zZXRfYmFja2dyb3VuZF9zdXJmYWNlICh3aW5kb3csIHN1cmZhY2UpOworICAgICAgICAgY2Fp cm9fc3VyZmFjZV9kZXN0cm95IChzdXJmYWNlKTsKKyB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1w bGF0ZQppbmRleCAzNjNmY2YxMmUxMC4uYzNhNzBjZmVmN2MgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZl ci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNj cmVlbnNhdmVyJwogcGtnbmFtZT1nbm9tZS1zY3JlZW5zYXZlcgogdmVyc2lvbj0zLjYuMQotcmV2 aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJl X2FyZ3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKIGhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBhdXRvbWFrZSBpbnRsdG9vbCBnbGliLWRldmVsIgoKRnJvbSBlNzA5ZGNi OTYyMTc1MDE0NDNiOGM1OTBkMmUzMzBlZWUwZGYzMjBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAx MyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDUvODNdIGdub21lLWNs b2NrczogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlCmluZGV4IDNlMDQ5YjQyZmIxLi4xY2EzZWY1ODg2ZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS1jbG9ja3MvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLWNsb2NrcycKIHBrZ25hbWU9Z25vbWUtY2xvY2tzCi12ZXJzaW9uPTMuMzYuMAor dmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0 eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBn bGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCB2YWxhLWRldmVsIGdub21l LWRlc2t0b3AtZGV2ZWwKLSBsaWJnd2VhdGhlci1kZXZlbCBsaWJoYW5keS1kZXZlbCBsaWJub3Rp ZnktZGV2ZWwgZ3NvdW5kLWRldmVsCisgbGliZ3dlYXRoZXItZGV2ZWwgbGliaGFuZHkxLWRldmVs IGxpYm5vdGlmeS1kZXZlbCBnc291bmQtZGV2ZWwKICBnZW9jb2RlLWdsaWItZGV2ZWwgZGVza3Rv cC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZQogIGdlb2NsdWUyLWRldmVsIgogZGVwZW5k cz0iZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSIKQEAgLTE1LDQgKzE1LDQg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9B cHBzL0Nsb2NrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjOTc4YjBjN2Y3 YjlkYWViZDI3MmQwMTc1ZjhhNTQ0MTVlMjA3OGYxMzRmNDhhZGQ1Y2YyNDM2MmVlZjQ5YzYKK2No ZWNrc3VtPTRkZDIzNDk1MDc0YWUzMDZkOWVlMzBjNmJhYjcyNjI0YzdlZDA1YzQ5Yzc3YWIxMjQ4 MzkwMDNjOWNiNGZmOWIKCkZyb20gNjg5YzdjNTQxMjE3NmNkZDdlYWU2YWExMjY3YjdjMjcyZDIy NTY1OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDQ2LzgzXSBnbm9tZS1jb250YWN0czogdXBkYXRlIHRvIDMuMzcuMQoKLS0t CiBzcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlIHwgMTMgKysrKysrLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jb250YWN0 cy90ZW1wbGF0ZQppbmRleCAyYTgyMTNhNzI0MC4uMGIwNjlmOTliZDUgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jb250YWN0 cy90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt Y29udGFjdHMnCiBwa2duYW1lPWdub21lLWNvbnRhY3RzCi12ZXJzaW9uPTMuMzQuMAotcmV2aXNp b249Mgotd3Jrc3JjPSJnbm9tZS1jb250YWN0cy0ke3ZlcnNpb24lLip9IgordmVyc2lvbj0zLjM3 LjEKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVuZHM9ImRvY2Jv b2steHNsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKK2hvc3Rt YWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZm9sa3MtZGV2ZWwgZ2V0dGV4dCBnbGliLWRldmVsIGxp YnhzbHQgcGtnLWNvbmZpZyB2YWxhIgogbWFrZWRlcGVuZHM9ImNoZWVzZS1kZXZlbCBmb2xrcy1k ZXZlbCBnZW9jb2RlLWdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAotIGxpYmNoYW1wbGFp bi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgdmFsYS1kZXZlbCBsaWJoYW5keS1kZXZlbCIKKyBsaWJj aGFtcGxhaW4tZGV2ZWwgbGlibm90aWZ5LWRldmVsIHZhbGEtZGV2ZWwgbGliaGFuZHkxLWRldmVs IgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iR05PTUUgY29udGFj dHMgbWFuYWdlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5n bm9tZS5vcmcvQXBwcy9Db250YWN0cyIKLWRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb24lLip9LnRhci54eiIKLWNoZWNr c3VtPTk5NjAyZWM4ZDY2MGMxZjNjOTJjYWU2MzU2ZjY0ZjcyZmI2ZGI1OGU1NWJjZTI3YTU5OTMz MGJmN2I2MjJmMTIKK2Rpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTY5MmNiNzQ2NzBk ZmY3NzhlNDFkM2MzNWQ2MjdiOWE1MmVlYjM3YTNiZDliYjgxMWE2NTEyY2I1NTg5NWVhYjIKCkZy b20gMTVkZGFlYzNmMDQzMWIxYzg2ODk5OGJkNjU1MjY2NGZhNjk2Yjc2YyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDQ3Lzgz XSBsaWJkYXp6bGU6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogc3JjcGtncy9saWJkYXp6bGUvdGVt cGxhdGUgfCAyMiArKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5z ZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRhenps ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCmluZGV4IDVhYzA5ZmVlZmM5 Li5mYmFhNDExNGJkYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTMgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2xpYmRhenpsZScKIHBrZ25hbWU9bGliZGF6emxlCi12ZXJzaW9uPTMuMzYu MAordmVyc2lvbj0zLjM3LjEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9o ZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV9ndGtfZG9jPWZhbHNlIC1Ed2l0 aF92YXBpPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLUR3aXRoX2ludHJvc3BlY3Rpb249 JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKLWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBw a2ctY29uZmlnICQodm9wdF9pZiB2YWxhICd2YWxhJykiCitjb25maWd1cmVfYXJncz0iLURlbmFi bGVfZ3RrX2RvYz1mYWxzZQorICQodm9wdF9ib29sIGdpciB3aXRoX3ZhcGkpCisgJCh2b3B0X2Jv b2wgZ2lyIHdpdGhfaW50cm9zcGVjdGlvbikiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwg cGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imd0ayszLWRldmVs IGxpYmdsaWItZGV2ZWwiCiBzaG9ydF9kZXNjPSJMaWJyYXJ5IHRvIGRlbGlnaHQgeW91ciB1c2Vy cyB3aXRoIGZhbmN5IGZlYXR1cmVzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKQEAgLTE0LDEwICsxNSwxNSBAQCBsaWNlbnNlPSJHUEwtMy4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJkYXp6bGUi CiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9saWJk YXp6bGUvbGliZGF6emxlLTMtMzIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9saWJk YXp6bGUvJHt2ZXJzaW9uJS4qfS9saWJkYXp6bGUtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT04MmIzMWJiZjU1MGZjNjI5NzBjNzhiZjdmOWQ1NWU1ZmFlNWI4ZWExM2IyNGZlMmQxM2M4YzYw Mzk0MDlkOTU4CitjaGVja3N1bT1mZGYwZTM5ODA2OTg0OGI5MGZkZGYzMTg0YjYzODQ1OTJhM2Fl YWJiOGIyNDMzMTQwZTAzYjAxNjQyNjYyNTBmCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgot YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgorCisjIG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToK K30KIAogbGliZGF6emxlLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9 LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3RrKzMtZGV2ZWwiCkBAIC0yOCw4ICszNCw2IEBAIGxp YmRhenpsZS1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBb ICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAK LQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Iv c2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gOGY4ZmJiZDYxYzFiNmQ4OTYwN2U0MzNjNzJmZGIw MTJhY2FiMjBlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDQ4LzgzXSBlcGlwaGFueTogdXBkYXRlIHRvIDMuMzcuOTAgKG5l ZWQgd2Via2l0Mmd0ayB1cGRhdGUpCgotLS0KIHNyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUgfCA4 ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUgYi9zcmNwa2dzL2VwaXBo YW55L3RlbXBsYXRlCmluZGV4IDVkNmFjNmE2MzdkLi4zNzVjZjliODc5NiAxMDA2NDQKLS0tIGEv c3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRl CkBAIC0xLDE5ICsxLDE5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdlcGlwaGFueScKIHBrZ25h bWU9ZXBpcGhhbnkKLXZlcnNpb249My4zNi4yCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEK IGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSIt RGRpc3RyaWJ1dG9yX25hbWU9Vm9pZExpbnV4IC1EdW5pdF90ZXN0cz1kaXNhYmxlZCIKIGhvc3Rt YWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2Vk ZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBhdmFoaS1nbGliLWxpYnMtZGV2ZWwgZ2NyLWRl dmVsCi0gZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGliZGF6emxlLWRldmVs IGxpYmhhbmR5LWRldmVsCisgZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGli ZGF6emxlLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxpYm5vdGlmeS1kZXZlbCBsaWJzZWNyZXQt ZGV2ZWwgbGlic291cC1nbm9tZS1kZXZlbCBsaWJ3bmNrLWRldmVsIGxpYnhzbHQtZGV2ZWwKLSBu ZXR0bGUtZGV2ZWwgbnNzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwiCisgbmV0dGxlLWRldmVsIG5z cy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIGxpYnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgaXNvLWNvZGVzIHdlYmtpdDJndGsiCiBz aG9ydF9kZXNjPSJJbnR1aXRpdmUgR05PTUUgd2ViIGJyb3dzZXIiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvV2ViIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzJlNjc2YWEwZmUyMTE4MDlhNWU3ZThhN2U0NjFkMTgy ODkwZjI1M2M1M2Y0NjEwZjI2MTAwOTRiNmZiZmI1ZQorY2hlY2tzdW09ZWU0NDdkMjg5ZjJlMGIx YThhY2Q1M2Y5ZjA3NDlkMDJhYmNiNDY0M2NhOThjNGRkNTNhNTM1MjQzZGIyMjhkNgoKRnJvbSAz YjRkMDMxNjdhYjQxZjQyZTYyMjVhZGM2ZjEwNzNiMDQ2YzY2Yzk1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDkvODNdIGdu b21lLXBob3RvczogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBzcmNwa2dzL2dub21lLXBob3Rvcy90 ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlCmluZGV4IDFlZDhiOTg2MWVjLi42ODQzMjUxNGE0 ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1waG90b3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS1waG90b3MnCiBwa2duYW1lPWdub21lLXBob3RvcwotdmVyc2lvbj0zLjM0LjIK K3ZlcnNpb249My4zNy4yCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0 eWxlPW1lc29uCkBAIC0xNiw3ICsxNiw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9QaG90b3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vZ25vbWUtcGhvdG9zLyR7dmVyc2lvbiUuKn0vZ25vbWUtcGhvdG9zLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09M2M1OWM3NmVmMjg2MThlYzA1NWExNzk5ZDEwNDAyODdiOTBhMGIw MjFmZWIwYTAyYjFlYWMyOGU5YzJlYjQxYQorY2hlY2tzdW09Y2M5NTVhYTFmZjg0YmQ2OThmOTg2 OGUxNzFhMGQ1MmRlNDIwMWE1MDMyODg4MjUxOGVjMWRhMzc0YmJmOWE4ZgogCiBidWlsZF9vcHRp b25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gZTYyNjQwYTRhOTg2 MDNhYTMzNDI5OWI1NDMwODAxNzc1ZGY4YTk0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDUwLzgzXSBlb2c6IHVwZGF0ZSB0 byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZW9nL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lb2cvdGVtcGxhdGUgYi9zcmNwa2dzL2VvZy90ZW1wbGF0ZQppbmRleCBlNGNhY2I3MDc5 ZS4uOTFlZTU0ZWRjNDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZW9nL3RlbXBsYXRlCkBAIC0xLDIwICsxLDIwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdlb2cnCiBwa2duYW1lPWVvZwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJl X2FyZ3M9Ii1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgogaG9zdG1h a2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgogbWFrZWRl cGVuZHM9ImV4ZW1waS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmV4aWYtZGV2ZWwgbGli cGVhcy1kZXZlbAotIGxpYnJzdmctZGV2ZWwgbGNtczItZGV2ZWwiCisgbGlicnN2Zy1kZXZlbCBs Y21zMi1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMg aGljb2xvci1pY29uLXRoZW1lIHNoYXJlZC1taW1lLWluZm8iCiBzaG9ydF9kZXNjPSJFeWUgb2Yg R05PTUUgZ3JhcGhpY3Mgdmlld2VyIHByb2dyYW0iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXllT2ZHbm9tZSIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS9lb2cvJHt2ZXJzaW9uJS4qfS9lb2ctJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT1lNDU0YTFhN2FhNWUzYTMzMjFlYWIwMTE2Nzc4MTEwZTVhN2E3YjYzYmNmMjE2NzZl ZGExYTdiZTE4N2M5Yzk1CitjaGVja3N1bT00YThhNjc2MzM4MDUyOTJhZDFhZjU0OWUzMTlhYTNm N2I2ZDc3NmYzM2RhYzIwZmQxOTVjZTQ2YmJkZDAyNjZhCiBzaGxpYl9wcm92aWRlcz0ibGliZW9n LnNvIgogbGliMzJkaXNhYmxlZD15ZXMKIAoKRnJvbSBjNzdlYTU4OWQ1MTc0NDUwYjRiZjFlZDg1 NjUyOWQwYTNmYWRiY2FmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTEvODNdIGV2aW5jZTogdXBkYXRlIHRvIDMuMzcuMwoK LS0tCiBzcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSB8IDE0ICsrKysrKystLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZXZpbmNlL3RlbXBsYXRlIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKaW5kZXggNDAz NWYxNWM2OTAuLjM5NmVkODUwNjM2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZXZpbmNlJwogcGtnbmFtZT1ldmluY2UKLXZlcnNpb249My4zNi43Cit2 ZXJzaW9uPTMuMzcuMwogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCi1idWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCi1jb25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9z cGVjdGlvbikgLS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZQotIC0tZW5hYmxlLWNvbWljcyAtLWRp c2FibGUtc3RhdGljIC0tZW5hYmxlLXhwcyAtLWRpc2FibGUtdDFsaWIKLSAtLWRpc2FibGUtYnJv d3Nlci1wbHVnaW4gLS1lbmFibGUtcHMiCi1ob3N0bWFrZWRlcGVuZHM9ImFkd2FpdGEtaWNvbi10 aGVtZSBnZXR0ZXh0IGdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzCitidWlsZF9zdHlsZT1tZXNv bgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKQorIC1EY29t aWNzPWVuYWJsZWQgLURwcz1lbmFibGVkIC1EeHBzPWVuYWJsZWQgLURkdmk9ZGlzYWJsZWQKKyAt RHQxbGliPWRpc2FibGVkIC1EYnJvd3Nlcl9wbHVnaW49ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9 ImFkd2FpdGEtaWNvbi10aGVtZSBnZXR0ZXh0IGd0ay1kb2MgZ2xpYi1kZXZlbCBnbm9tZS1kb2Mt dXRpbHMKICBpdHN0b29sIHBrZy1jb25maWcgcGVybC1YTUwtUGFyc2VyIGFwcHN0cmVhbS1nbGli IgogIyBYWFggbWlzc2luZyBwYWNrYWdlcyBmb3IgRFZJIGJhY2tlbmQuCiBtYWtlZGVwZW5kcz0i YWR3YWl0YS1pY29uLXRoZW1lIGRqdnVsaWJyZS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGxp YlNNLWRldmVsCkBAIC0xOSw3ICsxOSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9FdmluY2UiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT02NWQ2MWE0MjNlM2ZiYmUwNzAwMWY2NWU4NzQyMmRmYjdkMmU0MmI5ZWRm MGNhNmExZDQyN2FmOWEwNGI4ZjMyCitjaGVja3N1bT01NTQ5NmJjM2VlYjNjNmZlZTNmMWU5NzRm YzAwMDQzMWQ3ZjU0NmMwMjZmYjczZGJlOGRjNmU3MzM5MWQ2ZmM1CiAKIGJ1aWxkX29wdGlvbnM9 ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSAxNWVhNWRmY2I2ZGI4NmE2 YjBmYjJjNGNhZTc3YjM1ZjRmZDBhMDYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTIvODNdIGZpbGUtcm9sbGVyOiB1cGRh dGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2ZpbGUtcm9sbGVy L3RlbXBsYXRlCmluZGV4IDVmYjc2ZDk3MzA3Li5lYzY5ZmY5OTUzYiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZmlsZS1yb2xsZXInCiBw a2duYW1lPWZpbGUtcm9sbGVyCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM3LjkwCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWIt ZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgpAQCAtMTIsNCArMTIsNCBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRmlsZVJvbGxlciIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI5MTQ0ZGU4ZjUzNmY1ODNlYzI5ZDcw M2MyYzE3MGJmMmQwMGM2YzE2NmNkNWUzZjdlZmFiZGE1NTFmMTA0NzgKK2NoZWNrc3VtPWQ3ODRi OWIzMTViYTkzODYyMzVlNmRlNmUyNjJhZWQxNGFjODliYzBlNmVmM2E4NDhkZDNiMGYyOTM3M2Mz YTEKCkZyb20gNWRiY2ZiMDFlODQwYzA1NTViMDQ2NTM3OTdjMjFkMjhlMGU2OTJlMyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDUzLzgzXSBnbm9tZS1jYWxlbmRhcjogYnVtcAoKW2NpIHNraXBdCi0tLQogc3JjcGtncy9nbm9t ZS1jYWxlbmRhci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVt cGxhdGUgYi9zcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCmluZGV4IDljOTFjOGI1ZjRk Li4zNzRmNDU1NmZmOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY2FsZW5kYXInCiBwa2duYW1lPWdub21lLWNhbGVu ZGFyCiB2ZXJzaW9uPTMuMzYuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIHBrZy1jb25maWcgJCh2 b3B0X2lmIGdpciAnZ29iamVjdC1pbnRyb3NwZWN0aW9uJykiCiBtYWtlZGVwZW5kcz0iZXZvbHV0 aW9uLWRhdGEtc2VydmVyLWRldmVsIGdlb2NsdWUyLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbAoK RnJvbSA3ZDk4MTgyNzk1ODc4OGVkZmE0MTljMTc5MDFhYTRlNmViMDIwNWFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAxNjo1MTo1NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTQv ODNdIGdub21lLW11c2ljOiB1cGRhdGUgdG8gMy4zNy4zCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dz L2dub21lLW11c2ljL3BhdGNoZXMvcGFuZ28xNDIucGF0Y2ggfCAyOCArKysrKysrKysrKysrKysr KysrKysrCiBzcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgNyAr KystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLW11c2ljL3BhdGNoZXMvcGFuZ28xNDIu cGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW11c2ljL3BhdGNoZXMvcGFuZ28xNDIu cGF0Y2ggYi9zcmNwa2dzL2dub21lLW11c2ljL3BhdGNoZXMvcGFuZ28xNDIucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFhOThjZDkwYjJiCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoCkBAIC0w LDAgKzEsMjggQEAKK0Zyb20gZGMwZjUxYjYzZTRhN2IwOGUxMWU4ZWQwMTY0ODRlYTZmNWIyMDU3 NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgorRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAxNjo1MDoyOCArMDIwMAorU3Vi amVjdDogW1BBVENIXSBtZXNvbjogcmVtb3ZlIHBhbmdvIGRlcGVuZGVuY3kKKworVGhpcyB3YXMg YWRkZWQgYmVjYXVzZSBvZiBhIGZlYXR1cmUgbWlzc2luZyBpbiBwYW5nbyBvbGRlciB0aGFuCisx LjQ0LCBidXQgd2UgaGF2ZSB0aGlzIGJhY2twb3J0ZWQsIHNvIHdlJ3JlIG9rYXkuCisKK2h0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWdvYmplY3QvLS9pc3N1ZXMvMzEyCistLS0KKyBt ZXNvbi5idWlsZCB8IDEgLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYg LS1naXQgbWVzb24uYnVpbGQgbWVzb24uYnVpbGQKK2luZGV4IDBlZjViOWIuLjUyYjg3YTYgMTAw NjQ0CistLS0gbWVzb24uYnVpbGQKKysrKyBtZXNvbi5idWlsZAorQEAgLTQzLDcgKzQzLDYgQEAg ZGVwZW5kZW5jeSgnbGliZGF6emxlLTEuMCcsIHZlcnNpb246ICc+PSAzLjI4LjAnKQorIGRlcGVu ZGVuY3koJ2xpYm1lZGlhYXJ0LTIuMCcsIHZlcnNpb246ICc+PSAxLjkuMScpCisgZGVwZW5kZW5j eSgnbGlic291cC0yLjQnKQorIGRlcGVuZGVuY3koJ3RyYWNrZXItc3BhcnFsLTIuMCcsIHZlcnNp b246ICc+PSAyLjMuMCcpCistZGVwZW5kZW5jeSgncGFuZ28nLCB2ZXJzaW9uOiAnPj0gMS40NC4w JykKKyBkZXBlbmRlbmN5KCdweWdvYmplY3QtMy4wJywgdmVyc2lvbjogJz49IDMuMzYuMScpCisg ZGVwZW5kZW5jeSgncHkzY2Fpcm8nLCB2ZXJzaW9uOiAnPj0gMS4xNC4wJykKKyBkZXBlbmRlbmN5 KCdncmlsby0wLjMnLCB2ZXJzaW9uOiAnPj0gMC4zLjEyJywgZmFsbGJhY2s6IFsnZ3JpbG8nLCAn bGliZ3JsX2RlcCddKQorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1t dXNpYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUKaW5kZXggMTI1MTE3 MzY0MDcuLjViNzIzOTI3MzgxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1tdXNpYycKIHBrZ25hbWU9Z25vbWUtbXVzaWMKLXZl cnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzcuMwogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJn aXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtOSwxMSArOSwxMiBAQCBtYWtlZGVwZW5kcz0iZ25v bWUtZGVza3RvcC1kZXZlbCBncmlsby1kZXZlbCBsaWJtZWRpYWFydC1kZXZlbAogIHB5dGhvbjMt Z29iamVjdC1kZXZlbCBweXRob24zLWRidXMgdHJhY2tlci1kZXZlbCBnbm9tZS1vbmxpbmUtYWNj b3VudHMtZGV2ZWwKICBsaWJkYXp6bGUtZGV2ZWwgZ3JpbG8tcGx1Z2lucyBweXRob24zLWNhaXJv LWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHB5dGhvbjMtZGJ1cyBweXRob24z LWdvYmplY3QgcHl0aG9uMy1yZXF1ZXN0cwotIHRyYWNrZXIgdHJhY2tlci1taW5lcnMgZ3N0LXBs dWdpbnMtZ29vZDEgZ3JpbG8tcGx1Z2lucyBsaWJkYXp6bGUiCisgdHJhY2tlciB0cmFja2VyLW1p bmVycyBnc3QtcGx1Z2lucy1nb29kMSBncmlsby1wbHVnaW5zIGxpYmRhenpsZQorIGxpYm1lZGlh YXJ0Igogc2hvcnRfZGVzYz0iR05PTUUgbXVzaWMgcGxheWluZyBhcHBsaWNhdGlvbiIKIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9NdXNp YyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTdiODBmNjMwZDE1ODMzNDkzNWE4 NzYwMjk2NTUwY2M5MWI1MGQ2MDRmYTY4YjQwMmZlNTE2NWIxNTMxZWMzMzIKK2NoZWNrc3VtPTI0 OGJjODU4NTk2MzI3MWE0ZDJmZjdmMjQ5YzlmNzkyYWFmMGI0ZGZkZTFlOTRhYmI2OGM5MTUwMTAx NWNlYmUKIGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9tIDRiNDVjYzhhOWIzMDMzZjhlNWE4OTNiMWE4 ZGQ4OWI3Nzk2NjVhNDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjIyOjM0 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1NS84M10gZ25vbWUtcGFuZWw6IHVwZGF0ZSB0byAzLjM3 LjEKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3MvZ25v bWUtcGFuZWwvdGVtcGxhdGUgfCA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1v bi9zaGxpYnMKaW5kZXggYTcxNmMyMDI2ODIuLmNjMjVlYWY5ZTJiIDEwMDY0NAotLS0gYS9jb21t b24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTU2NCw3ICs1NjQsNyBAQCBsaWJwYWNr YWdla2l0LWdsaWIyLnNvLjE4IFBhY2thZ2VLaXQtMS4xLjEyXzEKIGxpYnBzbC5zby41IGxpYnBz bC0wLjIwLjJfMQogbGlic291cC0yLjQuc28uMSBsaWJzb3VwLTIuMzQuMF8xCiBsaWJzb3VwLWdu b21lLTIuNC5zby4xIGxpYnNvdXAtZ25vbWUtMi4zNC4wXzEKLWxpYnBhbmVsLWFwcGxldC5zby4z IGdub21lLXBhbmVsLTMuMzAuMF8xCitsaWJnbm9tZS1wYW5lbC5zby4wIGdub21lLXBhbmVsLTMu MzcuMV8xCiBsaWJ1bmludW0uc28uNSBsaWJ1bmludW0tMi43XzEKIGxpYnVuaXF1ZS0zLjAuc28u MCBsaWJ1bmlxdWUtMi45MS40XzEKIGxpYndlYmtpdDJndGstNC4wLnNvLjM3IHdlYmtpdDJndGst Mi42LjJfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUKaW5kZXggNzBmMjNiOGI1NTEuLjI0ZDlkMmI5ZWI1IDEw MDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25v bWUtcGFuZWwvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn bm9tZS1wYW5lbCcKIHBrZ25hbWU9Z25vbWUtcGFuZWwKLXZlcnNpb249My4zNC4xCi1yZXZpc2lv bj0zCit2ZXJzaW9uPTMuMzcuMQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3Vy ZQogY29uZmlndXJlX2FyZ3M9ImF4X2N2X3pvbmVpbmZvX3R6ZGlyPS91c3Ivc2hhcmUvem9uZWlu Zm8iCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBr Zy1jb25maWcgdHpkYXRhIGdldHRleHQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyLCBHRkRMLTEuMS1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZVBhbmVsIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09YTZiYzAyNTUyNTJlZWI0Yjk2NGJjYmU1NWZkNzkwOGI2OWY5MTRj MDYyYzVlYzhkZmY1YWMwMjYyZDI5YjkwZAorY2hlY2tzdW09MWQ1OThmZDY4OTMzZTc2MDE4ZjJm YjExNmE3ODcxY2JjMDAzM2MxZjEwOWJmYmZlMDhhMWVjYjU2MDY3ZDE1MgogcGF0Y2hfYXJncz0i LU5wMSIKIAogZ25vbWUtcGFuZWwtZGV2ZWxfcGFja2FnZSgpIHsKCkZyb20gZjhhYWQzNGEwNTM3 MGM2NGQ1NDg0ZDkyMDk1ZjdhZTA5Zjg2ODIyYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVn IDIwMjAgMjM6MjQ6NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDU2LzgzXSBtZXRhY2l0eTogdXBk YXRlIHRvIDMuMzcuMQoKLS0tCiAuLi4vcGF0Y2hlcy9jb21wb3NpdG9yLXZ1bGthbi1maXgtYnVp bGQucGF0Y2ggfCAyOSArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL21ldGFjaXR5L3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzMyBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bWV0YWNpdHkvcGF0Y2hlcy9jb21wb3NpdG9yLXZ1bGthbi1maXgtYnVpbGQucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL21ldGFjaXR5L3BhdGNoZXMvY29tcG9zaXRvci12dWxrYW4tZml4LWJ1 aWxkLnBhdGNoIGIvc3JjcGtncy9tZXRhY2l0eS9wYXRjaGVzL2NvbXBvc2l0b3ItdnVsa2FuLWZp eC1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTYw NTgyZGVkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21ldGFjaXR5L3BhdGNoZXMvY29t cG9zaXRvci12dWxrYW4tZml4LWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gOTkz NjFmMjhjODc2M2VhNDU2OWI1YWU5ODc2MDI4ZDUzYWM5YTIzNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEFsYmVydHMgTXVrdHVwxIF2ZWxzIDxhbGJlcnRzLm11a3R1cGF2ZWxzQGdt YWlsLmNvbT4KK0RhdGU6IFN1biwgMjQgTWF5IDIwMjAgMTM6NTg6NTEgKzAzMDAKK1N1YmplY3Q6 IFtQQVRDSF0gY29tcG9zaXRvci12dWxrYW46IGZpeCBidWlsZAorCitWS19QSFlTSUNBTF9ERVZJ Q0VfVFlQRV9SQU5HRV9TSVpFIGVudW0gd2FzIHJlbW92ZWQgaW4gMS4yLjE0MC4KKworaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL21ldGFjaXR5Ly0vaXNzdWVzLzEwCistLS0KKyBzcmMv Y29tcG9zaXRvci9tZXRhLWNvbXBvc2l0b3ItdnVsa2FuLmMgfCAyICsrCisgMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IHNyYy9jb21wb3NpdG9yL21ldGEtY29t cG9zaXRvci12dWxrYW4uYyBzcmMvY29tcG9zaXRvci9tZXRhLWNvbXBvc2l0b3ItdnVsa2FuLmMK K2luZGV4IGI4N2I1MTk0Li41M2I3YjNmZiAxMDA2NDQKKy0tLSBzcmMvY29tcG9zaXRvci9tZXRh LWNvbXBvc2l0b3ItdnVsa2FuLmMKKysrKyBzcmMvY29tcG9zaXRvci9tZXRhLWNvbXBvc2l0b3It dnVsa2FuLmMKK0BAIC04MTAsNyArODEwLDkgQEAgZGV2aWNlX3R5cGVfdG9fc3RyaW5nIChWa1Bo eXNpY2FsRGV2aWNlVHlwZSB0eXBlKQorICAgICAgICAgcmV0dXJuICJjcHUiOworICAgICAgICAg YnJlYWs7CisgCisrI2lmIFZLX0hFQURFUl9WRVJTSU9OIDwgMTQwCisgICAgICAgY2FzZSBWS19Q SFlTSUNBTF9ERVZJQ0VfVFlQRV9SQU5HRV9TSVpFOgorKyNlbmRpZgorICAgICAgIGNhc2UgVktf UEhZU0lDQUxfREVWSUNFX1RZUEVfTUFYX0VOVU06CisgICAgICAgZGVmYXVsdDoKKyAgICAgICAg IGJyZWFrOworLS0gCitHaXRMYWIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tZXRhY2l0eS90ZW1w bGF0ZSBiL3NyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUKaW5kZXggN2ZiODZmZDk2NGMuLjQzMDk3 NzZiZDU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvbWV0YWNpdHkvdGVtcGxhdGUKQEAgLTEsMTcgKzEsMTcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ21ldGFjaXR5JwogcGtnbmFtZT1tZXRhY2l0eQotdmVyc2lvbj0zLjMwLjEKK3ZlcnNpb249 My4zNy4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRl cGVuZHM9ImdldHRleHQgZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZp ZyB5ZWxwLXRvb2xzIHplbml0eSIKIG1ha2VkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzLWRldmVsIGd0ayszLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBs aWJndG9wLWRldmVsIGxpYlNNLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWGRhbWFnZS1k ZXZlbAotIGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRldmVs IGxpYlgxMS1kZXZlbCBwYW5nby1kZXZlbAotIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIFZ1 bGthbi1IZWFkZXJzIHZ1bGthbi1sb2FkZXIiCisgbGliWGZpeGVzLWRldmVsIGxpYlhpbmVyYW1h LWRldmVsIGxpYlhyZW5kZXItZGV2ZWwgbGliWDExLWRldmVsIGxpYlhyZXMtZGV2ZWwKKyBwYW5n by1kZXZlbCBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4t bG9hZGVyIgogZGVwZW5kcz0iemVuaXR5Igogc2hvcnRfZGVzYz0iV2luZG93IE1hbmFnZXIgZm9y IHRoZSBHTk9NRSBlbnZpcm9ubWVudCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tZXRhY2l0eSIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTBmMTMxMWI3YWEzOGRlNzFjNjYwODBiZDJiNzQ0ZGUyY2Q5NTgwYWZj YWVlOWM2MDk3YTdkM2Y1YzQyMTc5OGEKK2NoZWNrc3VtPTgwZDZmM2Q5NWE0MzI4ZmIyNmQwYTY0 NzFmNTc1Yjc0MmIzNmI4ZjI3MjFmOGYzYzE4MDcxOTdmYTkwMGExMjYKCkZyb20gMjdlNTg4YWE3 MWQ5MGQ0Zjg3NTUzOTE4NWFmNTg4NmQzM2M5NWY3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQg QXVnIDIwMjAgMjM6NDA6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDU3LzgzXSBnbm9tZS1mbGFz aGJhY2s6IHVwZGF0ZSB0byAzLjM3LjIKCkFkZGVkIFBBTSBjb25maWcgYXMgc3VnZ2VzdGVkIGJ5 IG1uYWJpZC4KLS0tCiAuLi4vZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5w YW0gfCAgNiArKysrCiBzcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZSAgICAgICAgICAg ICAgfCAzNCArKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1m bGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNrLnBhbQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0gYi9zcmNwa2dzL2dub21l LWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5mNzc2ZjBiMzYzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0KQEAgLTAsMCArMSw2 IEBACisjJVBBTS0xLjAKK2F1dGggICAgIGluY2x1ZGUgIHN5c3RlbS1hdXRoCithdXRoICAgICBv cHRpb25hbCBwYW1fZ25vbWVfa2V5cmluZy5zbworYWNjb3VudCAgaW5jbHVkZSAgc3lzdGVtLWF1 dGgKK3Bhc3N3b3JkIGluY2x1ZGUgIHN5c3RlbS1hdXRoCitzZXNzaW9uICBpbmNsdWRlICBzeXN0 ZW0tYXV0aApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUgYi9z cmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQppbmRleCBkMzIxMjBjYWI2Zi4uNjhhMWE2 NzRhY2YgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlCkBAIC0xLDIwICsxLDM2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mbGFzaGJhY2snCiBwa2duYW1lPWdub21lLWZsYXNoYmFj awotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249My4zNy4yCiByZXZpc2lvbj0xCiBidWlsZF9oZWxw ZXI9Z2lyCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCi1jb25maWd1cmVfYXJncz0iLS1lbmFi bGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IGF1dG9tYWtlIGdsaWItZGV2ZWwgZ2V0dGV4dCIKLW1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBn c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCi0gbGliZ2xpYi1kZXZlbCBnZGstcGl4YnVm LWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVsIHBvbGtpdC1kZXZlbAotIHB1bHNlYXVkaW8t ZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgxMS1kZXZlbCBwYW5nby1k ZXZlbAotIGxpYnhrYmZpbGUtZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0 b3AtZGV2ZWwiCitjb25maWd1cmVfYXJncz0iLS13aXRoLWNvbXBpei1zZXNzaW9uIC0tZW5hYmxl LWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBn ZXR0ZXh0IGdldHRleHQtZGV2ZWwgYXV0b21ha2UgbGlidG9vbCBnbGliLWRldmVsIgorbWFrZWRl cGVuZHM9InBhbS1kZXZlbCBlbG9naW5kLWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVsIHBv bGtpdC1kZXZlbAorIHB1bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNiLWRl dmVsIGxpYlgxMS1kZXZlbCBsaWJ4a2JmaWxlLWRldmVsCisgbGliY29tcGl6Y29uZmlnLWRldmVs IGxpYmdsaWItZGV2ZWwgcGFuZ28tZGV2ZWwgZ3RrKzMtZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbAor IGdkbS1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBnbm9t ZS1wYW5lbC1kZXZlbAorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwiCiBkZXBlbmRz PSJnbm9tZS1ibHVldG9vdGggZ25vbWUtc2Vzc2lvbiBnbm9tZS1zZXR0aW5ncy1kYWVtb24KLSBn bm9tZS1wYW5lbCBnbm9tZS10aGVtZXMtc3RhbmRhcmQgbWV0YWNpdHkiCisgZ25vbWUtcGFuZWwg Z25vbWUtdGhlbWVzLWV4dHJhIG1ldGFjaXR5Igogc2hvcnRfZGVzYz0iR05PTUUgMyBzZXNzaW9u IHdpdGggc2ltaWxhciB1c2VyIGV4cGVyaWVuY2UgdG8gdGhlIEdOT01FIDIueCBzZXJpZXMiCiBt YWludGFpbmVyPSJzaGl6b25pYyA8cmVhbHRpYXpAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9H bm9tZUZsYXNoYmFjayIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNiZTY1Mzg4 Y2QyYzhmMzk3NDFiY2MwNWRhODdlZjQwMDM1MTgzYTlhMzk1MDJkNjc2OTYyNDJjMmFlYjQ2OWMK K2NoZWNrc3VtPWFiMGRlMDBiMGY2YzliZjMwYzE5NjUxNTY0YmQ5YTc0YmJkZmI3ZDc2ZGQyMTE5 YjI2MzFhMzY3MWY4YmU2NTMKKworcG9zdF9leHRyYWN0KCkgeworCXZzZWQgLWkgJ3MvbGliY29t cGl6Y29uZmlnID49IDBcLjlcLjE0XC4wL2xpYmNvbXBpemNvbmZpZyA+PSAwLjguMTYuMC8nIFwK KwkJY29uZmlndXJlLmFjCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJYXV0b3JlY29uZiAtaWYK K30KKworcG9zdF9pbnN0YWxsKCkgeworCXZpbnN0YWxsICR7RklMRVNESVJ9L2dub21lLWZsYXNo YmFjay5wYW0gNjQ0IC9ldGMvcGFtLmQgZ25vbWUtZmxhc2hiYWNrCisJdnNlZCAtaSAtZSAicy8g LS1zeXN0ZW1kLy9nIiBcCisJCSR7REVTVERJUn0vdXNyL2xpYmV4ZWMvZ25vbWUtZmxhc2hiYWNr LXtjb21waXosbWV0YWNpdHl9Cit9CgpGcm9tIDBiN2JmYTQ0ZDE4YWQ1M2U3YTQ5NDI3NWY5NTc4 MjY3NTBhZDFjNTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjEyOjE2ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA1OC84M10gdGVwbDogdXBkYXRlIHRvIDQuOTkuMwoKLS0tCiBj b21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy90ZXBsL3Bh dGNoZXMvbm8tZ2lyLnBhdGNoIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog c3JjcGtncy90ZXBsL3RlbXBsYXRlICAgICAgICAgICAgIHwgMTAgKysrLS0tLQogMyBmaWxlcyBj aGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1v bi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGNjMjVlYWY5ZTJiLi40MWM3Y2YyZjlhOSAx MDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zNTUwLDcg KzM1NTAsNyBAQCBsaWJ3eF9ndGszdV9tZWRpYS0zLjAuc28uMCB3eFdpZGdldHMtZ3RrMy0zLjAu NF8xCiBsaWJ3eF9ndGszdV9yaWJib24tMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQog bGlid3hfZ3RrM3VfZ2wtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQogbGlid3hfZ3Rr M3Vfc3RjLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKLWxpYnRlcGwtNC5zby4wIHRl cGwtNC4yLjBfMQorbGlidGVwbC01LnNvLjAgdGVwbC00LjIuMF8xCiBsaWJub21hY3NDb3JlLnNv LjMgbm9tYWNzLTMuMTAuMl80CiBsaWJhdWRpdC5zby4xIGxpYmF1ZGl0LTIuOC40XzEKIGxpYmF1 cGFyc2Uuc28uMCBsaWJhdXBhcnNlLTIuOC40XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGVwbC9w YXRjaGVzL25vLWdpci5wYXRjaCBiL3NyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTM0MDAyN2I3ZjEKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKQEAgLTAsMCAr MSw0NSBAQAorRnJvbSAxN2U1N2VkMTU2NDUwZmU1OTAwMWNiMGExNGY4ZDg3YzQwZDZiZjc3IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CitEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjA5OjE1ICswMjAwCitTdWJqZWN0 OiBbUEFUQ0hdIEFsbG93IGRpc2FibGluZyBnaXIKKworLS0tCisgbWVzb25fb3B0aW9ucy50eHQg fCA1ICsrKysrCisgdGVwbC9tZXNvbi5idWlsZCAgfCA0ICsrKysKKyAyIGZpbGVzIGNoYW5nZWQs IDkgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IG1lc29uX29wdGlvbnMudHh0IG1lc29uX29w dGlvbnMudHh0CitpbmRleCBjYWQ5N2RkLi41ZTk5MDg0IDEwMDY0NAorLS0tIG1lc29uX29wdGlv bnMudHh0CisrKysgbWVzb25fb3B0aW9ucy50eHQKK0BAIC0zLDMgKzMsOCBAQCBvcHRpb24oCisg ICB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSwKKyAgIGRlc2NyaXB0aW9uOiAnQnVpbGQg QVBJIHJlZmVyZW5jZSAocmVxdWlyZXMgZ3RrLWRvYyknCisgKQorK29wdGlvbigKKysgICdnaXIn LAorKyAgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwKKysgIGRlc2NyaXB0aW9uOiAnQnVp bGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uJworKykKK2RpZmYgLS1naXQgdGVwbC9tZXNvbi5idWls ZCB0ZXBsL21lc29uLmJ1aWxkCitpbmRleCAyMjZkOTEzLi5iMzVkZDNhIDEwMDY0NAorLS0tIHRl cGwvbWVzb24uYnVpbGQKKysrKyB0ZXBsL21lc29uLmJ1aWxkCitAQCAtMTY0LDYgKzE2NCw4IEBA IFBLR19DT05GSUcuZ2VuZXJhdGUodGVwbF9saWIsCisgICBsaWJyYXJpZXM6IFRFUExfUFVCTElD X0RFUFMsCisgKQorIAorK2lmIGdldF9vcHRpb24oJ2dpcicpCisrCisgR05PTUUuZ2VuZXJhdGVf Z2lyKAorICAgdGVwbF9saWIsCisgICBleHBvcnRfcGFja2FnZXM6ICd0ZXBsLUAwQCcuZm9ybWF0 KFRFUExfQVBJX1ZFUlNJT04pLAorQEAgLTE4MiwzICsxODQsNSBAQCBHTk9NRS5nZW5lcmF0ZV9n aXIoCisgICAjIFN1cHBvcnQgZm9yIGRlcHMgYmVpbmcgYnVpbHQgYXMgc3VicHJvamVjdHM6Cisg ICBkZXBlbmRlbmNpZXM6IFRFUExfREVQUywKKyApCisrCisrZW5kaWYKKy0tIAorMi4yOC4wCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGVwbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdGVwbC90ZW1wbGF0 ZQppbmRleCBmNGQzNzFkNjAzZC4uODkzMzNjNzdhMTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdGVw bC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RlcGwnCiBwa2duYW1lPXRlcGwKLXZlcnNpb249NC40LjAK K3ZlcnNpb249NC45OS4zCiByZXZpc2lvbj0xCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCi1i dWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRy b3NwZWN0aW9uKSIKK2J1aWxkX3N0eWxlPW1lc29uCitidWlsZF9oZWxwZXI9Z2lyCitjb25maWd1 cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2lyIGdpcikiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2 ZWwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJhbXRrLWRldmVsIGxpYmdsaWItZGV2ZWwgZ3Rr c291cmNldmlldzQtZGV2ZWwgZ3RrKzMtZGV2ZWwKICBsaWJ4bWwyLWRldmVsIHVjaGFyZGV0LWRl dmVsIgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1RlcGwiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT1lNmY2NjczYThhMjdlOGYyODA3MjVkYjhmYmFjZWM3OWIyMDY3NmFlMDU1ODc1 NTIzOWQxNWE5ODA4ZmFhMjU2CitjaGVja3N1bT1lNGFmZTYzNGYwMGM1NTMwYWU1MmQ3MDZkOWMz YTliZGYyZGJjNzRiMDQ1OWEzNjM3MDNhMGE5YjRhNWUzMTU3CiAKIGJ1aWxkX29wdGlvbnM9Imdp ciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSA2Y2JiZmU1OGFhMmY0YzlkOWY2 MzBmYjRkMjAyMWQxYTY1MGQ1YjQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAw MDoxNTo1MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTkvODNdIGdlZGl0OiB1cGRhdGUgdG8gMy4z Ny4zCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9nZWRpdC90 ZW1wbGF0ZSB8IDIxICsrKysrKysrKystLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMSBp bnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJz IGIvY29tbW9uL3NobGlicwppbmRleCA0MWM3Y2YyZjlhOS4uZjVhYWNmOTFiZmIgMTAwNjQ0Ci0t LSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzY3Nyw3ICszNjc3LDcg QEAgbGlicWh0dHBlbmdpbmUuc28uMSBxaHR0cGVuZ2luZS0xLjAuMV8xCiBsaWJxbWRuc2VuZ2lu ZS5zby4wIHFtZG5zZW5naW5lLTAuMS4wXzEKIGxpYnlhbmcuc28uMSBsaWJ5YW5nLTEuMHI1XzEK IGxpYmh0cC5zby4yIGxpYmh0cC0wLjUuMzBfMQotbGliZ2VkaXQtMy4zNi5zbyBnZWRpdC0zLjM2 LjFfMQorbGliZ2VkaXQtMy4zOC5zbyBnZWRpdC0zLjM3LjNfMQogbGliY2hld2luZy5zby4zIGxp YmNoZXdpbmctMC41LjFfMQogbGliZHdhcnZlcy5zby4xIHBhaG9sZS0xLjEyXzEKIGxpYmR3YXJ2 ZXNfZW1pdC5zby4xIHBhaG9sZS0xLjEyXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2VkaXQvdGVt cGxhdGUgYi9zcmNwa2dzL2dlZGl0L3RlbXBsYXRlCmluZGV4IDRlMjczYWFmMTgyLi5hMTNlOTFm NWZjMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dl ZGl0L3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZWRp dCcKIHBrZ25hbWU9Z2VkaXQKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzcuMwogcmV2aXNp b249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogcHljb21waWxlX2Rp cnM9InVzci9saWIvZ2VkaXQvcGx1Z2lucyIKLWNvbmZpZ3VyZV9hcmdzPSItRHBsdWdpbnM9dHJ1 ZSAtRHZhcGk9JCh2b3B0X2lmIHZhbGEgdHJ1ZSBmYWxzZSkKLSAtRGludHJvc3BlY3Rpb249JCh2 b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKK2NvbmZpZ3VyZV9hcmdzPSItRHBsdWdpbnM9dHJ1ZQor ICQodm9wdF9ib29sIGdpciB2YXBpKSAkKHZvcHRfYm9vbCBnaXIgaW50cm9zcGVjdGlvbikiCiBo b3N0bWFrZWRlcGVuZHM9Iml0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRldmVsIGdkay1waXhidWYg cGVybCBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgdmFsYSkiCisgJCh2b3B0X2lmIGdpciB2YWxh KSIKIG1ha2VkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGdzcGVsbC1k ZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbAogIGxpYnBlYXMtZGV2ZWwgbGlic291cC1kZXZlbCB0 ZXBsLWRldmVsICQodm9wdF9pZiBnaXIgJ3B5dGhvbjMtZ29iamVjdC1kZXZlbCcpIgogZGVwZW5k cz0iZGVza3RvcC1maWxlLXV0aWxzIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgaXNvLWNvZGVz IgpAQCAtMTcsMjMgKzE3LDIyIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvQXBwcy9HZWRpdCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTZkYzM4ZWRhMjI3ZDFjMzY4ZTAzOWU5YmZmNDg1ZDBiZWU5YTQ5ZDVmOTU2MGMzODdl ZTA4ZjU4MThhNGUzODcKLXNobGliX3Byb3ZpZGVzPSJsaWJnZWRpdC0zLjM2LnNvIgorY2hlY2tz dW09ODEzN2M3ZDk2YTE5NDUyZWUwNGM5MTVjYjI1YmE0ZGExMzQ2YWY4ZmUwNDk3NDU2NDE3Y2Nm YTYyOGYxMDZkMworc2hsaWJfcHJvdmlkZXM9ImxpYmdlZGl0LTMuMzguc28iCiBweXRob25fdmVy c2lvbj0zCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIgogCiBnZWRpdC1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9IiR7c291cmNlcGtnfT49 JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBndGtzb3VyY2V2aWV3LWRldmVsIGxpYnBlYXMtZGV2ZWwi CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGd0a3NvdXJj ZXZpZXc0LWRldmVsCisJIGxpYnBlYXMtZGV2ZWwgdGVwbC1kZXZlbCIKIAlzaG9ydF9kZXNjKz0i IC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNs dWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2ly IiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2VkaXQvZ2lyLTEuMAotCQlmaQotCQlpZiBb ICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJ CWZpCiAJfQoKRnJvbSAwMTQxM2FkNzJlNDVmMmQ1YjRlYTZkMjM4ZGIxYzQzMTRmYjk0YjdiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDoxODo0OSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggNjAvODNdIGdlZGl0LXBsdWdpbnM6IHJlYnVpbGQgYWdhaW5zdCBnZWRpdC0zLjM3LjMK Ci0tLQogc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9n ZWRpdC1wbHVnaW5zL3RlbXBsYXRlIGIvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlCmlu ZGV4IGYyZjk0ZTYzZjU5Li5mMTZjMzA3ZTA1OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZWRpdC1w bHVnaW5zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dlZGl0LXBsdWdpbnMnCiBwa2duYW1l PWdlZGl0LXBsdWdpbnMKIHZlcnNpb249My4zNi4yCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9zdHlsZT1tZXNvbgogcHljb21waWxlX2RpcnM9InVzci9saWIvZ2VkaXQvcGx1Z2lucyIK IGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2 YWxhIGFwcHN0cmVhbS1nbGliIHB5dGhvbjMtZ29iamVjdAoKRnJvbSA4Nzc2OWNkM2RlMTQwYWFj ZDA0MGQ0YjM5YjdmODc1ZTIxYjlhOWRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAy MCAwMDozMzo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjEvODNdIGdub21lLWxhdGV4OiB1cGRh dGUgdG8gMy4zNy4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUgfCA2ICsrKy0t LQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1sYXRl eC90ZW1wbGF0ZQppbmRleCA5MGQ2MGJlODYwYS4uZTRlMmY2MjYyOTYgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1sYXRleC90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWxhdGV4Jwog cGtnbmFtZT1nbm9tZS1sYXRleAotdmVyc2lvbj0zLjMyLjAKLXJldmlzaW9uPTIKK3ZlcnNpb249 My4zNy4yCityZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtYXBwc3RyZWFtLXV0aWwgLS1kaXNh YmxlLWRjb25mLW1pZ3JhdGlvbgpAQCAtMTUsNyArMTUsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvR05PTUUtTGFUZVgiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wZjA2OWM3YjRjNjc1NDI1NWExYzdlM2UzYjA1 MDkyNWQ4MDc2ZjU1NDU4NTI2YTMwYWI1OWUwYTdkNTJhY2M5CitjaGVja3N1bT1hMzUyMWUyMWQ0 Y2M1YmM2MGZmNjk0ZjUyMDlmNDk5Y2FhODBmMzk1Y2U1ZDYyY2I2MzJlNDI0M2FkMjdiYWQwCiAK IGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBm ZjM4ZGViMmNiYzgwOTZhYjBmMTQ5OGZmOWNhMzE4YzA1N2NmMjExIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog U3VuLCAxNiBBdWcgMjAyMCAwNDoyMzozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjIvODNdIGJh b2JhYjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUgYi9zcmNwa2dzL2Jhb2JhYi90ZW1w bGF0ZQppbmRleCBhMDI4YmU0Y2Q1Yi4uNjA4M2E3OGY1NGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv YmFvYmFiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlCkBAIC0xLDYgKzEs NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFvYmFiJwogcGtnbmFtZT1iYW9iYWIKLXZlcnNp b249My4zNC4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u CiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBpdHN0b29sIGdsaWItZGV2ZWwg dmFsYSIKQEAgLTExLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4xLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvYWN0aW9uL3Nob3cvQXBwcy9E aXNrVXNhZ2VBbmFseXplciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTdmOTgx ZDRmMTM1ZTRmODBmYmEzZjY2ZTg2YjBlZWVkYzk0YTI0MzQ2NDkyNjJmZjAxYTVmMGNiMDI3YjIw YzUKK2NoZWNrc3VtPTQxYmUzOGU0M2ZhYWZiMzkyNzY5Yzg3OWUxZTc2MmNhMzhlMmQ3NTFjMTcx YmVhMWY5MDQ3MjkwYTg4M2ZlZmUKCkZyb20gYzE0NTc4MTgxMTg1NTRmMWQwZGI0YWMxNTJkNjQx NTg2ZjMwMTYyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MzE6NTMgKzAy MDAKU3ViamVjdDogW1BBVENIIDYzLzgzXSBnbm9tZS1ib3hlczogdXBkYXRlIHRvIDMuMzcuOTAK Ci0tLQogc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZSB8IDcgKysrKy0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLWJveGVzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQpp bmRleCAwZmEyYWU3NmM3Mi4uZmQ4ZmViY2JjZDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUt Ym94ZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQpAQCAtMSw2 ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJveGVzJwogcGtnbmFtZT1nbm9t ZS1ib3hlcwotdmVyc2lvbj0zLjM2LjUKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVp bGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtOCw3ICs4LDggQEAgaG9zdG1h a2VkZXBlbmRzPSJnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGdsaWItZGV2ZWwiCiBt YWtlZGVwZW5kcz0iY2x1dHRlci1ndGstZGV2ZWwgZnJlZXJkcC1kZXZlbCBndGstdm5jLWRldmVs IGxpYmFyY2hpdmUtZGV2ZWwKICBsaWJnbGliLWRldmVsIGxpYmd1ZGV2LWRldmVsIGxpYm9zaW5m by1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbGlic291cC1kZXZlbAogIGxpYnVzYi1kZXZlbCBsaWJ2 aXJ0LWdsaWItZGV2ZWwgbGlieG1sMi1kZXZlbCBzcGljZS1ndGstZGV2ZWwgc3BpY2UtcHJvdG9j b2wKLSB0cmFja2VyLWRldmVsIHZhbGEtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB2dGUzLWRldmVs IgorIHRyYWNrZXItZGV2ZWwgdmFsYS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHZ0ZTMtZGV2ZWwg Z3Rrc291cmNldmlldzQtZGV2ZWwKKyBsaWJoYW5keS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3At ZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgbGlib3NpbmZvIGxpYnZpcnQtZ2xpYiBxZW11 IHRyYWNrZXIiCiBzaG9ydF9kZXNjPSJHTk9NRSAzIGFwcGxpY2F0aW9uIHRvIGFjY2VzcyByZW1v dGUgb3IgdmlydHVhbCBzeXN0ZW1zIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKQEAgLTE2LDQgKzE3LDQgQEAgbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0JveGVzIgogY2hhbmdl bG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtYm94ZXMv Z25vbWUtMy0zNi9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGM1NGNh YmUzNTVlODc4ZDA0NTc1MTczNDZlNDI0N2E4NjBiNjg4MzQxM2QzYmY3NzY4MWRjZDExZWY0MWJj ZQorY2hlY2tzdW09MTIyZGEzOTEzMWFjYjk3MWIzZTc2NDAwNmM1YzM2OTg0NDdhNWQ5MjIwYWFi MzM4M2RiNjNjMDkyOWRlOTE1ZAoKRnJvbSBkOWE1ZDNkNjQ5ZjVlZGQ3NDg1NzNkNTY2ZjI4MDgw YzcwZDhlMjBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDozNToyNCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggNjQvODNdIGdub21lLWNhbGN1bGF0b3I6IHVwZGF0ZSB0byAzLjM3 LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2Fs Y3VsYXRvci90ZW1wbGF0ZQppbmRleCAwNjIxNGIwOGQ5Yi4uODExMTI4NDRhNGUgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LWNhbGN1bGF0b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnbm9tZS1jYWxjdWxhdG9yJwogcGtnbmFtZT1nbm9tZS1jYWxjdWxhdG9yCi12ZXJzaW9uPTMu MzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM3LjkwCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGdldHRl eHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSIKQEAgLTE0LDQgKzE0LDQgQEAg bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvQ2FsY3VsYXRvciIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNv bnRlbnQuY29tL0dOT01FL2dub21lLWNhbGN1bGF0b3IvZ25vbWUtMy0zMi9ORVdTIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YTJlODMwZjljOTg1NmZhZDY1ZGFkMWQ2YzBhZTZh YmFkMGYwYjQ5NmM5OTg0YWMwMDUzMTVjNWNjNDIyMGRiMworY2hlY2tzdW09Yjg5NWI1ZWM2MmI5 NDk1ODEwYjBhNmNiOTAxNThlNmQxNjA3MDk2ZDE1MGI0YWM1Y2RjZjhhZWZjZWRlZDRjMQoKRnJv bSAxMjVmY2Q0YTUxNzNiZTk5MmU2YzIzZDM3MGE5OGQ0MjM3NDBmMmYyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDo0NDo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjUvODNd IGdub21lLWRpc2stdXRpbGl0eTogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBzcmNwa2dzL2dub21l LWRpc2stdXRpbGl0eS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGlz ay11dGlsaXR5L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUK aW5kZXggZGM2N2JiYmE3ODUuLjE5NTU2MTE4NTBiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LWRpc2stdXRpbGl0eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRpc2st dXRpbGl0eScKIHBrZ25hbWU9Z25vbWUtZGlzay11dGlsaXR5Ci12ZXJzaW9uPTMuMzYuMQotcmV2 aXNpb249MgordmVyc2lvbj0zLjM3LjIKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBj b25maWd1cmVfYXJncz0iLURsb2dpbmQ9bm9uZSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZl bCBndGstZG9jIGludGx0b29sIHBrZy1jb25maWcgbGlieHNsdCIKQEAgLTEzLDUgKzEzLDUgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L0Rpc2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzkxYjE4ZjIzMWJjYmM2 ZDk0MWFmMzgzN2NhNWJlMTRmMjE1N2U1Y2UzZDMyYmRjNWI5ZWI4OTQ3ZTEyYjQxNAorY2hlY2tz dW09MWM5OThmNTU0ZGZlYzhiNDIzYzY4NTg3MjM1M2E1ZGJjZjY1OGM5ZjdiYTQ3N2NhYzc2OGE5 MjU2MzY0MzMwOAogbGliMzJkaXNhYmxlZD15ZXMKCkZyb20gZWIwMDYzMjIyN2FlM2JhZjdmYTFl ODE5MDE5ZTEwMDY0MjlkMWEzZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6 NDk6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDY2LzgzXSBnbm9tZS1zY3JlZW5zaG90OiB1cGRh dGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUgfCA4 ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZQppbmRleCA5OWNhYjYyZWVlMS4uNTQxMTZhYTgx ZWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dub21lLXNjcmVlbnNob3QnCiBwa2duYW1lPWdub21lLXNjcmVlbnNo b3QKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuOTAKK3JldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImFwcGRhdGEtdG9vbHMgZ2V0 dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJsaWJjYW5i ZXJyYS1kZXZlbCIKK21ha2VkZXBlbmRzPSJsaWJjYW5iZXJyYS1kZXZlbCBsaWJoYW5keTEtZGV2 ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJTY3JlZW5zaG90 IGNhcHR1cmUgdXRpbGl0eSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290 dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdl PSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2NyZWVuc2hvdCIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTMzNDk1ZDg5MjcwNzE3OTI1NGI3NDNmOGY3MGM5 YTgyY2RlNWM1ZjJjN2VhM2RiNjM0YTJiYTdlYTczMzEyNjYKK2NoZWNrc3VtPTdhMzljYzc4NDdh NDgyZmE5YWFkOTg5Y2U2NWRmMGVmNWVlOWVmNzlhY2VkNzVkMTkzMWI3ZTllODZjMTBmMTMKCkZy b20gYzY1YjU0NDgxMzRkYzU2YWM5OGE4NDQ0MzYwZGE1Y2U1MjJjMGI0NyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTE6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDY3Lzgz XSBnbm9tZS1zeXN0ZW0tbW9uaXRvcjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9n bm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90 ZW1wbGF0ZQppbmRleCBmZjExYjM1OTBhNC4uYTQ2ODE0YTI2M2IgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zeXN0 ZW0tbW9uaXRvci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dub21lLXN5c3RlbS1tb25pdG9yJwogcGtnbmFtZT1nbm9tZS1zeXN0ZW0tbW9uaXRvcgotdmVy c2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2UiCkBAIC0xMSw0ICsxMSw0IEBAIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9T eXN0ZW1Nb25pdG9yIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODY2YjQ3YWIw ZjRjNzViMGVjNTdkNjMwMDMzN2E3MzczNDYzYWFhZDVkZjk1ZWRkZmU1MzU0YzIyYmU3YmNhMQor Y2hlY2tzdW09YTJiZjAwYTc0NGJlODM2Mjc5ZTFkMTJkNDBjZmIzN2I4YWQ4ZTE1MGFhOWVmNjg3 ODE3NDM5OWJmMjQ1MWYxNAoKRnJvbSA5MDUzNjljZjU4NzRmYjE4MzY5MzEzMjQ3MjgzMDg0ZmI2 ZjQ2M2NmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDo1NjozNCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNjgvODNdIGd0a3NvdXJjZXZpZXc0OiB1cGRhdGUgdG8gNC43LjkwCgot LS0KIHNyY3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUgfCAyOSArKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDEzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUgYi9z cmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlCmluZGV4IDY4NDg3MTY3NzNjLi45MjZhMzlm ZDIzOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlCkBAIC0xLDMyICsxLDM3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdndGtzb3VyY2V2aWV3NCcKIHBrZ25hbWU9Z3Rrc291cmNldmlldzQKLXZl cnNpb249NC4yLjAKLXJldmlzaW9uPTIKK3ZlcnNpb249NC43LjkwCityZXZpc2lvbj0xCiB3cmtz cmM9Imd0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufSIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK K2J1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIt LWVuYWJsZS1nbGFkZS1jYXRhbG9nICQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCi0g JCh2b3B0X2VuYWJsZSB2YWxhKSAkKHZvcHRfZW5hYmxlIGd0a19kb2MgZ3RrLWRvYykiCitjb25m aWd1cmVfYXJncz0iLURnbGFkZV9jYXRhbG9nPXRydWUgJCh2b3B0X2Jvb2wgZ2lyIGdpcikKKyAk KHZvcHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBndGtfZG9jKSIKIGhvc3Rt YWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIGxpYnhzbHQgcGtnLWNv bmZpZwotICQodm9wdF9pZiB2YWxhIHZhbGEpICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgor ICQodm9wdF9pZiBnaXIgdmFsYSkgJCh2b3B0X2lmIGd0a19kb2MgZ3RrLWRvYykiCiBtYWtlZGVw ZW5kcz0iZ2xhZGUzLWRldmVsIGd0ayszLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieG1sMi1kZXZl bAotICQodm9wdF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBzaG9ydF9k ZXNjPSJUZXh0IHdpZGdldCB0aGF0IGV4dGVuZHMgR1RLKyBHdGtUZXh0VmlldyB3aWRnZXQiCiBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2pl Y3RzL0d0a1NvdXJjZVZpZXciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ3Rrc291cmNldmll dy8ke3ZlcnNpb24lLip9L2d0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT1jNDMxZWIyMzRkYzgzYzc4MTllNThmNzdkZDJhZjk3MzI1MmM3NzUwZGExYzlkMTI1ZGRjOTQy NjhmOTRmNjc1CitjaGVja3N1bT05ODNiZGNiODhmOTgyODViM2I5OTdjOTMzNTA1N2M4ZmJjNDVh YWQwYTdjMTNjYjY1ZWIzNjU1NjdlMjZiYWFmCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1i dWlsZF9vcHRpb25zPSJnaXIgdmFsYSBndGtfZG9jIgorYnVpbGRfb3B0aW9ucz0iZ2lyIGd0a19k b2MiCiBkZXNjX29wdGlvbl9ndGtfZG9jPSJCdWlsZCBBUEkgZG9jcyB2aWEgZ3RrLWRvYyIKLWJ1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKIAogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19kZWZh dWx0Kz0iIGd0a19kb2MiCiBmaQogCisjIE5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KKwog Z3Rrc291cmNldmlldzQtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCBs aWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKQEAgLTM2LDExICs0 MSw5IEBAIGd0a3NvdXJjZXZpZXc0LWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGli Lyouc28iCiAJCXZtb3ZlIHVzci9zaGFyZS9nbGFkZQogCQl2bW92ZSB1c3Ivc2hhcmUvZ3RrLWRv YwotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KLQkJCXZtb3ZlIHVzci9zaGFy ZS92YWxhCi0JCWZpCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92 ZSB1c3Ivc2hhcmUvZ2lyLTEuMAorCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CiB9 CgpGcm9tIGY0NmMxYmJiOWNkMmUyMDYyMTI4ZGUxMDdjNTU4NzdlNjA0N2ZkZjYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjI4OjE0ICswMjAwClN1YmplY3Q6IFtQQVRDSCA2 OS84M10gc3lzcHJvZjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogY29tbW9uL3NobGlicyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIC4uLi9wYXRjaGVz L2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaCAgICAgICAgfCAxMiAtLS0tLS0tLS0t LS0KIHNyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoICAgICAgICAgICAgICAgICAg fCAxMCArKysrKysrKysrCiBzcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQgKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCsp LCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2YvcGF0 Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1v bi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGY1YWFjZjkxYmZiLi40MGJiZDRjNGQ0MCAx MDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zMTU3LDgg KzMxNTcsOCBAQCBsaWJtaXJhZ2Uuc28uMTEgbGlibWlyYWdlLTMuMS4wXzEKIGxpYndraHRtbHRv eC5zby4wIGxpYndraHRtbHRvcGRmLTAuMTIuNV8xCiBsaWJpeG1sLnNvLjEwIGxpYnVwbnAxLjgt MS44LjJfMQogbGlidXBucC5zby4xMyBsaWJ1cG5wMS44LTEuOC40XzEKLWxpYnN5c3Byb2YtMy5z byBzeXNwcm9mLTMuMzQuMF8xCi1saWJzeXNwcm9mLXVpLTMuc28gc3lzcHJvZi0zLjM0LjBfMQor bGlic3lzcHJvZi00LnNvIHN5c3Byb2YtMy4zNy45MF8xCitsaWJzeXNwcm9mLXVpLTQuc28gc3lz cHJvZi0zLjM3LjkwXzEKIGxpYm1vempzLTUyLnNvIG1vempzNTItNTIuMy4wXzEKIGxpYm1vempz LTUyLnNvLjAgbW96anM1Mi01Mi4zLjBfMQogbGlidmFsYS0wLjQ4LnNvLjAgbGlidmFsYS0wLjQ4 LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxsb2NzLWJ5LXNpemUt Z3NpemUtZm9ybWF0LnBhdGNoIGIvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxsb2NzLWJ5LXNp emUtZ3NpemUtZm9ybWF0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZmVl MDdlYmJjMi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxsb2Nz LWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBA QAotZGlmZiAtcmF1TiBzcmMvdGVzdHMvYWxsb2NzLWJ5LXNpemUuYyBzcmMvdGVzdHMvYWxsb2Nz LWJ5LXNpemUuYwotLS0tIHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jCTIwMjAtMDMtMjIgMjA6 MDA6MTIuNjc3MDQ4ODIyICswMTAwCi0rKysgc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMJMjAy MC0wMy0yMiAyMDowMTowNy4wMDA0MTgzNjEgKzAxMDAKLUBAIC0xMDksNyArMTA5LDcgQEAKLSAg ICAgewotICAgICAgIGNvbnN0IEl0ZW0gKml0ZW0gPSAmZ19hcnJheV9pbmRleCAoYXIsIEl0ZW0s IGkpOwotIAotLSAgICAgIGdfcHJpbnQgKCIlIkdfR1VJTlQ2NF9GT1JNQVQiLCUiR19HVUlOVDY0 X0ZPUk1BVCIsJSJHX0dVSU5UNjRfRk9STUFUIlxuIiwKLSsgICAgICBnX3ByaW50ICgiJSJHX0dT SVpFX0ZPUk1BVCIsJSJHX0dTSVpFX0ZPUk1BVCIsJSJHX0dTSVpFX0ZPUk1BVCJcbiIsCi0gICAg ICAgICAgICAgICAgaXRlbS0+c2l6ZSwgaXRlbS0+Y21wLCBpdGVtLT5jb3VudCk7Ci0gICAgIH0K LSB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3Ny Y3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5hYjdjMmMxYzE2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv c3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBzcmMvbGli c3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jb25kaXRpb24uYworKysrIHNyYy9saWJz eXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5jCitAQCAtMjY5LDYgKzI2 OSw3IEBAIHN5c3Byb2ZfY2FwdHVyZV9jb25kaXRpb25fY29weSAoY29uc3QgU3lzcHJvZkNhcHR1 cmVDb25kaXRpb24gKnNlbGYpCisgICAgIH0KKyAKKyAgIHN5c3Byb2ZfYXNzZXJ0X25vdF9yZWFj aGVkICgpOworKyAgcmV0dXJuIE5VTEw7CisgfQorIAorIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQg YS9zcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUgYi9zcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUKaW5k ZXggNjhiY2E2MDI1NTMuLjE1MTY2ZTI4ZTFhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3N5c3Byb2Yv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnc3lzcHJvZicKIHBrZ25hbWU9c3lzcHJvZgotdmVyc2lvbj0z LjM2LjAKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNv bmZpZ3VyZV9hcmdzPSItRGVuYWJsZV9ndGs9dHJ1ZSAtRHN5c3RlbWR1bml0ZGlyPWRlbGV0ZW1l IgpAQCAtMTEsNyArMTEsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwOi8vc3lzcHJvZi5jb20vIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09ODY3MGRiNGRhY2Y3YjIxOWQzMGM1NzVjNDY1YjE3YzhlZDY3MjRkYmFkZTM0N2Yy Y2RlOTU0OGJmZjAzOTEwOAorY2hlY2tzdW09NjE4MTBjMzZiYzBiZmI1Y2U4ODA4ZTZiMmZiZWZj M2NlMGM1MTBjNTdiMWQyNmJiYTY2Y2M2MzZmNzViODA0MQogCiAjIGZvciBJVFMgcnVsZXMKIGlm IFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSBkZDU3NjMyMTdhNWFiMmE3MjU5OGE2MDIy MDhkNWMyOTBlMWUzMDdlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjoyMzow NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzAvODNdIE5ldyBwYWNrYWdlOiBtb3pqczc4LTc4LjEu MAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjcGtncy9tb3pqczc4LWRldmVsICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsKIC4uLi8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMucGF0Y2ggICAgICB8ICAyNyAr KysrKwogc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUucGF0Y2ggIHwgIDIy ICsrKysKIC4uLi9tb3pqczc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaCAgICB8ICAx NiArKysKIC4uLi9tb3pqczc4L3BhdGNoZXMvMDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoICB8ICAx NyArKysKIC4uLi8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoICAgICB8ICAx MiArKwogLi4uLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2ggICAgICAgIHwgIDEw ICsrCiAuLi4vcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dpZGVmc19oLnBhdGNoICAgICAgfCAgMTEg KysKIHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaCAgICB8IDEwNyAr KysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICAgICB8ICA3MyArKysrKysrKysrKysKIHNyY3BrZ3MvbW96anM3OC91cGRhdGUgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiAxMiBmaWxlcyBjaGFuZ2VkLCAyOTggaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbW96anM3OC1kZXZlbAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlv bGF0aW9ucy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVz LzAwMi1maXgtc29uYW1lLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25rZXktY2hlY2tzLWRp c2FibGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8w MDYtbW96anM3OC5wYy1ob25vci1zeXNyb290LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZpeC1taXBzLXNnaWRlZnNfaC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbW96anM3OC91cGRhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJz IGIvY29tbW9uL3NobGlicwppbmRleCA0MGJiZDRjNGQ0MC4uN2FlNDJmZGE0YzMgMTAwNjQ0Ci0t LSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzUzNSw2ICszNTM1LDcg QEAgbGliS0Y1U3luZGljYXRpb24uc28uNSBzeW5kaWNhdGlvbi01LjUwLjBfMQogbGlibHFyLTEu c28uMCBsaWJscXItMC40LjJfMQogbGlibW96anMtNjAuc28uMCBtb3pqczYwLTYwLjAuMl8xCiBs aWJtb3pqcy02OC5zby4wIG1vempzNjgtNjguOC4wXzEKK2xpYm1vempzLTc4LnNvLjAgbW96anM3 OC03OC4xLjBfMQogbGliZWJ1cjEyOC5zby4xIGxpYmVidXIxMjgtMS4yLjRfMQogbGliZ3Rrc291 cmNldmlldy00LnNvLjAgZ3Rrc291cmNldmlldzQtNC4wLjJfMQogbGlid3hfZ3RrM3VfcHJvcGdy aWQtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9t b3pqczc4LWRldmVsIGIvc3JjcGtncy9tb3pqczc4LWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAw CmluZGV4IDAwMDAwMDAwMDAwLi43NzEzNTk5MzU2ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbW96anM3OC1kZXZlbApAQCAtMCwwICsxIEBACittb3pqczc4ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAxLXNpbGVu Y2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAx LXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5kYzAxMTk0YjY0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bW96anM3OC9wYXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9ucy5wYXRjaApAQCAt MCwwICsxLDI3IEBACisiQ2FycmllZCBvdmVyICsgdXBkYXRlZCBmcm9tIG1vempzNjgiCitVcHN0 cmVhbTogbm8KK0Zyb20gOWFkMTA1NjllMTFhMmZiOTYzNzcxODhmODk1YmM2NmFiY2M5NTExZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmMtQW50b2luZSBQZXJlbm5vdSA8TWFy Yy1BbnRvaW5lQFBlcmVubm91LmNvbT4KK0RhdGU6IFdlZCwgNSBTZXAgMjAxOCAxNTowNToyNCAr MDIwMAorU3ViamVjdDogW1BBVENIXSBzaWxlbmNlIHNhbmRib3ggdmlvbGF0aW9ucworCitTaWdu ZWQtb2ZmLWJ5OiBNYXJjLUFudG9pbmUgUGVyZW5ub3UgPE1hcmMtQW50b2luZUBQZXJlbm5vdS5j b20+CistLS0KKyBweXRob24vbW96YnVpbGQvbW96YnVpbGQvZnJvbnRlbmQvZW1pdHRlci5weSB8 IDUgLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBkZWxldGlvbnMoLSkKKworLS0tIGEvcHl0aG9u L21vemJ1aWxkL21vemJ1aWxkL2Zyb250ZW5kL2VtaXR0ZXIucHkKKysrKyBiL3B5dGhvbi9tb3pi dWlsZC9tb3pidWlsZC9mcm9udGVuZC9lbWl0dGVyLnB5CitAQCAtMTIzOSwxMiArMTIzOSw2IEBA IGNsYXNzIFRyZWVNZXRhZGF0YUVtaXR0ZXIoTG9nZ2luZ01peGluKToKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzIGEgZmlsZW5hbWUsIGJ1dCBh IGRpcmVjdG9yeSBpcyByZXF1aXJlZDogJXMgJworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnKHJlc29sdmVkIHRvICVzKScgJSAobG9jYWxfaW5jbHVk ZSwgZnVsbF9wYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGV4dCkKKy0gICAgICAgICAgICBpZiAoZnVsbF9wYXRoID09IGNvbnRleHQu Y29uZmlnLnRvcHNyY2RpciBvcgorLSAgICAgICAgICAgICAgICAgICAgZnVsbF9wYXRoID09IGNv bnRleHQuY29uZmlnLnRvcG9iamRpcik6CistICAgICAgICAgICAgICAgIHJhaXNlIFNhbmRib3hW YWxpZGF0aW9uRXJyb3IoCistICAgICAgICAgICAgICAgICAgICAnUGF0aCBzcGVjaWZpZWQgaW4g TE9DQUxfSU5DTFVERVMgJworLSAgICAgICAgICAgICAgICAgICAgJyglcykgcmVzb2x2ZXMgdG8g dGhlIHRvcHNyY2RpciBvciB0b3BvYmpkaXIgKCVzKSwgd2hpY2ggaXMgJworLSAgICAgICAgICAg ICAgICAgICAgJ25vdCBhbGxvd2VkJyAlIChsb2NhbF9pbmNsdWRlLCBmdWxsX3BhdGgpLCBjb250 ZXh0KQorICAgICAgICAgICAgIGluY2x1ZGVfb2JqID0gTG9jYWxJbmNsdWRlKGNvbnRleHQsIGxv Y2FsX2luY2x1ZGUpCisgICAgICAgICAgICAgbG9jYWxfaW5jbHVkZXMuYXBwZW5kKGluY2x1ZGVf b2JqLnBhdGguZnVsbF9wYXRoKQorICAgICAgICAgICAgIHlpZWxkIGluY2x1ZGVfb2JqCmRpZmYg LS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaCBiL3Ny Y3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYzU0MzEwOTM5OAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCkBAIC0wLDAgKzEs MjIgQEAKKyJDYXJyaWVkIG92ZXIgZnJvbSBtb3pqczY4IgorLS0tIGEvanMvc3JjL2J1aWxkL01h a2VmaWxlLmluCisrKysgYi9qcy9zcmMvYnVpbGQvTWFrZWZpbGUuaW4KK0BAIC03OCw2ICs3OCw4 IEBACisgZW5kaWYKKyBpZm5lcSAoLCQoU0hBUkVEX0xJQlJBUlkpKQorIAkkKFNZU0lOU1RBTEwp ICQoU0hBUkVEX0xJQlJBUlkpICQoREVTVERJUikkKGxpYmRpcikKKysJbXYgLWYgJChERVNURElS KSQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZKSAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVE X0xJQlJBUlkpLjAKKysJbG4gLXMgJChTSEFSRURfTElCUkFSWSkuMCAkKERFU1RESVIpJChsaWJk aXIpLyQoU0hBUkVEX0xJQlJBUlkpCisgaWZlcSAoJChPU19BUkNIKSxEYXJ3aW4pCisgCWluc3Rh bGxfbmFtZV90b29sIC1pZCAkKGFic3BhdGggJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpKSAk KERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpCisgZW5kaWYKKy0tLSBhL2pzL3Ny Yy9idWlsZC9tb3ouYnVpbGQKKysrKyBiL2pzL3NyYy9idWlsZC9tb3ouYnVpbGQKK0BAIC0yNSw2 ICsyNSw3IEBACisgaWYgQ09ORklHWydKU19TSEFSRURfTElCUkFSWSddOgorICAgICBHZWNrb1No YXJlZExpYnJhcnkoJ2pzJywgbGlua2FnZT1Ob25lKQorICAgICBTSEFSRURfTElCUkFSWV9OQU1F ID0gQ09ORklHWydKU19MSUJSQVJZX05BTUUnXQorKyAgICBMREZMQUdTICs9IFsnLVdsLC1zb25h bWUsbGlie30uc28uMCcuZm9ybWF0KFNIQVJFRF9MSUJSQVJZX05BTUUpXQorIAorICAgICAjIEVu c3VyZSBzeW1ib2wgdmVyc2lvbnMgb2Ygc2hhcmVkIGxpYnJhcnkgb24gTGludXggZG8gbm90IGNv bmZsaWN0CisgICAgICMgd2l0aCB0aG9zZSBpbiBsaWJ4dWwuCmRpZmYgLS1naXQgYS9zcmNwa2dz L21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uODkxYTc2NTIwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21v empzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKKyJU YWtlbiBmcm9tIGZpcmVmb3gtZXNyIgorLS0tIGEvanMvc3JjL3dhc20vV2FzbVNpZ25hbEhhbmRs ZXJzLmNwcAorKysrIGIvanMvc3JjL3dhc20vV2FzbVNpZ25hbEhhbmRsZXJzLmNwcAorQEAgLTI0 Myw5ICsyNDMsOSBAQAorIC8vIElmIHlvdSBydW4gaW50byBjb21waWxlIHByb2JsZW1zIG9uIGEg dGllci0zIHBsYXRmb3JtLCB5b3UgY2FuIGRpc2FibGUgdGhlCisgLy8gZW11bGF0aW9uIGhlcmUu CisgCistI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fYXJtX18pCistIyAgZGVm aW5lIFdBU01fRU1VTEFURV9BUk1fVU5BTElHTkVEX0ZQX0FDQ0VTUworLSNlbmRpZgorKy8vICNp ZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX2FybV9fKQorKy8vICMgIGRlZmluZSBX QVNNX0VNVUxBVEVfQVJNX1VOQUxJR05FRF9GUF9BQ0NFU1MKKysvLyAjZW5kaWYKKyAKKyAjaWZk ZWYgV0FTTV9FTVVMQVRFX0FSTV9VTkFMSUdORURfRlBfQUNDRVNTCisgIyAgaW5jbHVkZSA8c3lz L3VzZXIuaD4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVz bC1idWlsZC5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1idWls ZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjYyOWZhMmFj MzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDQtZml4LW11 c2wtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorIkNhcnJpZWQgb3ZlciBmcm9tIG1vempz NjAiCitVcHN0cmVhbTogTm8KK1JlYXNvbjogbW96anM2OCBtaXNjb21waWxlcyBvbiBtdXNsIGlm IGJ1aWx0IHdpdGggSEFWRV9USFJFQURfVExTX0tFWVdPUkQ6CitodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3Vlcy8yNTk4CitkaWZmIC0tZ2l0IGEvanMvc3Jj L29sZC1jb25maWd1cmUuaW4gYi9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbgorLS0tIGEvanMvc3Jj L29sZC1jb25maWd1cmUuaW4KKysrKyBiL2pzL3NyYy9vbGQtY29uZmlndXJlLmluCitAQCAtMTI3 Miw2ICsxMjcyLDkgQEAKKyAgICAgKi1hbmRyb2lkKnwqLWxpbnV4YW5kcm9pZCopCisgICAgICAg OgorICAgICAgIDs7CisrICAgICotbXVzbCopCisrICAgICAgOgorKyAgICAgIDs7CisgICAgICop CisgICAgICAgQUNfREVGSU5FKEhBVkVfVEhSRUFEX1RMU19LRVlXT1JEKQorICAgICAgIDs7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNr cy1kaXNhYmxlLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA1LXNwaWRlcm1vbmtl eS1jaGVja3MtZGlzYWJsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZjZlYWJhYmQxZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0 Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoCkBAIC0wLDAgKzEsMTIg QEAKK1NvdXJjZTpGZWRvcmEKK1JlYXNvbjogQ2hlY2tzIGZhaWxlZChUb2RvOiBGaWd1cmUgb3V0 IHdoeSkKKysrKyBhL2NvbmZpZy9ydW5fc3BpZGVybW9ua2V5X2NoZWNrcy5weQorKysrIGIvY29u ZmlnL3J1bl9zcGlkZXJtb25rZXlfY2hlY2tzLnB5CitAQCAtMTEsNSArMTEsNSBAQAorICAgICBm b3Igc2NyaXB0IGluIHNjcmlwdHM6CisgICAgICAgICByZXRjb2RlID0gc3VicHJvY2Vzcy5jYWxs KAorICAgICAgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgc2NyaXB0XSwgY3dkPWJ1aWxkY29uZmln LnRvcHNyY2RpcikKKy0gICAgICAgIGlmIHJldGNvZGUgIT0gMDoKKy0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oc2NyaXB0ICsgIiBmYWlsZWQiKQorKyAgICAgICAgI2lmIHJldGNvZGUgIT0g MDoKKysgICAgICAgICMgICAgcmFpc2UgRXhjZXB0aW9uKHNjcmlwdCArICIgZmFpbGVkIikKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5 c3Jvb3QucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDYtbW96anM3OC5wYy1ob25v ci1zeXNyb290LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43 MTIxNGI4ZWNjZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAw Ni1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorIkNhcnJp ZWQgb3ZlciBmcm9tIG1vempzNjAiCitSZWFzb246IEZpeCB0aGUgJy1pbmNsdWRlJyBkaXJlY3Rp dmUsIG90aGVyd2lzZSBpdCB0cmllcyB0byB1c2UgdGhlIGhvc3QncyBoZWFkZXIKKy0tLSBhL2pz L3NyYy9idWlsZC9qcy5wYy5pbgorKysrIGIvanMvc3JjL2J1aWxkL2pzLnBjLmluCitAQCAtMTEs NCArMTEsNCBAQAorICMgVXNlIC1pc3lzdGVtIGZvciBpbmNsdWRlcyByYXRoZXIgdGhhbiAtSSwg dG8gbWFyayB0aGVtIGFzICJzeXN0ZW0gaGVhZGVycyIKKyAjIHRoYXQgZG9uJ3QgZ2VuZXJhdGUg d2FybmluZyBkaWFnbm9zdGljcy4gRm9yIGp1c3RpZmljYXRpb24sIHNlZQorICMgaHR0cHM6Ly9i dWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzOTAzNgorLUNmbGFnczogLWlu Y2x1ZGUgJHtpbmNsdWRlZGlyfS9ASlNfTElCUkFSWV9OQU1FQC9qcy9SZXF1aXJlZERlZmluZXMu aCAtaXN5c3RlbSAke2luY2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05BTUVACisrQ2ZsYWdzOiAtaW5j bHVkZSAke3BjX3N5c3Jvb3RkaXJ9JHtpbmNsdWRlZGlyfS9ASlNfTElCUkFSWV9OQU1FQC9qcy9S ZXF1aXJlZERlZmluZXMuaCAtaXN5c3RlbSAke2luY2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05BTUVA CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dpZGVm c19oLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZpeC1taXBzLXNnaWRlZnNf aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWJiMTQwMjMz YTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDctZml4LW1p cHMtc2dpZGVmc19oLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL21mYnQvUmFuZG9tTnVt LmNwcAkyMDIwLTA0LTI5IDIzOjQ5OjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGIvbWZidC9SYW5k b21OdW0uY3BwCTIwMjAtMDgtMDQgMTk6Mjk6MzYuMTI3NDcxMzAxICswMjAwCitAQCAtNTIsNyAr NTIsNyBAQAorICMgIGVsaWYgZGVmaW5lZChfX3MzOTBfXykKKyAjICAgIGRlZmluZSBHRVRSQU5E T01fTlIgMzQ5CisgIyAgZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorLSMgICAgaW5jbHVkZSA8c2dp ZGVmcy5oPgorKyMgICAgaW5jbHVkZSA8YXNtL3NnaWRlZnMuaD4KKyAjICAgIGlmIF9NSVBTX1NJ TSA9PSBfTUlQU19TSU1fQUJJMzIKKyAjICAgICAgZGVmaW5lIEdFVFJBTkRPTV9OUiA0MzUzCisg IyAgICBlbGlmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJNjQKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9w YXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNTNlOTQ3NTYxY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgv cGF0Y2hlcy9jb3ZlcmFnZS1hcGkucGF0Y2gKQEAgLTAsMCArMSwxMDcgQEAKK0Zyb20gZTVhMmVi OTlmNjUzYWUwM2M2N2U1MzZkZjFkNTVkMjY1YTBhMTYwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEV2YW4gV2Vsc2ggPGNvbnRhY3RAZXZhbndlbHNoLmNvbT4KK0RhdGU6IE1vbiwg MTAgQXVnIDIwMjAgMTM6MTc6MzYgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gQnVnIDE2NTQ2OTYg LSBJbXBsZW1lbnQgY29kZSBjb3ZlcmFnZSBKU0FQSS4KKyByPW5icCxwdG9tYXRvLGp3YWxkZW4K KworLS0tCisganMvcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaCB8IDI1ICsrKysr KysrKysrKysrKysrKysrKysrKysKKyBqcy9zcmMvanNmcmllbmRhcGkuY3BwICAgICAgICAgICAg ICAgIHwgIDMgKysrCisganMvc3JjL21vei5idWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAx ICsKKyBqcy9zcmMvc2hlbGwvanMuY3BwICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKysrLS0t LS0KKyA0IGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IGpzL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgK KworZGlmZiAtLWdpdCBhL2pzL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmggYi9q cy9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwLi4wNmNjMGM5Y2EKKy0tLSAvZGV2L251bGwKKysrKyBiL2pzL3B1 YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiAt Ki0gTW9kZTogQysrOyB0YWItd2lkdGg6IDg7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgYy1iYXNp Yy1vZmZzZXQ6IDIgLSotCisrICogdmltOiBzZXQgdHM9OCBzdHM9MiBldCBzdz0yIHR3PTgwOgor KyAqIFRoaXMgU291cmNlIENvZGUgRm9ybSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGUg TW96aWxsYSBQdWJsaWMKKysgKiBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBM IHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzCisrICogZmlsZSwgWW91IGNhbiBvYnRhaW4g b25lIGF0IGh0dHA6Ly9tb3ppbGxhLm9yZy9NUEwvMi4wLy4gKi8KKysKKysjaWZuZGVmIGpzX2V4 cGVyaW1lbnRhbF9Db2RlQ292ZXJhZ2VfaAorKyNkZWZpbmUganNfZXhwZXJpbWVudGFsX0NvZGVD b3ZlcmFnZV9oCisrCisrI2luY2x1ZGUgImpzdHlwZXMuaCIgICAgIC8vIEpTX0ZSSUVORF9BUEkK KysKKytzdHJ1Y3QgSlNfUFVCTElDX0FQSSBKU0NvbnRleHQ7CisrCisrbmFtZXNwYWNlIGpzIHsK KysKKysvKioKKysgKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gb2YgbGNvdiBjb2RlIGNvdmVyYWdl IG1ldHJpY3MuCisrICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGEgcnVudGltZSBpcyBjcmVhdGVk IGFuZCBiZWZvcmUgYW55IGNhbGxzIHRvCisrICogR2V0Q29kZUNvdmVyYWdlU3VtbWFyeS4KKysg Ki8KKytleHRlcm4gSlNfRlJJRU5EX0FQSSB2b2lkIEVuYWJsZUNvZGVDb3ZlcmFnZSgpOworKwor K30gIC8vIG5hbWVzcGFjZSBqcworKworKyNlbmRpZiAgLy8ganNfZXhwZXJpbWVudGFsX0NvZGVD b3ZlcmFnZV9oCitkaWZmIC0tZ2l0IGEvanMvc3JjL2pzZnJpZW5kYXBpLmNwcCBiL2pzL3NyYy9q c2ZyaWVuZGFwaS5jcHAKK2luZGV4IGFmN2EwM2JkNC4uNWYyMGM2NTc2IDEwMDY0NAorLS0tIGEv anMvc3JjL2pzZnJpZW5kYXBpLmNwcAorKysrIGIvanMvc3JjL2pzZnJpZW5kYXBpLmNwcAorQEAg LTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSAiZ2MvUHVibGljSXRlcmF0b3JzLmgiCisgI2luY2x1 ZGUgImdjL1dlYWtNYXAuaCIKKyAjaW5jbHVkZSAianMvQ2hhcmFjdGVyRW5jb2RpbmcuaCIKKysj aW5jbHVkZSAianMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oIiAgLy8ganM6OkVuYWJsZUNv ZGVDb3ZlcmFnZQorICNpbmNsdWRlICJqcy9QcmludGYuaCIKKyAjaW5jbHVkZSAianMvUHJveHku aCIKKyAjaW5jbHVkZSAianMvV3JhcHBlci5oIgorQEAgLTE0NjUsNiArMTQ2Niw4IEBAIEpTX0ZS SUVORF9BUEkgdm9pZCBqczo6RW5hYmxlQWNjZXNzVmFsaWRhdGlvbihKU0NvbnRleHQqIGN4LCBi b29sIGVuYWJsZWQpIHsKKyAgIGN4LT5lbmFibGVBY2Nlc3NWYWxpZGF0aW9uID0gZW5hYmxlZDsK KyB9CisgCisrSlNfRlJJRU5EX0FQSSB2b2lkIGpzOjpFbmFibGVDb2RlQ292ZXJhZ2UoKSB7IGpz Ojpjb3ZlcmFnZTo6RW5hYmxlTENvdigpOyB9CisrCisgSlNfRlJJRU5EX0FQSSB2b2lkIGpzOjpT ZXRSZWFsbVZhbGlkQWNjZXNzUHRyKEpTQ29udGV4dCogY3gsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTOjpIYW5kbGVPYmplY3QgZ2xvYmFsLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiBhY2Nlc3Nw KSB7CitkaWZmIC0tZ2l0IGEvanMvc3JjL21vei5idWlsZCBiL2pzL3NyYy9tb3ouYnVpbGQKK2lu ZGV4IGRlYjE1ZDgzYS4uYjRlOWUyYjAyIDEwMDc1NQorLS0tIGEvanMvc3JjL21vei5idWlsZAor KysrIGIvanMvc3JjL21vei5idWlsZAorQEAgLTIxMCw2ICsyMTAsNyBAQCBFWFBPUlRTLmpzICs9 IFsKKyBdCisgCisgRVhQT1JUUy5qcy5leHBlcmltZW50YWwgKz0gWworKyAgICAnLi4vcHVibGlj L2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaCcsCisgICAgICcuLi9wdWJsaWMvZXhwZXJpbWVu dGFsL1NvdXJjZUhvb2suaCcsCisgXQorIAorZGlmZiAtLWdpdCBhL2pzL3NyYy9zaGVsbC9qcy5j cHAgYi9qcy9zcmMvc2hlbGwvanMuY3BwCitpbmRleCA0YjNmNTQ1ZTYuLjI1MmRkMjRmMCAxMDA2 NDQKKy0tLSBhL2pzL3NyYy9zaGVsbC9qcy5jcHAKKysrKyBiL2pzL3NyYy9zaGVsbC9qcy5jcHAK K0BAIC0xMDQsMTAgKzEwNCwxMSBAQAorICNpbmNsdWRlICJqcy9Db21waWxlT3B0aW9ucy5oIgor ICNpbmNsdWRlICJqcy9Db250ZXh0T3B0aW9ucy5oIiAgLy8gSlM6OkNvbnRleHRPcHRpb25zeyxS ZWZ9CisgI2luY2x1ZGUgImpzL0RlYnVnLmgiCistI2luY2x1ZGUgImpzL0VxdWFsaXR5LmgiICAg ICAgICAgICAgICAgICAvLyBKUzo6U2FtZVZhbHVlCistI2luY2x1ZGUgImpzL0Vycm9yUmVwb3J0 LmgiICAgICAgICAgICAgICAvLyBKUzo6UHJpbnRFcnJvcgorLSNpbmNsdWRlICJqcy9FeGNlcHRp b24uaCIgICAgICAgICAgICAgICAgLy8gSlM6OlN0ZWFsUGVuZGluZ0V4Y2VwdGlvblN0YWNrCist I2luY2x1ZGUgImpzL2V4cGVyaW1lbnRhbC9Tb3VyY2VIb29rLmgiICAvLyBqczo6e1NldCxGb3Jn ZXQsfVNvdXJjZUhvb2sKKysjaW5jbHVkZSAianMvRXF1YWxpdHkuaCIgICAgICAgICAgICAgICAg ICAgLy8gSlM6OlNhbWVWYWx1ZQorKyNpbmNsdWRlICJqcy9FcnJvclJlcG9ydC5oIiAgICAgICAg ICAgICAgICAvLyBKUzo6UHJpbnRFcnJvcgorKyNpbmNsdWRlICJqcy9FeGNlcHRpb24uaCIgICAg ICAgICAgICAgICAgICAvLyBKUzo6U3RlYWxQZW5kaW5nRXhjZXB0aW9uU3RhY2sKKysjaW5jbHVk ZSAianMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oIiAgLy8ganM6OkVuYWJsZUNvZGVDb3Zl cmFnZQorKyNpbmNsdWRlICJqcy9leHBlcmltZW50YWwvU291cmNlSG9vay5oIiAgICAvLyBqczo6 e1NldCxGb3JnZXQsfVNvdXJjZUhvb2sKKyAjaW5jbHVkZSAianMvR0NWZWN0b3IuaCIKKyAjaW5j bHVkZSAianMvSW5pdGlhbGl6YXRpb24uaCIKKyAjaW5jbHVkZSAianMvSlNPTi5oIgorQEAgLTEx NDE2LDcgKzExNDE3LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2LCBjaGFyKiog ZW52cCkgeworIAorICAgZW5hYmxlQ29kZUNvdmVyYWdlID0gb3AuZ2V0Qm9vbE9wdGlvbigiY29k ZS1jb3ZlcmFnZSIpOworICAgaWYgKGVuYWJsZUNvZGVDb3ZlcmFnZSkgeworLSAgICBjb3ZlcmFn ZTo6RW5hYmxlTENvdigpOworKyAgICBqczo6RW5hYmxlQ29kZUNvdmVyYWdlKCk7CisgICB9Cisg CisgI2lmZGVmIEpTX1dJVEhPVVRfTlNQUgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3Rl bXBsYXRlIGIvc3JjcGtncy9tb3pqczc4L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi41YWFmMDdiZDdkYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bW96anM3OC90ZW1wbGF0ZQpAQCAtMCwwICsxLDczIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdt b3pqczc4JworcGtnbmFtZT1tb3pqczc4Cit2ZXJzaW9uPTc4LjEuMAorcmV2aXNpb249MQord3Jr c3JjPSJmaXJlZm94LSR7dmVyc2lvbn0iCitidWlsZF93cmtzcmM9anMvc3JjCitidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcHl0aG9uIHBrZy1jb25maWcg YXV0b21ha2UgYXV0b2NvbmYyMTMgYXV0b2NvbmYtYXJjaGl2ZQorIGNhcmdvIHJ1c3QgbGx2bSBj bGFuZyB3aGljaCBweXRob24zIgorbWFrZWRlcGVuZHM9ImljdS1kZXZlbCBsaWJmZmktZGV2ZWwg bnNwci1kZXZlbCBweXRob24tZGV2ZWwgcmVhZGxpbmUtZGV2ZWwKKyB6bGliLWRldmVsIHB5dGhv bjMtZGV2ZWwgcnVzdC1zdGQiCitkZXBlbmRzPSJuc3ByPj00LjE5Igorc2hvcnRfZGVzYz0iTW96 aWxsYSBKYXZhU2NyaXB0IGludGVycHJldGVyIGFuZCBsaWJyYXJ5ICg3OC54IHNlcmllcykiCitt YWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPiIKK2xpY2Vuc2U9Ik1QTC0yLjAi Citob21lcGFnZT0iaHR0cHM6Ly93d3cubW96aWxsYS5vcmcvanMvIgorZGlzdGZpbGVzPSIke01P WklMTEFfU0lURX0vZmlyZWZveC9yZWxlYXNlcy8ke3ZlcnNpb259ZXNyL3NvdXJjZS9maXJlZm94 LSR7dmVyc2lvbn1lc3Iuc291cmNlLnRhci54eiIKK2NoZWNrc3VtPTM2MDBhMzk2ZDkzMTJjNWU5 ZjYzN2IyNjc5MjZjYTQ3NzFkODRhNTZiMjZiOTYwY2M3ZDcyZTk4NjgzYjY0YTIKK3BhdGNoX2Fy Z3M9Ii1OcDEiCisKK0NYWEZMQUdTKz0iIC1Xbm8tY2xhc3MtbWVtYWNjZXNzIgorTERGTEFHUys9 IiAtV2wsLXosc3RhY2stc2l6ZT0xMDQ4NTc2IgorCitpZiBbICIkWEJQU19UQVJHRVRfTk9fQVRP TUlDOCIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKKwlMREZMQUdT Kz0iIC1sYXRvbWljIgorZmkKKworZG9fY29uZmlndXJlKCkgeworCWxvY2FsIF9hcmdzCisJIyB1 c2UgZ2NjIGFzIGFzc2VtYmxlciB0byBhdm9pZCBlcnJvcnMKKwl1bnNldCBBUworCisJaWYgWyAi JENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4cG9ydCBIT1NUX0NDPWNjCisJCWV4cG9ydCBUQVJH RVRfQ0M9IiR7Q0N9IgorCQlleHBvcnQgSE9TVF9DRkxBR1M9Ii1PcyIKKwkJZXhwb3J0IEhPU1Rf Q1hYRkxBR1M9Ii1PcyIKKwkJX2FyZ3MrPSIgLS10YXJnZXQ9JFhCUFNfQ1JPU1NfVFJJUExFVCAt LWVuYWJsZS1saW5rZXI9YmZkIgorCWZpCisKKwlhdXRvY29uZi0yLjEzIG9sZC1jb25maWd1cmUu aW4gPiBvbGQtY29uZmlndXJlCisKKwl0b3VjaCAke3dya3NyY30vanMvc3JjL2NvbmZpZ3VyZQor CXRvdWNoICR7d3Jrc3JjfS9qcy9zcmMvb2xkLWNvbmZpZ3VyZQorCVNIRUxMPS9iaW4vYmFzaCBQ WVRIT049L3Vzci9iaW4vcHl0aG9uMiAuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIFwKKwkJLS1k aXNhYmxlLWplbWFsbG9jIC0tZGlzYWJsZS1vcHRpbWl6ZSAtLWVuYWJsZS1jdHlwZXMgXAorCQkt LWVuYWJsZS1yZWFkbGluZSAtLWVuYWJsZS1zaGFyZWQtanMgLS1lbmFibGUtc3lzdGVtLWZmaSBc CisJCS0tZW5hYmxlLXRlc3RzIC0td2l0aC1pbnRsLWFwaSAtLXdpdGgtc3lzdGVtLWljdSAtLXdp dGgtc3lzdGVtLW5zcHIgXAorCQktLWVuYWJsZS1oYXJkZW5pbmcgLS1lbmFibGUtcmVsZWFzZSAt LXdpdGgtc3lzdGVtLXpsaWIgXAorCQktLXRhcmdldD0ke1hCUFNfVFJJUExFVH0gLS1ob3N0PSR7 WEJQU19UUklQTEVUfSBcCisJCSR7X2FyZ3N9Cit9CisKK2RvX2NoZWNrKCkgeworCWRpc3QvYmlu L2pzYXBpLXRlc3RzIC0tZm9ybWF0PW5vbmUgLS1leGNsdWRlLXJhbmRvbSBiYXNpYworfQorCitw b3N0X2luc3RhbGwoKSB7CisJIyBSZW1vdmUgdW5uZWVkZWQgc3RhdGljIGxpYnJhcnkKKwlybSAt ZiAiJHtERVNURElSfSIvdXNyL2xpYi8qLmFqcworfQorCittb3pqczc4LWRldmVsX3BhY2thZ2Uo KSB7CisJZGVwZW5kcz0ibnNwci1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSB1c3IvYmluL2pzNzgtY29uZmlnCisJCXZtb3ZlIHVzci9pbmNsdWRlCisJ CXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJfQorfQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3VwZGF0ZSBiL3NyY3BrZ3MvbW96anM3OC91cGRh dGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5NDdlMTkyMTdmCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3VwZGF0ZQpAQCAtMCwwICsxIEBACitw a2duYW1lPSdtb3pqcycKCkZyb20gODQ1MmQ0Nzg4MDNkNGYwOTlhZWEwZTBkNDQ4NzUzZTQ4ZmE2 NzNjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDY6NDI6MDIgKzAyMDAKU3Vi amVjdDogW1BBVENIIDcxLzgzXSBnanM6IHVwZGF0ZSB0byAxLjY1LjkwCgotLS0KIHNyY3BrZ3Mv Z2pzL3RlbXBsYXRlIHwgMTMgKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dqcy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCmluZGV4IGVjNDhiYWRkZjExLi5jY2UyNjdiZmY1ZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9nanMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nanMvdGVtcGxh dGUKQEAgLTEsMjcgKzEsMzIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dqcycKIHBrZ25hbWU9 Z2pzCi12ZXJzaW9uPTEuNjUuMgordmVyc2lvbj0xLjY1LjkwCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItRHNr aXBfZGJ1c190ZXN0cz10cnVlIC1Ec2tpcF9ndGtfdGVzdHM9dHJ1ZQogIC1EcHJvZmlsZXI9ZGlz YWJsZWQgLURpbnN0YWxsZWRfdGVzdHM9ZmFsc2UiICMgRGlzYWJsZSB0ZXN0cyBiZWNhdXNlIHRo ZXkgbmVlZCBkYnVzLCBYIGFuZCBHVEsuCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtn LWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJkYnVzLWdsaWItZGV2ZWwgbW96anM2OC1kZXZlbCByZWFk bGluZS1kZXZlbCBzeXNwcm9mLWRldmVsIgorbWFrZWRlcGVuZHM9ImRidXMtZ2xpYi1kZXZlbCBt b3pqczc4LWRldmVsIHJlYWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2ZWwiCiBzaG9ydF9kZXNjPSJN b3ppbGxhLWJhc2VkIGphdmFzY3JpcHQgYmluZGluZ3MgZm9yIHRoZSBHTk9NRSBwbGF0Zm9ybSIK IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJNSVQsIExHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvYWN0aW9uL3Nob3cvUHJvamVjdHMvR2pzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ2pzL2Jsb2IvZ25vbWUtMy0zMC9ORVdTIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09YTY2ZWRhZDhhNWYxMDAyN2Y5YjE4MmQ4OGFmODRiODFmMTNlNWFk NTg0MDMxOWNmYTc0N2Q2NmU3N2UwMjE0ZgorY2hlY2tzdW09ZTYzMDEwOTU5NjNlYjc1NzI4MWMy MGU1ZjZiNjU3MGRjOTUyMGFiNmEwODNjOGIzZWUxZWY0MDU5YjM0ZGRlYQorCisjIEEgZmV3IHRl c3RzIG15c3RlcmlvdXNseSBmYWlsIGZvciBub3cKK2RvX2NoZWNrKCkgeworCToKK30KIAogcG9z dF9pbnN0YWxsKCkgewogCXZsaWNlbnNlIENPUFlJTkcKIH0KIAogZ2pzLWRldmVsX3BhY2thZ2Uo KSB7Ci0JZGVwZW5kcz0ibGliZ2lyZXBvc2l0b3J5LWRldmVsIG1vempzNjgtZGV2ZWwgJHtzb3Vy Y2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWRlcGVuZHM9ImxpYmdpcmVwb3NpdG9y eS1kZXZlbCBtb3pqczc4LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7 CiAJCXZtb3ZlIHVzci9pbmNsdWRlCgpGcm9tIGM5YWIwN2NlMzA4OWVkZGNjYjEyNzEzOTc5YTZh OWI1YmYxOThiMmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjIzOjM4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA3Mi84M10gZ25vbWUtYnVpbGRlcjogdXBkYXRlIHRvIDMuMzcu OTAKCltjaSBza2lwXQotLS0KIC4uLi9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAu MC5wYXRjaCB8ICAyMiAtLQogc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIu cGF0Y2ggIHwgMzM0IC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9nbm9tZS1idWlsZGVyL3Rl bXBsYXRlICAgICAgICAgICAgICAgIHwgIDE2ICstCiAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2Vy dGlvbnMoKyksIDM2MiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2du b21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIucGF0Y2gKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoIGIv c3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5YjRhMmJmMWEuLjAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMiArMCwwIEBACi1jb21taXQgNDQxMzZhMmU1YzUyNjIzYjBlNjJjMzg4NDZm NTExZjMwNzYxNWNlMgotQXV0aG9yOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0ZTog ICBTdW4gTWF5IDMgMTk6NTI6MDkgMjAyMCArMDIwMAotCi0gICAgZml4IGJ1aWxkIHdpdGggbGli Z2l0Mi0xLjAuMAotCi1kaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0 LXJlcG9zaXRvcnktaW1wbC5jIGIvc3JjL3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJlcG9z aXRvcnktaW1wbC5jCi1pbmRleCA3ZjAxMDQyLi4yY2NjNGRmIDEwMDY0NAotLS0tIGEvc3JjL3Bs dWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJlcG9zaXRvcnktaW1wbC5jCi0rKysgYi9zcmMvcGx1 Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMKLUBAIC0zMywxMSArMzMs NyBAQAotICNpbmNsdWRlICJpcGMtZ2l0LXR5cGVzLmgiCi0gI2luY2x1ZGUgImlwYy1naXQtdXRp bC5oIgotIAotLSNpZiBMSUJHSVQyX1NPVkVSU0lPTiA+PSAyOAotIEdfREVGSU5FX0FVVE9fQ0xF QU5VUF9DTEVBUl9GVU5DIChnaXRfYnVmLCBnaXRfYnVmX2Rpc3Bvc2UpCi0tI2Vsc2UKLS1HX0RF RklORV9BVVRPX0NMRUFOVVBfQ0xFQVJfRlVOQyAoZ2l0X2J1ZiwgZ2l0X2J1Zl9mcmVlKQotLSNl bmRpZgotIAotIHR5cGVkZWYgZW51bQotIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVp bGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNo ZXMvbWVzb24wNTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4YzI4ZTgy YzFlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNv bjA1Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzNCArMCwwIEBACi1Gcm9tIGM4Yjg2MmI0 OTFjZmJiYjRmNzliMjRkN2NkOTBlNGZiMWYzN2NiOWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkaWVnb2VAZ25vbWUub3JnPgotRGF0ZTog RnJpLCAyNSBPY3QgMjAxOSAwNDo0OToxNSAtMDUwMAotU3ViamVjdDogW1BBVENIXSBXSVA6IGJ1 aWxkOiBGaXggbGlua193aG9sZSB1c2FnZSBmb3IgbWVzb24gMC41Mi4wCi0KLU1lc29uIDAuNTIu MCBjaGFuZ2VkIGhvdyBsaW5rX3dob2xlIGJlaGF2ZXMgYW5kIGluIGRvaW5nIHNvIGJyb2tlIG91 cgotdXNhZ2Ugb2YgbGlua193aG9sZSBpbnRlcm5hbGx5LgotCi1BIHF1aWNrIGdsYW5jZSBvdmVy IG1lc29uYnVpbGQvYmFja2VuZC9uaW5qYWJhY2tlbmQucHkgc2VlbXMgdG8gY29uZmlybQotQ2hy aXN0aWFuJ3Mgc3VzcGljaW9uIHRoYXQgbGlua193aXRoIGlzIHdoYXQgd2Ugd2FudCBmb3IgaW50 ZXJuYWwgdXNlLAotYW5kIGxpbmtfd2hvbGUgZm9yIHRoZSBmaW5hbCBiaW5hcnkuCi0KLVlvdSBj YW4gc2VlIHNvbWUgbW9yZSByZWZlcmVuY2VzIHRvIHRoaXMgYW5kIHNpbWlsYXIgaXNzdWVzIGlu IHRoZQotZm9sbG93aW5nIGpoYnVpbGQgY29tbWl0OgotaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2poYnVpbGQvY29tbWl0L2RiZTY3OTA0NWZmNTk4MjU3N2YyMmU3YWY4ZGM4ZmRmYmQx YzYzMTEKLQotRml4ZXM6IGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1idWls ZGVyL2lzc3Vlcy8xMDU3Ci0tLS0KLSBzcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQgICAgICAg fCAgMiArLQotIHNyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZCAgICAgICB8ICAyICstCi0gc3Jj L2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZCAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2VkaXRv ci9tZXNvbi5idWlsZCAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWls ZCAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9ncmVldGVyL21lc29uLmJ1aWxkICAgIHwgIDIgKy0K LSBzcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUv aW8vbWVzb24uYnVpbGQgICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVp bGQgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQgICAgfCAg MiArLQotIHNyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQgICB8ICAyICstCi0gc3JjL2xp YmlkZS9zZWFyY2gvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3NvdXJjZXZp ZXcvbWVzb24uYnVpbGQgfCAgMiArLQotIHNyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVpbGQg ICB8ICAyICstCi0gc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBz cmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZCAgfCAgMiArLQotIHNyYy9saWJpZGUvdHJl ZS9tZXNvbi5idWlsZCAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQg ICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZCAgICAgfCAgMiAr LQotIHNyYy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICB8IDI2ICsrKysrKysrKysrKysr KysrKysrKysrKystCi0gMjAgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMjAgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQgYi9z cmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQKLWluZGV4IGRkYWNkYzE2Mi4uMWE0ZmM1ZDI2IDEw MDY0NAotLS0tIGEvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRl L2NvZGUvbWVzb24uYnVpbGQKLUBAIC0xNzUsNyArMTc1LDcgQEAgbGliaWRlX2NvZGUgPSBzdGF0 aWNfbGlicmFyeSgnaWRlLWNvZGUtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfY29k ZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJp ZGVfY29kZV9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfY29kZV9nZW5lcmF0ZWRfaGVhZGVycywK LSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9jb2RlX2RlcHMsCi0tICAgICAgICAgICBs aW5rX3dob2xlOiBsaWJpZGVfY29kZSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9j b2RlLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQgYi9zcmMvbGli aWRlL2NvcmUvbWVzb24uYnVpbGQKLWluZGV4IDFmYTgyZmFkOS4uYmI3NWNiZjI2IDEwMDY0NAot LS0tIGEvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2NvcmUv bWVzb24uYnVpbGQKLUBAIC0xMTcsNyArMTE3LDcgQEAgbGliaWRlX2NvcmUgPSBzdGF0aWNfbGli cmFyeSgnaWRlLWNvcmUtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2NvcmVfc291cmMK LSBsaWJpZGVfY29yZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBz b3VyY2VzOiBsaWJpZGVfY29yZV9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfY29yZV9nZW5lcmF0 ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9jb3JlX2RlcHMsCi0t ICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfY29yZSwKLSsgICAgICAgICAgICBsaW5rX3dp dGg6IGxpYmlkZV9jb3JlLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rv cmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29u LmJ1aWxkIGIvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAotaW5kZXggZGZmY2EyMGNh Li5iNWU3MmQ1YzAgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxk Ci0rKysgYi9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkCi1AQCAtODQsNyArODQsNyBA QCBsaWJpZGVfZGVidWdnZXIgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWRlYnVnZ2VyLScgKyBsaWJp ZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX2RlYnVnZ2VyX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9kZWJ1Z2dlcl9wcml2YXRlX2hlYWRl cnMgKyBsaWJpZGVfZGVidWdnZXJfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5k ZW5jaWVzOiBsaWJpZGVfZGVidWdnZXJfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxp YmlkZV9kZWJ1Z2dlciwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9kZWJ1Z2dlciwK LSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0g Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRl L2VkaXRvci9tZXNvbi5idWlsZAotaW5kZXggMjgzODQyNWI3Li44MDhlZDc4NGYgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL2VkaXRvci9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9lZGl0 b3IvbWVzb24uYnVpbGQKLUBAIC0xMDcsNyArMTA3LDcgQEAgbGliaWRlX2VkaXRvciA9IHN0YXRp Y19saWJyYXJ5KCdpZGUtZWRpdG9yLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9lZGl0 b3IKLSAKLSBsaWJpZGVfZWRpdG9yX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAg ICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9lZGl0b3JfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hv bGU6IGxpYmlkZV9lZGl0b3IsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZWRpdG9y LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICAg ICAgICAgICAgICAgc291cmNlczogbGliaWRlX2VkaXRvcl9nZW5lcmF0ZWRfaGVhZGVycywKLSAp Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxkIGIvc3JjL2xpYmlk ZS9mb3VuZHJ5L21lc29uLmJ1aWxkCi1pbmRleCAyMjYzOTdjMTUuLmQ0ODc4YWExMSAxMDA2NDQK LS0tLSBhL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9m b3VuZHJ5L21lc29uLmJ1aWxkCi1AQCAtMTc4LDcgKzE3OCw3IEBAIGxpYmlkZV9mb3VuZHJ5ID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1mb3VuZHJ5LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gCi0g bGliaWRlX2ZvdW5kcnlfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgIGRlcGVu ZGVuY2llczogbGliaWRlX2ZvdW5kcnlfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxp YmlkZV9mb3VuZHJ5LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2ZvdW5kcnksCi0g ICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gICAgICAg ICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZm91bmRyeV9nZW5lcmF0ZWRfaGVhZGVycywKLSApCi1k aWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9ncmVldGVyL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9n cmVldGVyL21lc29uLmJ1aWxkCi1pbmRleCAzOTY4Y2E0MWUuLjEyMWQ0OThkMCAxMDA2NDQKLS0t LSBhL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9ncmVl dGVyL21lc29uLmJ1aWxkCi1AQCAtODMsNyArODMsNyBAQCBsaWJpZGVfZ3JlZXRlciA9IHN0YXRp Y19saWJyYXJ5KCdpZGUtZ3JlZXRlci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9n cmVldGVyX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6 IGxpYmlkZV9ncmVldGVyX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9ncmVldGVyX2dlbmVyYXRl ZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2dyZWV0ZXJfZGVwcywK LS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9ncmVldGVyLAotKyAgICAgICAgICAgIGxp bmtfd2l0aDogbGliaWRlX2dyZWV0ZXIsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRl X2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZ3VpL21l c29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQKLWluZGV4IDlmNDY5ZDJmYS4u OTQzMTEyODJmIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQKLSsrKyBi L3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi1AQCAtMjA0LDcgKzIwNCw3IEBAIGxpYmlkZV9n dWkgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWd1aS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJp ZGVfZ3VpX3NvdXJjZXMsCi0gbGliaWRlX2d1aV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0g ICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZ3VpX3ByaXZhdGVfaGVhZGVycyArIGxpYmlk ZV9ndWlfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVf Z3VpX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZ3VpLAotKyAgICAgICAg ICAgIGxpbmtfd2l0aDogbGliaWRlX2d1aSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1 ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9pby9t ZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLWluZGV4IGI1YjZmNGM2OC4u ZjQ4YjNiZDhkIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZAotKysrIGIv c3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZAotQEAgLTYzLDcgKzYzLDcgQEAgbGliaWRlX2lvID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1pby0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfaW9f c291cmNlcywKLSAKLSBsaWJpZGVfaW9fZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAg ICAgIGRlcGVuZGVuY2llczogWyBsaWJnaW9fZGVwLCBsaWJpZGVfY29yZV9kZXAsIGxpYmlkZV90 aHJlYWRpbmdfZGVwIF0sCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfaW8sCi0rICAg ICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfaW8sCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBp bmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUv bHNwL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQKLWluZGV4IDIzYWJh NzRmYS4uYzgxNDBjYTAzIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQK LSsrKyBiL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi1AQCAtODQsNyArODQsNyBAQCBsaWJp ZGVfbHNwID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1sc3AtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwg bGliaWRlX2xzcF9zb3VyY2VzLAotIGxpYmlkZV9sc3BfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5 KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2xzcF9wcml2YXRlX2hlYWRlcnMsCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfbHNwX2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfbHNwLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2xzcCwK LSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0g Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlk ZS9wbHVnaW5zL21lc29uLmJ1aWxkCi1pbmRleCBhMzNjNTI4YzkuLmZmZjU5OWRiMyAxMDA2NDQK LS0tLSBhL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9w bHVnaW5zL21lc29uLmJ1aWxkCi1AQCAtNTEsNyArNTEsNyBAQCBsaWJpZGVfcGx1Z2lucyA9IHN0 YXRpY19saWJyYXJ5KCdpZGUtcGx1Z2lucy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlk ZV9wbHVnaW5zX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJj ZXM6IGxpYmlkZV9wbHVnaW5zX3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNp ZXM6IGxpYmlkZV9wbHVnaW5zX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVf cGx1Z2lucywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9wbHVnaW5zLAotICAgaW5j bHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYg LS1naXQgYS9zcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9wcm9q ZWN0cy9tZXNvbi5idWlsZAotaW5kZXggNDYzZmYwNmJjLi4zY2M5NzI1YzYgMTAwNjQ0Ci0tLS0g YS9zcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3Byb2pl Y3RzL21lc29uLmJ1aWxkCi1AQCAtNzksNyArNzksNyBAQCBsaWJpZGVfcHJvamVjdHMgPSBzdGF0 aWNfbGlicmFyeSgnaWRlLXByb2plY3RzLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9w cgotIGxpYmlkZV9wcm9qZWN0c19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAg ICAgICBzb3VyY2VzOiBsaWJpZGVfcHJvamVjdHNfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAg IGRlcGVuZGVuY2llczogbGliaWRlX3Byb2plY3RzX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3do b2xlOiBsaWJpZGVfcHJvamVjdHMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfcHJv amVjdHMsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyks Ci0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkIGIvc3Jj L2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQKLWluZGV4IGU1YjNiNDNhYi4uY2Y3M2FhOTFkIDEw MDY0NAotLS0tIGEvc3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJp ZGUvc2VhcmNoL21lc29uLmJ1aWxkCi1AQCAtNTEsNyArNTEsNyBAQCBsaWJpZGVfc2VhcmNoID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1zZWFyY2gtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRl X3NlYXJjaAotIAotIGxpYmlkZV9zZWFyY2hfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAg ICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3NlYXJjaF9kZXBzLAotLSAgICAgICAgICAgbGlu a193aG9sZTogbGliaWRlX3NlYXJjaCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9z ZWFyY2gsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyks Ci0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZCBi L3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZAotaW5kZXggYzRiYTEyZDFmLi45OTY0 MTI5OGIgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLSsr KyBiL3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZAotQEAgLTE1OCw3ICsxNTgsNyBA QCBsaWJpZGVfc291cmNldmlldyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtc291cmNldmlldy0nICsg bGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9zb3VyY2V2aWV3X2RlcCA9IGRlY2xhcmVfZGVw ZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9zb3VyY2V2aWV3X3ByaXZh dGVfaGVhZGVycyArIGxpYmlkZV9zb3VyY2V2aWV3X2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAg ICAgIGRlcGVuZGVuY2llczogbGliaWRlX3NvdXJjZXZpZXdfZGVwcywKLS0gICAgICAgICAgIGxp bmtfd2hvbGU6IGxpYmlkZV9zb3VyY2V2aWV3LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGli aWRlX3NvdXJjZXZpZXcsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9y aWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24u YnVpbGQgYi9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi1pbmRleCAxZDdjOWY3Mjcu LjZhZmZjYWUxNCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVpbGQK LSsrKyBiL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVpbGQKLUBAIC05Myw3ICs5Myw3IEBA IGxpYmlkZV90ZXJtaW5hbCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGVybWluYWwtJyArIGxpYmlk ZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfdGVybWluYWxfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5 KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Rlcm1pbmFsX2dlbmVyYXRlZF9oZWFk ZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3Rlcm1pbmFsX2RlcHMsCi0tICAg ICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfdGVybWluYWwsCi0rICAgICAgICAgICAgbGlua193 aXRoOiBsaWJpZGVfdGVybWluYWwsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2Rp cmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdGhlbWVzL21l c29uLmJ1aWxkIGIvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQKLWluZGV4IDlkNmM4ZTI0 Ny4uZDg4M2E0Yjg2IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQK LSsrKyBiL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi1AQCAtNDYsNyArNDYsNyBAQCBs aWJpZGVfdGhlbWVzID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10aGVtZXMtJyArIGxpYmlkZV9hcGlf dmVyc2lvbiwKLSBsaWJpZGVfdGhlbWVzX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAg ICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90aGVtZXNfcmVzb3VyY2VzWzFdLAotICAgICAgICAg IGRlcGVuZGVuY2llczogbGliaWRlX3RoZW1lc19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX3RoZW1lcywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV90aGVtZXMs Ci0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQot IAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkIGIvc3JjL2xp YmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQKLWluZGV4IGQzOGRkZmI2NC4uZDYyOGJlMmZmIDEw MDY0NAotLS0tIGEvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9s aWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi1AQCAtNjYsNyArNjYsNyBAQCBsaWJpZGVfdGhy ZWFkaW5nID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10aHJlYWRpbmctJyArIGxpYmlkZV9hcGlfdmVy c2lvbiwgbGliaWRlXwotIGxpYmlkZV90aHJlYWRpbmdfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5 KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RocmVhZGluZ19wcml2YXRlX2hlYWRl cnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGhyZWFkaW5nX2RlcHMsCi0tICAg ICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfdGhyZWFkaW5nLAotKyAgICAgICAgICAgIGxpbmtf d2l0aDogbGliaWRlX3RocmVhZGluZywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVf ZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90cmVlL21l c29uLmJ1aWxkIGIvc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxkCi1pbmRleCA3Yjk5MjI4Mjgu LjVhNTkxMTA2YyAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotKysr IGIvc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxkCi1AQCAtNjEsNyArNjEsNyBAQCBsaWJpZGVf dHJlZSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdHJlZS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBs aWJpZGVfdHJlZV9zb3VyYwotIGxpYmlkZV90cmVlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgK LSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90cmVlX3ByaXZhdGVfaGVhZGVycywKLSAg ICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90cmVlX2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfdHJlZSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV90cmVl LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkK LSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUv dmNzL21lc29uLmJ1aWxkCi1pbmRleCA2YjBlMTU3YzQuLmM3NjJhZmI2NCAxMDA2NDQKLS0tLSBh L3NyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3Zjcy9tZXNvbi5i dWlsZAotQEAgLTg0LDcgKzg0LDcgQEAgbGliaWRlX3ZjcyA9IHN0YXRpY19saWJyYXJ5KCdpZGUt dmNzLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gCi0gbGliaWRlX3Zjc19kZXAgPSBkZWNsYXJl X2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdmNzX2RlcHMsCi0t ICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfdmNzLAotKyAgICAgICAgICAgIGxpbmtfd2l0 aDogbGliaWRlX3ZjcywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3Jp ZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV92Y3NfZ2VuZXJhdGVkX2hl YWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkIGIv c3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQKLWluZGV4IGUxNzY3YWU0Ni4uZmNlNDc3YjM2 IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9s aWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi1AQCAtMzksNyArMzksNyBAQCBsaWJpZGVfd2Via2l0 ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS13ZWJraXQtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGli aWRlX3dlYmtpdAotIAotIGxpYmlkZV93ZWJraXRfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAot ICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3dlYmtpdF9kZXBzLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX3dlYmtpdCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlk ZV93ZWJraXQsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcu JyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfd2Via2l0X2dlbmVyYXRlZF9oZWFk ZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbWVzb24uYnVpbGQgYi9zcmMvbWVzb24uYnVpbGQK LWluZGV4IDNlYjliYTUzNS4uMTEzYTE0MmFkIDEwMDY0NAotLS0tIGEvc3JjL21lc29uLmJ1aWxk Ci0rKysgYi9zcmMvbWVzb24uYnVpbGQKLUBAIC00OCw2ICs0OCwzMCBAQCBnbm9tZV9idWlsZGVy X2RlcHMgPSBbCi0gICBsaWJpZGVfdHJlZV9kZXAsCi0gXQotIAotK2dub21lX2J1aWxkZXJfc3Rh dGljID0gWwotKyAgbGliaWRlX2NvZGUsCi0rICBsaWJpZGVfY29yZSwKLSsgIGxpYmlkZV9kZWJ1 Z2dlciwKLSsgIGxpYmlkZV9lZGl0b3IsCi0rICBsaWJpZGVfZm91bmRyeSwKLSsgIGxpYmlkZV9n cmVldGVyLAotKyAgbGliaWRlX2d1aSwKLSsgIGxpYmlkZV9pbywKLSsgIGxpYmlkZV9sc3AsCi0r ICBsaWJpZGVfcGx1Z2lucywKLSsgIGxpYmlkZV9wcm9qZWN0cywKLSsgIGxpYmlkZV9zZWFyY2gs Ci0rICBsaWJpZGVfc291cmNldmlldywKLSsgIGxpYmlkZV90ZXJtaW5hbCwKLSsgIGxpYmlkZV90 aGVtZXMsCi0rICBsaWJpZGVfdGhyZWFkaW5nLAotKyAgbGliaWRlX3RyZWUsCi0rICBsaWJpZGVf dmNzLAotKyAgbGliaWRlX3dlYmtpdCwKLSsKLSsgIHBsdWdpbnMsCi0rXQotKwotIGlmIGxpYnN5 c3Byb2ZfY2FwdHVyZS5mb3VuZCgpCi0gICBnbm9tZV9idWlsZGVyX2RlcHMgKz0gbGlic3lzcHJv Zl9jYXB0dXJlCi0gZW5kaWYKLUBAIC03Nyw3ICsxMDEsNyBAQCBnbm9tZV9idWlsZGVyID0gZXhl Y3V0YWJsZSgnZ25vbWUtYnVpbGRlcicsICdtYWluLmMnLCAnYnVnLWJ1ZGR5LmMnLAotICAgICAg ICAgICAgIGNfYXJnczogbGliaWRlX2FyZ3MgKyBleGVfY19hcmdzICsgcmVsZWFzZV9hcmdzLAot ICAgICAgICAgIGxpbmtfYXJnczogZXhlX2xpbmtfYXJncywKLSAgICAgICAgICAgICAgICBwaWU6 IHRydWUsCi0tICAgICAgICBsaW5rX3dob2xlOiBwbHVnaW5zLAotKyAgICAgICAgbGlua193aG9s ZTogZ25vbWVfYnVpbGRlcl9zdGF0aWMsCi0gICAgICBpbnN0YWxsX3JwYXRoOiBwa2dsaWJkaXJf YWJzLAotICAgICAgIGRlcGVuZGVuY2llczogZ25vbWVfYnVpbGRlcl9kZXBzLAotICkKLS0tIAot Mi4yNC4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQppbmRleCAxMTQ1ODEzNTJmYi4uNzExZmRjZTdh ZWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1idWlsZGVyJwogcGtnbmFtZT1nbm9tZS1idWlsZGVyCi12ZXJzaW9uPTMu MzQuMQotcmV2aXNpb249NQordmVyc2lvbj0zLjM3LjkwCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ed2l0aF93ZWJraXQ9dHJ1ZSAtRHdpdGhfc3lzcHJv Zj10cnVlIC1EaGVscD10cnVlIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGFwcGRhdGEt dG9vbHMgZGVza3RvcC1maWxlLXV0aWxzIGZsZXggZ29iamVjdC1pbnRyb3NwZWN0aW9uCkBAIC0x MCwxNyArMTAsMTYgQEAgbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIGNsYW5nIGRldmhlbHAtZGV2 ZWwgZW5jaGFudDItZGV2ZWwgZmxhdHBhay1kZXZlbAogIGdzcGVsbC1kZXZlbCBndGtzb3VyY2V2 aWV3NC1kZXZlbCBndGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwganNvbnJwYy1nbGliLWRldmVs CiAgbGliZGF6emxlLWRldmVsIGxpYmdpdDItZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYm9z dHJlZS1kZXZlbCBsaWJwZWFzLWRldmVsCiAgbGlieG1sMi1kZXZlbCB0ZW1wbGF0ZS1nbGliLWRl dmVsIHZhbGEtZGV2ZWwgdnRlMy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCi0gcHl0aG9uMy1nb2Jq ZWN0LWRldmVsIHN5c3Byb2YtZGV2ZWwgZ2xhZGUzLWRldmVsIgorIHB5dGhvbjMtZ29iamVjdC1k ZXZlbCBzeXNwcm9mLWRldmVsIGdsYWRlMy1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRz PSJkZXNrdG9wLWZpbGUtdXRpbHMgZmxhdHBhay1idWlsZGVyIHB5dGhvbjMtbHhtbCBkZXZoZWxw IHB5dGhvbjMtZ29iamVjdCIKIHNob3J0X2Rlc2M9IklERSBmb3IgR05PTUUiCiBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQnVpbGRlciIK LWNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxkZXIv cmF3L2dub21lLWJ1aWxkZXItMy0zNC9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9yYXcvZ25vbWUtYnVpbGRlci0zLTM2L05FV1Mi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wYjZlNDYxMDU3ZWE4MTUxZTgwNTI0 YzBlYTdlZjFjYjk0OGU5MmFmZGE5ZGM2YmQzM2FlMzM5MmYwNDUwMWE0CitjaGVja3N1bT03ODA4 OWNmMzlkZGU0ZWNmMWI1MTI3MzBiZGY0Yzc2OTEwNDc2NDk1YzRkYWI3MGMxNDA4NmJhZjdhYjhl ZmMyCiBwYXRjaF9hcmdzPSItTnAxIgotbm9jcm9zcz0iQ2Fubm90IGJ1aWxkIGdyZXNvdXJjZXMg b24gY3Jvc3MgbXVzbCwgdW5yZXNvbHZhYmxlIHNobGlicyBvbiBnbGliYyBjcm9zcyIKIAogY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJKi1tdXNsKQpAQCAtMjgsMyArMjcsOCBAQCBj YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkJTElCUys9IiAtbGV4ZWNpbmZvIgogCQk7 OwogZXNhYworCitwcmVfY29uZmlndXJlKCkgeworCSMgdGhpcyB0ZXN0IG5lZWRzIFgKKwl2c2Vk IC1pICJzL3Rlc3QoJ3Rlc3QtdGV4dC1pdGVyJy8jJi8iIHNyYy90ZXN0cy9tZXNvbi5idWlsZAor fQoKRnJvbSA4ODdjMDllNTQ4OTkyYjNlZjY3MDhiZjQzNGExOGQ3ODQ1ZTg0ZTMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAxODoyNDowMiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg NzMvODNdIGFkd2FpdGEtaWNvbi10aGVtZTogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBzcmNwa2dz L2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYWR3 YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlIGIvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVt cGxhdGUKaW5kZXggZmViZDI5MTViZTYuLjZjZDJiZGJlNzBmIDEwMDY0NAotLS0gYS9zcmNwa2dz L2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Fkd2FpdGEtaWNvbi10 aGVtZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Fkd2Fp dGEtaWNvbi10aGVtZScKIHBrZ25hbWU9YWR3YWl0YS1pY29uLXRoZW1lCi12ZXJzaW9uPTMuMzYu MQotcmV2aXNpb249MgordmVyc2lvbj0zLjM3LjIKK3JldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgpA QCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iTEdQTC0zLjAtb3ItbGF0ZXIsIENDLUJZLVNBLTMuMCIKIGhvbWVw YWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvYWR3YWl0YS1pY29uLXRoZW1lIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTQ5ODUxODYyNzA0NGRmZDdkYjdkNzlh NWIzZDQzNzg0OGNhZjE5OTFlZjRlZjAzNmEyZDNhMmFjMmMxZjE0ZAorY2hlY2tzdW09YTU5NGU3 NDQwOTcxZjg2MGNjNjFiMWI4MjkxYmUxNWZmYzFiOGRkMDZhOWYxMTQ4NWE1YTdmYWYxODliY2Y2 YgoKRnJvbSA5YjJhZDlmMjgxMDU2NGQ4MGNjZmMzOGI5NTJhNjkxOTJjYzhmNGJhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAxOTo1Nzo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg NzQvODNdIGdub21lLWJhY2tncm91bmRzOiB1cGRhdGUgdG8gMy4zNy4yCgotLS0KIHNyY3BrZ3Mv Z25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWJhY2tncm91bmRzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0 ZQppbmRleCAwYjFlZTQyNzM1My4uZjFmNDlkYTkzOGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25v bWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJhY2tn cm91bmRzJwogcGtnbmFtZT1nbm9tZS1iYWNrZ3JvdW5kcwotdmVyc2lvbj0zLjM2LjAKLXJldmlz aW9uPTIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0 eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9Z2V0dGV4dApAQCAtMTAsNCArMTAsNCBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciwgQ0MtQlktMi4wLCBDQy1CWS1TQS0yLjAsIENDLUJZLVNBLTMuMCIKIGhv bWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYmFja2dyb3VuZHMi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iOGNiODFlNGNmOWQwODVmYmIyMzU0 MDYzNWI0OTJkNWMxMjRhMWY4NjExYzJhYTlhYzYzODQxMTFkNzdiYjBiCitjaGVja3N1bT00YTJj Yjg2ZmY5NmE2NTBlYjA0MTAxYzJhMWJiMGFlZmMwM2IzNTg3N2Y0MjMxMzEzNzhmNGMwZmRmMDNk YjY4CgpGcm9tIDUwNzk3ZWFkMWE1OTA2YTI5ZjJiODJiNGI1ZDdkYTY3ZDllMzZkZTggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjA1OjExICswMjAwClN1YmplY3Q6IFtQQVRD SCA3NS84M10gcG9sYXJpOiB1cGRhdGUgdG8gMy4zNy4zCgotLS0KIHNyY3BrZ3MvcG9sYXJpL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9sYXJpL3RlbXBsYXRlIGIvc3JjcGtncy9w b2xhcmkvdGVtcGxhdGUKaW5kZXggMDc2N2JhYzk3YjguLjQxZDA4ZWU4MWI1IDEwMDY0NAotLS0g YS9zcmNwa2dzL3BvbGFyaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BvbGFyaS90ZW1wbGF0ZQpA QCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BvbGFyaScKIHBrZ25hbWU9cG9s YXJpCi12ZXJzaW9uPTMuMzYuMwordmVyc2lvbj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgaXRzdG9vbCBnb2JqZWN0LWlu dHJvc3BlY3Rpb24gZ2V0dGV4dCIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iT3JwaGFu ZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1BvbGFyaSIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTRmMjY2NDdlOTgxYzVkMGJmNDJkZjU4MmFkYWMyMGJiZmRh Y2RmZThjNGZlMTUwYWYwY2EwM2QyZTBjZWY1M2EKK2NoZWNrc3VtPTc5MDViOWRkYjNmODExZGNj MjNiMzA3NTAxMTg3ZWFkNGRkYzc4ZWQwYTY1MjlhZmNkZGNiOTQ0M2JhMTI5MDgKIAogaWYgWyAi JENST1NTX0JVSUxEIiBdIDsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBnbGliLWRldmVsIHBy ZWxpbmstY3Jvc3MgcWVtdS11c2VyLXN0YXRpYyIKCkZyb20gNjM4NWU1NTRiZGQwNTJlMDJlNTZm OGQzNTMyYTkyZjFiNWNmZjAzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6 MTA6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDc2LzgzXSBndmZzOiB1cGRhdGUgdG8gMS40NS45 MAoKLS0tCiBzcmNwa2dzL2d2ZnMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ndmZz L3RlbXBsYXRlIGIvc3JjcGtncy9ndmZzL3RlbXBsYXRlCmluZGV4IDEyN2EwNTc3OTAxLi4xNjkx ZDUzNmQxYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9ndmZzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z3Zmcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2d2ZnMn CiBwa2duYW1lPWd2ZnMKLXZlcnNpb249MS40NC4xCit2ZXJzaW9uPTEuNDUuOTAKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kdXNlcnVuaXRk aXI9bm8gLUR0bXBmaWxlc2Rpcj1ubyAtRGxvZ2luZD1mYWxzZQpAQCAtMjAsNyArMjAsNyBAQCBs aWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL1Byb2plY3RzL2d2ZnMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9ndmZzL3Jhdy9nbm9tZS0zLTM0L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT01MGVmMzI0NWQxYjAzNjY2YTQwNDU1MTA5MTY5YTJhMWJkNTE0MTlmZDJkNTFmOWZh NmNmZDRmODlmMDRmYjQ2CitjaGVja3N1bT1kZTFmNTZhYzRiY2JjZWI3NzdhYTcyZjY3ZWU1ZjU3 NGFmNjM2MjE4MmFiMWM4MDk3ZGE2NTdlM2RkZWFkZTg3CiAKICMgTWFudWFsbHkgZGVjbGFyZSBz aGxpYnMgdXNlZCBieSB0aGUgc3VicGtncy4KIHNobGliX3Byb3ZpZGVzPSJsaWJndmZzY29tbW9u LnNvIGxpYmd2ZnNkYWVtb24uc28iCgpGcm9tIGVjZTdkYTYxZGI5YzhmODliMzcxNjMwNjNjOTNk ZmFhMGVkZmVhMjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjE2OjQ1ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA3Ny84M10gbGlic291cDogdXBkYXRlIHRvIDIuNzEuMAoKLS0t CiBzcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUgfCAyMyArKysrKysrKysrKysrLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0 ZQppbmRleCBmN2E5ODM3M2FjOC4uZmRjZTFkYjMxNmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGli c291cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKQEAgLTEsMTYgKzEs MTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnNvdXAnCiBwa2duYW1lPWxpYnNvdXAKLXZl cnNpb249Mi43MC4wCit2ZXJzaW9uPTIuNzEuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVk IC1EbnRsbT1kaXNhYmxlZAorY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVkIC1EbnRs bT1kaXNhYmxlZCAtRHRsc19jaGVjaz1mYWxzZQogIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYg Z2lyIGVuYWJsZWQgZGlzYWJsZWQpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIGVuYWJsZWQgZGlz YWJsZWQpIC1EdGxzX2NoZWNrPWZhbHNlIgorIC1EdmFwaT0kKHZvcHRfaWYgZ2lyIGVuYWJsZWQg ZGlzYWJsZWQpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwgcGtn LWNvbmZpZyBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgJ3ZhbGEnKSIKKyAkKHZvcHRfaWYgZ2ly IHZhbGEpIgogbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGlieG1sMi1kZXZlbCBzcWxpdGUt ZGV2ZWwgbGlicHNsLWRldmVsCi0gYnJvdGxpLWRldmVsICQodm9wdF9pZiB2YWxhICd2YWxhLWRl dmVsJykiCisgYnJvdGxpLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBkZXBlbmRz PSJnbGliLW5ldHdvcmtpbmciCiBzaG9ydF9kZXNjPSJIVFRQIGxpYnJhcnkgaW1wbGVtZW50YXRp b24gaW4gQyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4i CkBAIC0xOCwxMSArMTgsMTYgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9saWJzb3VwIgogY2hhbmdlbG9nPSJo dHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvbGlic291cC9nbm9tZS0zLTM2 L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NGIwMjBmNzRhZWZhNDM4 OTE4ZDhlNTNjZmY2MmUyYjFlNTllZmUyZGU1M2UwNmIxOWE0YjA3YjFmNGQ1MzQyCitjaGVja3N1 bT04OGUyNGZhZDcyZDE2ZTFjYjY5MmM4NzgyNjg4ZGJlZTRiZjQ0MTUxZWZiMGQ5ZWQyNWIxNGYz ODQ5ZDk4OTZlCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWlsZF9vcHRpb25zPSJnaXIg dmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJn aXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBnaW8gdGVzdHMgY2FuJ3QgcnVu IGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQogCiBsaWJzb3VwLWRldmVsX3BhY2thZ2Uo KSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGlic291cD49JHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKQEAgLTMxLDggKzM2LDYgQEAgbGlic291cC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92 ZSB1c3IvbGliL3BrZ2NvbmZpZy9saWJzb3VwLTIuNC5wYwogCQlpZiBbICIkYnVpbGRfb3B0aW9u X2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAvU291cC0yLjQuZ2lyCi0J CWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3No YXJlL3ZhbGEKIAkJZmkKIAkJdm1vdmUgdXNyL2luY2x1ZGUvbGlic291cC0yLjQKCkZyb20gOTNi MzlmMzA2ZGMzYTdkOTViMzA4NmY2Yzc5NWY0ZGZjMDcxODE5YyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1 biwgMTYgQXVnIDIwMjAgMjE6MjA6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDc4LzgzXSByeWdl bDogdXBkYXRlIHRvIDAuMzkuMgoKLS0tCiBzcmNwa2dzL3J5Z2VsL3RlbXBsYXRlIHwgOCArKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlIGIvc3JjcGtncy9yeWdlbC90ZW1wbGF0 ZQppbmRleCBkMjhkYmMyY2UwOC4uYmRlZGQzYzZjODcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvcnln ZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3J5Z2VsJwogcGtnbmFtZT1yeWdlbAotdmVyc2lvbj0wLjM4 LjMKLXJldmlzaW9uPTIKK3ZlcnNpb249MC4zOS4yCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURleGFtcGxlcz1mYWxz ZSAtRHRlc3RzPWZhbHNlCkBAIC05LDE0ICs5LDE0IEBAIGNvbmZpZ3VyZV9hcmdzPSItRGV4YW1w bGVzPWZhbHNlIC1EdGVzdHM9ZmFsc2UKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGli LWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0ic3FsaXRlLWRldmVsIGd0ayszLWRldmVsIGxpYnNv dXAtZGV2ZWwgbGliZ2VlMDgtZGV2ZWwKICBndXBucC1hdi1kZXZlbCBndXBucC1kbG5hLWRldmVs IHRyYWNrZXItZGV2ZWwgbGlibWVkaWFhcnQtZGV2ZWwKLSBnc3NkcC1kZXZlbCIKKyBnc3NkcC1k ZXZlbCBnc3QxLWVkaXRpbmctc2VydmljZXMtZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24t dGhlbWUgZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iR05PTUUgaG9tZSBtZWRpYSBz b2x1dGlvbiIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL1Byb2plY3RzL1J5Z2VsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MDhj MjFhNTc3ZjdiZGFkMjY0NDZhNzVmZmEzMjc3OGIyNjg0MmMzYjExODgxNjVmMGIxOTgxODU1OTc0 N2QwMAorY2hlY2tzdW09NDUzZjFjZTc4MmE1MWJhZThmNzc2YTkyZjcwZDIzMzYyNWM5OGExYzRj ZDJlYzNiNDU0NWNiN2U3NzczMzY2NAogCiBjb25mX2ZpbGVzPSIvZXRjL3J5Z2VsLmNvbmYiCiAK CkZyb20gYTEyYzNiMjMxOGY3MmNhN2ZiMzA4YTEyNzQ2N2M1ZGYyNjBhZTUwOSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjM6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDc5 LzgzXSBzaW1wbGUtc2NhbjogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBzcmNwa2dzL3NpbXBsZS1z Y2FuL3RlbXBsYXRlIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxh dGUgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCmluZGV4IDRhZTNiODY0M2ZkLi42ZTE3 YTZlZmI0YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCkBAIC0xLDcgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnc2ltcGxlLXNjYW4nCiBwa2duYW1lPXNpbXBsZS1zY2FuCi1fZ25vbWVfdmVyc2lv bj0zLjM2Ci12ZXJzaW9uPTMuMzYuNAordmVyc2lvbj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29s IHBrZy1jb25maWcgdmFsYSIKQEAgLTExLDUgKzEwLDUgQEAgc2hvcnRfZGVzYz0iR1RLIFNpbXBs ZSBzY2FubmluZyB1dGlsaXR5IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3NpbXBsZS1zY2FuIgotZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHtfZ25vbWVfdmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTU2YWYxODI5MWE3NzYzZjc2M2RhNWYwZWRlZDI0N2QyZjhlYmY5 MTEyYzI4NmVmODkwMTMzNzQ5NjlmZWY1MjUKK2Rpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNr c3VtPWY1ZDg5NzNjNmI0ODNkNTBkOWFjMDhhZTZjMDgwMmE3YTZiYjI1ODUzOGE4MTQ3MjY2ZTcz YWE0NTFlZWQ5NTIKCkZyb20gOWVhNmU3NTFiZjQ5ZTYzZGQ3NjRlNGE2NDdmMmJkN2ZiYzdlNGE5 MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjU6MTUgKzAyMDAKU3ViamVj dDogW1BBVENIIDgwLzgzXSB5ZWxwLXhzbDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtn cy95ZWxwLXhzbC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3llbHAteHNsL3RlbXBs YXRlIGIvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZQppbmRleCBmNzRhN2ZiYTY3Yy4uMTA3NGU2 YzMxOTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy95ZWxwLXhzbC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3llbHAteHNsJwogcGtnbmFtZT15ZWxwLXhzbAotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4z Ny45MAogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJl CkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvQXBwcy9ZZWxwL1hzbCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTRmZTUxYzAyMzNiNzlhNGMyMDRjNjg0OThkNDVmMDliMzQyYzMwZWQwMmM0ZTQxODUw NmMwZTM1ZjA5MDRlYzMKK2NoZWNrc3VtPWU4Y2E5Y2FmNTcyOWY4ZGU1MDM0OWZlZmEyZjJhNjY4 MGUwNDkyOThiN2FiODQ5ZDRlZmU0OTgzYzQzYTk0ZjQKCkZyb20gZGJhYTk5MjJjOGVlNzhlMzhh ZTQ2MDA2NGExMmMxMjhiMGFiNGMyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAg MjE6MjU6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDgxLzgzXSB5ZWxwOiB1cGRhdGUgdG8gMy4z Ny45MAoKLS0tCiBzcmNwa2dzL3llbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95 ZWxwL3RlbXBsYXRlIGIvc3JjcGtncy95ZWxwL3RlbXBsYXRlCmluZGV4IDYzY2E3YzIyNWM4Li41 YTQ3YThlMmJkYiAxMDA2NDQKLS0tIGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MveWVscC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3ll bHAnCiBwa2duYW1lPXllbHAKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2Fi bGUtc2NoZW1hcy1jb21waWxlIC0tZGlzYWJsZS1zdGF0aWMiCkBAIC0xMyw3ICsxMyw3IEBAIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Z ZWxwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmQ0YjNlMjNkMzFhZDJiZWJl NDJhYzhmODAyNDJiMmQ5YmVmNTE0MThiZjYyYjU5YWNkZjI0NDBiZDk0ZWQyNAorY2hlY2tzdW09 ZGFjM2QyYjE0ZmJmY2VlNDczMmQ0ZThhN2Y4YTEwOGE4OGU4NTNjYTA1ZjA3MWQ5ODhhNWE4ZTE4 NWU1YWJkMgogCiB5ZWxwLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ieWVscC0ke3ZlcnNp b259XyR7cmV2aXNpb259IgoKRnJvbSA1MDMxZmFiZmYwZWZlODA4NTNhNWVkMjkwNGRjZTM2Njhj N2VjZmE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyNjo0NyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggODIvODNdIHllbHAtdG9vbHM6IHVwZGF0ZSB0byAzLjM3LjkwCgpbY2kg c2tpcF0KLS0tCiBzcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy95ZWxwLXRvb2xzL3RlbXBsYXRlIGIvc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBsYXRlCmlu ZGV4IDllOGE2NzBlNmIwLi5hMWVjOWY3ZTZlZCAxMDA2NDQKLS0tIGEvc3JjcGtncy95ZWxwLXRv b2xzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3llbHAtdG9vbHMnCiBwa2duYW1lPXllbHAtdG9v bHMKLXZlcnNpb249My4zMi4yCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGFyY2hzPW5v YXJjaAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTIsNCArMTIsNCBAQCBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwOi8vd3d3Lmdub21lLm9yZyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTE4Mzg1NmI1ZWQwYjBiYjJjMDVkZDEyMDRhZjAyMzk0NmVk NDM2OTQzZTM1ZTc4OWFmYjAyOTVlNWU3MWU4ZjkKK2NoZWNrc3VtPWQwNzAyNTg5YzgyMzhhMjE1 OTU0Y2FjYTk0YTk2NGIzYTBkMTY0NjY3OThhOGMxZDY0NGRkNjZjMjQ5MmYyYmIKCkZyb20gMDY1 MTQ3YTk2ZTYxMjM4Mjg4ZTQ0ZWIxNTBmZTcxOTY1Y2NlNWIwNyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFR1 ZSwgMTggQXVnIDIwMjAgMDU6MzU6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDgzLzgzXSBidWRn aWUtZGVza3RvcDogcmVidWlsZCBmb3IgbXV0dGVyLTcKCltjaSBza3BdCi0tLQogLi4uL2J1ZGdp ZS1kZXNrdG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoICAgIHwgMTM0NzIgKysrKysrKysrKysr KysrKwogc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwgICAg IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTM0NzMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9t ZS0zMzgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMv Z25vbWUtMzM4LnBhdGNoIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMz OC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTJmYTc2YTE3 YjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvZ25v bWUtMzM4LnBhdGNoCkBAIC0wLDAgKzEsMTM0NzIgQEAKK0Zyb20gMzBiYTBiNWE0OTg2ZDZiZTM2 ODdhMWQ3ZmI0ODI5MDYxODVlYThjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERh dmlkIE1vaGFtbWVkIDxmb3NzZnJlZWRvbUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CitEYXRl OiBUdWUsIDE4IEZlYiAyMDIwIDA2OjQwOjEyICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIGdub21l IDMuMzggY29tcGF0aWJpbGl0eQorCitTcXVhc2hlZCBieSBAcTY2IGZyb206CisKK2h0dHBzOi8v Z2l0aHViLmNvbS9zb2x1cy1wcm9qZWN0L2J1ZGdpZS1kZXNrdG9wL3B1bGwvMTk4NworCitwbHVz IGFuIGFzc29ydG1lbnQgb2Ygb2xkZXIgbXV0dGVyIHVwZGF0ZXMgZnJvbSBnaXQgbWFzdGVyCist LS0KKyBtZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2 ICstCisgbWVzb25fb3B0aW9ucy50eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg MSAtCisgc3JjL2FwcGxldHMvc3RhdHVzL1N0YXR1c0FwcGxldC52YWxhICAgICAgICAgIHwgICAg NiAtCisgc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAx MyArLQorIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MTUgKy0KKyBzcmMvd20vbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDMwICstCisgc3JjL3dtL3NoaW0udmFsYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxMCArLQorIHNyYy93bS93bS52YWxhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMTAgKy0KKyAuLi57Q2x1dHRlci01Lm1ldGFkYXRhID0+IENsdXR0ZXItNi5tZXRhZGF0YX0g fCAgICAwCisgLi4ue0NsdXR0ZXItNC5tZXRhZGF0YSA9PiBDbHV0dGVyLTcubWV0YWRhdGF9IHwg ICA0MyAtCisgdmFwaS97Q29nbC00Lm1ldGFkYXRhID0+IENvZ2wtNi5tZXRhZGF0YX0gICAgIHwg ICAgMAorIHZhcGkve0NvZ2wtNS5tZXRhZGF0YSA9PiBDb2dsLTcubWV0YWRhdGF9ICAgICB8ICAg IDIgLQorIHZhcGkvTWV0YS0zLm1ldGFkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg NjYgLQorIHZhcGkve01ldGEtNS5tZXRhZGF0YSA9PiBNZXRhLTYubWV0YWRhdGF9ICAgICB8ICAg IDAKKyB2YXBpL3tNZXRhLTQubWV0YWRhdGEgPT4gTWV0YS03Lm1ldGFkYXRhfSAgICAgfCAgIDI1 ICstCisgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaCAgICAgICAgICAgICAgICAgIHwgICAg MiArLQorIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaSAgICAgICAgICAgICAgICB8ICA2 OTEgKysrKysrKworIHZhcGkvbGlibXV0dGVyLTIuZGVwcyAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDkgLQorIHZhcGkvbGlibXV0dGVyLTIudmFwaSAgICAgICAgICAgICAgICAgICAgICAg ICB8IDEzMjUgLS0tLS0tLS0tLS0tLS0KKyB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhICAg ICAgICAgICAgICAgICAgfCAgICA2IC0KKyB2YXBpL2xpYm11dHRlci0zLmRlcHMgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICA5IC0KKyB2YXBpL2xpYm11dHRlci00LmRlcHMgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICA4IC0KKyB2YXBpL2xpYm11dHRlci00LnZhcGkgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxNDI1IC0tLS0tLS0tLS0tLS0tLQorIHZhcGkve2xpYm11dHRlci01 LmRlcHMgPT4gbGlibXV0dGVyLTYuZGVwc30gICB8ICAgIDMgKy0KKyB2YXBpL3tsaWJtdXR0ZXIt NS52YXBpID0+IGxpYm11dHRlci02LnZhcGl9ICAgfCAgIDQ1ICstCisgdmFwaS9saWJtdXR0ZXIt Ny1jdXN0b20udmFsYSAgICAgICAgICAgICAgICAgIHwgICAgNyArCisgdmFwaS9saWJtdXR0ZXIt Ny5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCisgdmFwaS97bGlibXV0dGVy LTMudmFwaSA9PiBsaWJtdXR0ZXItNy52YXBpfSAgIHwgIDM5MCArKy0tCisgdmFwaS9saWJtdXR0 ZXItY29nbC00LnZhcGkgICAgICAgICAgICAgICAgICAgIHwgMTI3MiAtLS0tLS0tLS0tLS0tCisg dmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhICAgICAgICAgICAgIHwgIDE1OCAtLQor IC4uLnN0b20udmFsYSA9PiBtdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhfSB8ICAgMTEgLQor IC4uLnItY2x1dHRlci01LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNi5kZXBzfSB8ICAgIDIgKy0K KyAuLi5yLWNsdXR0ZXItNS52YXBpID0+IG11dHRlci1jbHV0dGVyLTYudmFwaX0gfCAgODA2ICsr LS0tLS0tCisgLi4uci1jbHV0dGVyLTQuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci03LmRlcHN9IHwg ICAgMyArLQorIC4uLnItY2x1dHRlci00LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNy52YXBpfSB8 IDE2MTUgKysrKy0tLS0tLS0tLS0tLS0KKyAuLi4tY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNvZ2wt Ni1jdXN0b20udmFsYX0gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTQuZGVwcyA9PiBtdXR0ZXIt Y29nbC02LmRlcHN9IHwgICAgMAorIC4uLnttdXR0ZXItY29nbC01LnZhcGkgPT4gbXV0dGVyLWNv Z2wtNi52YXBpfSB8ICA0MjIgKy0tLS0KKyAuLi4tY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNvZ2wt Ny1jdXN0b20udmFsYX0gfCAgIDIwICstCisgLi4ue211dHRlci1jb2dsLTUuZGVwcyA9PiBtdXR0 ZXItY29nbC03LmRlcHN9IHwgICAgMAorIC4uLnttdXR0ZXItY29nbC00LnZhcGkgPT4gbXV0dGVy LWNvZ2wtNy52YXBpfSB8ICA2NzEgKysrLS0tLQorIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBp ICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKy0KKyA0MiBmaWxlcyBjaGFuZ2VkLCAxOTIwIGlu c2VydGlvbnMoKyksIDcyNTQgZGVsZXRpb25zKC0pCisgcmVuYW1lIHZhcGkve0NsdXR0ZXItNS5t ZXRhZGF0YSA9PiBDbHV0dGVyLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tDbHV0 dGVyLTQubWV0YWRhdGEgPT4gQ2x1dHRlci03Lm1ldGFkYXRhfSAoNzglKQorIHJlbmFtZSB2YXBp L3tDb2dsLTQubWV0YWRhdGEgPT4gQ29nbC02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFw aS97Q29nbC01Lm1ldGFkYXRhID0+IENvZ2wtNy5tZXRhZGF0YX0gKDkxJSkKKyBkZWxldGUgbW9k ZSAxMDA2NDQgdmFwaS9NZXRhLTMubWV0YWRhdGEKKyByZW5hbWUgdmFwaS97TWV0YS01Lm1ldGFk YXRhID0+IE1ldGEtNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve01ldGEtNC5tZXRh ZGF0YSA9PiBNZXRhLTcubWV0YWRhdGF9ICg3NiUpCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHZhcGkv Z3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11 dHRlci0yLmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMi52YXBpCisg ZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEKKyBkZWxldGUg bW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMy5kZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZh cGkvbGlibXV0dGVyLTQuZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci00 LnZhcGkKKyByZW5hbWUgdmFwaS97bGlibXV0dGVyLTUuZGVwcyA9PiBsaWJtdXR0ZXItNi5kZXBz fSAoNTAlKQorIHJlbmFtZSB2YXBpL3tsaWJtdXR0ZXItNS52YXBpID0+IGxpYm11dHRlci02LnZh cGl9ICg5NyUpCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZh bGEKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNy5kZXBzCisgcmVuYW1lIHZh cGkve2xpYm11dHRlci0zLnZhcGkgPT4gbGlibXV0dGVyLTcudmFwaX0gKDc1JSkKKyBkZWxldGUg bW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2 NDQgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhCisgcmVuYW1lIHZhcGkve211dHRl ci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYX0g KDkyJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXItNS5kZXBzID0+IG11dHRlci1jbHV0 dGVyLTYuZGVwc30gKDYzJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXItNS52YXBpID0+ IG11dHRlci1jbHV0dGVyLTYudmFwaX0gKDkzJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0 ZXItNC5kZXBzID0+IG11dHRlci1jbHV0dGVyLTcuZGVwc30gKDU0JSkKKyByZW5hbWUgdmFwaS97 bXV0dGVyLWNsdXR0ZXItNC52YXBpID0+IG11dHRlci1jbHV0dGVyLTcudmFwaX0gKDg2JSkKKyBy ZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNS1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC02LWN1 c3RvbS52YWxhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNC5kZXBzID0+IG11 dHRlci1jb2dsLTYuZGVwc30gKDEwMCUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTUudmFw aSA9PiBtdXR0ZXItY29nbC02LnZhcGl9ICg2OCUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2ds LTQtY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNvZ2wtNy1jdXN0b20udmFsYX0gKDgxJSkKKyByZW5h bWUgdmFwaS97bXV0dGVyLWNvZ2wtNS5kZXBzID0+IG11dHRlci1jb2dsLTcuZGVwc30gKDEwMCUp CisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTQudmFwaSA9PiBtdXR0ZXItY29nbC03LnZhcGl9 ICg1OSUpCisKK2RpZmYgLS1naXQgbWVzb24uYnVpbGQgbWVzb24uYnVpbGQKK2luZGV4IDJhMGUw MzE2Li4zYzRjNmFjMSAxMDA2NDQKKy0tLSBtZXNvbi5idWlsZAorKysrIG1lc29uLmJ1aWxkCitA QCAtMzIsMTYgKzMyLDE2IEBAIGFtX2NmbGFncyA9IFsKKyBhZGRfZ2xvYmFsX2FyZ3VtZW50cyhh bV9jZmxhZ3MsIGxhbmd1YWdlOiAnYycpCisgbWVzb24uYWRkX2luc3RhbGxfc2NyaXB0KCdtZXNv bl9wb3N0X2luc3RhbGwuc2gnKQorIAorLSMgQnVkZ2llIG5lZWRzIGEgbWluaW11bSAzLjIyIEdO T01FIHN0YWNrCistZ25vbWVfbWluaW11bV92ZXJzaW9uID0gJz49IDMuMjIuMCcKKysjIEJ1ZGdp ZSBuZWVkcyBhIG1pbmltdW0gMy4yNCBHTk9NRSBzdGFjaworK2dub21lX21pbmltdW1fdmVyc2lv biA9ICc+PSAzLjI0LjAnCisgCisgZGVwX2d0azMgPSBkZXBlbmRlbmN5KCdndGsrLTMuMCcsIHZl cnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKy1kZXBfZ2xpYiA9IGRlcGVuZGVuY3koJ2ds aWItMi4wJywgdmVyc2lvbjogJz49IDIuNDYuMCcpCistZGVwX2dpb3VuaXggPSBkZXBlbmRlbmN5 KCdnaW8tdW5peC0yLjAnLCB2ZXJzaW9uOiAnPj0gMi40Ni4wJykKKy1kZXBfcGVhcyA9IGRlcGVu ZGVuY3koJ2xpYnBlYXMtMS4wJywgdmVyc2lvbjogJz49IDEuOC4wJykKKytkZXBfZ2xpYiA9IGRl cGVuZGVuY3koJ2dsaWItMi4wJywgdmVyc2lvbjogJz49IDIuNjIuMCcpCisrZGVwX2dpb3VuaXgg PSBkZXBlbmRlbmN5KCdnaW8tdW5peC0yLjAnLCB2ZXJzaW9uOiAnPj0gMi42Mi4wJykKKytkZXBf cGVhcyA9IGRlcGVuZGVuY3koJ2xpYnBlYXMtMS4wJywgdmVyc2lvbjogJz49IDEuMjQuMCcpCisg ZGVwX2dka3gxMSA9IGRlcGVuZGVuY3koJ2dkay14MTEtMy4wJywgdmVyc2lvbjogZ25vbWVfbWlu aW11bV92ZXJzaW9uKQorIGRlcF9saWJ1dWlkID0gZGVwZW5kZW5jeSgndXVpZCcpCistZGVwX3Zh bGEgPSBkZXBlbmRlbmN5KCd2YXBpZ2VuJywgdmVyc2lvbjogJz49IDAuNDAuMCcpCisrZGVwX3Zh bGEgPSBkZXBlbmRlbmN5KCd2YXBpZ2VuJywgdmVyc2lvbjogJz49IDAuNDYuMCcpCisgCisgIyBO ZWVkZWQgZm9yIGtleWJvYXJkeSBiaXRzCisgZGVwX2lidXMgPSBkZXBlbmRlbmN5KCdpYnVzLTEu MCcsIHZlcnNpb246ICc+PSAxLjUuMTAnKQorQEAgLTUxLDEwICs1MSwxMCBAQCBkZXBfZ3NldHRp bmdzID0gZGVwZW5kZW5jeSgnZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcycsIHZlcnNpb246IGdu b21lX21pbmltdW1fdgorIGRlcF9nc2QgPSBkZXBlbmRlbmN5KCdnbm9tZS1zZXR0aW5ncy1kYWVt b24nLCB2ZXJzaW9uOiAnPj0zLjI4LjAnKQorIAorICMgd25jayB1c2VkIGFsbCBvdmVyIHRoZSBw bGFjZS4uCistZGVwX3duY2sgPSBkZXBlbmRlbmN5KCdsaWJ3bmNrLTMuMCcsIHZlcnNpb246ICc+ PSAzLjE0LjAnKQorK2RlcF93bmNrID0gZGVwZW5kZW5jeSgnbGlid25jay0zLjAnLCB2ZXJzaW9u OiAnPj0gMy4zMi4wJykKKyAKKyAjIGFjY291bnRzc2VydmljZSBpbiBtdWx0aXBsZSBhcHBsZXRz CistZGVwX2FjY291bnRzc2VydmljZSA9IGRlcGVuZGVuY3koJ2FjY291bnRzc2VydmljZScsIHZl cnNpb246ICc+PSAwLjYuNDAnKQorK2RlcF9hY2NvdW50c3NlcnZpY2UgPSBkZXBlbmRlbmN5KCdh Y2NvdW50c3NlcnZpY2UnLCB2ZXJzaW9uOiAnPj0gMC42LjU1JykKKyAKKyAjIENyZWF0ZSBjb25m aWcuaAorIGNkYXRhID0gY29uZmlndXJhdGlvbl9kYXRhKCkKK2RpZmYgLS1naXQgbWVzb25fb3B0 aW9ucy50eHQgbWVzb25fb3B0aW9ucy50eHQKK2luZGV4IGQ3MWIwOWI1Li5kY2E5MTI5NiAxMDA2 NDQKKy0tLSBtZXNvbl9vcHRpb25zLnR4dAorKysrIG1lc29uX29wdGlvbnMudHh0CitAQCAtMSw1 ICsxLDQgQEAKKyBvcHRpb24oJ3dpdGgtc3RhdGVsZXNzJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1 ZTogZmFsc2UsIGRlc2NyaXB0aW9uOiAnRW5hYmxlIHN0YXRlbGVzcyBYREcgcGF0aHMnKQorIG9w dGlvbignd2l0aC1wb2xraXQnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVlLCBkZXNjcmlw dGlvbjogJ0VuYWJsZSBQb2xLaXQgc3VwcG9ydCcpCistb3B0aW9uKCd3aXRoLWJsdWV0b290aCcs IHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnRW5hYmxlIGdub21l LWJsdWV0b290aCBzdXBwb3J0JykKKyBvcHRpb24oJ3dpdGgtZ3RrLWRvYycsIHR5cGU6ICdib29s ZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnQnVpbGQgZ3RrLWRvYyBkb2N1bWVudGF0 aW9uJykKKyBvcHRpb24oJ3dpdGgtZGVza3RvcC1pY29ucycsIHR5cGU6ICdjb21ibycsIGNob2lj ZXM6IFsnbmF1dGlsdXMnLCAnbm9uZSddLCB2YWx1ZTogJ25hdXRpbHVzJywgZGVzY3JpcHRpb246 ICdEZXNrdG9wIGljb24gaGFuZGxpbmcnKQorZGlmZiAtLWdpdCBzcmMvYXBwbGV0cy9zdGF0dXMv U3RhdHVzQXBwbGV0LnZhbGEgc3JjL2FwcGxldHMvc3RhdHVzL1N0YXR1c0FwcGxldC52YWxhCitp bmRleCBiOTgyNjM5NC4uNzFmMjg3YzkgMTAwNjQ0CistLS0gc3JjL2FwcGxldHMvc3RhdHVzL1N0 YXR1c0FwcGxldC52YWxhCisrKysgc3JjL2FwcGxldHMvc3RhdHVzL1N0YXR1c0FwcGxldC52YWxh CitAQCAtMjAsOSArMjAsNyBAQCBwdWJsaWMgY2xhc3MgU3RhdHVzQXBwbGV0IDogQnVkZ2llLkFw cGxldAorIHsKKyAKKyAgICAgcHJvdGVjdGVkIEd0ay5Cb3ggd2lkZ2V0OworLSNpZiBXSVRIX0JM VUVUT09USAorICAgICBwcm90ZWN0ZWQgQmx1ZXRvb3RoSW5kaWNhdG9yIGJsdWU7CistI2VuZGlm CisgICAgIHByb3RlY3RlZCBTb3VuZEluZGljYXRvciBzb3VuZDsKKyAgICAgcHJvdGVjdGVkIFBv d2VySW5kaWNhdG9yIHBvd2VyOworICAgICBwcm90ZWN0ZWQgR3RrLkV2ZW50Qm94PyB3cmFwOwor QEAgLTY4LDEyICs2NiwxMCBAQCBwdWJsaWMgY2xhc3MgU3RhdHVzQXBwbGV0IDogQnVkZ2llLkFw cGxldAorICAgICAgICAgdGhpcy5zZXR1cF9wb3BvdmVyKHBvd2VyLmVib3gsIHBvd2VyLnBvcG92 ZXIpOworICAgICAgICAgdGhpcy5zZXR1cF9wb3BvdmVyKHNvdW5kLmVib3gsIHNvdW5kLnBvcG92 ZXIpOworIAorLSNpZiBXSVRIX0JMVUVUT09USAorICAgICAgICAgYmx1ZSA9IG5ldyBCbHVldG9v dGhJbmRpY2F0b3IoKTsKKyAgICAgICAgIHdpZGdldC5wYWNrX3N0YXJ0KGJsdWUsIGZhbHNlLCBm YWxzZSwgMik7CisgICAgICAgICBibHVlLnNob3dfYWxsKCk7CisgICAgICAgICB0aGlzLnNldHVw X3BvcG92ZXIoYmx1ZS5lYm94LCBibHVlLnBvcG92ZXIpOworLSNlbmRpZgorICAgICB9CisgCisg ICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIHBhbmVsX3Bvc2l0aW9uX2NoYW5nZWQoQnVkZ2llLlBh bmVsUG9zaXRpb24gcG9zaXRpb24pCitAQCAtOTEsOSArODcsNyBAQCBwdWJsaWMgY2xhc3MgU3Rh dHVzQXBwbGV0IDogQnVkZ2llLkFwcGxldAorICAgICAgICAgdGhpcy5tYW5hZ2VyID0gbWFuYWdl cjsKKyAgICAgICAgIG1hbmFnZXIucmVnaXN0ZXJfcG9wb3Zlcihwb3dlci5lYm94LCBwb3dlci5w b3BvdmVyKTsKKyAgICAgICAgIG1hbmFnZXIucmVnaXN0ZXJfcG9wb3Zlcihzb3VuZC5lYm94LCBz b3VuZC5wb3BvdmVyKTsKKy0jaWYgV0lUSF9CTFVFVE9PVEgKKyAgICAgICAgIG1hbmFnZXIucmVn aXN0ZXJfcG9wb3ZlcihibHVlLmVib3gsIGJsdWUucG9wb3Zlcik7CistI2VuZGlmCisgICAgIH0K KyB9IC8vIEVuZCBjbGFzcworIAorZGlmZiAtLWdpdCBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24u YnVpbGQgc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkCitpbmRleCA2OTlmYjhmNC4uYjRk MjcwNmMgMTAwNjQ0CistLS0gc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkCisrKysgc3Jj L2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkCitAQCAtMTAsNiArMTAsNyBAQCBjdXN0b21fdGFy Z2V0KCdwbHVnaW4tZmlsZS1zdGF0dXMnLAorICAgICBpbnN0YWxsX2RpciA6IGFwcGxldF9zdGF0 dXNfZGlyKQorIAorIGFwcGxldF9zdGF0dXNfc291cmNlcyA9IFsKKysgICAgJ0JsdWV0b290aElu ZGljYXRvci52YWxhJywKKyAgICAgJ1N0YXR1c0FwcGxldC52YWxhJywKKyAgICAgJ1Bvd2VySW5k aWNhdG9yLnZhbGEnLAorICAgICAnU291bmRJbmRpY2F0b3IudmFsYScsCitAQCAtMjAsMjIgKzIx LDEzIEBAIGFwcGxldF9zdGF0dXNfZGVwcyA9IFsKKyAgICAgZGVwX2d0azMsCisgICAgIGRlcF9w ZWFzLAorICAgICBkZXBfYWNjb3VudHNzZXJ2aWNlLAorKyAgICBkZXBlbmRlbmN5KCdnbm9tZS1i bHVldG9vdGgtMS4wJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKSwKKyAgICAgZGVw ZW5kZW5jeSgndXBvd2VyLWdsaWInLCB2ZXJzaW9uOiAnPj0gMC45OS4wJyksCisgICAgIGxpbmtf bGlicGx1Z2luLAorICAgICBndmMuZ2V0X3ZhcmlhYmxlKCdsaWJndmNfZGVwJyksCisgICAgIG1l c29uLmdldF9jb21waWxlcignYycpLmZpbmRfbGlicmFyeSgnbScsIHJlcXVpcmVkOiBmYWxzZSks CisgXQorIAorLSMgQmx1ZXRvb3RoIGlzIG9wdGlvbmFsIHRvIGFsbG93IHNtYWxsZXIgYnVpbGRz Cistd2l0aF9ibHVldG9vdGggPSBnZXRfb3B0aW9uKCd3aXRoLWJsdWV0b290aCcpCistYXBwbGV0 X3N0YXR1c192YWxhX2FyZ3MgPSBbXQorLQorLWlmIHdpdGhfYmx1ZXRvb3RoID09IHRydWUKKy0g ICAgYXBwbGV0X3N0YXR1c19kZXBzICs9IGRlcGVuZGVuY3koJ2dub21lLWJsdWV0b290aC0xLjAn LCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCistICAgIGFwcGxldF9zdGF0dXNfc291 cmNlcyArPSAnQmx1ZXRvb3RoSW5kaWNhdG9yLnZhbGEnCistICAgIGFwcGxldF9zdGF0dXNfdmFs YV9hcmdzICs9IFsnLUQnLCAnV0lUSF9CTFVFVE9PVEgnXQorLWVuZGlmCistCisgc2hhcmVkX2xp YnJhcnkoCisgICAgICdzdGF0dXNhcHBsZXQnLAorICAgICBhcHBsZXRfc3RhdHVzX3NvdXJjZXMs CitAQCAtNTAsNyArNDIsNiBAQCBzaGFyZWRfbGlicmFyeSgKKyAgICAgICAgICctLXBrZycsICdn dmMtMS4wJywKKyAgICAgICAgICctLXBrZycsICdnaW8tdW5peC0yLjAnLAorICAgICAgICAgJy0t dmFwaWRpcicsIGpvaW5fcGF0aHMobWVzb24uc291cmNlX3Jvb3QoKSwgJ3ZhcGknKSwKKy0gICAg ICAgIGFwcGxldF9zdGF0dXNfdmFsYV9hcmdzLAorICAgICBdLAorICAgICBpbnN0YWxsOiB0cnVl LAorICAgICBpbnN0YWxsX2RpcjogYXBwbGV0X3N0YXR1c19kaXIsCitkaWZmIC0tZ2l0IHNyYy93 bS9iYWNrZ3JvdW5kLnZhbGEgc3JjL3dtL2JhY2tncm91bmQudmFsYQoraW5kZXggMDg0YWE5YWIu LmIzMzFlMGM0IDEwMDY0NAorLS0tIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKKysrKyBzcmMvd20v YmFja2dyb3VuZC52YWxhCitAQCAtMjA0LDggKzIwNCwxMyBAQCBwdWJsaWMgY2xhc3MgQnVkZ2ll QmFja2dyb3VuZCA6IENsdXR0ZXIuQWN0b3IKKyAKKyAgICAgICAgIHZhciBhY3RvciA9IG5ldyBN ZXRhLkJhY2tncm91bmRBY3RvcihkaXNwbGF5LCBpbmRleCk7CisgICAgICAgICB2YXIgYmFja2dy b3VuZCA9IG5ldyBNZXRhLkJhY2tncm91bmQoZGlzcGxheSk7CisrI2lmIEhBVkVfTVVUVEVSXzYK KyAgICAgICAgIGFjdG9yLnNldF9iYWNrZ3JvdW5kKGJhY2tncm91bmQpOworLQorKyNlbHNlCisr ICAgICAgICB2YXIgY29udGVudCA9IGFjdG9yLmdldF9jb250ZW50KCk7CisrICAgICAgICB1bm93 bmVkIE1ldGEuQmFja2dyb3VuZENvbnRlbnQgYmFja2dyb3VuZF9jb250ZW50ID0gKE1ldGEuQmFj a2dyb3VuZENvbnRlbnQpIGNvbnRlbnQ7CisrICAgICAgICBiYWNrZ3JvdW5kX2NvbnRlbnQuc2V0 X2JhY2tncm91bmQoYmFja2dyb3VuZCk7CisrI2VuZGlmCisgICAgICAgICByZWN0ID0gZGlzcGxh eS5nZXRfbW9uaXRvcl9nZW9tZXRyeShpbmRleCk7CisgICAgICAgICBhY3Rvci5zZXRfc2l6ZShy ZWN0LndpZHRoLCByZWN0LmhlaWdodCk7CisgICAgICAgICBhY3Rvci5zZXQoIm9wYWNpdHkiLCAw KTsKK0BAIC0yMjEsMTMgKzIyNiwyMSBAQCBwdWJsaWMgY2xhc3MgQnVkZ2llQmFja2dyb3VuZCA6 IENsdXR0ZXIuQWN0b3IKKyAgICAgICAgIHNoYWRpbmdfZGlyZWN0aW9uID0gKEdEZXNrdG9wLkJh Y2tncm91bmRTaGFkaW5nKXNldHRpbmdzLmdldF9lbnVtKENPTE9SX1NIQURJTkdfVFlQRV9LRVkp OworICAgICAgICAgdmFyIGNvbG9yX3N0ciA9IHNldHRpbmdzLmdldF9zdHJpbmcoUFJJTUFSWV9D T0xPUl9LRVkpOworICAgICAgICAgaWYgKGNvbG9yX3N0ciAhPSBudWxsICYmIGNvbG9yX3N0ciAh PSAiIikgeworKyNpZiBIQVZFX01VVFRFUl82CisgICAgICAgICAgICAgcHJpbWFyeV9jb2xvciA9 IENsdXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcoY29sb3Jfc3RyKTsKKysjZWxzZQorKyAgICAgICAg ICAgIENsdXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcob3V0IHByaW1hcnlfY29sb3IsIGNvbG9yX3N0 cik7CisrI2VuZGlmCisgICAgICAgICAgICAgY29sb3Jfc3RyID0gbnVsbDsKKyAgICAgICAgIH0K KyAKKyAgICAgICAgIGNvbG9yX3N0ciA9IHNldHRpbmdzLmdldF9zdHJpbmcoU0VDT05EQVJZX0NP TE9SX0tFWSk7CisgICAgICAgICBpZiAoY29sb3Jfc3RyICE9IG51bGwgJiYgY29sb3Jfc3RyICE9 ICIiKSB7CisrI2lmIEhBVkVfTVVUVEVSXzYKKyAgICAgICAgICAgICBzZWNvbmRhcnlfY29sb3Ig PSBDbHV0dGVyLkNvbG9yLmZyb21fc3RyaW5nKGNvbG9yX3N0cik7CisrI2Vsc2UKKysgICAgICAg ICAgICBDbHV0dGVyLkNvbG9yLmZyb21fc3RyaW5nKG91dCBzZWNvbmRhcnlfY29sb3IsIGNvbG9y X3N0cik7CisrI2VuZGlmCisgICAgICAgICAgICAgY29sb3Jfc3RyID0gbnVsbDsKKyAgICAgICAg IH0KKyAKK2RpZmYgLS1naXQgc3JjL3dtL21lc29uLmJ1aWxkIHNyYy93bS9tZXNvbi5idWlsZAor aW5kZXggZTM5Yjg2NzguLjU4M2NlNzkwIDEwMDY0NAorLS0tIHNyYy93bS9tZXNvbi5idWlsZAor KysrIHNyYy93bS9tZXNvbi5idWlsZAorQEAgLTE3LDIwICsxNywxOCBAQCBidWRnaWVfd21fc291 cmNlcyA9IFsKKyAKKyBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyA9IFtdCisgCistdmFwaV9t dXR0ZXIgPSAnbGlibXV0dGVyLTMnCistZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRl ci0zJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDogZmFsc2UpCist aWYgbm90IGRlcF9tdXR0ZXIuZm91bmQoKQorLSAgICBkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgn bGlibXV0dGVyLTQnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24sIHJlcXVpcmVkOiBm YWxzZSkKKytkZXBfZ3JhcGhlbmUgPSBkZXBlbmRlbmN5KCdncmFwaGVuZS1nb2JqZWN0LTEuMCcs IHZlcnNpb246ICc+PSAxLjEwJykKKytkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVy LTcnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24sIHJlcXVpcmVkOiBmYWxzZSkKKytp ZiBkZXBfbXV0dGVyLmZvdW5kKCkKKysgICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0g WyctRCcsICdIQVZFX01VVFRFUl83J10KKysgICAgbWVzc2FnZSgnVXNpbmcgbmV3IGxpYm11dHRl ci03IEFCSSBmcm9tIEdOT01FIDMuMzgnKQorKyAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXIt NycKKytlbHNlCisrICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNicsIHZl cnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKysgICAgYnVkZ2llX3dtX3N0YXR1c192YWxh X2FyZ3MgKz0gWyctRCcsICdIQVZFX01VVFRFUl82J10KKyAgICAgaWYgZGVwX211dHRlci5mb3Vu ZCgpCistICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTQgQUJJIGZyb20gR05P TUUgMy4zMicpCistICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNCcKKy0gICAgZWxz ZQorLSAgICAgICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci01JywgdmVyc2lv bjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorLSAgICAgICAgaWYgZGVwX211dHRlci5mb3VuZCgp CistICAgICAgICAgICAgbWVzc2FnZSgnVXNpbmcgbmV3IGxpYm11dHRlci01IEFCSSBmcm9tIEdO T01FIDMuMzQnKQorLSAgICAgICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci01JworLSAg ICAgICAgICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFWRV9NVVRU RVJfNSddCistICAgICAgICBlbmRpZgorKyAgICAgICAgbWVzc2FnZSgnVXNpbmcgbmV3IGxpYm11 dHRlci02IEFCSSBmcm9tIEdOT01FIDMuMzYnKQorKyAgICAgICAgdmFwaV9tdXR0ZXIgPSAnbGli bXV0dGVyLTYnCisgICAgIGVuZGlmCisgZW5kaWYKKyAKK0BAIC00Miw4ICs0MCw4IEBAIGJ1ZGdp ZV93bV9kZXBzID0gWworICAgICBkZXBfaWJ1cywKKyBdCisgCistaWYgZGVwX2dzZC52ZXJzaW9u KCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMzEuOTEnKQorLSAgICBidWRnaWVfd21fc3RhdHVzX3Zh bGFfYXJncyArPSBbJy1EJywgJ0hBVkVfR1NEXzMzMiddCisraWYgZGVwX2dzZC52ZXJzaW9uKCku dmVyc2lvbl9jb21wYXJlKCc+PTMuMzYuMCcpCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9h cmdzICs9IFsnLUQnLCAnSEFWRV9HU0RfU1VQUE9SVEVEJ10KKyBlbmRpZgorIAorIGJ1ZGdpZV93 bV92YWxhX2FyZ3MgPSAgWworQEAgLTYwLDcgKzU4LDcgQEAgYnVkZ2llX3dtX3ZhbGFfYXJncyA9 ICBbCisgCisgcnBhdGggPSAnJworIAorLWlmIGRlcF9tdXR0ZXIudmVyc2lvbigpLnZlcnNpb25f Y29tcGFyZSgnPj0zLjI4LjAnKQorK2lmIGRlcF9tdXR0ZXIudmVyc2lvbigpLnZlcnNpb25fY29t cGFyZSgnPj0zLjM2LjAnKQorICAgICBycGF0aCA9IGRlcF9tdXR0ZXIuZ2V0X3BrZ2NvbmZpZ192 YXJpYWJsZSgndHlwZWxpYmRpcicpCisgICAgIGJ1ZGdpZV93bV92YWxhX2FyZ3MgKz0gWyctLWdp cmRpcicsIHJwYXRoXQorIGVuZGlmCitkaWZmIC0tZ2l0IHNyYy93bS9zaGltLnZhbGEgc3JjL3dt L3NoaW0udmFsYQoraW5kZXggNGNkZmEwYjAuLmZjMjRiMjg5IDEwMDY0NAorLS0tIHNyYy93bS9z aGltLnZhbGEKKysrKyBzcmMvd20vc2hpbS52YWxhCitAQCAtMTQsNyArMTQsNyBAQCBuYW1lc3Bh Y2UgQnVkZ2llIHsKKyBwdWJsaWMgc3RydWN0IEdzZEFjY2VsIHsKKyAgICAgc3RyaW5nIGFjY2Vs ZXJhdG9yOworICAgICB1aW50IGZsYWdzOworLSNpZiBIQVZFX0dTRF8zMzIKKysjaWYgSEFWRV9H U0RfU1VQUE9SVEVECisgICAgIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGdyYWJfZmxhZ3M7CisgI2Vu ZGlmCisgfQorQEAgLTE5MywxMSArMTkzLDcgQEAgcHVibGljIGNsYXNzIFNoZWxsU2hpbSA6IEdM aWIuT2JqZWN0CisgICAgICAgICBvc2RfcHJveHkgPSBudWxsOworICAgICB9CisgCistI2lmIEhB VkVfTVVUVEVSXzUKKyAgICAgcHJpdmF0ZSB2b2lkIG9uX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCh1 aW50IGFjdGlvbiwgQ2x1dHRlci5JbnB1dERldmljZSBkZXYsIHVpbnQgZGV2aWNlX2lkKQorLSNl bHNlCistICAgIHByaXZhdGUgdm9pZCBvbl9hY2NlbGVyYXRvcl9hY3RpdmF0ZWQodWludCBhY3Rp b24sIHVpbnQgZGV2aWNlX2lkKQorLSNlbmRpZgorICAgICB7CisgICAgICAgICBIYXNoVGFibGU8 c3RyaW5nLFZhcmlhbnQ+IHBhcmFtcyA9IG5ldyBIYXNoVGFibGU8c3RyaW5nLFZhcmlhbnQ+KHN0 cl9oYXNoLCBzdHJfZXF1YWwpOworIAorQEAgLTIzMCw3ICsyMjYsNyBAQCBwdWJsaWMgY2xhc3Mg U2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgIH0KKyAgICAgfQorIAorLSNpZiBIQVZF X0dTRF8zMzIKKysjaWYgSEFWRV9HU0RfU1VQUE9SVEVECisgICAgIHByaXZhdGUgdWludCBfZ3Jh YihzdHJpbmcgc2VuZGVyLCBzdHJpbmcgc2VxLCB1aW50IGZsYWcsIE1ldGEuS2V5QmluZGluZ0Zs YWdzIGdyYWJfZmxhZ3MpCisgICAgIHsKKyAgICAgICAgIHZhciByZXQgPSBkaXNwbGF5LmdyYWJf YWNjZWxlcmF0b3Ioc2VxLCBncmFiX2ZsYWdzKTsKK0BAIC0yNzMsNyArMjY5LDcgQEAgcHVibGlj IGNsYXNzIFNoZWxsU2hpbSA6IEdMaWIuT2JqZWN0CisgICAgICAgICAgICAgb25fYnVzX2FjcXVp cmVkLCBudWxsLCBudWxsKTsKKyAgICAgfQorIAorLSNpZiBIQVZFX0dTRF8zMzIKKysjaWYgSEFW RV9HU0RfU1VQUE9SVEVECisgICAgIHB1YmxpYyB1aW50IEdyYWJBY2NlbGVyYXRvcihCdXNOYW1l IHNlbmRlciwgc3RyaW5nIGFjY2VsZXJhdG9yLCB1aW50IGZsYWdzLCBNZXRhLktleUJpbmRpbmdG bGFncyBncmFiX2ZsYWdzKQorICAgICB7CisgICAgICAgICByZXR1cm4gX2dyYWIoc2VuZGVyLCBh Y2NlbGVyYXRvciwgZmxhZ3MsIGdyYWJfZmxhZ3MpOworZGlmZiAtLWdpdCBzcmMvd20vd20udmFs YSBzcmMvd20vd20udmFsYQoraW5kZXggZmVlODk0NDMuLmJjY2YzYjk1IDEwMDY0NAorLS0tIHNy Yy93bS93bS52YWxhCisrKysgc3JjL3dtL3dtLnZhbGEKK0BAIC0xMzcsOCArMTM3LDggQEAgcHVi bGljIGNsYXNzIEJ1ZGdpZVdNIDogTWV0YS5QbHVnaW4KKyAgICAgcHVibGljIHN0YXRpYyBzdHJp bmdbXT8gb2xkX2FyZ3M7CisgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCB3YXlsYW5kID0gZmFsc2U7 CisgCistICAgIHN0YXRpYyBDbHV0dGVyLlBvaW50IFBWX0NFTlRFUjsKKy0gICAgc3RhdGljIENs dXR0ZXIuUG9pbnQgUFZfTk9STTsKKysgICAgc3RhdGljIEdyYXBoZW5lLlBvaW50IFBWX0NFTlRF UjsKKysgICAgc3RhdGljIEdyYXBoZW5lLlBvaW50IFBWX05PUk07CisgCisgICAgIHByaXZhdGUg TWV0YS5CYWNrZ3JvdW5kR3JvdXA/IGJhY2tncm91bmRfZ3JvdXA7CisgCitAQCAtMTcxLDEwICsx NzEsMTAgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZVdNIDogTWV0YS5QbHVnaW4KKyAgICAgICAgICAg ICBsaWNlbnNlID0gIkdQTC0yLjAiLAorICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gIkJ1ZGdp ZSBXaW5kb3cgTWFuYWdlciIKKyAgICAgICAgIH07CistICAgICAgICBQVl9DRU5URVIgPSBDbHV0 dGVyLlBvaW50LmFsbG9jKCk7CisrICAgICAgICBQVl9DRU5URVIgPSBHcmFwaGVuZS5Qb2ludCgp OworKyAgICAgICAgUFZfTk9STSA9IEdyYXBoZW5lLlBvaW50KCk7CisgICAgICAgICBQVl9DRU5U RVIueCA9IDAuNWY7CisgICAgICAgICBQVl9DRU5URVIueSA9IDAuNWY7CistICAgICAgICBQVl9O T1JNID0gQ2x1dHRlci5Qb2ludC5hbGxvYygpOworICAgICAgICAgUFZfTk9STS54ID0gMC4wZjsK KyAgICAgICAgIFBWX05PUk0ueSA9IDAuMGY7CisgICAgIH0KK0BAIC0xMDAxLDcgKzEwMDEsNyBA QCBwdWJsaWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICAgICAgdGlsZV9wcmV2 aWV3LnNldCgic2NhbGUteCIsIE5PVElGSUNBVElPTl9NQVBfU0NBTEVfWCwgInNjYWxlLXkiLCBO T1RJRklDQVRJT05fTUFQX1NDQUxFX1ksCisgICAgICAgICAgICAgInBpdm90LXBvaW50IiwgUFZf Q0VOVEVSKTsKKyAKKy0gICAgICAgIHRpbGVfcHJldmlldy5sb3dlcih3aW5fYWN0b3IpOworKyAg ICAgICAgLy90aWxlX3ByZXZpZXcubG93ZXIod2luX2FjdG9yKTsKKyAgICAgICAgIHRpbGVfcHJl dmlldy50aWxlX3JlY3QgPSB0aWxlX3JlY3Q7CisgCisgICAgICAgICB0aWxlX3ByZXZpZXcuc2hv dygpOworZGlmZiAtLWdpdCB2YXBpL0NsdXR0ZXItNS5tZXRhZGF0YSB2YXBpL0NsdXR0ZXItNi5t ZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL0NsdXR0ZXIt NS5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ2x1dHRlci02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0 IHZhcGkvQ2x1dHRlci00Lm1ldGFkYXRhIHZhcGkvQ2x1dHRlci03Lm1ldGFkYXRhCitzaW1pbGFy aXR5IGluZGV4IDc4JQorcmVuYW1lIGZyb20gdmFwaS9DbHV0dGVyLTQubWV0YWRhdGEKK3JlbmFt ZSB0byB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQoraW5kZXggNWMyMTJlODUuLjE4NTUyNzRkIDEw MDY0NAorLS0tIHZhcGkvQ2x1dHRlci00Lm1ldGFkYXRhCisrKysgdmFwaS9DbHV0dGVyLTcubWV0 YWRhdGEKK0BAIC0xLDEzICsxLDEwIEBACisgLy8gTm9uIG1pbmktb2JqZWN0CisgQWN0b3JCb3gg c3RydWN0CisgQ29sb3Igc3RydWN0CistRm9nIHN0cnVjdAorLUdlb21ldHJ5IHN0cnVjdAorIEtu b3Qgc3RydWN0CisgUGF0aE5vZGUgc3RydWN0CisgUGVyc3BlY3RpdmUgc3RydWN0CisgVW5pdHMg c3RydWN0CistVmVydGV4IHN0cnVjdAorIAorICoucmVmIHVub3duZWQKKyAKK0BAIC0xNyw3ICsx NCw2IEBAIGluaXRfd2l0aF9hcmdzCisgQWN0b3IKKyAJLmFwcGx5X3RyYW5zZm9ybS5tYXRyaXgg cmVmCisgCS5nZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMudmVydHMgb3V0PWZhbHNlCistCS5n ZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcy52ZXJ0cyBvdXQ9ZmFsc2UKKyBDYW52YXMKKyAJLm5ldyBz eW1ib2xfdHlwZT0iY29uc3RydWN0b3IiCisgRXZlbnQudHlwZSNtZXRob2QgbmFtZT0iZ2V0X3R5 cGUiCitAQCAtMjcsNyArMjMsNiBAQCBJbWFnZQorIC8vID8/PworIEFjdG9yLmhhc19wb2ludGVy I21ldGhvZCBuYW1lPSJnZXRfaGFzX3BvaW50ZXIiCisgSW5pdEVycm9yIGVycm9yZG9tYWluPWZh bHNlCistcmVkcmF3IHNraXAKKyAKKyAvLyBOb3QgYWxsIGJhY2tpbmcgc3ltYm9scyBhcmUgZGVw cmVjYXRlZAorIEFjdG9yLnBpY2sgZGVwcmVjYXRlZD1mYWxzZQorQEAgLTU1LDcgKzUwLDYgQEAg Q29udGFpbmVyCisgCS5sb3dlciB2aXJ0dWFsCisgCS5yYWlzZSB2aXJ0dWFsCisgCS4qX2NoaWxk X21ldGEjdmlydHVhbF9tZXRob2QgdmlydHVhbAorLQkuZm9yZWFjaF93aXRoX2ludGVybmFscyN2 aXJ0dWFsX21ldGhvZCB2aXJ0dWFsCisgCisgLy8gRGVmYXVsdCB2YWx1ZXMKKyBDb250YWluZXIK K0BAIC03MCwzMiArNjQsMjEgQEAgVGV4dAorIC8vIFJlcGFyZW50ZWQgZnVuY3MgbWV0aG9kcyBj YW4ndCBiZSBpbnN0YW5jZSBtZXRob2RzCisgZmVhdHVyZV9hdmFpbGFibGUgc2tpcAorIGZlYXR1 cmVfZ2V0X2FsbCBza2lwCistRmVhdHVyZUZsYWdzLnRleHR1cmVfbnBvdCBza2lwCisgCisgLy8g U2tpcHBlZCBieSBnLWkgZm9yIHVua25vd24gcmVhc29ucworIExheW91dE1hbmFnZXIKKyAJLmNy ZWF0ZV9jaGlsZF9tZXRhIHNraXA9ZmFsc2UKKy1Nb2RlbAorLQkuaW5zZXJ0X3JvdyBza2lwPWZh bHNlCisgCisgLy8gVmFyaWFkaWMgYXJndW1lbnRzCistQWN0b3IKKy0JLmFuaW1hdGUgc2tpcD1m YWxzZQorLQkuYW5pbWF0ZV93aXRoX2FscGhhIHNraXA9ZmFsc2UKKy0JLmFuaW1hdGVfd2l0aF90 aW1lbGluZSBza2lwPWZhbHNlCistQW5pbWF0b3IKKy0JLnNldCBza2lwPWZhbHNlCisgQm94Cisg CS5wYWNrIHNraXA9ZmFsc2UKKyAJLnBhY2tfYWZ0ZXIgc2tpcD1mYWxzZQorIAkucGFja19hdCBz a2lwPWZhbHNlCisgCS5wYWNrX2JlZm9yZSBza2lwPWZhbHNlCisgQ29udGFpbmVyCistCS5hZGRf dmFsaXN0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX2dldCBza2lwPWZhbHNlCisgCS5jaGlsZF9zZXQg c2tpcD1mYWxzZQorIAkucmVtb3ZlIHNraXA9ZmFsc2UKKy0JLnJlbW92ZV92YWxpc3Qgc2tpcD1m YWxzZQorIEludGVydmFsCisgCS5uZXcgc2tpcD1mYWxzZQorIAkuZ2V0X2ludGVydmFsIHNraXA9 ZmFsc2UKK0BAIC0xMDUsMTUgKzg4LDYgQEAgSW50ZXJ2YWwKKyBMYXlvdXRNYW5hZ2VyCisgCS5j aGlsZF9nZXQgc2tpcD1mYWxzZQorIAkuY2hpbGRfc2V0IHNraXA9ZmFsc2UKKy1MaXN0TW9kZWwK Ky0JLm5ldyBza2lwPWZhbHNlCistTW9kZWwKKy0JLmFwcGVuZCBza2lwPWZhbHNlCistCS5pbnNl cnQgc2tpcD1mYWxzZQorLQkucHJlcGVuZCBza2lwPWZhbHNlCistTW9kZWxJdGVyCistCS5nZXQg c2tpcD1mYWxzZQorLQkuc2V0IHNraXA9ZmFsc2UKKyBTY3JpcHQKKyAJLmdldF9vYmplY3RzIHNr aXA9ZmFsc2UKKyAKK0BAIC0xMjIsMTcgKzk2LDExIEBAIFRleHR1cmUKKyAJLm5ld19mcm9tX2Zp bGUgdGhyb3dzPSJDbHV0dGVyLlRleHR1cmVFcnJvciIKKyAKKyAvLyBTa2lwcGVkIHVwc3RyZWFt IGZvciB1bmtub3duIHJlYXNvbnMKKy1BbHBoYS5yZWdpc3Rlcl9mdW5jIHNraXA9ZmFsc2UKKy1U aW1lb3V0UG9vbCBza2lwPWZhbHNlCisgSW50ZXJ2YWwucmVnaXN0ZXJfcHJvZ3Jlc3NfZnVuYyBz a2lwPWZhbHNlCistZnJhbWVfc291cmNlXyogc2tpcD1mYWxzZQorIGdldF9vcHRpb25fZ3JvdXAg c2tpcD1mYWxzZQorIGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0IHNraXA9ZmFsc2UKKy10 aHJlYWRzX2FkZF9mcmFtZV9zb3VyY2Ugc2tpcD1mYWxzZQorLXRocmVhZHNfYWRkX2ZyYW1lX3Nv dXJjZV9mdWxsIHNraXA9ZmFsc2UKKyB0aHJlYWRzX2FkZF9pZGxlIHNraXA9ZmFsc2UKKyB0aHJl YWRzX2FkZF9pZGxlX2Z1bGwgc2tpcD1mYWxzZQorLXRocmVhZHNfc2V0X2xvY2tfZnVuY3Rpb25z IHNraXA9ZmFsc2UKKyB0aHJlYWRzX2FkZF90aW1lb3V0IHNraXA9ZmFsc2UKKyB0aHJlYWRzX2Fk ZF90aW1lb3V0X2Z1bGwgc2tpcD1mYWxzZQorIAorQEAgLTE0MywxNSArMTExLDEyIEBAIEFjdG9y Qm94CisgVW5pdHMuZnJvbV8qIHNraXAKKyBDb2xvcgorIAkubmV3IHNraXAKKy1WZXJ0ZXgubmV3 IHNraXAKKyAKKyAvLyBDbGFzcyBtZXRob2RzCisgY29udGFpbmVyX2NsYXNzX2ZpbmRfY2hpbGRf cHJvcGVydHkgc2tpcAorIGNvbnRhaW5lcl9jbGFzc19saXN0X2NoaWxkX3Byb3BlcnRpZXMgc2tp cAorIAorIC8vIE1vdmUgc3ltYm9scworLWdldF9hY3Rvcl9ieV9naWQgcGFyZW50PSJDbHV0dGVy LkFjdG9yIiBuYW1lPSJnZXRfYnlfZ2lkIgorLWdldF9pbnB1dF9kZXZpY2VfZm9yX2lkIHBhcmVu dD0iQ2x1dHRlci5JbnB1dERldmljZSIgbmFtZT0iZ2V0X2Zvcl9pZCIKKyB1bml0c19mcm9tXyog c2tpcAorIAorIC8vIENsYXNzZXMgbWFya2VkIGFzIG91dCBidXQgbm90IGRvdWJsZSBwdHIKK0BA IC0yMDIsMjMgKzE2NywxNSBAQCBQQVRIX1JFTEFUSVZFIHNraXA9ZmFsc2UKKyBQUklPUklUWV9S RURSQVcgc2tpcD1mYWxzZQorIAorIC8vIENsdXR0ZXIgZGV2cyBkb24ndCBsaWtlIHVzIGNyZWF0 aW5nIG5lc3RlZCBuYW1lc3BhY2VzCistZnJhbWVfc291cmNlXyogbmFtZT0iZnJhbWVfc291cmNl XyguKykiIHBhcmVudD0iQ2x1dHRlci5GcmFtZVNvdXJjZSIKKyB2YWx1ZV8qIG5hbWU9InZhbHVl XyguKykiIHBhcmVudD0iQ2x1dHRlci5WYWx1ZSIKKyB0aHJlYWRzXyogbmFtZT0idGhyZWFkc18o LispIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcyIKKy10aHJlYWRzX2FkZF9mcmFtZV9zb3VyY2Ug bmFtZT0iYWRkIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5GcmFtZVNvdXJjZSIKKy10aHJlYWRz X2FkZF9mcmFtZV9zb3VyY2VfZnVsbCBuYW1lPSJhZGRfZnVsbCIgcGFyZW50PSJDbHV0dGVyLlRo cmVhZHMuRnJhbWVTb3VyY2UiCisgdGhyZWFkc19hZGRfaWRsZSBuYW1lPSJhZGQiIHBhcmVudD0i Q2x1dHRlci5UaHJlYWRzLklkbGUiCisgdGhyZWFkc19hZGRfaWRsZV9mdWxsIG5hbWU9ImFkZF9m dWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5JZGxlIgorIHRocmVhZHNfYWRkX3RpbWVvdXQg bmFtZT0iYWRkIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5UaW1lb3V0IgorIHRocmVhZHNfYWRk X3RpbWVvdXRfZnVsbCBuYW1lPSJhZGRfZnVsbCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuVGlt ZW91dCIKKy11dGlsX25leHRfcDIgbmFtZT0ibmV4dF9wb3dlcl9vZl8yIiBwYXJlbnQ9IkNsdXR0 ZXIuVXRpbCIKKyAKKyAvLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eQorIENvbG9yLmFsbG9jIHN5 bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1Qb2ludC5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24i CistUmVjdC5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCistU2l6ZS5hbGxvYyBzeW1ib2xf dHlwZT0iZnVuY3Rpb24iCistVmVydGV4LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKyAK KyBCaW5BbGlnbm1lbnQgZGVwcmVjYXRlZD1mYWxzZSBkZXByZWNhdGVkX3NpbmNlPW51bGwKKyBC aW5BbGlnbm1lbnQuKiBkZXByZWNhdGVkCitkaWZmIC0tZ2l0IHZhcGkvQ29nbC00Lm1ldGFkYXRh IHZhcGkvQ29nbC02Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9t IHZhcGkvQ29nbC00Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9Db2dsLTYubWV0YWRhdGEKK2Rp ZmYgLS1naXQgdmFwaS9Db2dsLTUubWV0YWRhdGEgdmFwaS9Db2dsLTcubWV0YWRhdGEKK3NpbWls YXJpdHkgaW5kZXggOTElCityZW5hbWUgZnJvbSB2YXBpL0NvZ2wtNS5tZXRhZGF0YQorcmVuYW1l IHRvIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitpbmRleCAwOTJiNWUyOS4uZTUyYmZhMzUgMTAwNjQ0 CistLS0gdmFwaS9Db2dsLTUubWV0YWRhdGEKKysrKyB2YXBpL0NvZ2wtNy5tZXRhZGF0YQorQEAg LTksMTIgKzksMTAgQEAgY3JlYXRlX3NoYWRlciBza2lwCisgCisgCisgaXNfYml0bWFwIHNraXAK Ky1pc19tYXRlcmlhbCBza2lwCisgaXNfb2Zmc2NyZWVuIHNraXAKKyBpc19wcm9ncmFtIHNraXAK KyBpc19zaGFkZXIgc2tpcAorIGlzX3RleHR1cmUgc2tpcAorLWlzX3ZlcnRleF9idWZmZXIgc2tp cAorIAorIE1hdHJpeCBzdHJ1Y3QKKyAgIC5nZXRfYXJyYXkgYXJyYXk9dHJ1ZSBhcnJheV9sZW5n dGhfaWR4PS0xCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS0zLm1ldGFkYXRhIHZhcGkvTWV0YS0zLm1l dGFkYXRhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDM3MGQ0OTk2Li4wMDAwMDAw MAorLS0tIHZhcGkvTWV0YS0zLm1ldGFkYXRhCisrKysgL2Rldi9udWxsCitAQCAtMSw2NiArMCww IEBACistQmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorLUJh Y2tncm91bmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQuaCIKKy1CYWNr Z3JvdW5kQWN0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCIKKy1CYWNrZ3JvdW5kR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCIKKy1CYWNrZ3JvdW5kSW1hZ2VDYWNoZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIgorLURpc3BsYXkgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9kaXNwbGF5LmgiCistTWV0YSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21haW4uaCIKKy1Nb25p dG9yTWFuYWdlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgi CistUmVjdGFuZ2xlIHN0cnVjdAorLVBsdWdpbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEt cGx1Z2luLmgiCistUGx1Z2luSW5mbyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcGx1Z2lu LmgiCistcHJlZnNfKiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3ByZWZzLmgiIHBhcmVudD0iTWV0 YS5QcmVmcyIKKy1hZGRfdmVyYm9zZV90b3BpYyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistYnVnIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1kZWJ1Z19zcGV3X3JlYWwgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lv biBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisteDEx X2Vycm9yX3RyYXBfcG9wIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy14MTFfZXJyb3JfdHJhcF9wdXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy14MTFfZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4g cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWV4dGVy bmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1mcmVlX2dzbGlzdF9hbmRfZWxlbWVudHMgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdfdXRmOF9zdHJuZHVw IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRf bG9jYWxlX2RpcmVjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistZ2V0X292ZXJsYXlfd2luZG93IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1ncmF2aXR5X3RvX3N0cmluZyBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfZGVidWdnaW5nIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1pc19zeW5jaW5n IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1pc192 ZXJib3NlIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1pc193YXlsYW5kX2NvbXBvc2l0b3IgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLWxhdGVyX2FkZCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistbGF0ZXJfcmVtb3ZlIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1wb3Bfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcHVzaF9ub19tc2df cHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1yZWN0IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1yZW1vdmVfdmVyYm9zZV90b3BpYyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistc2hvd19kaWFsb2cgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXRvcGljX3JlYWwgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXVuc2lnbmVk X2xvbmdfZXF1YWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLXVuc2lnbmVkX2xvbmdfaGFzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistdmVyYm9zZV9yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy13YXJuaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ2V0X3N0YWdlX2Zvcl9kaXNw bGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiCistZ2V0X3dpbmRvd19hY3RvcnMgcGFyZW50PSJNZXRhLkNvbXBvc2l0 b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfd2lu ZG93X2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X3RvcF93aW5kb3dfZ3JvdXBf Zm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3BsYXkg cGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIKKy1kaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRh LkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIK Ky1lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXNldF9zdGFnZV9p bnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50 PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIKKy1mb2N1c19zdGFnZV93aW5kb3cgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zdGFnZV9pc19mb2N1c2Vk IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiCista2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIHBhcmVudD0iTWV0 YS5LZXlCaW5kaW5nIiBuYW1lPSJzZXRfY3VzdG9tX2hhbmRsZXIiCistS2V5SGFuZGxlckZ1bmMu ZXZlbnQgdHlwZT0iQ2x1dHRlci5LZXlFdmVudD8iCistZ2V0X2JhY2tlbmQgcGFyZW50PSJNZXRh LkJhY2tlbmQiCistV2luZG93LmZvY3VzI3NpZ25hbCBza2lwPXRydWUKKy1XaW5kb3cuZ2V0X3h3 aW5kb3cgc2tpcD1mYWxzZQorLWdldF9vcHRpb25fY29udGV4dCBza2lwPWZhbHNlCistc2V0X2du b21lX3dtX2tleWJpbmRpbmdzIHNraXA9ZmFsc2UKKy1zZXRfd21fbmFtZSBza2lwPWZhbHNlCist aW5pdCBza2lwPWZhbHNlCistcnVuIHNraXA9ZmFsc2UKKy1zaG93X2RpYWxvZyBza2lwPWZhbHNl CistZ2V0X2JhY2tlbmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tlbmQuaCIKK2Rp ZmYgLS1naXQgdmFwaS9NZXRhLTUubWV0YWRhdGEgdmFwaS9NZXRhLTYubWV0YWRhdGEKK3NpbWls YXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9NZXRhLTUubWV0YWRhdGEKK3JlbmFt ZSB0byB2YXBpL01ldGEtNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBpL01ldGEtNC5tZXRhZGF0 YSB2YXBpL01ldGEtNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCA3NiUKK3JlbmFtZSBmcm9t IHZhcGkvTWV0YS00Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9NZXRhLTcubWV0YWRhdGEKK2lu ZGV4IGFlMmE3ODE3Li43MjYyOWZiYSAxMDA2NDQKKy0tLSB2YXBpL01ldGEtNC5tZXRhZGF0YQor KysrIHZhcGkvTWV0YS03Lm1ldGFkYXRhCitAQCAtMSwyNiArMSwyMSBAQAorIEJhY2tlbmQgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tlbmQuaCIKKyBCYWNrZ3JvdW5kIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiCisgQmFja2dyb3VuZEFjdG9yIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiCisrQmFja2dyb3VuZENv bnRlbnQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtY29udGVudC5oIgor IEJhY2tncm91bmRHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oIgorIEJhY2tncm91bmRJbWFnZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oIgorIEJhY2tncm91bmRJbWFnZUNhY2hlIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiCisgQmFycmllciBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL2JhcnJpZXIuaCIKKyBCYXJyaWVyRXZlbnQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9i YXJyaWVyLmgiCistQm94ZXMgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9ib3hlcy5oIgorIENsb3Nl RGlhbG9nIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIKKy1Db21w b3NpdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci5oIgorLUNvbXBvc2l0b3JN dXR0ZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIEN1cnNv clRyYWNrZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgiCisg RGlzcGxheSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Rpc3BsYXkuaCIKKyBEbmQgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9tZXRhLWRuZC5oIgorLUdyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv Z3JvdXAuaCIKKyBJZGxlTW9uaXRvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgiCisgSW5oaWJpdFNob3J0Y3V0c0RpYWxvZyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgiCistS2V5YmluZGluZ3MgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9rZXliaW5kaW5ncy5oIgorIExhdW5jaENvbnRleHQgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgiCisgTWV0YSBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21haW4uaCIKKyBNb25pdG9yTWFuYWdlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgiCistUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0 YS1wbHVnaW4uaCIKKyBQcmVmZXJlbmNlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIK KyBSZW1vdGVBY2Nlc3NDb250cm9sbGVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCIKKyBSZW1vdGVBY2Nlc3NIYW5kbGUgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oIgorQEAgLTMxLDkgKzI2 LDcgQEAgU291bmRQbGF5ZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oIgorIFN0YWdlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zdGFnZS5oIgorIFN0YXJ0 dXBOb3RpZmljYXRpb24gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgiCisgVGhlbWUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS90aGVtZS5oIgorLVR5cGVz IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdHlwZXMuaCIKKy1VdGlsIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLVZlcnNpb24gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXZlcnNp b24uaCIKKytXYXlsYW5kQ2xpZW50IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS13YXlsYW5k LWNsaWVudC5oIgorIFdpbmRvdyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3dpbmRvdy5oIgorIFdp bmRvd0FjdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIKKyBX aW5kb3dHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2luZG93LWdyb3VwLmgiCitA QCAtNDYsMTcgKzM5LDExIEBAIFBsdWdpbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcGx1 Z2luLmgiCisgUGx1Z2luSW5mbyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcGx1Z2luLmgi CisgcHJlZnNfKiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3ByZWZzLmgiIHBhcmVudD0iTWV0YS5Q cmVmcyIKKyBhZGRfdmVyYm9zZV90b3BpYyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistYnVnIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKy1kZWJ1Z19zcGV3X3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgeDExX2Vy cm9yX3RyYXBfcG9wIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9wdXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4gcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGV4dGVybmFs X2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKy1mcmVlX2dzbGlzdF9hbmRfZWxlbWVudHMgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdfdXRmOF9zdHJuZHVwIHBh cmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBnZXRfbG9j YWxlX2RpcmVjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistZ2V0X292ZXJsYXlfd2luZG93IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBncmF2aXR5X3RvX3N0cmluZyBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgaXNfZGVidWdnaW5nIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBpc19zeW5jaW5nIHBh cmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKK0BAIC02OCwx MyArNTUsOCBAQCBwb3Bfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCisgcHVzaF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyByZWN0IHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyByZW1vdmVfdmVyYm9zZV90b3Bp YyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistc2V0 X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistc2hvd19kaWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLXRvcGljX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHVuc2lnbmVkX2xvbmdfZXF1YWwgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHVuc2lnbmVkX2xvbmdf aGFzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist dmVyYm9zZV9yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy13YXJuaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKyBzaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCisgZ2V0X3N0YWdlX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21w b3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZ2V0 X3dpbmRvd19hY3RvcnMgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKK0BAIC04MywxMCArNjUsNyBAQCBnZXRfdG9wX3dp bmRvd19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YQorIGdldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1l dGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IgorIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRv ciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGVuYWJsZV91 bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lv biBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29t cG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGZv Y3VzX3N0YWdlX3dpbmRvdyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXN0YWdlX2lzX2ZvY3VzZWQgcGFyZW50PSJN ZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIKKyBrZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIgcGFyZW50PSJNZXRhLktleUJpbmRp bmciIG5hbWU9InNldF9jdXN0b21faGFuZGxlciIKKyBLZXlIYW5kbGVyRnVuYy5ldmVudCB0eXBl PSJDbHV0dGVyLktleUV2ZW50PyIKKyBnZXRfYmFja2VuZCBwYXJlbnQ9Ik1ldGEuQmFja2VuZCIK K2RpZmYgLS1naXQgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaCB2YXBpL2dlbmVyYXRlLW11 dHRlci12YXBpLnNoCitpbmRleCA2YjA3MDI0MC4uYjIzM2U1ODYgMTAwNzU1CistLS0gdmFwaS9n ZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAorKysrIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2gK K0BAIC0xLDcgKzEsNyBAQAorICMhL2Jpbi9iYXNoCisgc2V0IC14ZQorIAorLXZlcnNpb249JHsx LTR9CisrdmVyc2lvbj0kezYtN30KKyBnaXJkaXI9JChwa2ctY29uZmlnIGxpYm11dHRlci0kdmVy c2lvbiAtLXZhcmlhYmxlPWdpcmRpcikKKyAKKyBjZCAkKGRpcm5hbWUgJDApCitkaWZmIC0tZ2l0 IHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaSB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4w LnZhcGkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uNjk4MDE1MzUKKy0t LSAvZGV2L251bGwKKysrKyB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkKK0BAIC0wLDAg KzEsNjkxIEBACisrLyogZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaSBnZW5lcmF0ZWQgYnkgdmFw aWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysKKytbQ0NvZGUgKGNwcmVmaXggPSAiR3JhcGhlbmUi LCBnaXJfbmFtZXNwYWNlID0gIkdyYXBoZW5lIiwgZ2lyX3ZlcnNpb24gPSAiMS4wIiwgbG93ZXJf Y2FzZV9jcHJlZml4ID0gImdyYXBoZW5lXyIpXQorK25hbWVzcGFjZSBHcmFwaGVuZSB7CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJn cmFwaGVuZV9ib3hfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfYm94X2dldF90eXBlICgpIildCisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBCb3ggeworKwkJcHVi bGljIGJvb2wgY29udGFpbnNfYm94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlwdWJsaWMgYm9vbCBj b250YWluc19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuQm94PyBlbXB0eSAoKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChH cmFwaGVuZS5Cb3ggYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGV4cGFuZCAoR3JhcGhlbmUu UG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGV4cGFuZF9zY2FsYXIgKGZs b2F0IHNjYWxhcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGV4cGFuZF92ZWMzIChHcmFwaGVu ZS5WZWMzIHZlYyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuU3BoZXJlIGdldF9ib3VuZGluZ19zcGhl cmUgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2VudGVyICgpOworKwkJcHVi bGljIGZsb2F0IGdldF9kZXB0aCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOwor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X21heCAoKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludDNEIGdldF9taW4gKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfc2l6ZSAo KTsKKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIHJlZiBHcmFwaGVuZS5WZWMzIHZlcnRpY2VzWzhdKTsKKysJCXB1YmxpYyBmbG9hdCBn ZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbmZp bml0ZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5pdCAoR3JhcGhlbmUu UG9pbnQzRD8gbWluLCBHcmFwaGVuZS5Qb2ludDNEPyBtYXgpOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuQm94PyBpbml0X2Zyb21fYm94IChHcmFwaGVuZS5Cb3ggc3JjKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5pdF9mcm9tX3BvaW50cyAoW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl9wb2ludHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9s ZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5Qb2ludDNEW10gcG9pbnRzKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/ IG1pbiwgR3JhcGhlbmUuVmVjMz8gbWF4KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkJv eD8gaW5pdF9mcm9tX3ZlY3RvcnMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fdmVj dG9ycyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50 IildIEdyYXBoZW5lLlZlYzNbXSB2ZWN0b3JzKTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdGlv biAoR3JhcGhlbmUuQm94IGIsIG91dCBHcmFwaGVuZS5Cb3ggcmVzKTsKKysJCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IG1pbnVzX29uZSAoKTsKKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHcmFwaGVuZS5Cb3g/IG9uZSAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5Cb3g/IG9uZV9taW51c19vbmUgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IHVu aW9uIChHcmFwaGVuZS5Cb3ggYik7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu Qm94PyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9ldWxlcl90IiwgdHlwZV9pZCA9ICJncmFw aGVuZV9ldWxlcl9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CXB1YmxpYyBzdHJ1Y3QgRXVsZXIgeworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkV1 bGVyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBn ZXRfYWxwaGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF9iZXRhICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1Ymxp YyBmbG9hdCBnZXRfZ2FtbWEgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuRXVsZXJPcmRlciBnZXRf b3JkZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0 X3kgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ogKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5FdWxlcj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5FdWxlcj8g c3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fbWF0cml4 IChHcmFwaGVuZS5NYXRyaXg/IG0sIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9xdWF0ZXJuaW9uIChHcmFwaGVu ZS5RdWF0ZXJuaW9uPyBxLCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5p dF9mcm9tX3JhZGlhbnMgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIEdyYXBoZW5lLkV1bGVy T3JkZXIgb3JkZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJv bV92ZWMzIChHcmFwaGVuZS5WZWMzPyB2LCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X3dpdGhfb3JkZXIgKGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHosIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJcHVibGlj IEdyYXBoZW5lLkV1bGVyIHJlb3JkZXIgKEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJ cHVibGljIEdyYXBoZW5lLk1hdHJpeCB0b19tYXRyaXggKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gdG9fcXVhdGVybmlvbiAo KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHRvX3ZlYzMgKCk7CisrCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5l X2ZydXN0dW1fdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfZnJ1c3R1bV9nZXRfdHlwZSAoKSIpXQor KwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgRnJ1c3R1bSB7Cisr CQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhl bmUuRnJ1c3R1bSBiKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wbGFuZXMgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSByZWYgR3JhcGhlbmUuUGxhbmUgcGxhbmVzWzZdKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLkZydXN0dW0/IGluaXQgKEdyYXBoZW5lLlBsYW5lIHAwLCBHcmFw aGVuZS5QbGFuZSBwMSwgR3JhcGhlbmUuUGxhbmUgcDIsIEdyYXBoZW5lLlBsYW5lIHAzLCBHcmFw aGVuZS5QbGFuZSBwNCwgR3JhcGhlbmUuUGxhbmUgcDUpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuRnJ1c3R1bT8gaW5pdF9mcm9tX2ZydXN0dW0gKEdyYXBoZW5lLkZydXN0dW0gc3JjKTsK KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkZydXN0dW0/IGluaXRfZnJvbV9tYXRyaXggKEdy YXBoZW5lLk1hdHJpeCBtYXRyaXgpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0c19ib3ggKEdy YXBoZW5lLkJveCBib3gpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0c19zcGhlcmUgKEdyYXBo ZW5lLlNwaGVyZSBzcGhlcmUpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9tYXRyaXhfdCIsIHR5cGVfaWQg PSAiZ3JhcGhlbmVfbWF0cml4X2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgTWF0cml4 IHsKKysJCXB1YmxpYyBib29sIGRlY29tcG9zZSAob3V0IEdyYXBoZW5lLlZlYzMgdHJhbnNsYXRl LCBvdXQgR3JhcGhlbmUuVmVjMyBzY2FsZSwgb3V0IEdyYXBoZW5lLlF1YXRlcm5pb24gcm90YXRl LCBvdXQgR3JhcGhlbmUuVmVjMyBzaGVhciwgb3V0IEdyYXBoZW5lLlZlYzQgcGVyc3BlY3RpdmUp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGRldGVybWlu YW50ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGVx dWFsIChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIGJvb2wgZXF1YWxfZmFzdCAoR3JhcGhlbmUuTWF0cml4IGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3JvdyAodWlu dCBpbmRleF8pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF92YWx1ZSAodWludCByb3csIHVpbnQgY29sKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeF9zY2FsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3hfdHJhbnNsYXRpb24gKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3lfc2NhbGUgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95X3Ry YW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF96X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1 YmxpYyBmbG9hdCBnZXRfel90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tXzJkIChk b3VibGUgeHgsIGRvdWJsZSB5eCwgZG91YmxlIHh5LCBkb3VibGUgeXksIGRvdWJsZSB4XzAsIGRv dWJsZSB5XzApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdCB2WzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV9tYXRyaXggKEdyYXBo ZW5lLk1hdHJpeCBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCB2 MCwgR3JhcGhlbmUuVmVjNCB2MSwgR3JhcGhlbmUuVmVjNCB2MiwgR3JhcGhlbmUuVmVjNCB2Myk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5NYXRyaXg/IGluaXRfZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJv dHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5p dF9pZGVudGl0eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9sb29rX2F0IChHcmFwaGVuZS5WZWMzIGV5ZSwg R3JhcGhlbmUuVmVjMyBjZW50ZXIsIEdyYXBoZW5lLlZlYzMgdXApOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X29y dGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgdG9wLCBmbG9hdCBib3R0b20sIGZs b2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3BlcnNwZWN0aXZlIChmbG9h dCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4 PyBpbml0X3JvdGF0ZSAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/ IGluaXRfc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3Nr ZXcgKGZsb2F0IHhfc2tldywgZmxvYXQgeV9za2V3KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF90cmFuc2xhdGUg KEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuTWF0cml4IGludGVycG9sYXRlIChHcmFwaGVuZS5NYXRyaXggYiwgZG91 YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9v bCBpbnZlcnNlIChvdXQgR3JhcGhlbmUuTWF0cml4IHJlcyk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc18yZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzX2JhY2tmYWNlX3Zpc2libGUgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc19pZGVudGl0eSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzX3Npbmd1bGFyICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJp eCBtdWx0aXBseSAoR3JhcGhlbmUuTWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLk1hdHJpeCBiLCBmbG9hdCBlcHNp bG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5N YXRyaXggbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLk1hdHJpeCBwZXJzcGVjdGl2ZSAoZmxvYXQgZGVwdGgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcHJpbnQgKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcHJvamVjdF9wb2lu dCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlw dWJsaWMgR3JhcGhlbmUuUXVhZCBwcm9qZWN0X3JlY3QgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBwcm9qZWN0 X3JlY3RfYm91bmRzIChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgR3JhcGhlbmUuVmVjMyBh eGlzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0 ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisrCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoR3JhcGhlbmUuUXVhdGVybmlvbiBx KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV94 IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dm9pZCByb3RhdGVfeSAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHZvaWQgcm90YXRlX3ogKGZsb2F0IGFuZ2xlKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBmYWN0b3JfeCwgZmxv YXQgZmFjdG9yX3ksIGZsb2F0IGZhY3Rvcl96KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeHkgKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3X3h6IChmbG9hdCBmYWN0b3IpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2tld195eiAoZmxv YXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29s IHRvXzJkIChvdXQgZG91YmxlIHh4LCBvdXQgZG91YmxlIHl4LCBvdXQgZG91YmxlIHh5LCBvdXQg ZG91YmxlIHl5LCBvdXQgZG91YmxlIHhfMCwgb3V0IGRvdWJsZSB5XzApOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgdlsxNl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdHJhbnNmb3JtX2JvdW5kcyAoR3JhcGhl bmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5Cb3ggdHJhbnNmb3JtX2JveCAoR3JhcGhlbmUuQm94IGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHRyYW5zZm9ybV9wb2ludCAo R3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCB0cmFuc2Zvcm1fcG9pbnQzZCAoR3JhcGhlbmUuUG9pbnQzRCBw KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SYXkg dHJhbnNmb3JtX3JheSAoR3JhcGhlbmUuUmF5IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YWQgdHJhbnNmb3JtX3JlY3QgKEdyYXBoZW5lLlJl Y3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUu U3BoZXJlIHRyYW5zZm9ybV9zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHRyYW5zZm9ybV92ZWMz IChHcmFwaGVuZS5WZWMzIHYpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzQgdHJhbnNmb3JtX3ZlYzQgKEdyYXBoZW5lLlZlYzQgdik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKEdyYXBo ZW5lLlBvaW50M0QgcG9zKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5NYXRyaXggdHJhbnNwb3NlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgdW5wcm9qZWN0X3BvaW50M2QgKEdyYXBo ZW5lLk1hdHJpeCBtb2RlbHZpZXcsIEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdW50cmFuc2Zvcm1f Ym91bmRzIChHcmFwaGVuZS5SZWN0IHIsIEdyYXBoZW5lLlJlY3QgYm91bmRzKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIHVudHJhbnNmb3JtX3BvaW50IChH cmFwaGVuZS5Qb2ludCBwLCBHcmFwaGVuZS5SZWN0IGJvdW5kcywgb3V0IEdyYXBoZW5lLlBvaW50 IHJlcyk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BsYW5lX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3Bs YW5lX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGlj IHN0cnVjdCBQbGFuZSB7CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50 M0QgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlBsYW5lIGIpOworKwkJ cHVibGljIGZsb2F0IGdldF9jb25zdGFudCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdl dF9ub3JtYWwgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdCAoR3Jh cGhlbmUuVmVjMz8gbm9ybWFsLCBmbG9hdCBjb25zdGFudCk7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BsYW5lIChHcmFwaGVuZS5QbGFuZSBzcmMpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXRfZnJvbV9wb2ludCAoR3JhcGhlbmUu VmVjMyBub3JtYWwsIEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuUGxhbmU/IGluaXRfZnJvbV9wb2ludHMgKEdyYXBoZW5lLlBvaW50M0QgYSwgR3Jh cGhlbmUuUG9pbnQzRCBiLCBHcmFwaGVuZS5Qb2ludDNEIGMpOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuUGxhbmU/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHNyYyk7CisrCQlw dWJsaWMgR3JhcGhlbmUuUGxhbmUgbmVnYXRlICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBsYW5l IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMg R3JhcGhlbmUuUGxhbmUgdHJhbnNmb3JtIChHcmFwaGVuZS5NYXRyaXggbWF0cml4LCBHcmFwaGVu ZS5NYXRyaXg/IG5vcm1hbF9tYXRyaXgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9wb2ludF90IiwgdHlw ZV9pZCA9ICJncmFwaGVuZV9wb2ludF9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUG9pbnQgeworKwkJcHVibGljIGZsb2F0IHg7Cisr CQlwdWJsaWMgZmxvYXQgeTsKKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhlbmUuUG9p bnQgYiwgb3V0IGZsb2F0IGRfeCwgb3V0IGZsb2F0IGRfeSk7CisrCQlwdWJsaWMgYm9vbCBlcXVh bCAoR3JhcGhlbmUuUG9pbnQgYik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8g aW5pdCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2lu dD8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5Qb2ludCBzcmMpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IGluaXRfZnJv bV92ZWMyIChHcmFwaGVuZS5WZWMyIHNyYyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgaW50 ZXJwb2xhdGUgKEdyYXBoZW5lLlBvaW50IGIsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIGJv b2wgbmVhciAoR3JhcGhlbmUuUG9pbnQgYiwgZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiB0b192ZWMyICgpOworKwkJ cHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyB6ZXJvICgpOworKwl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJn cmFwaGVuZV9wb2ludDNkX3QiLCBsb3dlcl9jYXNlX2NzdWZmaXggPSAicG9pbnQzZCIsIHR5cGVf aWQgPSAiZ3JhcGhlbmVfcG9pbnQzZF9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUG9pbnQzRCB7CisrCQlwdWJsaWMgZmxvYXQgeDsK KysJCXB1YmxpYyBmbG9hdCB5OworKwkJcHVibGljIGZsb2F0IHo7CisrCQlwdWJsaWMgR3JhcGhl bmUuUG9pbnQzRCBjcm9zcyAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhlbmUuUG9pbnQzRCBi LCBvdXQgR3JhcGhlbmUuVmVjMyBkZWx0YSk7CisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVu ZS5Qb2ludDNEIGIpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlBvaW50M0QgYik7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0IChmbG9hdCB4LCBmbG9h dCB5LCBmbG9hdCB6KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGluaXRf ZnJvbV9wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuUG9pbnQzRD8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdik7CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBiLCBkb3Vi bGUgZmFjdG9yKTsKKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlwdWJsaWMgYm9vbCBu ZWFyIChHcmFwaGVuZS5Qb2ludDNEIGIsIGZsb2F0IGVwc2lsb24pOworKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50M0Qgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgbm9ybWFsaXplX3ZpZXdwb3J0IChHcmFwaGVuZS5S ZWN0IHZpZXdwb3J0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludDNEIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIEdyYXBoZW5lLlZl YzMgdG9fdmVjMyAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNE PyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1n b2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9xdWFkX3QiLCB0eXBlX2lkID0gImdyYXBoZW5l X3F1YWRfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJs aWMgc3RydWN0IFF1YWQgeworKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgYm91bmRzICgpOworKwkJ cHVibGljIGJvb2wgY29udGFpbnMgKEdyYXBoZW5lLlBvaW50IHApOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuUG9pbnQ/IGdldF9wb2ludCAodWludCBpbmRleF8pOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuUXVhZD8gaW5pdCAoR3JhcGhlbmUuUG9pbnQgcDEsIEdyYXBoZW5lLlBv aW50IHAyLCBHcmFwaGVuZS5Qb2ludCBwMywgR3JhcGhlbmUuUG9pbnQgcDQpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhZD8gaW5p dF9mcm9tX3BvaW50cyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBoZW5lLlBv aW50IHBvaW50c1s0XSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBpbml0X2Zy b21fcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcXVhdGVybmlvbl90 IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9xdWF0ZXJuaW9uX2dldF90eXBlICgpIildCisrCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBRdWF0ZXJuaW9uIHsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBh ZGQgKEdyYXBoZW5lLlF1YXRlcm5pb24gYik7CisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVu ZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlF1YXRlcm5p b24gYik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0IChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCB3KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9hbmdsZV92ZWMzIChmbG9hdCBhbmdsZSwgR3JhcGhl bmUuVmVjMyBheGlzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGlu aXRfZnJvbV9hbmdsZXMgKGZsb2F0IGRlZ194LCBmbG9hdCBkZWdfeSwgZmxvYXQgZGVnX3opOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu UXVhdGVybmlvbj8gaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5FdWxlciBlKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9tYXRyaXggKEdyYXBoZW5l Lk1hdHJpeCBtKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRf ZnJvbV9xdWF0ZXJuaW9uIChHcmFwaGVuZS5RdWF0ZXJuaW9uIHNyYyk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fcmFkaWFucyAoZmxvYXQgcmFkX3gs IGZsb2F0IHJhZF95LCBmbG9hdCByYWRfeik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5R dWF0ZXJuaW9uPyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9pZGVudGl0eSAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5RdWF0ZXJuaW9uIGludmVydCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBtdWx0aXBseSAoR3JhcGhlbmUu UXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIG5vcm1hbGl6ZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVh dGVybmlvbiBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJu aW9uIHNsZXJwIChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIsIGZsb2F0IGZhY3Rvcik7CisrCQlwdWJs aWMgdm9pZCB0b19hbmdsZV92ZWMzIChvdXQgZmxvYXQgYW5nbGUsIG91dCBHcmFwaGVuZS5WZWMz IGF4aXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgdG9f YW5nbGVzIChvdXQgZmxvYXQgZGVnX3gsIG91dCBmbG9hdCBkZWdfeSwgb3V0IGZsb2F0IGRlZ196 KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggdG9fbWF0cml4ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgdG9fcmFkaWFucyAob3V0IGZsb2F0IHJh ZF94LCBvdXQgZmxvYXQgcmFkX3ksIG91dCBmbG9hdCByYWRfeik7CisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjNCB0b192ZWM0ICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9yYXlfdCIsIHR5cGVfaWQgPSAi Z3JhcGhlbmVfcmF5X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KysJcHVibGljIHN0cnVjdCBSYXkgeworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlJh eSBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jbG9zZXN0X3BvaW50X3RvX3Bv aW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X2Rp cmVjdGlvbiAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfZGlzdGFuY2VfdG9fcGxhbmUgKEdyYXBo ZW5lLlBsYW5lIHApOworKwkJcHVibGljIGZsb2F0IGdldF9kaXN0YW5jZV90b19wb2ludCAoR3Jh cGhlbmUuUG9pbnQzRCBwKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9vcmlnaW4g KCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfcG9zaXRpb25fYXQgKGZsb2F0IHQp OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmF5PyBpbml0IChHcmFwaGVuZS5Qb2ludDNE PyBvcmlnaW4sIEdyYXBoZW5lLlZlYzM/IGRpcmVjdGlvbik7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5SYXk/IGluaXRfZnJvbV9yYXkgKEdyYXBoZW5lLlJheSBzcmMpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUmF5PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gb3Jp Z2luLCBHcmFwaGVuZS5WZWMzPyBkaXJlY3Rpb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SYXlJbnRlcnNlY3Rpb25LaW5kIGludGVyc2VjdF9i b3ggKEdyYXBoZW5lLkJveCBiLCBvdXQgZmxvYXQgdF9vdXQpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SYXlJbnRlcnNlY3Rpb25LaW5kIGludGVy c2VjdF9zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzLCBvdXQgZmxvYXQgdF9vdXQpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SYXlJbnRlcnNlY3Rp b25LaW5kIGludGVyc2VjdF90cmlhbmdsZSAoR3JhcGhlbmUuVHJpYW5nbGUgdCwgb3V0IGZsb2F0 IHRfb3V0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBp bnRlcnNlY3RzX2JveCAoR3JhcGhlbmUuQm94IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfc3BoZXJlIChHcmFwaGVuZS5TcGhlcmUg cyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgaW50ZXJz ZWN0c190cmlhbmdsZSAoR3JhcGhlbmUuVHJpYW5nbGUgdCk7CisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3Jl Y3RfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcmVjdF9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUmVjdCB7CisrCQlwdWJsaWMgR3Jh cGhlbmUuUG9pbnQgb3JpZ2luOworKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6ZTsKKysJCXB1 YmxpYyBzdGF0aWMgR3JhcGhlbmUuUmVjdD8gYWxsb2MgKCk7CisrCQlwdWJsaWMgYm9vbCBjb250 YWluc19wb2ludCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19y ZWN0IChHcmFwaGVuZS5SZWN0IGIpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlJl Y3QgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUu UmVjdCBleHBhbmQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfYXJlYSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Q b2ludCBnZXRfYm90dG9tX2xlZnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X2Jv dHRvbV9yaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfY2VudGVyICgpOwor KwkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQg Z2V0X3RvcF9sZWZ0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF90b3BfcmlnaHQg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgdm9pZCBnZXRfdmVy dGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgR3JhcGhlbmUuVmVjMiB2 ZXJ0aWNlc1s0XSk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworKwkJcHVibGljIGZs b2F0IGdldF94ICgpOworKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuUmVjdD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZs b2F0IGhlaWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbml0X2Zyb21f cmVjdCAoR3JhcGhlbmUuUmVjdCBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVj dD8gaW5zZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGluc2V0X3IgKGZsb2F0IGRfeCwgZmxvYXQg ZF95KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGludGVycG9sYXRlIChHcmFwaGVuZS5SZWN0 IGIsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChHcmFwaGVu ZS5SZWN0IGIsIG91dCBHcmFwaGVuZS5SZWN0IHJlcyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5SZWN0PyBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBub3JtYWxpemVfciAoKTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlJlY3Q/IG9mZnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qgb2Zmc2V0X3IgKGZs b2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhl bmUuUmVjdCByb3VuZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgR3JhcGhlbmUuUmVjdCByb3VuZF9leHRlbnRzICgpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gcm91bmRfdG9fcGl4ZWwgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qgc2NhbGUgKGZs b2F0IHNfaCwgZmxvYXQgc192KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHVuaW9uIChHcmFw aGVuZS5SZWN0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3Np bWQ0Zl90IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgU2ltZDRGIHsK KysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiZ3JhcGhlbmVfc2ltZDR4NGZfdCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlw dWJsaWMgc3RydWN0IFNpbWQ0WDRGIHsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfc2l6ZV90IiwgdHlwZV9p ZCA9ICJncmFwaGVuZV9zaXplX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJcHVibGljIHN0cnVjdCBTaXplIHsKKysJCXB1YmxpYyBmbG9hdCB3aWR0aDsKKysJ CXB1YmxpYyBmbG9hdCBoZWlnaHQ7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuU2l6 ZSBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/IGluaXQgKGZsb2F0IHdpZHRo LCBmbG9hdCBoZWlnaHQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU2l6ZT8gaW5pdF9m cm9tX3NpemUgKEdyYXBoZW5lLlNpemUgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIGlu dGVycG9sYXRlIChHcmFwaGVuZS5TaXplIGIsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIEdy YXBoZW5lLlNpemUgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgR3JhcGhlbmUuU2l6ZT8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfc3BoZXJlX3QiLCB0 eXBlX2lkID0gImdyYXBoZW5lX3NwaGVyZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgU3BoZXJlIHsKKysJCXB1YmxpYyBib29sIGNv bnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBmbG9hdCBk aXN0YW5jZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAo R3JhcGhlbmUuU3BoZXJlIGIpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBnZXRfYm91bmRpbmdf Ym94ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2NlbnRlciAoKTsKKysJCXB1 YmxpYyBmbG9hdCBnZXRfcmFkaXVzICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU3Bo ZXJlPyBpbml0IChHcmFwaGVuZS5Qb2ludDNEPyBjZW50ZXIsIGZsb2F0IHJhZGl1cyk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXRfZnJvbV9wb2ludHMgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcG9pbnRzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwg YXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuUG9pbnQzRFtdIHBvaW50cywg R3JhcGhlbmUuUG9pbnQzRD8gY2VudGVyKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNw aGVyZT8gaW5pdF9mcm9tX3ZlY3RvcnMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5f dmVjdG9ycyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1 aW50IildIEdyYXBoZW5lLlZlYzNbXSB2ZWN0b3JzLCBHcmFwaGVuZS5Qb2ludDNEPyBjZW50ZXIp OworKwkJcHVibGljIGJvb2wgaXNfZW1wdHkgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuU3BoZXJl IHRyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3Ry aWFuZ2xlX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3RyaWFuZ2xlX2dldF90eXBlICgpIildCisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBUcmlhbmdsZSB7Cisr CQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwKTsKKysJCXB1 YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5UcmlhbmdsZSBiKTsKKysJCXB1YmxpYyBmbG9hdCBn ZXRfYXJlYSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9iYXJ5Y29vcmRzIChHcmFwaGVuZS5Qb2lu dDNEPyBwLCBvdXQgR3JhcGhlbmUuVmVjMiByZXMpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBn ZXRfYm91bmRpbmdfYm94ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X21pZHBv aW50ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X25vcm1hbCAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5QbGFuZSBnZXRfcGxhbmUgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRz IChvdXQgR3JhcGhlbmUuUG9pbnQzRCBhLCBvdXQgR3JhcGhlbmUuUG9pbnQzRCBiLCBvdXQgR3Jh cGhlbmUuUG9pbnQzRCBjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgYm9vbCBnZXRfdXYgKEdyYXBoZW5lLlBvaW50M0Q/IHAsIEdyYXBoZW5lLlZlYzIgdXZfYSwg R3JhcGhlbmUuVmVjMiB1dl9iLCBHcmFwaGVuZS5WZWMyIHV2X2MsIG91dCBHcmFwaGVuZS5WZWMy IHJlcyk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdmVydGljZXMgKG91dCBHcmFwaGVuZS5WZWMzIGEs IG91dCBHcmFwaGVuZS5WZWMzIGIsIG91dCBHcmFwaGVuZS5WZWMzIGMpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlRyaWFuZ2xlPyBp bml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBhWzNd LCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgYlszXSwgW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGNbM10pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuVHJpYW5nbGU/IGluaXRfZnJvbV9wb2ludDNkIChHcmFwaGVuZS5Qb2ludDNEPyBhLCBHcmFw aGVuZS5Qb2ludDNEPyBiLCBHcmFwaGVuZS5Qb2ludDNEPyBjKTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlRyaWFuZ2xlPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gYSwgR3Jh cGhlbmUuVmVjMz8gYiwgR3JhcGhlbmUuVmVjMz8gYyk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3ZlYzJf dCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdmVjMl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3Ry dWN0IFZlYzIgeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlZlYzIgYWRkIChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZGl2aWRlIChHcmFwaGVuZS5WZWMyIGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhl bmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29s IGVxdWFsIChHcmFwaGVuZS5WZWMyIHYyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuVmVjMj8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g ZmxvYXQgc3JjWzJdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlZlYzI/IGluaXRfZnJvbV92ZWMyIChHcmFwaGVuZS5WZWMyIHNyYyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIg aW50ZXJwb2xhdGUgKEdyYXBoZW5lLlZlYzIgdjIsIGRvdWJsZSBmYWN0b3IpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGxlbmd0aCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG1heCAoR3JhcGhl bmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWMyIG1pbiAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG11bHRpcGx5IChHcmFwaGVuZS5WZWMyIGIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgbmVhciAoR3Jh cGhlbmUuVmVjMiB2MiwgZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBuZWdhdGUgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBub3JtYWxpemUgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhl bmUuVmVjMj8gb25lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzIgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBzdWJ0cmFjdCAoR3JhcGhlbmUuVmVj MiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2Zs b2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIGZsb2F0IGRlc3RbMl0pOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdy YXBoZW5lLlZlYzI/IHhfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB5X2F4aXMgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu VmVjMj8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjM190IiwgdHlwZV9pZCA9ICJncmFw aGVuZV92ZWMzX2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgVmVjMyB7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBhZGQgKEdyYXBo ZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMyBjcm9zcyAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGRpdmlkZSAoR3JhcGhlbmUuVmVjMyBi KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdy YXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMg Ym9vbCBlcXVhbCAoR3JhcGhlbmUuVmVjMyB2Mik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBnZXRfeHkgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfeHkwICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3h5ejAg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj NCBnZXRfeHl6MSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5WZWM0IGdldF94eXp3IChmbG9hdCB3KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IGluaXQgKGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IHopOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gZmxvYXQgc3JjWzNdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IGluaXRfZnJvbV92ZWMzIChHcmFw aGVuZS5WZWMzIHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzMgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlZlYzMgdjIsIGRvdWJsZSBmYWN0 b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGxlbmd0 aCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMzIG1heCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG1pbiAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG11bHRpcGx5IChH cmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGlj IGJvb2wgbmVhciAoR3JhcGhlbmUuVmVjMyB2MiwgZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBuZWdhdGUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBub3Jt YWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuVmVjMz8gb25lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBzdWJ0cmFj dCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIGZs b2F0IGRlc3RbM10pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHhfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB5X2F4 aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjMz8gel9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHplcm8gKCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX3ZlYzRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdmVjNF9nZXRfdHlw ZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IFZlYzQgeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgYWRkIChHcmFwaGVuZS5WZWM0IGIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZGl2aWRl IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5WZWM0IHYyKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfdyAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGdldF94eSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdl dF94eXogKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3ogKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5WZWM0PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCB3 KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlZlYzQ/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IGZsb2F0IHNyY1s0XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjMiAoR3JhcGhlbmUuVmVjMiBzcmMs IGZsb2F0IHosIGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzMg c3JjLCBmbG9hdCB3KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHNyYyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQg aW50ZXJwb2xhdGUgKEdyYXBoZW5lLlZlYzQgdjIsIGRvdWJsZSBmYWN0b3IpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGxlbmd0aCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG1heCAoR3JhcGhl bmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWM0IG1pbiAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG11bHRpcGx5IChHcmFwaGVuZS5WZWM0IGIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgbmVhciAoR3Jh cGhlbmUuVmVjNCB2MiwgZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBuZWdhdGUgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBub3JtYWxpemUgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhl bmUuVmVjND8gb25lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzQgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBzdWJ0cmFjdCAoR3JhcGhlbmUuVmVj NCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2Zs b2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIGZsb2F0IGRlc3RbNF0pOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdy YXBoZW5lLlZlYzQ/IHdfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB4X2F4aXMgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu VmVjND8geV9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHpfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB6 ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9ldWxlcl9vcmRlcl90IiwgY3ByZWZpeCA9ICJHUkFQ SEVORV9FVUxFUl9PUkRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwlwdWJsaWMgZW51bSBFdWxlck9yZGVyIHsKKysJCURFRkFVTFQsCisr CQlYWVosCisrCQlZWlgsCisrCQlaWFksCisrCQlYWlksCisrCQlZWFosCisrCQlaWVgsCisrCQlT WFlaLAorKwkJU1hZWCwKKysJCVNYWlksCisrCQlTWFpYLAorKwkJU1laWCwKKysJCVNZWlksCisr CQlTWVhaLAorKwkJU1lYWSwKKysJCVNaWFksCisrCQlTWlhaLAorKwkJU1pZWCwKKysJCVNaWVos CisrCQlSWllYLAorKwkJUlhZWCwKKysJCVJZWlgsCisrCQlSWFpYLAorKwkJUlhaWSwKKysJCVJZ WlksCisrCQlSWlhZLAorKwkJUllYWSwKKysJCVJZWFosCisrCQlSWlhaLAorKwkJUlhZWiwKKysJ CVJaWVoKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVj dC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmF5X2ludGVyc2VjdGlvbl9raW5kX3QiLCBjcHJlZml4 ID0gIkdSQVBIRU5FX1JBWV9JTlRFUlNFQ1RJT05fS0lORF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIGVudW0gUmF5SW50ZXJz ZWN0aW9uS2luZCB7CisrCQlOT05FLAorKwkJRU5URVIsCisrCQlMRUFWRQorKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQ SEVORV9IQVNfR0NDIildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX0dDQzsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5F X0hBU19TQ0FMQVIiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfU0NBTEFSOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhF TkVfSEFTX1NTRSIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19TU0U7CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9Q SSIpXQorKwlwdWJsaWMgY29uc3QgZG91YmxlIFBJOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfUElfMiIpXQorKwlw dWJsaWMgY29uc3QgZG91YmxlIFBJXzI7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9TSU1EX1MiKV0KKysJcHVibGlj IGNvbnN0IHN0cmluZyBTSU1EX1M7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9WRUMyX0xFTiIpXQorKwlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBjb25zdCBpbnQgVkVDMl9MRU47CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQ SEVORV9WRUMzX0xFTiIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBj b25zdCBpbnQgVkVDM19MRU47CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9WRUM0X0xFTiIpXQorKwlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBjb25zdCBpbnQgVkVDNF9MRU47CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJmYWxzZSIp XQorKwlwdWJsaWMgY29uc3QgaW50IEBmYWxzZTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gInRydWUiKV0KKysJcHVibGljIGNvbnN0 IGludCBAdHJ1ZTsKKyt9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTIuZGVwcyB2YXBpL2xp Ym11dHRlci0yLmRlcHMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMWYzYzkwNzku LjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItMi5kZXBzCisrKysgL2Rldi9udWxsCitAQCAt MSw5ICswLDAgQEAKKy1jYWlybworLWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1nZGstMy4w CistZ2RrLXBpeGJ1Zi0yLjAKKy1ndGsrLTMuMAorLXgxMQorLXhmaXhlcy00LjAKKy1jbHV0dGVy LTEuMAorLWNvZ2wtMS4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTIudmFwaSB2YXBpL2xp Ym11dHRlci0yLnZhcGkKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMGE2YzQzNTcu LjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItMi52YXBpCisrKysgL2Rldi9udWxsCitAQCAt MSwxMzI1ICswLDAgQEAKKy0vKiBsaWJtdXR0ZXIudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwg ZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1l c3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjMuMCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9 ICJtZXRhXyIpXQorLW5hbWVzcGFjZSBNZXRhIHsKKy0JbmFtZXNwYWNlIFByZWZzIHsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBhZGRfbGlzdGVuZXIgKE1ldGEuUHJlZnNDaGFuZ2VkRnVuYyBmdW5jKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBiZWxsX2lzX2F1ZGlibGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgY2hhbmdlX3dvcmtzcGFj ZV9uYW1lIChpbnQgaSwgc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFj dGlvbiBnZXRfYWN0aW9uX2RvdWJsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0 b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9taWRkbGVfY2xpY2tfdGl0bGViYXIgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9hY3Rpb25fcmlnaHRfY2xpY2tfdGl0 bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIGdldF9hdXRvX21heGltaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9hdXRvX3Jh aXNlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQor LQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2F1dG9fcmFpc2VfZGVsYXkgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIE1l dGEuQnV0dG9uTGF5b3V0IGdldF9idXR0b25fbGF5b3V0ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9j ZW50ZXJfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2NvbXBvc2l0aW5nX21hbmFn ZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIGludCBnZXRfY3Vyc29yX3NpemUgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQg c3RyaW5nIGdldF9jdXJzb3JfdGhlbWUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2Rpc2FibGVfd29y a2Fyb3VuZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfZHJhZ190aHJlc2hvbGQgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGlj IGludCBnZXRfZHJhZ2dhYmxlX2JvcmRlcl93aWR0aCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZHlu YW1pY193b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9lZGdlX3RpbGluZyAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBnZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg R0Rlc2t0b3AuRm9jdXNNb2RlIGdldF9mb2N1c19tb2RlICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5G b2N1c05ld1dpbmRvd3MgZ2V0X2ZvY3VzX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdl dF9mb3JjZV9mdWxsc2NyZWVuICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9nbm9tZV9hY2Nlc3NpYmls aXR5ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIGdldF9nbm9tZV9hbmltYXRpb25zICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIGdldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLktl eUJpbmRpbmdBY3Rpb24gZ2V0X2tleWJpbmRpbmdfYWN0aW9uIChzdHJpbmcgbmFtZSk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIGludCBnZXRfbW91c2VfYnV0dG9uX21lbnUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuVmlydHVhbE1v ZGlmaWVyIGdldF9tb3VzZV9idXR0b25fbW9kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9tb3VzZV9i dXR0b25fcmVzaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X251bV93b3Jrc3BhY2VzICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIGdldF9yYWlzZV9vbl9jbGljayAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfc2hvd19m YWxsYmFja19hcHBfbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5Gb250RGVzY3JpcHRp b24gZ2V0X3RpdGxlYmFyX2ZvbnQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3Zpc3VhbF9iZWxsICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVi bGljIHN0YXRpYyBHRGVza3RvcC5WaXN1YWxCZWxsVHlwZSBnZXRfdmlzdWFsX2JlbGxfdHlwZSAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dvcmtzcGFjZV9uYW1lIChpbnQgaSk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X3dvcmtzcGFjZXNfb25seV9vbl9wcmltYXJ5ICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIGluaXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgb3ZlcnJpZGVfcHJlZmVyZW5jZV9zY2hlbWEgKHN0 cmluZyBrZXksIHN0cmluZyBzY2hlbWEpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9saXN0ZW5lciAo TWV0YS5QcmVmc0NoYW5nZWRGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb3JjZV9mdWxs c2NyZWVuIChib29sIHdoZXRoZXIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9pZ25vcmVfcmVxdWVzdF9o aWRlX3RpdGxlYmFyIChib29sIHdoZXRoZXIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9udW1fd29ya3Nw YWNlcyAoaW50IG5fd29ya3NwYWNlcyk7CistCX0KKy0JbmFtZXNwYWNlIFV0aWwgeworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9hZGRf dmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF92ZXJib3NlX3RvcGlj IChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9idWciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBidWcgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2RlYnVnX3NwZXdfcmVhbCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGRlYnVnX3NwZXdfcmVhbCAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf ZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBk aXNhYmxlX3VucmVkaXJlY3RfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFt ZSA9ICJtZXRhX2VtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIGVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZW5h YmxlX3VucmVkaXJlY3RfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJs ZV91bnJlZGlyZWN0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2Vycm9yX3Ry YXBfcG9wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZXJyb3JfdHJhcF9wb3AgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wdXNoIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZXJyb3JfdHJhcF9wdXNoIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2Vycm9yX3RyYXBf cHVzaF93aXRoX3JldHVybiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVycm9yX3RyYXBfcHVz aF93aXRoX3JldHVybiAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9leHRlcm5hbF9iaW5kaW5n X25hbWVfZm9yX2FjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmlu ZGluZ19uYW1lX2Zvcl9hY3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rpb24pOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9mYXRhbCIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZhdGFsIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9m cmVlX2dzbGlzdF9hbmRfZWxlbWVudHMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmcmVlX2dz bGlzdF9hbmRfZWxlbWVudHMgKEdMaWIuU0xpc3Q8dm9pZCo+IGxpc3RfdG9fZGVlcF9mcmVlKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1l dGFfZ191dGY4X3N0cm5kdXAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGdfdXRmOF9zdHJu ZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9sb2NhbGVfZGlyZWN0aW9uIildCist CQlwdWJsaWMgc3RhdGljIE1ldGEuTG9jYWxlRGlyZWN0aW9uIGdldF9sb2NhbGVfZGlyZWN0aW9u ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV9nZXRfb3ZlcmxheV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgWC5XaW5kb3cg Z2V0X292ZXJsYXlfd2luZG93IChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9ncmF2aXR5X3RvX3N0 cmluZyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBncmF2aXR5X3RvX3N0cmlu ZyAoaW50IGdyYXZpdHkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAibWV0YV9pc19kZWJ1Z2dpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBpc19kZWJ1Z2dpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3N5bmNpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBpc19zeW5jaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAibWV0YV9pc192ZXJib3NlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg aXNfdmVyYm9zZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfaXNfd2F5bGFuZF9jb21wb3NpdG9yIildCistCQlwdWJsaWMgc3Rh dGljIGJvb2wgaXNfd2F5bGFuZF9jb21wb3NpdG9yICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9sYXRlcl9hZGQiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdWludCBsYXRlcl9hZGQgKE1ldGEuTGF0ZXJUeXBlIHdoZW4sIG93bmVkIEdM aWIuU291cmNlRnVuYyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfcmVtb3ZlIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgbGF0ZXJfcmVtb3ZlICh1aW50IGxhdGVyX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcG9wX25vX21zZ19wcmVmaXgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcHVzaF9u b19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9ub19tc2dfcHJlZml4 ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV9yZWN0IildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuUmVjdGFuZ2xlPyByZWN0IChp bnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3JlbW92ZV92ZXJib3NlX3Rv cGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX3ZlcmJvc2VfdG9waWMgKE1ldGEu RGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVnaW9u IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5T Y3JlZW4gc2NyZWVuLCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfc2hvd19kaWFsb2ciKV0K Ky0JCXB1YmxpYyBzdGF0aWMgR0xpYi5QaWQgc2hvd19kaWFsb2cgKHN0cmluZyB0eXBlLCBzdHJp bmcgbWVzc2FnZSwgc3RyaW5nPyB0aW1lb3V0ID0gbnVsbCwgc3RyaW5nPyBkaXNwbGF5ID0gbnVs bCwgc3RyaW5nPyBva190ZXh0ID0gbnVsbCwgc3RyaW5nPyBjYW5jZWxfdGV4dCA9IG51bGwsIHN0 cmluZz8gaWNvbl9uYW1lID0gbnVsbCwgaW50IHRyYW5zaWVudF9mb3IgPSAwLCBHTGliLlNMaXN0 PHN0cmluZz4/IGNvbHVtbnMgPSBudWxsLCBHTGliLlNMaXN0PHN0cmluZz4/IGVudHJpZXMgPSBu dWxsKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfdG9waWNfcmVhbCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHRvcGljX3JlYWwg KE1ldGEuRGVidWdUb3BpYyB0b3BpYywgc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRf bG9uZ19lcXVhbCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgdW5zaWduZWRfbG9uZ19lcXVhbCAo dm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19oYXNoIildCistCQlwdWJsaWMg c3RhdGljIHVpbnQgdW5zaWduZWRfbG9uZ19oYXNoICh2b2lkKiB2KTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfdmVyYm9zZV9yZWFs IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdmVyYm9zZV9yZWFsIChzdHJpbmcgZm9ybWF0LCAu Li4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV93YXJuaW5nIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgd2FybmluZyAoc3RyaW5n IGZvcm1hdCwgLi4uKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCBjbmFtZSA9 ICJtZXRhX2dldF9iYWNrZW5kIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNr ZW5kIGdldF9iYWNrZW5kICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf c3RhZ2UgKCk7CistCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91cCAodWludCBpZHgpOwor LQkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJpYW50 cywgc3RyaW5nIG9wdGlvbnMpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9jaGFuZ2Vk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3JvdXBfY2hhbmdlZCAo dWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQg KGludCBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtYmFja2dyb3VuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmQgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgQmFja2dyb3VuZCAo TWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAo KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUg ZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHls ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJ cHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5k U3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChHRGVza3RvcC5CYWNr Z3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5Db2xvciBjb2xvciwgQ2x1 dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgTWV0YS5TY3JlZW4gbWV0YV9zY3JlZW4geyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFf YmFja2dyb3VuZF9hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3Vu ZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFi bGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQor LQkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5TY3JlZW4gc2NyZWVuLCBpbnQgbW9uaXRv cik7CistCQlwdWJsaWMgdm9pZCBzZXRfYmFja2dyb3VuZCAoTWV0YS5CYWNrZ3JvdW5kIGJhY2tn cm91bmQpOworLQkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRlIChib29sIGVuYWJsZWQsIGRvdWJs ZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kIHsgb3duZWQgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSBicmlnaHRuZXNzIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2NyZWVuIG1l dGFfc2NyZWVuIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGludCBtb25pdG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdmlnbmV0dGUgeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIHZpZ25ldHRlX3NoYXJwbmVzcyB7IGdl dDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9ncm91cF9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEdyb3VwIDogQ2x1dHRlci5BY3Rv ciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRH cm91cCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2UgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgQmFja2dyb3VuZEltYWdlICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3N1Y2Nlc3MgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19sb2FkZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbG9hZGVkICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfY2FjaGVfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZUNhY2hlIDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IEJhY2tncm91bmRJbWFnZUNhY2hlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEu QmFja2dyb3VuZEltYWdlQ2FjaGUgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5CYWNr Z3JvdW5kSW1hZ2UgbG9hZCAoR0xpYi5GaWxlIGZpbGUpOworLQkJcHVibGljIHZvaWQgcHVyZ2Ug KEdMaWIuRmlsZSBmaWxlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgQmFycmllciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYXJyaWVyICgpOworLQkJcHVi bGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2FjdGl2ZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIHJlbGVhc2UgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFycmllckRpcmVjdGlvbiBkaXJlY3Rpb25zIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEu RGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGludCB4MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MiB7IGdldDsgY29uc3RydWN0OyB9 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaGl0IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgbGVmdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gIm1ldGFfYmFycmllcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIEJhcnJpZXJFdmVudCB7CistCQlwdWJsaWMgaW50IGR0OworLQkJcHVibGlj IGRvdWJsZSBkeDsKKy0JCXB1YmxpYyBkb3VibGUgZHk7CistCQlwdWJsaWMgaW50IGV2ZW50X2lk OworLQkJcHVibGljIGJvb2wgZ3JhYmJlZDsKKy0JCXB1YmxpYyBib29sIHJlbGVhc2VkOworLQkJ cHVibGljIHVpbnQzMiB0aW1lOworLQkJcHVibGljIGRvdWJsZSB4OworLQkJcHVibGljIGRvdWJs ZSB5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3Iu aCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIENvbXBvc2l0b3IgeworLQkJcHVibGlj IHZvaWQgYWRkX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JCXB1YmxpYyB2b2lkIGRl c3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBmaWx0ZXJfa2V5YmluZGluZyAoTWV0YS5LZXlCaW5k aW5nIGJpbmRpbmcpOworLQkJcHVibGljIHZvaWQgZmxhc2hfc2NyZWVuIChNZXRhLlNjcmVlbiBz Y3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZm9jdXNfc3RhZ2Vfd2luZG93IildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgZm9jdXNfc3RhZ2Vfd2luZG93IChNZXRhLlNjcmVlbiBzY3JlZW4sIHVpbnQz MiB0aW1lc3RhbXApOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9zY3Jl ZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9mZWVkYmFj a19ncm91cF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf Z2V0X3N0YWdlX2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yPyBnZXRfc3RhZ2VfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFt ZSA9ICJtZXRhX2dldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yPyBnZXRfdG9wX3dpbmRvd19ncm91cF9mb3Jfc2Ny ZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19hY3Rv cnMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRv d0FjdG9yPj8gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9nZXRfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yPyBnZXRfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4gKE1ldGEu U2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBoaWRlX3RpbGVfcHJldmlldyAoKTsKKy0J CXB1YmxpYyB2b2lkIGhpZGVfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuQ29tcEVm ZmVjdCBlZmZlY3QpOworLQkJcHVibGljIHZvaWQgbWFuYWdlICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQg TWV0YS5Db21wb3NpdG9yIEBuZXcgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCXB1YmxpYyB2 b2lkIHF1ZXVlX2ZyYW1lX2RyYXduIChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgbm9fZGVsYXlf ZnJhbWUpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93 KTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfdGlsZV9wcmV2aWV3IChNZXRhLldpbmRvdyB3aW5kb3cs IE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50IHRpbGVfbW9uaXRvcl9udW1iZXIpOworLQkJ cHVibGljIHZvaWQgc2hvd193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5Db21wRWZm ZWN0IGVmZmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaG93X3dpbmRvd19tZW51IChNZXRhLldpbmRv dyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5KTsKKy0JCXB1 YmxpYyB2b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRvdywg TWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1Ymxp YyB2b2lkIHNpemVfY2hhbmdlX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLlNpemVD aGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5S ZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3N0YWdlX2lzX2ZvY3Vz ZWQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBzdGFnZV9pc19mb2N1c2VkIChNZXRhLlNjcmVl biBzY3JlZW4pOworLQkJcHVibGljIHZvaWQgc3dpdGNoX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3Bh Y2UgZnJvbSwgTWV0YS5Xb3Jrc3BhY2UgdG8sIE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlv bik7CistCQlwdWJsaWMgdm9pZCBzeW5jX3N0YWNrIChHTGliLkxpc3Q8TWV0YS5XaW5kb3dBY3Rv cj4gc3RhY2spOworLQkJcHVibGljIHZvaWQgc3luY191cGRhdGVzX2Zyb3plbiAoTWV0YS5XaW5k b3cgd2luZG93KTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfd2luZG93X2dlb21ldHJ5IChNZXRhLldp bmRvdyB3aW5kb3csIGJvb2wgZGlkX3BsYWNlbWVudCk7CistCQlwdWJsaWMgdm9pZCB1bm1hbmFn ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHdpbmRvd19vcGFjaXR5X2NoYW5nZWQgKE1ldGEuV2luZG93 IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCB3aW5kb3dfc2hhcGVfY2hhbmdlZCAoTWV0YS5XaW5k b3cgd2luZG93KTsKKy0JCXB1YmxpYyB2b2lkIHdpbmRvd19zdXJmYWNlX2NoYW5nZWQgKE1ldGEu V2luZG93IHdpbmRvdyk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl90cmFja2VyX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBDdXJzb3JUcmFja2VyIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIEN1cnNvclRyYWNrZXIgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJz b3JUcmFja2VyIGdldF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJcHVibGlj IHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworLQkJcHVibGljIHZvaWQgZ2V0 X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7CistCQlw dWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIERpc3BsYXkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRGlzcGxheSAoKTsKKy0J CXB1YmxpYyB2b2lkIGFkZF9pZ25vcmVkX2Nyb3NzaW5nX3NlcmlhbCAodWxvbmcgc2VyaWFsKTsK Ky0JCXB1YmxpYyB1aW50IGFkZF9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSwgR0xpYi5TZXR0aW5n cyBzZXR0aW5ncywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZmxhZ3MsIG93bmVkIE1ldGEuS2V5SGFu ZGxlckZ1bmMgaGFuZGxlcik7CistCQlwdWJsaWMgYm9vbCBiZWdpbl9ncmFiX29wIChNZXRhLlNj cmVlbiBzY3JlZW4sIE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5HcmFiT3Agb3AsIGJvb2wgcG9p bnRlcl9hbHJlYWR5X2dyYWJiZWQsIGJvb2wgZnJhbWVfYWN0aW9uLCBpbnQgYnV0dG9uLCB1bG9u ZyBtb2RtYXNrLCB1aW50MzIgdGltZXN0YW1wLCBpbnQgcm9vdF94LCBpbnQgcm9vdF95KTsKKy0J CXB1YmxpYyB2b2lkIGNsZWFyX21vdXNlX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBlbmRfZ3Jh Yl9vcCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c190aGVfbm9fZm9j dXNfd2luZG93IChNZXRhLlNjcmVlbiBzY3JlZW4sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIHZvaWQgZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuQ29tcG9zaXRvciBnZXRfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyB1aW50 MzIgZ2V0X2N1cnJlbnRfdGltZSAoKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2N1cnJlbnRfdGlt ZV9yb3VuZHRyaXAgKCk7CistCQlwdWJsaWMgaW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9mb2N1c193aW5kb3cgKCk7CistCQlw dWJsaWMgTWV0YS5HcmFiT3AgZ2V0X2dyYWJfb3AgKCk7CistCQlwdWJsaWMgdWludCBnZXRfa2V5 YmluZGluZ19hY3Rpb24gKHVpbnQga2V5Y29kZSwgdWxvbmcgbWFzayk7CistCQlwdWJsaWMgdWlu dDMyIGdldF9sYXN0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NoYXBlX2V2ZW50 X2Jhc2UgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1cnJlbnQg KE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGlj IEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0 eXBlLCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu V2luZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdv cmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9vbCBiYWNrd2FyZCk7CistCQlwdWJsaWMg dW5vd25lZCBYLkRpc3BsYXkgZ2V0X3hkaXNwbGF5ICgpOworLQkJcHVibGljIGludCBnZXRfeGlu cHV0X29wY29kZSAoKTsKKy0JCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBh Y2NlbGVyYXRvcik7CistCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7CistCQlwdWJsaWMgYm9v bCBpc19wb2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBz ZXF1ZW5jZSk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkdyb3VwIGxvb2t1cF9ncm91cCAoWC5X aW5kb3cgZ3JvdXBfbGVhZGVyKTsKKy0JCXB1YmxpYyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChz dHJpbmcgbmFtZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXNfd2luZG93IChNZXRh LldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJ cHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNr aW5nIChHTGliLlNMaXN0PE1ldGEuV2luZG93PiB3aW5kb3dzKTsKKy0JCXB1YmxpYyBib29sIHN1 cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJzICgpOworLQkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5 Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJh dG9yICh1aW50IGFjdGlvbl9pZCk7CistCQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgdW5tYW5hZ2Vfc2NyZWVuIChNZXRhLlNj cmVlbiBzY3JlZW4sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgeHNlcnZlcl90 aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworLQkJcHVibGljIGJv b2wgeHdpbmRvd19pc19hX25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRvdyk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgdWlu dCBwMCwgdWludCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9iZWdpbiAoTWV0 YS5TY3JlZW4gb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfZW5kIChNZXRhLlNjcmVlbiBvYmplY3QsIE1ldGEuV2lu ZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJz X2FjY2VsZXJhdG9yX2FjdGl2YXRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5 X2tleSAoKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCByZXN0YXJ0ICgpOworLQkJcHVibGljIHNp Z25hbCBib29sIHNob3dfcmVzaXplX3BvcHVwIChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5nbGUg cDAsIGludCBwMSwgaW50IHAyKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3RhcnRf bWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3df Y3JlYXRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5k b3dfZGVtYW5kc19hdHRlbnRpb24gKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgd2luZG93X21hcmtlZF91cmdlbnQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiKV0KKy0JW0NvbXBh Y3RdCistCXB1YmxpYyBjbGFzcyBGcmFtZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvZ3JvdXAuaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEdyb3Vw IHsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NpemUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3N0YXJ0dXBfaWQgKCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93 PiBsaXN0X3dpbmRvd3MgKCk7CistCQlwdWJsaWMgYm9vbCBwcm9wZXJ0eV9ub3RpZnkgKFguRXZl bnQgZXZlbnQpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX2xheWVycyAoKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oIiwgdHlwZV9p ZCA9ICJtZXRhX2lkbGVfbW9uaXRvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgSWRs ZU1vbml0b3IgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgSWRsZU1vbml0b3IgKCk7CistCQlwdWJsaWMgdWlu dCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1v bml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2 ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50 IGRldmljZV9pZCk7CistCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworLQkJcHVibGlj IHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2tleWJpbmRpbmdzLmgiLCBjb3B5X2Z1bmN0aW9uID0g ImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9 ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgS2V5QmluZGluZyB7CistCQlwdWJsaWMgdWludCBnZXRfbWFzayAoKTsKKy0JCXB1Ymxp YyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW9kaWZpZXJzICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIGJvb2wgaXNfYnVpbHRpbiAoKTsKKy0J CXB1YmxpYyBib29sIGlzX3JldmVyc2VkICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1 c3RvbV9oYW5kbGVyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVy IChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCIsIHR5cGVfaWQgPSAibWV0YV9tb25pdG9yX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGFic3RyYWN0IGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5EQnVzSW50ZXJmYWNlU2tl bGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgTW9uaXRvck1hbmFnZXIgKCk7CistCQlwdWJs aWMgc3RhdGljIHVub3duZWQgTWV0YS5Nb25pdG9yTWFuYWdlciBAZ2V0ICgpOworLQkJcHVibGlj IGludCBnZXRfbW9uaXRvcl9mb3Jfb3V0cHV0ICh1aW50IGlkKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCB0eXBlX2lkID0gIm1ldGFfcGx1Z2luX2dl dF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQbHVnaW4gOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgUGx1Z2luICgpOworLQkJcHVibGljIGJvb2wgYmVnaW5fbW9kYWwgKE1ldGEuTW9kYWxP cHRpb25zIG9wdGlvbnMsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgY29tcGxl dGVfZGlzcGxheV9jaGFuZ2UgKGJvb2wgb2spOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3kgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOwor LQkJcHVibGljIHZvaWQgZGVzdHJveV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3Ip OworLQkJcHVibGljIHZvaWQgZW5kX21vZGFsICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gZ2V0X2luZm8gKCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLlNjcmVlbiBnZXRfc2NyZWVuICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgYm9vbCBrZXliaW5kaW5nX2ZpbHRlciAoTWV0YS5LZXlCaW5kaW5nIGJpbmRp bmcpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF9zd2l0Y2hf d29ya3NwYWNlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2ls bF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgc3Rh dGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0b3Ig YWN0b3IpOworLQkJcHVibGljIHZvaWQgbWFwX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBh Y3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtaW5pbWl6ZSAo TWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZV9jb21wbGV0 ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBwbHVnaW5faW5mbyAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfdGlsZV9wcmV2aWV3IChNZXRhLldp bmRvdyB3aW5kb3csIE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50IHRpbGVfbW9uaXRvcl9u dW1iZXIpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193aW5k b3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIGlu dCB4LCBpbnQgeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93 X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVu dVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZSAoTWV0YS5XaW5kb3dBY3RvciBhY3RvciwgTWV0 YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3JlY3Qs IE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaXplX2No YW5nZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RhcnQgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChpbnQgZnJvbSwgaW50IHRvLCBNZXRh Lk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIHZvaWQgc3dpdGNoX3dvcmtz cGFjZV9jb21wbGV0ZWQgKCk7CistIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgdW5taW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCB1 bm1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCB4ZXZlbnRfZmlsdGVyIChYLkV2ZW50IGV2ZW50 KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9zY3JlZW4uaCIsIHR5 cGVfaWQgPSAibWV0YV9zY3JlZW5fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNjcmVl biA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXByb3RlY3RlZCBTY3JlZW4gKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldv cmtzcGFjZT8gYXBwZW5kX25ld193b3Jrc3BhY2UgKGJvb2wgYWN0aXZhdGUsIHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIHZvaWQgZm9jdXNfZGVmYXVsdF93aW5kb3cgKHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X2FjdGl2ZV93b3Jr c3BhY2UgKCk7CistCQlwdWJsaWMgaW50IGdldF9hY3RpdmVfd29ya3NwYWNlX2luZGV4ICgpOwor LQkJcHVibGljIGludCBnZXRfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIGludCBnZXRf Y3VycmVudF9tb25pdG9yX2Zvcl9wb3MgKGludCB4LCBpbnQgeSk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUg Z2V0X21vbml0b3JfZ2VvbWV0cnkgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyBib29sIGdldF9t b25pdG9yX2luX2Z1bGxzY3JlZW4gKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21v bml0b3JfaW5kZXhfZm9yX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIGlu dCBnZXRfbW9uaXRvcl9uZWlnaGJvcl9pbmRleCAoaW50IHdoaWNoX21vbml0b3IsIE1ldGEuU2Ny ZWVuRGlyZWN0aW9uIGRpcik7CistCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOworLQkJ cHVibGljIGludCBnZXRfbl93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGludCBnZXRfcHJpbWFy eV9tb25pdG9yICgpOworLQkJcHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKy0JCXB1 YmxpYyB2b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50 IGluZGV4KTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxNZXRhLldvcmtzcGFjZT4gZ2V0 X3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hyb290ICgpOworLQkJcHVi bGljIHZvaWQgb3ZlcnJpZGVfd29ya3NwYWNlX2xheW91dCAoTWV0YS5TY3JlZW5Db3JuZXIgc3Rh cnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29s dW1ucyk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3 b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgc2V0X2NtX3NlbGVj dGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1ldGEuQ3Vyc29yIGN1cnNvcik7 CistCQlwdWJsaWMgaW50IG5fd29ya3NwYWNlcyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2 b2lkIGluX2Z1bGxzY3JlZW5fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBtb25p dG9yc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3RhY2tlZCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBzdGFydHVwX3NlcXVlbmNlX2NoYW5nZWQgKHZvaWQqIG9iamVj dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2VudGVyZWRfbW9uaXRvciAoaW50IG9i amVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19sZWZ0 X21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3Bh Y2VfYWRkZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9y ZW1vdmVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vfc3dp dGNoZWQgKGludCBvYmplY3QsIGludCBwMCwgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gcDEpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hh ZG93X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0K Ky0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworLQkJcHVibGljIHZvaWQgZ2V0 X2JvdW5kcyAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGlu dCB3aW5kb3dfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1YmxpYyB2 b2lkIHBhaW50IChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwg aW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9v bCBjbGlwX3N0cmljdGx5KTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBAcmVmICgpOworLQkJcHVi bGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19mYWN0b3J5 X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFkb3dGYWN0b3J5IDogR0xpYi5PYmpl Y3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVi bGljIFNoYWRvd0ZhY3RvcnkgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5TaGFk b3dGYWN0b3J5IGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIE1ldGEuU2hhZG93UGFyYW1zIGdl dF9wYXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIE1l dGEuU2hhZG93IGdldF9zaGFkb3cgKE1ldGEuV2luZG93U2hhcGUgc2hhcGUsIGludCB3aWR0aCwg aW50IGhlaWdodCwgc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMg dm9pZCBzZXRfcGFyYW1zIChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkLCBNZXRhLlNo YWRvd1BhcmFtcyBAcGFyYW1zKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRv ciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0X2lt YWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRl eHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMg KGJvb2wgY3JlYXRlX21pcG1hcHMpOworLQkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAo Q29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3Jl Z2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wg dXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdGhlbWUuaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNz IFRoZW1lIHsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlRo ZW1lIGdldF9kZWZhdWx0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5UaGVtZSBAbmV3ICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgdHlwZV9p ZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg V2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvdyAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2 YXRlICh1aW50MzIgY3VycmVudF90aW1lKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlX3dpdGhf d29ya3NwYWNlICh1aW50MzIgY3VycmVudF90aW1lLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Up OworLQkJcHVibGljIGJvb2wgYWxsb3dzX21vdmUgKCk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3Nf cmVzaXplICgpOworLQkJcHVibGljIHZvaWQgYmVnaW5fZ3JhYl9vcCAoTWV0YS5HcmFiT3Agb3As IGJvb2wgZnJhbWVfYWN0aW9uLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIGNh bl9jbG9zZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9tYXhpbWl6ZSAoKTsKKy0JCXB1YmxpYyBi b29sIGNhbl9taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9zaGFkZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7Cist CQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgc3BhY2VfaW5kZXgs IGJvb2wgYXBwZW5kKTsKKy0JCXB1YmxpYyB2b2lkIGNoZWNrX2FsaXZlICh1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdF90b19mcmFtZV9yZWN0 IChNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdCk7CistCQlwdWJsaWMgdm9pZCBjb21wdXRlX2dy b3VwICgpOworLQkJcHVibGljIHZvaWQgQGRlbGV0ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBmaW5kX3Jvb3RfYW5jZXN0b3IgKCk7CistCQlwdWJs aWMgdm9pZCBmb2N1cyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNo X2FuY2VzdG9yIChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVibGljIHZvaWQg Zm9yZWFjaF90cmFuc2llbnQgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVjdCAoTWV0YS5SZWN0YW5n bGUgZnJhbWVfcmVjdCk7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aF9wb3MgPSAwLjEsIGFycmF5 X2xlbmd0aF90eXBlID0gImdzaXplIildCistCQlwdWJsaWMgaW50W10gZ2V0X2FsbF9tb25pdG9y cyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfYnVmZmVyX3JlY3QgKCk7CistCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2NsaWVudF9tYWNoaW5lICgpOworLQkJcHVibGljIHVu b3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkZyYW1lIGdl dF9mcmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENhaXJvLlJlZ2lvbj8gZ2V0X2ZyYW1lX2Jv dW5kcyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfZnJhbWVfcmVjdCAoKTsKKy0J CXB1YmxpYyBNZXRhLkZyYW1lVHlwZSBnZXRfZnJhbWVfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuR3JvdXAgZ2V0X2dyb3VwICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9ndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2d0a19hcHBsaWNhdGlvbl9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf Z3RrX2FwcGxpY2F0aW9uX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9ndGtfbWVudWJhcl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfZ3RrX3RoZW1lX3ZhcmlhbnQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2d0a191bmlxdWVfYnVzX25hbWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0 a193aW5kb3dfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfaWNvbl9nZW9tZXRy eSAob3V0IE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIE1ldGEuU3RhY2tMYXllciBn ZXRfbGF5ZXIgKCk7CistCQlwdWJsaWMgTWV0YS5NYXhpbWl6ZUZsYWdzIGdldF9tYXhpbWl6ZWQg KCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9tdXR0ZXJfaGludHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9waWQgKCk7CistCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3JvbGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LlNjcmVlbiBnZXRfc2NyZWVuICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3N0YWJsZV9zZXF1ZW5j ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuV2luZG93PyBnZXRfdGlsZV9tYXRjaCAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRv dyBnZXRfdHJhbnNpZW50X2ZvciAoKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X3VzZXJfdGltZSAo KTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgZ2V0X3dpbmRvd190eXBlICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfd21fY2xhc3NfaW5zdGFuY2UgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUg Z2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUg Z2V0X3dvcmtfYXJlYV9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5n bGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBY LldpbmRvdyBnZXRfeHdpbmRvdyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdyb3VwX2xlYWRlcl9jaGFu Z2VkICgpOworLQkJcHVibGljIGJvb2wgaGFzX2ZvY3VzICgpOworLQkJcHVibGljIGJvb2wgaXNf YWJvdmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbHdheXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19hbmNlc3Rvcl9vZl90cmFuc2llbnQgKE1ldGEuV2luZG93IHRy YW5zaWVudCk7CistCQlwdWJsaWMgYm9vbCBpc19hdHRhY2hlZF9kaWFsb2cgKCk7CistCQlwdWJs aWMgYm9vbCBpc19mdWxsc2NyZWVuICgpOworLQkJcHVibGljIGJvb2wgaXNfaGlkZGVuICgpOwor LQkJcHVibGljIGJvb2wgaXNfbW9uaXRvcl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29u X2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fcHJpbWFyeV9tb25pdG9y ICgpOworLQkJcHVibGljIGJvb2wgaXNfb3ZlcnJpZGVfcmVkaXJlY3QgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19yZW1vdGUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zY3JlZW5fc2l6ZWQgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19zaGFkZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19za2lwX3Rhc2ti YXIgKCk7CistCQlwdWJsaWMgdm9pZCBraWxsICgpOworLQkJcHVibGljIGJvb2wgbG9jYXRlZF9v bl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBs b3dlciAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfYWJvdmUgKCk7CistCQlwdWJsaWMgdm9pZCBt YWtlX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCBtYXhpbWl6ZSAoTWV0YS5NYXhpbWl6 ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgbWluaW1pemUgKCk7CistCQlwdWJs aWMgdm9pZCBtb3ZlX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290 X3lfbncpOworLQkJcHVibGljIHZvaWQgbW92ZV9yZXNpemVfZnJhbWUgKGJvb2wgdXNlcl9vcCwg aW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywgaW50IHcsIGludCBoKTsKKy0JCXB1YmxpYyB2 b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgcmFpc2Ug KCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlw dWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUgKEdMaWIuT2JqZWN0IHByaXYpOworLQkJcHVi bGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2lj b25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyByZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNoYWRl ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNob3ZlX3RpdGxlYmFyX29uc2Ny ZWVuICgpOworLQkJcHVibGljIGJvb2wgc2hvd2luZ19vbl9pdHNfd29ya3NwYWNlICgpOworLQkJ cHVibGljIHZvaWQgc2h1dGRvd25fZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBzdGljayAoKTsK Ky0JCXB1YmxpYyBib29sIHRpdGxlYmFyX2lzX29uc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQg dW5tYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgdW5tYWtlX2Z1bGxzY3JlZW4gKCk7Cist CQlwdWJsaWMgdm9pZCB1bm1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0aW9ucyk7 CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplICgpOworLQkJcHVibGljIHZvaWQgdW5zZXRfZGVt YW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCB1bnNoYWRlICh1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVuc3RpY2sgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIGFib3ZlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBib29sIGFwcGVhcnNfZm9jdXNlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBkZWNvcmF0ZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgZGVtYW5kc19hdHRlbnRpb24geyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVlbiB7IGdldDsgfQorLQkJcHVi bGljIHN0cmluZyBndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBz dHJpbmcgZ3RrX2FwcGxpY2F0aW9uX2lkIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19h cHBsaWNhdGlvbl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfbWVu dWJhcl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfdW5pcXVlX2J1 c19uYW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a193aW5kb3dfb2JqZWN0X3BhdGgg eyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENhaXJvLlN1cmZhY2Ug aWNvbiB7IG93bmVkIGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9v bCBtYXhpbWl6ZWRfaG9yaXpvbnRhbGx5IHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIG1heGltaXplZF92ZXJ0aWNhbGx5IHsgZ2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIG1pbmlfaWNvbiB7IG93bmVkIGdl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtaW5pbWl6ZWQgeyBn ZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgbXV0dGVyX2hpbnRzIHsgZ2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG9uX2FsbF93b3Jrc3BhY2VzIHsgZ2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlc2l6ZWFibGUgeyBnZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgc2tpcF90YXNrYmFyIHsgZ2V0 OyB9CistCQlwdWJsaWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIHVyZ2VudCB7IGdldDsgfQorLQkJcHVibGljIHVpbnQgdXNlcl90 aW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIHdpbmRvd190eXBlIHsgZ2V0 OyB9CistCQlwdWJsaWMgc3RyaW5nIHdtX2NsYXNzIHsgZ2V0OyB9CistCQlbQ0NvZGUgKGNuYW1l ID0gImZvY3VzIildCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZm9jdXNlZCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBwb3NpdGlvbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHJhaXNlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdv cmtzcGFjZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2FjdG9yX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3Is IEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93 ICgpOworLQkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgc3RyaW5nIHNoYWRvd19jbGFzcyB7IG93bmVkIGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hhZG93X21v ZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGZpcnN0X2ZyYW1lICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGFfd2luZG93X3NoYXBl LmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfcmVmIiwgdHlwZV9pZCA9ICJt ZXRhX3dpbmRvd19zaGFwZV9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfd2lu ZG93X3NoYXBlX3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgV2luZG93U2hh cGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVi bGljIFdpbmRvd1NoYXBlIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIGVx dWFsIChNZXRhLldpbmRvd1NoYXBlIHNoYXBlX2IpOworLQkJcHVibGljIHZvaWQgZ2V0X2JvcmRl cnMgKGludCBib3JkZXJfdG9wLCBpbnQgYm9yZGVyX3JpZ2h0LCBpbnQgYm9yZGVyX2JvdHRvbSwg aW50IGJvcmRlcl9sZWZ0KTsKKy0JCXB1YmxpYyB1aW50IGhhc2ggKCk7CistCQlwdWJsaWMgTWV0 YS5XaW5kb3dTaGFwZSBAcmVmICgpOworLQkJcHVibGljIENhaXJvLlJlZ2lvbiB0b19yZWdpb24g KGludCBjZW50ZXJfd2lkdGgsIGludCBjZW50ZXJfaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIHVu cmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dvcmtzcGFj ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dvcmtzcGFjZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgV29ya3NwYWNlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdvcmtzcGFjZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIGFjdGl2YXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2 YXRlX3dpdGhfZm9jdXMgKE1ldGEuV2luZG93IGZvY3VzX3RoaXMsIHVpbnQzMiB0aW1lc3RhbXAp OworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X25laWdoYm9yIChNZXRhLk1v dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIHVub3duZWQgTWV0YS5TY3JlZW4g Z2V0X3NjcmVlbiAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Fs bF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zv cl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGluZGV4ICgpOwor LQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBsaXN0X3dpbmRvd3MgKCk7Cist CQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD4g c3RydXRzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgbl93aW5kb3dz IHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHdvcmtzcGFj ZV9pbmRleCB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19hZGRlZCAoTWV0 YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfcmVtb3ZlZCAo TWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEJ1 dHRvbkxheW91dCB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxs X3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb25b XSBsZWZ0X2J1dHRvbnM7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9u dWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2xbXSBsZWZ0X2J1dHRv bnNfaGFzX3NwYWNlcjsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251 bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlv bltdIHJpZ2h0X2J1dHRvbnM7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJh eV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2xbXSByaWdodF9i dXR0b25zX2hhc19zcGFjZXI7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEVkZ2Ug eworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0YS5TaWRlIHNp ZGVfdHlwZTsKKy0JCXB1YmxpYyBNZXRhLkVkZ2VUeXBlIGVkZ2VfdHlwZTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CistCQlwdWJsaWMgR3RrLkJvcmRl ciB2aXNpYmxlOworLQkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxlOworLQkJcHVibGljIEd0 ay5Cb3JkZXIgdG90YWw7CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luSW5mbyB7CistCQlwdWJsaWMgd2VhayBzdHJp bmcgbmFtZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyB2ZXJzaW9uOworLQkJcHVibGljIHdlYWsg c3RyaW5nIGF1dGhvcjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNlbnNlOworLQkJcHVibGlj IHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IHN0cnVjdCBQbHVnaW5WZXJzaW9uIHsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7Cist CQlwdWJsaWMgdWludCB2ZXJzaW9uX21pbm9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNy bzsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IHN0cnVjdCBSZWN0YW5nbGUgeworLQkJcHVibGljIGludCB4OworLQkJcHVibGljIGludCB5Owor LQkJcHVibGljIGludCB3aWR0aDsKKy0JCXB1YmxpYyBpbnQgaGVpZ2h0OworLQkJcHVibGljIGlu dCBhcmVhICgpOworLQkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoTWV0YS5SZWN0YW5nbGUg aW5uZXJfcmVjdCk7CistCQlwdWJsaWMgYm9vbCBjb3VsZF9maXRfcmVjdCAoTWV0YS5SZWN0YW5n bGUgaW5uZXJfcmVjdCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbCAoTWV0YS5SZWN0YW5nbGUgc3Jj Mik7CistCQlwdWJsaWMgYm9vbCBob3Jpel9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7 CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3QgKE1ldGEuUmVjdGFuZ2xlIHNyYzIsIG91dCBNZXRh LlJlY3RhbmdsZSBkZXN0KTsKKy0JCXB1YmxpYyBib29sIG92ZXJsYXAgKE1ldGEuUmVjdGFuZ2xl IHJlY3QyKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUg cmVjdDIpOworLQkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0 Mik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU2hhZG93 UGFyYW1zIHsKKy0JCXB1YmxpYyBpbnQgcmFkaXVzOworLQkJcHVibGljIGludCB0b3BfZmFkZTsK Ky0JCXB1YmxpYyBpbnQgeF9vZmZzZXQ7CistCQlwdWJsaWMgaW50IHlfb2Zmc2V0OworLQkJcHVi bGljIHVpbnQ4IG9wYWNpdHk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFN0cnV0 IHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBz aWRlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIs IGNwcmVmaXggPSAiTUVUQV9CQVJSSUVSX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYmFy cmllcl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBC YXJyaWVyRGlyZWN0aW9uIHsKKy0JCVBPU0lUSVZFX1gsCistCQlQT1NJVElWRV9ZLAorLQkJTkVH QVRJVkVfWCwKKy0JCU5FR0FUSVZFX1kKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51 bSBCdXR0b25GdW5jdGlvbiB7CistCQlNRU5VLAorLQkJTUlOSU1JWkUsCistCQlNQVhJTUlaRSwK Ky0JCUNMT1NFLAorLQkJU0hBREUsCistCQlBQk9WRSwKKy0JCVNUSUNLLAorLQkJVU5TSEFERSwK Ky0JCVVOQUJPVkUsCistCQlVTlNUSUNLLAorLQkJQVBQTUVOVSwKKy0JCUxBU1QKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0g Ik1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIENvbXBFZmZlY3QgeworLQkJQ1JFQVRFLAorLQkJVU5NSU5J TUlaRSwKKy0JCURFU1RST1ksCistCQlNSU5JTUlaRSwKKy0JCU5PTkUKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9DVVJT T1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51 bSBDdXJzb3IgeworLQkJTk9ORSwKKy0JCURFRkFVTFQsCistCQlOT1JUSF9SRVNJWkUsCistCQlT T1VUSF9SRVNJWkUsCistCQlXRVNUX1JFU0laRSwKKy0JCUVBU1RfUkVTSVpFLAorLQkJU0VfUkVT SVpFLAorLQkJU1dfUkVTSVpFLAorLQkJTkVfUkVTSVpFLAorLQkJTldfUkVTSVpFLAorLQkJTU9W RV9PUl9SRVNJWkVfV0lORE9XLAorLQkJQlVTWSwKKy0JCURORF9JTl9EUkFHLAorLQkJRE5EX01P VkUsCistCQlETkRfQ09QWSwKKy0JCURORF9VTlNVUFBPUlRFRF9UQVJHRVQsCistCQlQT0lOVElO R19IQU5ELAorLQkJQ1JPU1NIQUlSLAorLQkJSUJFQU0sCistCQlMQVNUCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0RFQlVH XyIsIHR5cGVfaWQgPSAibWV0YV9kZWJ1Z190b3BpY19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3Nd CistCXB1YmxpYyBlbnVtIERlYnVnVG9waWMgeworLQkJVkVSQk9TRSwKKy0JCUZPQ1VTLAorLQkJ V09SS0FSRUEsCistCQlTVEFDSywKKy0JCVRIRU1FUywKKy0JCVNNLAorLQkJRVZFTlRTLAorLQkJ V0lORE9XX1NUQVRFLAorLQkJV0lORE9XX09QUywKKy0JCUdFT01FVFJZLAorLQkJUExBQ0VNRU5U LAorLQkJUElORywKKy0JCVhJTkVSQU1BLAorLQkJS0VZQklORElOR1MsCistCQlTWU5DLAorLQkJ RVJST1JTLAorLQkJU1RBUlRVUCwKKy0JCVBSRUZTLAorLQkJR1JPVVBTLAorLQkJUkVTSVpJTkcs CistCQlTSEFQRVMsCistCQlDT01QT1NJVE9SLAorLQkJRURHRV9SRVNJU1RBTkNFLAorLQkJREJV UworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3By ZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0aW9uX2dldF90 eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGlyZWN0aW9uIHsKKy0JCUxFRlQs CistCQlSSUdIVCwKKy0JCVRPUCwKKy0JCUJPVFRPTSwKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUhP UklaT05UQUwsCistCQlWRVJUSUNBTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JveGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFf ZWRnZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEVkZ2VUeXBlIHsKKy0JCVdJ TkRPVywKKy0JCU1PTklUT1IsCistCQlTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRVhJVF8iLCB0eXBlX2lkID0g Im1ldGFfZXhpdF9jb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEV4aXRDb2RlIHsK Ky0JCVNVQ0NFU1MsCistCQlFUlJPUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0 YV9mcmFtZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEZy YW1lRmxhZ3MgeworLQkJQUxMT1dTX0RFTEVURSwKKy0JCUFMTE9XU19NRU5VLAorLQkJQUxMT1dT X0FQUE1FTlUsCistCQlBTExPV1NfTUlOSU1JWkUsCistCQlBTExPV1NfTUFYSU1JWkUsCistCQlB TExPV1NfVkVSVElDQUxfUkVTSVpFLAorLQkJQUxMT1dTX0hPUklaT05UQUxfUkVTSVpFLAorLQkJ SEFTX0ZPQ1VTLAorLQkJU0hBREVELAorLQkJU1RVQ0ssCistCQlNQVhJTUlaRUQsCistCQlBTExP V1NfU0hBREUsCistCQlBTExPV1NfTU9WRSwKKy0JCUZVTExTQ1JFRU4sCistCQlJU19GTEFTSElO RywKKy0JCUFCT1ZFLAorLQkJVElMRURfTEVGVCwKKy0JCVRJTEVEX1JJR0hUCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFf RlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBGcmFtZVR5cGUgeworLQkJTk9STUFMLAorLQkJRElBTE9HLAorLQkJTU9E QUxfRElBTE9HLAorLQkJVVRJTElUWSwKKy0JCU1FTlUsCistCQlCT1JERVIsCistCQlBVFRBQ0hF RCwKKy0JCUxBU1Q7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nIChNZXRhLkZyYW1l VHlwZSB0eXBlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29w X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEdyYWJPcCB7CistCQlOT05FLAorLQkJQ09N UE9TSVRPUiwKKy0JCVdBWUxBTkRfUE9QVVAsCistCQlXSU5ET1dfQkFTRSwKKy0JCUZSQU1FX0JV VFRPTiwKKy0JCU1PVklORywKKy0JCVJFU0laSU5HX05XLAorLQkJUkVTSVpJTkdfTiwKKy0JCVJF U0laSU5HX05FLAorLQkJUkVTSVpJTkdfRSwKKy0JCVJFU0laSU5HX1NXLAorLQkJUkVTSVpJTkdf UywKKy0JCVJFU0laSU5HX1NFLAorLQkJUkVTSVpJTkdfVywKKy0JCUtFWUJPQVJEX01PVklORywK Ky0JCUtFWUJPQVJEX1JFU0laSU5HX1VOS05PV04sCistCQlLRVlCT0FSRF9SRVNJWklOR19OVywK Ky0JCUtFWUJPQVJEX1JFU0laSU5HX04sCistCQlLRVlCT0FSRF9SRVNJWklOR19ORSwKKy0JCUtF WUJPQVJEX1JFU0laSU5HX0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19TVywKKy0JCUtFWUJPQVJE X1JFU0laSU5HX1MsCistCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKy0JCUtFWUJPQVJEX1JFU0la SU5HX1cKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y3ByZWZpeCA9ICJNRVRBX0tFWUJJTkRJTkdfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlf YmluZGluZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0Fj dGlvbiB7CistCQlOT05FLAorLQkJV09SS1NQQUNFXzEsCistCQlXT1JLU1BBQ0VfMiwKKy0JCVdP UktTUEFDRV8zLAorLQkJV09SS1NQQUNFXzQsCistCQlXT1JLU1BBQ0VfNSwKKy0JCVdPUktTUEFD RV82LAorLQkJV09SS1NQQUNFXzcsCistCQlXT1JLU1BBQ0VfOCwKKy0JCVdPUktTUEFDRV85LAor LQkJV09SS1NQQUNFXzEwLAorLQkJV09SS1NQQUNFXzExLAorLQkJV09SS1NQQUNFXzEyLAorLQkJ V09SS1NQQUNFX0xFRlQsCistCQlXT1JLU1BBQ0VfUklHSFQsCistCQlXT1JLU1BBQ0VfVVAsCist CQlXT1JLU1BBQ0VfRE9XTiwKKy0JCVdPUktTUEFDRV9MQVNULAorLQkJU1dJVENIX0FQUExJQ0FU SU9OUywKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlNfQkFDS1dBUkQsCistCQlTV0lUQ0hfR1JPVVAs CistCQlTV0lUQ0hfR1JPVVBfQkFDS1dBUkQsCistCQlTV0lUQ0hfV0lORE9XUywKKy0JCVNXSVRD SF9XSU5ET1dTX0JBQ0tXQVJELAorLQkJU1dJVENIX1BBTkVMUywKKy0JCVNXSVRDSF9QQU5FTFNf QkFDS1dBUkQsCistCQlDWUNMRV9HUk9VUCwKKy0JCUNZQ0xFX0dST1VQX0JBQ0tXQVJELAorLQkJ Q1lDTEVfV0lORE9XUywKKy0JCUNZQ0xFX1dJTkRPV1NfQkFDS1dBUkQsCistCQlDWUNMRV9QQU5F TFMsCistCQlDWUNMRV9QQU5FTFNfQkFDS1dBUkQsCistCQlTSE9XX0RFU0tUT1AsCistCQlQQU5F TF9NQUlOX01FTlUsCistCQlQQU5FTF9SVU5fRElBTE9HLAorLQkJVE9HR0xFX1JFQ09SRElORywK Ky0JCVNFVF9TUEVXX01BUkssCistCQlBQ1RJVkFURV9XSU5ET1dfTUVOVSwKKy0JCVRPR0dMRV9G VUxMU0NSRUVOLAorLQkJVE9HR0xFX01BWElNSVpFRCwKKy0JCVRPR0dMRV9USUxFRF9MRUZULAor LQkJVE9HR0xFX1RJTEVEX1JJR0hULAorLQkJVE9HR0xFX0FCT1ZFLAorLQkJTUFYSU1JWkUsCist CQlVTk1BWElNSVpFLAorLQkJVE9HR0xFX1NIQURFRCwKKy0JCU1JTklNSVpFLAorLQkJQ0xPU0Us CistCQlCRUdJTl9NT1ZFLAorLQkJQkVHSU5fUkVTSVpFLAorLQkJVE9HR0xFX09OX0FMTF9XT1JL U1BBQ0VTLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzIs CistCQlNT1ZFX1RPX1dPUktTUEFDRV8zLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNCwKKy0JCU1P VkVfVE9fV09SS1NQQUNFXzUsCistCQlNT1ZFX1RPX1dPUktTUEFDRV82LAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfNywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzgsCistCQlNT1ZFX1RPX1dPUktTUEFD RV85LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTAsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMSwK Ky0JCU1PVkVfVE9fV09SS1NQQUNFXzEyLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfTEVGVCwKKy0J CU1PVkVfVE9fV09SS1NQQUNFX1JJR0hULAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfVVAsCistCQlN T1ZFX1RPX1dPUktTUEFDRV9ET1dOLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfTEFTVCwKKy0JCU1P VkVfVE9fTU9OSVRPUl9MRUZULAorLQkJTU9WRV9UT19NT05JVE9SX1JJR0hULAorLQkJTU9WRV9U T19NT05JVE9SX1VQLAorLQkJTU9WRV9UT19NT05JVE9SX0RPV04sCistCQlSQUlTRV9PUl9MT1dF UiwKKy0JCVJBSVNFLAorLQkJTE9XRVIsCistCQlNQVhJTUlaRV9WRVJUSUNBTExZLAorLQkJTUFY SU1JWkVfSE9SSVpPTlRBTExZLAorLQkJTU9WRV9UT19DT1JORVJfTlcsCistCQlNT1ZFX1RPX0NP Uk5FUl9ORSwKKy0JCU1PVkVfVE9fQ09STkVSX1NXLAorLQkJTU9WRV9UT19DT1JORVJfU0UsCist CQlNT1ZFX1RPX1NJREVfTiwKKy0JCU1PVkVfVE9fU0lERV9TLAorLQkJTU9WRV9UT19TSURFX0Us CistCQlNT1ZFX1RPX1NJREVfVywKKy0JCU1PVkVfVE9fQ0VOVEVSLAorLQkJT1ZFUkxBWV9LRVks CistCQlJU09fTkVYVF9HUk9VUCwKKy0JCUFMV0FZU19PTl9UT1AsCistCQlMQVNUCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVU QV9LRVlfQklORElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5 cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nRmxhZ3MgeworLQkJ Tk9ORSwKKy0JCVBFUl9XSU5ET1csCistCQlCVUlMVElOLAorLQkJSVNfUkVWRVJTRUQKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1F VEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gTGF0ZXJUeXBlIHsKKy0JCVJFU0laRSwKKy0JCUNBTENfU0hPV0lORywKKy0J CUNIRUNLX0ZVTExTQ1JFRU4sCistCQlTWU5DX1NUQUNLLAorLQkJQkVGT1JFX1JFRFJBVywKKy0J CUlETEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBj cHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxl X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMb2NhbGVEaXJlY3Rpb24g eworLQkJTFRSLAorLQkJUlRMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwgdHlwZV9pZCA9ICJtZXRh X21heGltaXplX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0g TWF4aW1pemVGbGFncyB7CistCQlIT1JJWk9OVEFMLAorLQkJVkVSVElDQUwsCistCQlCT1RICist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGNw cmVmaXggPSAiTUVUQV9NT0RBTF8iLCB0eXBlX2lkID0gIm1ldGFfbW9kYWxfb3B0aW9uc19nZXRf dHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIE1vZGFsT3B0aW9ucyB7CistCQlQ T0lOVEVSX0FMUkVBRFlfR1JBQkJFRCwKKy0JCUtFWUJPQVJEX0FMUkVBRFlfR1JBQkJFRAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVjdGlvbl9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBNb3Rpb25EaXJlY3Rpb24geworLQkJVVAsCistCQlET1dO LAorLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVVBfTEVGVCwKKy0JCVVQX1JJR0hULAorLQkJRE9X Tl9MRUZULAorLQkJRE9XTl9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfUFJFRl8iLCB0eXBlX2lkID0gIm1ldGFf cHJlZmVyZW5jZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBQcmVmZXJlbmNlIHsKKy0J CU1PVVNFX0JVVFRPTl9NT0RTLAorLQkJRk9DVVNfTU9ERSwKKy0JCUZPQ1VTX05FV19XSU5ET1dT LAorLQkJQVRUQUNIX01PREFMX0RJQUxPR1MsCistCQlSQUlTRV9PTl9DTElDSywKKy0JCUFDVElP Tl9ET1VCTEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJT05fTUlERExFX0NMSUNLX1RJVExFQkFS LAorLQkJQUNUSU9OX1JJR0hUX0NMSUNLX1RJVExFQkFSLAorLQkJQVVUT19SQUlTRSwKKy0JCUFV VE9fUkFJU0VfREVMQVksCistCQlGT0NVU19DSEFOR0VfT05fUE9JTlRFUl9SRVNULAorLQkJVElU TEVCQVJfRk9OVCwKKy0JCU5VTV9XT1JLU1BBQ0VTLAorLQkJRFlOQU1JQ19XT1JLU1BBQ0VTLAor LQkJS0VZQklORElOR1MsCistCQlESVNBQkxFX1dPUktBUk9VTkRTLAorLQkJQlVUVE9OX0xBWU9V VCwKKy0JCVdPUktTUEFDRV9OQU1FUywKKy0JCVZJU1VBTF9CRUxMLAorLQkJQVVESUJMRV9CRUxM LAorLQkJVklTVUFMX0JFTExfVFlQRSwKKy0JCUdOT01FX0FDQ0VTU0lCSUxJVFksCistCQlHTk9N RV9BTklNQVRJT05TLAorLQkJQ1VSU09SX1RIRU1FLAorLQkJQ1VSU09SX1NJWkUsCistCQlSRVNJ WkVfV0lUSF9SSUdIVF9CVVRUT04sCistCQlFREdFX1RJTElORywKKy0JCUZPUkNFX0ZVTExTQ1JF RU4sCistCQlXT1JLU1BBQ0VTX09OTFlfT05fUFJJTUFSWSwKKy0JCURSQUdHQUJMRV9CT1JERVJf V0lEVEgsCistCQlBVVRPX01BWElNSVpFLAorLQkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJB R19USFJFU0hPTEQ7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nIChNZXRhLlByZWZl cmVuY2UgcHJlZik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvc2Ny ZWVuLmgiLCBjcHJlZml4ID0gIk1FVEFfU0NSRUVOXyIsIHR5cGVfaWQgPSAibWV0YV9zY3JlZW5f Y29ybmVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNjcmVlbkNvcm5lciB7CistCQlU T1BMRUZULAorLQkJVE9QUklHSFQsCistCQlCT1RUT01MRUZULAorLQkJQk9UVE9NUklHSFQKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWVudW0tdHlwZXMuaCIs IGNwcmVmaXggPSAiTUVUQV9TQ1JFRU5fIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2NyZWVuRGlyZWN0aW9uIHsKKy0JCVVQ LAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtZW51bS10eXBlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURP V19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKy0JCUFVVE8sCistCQlGT1JDRURfT0ZGLAorLQkJRk9S Q0VEX09OCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgi LCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBTaWRlIHsKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVRPUCwK Ky0JCUJPVFRPTQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt ZW51bS10eXBlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAi bWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaXplQ2hhbmdl IHsKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCUZVTExTQ1JFRU4sCistCQlVTkZV TExTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU3RhY2tMYXllciB7CistCQlERVNLVE9QLAor LQkJQk9UVE9NLAorLQkJTk9STUFMLAorLQkJVE9QLAorLQkJRE9DSywKKy0JCUZVTExTQ1JFRU4s CistCQlGT0NVU0VEX1dJTkRPVywKKy0JCU9WRVJSSURFX1JFRElSRUNULAorLQkJTEFTVAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXgg PSAiTUVUQV9UQUJfTElTVF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gVGFiTGlzdCB7CistCQlOT1JNQUwsCistCQlET0NLUywKKy0JCUdS T1VQLAorLQkJTk9STUFMX0FMTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfU0hPV18iLCB0eXBlX2lkID0gIm1l dGFfdGFiX3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBUYWJTaG93VHlw ZSB7CistCQlJQ09OLAorLQkJSU5TVEFOVExZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfVklSVFVBTF8iLCB0eXBlX2lk ID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1 YmxpYyBlbnVtIFZpcnR1YWxNb2RpZmllciB7CistCQlTSElGVF9NQVNLLAorLQkJQ09OVFJPTF9N QVNLLAorLQkJQUxUX01BU0ssCistCQlNRVRBX01BU0ssCistCQlTVVBFUl9NQVNLLAorLQkJSFlQ RVJfTUFTSywKKy0JCU1PRDJfTUFTSywKKy0JCU1PRDNfTUFTSywKKy0JCU1PRDRfTUFTSywKKy0J CU1PRDVfTUFTSworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRv dy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1l dGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRv d0NsaWVudFR5cGUgeworLQkJV0FZTEFORCwKKy0JCVgxMQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19NRU5V XyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKy0JCVdNLAorLQkJQVBQCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lO RE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBXaW5kb3dUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURFU0tUT1AsCistCQlET0NLLAor LQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVE9PTEJBUiwKKy0JCU1FTlUsCistCQlV VElMSVRZLAorLQkJU1BMQVNIU0NSRUVOLAorLQkJRFJPUERPV05fTUVOVSwKKy0JCVBPUFVQX01F TlUsCistCQlUT09MVElQLAorLQkJTk9USUZJQ0FUSU9OLAorLQkJQ09NQk8sCistCQlETkQsCist CQlPVkVSUklERV9PVEhFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRvciBtb25pdG9y LCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGluc3RhbmNlX3BvcyA9IDUuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEtleUhh bmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5TY3JlZW4gc2NyZWVuLCBNZXRh LldpbmRvdz8gd2luZG93LCBDbHV0dGVyLktleUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5n IGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2Vk RnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS93aW5kb3cuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0 ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRf SUNPTl9OQU1FIildCistCXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFf SUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX0hFSUdIVDsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX1dJ RFRIIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIild CistCXB1YmxpYyBjb25zdCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSUNST19WRVJTSU9OIildCist CXB1YmxpYyBjb25zdCBpbnQgTUlDUk9fVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fSEVJR0hUIildCist CXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0K Ky0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQor LQlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIild CistCXB1YmxpYyBjb25zdCBpbnQgUExVR0lOX0FQSV9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9S RV9SRURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X1BSSU9SSVRZX1BSRUZTX05PVElGWSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1BS RUZTX05PVElGWTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklP UklUWV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJ T1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRCIpXQorLQlwdWJsaWMgY29u c3QgaW50IFZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9J RCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBi b29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CistIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfaW5pdCAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0 aW9uQ29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JlcGxhY2Vf Y3VycmVudF93bSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlzX3Jlc3RhcnQg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgcXVpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWdp c3Rlcl93aXRoX3Nlc3Npb24gKCk7CistIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlc3RhcnQgKHN0cmluZyBtZXNzYWdl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1Ymxp YyBzdGF0aWMgaW50IHJ1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZ25vbWVfd21fa2V5YmluZGluZ3Mg KHN0cmluZyB3bV9rZXliaW5kaW5ncyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0cmluZyB3 bV9uYW1lKTsKKy19CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEgdmFw aS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAyOWU1OTc3ZC4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhCisr KysgL2Rldi9udWxsCitAQCAtMSw2ICswLDAgQEAKKy1uYW1lc3BhY2UgTWV0YSB7CistCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdlciA6IE1ldGEuREJ1c0Rpc3BsYXlDb25maWdT a2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0JCS8qIG5vdCBleHBvcnRlZCAqLworLQkJ cHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CistCX0KKy19CitkaWZmIC0t Z2l0IHZhcGkvbGlibXV0dGVyLTMuZGVwcyB2YXBpL2xpYm11dHRlci0zLmRlcHMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMWYzYzkwNzkuLjAwMDAwMDAwCistLS0gdmFwaS9saWJt dXR0ZXItMy5kZXBzCisrKysgL2Rldi9udWxsCitAQCAtMSw5ICswLDAgQEAKKy1jYWlybworLWdz ZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1nZGstMy4wCistZ2RrLXBpeGJ1Zi0yLjAKKy1ndGsr LTMuMAorLXgxMQorLXhmaXhlcy00LjAKKy1jbHV0dGVyLTEuMAorLWNvZ2wtMS4wCitkaWZmIC0t Z2l0IHZhcGkvbGlibXV0dGVyLTQuZGVwcyB2YXBpL2xpYm11dHRlci00LmRlcHMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMzY3YzM1YjkuLjAwMDAwMDAwCistLS0gdmFwaS9saWJt dXR0ZXItNC5kZXBzCisrKysgL2Rldi9udWxsCitAQCAtMSw4ICswLDAgQEAKKy1nZGstMy4wCist Z2RrLXBpeGJ1Zi0yLjAKKy1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCistZ3RrKy0zLjAKKy1t dXR0ZXItY2x1dHRlci00CistbXV0dGVyLWNvZ2wtNAorLXgxMQorLXhmaXhlcy00LjAKK2RpZmYg LS1naXQgdmFwaS9saWJtdXR0ZXItNC52YXBpIHZhcGkvbGlibXV0dGVyLTQudmFwaQorZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBlMGQzNTZhMC4uMDAwMDAwMDAKKy0tLSB2YXBpL2xp Ym11dHRlci00LnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0MjUgKzAsMCBAQAorLS8qIGxp Ym11dHRlci00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCist CistW0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJf dmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCistbmFtZXNwYWNl IE1ldGEgeworLQluYW1lc3BhY2UgQ29tcG9zaXRvciB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxl X3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxl X3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9 ICJtZXRhX2VtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IGVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1l ID0gIm1ldGFfZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBlbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3Bs YXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIsIGNuYW1lID0gIm1ldGFfZm9jdXNfc3RhZ2Vfd2luZG93IildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgZm9jdXNfc3RhZ2Vfd2luZG93IChNZXRhLkRpc3BsYXkgZGlzcGxheSwgdWludDMy IHRpbWVzdGFtcCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3Bs YXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9mZWVkYmFj a19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1l dGFfZ2V0X3N0YWdlX2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi LCBjbmFtZSA9ICJtZXRhX2dldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdG9wX3dpbmRvd19ncm91cF9m b3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dp bmRvd19hY3RvcnMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRl ci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFt ZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1l dGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdp b24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRh LkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CistCX0KKy0JbmFtZXNw YWNlIFByZWZzIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQorLQkJcHVibGljIHN0YXRp YyBib29sIHByZWZzX2JlbGxfaXNfYXVkaWJsZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2NoYW5nZV93b3Jrc3Bh Y2VfbmFtZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX2NoYW5nZV93b3Jrc3BhY2Vf bmFtZSAoaW50IGksIHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hY3Rpb25fZG91YmxlX2Ns aWNrX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9u IHByZWZzX2dldF9hY3Rpb25fZG91YmxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2FjdGlvbl9taWRkbGVfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0 b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9taWRkbGVfY2xpY2tfdGl0bGViYXIg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3RpdGxlYmFyIildCistCQlwdWJs aWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIHByZWZzX2dldF9hY3Rpb25fcmlnaHRf Y2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXR0YWNoX21vZGFsX2RpYWxvZ3MiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfYXR0YWNoX21vZGFsX2RpYWxvZ3MgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfYXV0b19tYXhpbWl6ZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHBy ZWZzX2dldF9hdXRvX21heGltaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9fcmFpc2UiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfYXV0b19yYWlzZSAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9hdXRvX3JhaXNlX2RlbGF5IildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfYXV0 b19yYWlzZV9kZWxheSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9idXR0b25fbGF5b3V0IildCistCQlwdWJs aWMgc3RhdGljIE1ldGEuQnV0dG9uTGF5b3V0IHByZWZzX2dldF9idXR0b25fbGF5b3V0ICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfZ2V0X2NlbnRlcl9uZXdfd2luZG93cyIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IHByZWZzX2dldF9jZW50ZXJfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY29tcG9zaXRp bmdfbWFuYWdlciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9jb21wb3NpdGlu Z19tYW5hZ2VyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2N1cnNvcl9zaXplIildCistCQlwdWJsaWMgc3Rh dGljIGludCBwcmVmc19nZXRfY3Vyc29yX3NpemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY3Vyc29yX3Ro ZW1lIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHByZWZzX2dldF9jdXJzb3Jf dGhlbWUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfZGlzYWJsZV93b3JrYXJvdW5kcyIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHByZWZzX2dldF9kaXNhYmxlX3dvcmthcm91bmRzICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf Z2V0X2RyYWdfdGhyZXNob2xkIildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfZHJh Z190aHJlc2hvbGQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZHJhZ2dhYmxlX2JvcmRlcl93aWR0aCIpXQor LQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2RyYWdnYWJsZV9ib3JkZXJfd2lkdGggKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfZHluYW1pY193b3Jrc3BhY2VzIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgcHJlZnNfZ2V0X2R5bmFtaWNfd29ya3NwYWNlcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9lZGdlX3Rp bGluZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9lZGdlX3RpbGluZyAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0IildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgcHJlZnNfZ2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfZm9jdXNfbW9kZSIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1 c01vZGUgcHJlZnNfZ2V0X2ZvY3VzX21vZGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9jdXNfbmV3X3dp bmRvd3MiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNOZXdXaW5kb3dzIHByZWZz X2dldF9mb2N1c19uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb3JjZV9mdWxsc2NyZWVu IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2dub21l X2FuaW1hdGlvbnMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYW5p bWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlvbiIpXQorLQkJcHVibGlj IHN0YXRpYyBNZXRhLktleUJpbmRpbmdBY3Rpb24gcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9u IChzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbW91c2VfYnV0dG9uX21lbnUiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9tb3VzZV9idXR0b25fbW9kcyIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlZpcnR1YWxN b2RpZmllciBwcmVmc19nZXRfbW91c2VfYnV0dG9uX21vZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbW91 c2VfYnV0dG9uX3Jlc2l6ZSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X21vdXNl X2J1dHRvbl9yZXNpemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbnVtX3dvcmtzcGFjZXMiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9udW1fd29ya3NwYWNlcyAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9yYWlzZV9vbl9jbGljayIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9yYWlz ZV9vbl9jbGljayAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfdGl0bGViYXJfZm9udCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IFBhbmdvLkZvbnREZXNjcmlwdGlvbiBwcmVmc19nZXRfdGl0bGViYXJfZm9udCAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF92aXN1YWxfYmVsbCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF92 aXN1YWxfYmVsbCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF92aXN1YWxfYmVsbF90eXBlIildCistCQlwdWJs aWMgc3RhdGljIEdEZXNrdG9wLlZpc3VhbEJlbGxUeXBlIHByZWZzX2dldF92aXN1YWxfYmVsbF90 eXBlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X3dvcmtzcGFjZV9uYW1lIildCistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgc3RyaW5nIHByZWZzX2dldF93b3Jrc3BhY2VfbmFtZSAoaW50IGkpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X3dvcmtzcGFjZXNfb25seV9vbl9wcmltYXJ5IildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgcHJlZnNfZ2V0X3dvcmtzcGFjZXNfb25seV9vbl9wcmltYXJ5ICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfaW5p dCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX2luaXQgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRf Zm9yY2VfZnVsbHNjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9mb3Jj ZV9mdWxsc2NyZWVuIChib29sIHdoZXRoZXIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X251bV93b3Jrc3BhY2Vz IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIChpbnQg bl93b3Jrc3BhY2VzKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUgKGJv b2wgd2hldGhlcik7CistCX0KKy0JbmFtZXNwYWNlIFV0aWwgeworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9hZGRfdmVyYm9zZV90b3Bp YyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVn VG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV9leHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiIpXQorLQkJ cHVibGljIHN0YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24gKHVp bnQga2V5YmluZGluZ19hY3Rpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIpXQorLQkJcHVibGljIHN0 YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ2V0 X2xvY2FsZV9kaXJlY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5Mb2NhbGVEaXJlY3Rp b24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5nIildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChpbnQgZ3Jhdml0 eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9 ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2lu ZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfaXNfc3luY2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3N5bmNpbmcg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9 ICJtZXRhX2lzX3ZlcmJvc2UiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJib3NlICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAi bWV0YV9pc193YXlsYW5kX2NvbXBvc2l0b3IiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc193 YXlsYW5kX2NvbXBvc2l0b3IgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX2FkZCIpXQorLQkJcHVibGljIHN0YXRpYyB1 aW50IGxhdGVyX2FkZCAoTWV0YS5MYXRlclR5cGUgd2hlbiwgb3duZWQgR0xpYi5Tb3VyY2VGdW5j IGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25h bWUgPSAibWV0YV9sYXRlcl9yZW1vdmUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsYXRlcl9y ZW1vdmUgKHVpbnQgbGF0ZXJfaWQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9wb3Bfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIHBvcF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9wdXNoX25vX21zZ19wcmVmaXgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3JlY3Qi KV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5SZWN0YW5nbGU/IHJlY3QgKGludCB4LCBpbnQgeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcmVtb3ZlX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRv cGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfc2hvd19kaWFsb2ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5QaWQgc2hvd19k aWFsb2cgKHN0cmluZyB0eXBlLCBzdHJpbmcgbWVzc2FnZSwgc3RyaW5nIHRpbWVvdXQsIHN0cmlu ZyBkaXNwbGF5LCBzdHJpbmcgb2tfdGV4dCwgc3RyaW5nIGNhbmNlbF90ZXh0LCBzdHJpbmcgaWNv bl9uYW1lLCBpbnQgdHJhbnNpZW50X2ZvciwgR0xpYi5TTGlzdDx2b2lkKj4gY29sdW1ucywgR0xp Yi5TTGlzdDx2b2lkKj4gZW50cmllcyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdfZXF1YWwiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgaW50IHVuc2lnbmVkX2xvbmdfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJt ZXRhX3Vuc2lnbmVkX2xvbmdfaGFzaCIpXQorLQkJcHVibGljIHN0YXRpYyB1aW50IHVuc2lnbmVk X2xvbmdfaGFzaCAodm9pZCogdik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3gxMV9lcnJvcl90cmFwX3BvcCIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIHgxMV9lcnJvcl90cmFwX3BvcCAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNw bGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIildCistCQlwdWJsaWMgc3Rh dGljIGludCB4MTFfZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4gKE1ldGEuWDExRGlzcGxheSB4 MTFfZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgi LCBjbmFtZSA9ICJtZXRhX3gxMV9lcnJvcl90cmFwX3B1c2giKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCB4MTFfZXJyb3JfdHJhcF9wdXNoIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3BsYXkpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2VuZC5oIiwg dHlwZV9pZCA9ICJtZXRhX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0 IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCwgR0xpYi5Jbml0YWJsZSB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2VuZCAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2VuZC5oIiwg Y25hbWUgPSAibWV0YV9nZXRfYmFja2VuZCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1l dGEuQmFja2VuZCBnZXRfYmFja2VuZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRG5kIGdl dF9kbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIg Z2V0X3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworLQkJcHVibGljIHZvaWQgbG9ja19sYXlvdXRfZ3JvdXAg KHVpbnQgaWR4KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0cmluZyBsYXlvdXRzLCBz dHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9udW1s b2NrIChib29sIG51bWxvY2tfc3RhdGUpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9j aGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3JvdXBfY2hh bmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2No YW5nZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxpZF9pc19jbG9zZWRf Y2hhbmdlZCAoYm9vbCBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtYmFja2dyb3VuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmQgOiBHTGliLk9iamVjdCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgQmFj a2dyb3VuZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHN0YXRpYyB2b2lkIHJl ZnJlc2hfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEs IEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3Vu ZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBj b2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9w LkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdE ZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9y IGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIiwgdHlw ZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIEJhY2tncm91bmRBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1 dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kQWN0b3IgKE1ldGEuRGlzcGxheSBkaXNw bGF5LCBpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfYmFja2dyb3VuZCAoTWV0YS5C YWNrZ3JvdW5kIGJhY2tncm91bmQpOworLQkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChib29s IGVuYWJsZWQsIGludCBoZWlnaHQsIGRvdWJsZSB0b25lX3N0YXJ0KTsKKy0JCXB1YmxpYyB2b2lk IHNldF9tb25pdG9yIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfdmlnbmV0dGUg KGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5lc3MsIGRvdWJsZSBzaGFycG5lc3MpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQg eyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91 YmxlIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCBncmFkaWVudCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBpbnQgZ3JhZGllbnRfaGVpZ2h0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSBncmFkaWVudF9tYXhfZGFya25lc3MgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1l dGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBpbnQgbW9uaXRvciB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHZpZ25ldHRlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSB2aWduZXR0ZV9zaGFycG5lc3MgeyBn ZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ3JvdXBfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRHcm91cCA6IENsdXR0ZXIuQWN0 b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5k R3JvdXAgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIEJhY2tncm91bmRJbWFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9zdWNjZXNzICgpOwor LQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGlj IGJvb2wgaXNfbG9hZGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxvYWRlZCAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2NhY2hlX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRh LkJhY2tncm91bmRJbWFnZUNhY2hlIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIE1ldGEuQmFj a2dyb3VuZEltYWdlIGxvYWQgKEdMaWIuRmlsZSBmaWxlKTsKKy0JCXB1YmxpYyB2b2lkIHB1cmdl IChHTGliLkZpbGUgZmlsZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyIDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJh cnJpZXIgKCk7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworLQkJcHVibGljIGJvb2wgaXNf YWN0aXZlICgpOworLQkJcHVibGljIHZvaWQgcmVsZWFzZSAoTWV0YS5CYXJyaWVyRXZlbnQgZXZl bnQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYXJyaWVyRGlyZWN0 aW9uIGRpcmVjdGlvbnMgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgxIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4MiB7IGdldDsgY29u c3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTEgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkyIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBoaXQgKE1ldGEuQmFycmll ckV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsZWZ0IChNZXRhLkJhcnJpZXJF dmVudCBldmVudCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0g ImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2V2ZW50X2dldF90eXBlICgp IildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQmFycmllckV2ZW50IHsKKy0JCXB1Ymxp YyBpbnQgZHQ7CistCQlwdWJsaWMgZG91YmxlIGR4OworLQkJcHVibGljIGRvdWJsZSBkeTsKKy0J CXB1YmxpYyBpbnQgZXZlbnRfaWQ7CistCQlwdWJsaWMgYm9vbCBncmFiYmVkOworLQkJcHVibGlj IGJvb2wgcmVsZWFzZWQ7CistCQlwdWJsaWMgdWludDMyIHRpbWU7CistCQlwdWJsaWMgZG91Ymxl IHg7CistCQlwdWJsaWMgZG91YmxlIHk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9jdXJz b3JfdHJhY2tlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQ3Vyc29yVHJhY2tlciA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXByb3RlY3RlZCBDdXJzb3JUcmFja2VyICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNw bGF5KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBpbnQgeCwgb3V0IGludCB5KTsKKy0J CXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50IHksIENsdXR0ZXIuTW9kaWZpZXJU eXBlIG1vZHMpOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQgb2JqZWN0LCBmbG9hdCBwMCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rp c3BsYXlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERpc3BsYXkgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgRGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGFkZF9pZ25vcmVkX2Nyb3NzaW5nX3Nl cmlhbCAodWxvbmcgc2VyaWFsKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9rZXliaW5kaW5nIChzdHJp bmcgbmFtZSwgR0xpYi5TZXR0aW5ncyBzZXR0aW5ncywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZmxh Z3MsIG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmMgaGFuZGxlcik7CistCQlwdWJsaWMgYm9vbCBi ZWdpbl9ncmFiX29wIChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuR3JhYk9wIG9wLCBib29sIHBv aW50ZXJfYWxyZWFkeV9ncmFiYmVkLCBib29sIGZyYW1lX2FjdGlvbiwgaW50IGJ1dHRvbiwgdWxv bmcgbW9kbWFzaywgdWludDMyIHRpbWVzdGFtcCwgaW50IHJvb3RfeCwgaW50IHJvb3RfeSk7Cist CQlwdWJsaWMgdm9pZCBjbGVhcl9tb3VzZV9tb2RlICgpOworLQkJcHVibGljIHZvaWQgY2xvc2Ug KHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZW5kX2dyYWJfb3AgKHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9jdXNfZGVmYXVsdF93aW5kb3cgKHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1 aW50MzIgZ2V0X2N1cnJlbnRfdGltZSAoKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2N1cnJlbnRf dGltZV9yb3VuZHRyaXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfZm9j dXNfd2luZG93ICgpOworLQkJcHVibGljIE1ldGEuR3JhYk9wIGdldF9ncmFiX29wICgpOworLQkJ cHVibGljIHVpbnQgZ2V0X2tleWJpbmRpbmdfYWN0aW9uICh1aW50IGtleWNvZGUsIHVsb25nIG1h c2spOworLQkJcHVibGljIHVpbnQzMiBnZXRfbGFzdF91c2VyX3RpbWUgKCk7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgZ2V0X21vbml0b3JfZ2VvbWV0cnkgKGludCBtb25pdG9yKTsKKy0JCXB1 YmxpYyBib29sIGdldF9tb25pdG9yX2luX2Z1bGxzY3JlZW4gKGludCBtb25pdG9yKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X21vbml0b3JfaW5kZXhfZm9yX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIHJlY3Qp OworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9uZWlnaGJvcl9pbmRleCAoaW50IHdoaWNoX21v bml0b3IsIE1ldGEuRGlzcGxheURpcmVjdGlvbiBkaXIpOworLQkJcHVibGljIGludCBnZXRfbl9t b25pdG9ycyAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgZ2V0X3BhZF9hY3Rpb25fbGFiZWwgKENsdXR0 ZXIuSW5wdXREZXZpY2UgcGFkLCBNZXRhLlBhZEFjdGlvblR5cGUgYWN0aW9uX3R5cGUsIHVpbnQg YWN0aW9uX251bWJlcik7CistCQlwdWJsaWMgaW50IGdldF9wcmltYXJ5X21vbml0b3IgKCk7Cist CQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOwor LQkJcHVibGljIHVub3duZWQgTWV0YS5Tb3VuZFBsYXllciBnZXRfc291bmRfcGxheWVyICgpOwor LQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50IChNZXRhLlRhYkxp c3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8 d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5X b3Jrc3BhY2U/IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRf dGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIE1l dGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5Xb3Jrc3BhY2VNYW5hZ2VyIGdldF93b3Jrc3BhY2VfbWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1 aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvciwgTWV0YS5LZXlCaW5kaW5n RmxhZ3MgZmxhZ3MpOworLQkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVsYXRpbmdfc2VxdWVu Y2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UpOworLQkJcHVibGljIGJvb2wgcmVt b3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKy0JCXB1YmxpYyB2b2lkIHJlcXVlc3RfcGFk X29zZCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIGJvb2wgZWRpdGlvbl9tb2RlKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1ldGEuQ3Vyc29yIGN1cnNvcik7CistCQlwdWJsaWMgR0xp Yi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIu U0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOworLQkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0 ZW5kZWRfYmFycmllcnMgKCk7CistCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQg YWN0aW9uX2lkKTsKKy0JCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGlt ZTEsIHVpbnQzMiB0aW1lMik7CistCQlwdWJsaWMgTWV0YS5XaW5kb3cgZm9jdXNfd2luZG93IHsg Z2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50 IG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29y X3VwZGF0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLkRpc3BsYXkg b2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIGdyYWJfb3BfZW5kIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwg TWV0YS5HcmFiT3AgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGluX2Z1bGxzY3JlZW5fY2hh bmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBtb2RpZmllcnNfYWNjZWxlcmF0b3JfYWN0 aXZhdGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG92ZXJsYXlfa2V5ICgpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIHBhZF9tb2RlX3N3aXRjaCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmpl Y3QsIHVpbnQgcDAsIHVpbnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3RhY2tlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCByZXN0YXJ0ICgpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHNob3dfb3NkIChpbnQgb2JqZWN0LCBzdHJpbmcgcDAsIHN0cmluZyBwMSk7CistCQlwdWJs aWMgc2lnbmFsIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8gc2hvd19wYWRfb3NkIChDbHV0dGVyLklu cHV0RGV2aWNlIHBhZCwgR0xpYi5TZXR0aW5ncyBzZXR0aW5ncywgc3RyaW5nIGxheW91dF9wYXRo LCBib29sIGVkaXRpb25fbW9kZSwgaW50IG1vbml0b3JfaWR4KTsKKy0JCXB1YmxpYyBzaWduYWwg Ym9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVjdGFuZ2xlIHAwLCBp bnQgcDEsIGludCBwMik7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXN0YXJ0X21lc3Nh Z2UgKHN0cmluZz8gbWVzc2FnZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNr dG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2NyZWF0ZWQgKE1l dGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2RlbWFuZHNf YXR0ZW50aW9uIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdp bmRvd19lbnRlcmVkX21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbGVmdF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldp bmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X21hcmtlZF91cmdlbnQgKE1l dGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya2FyZWFzX2NoYW5n ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfY2xvc2luZyAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9vcGVuZWQgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5 cGVfaWQgPSAibWV0YV9kbmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERuZCA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBEbmQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX2VudGVyICgp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9sZWF2ZSAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBkbmRfcG9zaXRpb25fY2hhbmdlIChpbnQgb2JqZWN0LCBpbnQgcDApOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBGcmFt ZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9pZGxlX21vbml0b3JfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIElkbGVNb25pdG9yIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIElkbGVNb25p dG9yICgpOworLQkJcHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9t c2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJs aWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRj aEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25p dG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0 b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGljIGludDY0IGdldF9p ZGxldGltZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBpZCk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRf dHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEtleUJpbmRpbmcgeworLQkJ cHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CistCQlwdWJsaWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIg Z2V0X21vZGlmaWVycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsK Ky0JCXB1YmxpYyBib29sIGlzX2J1aWx0aW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19yZXZlcnNl ZCAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hh bmRsZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmlu ZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg dHlwZV9pZCA9ICJtZXRhX2xhdW5jaF9jb250ZXh0X2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBMYXVuY2hDb250ZXh0IDogR0xpYi5BcHBMYXVuY2hDb250ZXh0IHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBMYXVuY2hDb250 ZXh0ICgpOworLQkJcHVibGljIHZvaWQgc2V0X3RpbWVzdGFtcCAodWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Up OworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgdWludCB0aW1lc3RhbXAgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgTW9uaXRvck1hbmFn ZXIgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fc3dpdGNoX2NvbmZpZyAoKTsKKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBNZXRhLk1vbml0b3JNYW5hZ2VyIEBnZXQgKCk7CistCQlwdWJsaWMgc3Rh dGljIGludCBnZXRfZGlzcGxheV9jb25maWd1cmF0aW9uX3RpbWVvdXQgKCk7CistCQlwdWJsaWMg Ym9vbCBnZXRfaXNfYnVpbHRpbl9kaXNwbGF5X29uICgpOworLQkJcHVibGljIGludCBnZXRfbW9u aXRvcl9mb3JfY29ubmVjdG9yIChzdHJpbmcgY29ubmVjdG9yKTsKKy0JCXB1YmxpYyBNZXRhLk1v bml0b3JTd2l0Y2hDb25maWdUeXBlIGdldF9zd2l0Y2hfY29uZmlnICgpOworLQkJcHVibGljIHZv aWQgc3dpdGNoX2NvbmZpZyAoTWV0YS5Nb25pdG9yU3dpdGNoQ29uZmlnVHlwZSBjb25maWdfdHlw ZSk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhY2tlbmQgYmFja2Vu ZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29uZmly bV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFu Z2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWRfaW50ZXJuYWwg KCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG93ZXJfc2F2ZV9tb2RlX2NoYW5nZWQgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIHR5 cGVfaWQgPSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNs YXNzIFBsdWdpbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQbHVnaW4gKCk7CistCQlwdWJsaWMgYm9vbCBi ZWdpbl9tb2RhbCAoTWV0YS5Nb2RhbE9wdGlvbnMgb3B0aW9ucywgdWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZV9kaXNwbGF5X2NoYW5nZSAoYm9vbCBvayk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdl ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVzdHJveSAoTWV0 YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95X2NvbXBsZXRlZCAo TWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBlbmRfbW9kYWwgKHVpbnQz MiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5 ICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBnZXRfaW5mbyAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5YmluZGluZ19maWx0 ZXIgKE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFjZSAoKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2luZG93X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0 b3IgYWN0b3IpOworLQkJcHVibGljIHN0YXRpYyB2b2lkIG1hbmFnZXJfc2V0X3BsdWdpbl90eXBl IChHTGliLlR5cGUgZ3R5cGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgbWFwIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1hcF9jb21w bGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgbWluaW1pemUgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVi bGljIHZvaWQgbWluaW1pemVfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8g cGx1Z2luX2luZm8gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBz aG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLlJlY3RhbmdsZSB0aWxl X3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0 YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193aW5kb3dfbWVudV9mb3JfcmVjdCAoTWV0YS5XaW5k b3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3Qp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9jaGFuZ2UgKE1l dGEuV2luZG93QWN0b3IgYWN0b3IsIE1ldGEuU2l6ZUNoYW5nZSB3aGljaF9jaGFuZ2UsIE1ldGEu UmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBvbGRfYnVmZmVyX3JlY3Qp OworLQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2VfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9y IGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNpemVfY2hh bmdlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBzdGFydCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKGludCBmcm9tLCBpbnQgdG8sIE1ldGEuTW90aW9uRGly ZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlX2NvbXBs ZXRlZCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVubWluaW1p emUgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZV9j b21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIGJvb2wgeGV2ZW50X2ZpbHRlciAoWC5FdmVudCBldmVudCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2NvbnRyb2xsZXJfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgUmVtb3RlQWNjZXNzQ29udHJvbGxlciAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBuZXdf aGFuZGxlIChNZXRhLlJlbW90ZUFjY2Vzc0hhbmRsZSBvYmplY3QpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBl X2lkID0gIm1ldGFfcmVtb3RlX2FjY2Vzc19oYW5kbGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIFJlbW90ZUFjY2Vzc0hhbmRsZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NI YW5kbGUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0b3AgKCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgc3RvcHBlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgeworLQkJcHVibGljIGludCBnZXRf Zm9udF9kcGkgKCk7CistCQlwdWJsaWMgaW50IGdldF91aV9zY2FsaW5nX2ZhY3RvciAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0 YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJl ZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFNoYWRvdyB7CistCQlwdWJsaWMgdm9p ZCBnZXRfYm91bmRzIChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0 aCwgaW50IHdpbmRvd19oZWlnaHQsIENhaXJvLlJlY3RhbmdsZUludCBib3VuZHMpOworLQkJcHVi bGljIHZvaWQgcGFpbnQgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIsIGludCB3aW5kb3df eCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgdWlu dDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29sIGNsaXBfc3RyaWN0bHkpOworLQkJ cHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19mYWN0b3J5X2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBTaGFkb3dGYWN0b3J5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFNoYWRvd0ZhY3Rvcnkg KCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5TaGFkb3dGYWN0b3J5IGdldF9kZWZh dWx0ICgpOworLQkJcHVibGljIE1ldGEuU2hhZG93UGFyYW1zIGdldF9wYXJhbXMgKHN0cmluZyBj bGFzc19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIE1ldGEuU2hhZG93IGdldF9zaGFk b3cgKE1ldGEuV2luZG93U2hhcGUgc2hhcGUsIGludCB3aWR0aCwgaW50IGhlaWdodCwgc3RyaW5n IGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcGFyYW1zIChz dHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkLCBNZXRhLlNoYWRvd1BhcmFtcyBAcGFyYW1z KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lk ID0gIm1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNo YXBlZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU2hhcGVk VGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fpcm8uUmVj dGFuZ2xlSW50IGNsaXApOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0 dXJlICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9t aXBtYXBzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBt YXNrX3RleHR1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENh aXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChp bnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgc2l6ZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxh eWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTb3VuZFBsYXllciA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBTb3VuZFBsYXllciAoKTsKKy0JCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV9maWxlIChH TGliLkZpbGUgZmlsZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5j ZWxsYWJsZSA9IG51bGwpOworLQkJcHVibGljIHZvaWQgcGxheV9mcm9tX3RoZW1lIChzdHJpbmcg bmFtZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9 IG51bGwpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5TdGFnZSwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFN0YWdlICgpOworLQkJcHVibGljIHN0YXRpYyBib29sIGlzX2ZvY3VzZWQgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RvcnNfcGFpbnRlZCAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YXJ0dXBfbm90aWZpY2F0aW9uX2dldF90eXBl ICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFydHVwTm90aWZpY2F0aW9uIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFN0YXJ0dXBOb3RpZmljYXRpb24gKCk7CistCQlwdWJsaWMgTWV0YS5MYXVuY2hDb250ZXh0 IGNyZWF0ZV9sYXVuY2hlciAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1l dGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBjaGFuZ2VkICh2b2lkKiBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfc3RhcnR1cF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU3Rh cnR1cFNlcXVlbmNlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFN0YXJ0dXBTZXF1ZW5jZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIGNvbXBsZXRlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9hcHBs aWNhdGlvbl9pZCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9jb21wbGV0ZWQgKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2ljb25fbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfaWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7Cist CQlwdWJsaWMgdWludDY0IGdldF90aW1lc3RhbXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3dtY2xhc3MgKCk7CistCQlwdWJsaWMgaW50IGdldF93b3Jrc3BhY2UgKCk7CistCQlw dWJsaWMgc3RyaW5nIGFwcGxpY2F0aW9uX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1Ymxp YyBzdHJpbmcgaWNvbl9uYW1lIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzdHJpbmcg aWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCXB1YmxpYyB1aW50NjQgdGltZXN0YW1wIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K Ky0JCXB1YmxpYyBzdHJpbmcgd21jbGFzcyB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMg aW50IHdvcmtzcGFjZSB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFRoZW1lIHsKKy0JCXB1Ymxp YyB2b2lkIGZyZWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBXaW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWludDMyIGN1cnJlbnRfdGlt ZSk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX3dvcmtzcGFjZSAodWludDMyIGN1cnJl bnRfdGltZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyBib29sIGFsbG93 c19tb3ZlICgpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIGJlZ2luX2dyYWJfb3AgKE1ldGEuR3JhYk9wIG9wLCBib29sIGZyYW1lX2FjdGlvbiwgdWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCBjYW5fY2xvc2UgKCk7CistCQlwdWJsaWMg Ym9vbCBjYW5fbWF4aW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fbWluaW1pemUgKCk7Cist CQlwdWJsaWMgYm9vbCBjYW5fc2hhZGUgKCk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3Nw YWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dv cmtzcGFjZV9ieV9pbmRleCAoaW50IHNwYWNlX2luZGV4LCBib29sIGFwcGVuZCk7CistCQlwdWJs aWMgdm9pZCBjaGVja19hbGl2ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgY2xpZW50X3JlY3RfdG9fZnJhbWVfcmVjdCAoTWV0YS5SZWN0YW5nbGUgY2xpZW50 X3JlY3QpOworLQkJcHVibGljIHZvaWQgY29tcHV0ZV9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lk IEBkZWxldGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3cgZmluZF9yb290X2FuY2VzdG9yICgpOworLQkJcHVibGljIHZvaWQgZm9jdXMgKHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF9hbmNlc3RvciAoTWV0YS5XaW5kb3dG b3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfdHJhbnNpZW50IChNZXRh LldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGZyYW1l X3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3QpOworLQkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3dDbGll bnRUeXBlIGdldF9jbGllbnRfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0 IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2Rlc2NyaXB0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNw bGF5ICgpOworLQkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uPyBnZXRfZnJhbWVfYm91bmRz ICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9mcmFtZV9yZWN0ICgpOworLQkJcHVi bGljIE1ldGEuRnJhbWVUeXBlIGdldF9mcmFtZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9ndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlvbl9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9ndGtfbWVudWJhcl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfZ3RrX3RoZW1lX3ZhcmlhbnQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2d0a191bmlxdWVfYnVzX25hbWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X2d0a193aW5kb3dfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfaWNv bl9nZW9tZXRyeSAob3V0IE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIHVpbnQ2NCBn ZXRfaWQgKCk7CistCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsKKy0JCXB1 YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsKKy0JCXB1YmxpYyBpbnQg Z2V0X21vbml0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X211dHRlcl9oaW50 cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3BpZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfcm9sZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc2FuZGJveGVkX2Fw cF9pZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9zdGFibGVfc2VxdWVuY2UgKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXJ0dXBfaWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldpbmRvdz8gZ2V0X3RpbGVfbWF0Y2ggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3RpdGxlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RyYW5zaWVu dF9mb3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF91c2VyX3RpbWUgKCk7CistCQlwdWJsaWMg TWV0YS5XaW5kb3dUeXBlIGdldF93aW5kb3dfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfd21fY2xhc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtX2Ns YXNzX2luc3RhbmNlICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFf YWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFf Y3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2Fy ZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1l dGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3h3 aW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBncm91cF9sZWFkZXJfY2hhbmdlZCAoKTsKKy0JCXB1 YmxpYyBib29sIGhhc19mb2N1cyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fib3ZlICgpOworLQkJ cHVibGljIGJvb2wgaXNfYWx3YXlzX29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGJv b2wgaXNfYW5jZXN0b3Jfb2ZfdHJhbnNpZW50IChNZXRhLldpbmRvdyB0cmFuc2llbnQpOworLQkJ cHVibGljIGJvb2wgaXNfYXR0YWNoZWRfZGlhbG9nICgpOworLQkJcHVibGljIGJvb2wgaXNfY2xp ZW50X2RlY29yYXRlZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Z1bGxzY3JlZW4gKCk7CistCQlw dWJsaWMgYm9vbCBpc19oaWRkZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19tb25pdG9yX3NpemVk ICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19vbl9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vdmVycmlk ZV9yZWRpcmVjdCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JlbW90ZSAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX3NjcmVlbl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NoYWRlZCAoKTsKKy0J CXB1YmxpYyBib29sIGlzX3NraXBfdGFza2JhciAoKTsKKy0JCXB1YmxpYyB2b2lkIGtpbGwgKCk7 CistCQlwdWJsaWMgYm9vbCBsb2NhdGVkX29uX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29y a3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGxvd2VyICgpOworLQkJcHVibGljIHZvaWQgbWFrZV9h Ym92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2 b2lkIG1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0aW9ucyk7CistCQlwdWJsaWMg dm9pZCBtaW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfZnJhbWUgKGJvb2wgdXNlcl9v cCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udyk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3Jl c2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95X253LCBp bnQgdywgaW50IGgpOworLQkJcHVibGljIHZvaWQgbW92ZV90b19tb25pdG9yIChpbnQgbW9uaXRv cik7CistCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3RlZF9i eXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3RlZF9kb250X2J5cGFz c19jb21wb3NpdG9yICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAo R0xpYi5PYmplY3QgcHJpdik7CistCQlwdWJsaWMgdm9pZCBzZXRfZGVtYW5kc19hdHRlbnRpb24g KCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRyeSAoTWV0YS5SZWN0YW5nbGU/IHJl Y3QpOworLQkJcHVibGljIHZvaWQgc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGlj IHZvaWQgc2hvdmVfdGl0bGViYXJfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgYm9vbCBzaG93aW5n X29uX2l0c193b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBzaHV0ZG93bl9ncm91cCAoKTsK Ky0JCXB1YmxpYyB2b2lkIHN0aWNrICgpOworLQkJcHVibGljIGJvb2wgdGl0bGViYXJfaXNfb25z Y3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfYWJvdmUgKCk7CistCQlwdWJsaWMgdm9p ZCB1bm1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWF4aW1pemUgKE1ldGEu TWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemUgKCk7 CistCQlwdWJsaWMgdm9pZCB1bnNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2 b2lkIHVuc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgdW5zdGljayAo KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYWJvdmUgeyBnZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYXBwZWFyc19mb2N1c2VkIHsg Z2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlY29yYXRlZCB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkZW1hbmRzX2F0 dGVudGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBm dWxsc2NyZWVuIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBfbWVudV9vYmplY3Rf cGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25faWQgeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX29iamVjdF9wYXRoIHsgZ2V0OyB9 CistCQlwdWJsaWMgc3RyaW5nIGd0a19tZW51YmFyX29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlw dWJsaWMgc3RyaW5nIGd0a191bmlxdWVfYnVzX25hbWUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgZ3RrX3dpbmRvd19vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgdm9pZCogaWNvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCBtYXhpbWl6ZWRfaG9yaXpvbnRhbGx5IHsgZ2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF92ZXJ0aWNhbGx5IHsgZ2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB2b2lkKiBtaW5pX2ljb24geyBnZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWluaW1pemVkIHsgZ2V0 OyB9CistCQlwdWJsaWMgc3RyaW5nIG11dHRlcl9oaW50cyB7IGdldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBvbl9hbGxfd29ya3NwYWNlcyB7IGdldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXNpemVhYmxlIHsgZ2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHNraXBfdGFza2JhciB7IGdldDsg fQorLQkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCB1cmdlbnQgeyBnZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHVzZXJfdGlt ZSB7IGdldDsgfQorLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSB3aW5kb3dfdHlwZSB7IGdldDsg fQorLQkJcHVibGljIHN0cmluZyB3bV9jbGFzcyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2 b2lkIHBvc2l0aW9uX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmFpc2VkICgp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNob3duICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHNpemVfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5 cGVfaWQgPSAibWV0YV93aW5kb3dfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3Ry YWN0IGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFdpbmRvd0FjdG9yICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21l dGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVy ZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93aW5kb3cgKCk7CistCQlwdWJsaWMgYm9v bCBpc19kZXN0cm95ZWQgKCk7CistCQlwdWJsaWMgdm9pZCBzeW5jX3Zpc2liaWxpdHkgKCk7Cist CQlwdWJsaWMgTWV0YS5XaW5kb3cgbWV0YV93aW5kb3cgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgc3RyaW5nIHNoYWRvd19jbGFzcyB7IG93bmVk IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNoYWRv d01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGVm ZmVjdHNfY29tcGxldGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGZpcnN0X2ZyYW1lICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dyb3VwX2dldF90eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBXaW5kb3dHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1l bnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBXaW5kb3dHcm91cCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1l dGFfd2luZG93X3NoYXBlX3JlZiIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfc2hhcGVfZ2V0X3R5 cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV91bnJlZiIpXQorLQlb Q29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFdpbmRvd1NoYXBlIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBXaW5kb3dTaGFwZSAoQ2Fpcm8u UmVnaW9uIHJlZ2lvbik7CistCQlwdWJsaWMgYm9vbCBlcXVhbCAoTWV0YS5XaW5kb3dTaGFwZSBz aGFwZV9iKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3JkZXJzIChpbnQgYm9yZGVyX3RvcCwgaW50 IGJvcmRlcl9yaWdodCwgaW50IGJvcmRlcl9ib3R0b20sIGludCBib3JkZXJfbGVmdCk7CistCQlw dWJsaWMgdWludCBoYXNoICgpOworLQkJcHVibGljIE1ldGEuV2luZG93U2hhcGUgQHJlZiAoKTsK Ky0JCXB1YmxpYyBDYWlyby5SZWdpb24gdG9fcmVnaW9uIChpbnQgY2VudGVyX3dpZHRoLCBpbnQg Y2VudGVyX2hlaWdodCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX3dvcmtzcGFjZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV29y a3NwYWNlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGFj dGl2YXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlX3dpdGhf Zm9jdXMgKE1ldGEuV2luZG93IGZvY3VzX3RoaXMsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIHVub3du ZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X25laWdoYm9yIChNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJl Y3Rpb24pOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxsX21vbml0 b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0 b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgaW5kZXggKCk7CistCQlwdWJs aWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0Pz4gc3RydXRz KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgbl93aW5kb3dzIHsgZ2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHdvcmtzcGFjZV9pbmRl eCB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19hZGRlZCAoTWV0YS5XaW5k b3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfcmVtb3ZlZCAoTWV0YS5X aW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dvcmtzcGFjZV9tYW5h Z2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2VNYW5hZ2VyIDogR0xp Yi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIFdvcmtzcGFjZU1hbmFnZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LldvcmtzcGFjZSBhcHBlbmRfbmV3X3dvcmtzcGFjZSAoYm9vbCBhY3RpdmF0ZSwgdWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dv cmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7 CistCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworLQkJcHVi bGljIHZvaWQgb3ZlcnJpZGVfd29ya3NwYWNlX2xheW91dCAoTWV0YS5EaXNwbGF5Q29ybmVyIHN0 YXJ0aW5nX2Nvcm5lciwgYm9vbCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2Nv bHVtbnMpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ug d29ya3NwYWNlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBpbnQgbl93b3Jrc3BhY2Vz IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWN0aXZlX3dvcmtzcGFjZV9jaGFuZ2Vk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVza3RvcF9jaGFuZ2VkICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9hZGRlZCAoaW50IG9iamVjdCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3JlbW92ZWQgKGludCBvYmplY3QpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAoaW50IG9iamVjdCwgaW50IHAwLCBN ZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV94MTFf ZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIu T2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2Zv Y3VzX3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgaW50IGdldF9kYW1hZ2Vf ZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CistCQlw dWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIGJvb2wgaGFzX3No YXBlICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NtX3NlbGVjdGlvbiAoKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBmb2N1 c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ff bm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9jbmFt ZSA9ICJNZXRhQ2xvc2VEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlh bG9nX2dldF90eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgQ2xvc2VEaWFsb2cgOiBHTGli Lk9iamVjdCB7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBmb2N1cyAoKTsKKy0JCXB1YmxpYyBh YnN0cmFjdCB2b2lkIGhpZGUgKCk7CistCQlwdWJsaWMgYm9vbCBpc192aXNpYmxlICgpOworLQkJ cHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGFic3RyYWN0IE1ldGEuV2luZG93IHdpbmRvdyB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXNwb25zZSAoTWV0 YS5DbG9zZURpYWxvZ1Jlc3BvbnNlIHJlc3BvbnNlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9jbmFtZSA9 ICJNZXRhSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9p bmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFj ZSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nIDogR0xpYi5PYmplY3QgeworLQkJcHVibGljIGFic3Ry YWN0IHZvaWQgaGlkZSAoKTsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNob3cgKCk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBhYnN0cmFjdCBNZXRhLldpbmRvdyB3aW5kb3cg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW0hhc0VtaXR0ZXJdCistCQlwdWJsaWMgc2ln bmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHJl c3BvbnNlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1 Y3QgQnV0dG9uTGF5b3V0IHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJ cHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiBsZWZ0X2J1dHRvbnNbNF07CistCQlbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgbGVmdF9idXR0 b25zX2hhc19zcGFjZXJbNF07CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0J CXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gcmlnaHRfYnV0dG9uc1s0XTsKKy0JCVtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCByaWdodF9i dXR0b25zX2hhc19zcGFjZXJbNF07CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgc3RydWN0IEVkZ2UgeworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7Cist CQlwdWJsaWMgTWV0YS5TaWRlIHNpZGVfdHlwZTsKKy0JCXB1YmxpYyBNZXRhLkVkZ2VUeXBlIGVk Z2VfdHlwZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1 Y3QgRnJhbWVCb3JkZXJzIHsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7CistCQlwdWJs aWMgR3RrLkJvcmRlciBpbnZpc2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciB0b3RhbDsKKy0J CXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0 cnVjdCBQbHVnaW5JbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGlj IHdlYWsgc3RyaW5nIHZlcnNpb247CistCQlwdWJsaWMgd2VhayBzdHJpbmcgYXV0aG9yOworLQkJ cHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3Jp cHRpb247CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0 IFBsdWdpblZlcnNpb24geworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9tYWpvcjsKKy0JCXB1Ymxp YyB1aW50IHZlcnNpb25fbWlub3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworLQkJ cHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9yZWN0 YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIHN0cnVjdCBSZWN0YW5nbGUgeworLQkJcHVi bGljIGludCB4OworLQkJcHVibGljIGludCB5OworLQkJcHVibGljIGludCB3aWR0aDsKKy0JCXB1 YmxpYyBpbnQgaGVpZ2h0OworLQkJcHVibGljIGludCBhcmVhICgpOworLQkJcHVibGljIGJvb2wg Y29udGFpbnNfcmVjdCAoTWV0YS5SZWN0YW5nbGUgaW5uZXJfcmVjdCk7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGU/IGNvcHkgKCk7CistCQlwdWJsaWMgYm9vbCBjb3VsZF9maXRfcmVjdCAoTWV0 YS5SZWN0YW5nbGUgaW5uZXJfcmVjdCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbCAoTWV0YS5SZWN0 YW5nbGUgc3JjMik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIGJvb2wgaG9y aXpfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgaW50ZXJz ZWN0IChNZXRhLlJlY3RhbmdsZSBzcmMyLCBvdXQgTWV0YS5SZWN0YW5nbGUgZGVzdCk7CistCQlw dWJsaWMgYm9vbCBvdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgdW5pb24gKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29s IHZlcnRfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTaGFkb3dQYXJhbXMgeworLQkJcHVibGlj IGludCByYWRpdXM7CistCQlwdWJsaWMgaW50IHRvcF9mYWRlOworLQkJcHVibGljIGludCB4X29m ZnNldDsKKy0JCXB1YmxpYyBpbnQgeV9vZmZzZXQ7CistCQlwdWJsaWMgdWludDggb3BhY2l0eTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU3RydXQg eworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0YS5TaWRlIHNp ZGU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9CQVJSSUVSX0RJUkVDVElPTl8iLCB0eXBl X2lkID0gIm1ldGFfYmFycmllcl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQor LQlwdWJsaWMgZW51bSBCYXJyaWVyRGlyZWN0aW9uIHsKKy0JCVBPU0lUSVZFX1gsCistCQlQT1NJ VElWRV9ZLAorLQkJTkVHQVRJVkVfWCwKKy0JCU5FR0FUSVZFX1kKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0 aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKy0JCU1F TlUsCistCQlNSU5JTUlaRSwKKy0JCU1BWElNSVpFLAorLQkJQ0xPU0UsCistCQlMQVNUCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGNwcmVmaXggPSAiTUVUQV9DTE9TRV9ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9 ICJtZXRhX2Nsb3NlX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51 bSBDbG9zZURpYWxvZ1Jlc3BvbnNlIHsKKy0JCVdBSVQsCistCQlGT1JDRV9DTE9TRQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRhX2NvbXBf ZWZmZWN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIENvbXBFZmZlY3QgeworLQkJQ1JF QVRFLAorLQkJVU5NSU5JTUlaRSwKKy0JCURFU1RST1ksCistCQlNSU5JTUlaRSwKKy0JCU5PTkUK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1ldGFfY3Vy c29yX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEN1cnNvciB7CistCQlOT05FLAorLQkJ REVGQVVMVCwKKy0JCU5PUlRIX1JFU0laRSwKKy0JCVNPVVRIX1JFU0laRSwKKy0JCVdFU1RfUkVT SVpFLAorLQkJRUFTVF9SRVNJWkUsCistCQlTRV9SRVNJWkUsCistCQlTV19SRVNJWkUsCistCQlO RV9SRVNJWkUsCistCQlOV19SRVNJWkUsCistCQlNT1ZFX09SX1JFU0laRV9XSU5ET1csCistCQlC VVNZLAorLQkJRE5EX0lOX0RSQUcsCistCQlETkRfTU9WRSwKKy0JCURORF9DT1BZLAorLQkJRE5E X1VOU1VQUE9SVEVEX1RBUkdFVCwKKy0JCVBPSU5USU5HX0hBTkQsCistCQlDUk9TU0hBSVIsCist CQlJQkVBTSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RFQlVHXyIsIHR5 cGVfaWQgPSAibWV0YV9kZWJ1Z190b3BpY19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1 YmxpYyBlbnVtIERlYnVnVG9waWMgeworLQkJVkVSQk9TRSwKKy0JCUZPQ1VTLAorLQkJV09SS0FS RUEsCistCQlTVEFDSywKKy0JCVRIRU1FUywKKy0JCVNNLAorLQkJRVZFTlRTLAorLQkJV0lORE9X X1NUQVRFLAorLQkJV0lORE9XX09QUywKKy0JCUdFT01FVFJZLAorLQkJUExBQ0VNRU5ULAorLQkJ UElORywKKy0JCVhJTkVSQU1BLAorLQkJS0VZQklORElOR1MsCistCQlTWU5DLAorLQkJRVJST1JT LAorLQkJU1RBUlRVUCwKKy0JCVBSRUZTLAorLQkJR1JPVVBTLAorLQkJUkVTSVpJTkcsCistCQlT SEFQRVMsCistCQlDT01QT1NJVE9SLAorLQkJRURHRV9SRVNJU1RBTkNFLAorLQkJREJVUworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJl Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEaXJlY3Rpb24g eworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NLAorLQkJVVAsCistCQlE T1dOLAorLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAi TUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2Nvcm5lcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBEaXNwbGF5Q29ybmVyIHsKKy0JCVRPUExFRlQsCistCQlUT1BS SUdIVCwKKy0JCUJPVFRPTUxFRlQsCistCQlCT1RUT01SSUdIVAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4 ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9kaXJlY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRGlzcGxheURpcmVjdGlvbiB7CistCQlVUCwKKy0J CURPV04sCistCQlMRUZULAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0VE R0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBFZGdlVHlwZSB7CistCQlXSU5ET1csCistCQlNT05JVE9SLAorLQkJU0NSRUVOCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGNwcmVmaXggPSAiTUVUQV9FWElUXyIsIHR5cGVfaWQgPSAibWV0YV9leGl0X2NvZGVf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRXhpdENvZGUgeworLQkJU1VDQ0VTUywKKy0J CUVSUk9SCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1l dGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBG cmFtZUZsYWdzIHsKKy0JCUFMTE9XU19ERUxFVEUsCistCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9X U19NSU5JTUlaRSwKKy0JCUFMTE9XU19NQVhJTUlaRSwKKy0JCUFMTE9XU19WRVJUSUNBTF9SRVNJ WkUsCistCQlBTExPV1NfSE9SSVpPTlRBTF9SRVNJWkUsCistCQlIQVNfRk9DVVMsCistCQlTSEFE RUQsCistCQlTVFVDSywKKy0JCU1BWElNSVpFRCwKKy0JCUFMTE9XU19TSEFERSwKKy0JCUFMTE9X U19NT1ZFLAorLQkJRlVMTFNDUkVFTiwKKy0JCUlTX0ZMQVNISU5HLAorLQkJQUJPVkUsCistCQlU SUxFRF9MRUZULAorLQkJVElMRURfUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZS QU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gRnJhbWVUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURJQUxPRywKKy0JCU1PREFM X0RJQUxPRywKKy0JCVVUSUxJVFksCistCQlNRU5VLAorLQkJQk9SREVSLAorLQkJQVRUQUNIRUQs CistCQlMQVNUOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3Bf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gR3JhYk9wIHsKKy0JCU5PTkUsCistCQlXSU5E T1dfQkFTRSwKKy0JCUNPTVBPU0lUT1IsCistCQlXQVlMQU5EX1BPUFVQLAorLQkJRlJBTUVfQlVU VE9OLAorLQkJTU9WSU5HLAorLQkJUkVTSVpJTkdfTlcsCistCQlSRVNJWklOR19OLAorLQkJUkVT SVpJTkdfTkUsCistCQlSRVNJWklOR19FLAorLQkJUkVTSVpJTkdfU1csCistCQlSRVNJWklOR19T LAorLQkJUkVTSVpJTkdfU0UsCistCQlSRVNJWklOR19XLAorLQkJS0VZQk9BUkRfTU9WSU5HLAor LQkJS0VZQk9BUkRfUkVTSVpJTkdfVU5LTk9XTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05XLAor LQkJS0VZQk9BUkRfUkVTSVpJTkdfTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05FLAorLQkJS0VZ Qk9BUkRfUkVTSVpJTkdfRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NXLAorLQkJS0VZQk9BUkRf UkVTSVpJTkdfUywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorLQkJS0VZQk9BUkRfUkVTSVpJ TkdfVworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElBTE9H X1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfcmVz cG9uc2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gSW5oaWJpdFNob3J0Y3V0c0RpYWxv Z1Jlc3BvbnNlIHsKKy0JCUFMTE9XLAorLQkJREVOWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlv bl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKy0JCU5P TkUsCistCQlXT1JLU1BBQ0VfMSwKKy0JCVdPUktTUEFDRV8yLAorLQkJV09SS1NQQUNFXzMsCist CQlXT1JLU1BBQ0VfNCwKKy0JCVdPUktTUEFDRV81LAorLQkJV09SS1NQQUNFXzYsCistCQlXT1JL U1BBQ0VfNywKKy0JCVdPUktTUEFDRV84LAorLQkJV09SS1NQQUNFXzksCistCQlXT1JLU1BBQ0Vf MTAsCistCQlXT1JLU1BBQ0VfMTEsCistCQlXT1JLU1BBQ0VfMTIsCistCQlXT1JLU1BBQ0VfTEVG VCwKKy0JCVdPUktTUEFDRV9SSUdIVCwKKy0JCVdPUktTUEFDRV9VUCwKKy0JCVdPUktTUEFDRV9E T1dOLAorLQkJV09SS1NQQUNFX0xBU1QsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TLAorLQkJU1dJ VENIX0FQUExJQ0FUSU9OU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9HUk9VUCwKKy0JCVNXSVRDSF9H Uk9VUF9CQUNLV0FSRCwKKy0JCVNXSVRDSF9XSU5ET1dTLAorLQkJU1dJVENIX1dJTkRPV1NfQkFD S1dBUkQsCistCQlTV0lUQ0hfUEFORUxTLAorLQkJU1dJVENIX1BBTkVMU19CQUNLV0FSRCwKKy0J CUNZQ0xFX0dST1VQLAorLQkJQ1lDTEVfR1JPVVBfQkFDS1dBUkQsCistCQlDWUNMRV9XSU5ET1dT LAorLQkJQ1lDTEVfV0lORE9XU19CQUNLV0FSRCwKKy0JCUNZQ0xFX1BBTkVMUywKKy0JCUNZQ0xF X1BBTkVMU19CQUNLV0FSRCwKKy0JCVNIT1dfREVTS1RPUCwKKy0JCVBBTkVMX01BSU5fTUVOVSwK Ky0JCVBBTkVMX1JVTl9ESUFMT0csCistCQlUT0dHTEVfUkVDT1JESU5HLAorLQkJU0VUX1NQRVdf TUFSSywKKy0JCUFDVElWQVRFX1dJTkRPV19NRU5VLAorLQkJVE9HR0xFX0ZVTExTQ1JFRU4sCist CQlUT0dHTEVfTUFYSU1JWkVELAorLQkJVE9HR0xFX1RJTEVEX0xFRlQsCistCQlUT0dHTEVfVElM RURfUklHSFQsCistCQlUT0dHTEVfQUJPVkUsCistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUs CistCQlUT0dHTEVfU0hBREVELAorLQkJTUlOSU1JWkUsCistCQlDTE9TRSwKKy0JCUJFR0lOX01P VkUsCistCQlCRUdJTl9SRVNJWkUsCistCQlUT0dHTEVfT05fQUxMX1dPUktTUEFDRVMsCistCQlN T1ZFX1RPX1dPUktTUEFDRV8xLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMiwKKy0JCU1PVkVfVE9f V09SS1NQQUNFXzMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV80LAorLQkJTU9WRV9UT19XT1JLU1BB Q0VfNSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzYsCistCQlNT1ZFX1RPX1dPUktTUEFDRV83LAor LQkJTU9WRV9UT19XT1JLU1BBQ0VfOCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzksCistCQlNT1ZF X1RPX1dPUktTUEFDRV8xMCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzExLAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfMTIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MRUZULAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfUklHSFQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9VUCwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFX0RPV04sCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MQVNULAorLQkJTU9WRV9UT19NT05JVE9S X0xFRlQsCistCQlNT1ZFX1RPX01PTklUT1JfUklHSFQsCistCQlNT1ZFX1RPX01PTklUT1JfVVAs CistCQlNT1ZFX1RPX01PTklUT1JfRE9XTiwKKy0JCVJBSVNFX09SX0xPV0VSLAorLQkJUkFJU0Us CistCQlMT1dFUiwKKy0JCU1BWElNSVpFX1ZFUlRJQ0FMTFksCistCQlNQVhJTUlaRV9IT1JJWk9O VEFMTFksCistCQlNT1ZFX1RPX0NPUk5FUl9OVywKKy0JCU1PVkVfVE9fQ09STkVSX05FLAorLQkJ TU9WRV9UT19DT1JORVJfU1csCistCQlNT1ZFX1RPX0NPUk5FUl9TRSwKKy0JCU1PVkVfVE9fU0lE RV9OLAorLQkJTU9WRV9UT19TSURFX1MsCistCQlNT1ZFX1RPX1NJREVfRSwKKy0JCU1PVkVfVE9f U0lERV9XLAorLQkJTU9WRV9UT19DRU5URVIsCistCQlPVkVSTEFZX0tFWSwKKy0JCUlTT19ORVhU X0dST1VQLAorLQkJQUxXQVlTX09OX1RPUCwKKy0JCVNXSVRDSF9NT05JVE9SLAorLQkJUk9UQVRF X01PTklUT1IsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlfQklORElO R18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0J W0ZsYWdzXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nRmxhZ3MgeworLQkJTk9ORSwKKy0JCVBF Ul9XSU5ET1csCistCQlCVUlMVElOLAorLQkJSVNfUkVWRVJTRUQsCistCQlOT05fTUFTS0FCTEUs CistCQlJR05PUkVfQVVUT1JFUEVBVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJf IiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gTGF0ZXJUeXBlIHsKKy0JCVJFU0laRSwKKy0JCUNBTENfU0hPV0lORywKKy0JCUNIRUNLX0ZV TExTQ1JFRU4sCistCQlTWU5DX1NUQUNLLAorLQkJQkVGT1JFX1JFRFJBVywKKy0JCUlETEUKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTG9jYWxl RGlyZWN0aW9uIHsKKy0JCUxUUiwKKy0JCVJUTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFf TUFYSU1JWkVfIiwgdHlwZV9pZCA9ICJtZXRhX21heGltaXplX2ZsYWdzX2dldF90eXBlICgpIild CistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTWF4aW1pemVGbGFncyB7CistCQlIT1JJWk9OVEFM LAorLQkJVkVSVElDQUwsCistCQlCT1RICistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT0RB TF8iLCB0eXBlX2lkID0gIm1ldGFfbW9kYWxfb3B0aW9uc19nZXRfdHlwZSAoKSIpXQorLQlbRmxh Z3NdCistCXB1YmxpYyBlbnVtIE1vZGFsT3B0aW9ucyB7CistCQlQT0lOVEVSX0FMUkVBRFlfR1JB QkJFRCwKKy0JCUtFWUJPQVJEX0FMUkVBRFlfR1JBQkJFRAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfTU9OSVRPUl9TV0lUQ0hfQ09ORklHXyIsIHR5cGVfaWQgPSAibWV0YV9tb25pdG9yX3N3 aXRjaF9jb25maWdfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBNb25pdG9yU3dp dGNoQ29uZmlnVHlwZSB7CistCQlBTExfTUlSUk9SLAorLQkJQUxMX0xJTkVBUiwKKy0JCUVYVEVS TkFMLAorLQkJQlVJTFRJTiwKKy0JCVVOS05PV04KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBNb3Rpb25EaXJlY3Rpb24geworLQkJVVAsCistCQlET1dOLAorLQkJ TEVGVCwKKy0JCVJJR0hULAorLQkJVVBfTEVGVCwKKy0JCVVQX1JJR0hULAorLQkJRE9XTl9MRUZU LAorLQkJRE9XTl9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8i LCB0eXBlX2lkID0gIm1ldGFfcGFkX2FjdGlvbl90eXBlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIFBhZEFjdGlvblR5cGUgeworLQkJQlVUVE9OLAorLQkJUklORywKKy0JCVNUUklQCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9QUkVGXyIsIHR5cGVfaWQgPSAibWV0YV9wcmVmZXJl bmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFByZWZlcmVuY2UgeworLQkJTU9VU0Vf QlVUVE9OX01PRFMsCistCQlGT0NVU19NT0RFLAorLQkJRk9DVVNfTkVXX1dJTkRPV1MsCistCQlB VFRBQ0hfTU9EQUxfRElBTE9HUywKKy0JCVJBSVNFX09OX0NMSUNLLAorLQkJQUNUSU9OX0RPVUJM RV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9NSURETEVfQ0xJQ0tfVElUTEVCQVIsCistCQlB Q1RJT05fUklHSFRfQ0xJQ0tfVElUTEVCQVIsCistCQlBVVRPX1JBSVNFLAorLQkJQVVUT19SQUlT RV9ERUxBWSwKKy0JCUZPQ1VTX0NIQU5HRV9PTl9QT0lOVEVSX1JFU1QsCistCQlUSVRMRUJBUl9G T05ULAorLQkJTlVNX1dPUktTUEFDRVMsCistCQlEWU5BTUlDX1dPUktTUEFDRVMsCistCQlLRVlC SU5ESU5HUywKKy0JCURJU0FCTEVfV09SS0FST1VORFMsCistCQlCVVRUT05fTEFZT1VULAorLQkJ V09SS1NQQUNFX05BTUVTLAorLQkJVklTVUFMX0JFTEwsCistCQlBVURJQkxFX0JFTEwsCistCQlW SVNVQUxfQkVMTF9UWVBFLAorLQkJR05PTUVfQUNDRVNTSUJJTElUWSwKKy0JCUdOT01FX0FOSU1B VElPTlMsCistCQlDVVJTT1JfVEhFTUUsCistCQlDVVJTT1JfU0laRSwKKy0JCVJFU0laRV9XSVRI X1JJR0hUX0JVVFRPTiwKKy0JCUVER0VfVElMSU5HLAorLQkJRk9SQ0VfRlVMTFNDUkVFTiwKKy0J CVdPUktTUEFDRVNfT05MWV9PTl9QUklNQVJZLAorLQkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwK Ky0JCUFVVE9fTUFYSU1JWkUsCistCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVT SE9MRDsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21v ZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2hhZG93TW9kZSB7CistCQlBVVRPLAor LQkJRk9SQ0VEX09GRiwKKy0JCUZPUkNFRF9PTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFf U0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51 bSBTaWRlIHsKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVRPUCwKKy0JCUJPVFRPTQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVf Y2hhbmdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpemVDaGFuZ2UgeworLQkJTUFY SU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJRlVMTFNDUkVFTiwKKy0JCVVORlVMTFNDUkVFTgor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNr X2xheWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFN0YWNrTGF5ZXIgeworLQkJREVT S1RPUCwKKy0JCUJPVFRPTSwKKy0JCU5PUk1BTCwKKy0JCVRPUCwKKy0JCURPQ0ssCistCQlPVkVS UklERV9SRURJUkVDVCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9M SVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBUYWJMaXN0IHsKKy0JCU5PUk1BTCwKKy0JCURPQ0tTLAorLQkJR1JPVVAsCistCQlOT1JN QUxfQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfU0hPV18iLCB0eXBlX2lkID0g Im1ldGFfdGFiX3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBUYWJTaG93 VHlwZSB7CistCQlJQ09OLAorLQkJSU5TVEFOVExZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgp IildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gVmlydHVhbE1vZGlmaWVyIHsKKy0JCVNISUZU X01BU0ssCistCQlDT05UUk9MX01BU0ssCistCQlBTFRfTUFTSywKKy0JCU1FVEFfTUFTSywKKy0J CVNVUEVSX01BU0ssCistCQlIWVBFUl9NQVNLLAorLQkJTU9EMl9NQVNLLAorLQkJTU9EM19NQVNL LAorLQkJTU9ENF9NQVNLLAorLQkJTU9ENV9NQVNLCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlw ZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dDbGllbnRUeXBlIHsKKy0JCVdB WUxBTkQsCistCQlYMTEKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19NRU5VXyIs IHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKy0JCVdNLAorLQkJQVBQCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgeworLQkJTk9STUFMLAorLQkJREVTS1RP UCwKKy0JCURPQ0ssCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCistCQlUT09MQkFSLAor LQkJTUVOVSwKKy0JCVVUSUxJVFksCistCQlTUExBU0hTQ1JFRU4sCistCQlEUk9QRE9XTl9NRU5V LAorLQkJUE9QVVBfTUVOVSwKKy0JCVRPT0xUSVAsCistCQlOT1RJRklDQVRJT04sCistCQlDT01C TywKKy0JCURORCwKKy0JCU9WRVJSSURFX09USEVSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9 IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRh LklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9z ID0gNC45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlz cGxheSBkaXNwbGF5LCBNZXRhLldpbmRvdyB3aW5kb3csIFtDQ29kZSAodHlwZSA9ICJDbHV0dGVy S2V5RXZlbnQqIildIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmlu ZGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9p ZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlByZWZlcmVuY2UgcHJlZik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBXaW5kb3dGb3JlYWNoRnVuYyAo TWV0YS5XaW5kb3cgd2luZG93KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9USU1FIild CistCXB1YmxpYyBjb25zdCBpbnQgQ1VSUkVOVF9USU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9E RUZBVUxUX0lDT05fTkFNRSIpXQorLQlwdWJsaWMgY29uc3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9O QU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29uc3Qg aW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX1dJRFRIIildCistCXB1 YmxpYyBjb25zdCBpbnQgSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVS U0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1BSk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9 ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSUNST19WRVJTSU9O OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fSEVJR0hUIildCistCXB1YmxpYyBjb25z dCBpbnQgTUlOSV9JQ09OX0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJ RFRIIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUg PSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlOT1JfVkVSU0lP TjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIildCistCXB1YmxpYyBj b25zdCBpbnQgUExVR0lOX0FQSV9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklU WV9CRUZPUkVfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfQkVGT1JFX1JF RFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCistCXB1 YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVU QV9QUklPUklUWV9SRURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRURSQVc7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFU0laRSIpXQorLQlwdWJsaWMgY29uc3Qg aW50IFBSSU9SSVRZX1JFU0laRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tF WUJPQVJEX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lE OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorLQlwdWJs aWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBz dGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNzaW9uICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0X29wdGlvbl9jb250ZXh0ICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIild CistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmVwbGFjZV9jdXJyZW50X3dtICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMg Ym9vbCBpc19yZXN0YXJ0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBxdWl0IChN ZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3Rl cl93aXRoX3Nlc3Npb24gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlc3RhcnQg KHN0cmluZz8gbWVzc2FnZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZ25vbWVfd21fa2V5YmluZGluZ3MgKHN0 cmluZyB3bV9rZXliaW5kaW5ncyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF93 bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHgx MV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOworLX0KK2RpZmYgLS1naXQg dmFwaS9saWJtdXR0ZXItNS5kZXBzIHZhcGkvbGlibXV0dGVyLTYuZGVwcworc2ltaWxhcml0eSBp bmRleCA1MCUKK3JlbmFtZSBmcm9tIHZhcGkvbGlibXV0dGVyLTUuZGVwcworcmVuYW1lIHRvIHZh cGkvbGlibXV0dGVyLTYuZGVwcworaW5kZXggNDhhYTc1NjMuLjIyMzUyNWU0IDEwMDY0NAorLS0t IHZhcGkvbGlibXV0dGVyLTUuZGVwcworKysrIHZhcGkvbGlibXV0dGVyLTYuZGVwcworQEAgLTEs NSArMSw2IEBACisgZ3RrKy0zLjAKKyBqc29uLWdsaWItMS4wCistbXV0dGVyLWNsdXR0ZXItNQor K211dHRlci1jbHV0dGVyLTYKKyB4MTEKKyB4Zml4ZXMtNC4wCisrZ3JhcGhlbmUtZ29iamVjdC0x LjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNS52YXBpIHZhcGkvbGlibXV0dGVyLTYudmFw aQorc2ltaWxhcml0eSBpbmRleCA5NyUKK3JlbmFtZSBmcm9tIHZhcGkvbGlibXV0dGVyLTUudmFw aQorcmVuYW1lIHRvIHZhcGkvbGlibXV0dGVyLTYudmFwaQoraW5kZXggYjk1YTI4ZTYuLmIzNmJl MWI3IDEwMDY0NAorLS0tIHZhcGkvbGlibXV0dGVyLTUudmFwaQorKysrIHZhcGkvbGlibXV0dGVy LTYudmFwaQorQEAgLTEsMTIgKzEsMTAgQEAKKy0vKiBsaWJtdXR0ZXItNS52YXBpIGdlbmVyYXRl ZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIGxpYm11dHRlci02LnZhcGkgZ2Vu ZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4 ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICI1IiwgbG93 ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCisrW0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBn aXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJl Zml4ID0gIm1ldGFfIildCisgbmFtZXNwYWNlIE1ldGEgeworIAluYW1lc3BhY2UgQ29tcG9zaXRv ciB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkiKV0KKyAJ CXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEu RGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VtcHR5X3N0YWdlX2lucHV0X3JlZ2lv biIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0 YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW5hYmxlX3VucmVkaXJlY3RfZm9y X2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFibGVfdW5yZWRpcmVjdF9mb3Jf ZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZm9jdXNfc3Rh Z2Vfd2luZG93IildCitAQCAtMjEsOCArMTksNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0ZXIuQWN0b3I+IGdldF93aW5kb3dfYWN0 b3JzIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2dy b3VwX2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwg Y25hbWUgPSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIFguWHNl cnZlclJlZ2lvbiByZWdpb24pOworIAl9CisgCW5hbWVzcGFjZSBQcmVmcyB7CisgCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19i ZWxsX2lzX2F1ZGlibGUiKV0KK0BAIC0xNjQsNyArMTYwLDcgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0ZSk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg a2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3Qp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIGxpZF9pc19jbG9zZWRfY2hhbmdlZCAoYm9vbCBvYmpl Y3QpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dy b3VuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ2V0X3R5cGUgKCkiKV0KK0BAIC0x NzQsNyArMTcwLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHJl ZnJlc2hfYWxsICgpOworIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEs IEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3Vu ZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBj b2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9w LkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5G aWxlPyBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGljIHZv aWQgc2V0X2dyYWRpZW50IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVj dGlvbiwgQ2x1dHRlci5Db2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOwor IAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxh eSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CitAQCAtMjc1LDcgKzI3MSw3IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOwor IAkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBjdXJzb3JfbW92ZWQgKGZsb2F0IG9iamVjdCwgZmxvYXQgcDApOworKwkJcHVibGljIHNpZ25h bCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgdmlzaWJpbGl0eV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBl ICgpIildCitAQCAtMzI3LDYgKzMyMyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBi b29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsK KyAJCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193aW5kb3cgeyBnZXQ7IH0KKyAJCXB1YmxpYyBz aWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCBDbHV0dGVyLklu cHV0RGV2aWNlIHAwLCB1aW50IHAxKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjbG9zaW5nICgp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl91cGRhdGVkICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGdsX3ZpZGVvX21lbW9yeV9wdXJnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgZ3JhYl9vcF9iZWdpbiAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1l dGEuR3JhYk9wIHAxKTsKK0BAIC0zNTAsNiArMzQ3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDEx X2Rpc3BsYXlfb3BlbmVkICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X3Nl dHVwICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZG5k LmgiLCB0eXBlX2lkID0gIm1ldGFfZG5kX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBE bmQgOiBHTGliLk9iamVjdCB7CitAQCAtMzcwLDExICszNjgsMTAgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJcHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBv d25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMgdWlu dCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/ IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdl dF9jb3JlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0 X2Zvcl9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworIAkJcHVibGljIGludDY0IGdldF9pZGxldGlt ZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBpZCk7CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KysJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorIAlbQ29t cGFjdF0KK0BAIC01MzYsMTUgKzUzMywxNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhcGVkX3Rl eHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBDbHV0 dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5D b250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0 dXJlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hhcGVkVGV4dHVyZSAoKTsK Ky0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IGNs aXApOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xl SW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAo KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFw cyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190 ZXh0dXJlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5S ZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgs IGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNp emVfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRfdHlw ZSAoKSIpXQorQEAgLTc1NiwxNyArNzUyLDE2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGlj IGFic3RyYWN0IGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVu dG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ cHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9p bWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEu V2luZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X3RleHR1cmUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNoYXBlZFRleHR1cmUg Z2V0X3RleHR1cmUgKCk7CisgCQlwdWJsaWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7CisgCQlwdWJs aWMgdm9pZCBzeW5jX3Zpc2liaWxpdHkgKCk7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgbWV0YV93 aW5kb3cgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgc3RyaW5nIHNoYWRvd19jbGFzcyB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNl dDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRhbWFnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgZWZmZWN0c19jb21wbGV0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3Rf ZnJhbWUgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdGhhd2VkICgpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWdyb3VwLmgiLCB0eXBlX2lk ID0gIm1ldGFfd2luZG93X2dyb3VwX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBXaW5k b3dHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRh YmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC04MTMsNyAr ODA4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3Bh Y2UgZ2V0X2FjdGl2ZV93b3Jrc3BhY2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9hY3RpdmVfd29y a3NwYWNlX2luZGV4ICgpOworIAkJcHVibGljIGludCBnZXRfbl93b3Jrc3BhY2VzICgpOworLQkJ cHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50 IGluZGV4KTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBnZXRfd29ya3NwYWNl X2J5X2luZGV4IChpbnQgaW5kZXgpOworIAkJcHVibGljIHZvaWQgb3ZlcnJpZGVfd29ya3NwYWNl X2xheW91dCAoTWV0YS5EaXNwbGF5Q29ybmVyIHN0YXJ0aW5nX2Nvcm5lciwgYm9vbCB2ZXJ0aWNh bF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2NvbHVtbnMpOworIAkJcHVibGljIHZvaWQgcmVt b3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCB1aW50MzIgdGltZXN0YW1w KTsKKyAJCXB1YmxpYyB2b2lkIHJlb3JkZXJfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jr c3BhY2UsIGludCBuZXdfaW5kZXgpOworQEAgLTgzMywxMSArODI4LDEzIEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgWDExRGlz cGxheSAoKTsKKysJCXB1YmxpYyB2b2lkIGNsZWFyX3N0YWdlX2lucHV0X3JlZ2lvbiAoKTsKKyAJ CXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworIAkJcHVibGljIGludCBnZXRf c2NyZWVuX251bWJlciAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3NoYXBlX2V2ZW50X2Jhc2UgKCk7 CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY21fc2Vs ZWN0aW9uICgpOworKwkJcHVibGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoWC5Yc2Vy dmVyUmVnaW9uIHJlZ2lvbik7CisgCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9jdXNf d2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIiwgdHlwZV9jbmFtZSA9ICJNZXRhQ2xvc2VE aWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX2dldF90eXBlICgp IildCitAQCAtODk5LDcgKzg5Niw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1aW50 IHZlcnNpb25fbWljcm87CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVj dGFuZ2xlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9 ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIild CisgCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKyAJCXB1YmxpYyBpbnQgeDsKKyAJCXB1Ymxp YyBpbnQgeTsKK0BAIC0xNDQzLDYgKzE0NDAsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGJv b2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfY2x1dHRlcl9kZWJ1Z19mbGFn cyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBk cmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQg ZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGdfdXRmOF9zdHJuZHVwIChz dHJpbmcgc3JjLCBzaXplX3Qgbik7CitAQCAtMTQ1OSw2ICsxNDU4LDggQEAgbmFtZXNwYWNlIE1l dGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVi bGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1v dmVfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENs dXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlj a19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgaW50 IHJ1biAoKTsKK0BAIC0xNDY3LDUgKzE0NjgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2luaXQgKCk7 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMg c3RhdGljIGJvb2wgeDExX2luaXRfZ2RrX2Rpc3BsYXkgKCkgdGhyb3dzIEdMaWIuRXJyb3I7Cisg fQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhIHZhcGkvbGlibXV0dGVy LTctY3VzdG9tLnZhbGEKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uMWUw YjkxN2MKKy0tLSAvZGV2L251bGwKKysrKyB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhCitA QCAtMCwwICsxLDcgQEAKKytbQ0NvZGUgKGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBz dHJ1Y3QgYmVmb3JlX2ZyYW1lIHsKKyt9CisrCisrW0NDb2RlIChoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKytwdWJsaWMgc3RydWN0IGZyYW1lIHsKKyt9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVy LTcuZGVwcyB2YXBpL2xpYm11dHRlci03LmRlcHMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwMC4uMmVmOTE5ZWUKKy0tLSAvZGV2L251bGwKKysrKyB2YXBpL2xpYm11dHRlci03 LmRlcHMKK0BAIC0wLDAgKzEsNiBAQAorK2d0aystMy4wCisranNvbi1nbGliLTEuMAorK211dHRl ci1jbHV0dGVyLTcKKyt4MTEKKyt4Zml4ZXMtNC4wCisrZ3JhcGhlbmUtZ29iamVjdC0xLjAKK2Rp ZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy52YXBpIHZhcGkvbGlibXV0dGVyLTcudmFwaQorc2lt aWxhcml0eSBpbmRleCA3NSUKK3JlbmFtZSBmcm9tIHZhcGkvbGlibXV0dGVyLTMudmFwaQorcmVu YW1lIHRvIHZhcGkvbGlibXV0dGVyLTcudmFwaQoraW5kZXggMTcxNWFhOGYuLjkwYzQxNTkwIDEw MDY0NAorLS0tIHZhcGkvbGlibXV0dGVyLTMudmFwaQorKysrIHZhcGkvbGlibXV0dGVyLTcudmFw aQorQEAgLTEsMTIgKzEsMTAgQEAKKy0vKiBsaWJtdXR0ZXItMy52YXBpIGdlbmVyYXRlZCBieSB2 YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIGxpYm11dHRlci03LnZhcGkgZ2VuZXJhdGVk IGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIk1l dGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICIzIiwgbG93ZXJfY2Fz ZV9jcHJlZml4ID0gIm1ldGFfIildCisrW0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFt ZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0g Im1ldGFfIildCisgbmFtZXNwYWNlIE1ldGEgeworIAluYW1lc3BhY2UgQ29tcG9zaXRvciB7Cisg CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwg Y25hbWUgPSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1Ymxp YyBzdGF0aWMgdm9pZCBkaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxh eSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIGVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNw bGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3Bs YXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxh eSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZm9jdXNfc3RhZ2Vfd2lu ZG93IildCitAQCAtMjEsOCArMTksNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0ZXIuQWN0b3I+IGdldF93aW5kb3dfYWN0b3JzIChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2dyb3VwX2Zv cl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf d2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIFguWHNlcnZlclJl Z2lvbiByZWdpb24pOworIAl9CisgCW5hbWVzcGFjZSBQcmVmcyB7CisgCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19iZWxsX2lz X2F1ZGlibGUiKV0KK0BAIC00Nyw2ICs0Myw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyBzdGF0aWMgTWV0YS5CdXR0b25MYXlvdXQgcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQgKCk7Cisg CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfY2VudGVyX25ld193aW5kb3dzIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wg cHJlZnNfZ2V0X2NlbnRlcl9uZXdfd2luZG93cyAoKTsKKysJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jaGVja19hbGl2 ZV90aW1lb3V0IildCisrCQlwdWJsaWMgc3RhdGljIHVpbnQgcHJlZnNfZ2V0X2NoZWNrX2FsaXZl X3RpbWVvdXQgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY29tcG9zaXRpbmdfbWFuYWdlciIpXQorIAkJcHVi bGljIHN0YXRpYyBib29sIHByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyICgpOworIAkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2N1cnNvcl9zaXplIildCitAQCAtNzUsOCArNzMsNiBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7 CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9ucyIpXQorIAkJcHVibGljIHN0YXRpYyBib29s IHByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2lnbm9yZV9yZXF1 ZXN0X2hpZGVfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfaWdu b3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9rZXliaW5kaW5nX2Fj dGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBNZXRhLktleUJpbmRpbmdBY3Rpb24gcHJlZnNfZ2V0 X2tleWJpbmRpbmdfYWN0aW9uIChzdHJpbmcgbmFtZSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbW91c2VfYnV0 dG9uX21lbnUiKV0KK0BAIC0xMDUsOCArMTAxLDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHN0YXRpYyB2b2lkIHByZWZzX2luaXQgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfZm9yY2VfZnVsbHNj cmVlbiIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVu IChib29sIHdoZXRoZXIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGVi YXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfaWdub3JlX3JlcXVlc3RfaGlk ZV90aXRsZWJhciAoYm9vbCB3aGV0aGVyKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9udW1fd29ya3NwYWNlcyIp XQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9udW1fd29ya3NwYWNlcyAoaW50IG5f d29ya3NwYWNlcyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQorQEAg LTExNywxMiArMTExLDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9p ZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJuYWxf YmluZGluZ19uYW1lX2Zvcl9hY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4dGVy bmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1aW50IGtleWJpbmRpbmdfYWN0aW9uKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFf Z191dGY4X3N0cm5kdXAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGdfdXRmOF9zdHJuZHVw IChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9sb2NhbGVfZGlyZWN0aW9uIildCisgCQlw dWJsaWMgc3RhdGljIE1ldGEuTG9jYWxlRGlyZWN0aW9uIGdldF9sb2NhbGVfZGlyZWN0aW9uICgp OworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAi bWV0YV9ncmF2aXR5X3RvX3N0cmluZyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmlu ZyBncmF2aXR5X3RvX3N0cmluZyAoaW50IGdyYXZpdHkpOworKwkJcHVibGljIHN0YXRpYyB1bm93 bmVkIHN0cmluZyBncmF2aXR5X3RvX3N0cmluZyAoTWV0YS5HcmF2aXR5IGdyYXZpdHkpOworIAkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9p c19kZWJ1Z2dpbmciKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19kZWJ1Z2dpbmcgKCk7Cisg CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRh X2lzX3N5bmNpbmciKV0KK0BAIC0xNjUsMTIgKzE1NywxMyBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlwdWJsaWMgdW5vd25lZCBNZXRhLkRuZCBnZXRfZG5kICgpOworIAkJcHVibGljIHVub3duZWQg TWV0YS5SZW1vdGVBY2Nlc3NDb250cm9sbGVyIGdldF9yZW1vdGVfYWNjZXNzX2NvbnRyb2xsZXIg KCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsKKysJCXB1 YmxpYyBib29sIGlzX3JlbmRlcmluZ19oYXJkd2FyZV9hY2NlbGVyYXRlZCAoKTsKKyAJCXB1Ymxp YyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf a2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcgb3B0aW9ucyk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVj dCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9i amVjdCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorQEAg LTE4MCw3ICsxNzMsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQg cmVmcmVzaF9hbGwgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxl MSwgR0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3Jv dW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9y IGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0 b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGli LkZpbGU/IGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMg dm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGly ZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNw bGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KK0BAIC0xOTAsOSArMTgzLDE4IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJcHVibGljIGNsYXNzIEJhY2tncm91bmRBY3RvciA6IENsdXR0ZXIuQWN0 b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1YmxpYyBCYWNrZ3JvdW5k QWN0b3IgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBpbnQgbW9uaXRvcik7CisrCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGludCBtb25p dG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWJhY2tncm91bmQtY29udGVudC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tn cm91bmRfY29udGVudF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZENv bnRlbnQgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBCYWNrZ3JvdW5kQ29udGVu dCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Db250ZW50IEBuZXcgKE1ldGEuRGlzcGxh eSBkaXNwbGF5LCBpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmFja2dyb3VuZCAo TWV0YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQpOworIAkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50 IChib29sIGVuYWJsZWQsIGludCBoZWlnaHQsIGRvdWJsZSB0b25lX3N0YXJ0KTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9tb25pdG9yIChpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMgdm9pZCBzZXRfdmln bmV0dGUgKGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5lc3MsIGRvdWJsZSBzaGFycG5lc3Mp OworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kIGJhY2tn cm91bmQgeyBvd25lZCBnZXQ7IHNldDsgfQorQEAgLTI3NywxNCArMjc5LDE0IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRyYWNrZXIgZ2V0 X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlwdWJsaWMgdm9pZCBnZXRf aG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CisgCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlciAo aW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsKKysJCXB1YmxpYyBib29s IGdldF9wb2ludGVyX3Zpc2libGUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUg Z2V0X3Nwcml0ZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wg dmlzaWJsZSk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkJhY2tlbmQg YmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg Y3Vyc29yX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9kYnVzX2Rpc3BsYXlf Y29uZmlnX3NrZWxldG9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEQnVzRGlzcGxh eUNvbmZpZ1NrZWxldG9uIDogR0xpYi5EQnVzSW50ZXJmYWNlU2tlbGV0b24sIEdMaWIuREJ1c0lu dGVyZmFjZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgREJ1c0Rpc3BsYXlDb25maWdTa2VsZXRvbiAoKTsKKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBjdXJzb3JfbW92ZWQgKGZsb2F0IHgsIGZsb2F0IHkpOworKwkJcHVibGljIHNpZ25h bCB2b2lkIHZpc2liaWxpdHlfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKK0BAIC0zMDks MzIgKzMxMSwzOSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgYm9vbCBnZXRfbW9uaXRv cl9pbl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMgaW50IGdldF9tb25pdG9y X2luZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKyAJCXB1YmxpYyBpbnQgZ2V0 X21vbml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9yLCBNZXRhLkRpc3BsYXlE aXJlY3Rpb24gZGlyKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfbW9uaXRvcl9zY2FsZSAoaW50IG1v bml0b3IpOworIAkJcHVibGljIGludCBnZXRfbl9tb25pdG9ycyAoKTsKKyAJCXB1YmxpYyBzdHJp bmcgZ2V0X3BhZF9hY3Rpb25fbGFiZWwgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBNZXRhLlBh ZEFjdGlvblR5cGUgYWN0aW9uX3R5cGUsIHVpbnQgYWN0aW9uX251bWJlcik7CisgCQlwdWJsaWMg aW50IGdldF9wcmltYXJ5X21vbml0b3IgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNlbGVj dGlvbiBnZXRfc2VsZWN0aW9uICgpOworIAkJcHVibGljIHZvaWQgZ2V0X3NpemUgKG91dCBpbnQg d2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU291bmRQbGF5 ZXIgZ2V0X3NvdW5kX3BsYXllciAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdl dF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFj ZSk7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGdldF90YWJfbGlzdCAo TWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlPyB3b3Jrc3BhY2UpOworIAkJcHVibGlj IHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0 YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRvdz8gd2luZG93LCBib29sIGJhY2t3YXJk KTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlTWFuYWdlciBnZXRfd29ya3NwYWNl X21hbmFnZXIgKCk7CistCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNj ZWxlcmF0b3IpOworKwkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2Vs ZXJhdG9yLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncyk7CisgCQlwdWJsaWMgYm9vbCBpc19w b2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5j ZSk7CisgCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUpOworIAkJ cHVibGljIHZvaWQgcmVxdWVzdF9wYWRfb3NkIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgYm9v bCBlZGl0aW9uX21vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3Ig Y3Vyc29yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1cyAoTWV0YS5XaW5kb3cgd2lu ZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsKKyAJCXB1YmxpYyBHTGli LlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xpYi5T TGlzdDxNZXRhLldpbmRvdz4gd2luZG93cyk7CisgCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19leHRl bmRlZF9iYXJyaWVycyAoKTsKKyAJCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1aW50 MzIgdGltZXN0YW1wKTsKKyAJCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWludCBh Y3Rpb25faWQpOworIAkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGltZXN0 YW1wKTsKKysJCXB1YmxpYyB2b2lkIHVuc2V0X2lucHV0X2ZvY3VzICh1aW50MzIgdGltZXN0YW1w KTsKKyAJCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwg dWludDMyIHRpbWUyKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193aW5kb3cgeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2Jq ZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRv cl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlIHAwLCB1aW50IHAx KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGN1cnNvcl91cGRhdGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdsX3ZpZGVvX21l bW9yeV9wdXJnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9iZWdpbiAoTWV0 YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2VuZCAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5X aW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBpbl9mdWxs c2NyZWVuX2NoYW5nZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIGJvb2wgaW5pdF94c2VydmVyIChH TGliLlRhc2sgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgYm9vbCBtb2RpZmllcnNfYWNjZWxl cmF0b3JfYWN0aXZhdGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIG92ZXJsYXlfa2V5ICgp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIHBhZF9tb2RlX3N3aXRjaCAoQ2x1dHRlci5JbnB1dERl dmljZSBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworQEAgLTM0NSw3ICszNTQsNiBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXNpemVfcG9wdXAgKGJv b2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBpbnQgcDIpOworIAkJcHVibGlj IHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJpbmc/IG1lc3NhZ2UpOworIAkJ cHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVza3RvcF9jaGFuZ2VkICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHN0YXJ0dXBfc2VxdWVuY2VfY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfY3JlYXRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZGVtYW5kc19hdHRlbnRpb24gKE1ldGEuV2lu ZG93IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2VudGVyZWRfbW9uaXRv ciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworQEAgLTM1NCw2ICszNjIsNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya2FyZWFzX2NoYW5nZWQgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfY2xvc2luZyAoKTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9vcGVuZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgeDExX2Rpc3BsYXlfc2V0dXAgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1kbmQuaCIsIHR5cGVfaWQgPSAibWV0YV9kbmRfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGNsYXNzIERuZCA6IEdMaWIuT2JqZWN0IHsKK0BAIC0zNjMsNyArMzcyLDcgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9sZWF2ZSAoKTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfcG9zaXRpb25fY2hhbmdlIChpbnQgb2JqZWN0LCBpbnQg cDApOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNs YXNzIEZyYW1lIHsKKyAJfQorQEAgLTM3NCwxMyArMzgzLDEyIEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3du ZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHVpbnQg YWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBj YWxsYmFjayk7CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRf Y29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9m b3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUg KCk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworIAkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9Cisr CQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UgeyBvd25lZCBnZXQ7IGNvbnN0cnVj dDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2tleWJpbmRpbmdz LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rpb24g PSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lk ID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCisgCXB1Ymxp YyBjbGFzcyBLZXlCaW5kaW5nIHsKKyAJCXB1YmxpYyB1aW50IGdldF9tYXNrICgpOworQEAgLTM5 MSw4ICszOTksMjEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJW0NDb2RlIChjbmFtZSA9ICJtZXRh X2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIpXQorIAkJcHVibGljIHN0YXRpYyBib29s IHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1 bmM/IGhhbmRsZXIpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCIsIHR5cGVfaWQgPSAibWV0YV9sYXVuY2hfY29udGV4dF9nZXRf dHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgTGF1bmNoQ29udGV4dCA6IEdMaWIuQXBwTGF1bmNo Q29udGV4dCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisr CQlwcm90ZWN0ZWQgTGF1bmNoQ29udGV4dCAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF90aW1lc3Rh bXAgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgc2V0X3dvcmtzcGFjZSAoTWV0 YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGlj IE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorKwkJcHVibGljIHVpbnQgdGltZXN0YW1wIHsgZ2V0OyBzZXQ7IH0KKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSB7 IG93bmVkIGdldDsgc2V0OyB9CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9tb25pdG9yX21hbmFn ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIE1vbml0b3JNYW5hZ2Vy IDogTWV0YS5EQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uLCBHTGliLkRCdXNJbnRlcmZhY2UsIEdM aWIuREJ1c0ludGVyZmFjZSB7CisrCXB1YmxpYyBjbGFzcyBNb25pdG9yTWFuYWdlciA6IEdMaWIu T2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKyAJCXB1YmxpYyBib29sIGNhbl9zd2l0Y2hf Y29uZmlnICgpOworQEAgLTQwNyw2ICs0MjgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0 b3JzX2NoYW5nZWRfaW50ZXJuYWwgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG93ZXJfc2F2 ZV9tb2RlX2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1wbHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdMaWIuT2JqZWN0IHsKK0BAIC00MzAs NiArNDUyLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxs X3N3aXRjaF93b3Jrc3BhY2UgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKysJCVtO b1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGxvY2F0ZV9wb2ludGVyICgpOworIAkJ cHVibGljIHN0YXRpYyB2b2lkIG1hbmFnZXJfc2V0X3BsdWdpbl90eXBlIChHTGliLlR5cGUgZ3R5 cGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwIChNZXRhLldp bmRvd0FjdG9yIGFjdG9yKTsKK0BAIC00NjUsMjYgKzQ4OSw1NiBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NDb250cm9sbGVyIDogR0xpYi5PYmplY3Qgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVk IFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBpbmhpYml0X3JlbW90 ZV9hY2Nlc3MgKCk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXRfcmVtb3RlX2FjY2VzcyAoKTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBuZXdfaGFuZGxlIChNZXRhLlJlbW90ZUFjY2Vzc0hhbmRs ZSBvYmplY3QpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVtb3RlX2FjY2Vz c19oYW5kbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFJlbW90ZUFjY2Vzc0hhbmRs ZSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NIYW5kbGUgKCk7CisrCQlwdWJsaWMgYm9v bCBnZXRfZGlzYWJsZV9hbmltYXRpb25zICgpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBzdG9w ICgpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9vbCBpc19yZWNvcmRpbmcg eyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0b3BwZWQgKCk7Cisg CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9 ICJtZXRhX3NlbGVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0aW9u IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorKwkJcHVibGljIFNlbGVjdGlvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworKwkJcHVi bGljIEdMaWIuTGlzdDxzdHJpbmc+IGdldF9taW1ldHlwZXMgKE1ldGEuU2VsZWN0aW9uVHlwZSBz ZWxlY3Rpb25fdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfb3duZXIgKE1ldGEuU2VsZWN0aW9u VHlwZSBzZWxlY3Rpb25fdHlwZSwgTWV0YS5TZWxlY3Rpb25Tb3VyY2Ugb3duZXIpOworKwkJcHVi bGljIGFzeW5jIGJvb2wgdHJhbnNmZXJfYXN5bmMgKE1ldGEuU2VsZWN0aW9uVHlwZSBzZWxlY3Rp b25fdHlwZSwgc3RyaW5nIG1pbWV0eXBlLCBzc2l6ZV90IHNpemUsIEdMaWIuT3V0cHV0U3RyZWFt IG91dHB1dCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9y OworKwkJcHVibGljIHZvaWQgdW5zZXRfb3duZXIgKE1ldGEuU2VsZWN0aW9uVHlwZSBzZWxlY3Rp b25fdHlwZSwgTWV0YS5TZWxlY3Rpb25Tb3VyY2Ugb3duZXIpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIG93bmVyX2NoYW5nZWQgKHVpbnQgb2JqZWN0LCBNZXRhLlNlbGVjdGlvblNvdXJjZSBwMCk7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9p ZCA9ICJtZXRhX3NlbGVjdGlvbl9zb3VyY2VfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNz IFNlbGVjdGlvblNvdXJjZSA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWxlY3Rpb25Tb3VyY2UgKCk7Cisr CQlwdWJsaWMgdmlydHVhbCBHTGliLkxpc3Q8c3RyaW5nPiBnZXRfbWltZXR5cGVzICgpOworKwkJ cHVibGljIGJvb2wgaXNfYWN0aXZlICgpOworKwkJcHVibGljIHZpcnR1YWwgYXN5bmMgR0xpYi5J bnB1dFN0cmVhbSByZWFkX2FzeW5jIChzdHJpbmcgbWltZXR5cGUsIEdMaWIuQ2FuY2VsbGFibGU/ IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIGFjdGl2YXRlZCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRlYWN0 aXZhdGVkICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fc291cmNlX21lbW9yeV9nZXRfdHlwZSAoKSIp XQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0aW9uU291cmNlTWVtb3J5IDogTWV0YS5TZWxlY3Rpb25T b3VyY2UgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiTWV0YVNlbGVjdGlvblNvdXJjZSoiKV0KKysJCXB1YmxpYyBTZWxlY3Rpb25Tb3VyY2VNZW1v cnkgKHN0cmluZyBtaW1ldHlwZSwgR0xpYi5CeXRlcyBjb250ZW50KTsKKysJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNldHRpbmdzLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyB7CisgCQlwdWJs aWMgaW50IGdldF9mb250X2RwaSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3VpX3NjYWxpbmdfZmFj dG9yICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lk ID0gIm1ldGFfc2hhZG93X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFk b3dfdW5yZWYiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg cmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3df Z2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorIAlb Q29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFNoYWRvdyB7CisgCQlwdWJsaWMgdm9pZCBnZXRfYm91 bmRzIChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdp bmRvd19oZWlnaHQsIENhaXJvLlJlY3RhbmdsZUludCBib3VuZHMpOworLQkJcHVibGljIHZvaWQg cGFpbnQgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQg d2luZG93X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29sIGNs aXBfc3RyaWN0bHkpOworKwkJcHVibGljIHZvaWQgcGFpbnQgKENvZ2wuRnJhbWVidWZmZXIgZnJh bWVidWZmZXIsIGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBp bnQgd2luZG93X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29s IGNsaXBfc3RyaWN0bHkpOworIAkJcHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7CisgCQlwdWJs aWMgdm9pZCB1bnJlZiAoKTsKKyAJfQorQEAgLTQ5OSwyOCArNTUzLDc0IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCIsIHR5cGVfaWQg PSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hh cGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5Bbmlt YXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGlj IGNsYXNzIFNoYXBlZFRleHR1cmUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBT aGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWly by5SZWN0YW5nbGVJbnQgY2xpcCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdl IChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0 dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChi b29sIGNyZWF0ZV9taXBtYXBzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENv Z2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdp b24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVw ZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc3Rh Z2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5cGUg KCkiKV0KKysJcHVibGljIGNsYXNzIFNvdW5kUGxheWVyIDogR0xpYi5PYmplY3QgeworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNvdW5k UGxheWVyICgpOworKwkJcHVibGljIHZvaWQgcGxheV9mcm9tX2ZpbGUgKEdMaWIuRmlsZSBmaWxl LCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVs bCk7CisrCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fdGhlbWUgKHN0cmluZyBuYW1lLCBzdHJpbmcg ZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7CisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zdGFnZS5oIiwgdHlwZV9p ZCA9ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBTdGFnZSA6IENs dXR0ZXIuU3RhZ2UsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVy LkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTdGFnZSAoKTsKKyAJCXB1YmxpYyBz dGF0aWMgYm9vbCBpc19mb2N1c2VkIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgYWN0b3JzX3BhaW50ZWQgKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oIiwgdHlwZV9pZCA9ICJt ZXRhX3N0YXJ0dXBfbm90aWZpY2F0aW9uX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBT dGFydHVwTm90aWZpY2F0aW9uIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFN0YXJ0dXBOb3RpZmljYXRpb24g KCk7CisrCQlwdWJsaWMgTWV0YS5MYXVuY2hDb250ZXh0IGNyZWF0ZV9sYXVuY2hlciAoKTsKKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICh2b2lk KiBvYmplY3QpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX3NlcXVlbmNlX2dldF90eXBlICgpIildCisrCXB1 YmxpYyBjbGFzcyBTdGFydHVwU2VxdWVuY2UgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU3RhcnR1cFNlcXVl bmNlICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9hcHBsaWNhdGlvbl9pZCAoKTsK KysJCXB1YmxpYyBib29sIGdldF9jb21wbGV0ZWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X2ljb25fbmFtZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWQgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CisrCQlwdWJsaWMgdWludDY0 IGdldF90aW1lc3RhbXAgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtY2xhc3Mg KCk7CisrCQlwdWJsaWMgaW50IGdldF93b3Jrc3BhY2UgKCk7CisrCQlwdWJsaWMgc3RyaW5nIGFw cGxpY2F0aW9uX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBzdHJpbmcgaWNvbl9u YW1lIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBzdHJpbmcgaWQgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1 YmxpYyB1aW50NjQgdGltZXN0YW1wIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBzdHJp bmcgd21jbGFzcyB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgaW50IHdvcmtzcGFjZSB7 IGdldDsgY29uc3RydWN0OyB9CisrCQlbSGFzRW1pdHRlcl0KKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBjb21wbGV0ZSAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS90 aGVtZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xh c3MgVGhlbWUgeworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdheWxhbmQtY2xpZW50LmgiLCB0eXBlX2lkID0gIm1l dGFfd2F5bGFuZF9jbGllbnRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFdheWxhbmRD bGllbnQgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisrCQlwdWJsaWMgV2F5bGFuZENsaWVudCAoR0xpYi5TdWJwcm9jZXNzTGF1bmNo ZXIgbGF1bmNoZXIpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZvaWQgaGlkZV9mcm9t X3dpbmRvd19saXN0IChNZXRhLldpbmRvdyB3aW5kb3cpOworKwkJcHVibGljIGJvb2wgb3duc193 aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgdm9pZCBzaG93X2luX3dpbmRv d19saXN0IChNZXRhLldpbmRvdyB3aW5kb3cpOworKwkJcHVibGljIEdMaWIuU3VicHJvY2VzcyBz cGF3bnYgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl LCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0gc3RyaW5nW10gYXJndikgdGhyb3dzIEdM aWIuRXJyb3I7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93 LmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90eXBlICgpIildCisgCXB1YmxpYyBhYnN0 cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCitAQCAtNTQ3LDYgKzY0Nyw3IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9yZWN0IChN ZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRf YnVmZmVyX3JlY3QgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2NsaWVudF9tYWNo aW5lICgpOworKwkJcHVibGljIE1ldGEuV2luZG93Q2xpZW50VHlwZSBnZXRfY2xpZW50X3R5cGUg KCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfY29tcG9zaXRvcl9wcml2YXRl ICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNjcmlwdGlvbiAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKK0BAIC01NjEsNiArNjYy LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtf dW5pcXVlX2J1c19uYW1lICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfd2lu ZG93X29iamVjdF9wYXRoICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2ljb25fZ2VvbWV0cnkgKG91 dCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKysJCXB1YmxpYyB1aW50NjQgZ2V0X2lkICgpOworIAkJ cHVibGljIE1ldGEuU3RhY2tMYXllciBnZXRfbGF5ZXIgKCk7CisgCQlwdWJsaWMgTWV0YS5NYXhp bWl6ZUZsYWdzIGdldF9tYXhpbWl6ZWQgKCk7CisgCQlwdWJsaWMgaW50IGdldF9tb25pdG9yICgp OworQEAgLTYxMCw4ICs3MTIsNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdm9pZCBt b3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95 X253LCBpbnQgdywgaW50IGgpOworIAkJcHVibGljIHZvaWQgbW92ZV90b19tb25pdG9yIChpbnQg bW9uaXRvcik7CisgCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVl c3RlZF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3RlZF9kb250 X2J5cGFzc19jb21wb3NpdG9yICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbXBvc2l0b3JfcHJp dmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7CisgCQlwdWJsaWMgdm9pZCBzZXRfZGVtYW5kc19hdHRl bnRpb24gKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRyeSAoTWV0YS5SZWN0YW5n bGU/IHJlY3QpOworQEAgLTY3MiwyNCArNzcyLDI1IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBzaG93biAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2No YW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2VkICgpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIHVubWFuYWdpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3Nw YWNlX2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfYWN0b3JfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93QWN0b3IgOiBD bHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7CisrCQlw dWJsaWMgdm9pZCBmcmVlemUgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdl IChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBn ZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93aW5kb3cgKCk7CisrCQlw dWJsaWMgdW5vd25lZCBNZXRhLlNoYXBlZFRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CisgCQlwdWJs aWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBzeW5jX3Zpc2liaWxpdHkg KCk7CisrCQlwdWJsaWMgdm9pZCB0aGF3ICgpOworIAkJcHVibGljIE1ldGEuV2luZG93IG1ldGFf d2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBz ZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkYW1hZ2VkICgpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIGVmZmVjdHNfY29tcGxldGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGZpcnN0 X2ZyYW1lICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRoYXdlZCAoKTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIiwgdHlwZV9p ZCA9ICJtZXRhX3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgV2lu ZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0 YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtNzIwLDcg KzgyMSw5IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRf d29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CisgCQlwdWJsaWMgaW50 IGluZGV4ICgpOworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBsaXN0X3dp bmRvd3MgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xpc3Q8 TWV0YS5TdHJ1dD4gc3RydXRzKTsKKysJCXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAo R0xpYi5TTGlzdDxNZXRhLlN0cnV0Pz4gc3RydXRzKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQor KwkJcHVibGljIGJvb2wgYWN0aXZlIHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitA QCAtNzM2LDI3ICs4MzksMzMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3duZWQg TWV0YS5Xb3Jrc3BhY2UgZ2V0X2FjdGl2ZV93b3Jrc3BhY2UgKCk7CisgCQlwdWJsaWMgaW50IGdl dF9hY3RpdmVfd29ya3NwYWNlX2luZGV4ICgpOworIAkJcHVibGljIGludCBnZXRfbl93b3Jrc3Bh Y2VzICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZV9i eV9pbmRleCAoaW50IGluZGV4KTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBn ZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworIAkJcHVibGljIHZvaWQgb3ZlcnJp ZGVfd29ya3NwYWNlX2xheW91dCAoTWV0YS5EaXNwbGF5Q29ybmVyIHN0YXJ0aW5nX2Nvcm5lciwg Ym9vbCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2NvbHVtbnMpOworIAkJcHVi bGljIHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCB1aW50 MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIHJlb3JkZXJfd29ya3NwYWNlIChNZXRhLldv cmtzcGFjZSB3b3Jrc3BhY2UsIGludCBuZXdfaW5kZXgpOworKwkJW05vQWNjZXNzb3JNZXRob2Rd CisrCQlwdWJsaWMgaW50IGxheW91dF9jb2x1bW5zIHsgZ2V0OyB9CisrCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKysJCXB1YmxpYyBpbnQgbGF5b3V0X3Jvd3MgeyBnZXQ7IH0KKyAJCXB1YmxpYyBpbnQg bl93b3Jrc3BhY2VzIHsgZ2V0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWN0aXZlX3dvcmtz cGFjZV9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVza3RvcF9j aGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9hZGRlZCAoaW50IG9i amVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3JlbW92ZWQgKGludCBvYmpl Y3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAoaW50IG9iamVj dCwgaW50IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgd29ya3NwYWNlc19yZW9yZGVyZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS14MTEtZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX3gxMV9kaXNw bGF5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmpl Y3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJv dGVjdGVkIFgxMURpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c190aGVfbm9fZm9jdXNf d2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIGNsZWFyX3N0YWdlX2lu cHV0X3JlZ2lvbiAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOwor IAkJcHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3No YXBlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7CisgCQlwdWJs aWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2lucHV0X2Zv Y3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIg dGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKFguWHNl cnZlclJlZ2lvbiByZWdpb24pOworIAkJcHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3Vz X3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRvdyk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUNsb3Nl RGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19nZXRfdHlwZSAo KSIpXQorQEAgLTc3OSwyNCArODg4LDI0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCVtIYXNFbWl0 dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRhLkluaGliaXRTaG9ydGN1 dHNEaWFsb2dSZXNwb25zZSByZXNwb25zZSk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisg CXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5b3V0IHsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiBsZWZ0X2J1dHRvbnNb NV07CisrCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s0XTsK KyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCBs ZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls1XTsKKysJCXB1YmxpYyB3ZWFrIGJvb2wgbGVmdF9idXR0 b25zX2hhc19zcGFjZXJbNF07CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0J CXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gcmlnaHRfYnV0dG9uc1s1XTsKKysJCXB1 YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gcmlnaHRfYnV0dG9uc1s0XTsKKyAJCVtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCByaWdodF9idXR0 b25zX2hhc19zcGFjZXJbNV07CisrCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFz X3NwYWNlcls0XTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hl cy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEVk Z2UgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CisgCQlwdWJsaWMgTWV0YS5TaWRl IHNpZGVfdHlwZTsKKyAJCXB1YmxpYyBNZXRhLkVkZ2VUeXBlIGVkZ2VfdHlwZTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBGcmFtZUJvcmRlcnMgeworIAkJcHVi bGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKyAJCXB1YmxpYyBHdGsuQm9yZGVyIGludmlzaWJsZTsK K0BAIC04MTEsMTQgKzkyMCwxNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgd2VhayBz dHJpbmcgbGljZW5zZTsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFBsdWdpblZlcnNpb24g eworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9tYWpvcjsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25f bWlub3I7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworIAkJcHVibGljIHVpbnQgdmVy c2lvbl9hcGk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMu aCIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9y ZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBSZWN0YW5nbGUgeworIAkJ cHVibGljIGludCB4OworIAkJcHVibGljIGludCB5OworQEAgLTgzNiw3ICs5NDUsNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgdW5pb24gKE1ldGEuUmVjdGFu Z2xlIHJlY3QyKTsKKyAJCXB1YmxpYyBib29sIHZlcnRfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUg cmVjdDIpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGlj IHN0cnVjdCBTaGFkb3dQYXJhbXMgeworIAkJcHVibGljIGludCByYWRpdXM7CisgCQlwdWJsaWMg aW50IHRvcF9mYWRlOworQEAgLTg0NCwxMiArOTUzLDEyIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CXB1YmxpYyBpbnQgeV9vZmZzZXQ7CisgCQlwdWJsaWMgdWludDggb3BhY2l0eTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFN0cnV0IHsKKyAJCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSByZWN0OworIAkJcHVibGljIE1ldGEuU2lkZSBzaWRlOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIsIGNwcmVmaXggPSAiTUVUQV9C QVJSSUVSX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9kaXJlY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJy aWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEJh cnJpZXJEaXJlY3Rpb24geworIAkJUE9TSVRJVkVfWCwKK0BAIC04NTcsMjEgKzk2NiwyMCBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlORUdBVElWRV9YLAorIAkJTkVHQVRJVkVfWQorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90 eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNw cmVmaXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9m dW5jdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBCdXR0b25GdW5jdGlvbiB7Cisg CQlNRU5VLAorIAkJTUlOSU1JWkUsCisgCQlNQVhJTUlaRSwKKyAJCUNMT1NFLAorLQkJQVBQTUVO VSwKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQT05TRV8i LCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9DTE9TRV9ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19y ZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBDbG9zZURpYWxvZ1Jlc3BvbnNl IHsKKyAJCVdBSVQsCisgCQlGT1JDRV9DTE9TRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8i LCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZG RUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBDb21wRWZmZWN0IHsKKyAJCUNSRUFURSwKKyAJCVVOTUlOSU1JWkUsCitAQCAtODc5 LDcgKzk4Nyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1JTklNSVpFLAorIAkJTk9ORQorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBDdXJzb3IgeworIAkJTk9ORSwKKyAJCURFRkFVTFQsCitAQCAtOTAwLDkgKzEwMDgs MTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJUE9JTlRJTkdfSEFORCwKKyAJCUNST1NTSEFJUiwK KyAJCUlCRUFNLAorKwkJQkxBTkssCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0RFQlVHXyIsIHR5cGVfaWQg PSAibWV0YV9kZWJ1Z190b3BpY19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9 ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVu dW0gRGVidWdUb3BpYyB7CisgCQlWRVJCT1NFLAorQEAgLTkyOCw5ICsxMDM3LDEwIEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCVNIQVBFUywKKyAJCUNPTVBPU0lUT1IsCisgCQlFREdFX1JFU0lTVEFO Q0UsCistCQlEQlVTCisrCQlEQlVTLAorKwkJSU5QVVQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwg dHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIs IHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlw dWJsaWMgZW51bSBEaXJlY3Rpb24geworIAkJTEVGVCwKK0BAIC05NDIsMjEgKzEwNTIsMjEgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRB X0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAi TUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2Nvcm5lcl9nZXRfdHlwZSAo KSIpXQorIAlwdWJsaWMgZW51bSBEaXNwbGF5Q29ybmVyIHsKKyAJCVRPUExFRlQsCisgCQlUT1BS SUdIVCwKKyAJCUJPVFRPTUxFRlQsCisgCQlCT1RUT01SSUdIVAorIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZ XyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFf RElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gRGlzcGxheURpcmVjdGlvbiB7CisgCQlVUCwKKyAJCURPV04sCisg CQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9ib3hlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2Vf dHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFfZWRnZV90eXBl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEVkZ2VUeXBlIHsKKyAJCVdJTkRPVywKKyAJ CU1PTklUT1IsCitAQCAtOTY3LDEyICsxMDc3LDExIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCVNV Q0NFU1MsCisgCQlFUlJPUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFt ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1l X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRnJhbWVGbGFn cyB7CisgCQlBTExPV1NfREVMRVRFLAorIAkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfQVBQTUVO VSwKKyAJCUFMTE9XU19NSU5JTUlaRSwKKyAJCUFMTE9XU19NQVhJTUlaRSwKKyAJCUFMTE9XU19W RVJUSUNBTF9SRVNJWkUsCitAQCAtOTg0LDEyICsxMDkzLDExIEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCUFMTE9XU19TSEFERSwKKyAJCUFMTE9XU19NT1ZFLAorIAkJRlVMTFNDUkVFTiwKKy0JCUlT X0ZMQVNISU5HLAorIAkJQUJPVkUsCisgCQlUSUxFRF9MRUZULAorIAkJVElMRURfUklHSFQKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXgg PSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEZyYW1lVHlwZSB7CisgCQlOT1JNQUwsCisgCQlESUFM T0csCitAQCAtMTAwMSw3ICsxMTA5LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTEFTVDsKKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfR1JBQl9PUF8i LCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfR1JBQl9PUF8iLCB0 eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBHcmFi T3AgeworIAkJTk9ORSwKKyAJCVdJTkRPV19CQVNFLAorQEAgLTEwMjgsMTIgKzExMzYsMjYgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCisgCQlLRVlCT0FSRF9S RVNJWklOR19XCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JU Q1VUU19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRz X2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfR1JBVklUWV8iLCB0eXBlX2lkID0g Im1ldGFfZ3Jhdml0eV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBHcmF2aXR5IHsKKysJ CU5PTkUsCisrCQlOT1JUSF9XRVNULAorKwkJTk9SVEgsCisrCQlOT1JUSF9FQVNULAorKwkJV0VT VCwKKysJCUNFTlRFUiwKKysJCUVBU1QsCisrCQlTT1VUSF9XRVNULAorKwkJU09VVEgsCisrCQlT T1VUSF9FQVNULAorKwkJU1RBVElDCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxPR19S RVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jlc3Bv bnNlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEluaGliaXRTaG9ydGN1dHNEaWFsb2dS ZXNwb25zZSB7CisgCQlBTExPVywKKyAJCURFTlkKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWUJJTkRJTkdfQUNUSU9O XyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0tFWUJJTkRJTkdfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19hY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gS2V5QmluZGluZ0FjdGlvbiB7CisgCQlOT05F LAorIAkJV09SS1NQQUNFXzEsCitAQCAtMTEyMiwyMiArMTI0NCwyNSBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlNT1ZFX1RPX1NJREVfVywKKyAJCU1PVkVfVE9fQ0VOVEVSLAorIAkJT1ZFUkxBWV9L RVksCisrCQlMT0NBVEVfUE9JTlRFUl9LRVksCisgCQlJU09fTkVYVF9HUk9VUCwKKyAJCUFMV0FZ U19PTl9UT1AsCisgCQlTV0lUQ0hfTU9OSVRPUiwKKyAJCVJPVEFURV9NT05JVE9SLAorIAkJTEFT VAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJl Zml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2Zs YWdzX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlfQklORElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5 X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBL ZXlCaW5kaW5nRmxhZ3MgeworIAkJTk9ORSwKKyAJCVBFUl9XSU5ET1csCisgCQlCVUlMVElOLAor IAkJSVNfUkVWRVJTRUQsCistCQlOT05fTUFTS0FCTEUKKysJCU5PTl9NQVNLQUJMRSwKKysJCUlH Tk9SRV9BVVRPUkVQRUFULAorKwkJTk9fQVVUT19HUkFCCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVf aWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lk ID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBMYXRlclR5 cGUgeworIAkJUkVTSVpFLAorIAkJQ0FMQ19TSE9XSU5HLAorQEAgLTExNDYsMjUgKzEyNzEsMjUg QEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQkVGT1JFX1JFRFJBVywKKyAJCUlETEUKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFf TE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxlX2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxl X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBMb2NhbGVEaXJlY3Rpb24g eworIAkJTFRSLAorIAkJUlRMCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwgdHlwZV9pZCA9ICJtZXRh X21heGltaXplX2ZsYWdzX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0g Im1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMg ZW51bSBNYXhpbWl6ZUZsYWdzIHsKKyAJCUhPUklaT05UQUwsCisgCQlWRVJUSUNBTCwKKyAJCUJP VEgKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25z X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9NT0RBTF8iLCB0eXBlX2lkID0gIm1ldGFfbW9kYWxfb3B0aW9u c19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIE1vZGFsT3B0aW9ucyB7 CisgCQlQT0lOVEVSX0FMUkVBRFlfR1JBQkJFRCwKKyAJCUtFWUJPQVJEX0FMUkVBRFlfR1JBQkJF RAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9OSVRPUl9TV0lUQ0hfQ09ORklHXyIsIHR5cGVf aWQgPSAibWV0YV9tb25pdG9yX3N3aXRjaF9jb25maWdfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFf TU9OSVRPUl9TV0lUQ0hfQ09ORklHXyIsIHR5cGVfaWQgPSAibWV0YV9tb25pdG9yX3N3aXRjaF9j b25maWdfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBNb25pdG9yU3dpdGNoQ29u ZmlnVHlwZSB7CisgCQlBTExfTUlSUk9SLAorIAkJQUxMX0xJTkVBUiwKK0BAIC0xMTcyLDcgKzEy OTcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlCVUlMVElOLAorIAkJVU5LTk9XTgorIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJN RVRBX01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVjdGlvbl9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CisgCQlVUCwKKyAJCURP V04sCitAQCAtMTE4Myw3ICsxMzA4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJRE9XTl9MRUZU LAorIAkJRE9XTl9SSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0 YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9p ZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBQ YWRBY3Rpb25UeXBlIHsKKyAJCUJVVFRPTiwKKyAJCVJJTkcsCitAQCAtMTIyMywzMCArMTM0OCwz OSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAorIAkJQVVU T19NQVhJTUlaRSwKKyAJCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNIT0xEOwor KwkJRFJBR19USFJFU0hPTEQsCisrCQlMT0NBVEVfUE9JTlRFUiwKKysJCUNIRUNLX0FMSVZFX1RJ TUVPVVQ7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWFjdG9yLmgiLCBjcHJl Zml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV8iLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKysJcHVibGljIGVudW0gU2VsZWN0aW9uVHlwZSB7CisrCQlTRUxFQ1RJT05fUFJJ TUFSWSwKKysJCVNFTEVDVElPTl9DTElQQk9BUkQsCisrCQlTRUxFQ1RJT05fRE5ELAorKwkJTl9T RUxFQ1RJT05fVFlQRVMKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRhX3No YWRvd19tb2RlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFNoYWRvd01vZGUgeworIAkJ QVVUTywKKyAJCUZPUkNFRF9PRkYsCisgCQlGT1JDRURfT04KKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5 cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAi bWV0YV9zaWRlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFNpZGUgeworIAkJTEVGVCwK KyAJCVJJR0hULAorIAkJVE9QLAorIAkJQk9UVE9NCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdF XyIsIHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9D SEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCisgCXB1 YmxpYyBlbnVtIFNpemVDaGFuZ2UgeworIAkJTUFYSU1JWkUsCisgCQlVTk1BWElNSVpFLAorIAkJ RlVMTFNDUkVFTiwKKyAJCVVORlVMTFNDUkVFTgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQg PSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9 ICJtZXRhX3N0YWNrX2xheWVyX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFN0YWNrTGF5 ZXIgeworIAkJREVTS1RPUCwKKyAJCUJPVFRPTSwKK0BAIC0xMjU2LDE5ICsxMzkwLDE5IEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCU9WRVJSSURFX1JFRElSRUNULAorIAkJTEFTVAorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVU QV9UQUJfTElTVF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X1RBQl9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgZW51bSBUYWJMaXN0IHsKKyAJCU5PUk1BTCwKKyAJCURPQ0tTLAorIAkJR1JPVVAsCisg CQlOT1JNQUxfQUxMCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlz cGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJf c2hvd190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfU0hPV18iLCB0eXBlX2lkID0gIm1ldGFf dGFiX3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBUYWJTaG93VHlwZSB7 CisgCQlJQ09OLAorIAkJSU5TVEFOVExZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfVklSVFVBTF8iLCB0eXBlX2lkID0g Im1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfVklSVFVBTF8iLCB0eXBl X2lkID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisg CXB1YmxpYyBlbnVtIFZpcnR1YWxNb2RpZmllciB7CisgCQlTSElGVF9NQVNLLAorQEAgLTEyODIs MTcgKzE0MTYsMTcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTU9ENF9NQVNLLAorIAkJTU9ENV9N QVNLCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBj cHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8iLCB0 eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBlbnVtIFdpbmRvd0NsaWVudFR5cGUgeworIAkJV0FZTEFORCwKKyAJCVgxMQorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRB X1dJTkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlw ZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBXaW5kb3dNZW51VHlwZSB7CisgCQlXTSwK KyAJCUFQUAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5o IiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93VHlwZSB7CisgCQlOT1JNQUwsCisg CQlERVNLVE9QLAorQEAgLTEzMTEsNTEgKzE0NDUsNTcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ RE5ELAorIAkJT1ZFUlJJREVfT1RIRVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMi45 KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRs ZU1vbml0b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorIAlw dWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRpc3BsYXks IE1ldGEuV2luZG93IHdpbmRvdywgW0NDb2RlICh0eXBlID0gIkNsdXR0ZXJLZXlFdmVudCoiKV0g Q2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDEu OSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNl X3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdlZEZ1bmMgKE1l dGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv d2luZG93LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVsZWdh dGUgYm9vbCBXaW5kb3dGb3JlYWNoRnVuYyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX0NVUlJF TlRfVElNRSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJNRVRBX0NVUlJFTlRfVElNRSIpXQorIAlwdWJsaWMgY29uc3QgaW50IENVUlJFTlRf VElNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFt ZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKyAJ cHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfSUNPTl9IRUlHSFQiKV0KKyAJcHVibGljIGNvbnN0IGludCBJQ09OX0hFSUdIVDsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX0lD T05fV0lEVEgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAiTUVUQV9JQ09OX1dJRFRIIildCisgCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9XSURU SDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9 ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIildCisgCXB1YmxpYyBjb25z dCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSUNST19WRVJTSU9O IildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlDUk9fVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlH SFQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAiTUVUQV9NSU5JX0lDT05fSEVJR0hUIildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09O X0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj bmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorIAlw dWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9N SU5PUl9WRVJTSU9OIildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlOT1JfVkVSU0lPTjsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX1BM VUdJTl9BUElfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQorIAlwdWJsaWMgY29u c3QgaW50IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9SRURSQVciKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVU QV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlf QkVGT1JFX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1BSRUZTX05PVElGWSIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1BS RUZTX05PVElGWSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1BSRUZTX05PVElGWTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJN RVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorIAlwdWJsaWMgY29u c3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFU0laRSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZ X1JFU0laRSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFU0laRTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRV QUxfQ09SRV9LRVlCT0FSRF9JRCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRCIpXQorIAlw dWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRDsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09S RV9QT0lOVEVSX0lEIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKyAJcHVibGljIGNv bnN0IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNz aW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJ cHVibGljIHN0YXRpYyB2b2lkIGFkZF9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVn RmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0 ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2luaXQgKCk7 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMg c3RhdGljIHZvaWQgZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGdfdXRm OF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRp b25Db250ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmVwbGFjZV9j dXJyZW50X3dtICgpOworQEAgLTEzNjgsNiArMTUwOCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWdpc3Rlcl93aXRoX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2NsdXR0 ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRy YXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3Mp OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGlj IHN0YXRpYyB2b2lkIHJlc3RhcnQgKHN0cmluZz8gbWVzc2FnZSk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7 CitAQCAtMTM3NSw2ICsxNTE3LDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGljIHN0YXRp YyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tleWJpbmRpbmdzKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0 X2luaXQgKCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor IAlwdWJsaWMgc3RhdGljIGJvb2wgeDExX2luaXRfZ2RrX2Rpc3BsYXkgKCkgdGhyb3dzIEdMaWIu RXJyb3I7CisgfQorK1tDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJsaWJtdXR0ZXItNy1jdXN0 b20uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3QgYmVmb3JlX2ZyYW1l IHsKKyt9CisrW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImxpYm11dHRlci03LWN1c3RvbS5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBmcmFtZSB7CisrfQorZGlm ZiAtLWdpdCB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaSB2YXBpL2xpYm11dHRlci1jb2dsLTQu dmFwaQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCA3ZGMxODQ3Ni4uMDAwMDAwMDAK Ky0tLSB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTI3 MiArMCwwIEBACistLyogbGlibXV0dGVyLWNvZ2wtNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2Vu LCBkbyBub3QgbW9kaWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25h bWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9 ICJjb2dsXyIpXQorLW5hbWVzcGFjZSBDb2dsIHsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCaXRtYXAgKCk7CistCQlw dWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBCaXRtYXAuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVy cm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpeGVs Rm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIGludCBnZXRfaGVpZ2h0ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9zaXplX2Zyb21fZmlsZSAoc3Ry aW5nIGZpbGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRXVsZXIgeworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNv Z2xfZnJhbWVfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCistCXB1YmxpYyBjbGFzcyBGcmFtZUNsb3N1cmUgeworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24g PSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lk ID0gImNvZ2xfbWF0ZXJpYWxfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBj bGFzcyBNYXRlcmlhbCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIE1hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBDb2dsLk1hdGVyaWFsIGNvcHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgZm9yZWFjaF9sYXllciAoQ29nbC5NYXRlcmlhbExheWVyQ2FsbGJhY2sgY2FsbGJhY2sp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNv bG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGdl dF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVz ZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxl ZCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5N YXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9s YXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCist CQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50 IGxheWVyX2luZGV4KTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxDb2dsLk1hdGVyaWFs TGF5ZXI+IGdldF9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGludCBn ZXRfbl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9w b2ludF9zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hp bmluZXNzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxh ciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENv Z2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgc3RhdGljIENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0 ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJp ZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRf ZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVy cm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFu dCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxv YXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDgg YWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChD b2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheWVyIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1 cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2Nv bWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIu RXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJp bmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX2ZpbHRlcnMgKGludCBsYXllcl9pbmRleCwgQ29nbC5N YXRlcmlhbEZpbHRlciBtaW5fZmlsdGVyLCBDb2dsLk1hdGVyaWFsRmlsdGVyIG1hZ19maWx0ZXIp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwg Q29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5C b29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRl eCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFw X21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBv aW50X3NpemUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zaGluaW5l c3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAoQ29nbC5IYW5kbGUg bWF0ZXJpYWwpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIE1h dGVyaWFsTGF5ZXIgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmlsdGVyIGdldF9tYWdf ZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmlsdGVyIGdldF9taW5fZmls dGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcCAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdl dF93cmFwX21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRl cmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2JqZWN0X2dldF9ndHlw ZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBPYmplY3QgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9 ICJjb2dsX29mZnNjcmVlbl9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIE9mZnNjcmVl biA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIE9mZnNjcmVl bi50b190ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgdW5yZWYgKHZvaWQqIG9mZnNjcmVlbik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAoQ29n bC5UZXh0dXJlIHRleHR1cmUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9nZXRfZ3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIE9uc2NyZWVuIDogQ29nbC5PYmplY3QsIENvZ2wuRnJhbWVidWZmZXIgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IE9uc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBD b2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxsYmFjayAoW0NDb2RlIChkZWxl Z2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRpcnR5Q2FsbGJhY2sgY2FsbGJh Y2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGFk ZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENv Z2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lD YWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1aW50IGFk ZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNOb3RpZnkgY2FsbGJhY2sp OworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9zZXRfc2l6ZV9DTFVUVEVS IChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorLQkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcmVzaXphYmxlICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgaGlkZSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfZGly dHlfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxi YWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3Jl ZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCByZW1vdmVfc3dhcF9idWZmZXJzX2NhbGxiYWNrICh1aW50IGlkKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKENvZ2wuQm9v bCByZXNpemFibGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2hvdyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCBzd2FwX2J1ZmZlcnMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIHZvaWQgc3dhcF9idWZmZXJzX3dpdGhfZGFtYWdlIChpbnQgcmVjdGFuZ2xlcywgaW50IG5f cmVjdGFuZ2xlcyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgc3dhcF9yZWdpb24gKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjb2dsX29uc2NyZWVuX2RpcnR5X2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCistCVtDb21w YWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgY2xhc3MgT25zY3Jl ZW5EaXJ0eUNsb3N1cmUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9 ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fcmVzaXplX2Nsb3N1cmVf Z2V0X2d0eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCXB1YmxpYyBjbGFzcyBPbnNjcmVlblJlc2l6ZUNsb3N1cmUgeworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9waXBlbGlu ZV9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFBpcGVsaW5lIDogQ29nbC5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFBpcGVsaW5lICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuUGlwZWxpbmVMYXllckNhbGxiYWNrIGNh bGxiYWNrKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBp cGVsaW5lQWxwaGFGdW5jIGdldF9hbHBoYV90ZXN0X2Z1bmN0aW9uICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYV90ZXN0X3JlZmVyZW5j ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9h bWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVDdWxs RmFjZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24g KENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5kaW5nICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9s YXllcl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9taW5fZmls dGVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChp bnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5l V3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBn ZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93 cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9wb2lu dF9zaXplICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGZsb2F0 IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGludCBnZXRfdW5pZm9ybV9sb2NhdGlvbiAoc3Ry aW5nIHVuaWZvcm1fbmFtZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRleCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFf dGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBh bHBoYV9yZWZlcmVuY2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29n bC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJy b3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYmxl bmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDb2dsLkNvbG9yIGNvbG9y KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xv cjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIg KHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcl9tYXNrIChD b2dsLkNvbG9yTWFzayBjb2xvcl9tYXNrKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5QaXBlbGluZUN1bGxGYWNl TW9kZSBjdWxsX2ZhY2VfbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xv ciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJvbnRfd2luZGluZyk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXll cl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBH TGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBj b25zdGFudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX2ZpbHRlcnMgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZUZpbHRlciBt aW5fZmlsdGVyLCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1hZ19maWx0ZXIpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBs YXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbnVsbF90ZXh0dXJlIChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuVGV4dHVyZVR5cGUgdGV4dHVyZV90eXBlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9j b29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwg Q29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgs IENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4 LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRl eCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplIChDb2ds LkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zaGluaW5l c3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWYgKGludCB1 bmlmb3JtX2xvY2F0aW9uLCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xaSAoaW50IHVuaWZvcm1fbG9jYXRpb24s IGludCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfdW5pZm9ybV9mbG9hdCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBuX2NvbXBvbmVu dHMsIGludCBjb3VudCwgZmxvYXQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1faW50IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwg aW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBpbnQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5p Zm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGludCBjb3VudCwgQ29nbC5Cb29sIHRyYW5z cG9zZSwgZmxvYXQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgUXVhdGVybmlvbiB7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2ds X2ZyYW1lYnVmZmVyX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIEZyYW1lYnVm ZmVyIDogQ29nbC5PYmplY3QgeworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGNsZWFyICh1bG9uZyBidWZmZXJzLCBD b2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIGNsZWFyNGYgKHVsb25nIGJ1ZmZlcnMsIGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZs b2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB2b2lkIGRpc2NhcmRfYnVmZmVycyAodWxvbmcgYnVmZmVycyk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19tdWx0aXRleHR1cmVkX3Jl Y3RhbmdsZSAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZs b2F0IHhfMiwgZmxvYXQgeV8yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRb XSB0ZXhfY29vcmRzLCBpbnQgdGV4X2Nvb3Jkc19sZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfcmVjdGFuZ2xlIChDb2dsLlBpcGVsaW5lIHBp cGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfcmVjdGFuZ2xl cyAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IGZsb2F0W10gY29vcmRpbmF0ZXMsIHVpbnQgbl9yZWN0YW5nbGVzKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3RleHR1cmVkX3JlY3RhbmdsZSAo Q29nbC5QaXBlbGluZSBwaXBlbGluZSwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwg ZmxvYXQgeV8yLCBmbG9hdCBzXzEsIGZsb2F0IHRfMSwgZmxvYXQgc18yLCBmbG9hdCB0XzIpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfdGV4dHVy ZWRfcmVjdGFuZ2xlcyAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIGZsb2F0W10gY29vcmRpbmF0ZXMsIHVpbnQgbl9yZWN0YW5nbGVzKTsKKy0J CXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGZpbmlzaCAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCBy aWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfYWxwaGFf Yml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0 X2JsdWVfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBD b2dsLkNvbG9yTWFzayBnZXRfY29sb3JfbWFzayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2RlcHRoX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9kZXB0aF90 ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgZ2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf ZGl0aGVyX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgaW50IGdldF9ncmVlbl9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIGludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaXNf c3RlcmVvICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2ds Lk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfcmVkX2JpdHMg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGludCBnZXRfc2Ft cGxlc19wZXJfcGl4ZWwgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQorLQkJcHVi bGljIENvZ2wuU3RlcmVvTW9kZSBnZXRfc3RlcmVvX21vZGUgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBnZXRfdmlld3BvcnQ0ZnYgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgdW5vd25lZCBmbG9hdCB2aWV3cG9ydFs0XSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3ZpZXdwb3J0X2hl aWdodCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBn ZXRfdmlld3BvcnRfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgZmxvYXQgZ2V0X3ZpZXdwb3J0X3ggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3ZpZXdwb3J0X3kgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBpZGVudGl0eV9tYXRyaXggKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChm bG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZs b2F0IGZhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQg cGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxv YXQgel9mYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHBvcF9jbGlwICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHBvcF9tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgcHVzaF9yZWN0YW5nbGVfY2xpcCAoZmxvYXQgeF8xLCBmbG9hdCB5XzEs IGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgs IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBD b2dsLkJvb2wgcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludDggcGl4ZWxzKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJlYWRfcGl4ZWxzX2ludG9fYml0 bWFwIChpbnQgeCwgaW50IHksIENvZ2wuUmVhZFBpeGVsc0ZsYWdzIHNvdXJjZSwgQ29nbC5CaXRt YXAgYml0bWFwKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lk IHJlc29sdmVfc2FtcGxlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIHJlc29sdmVfc2FtcGxlc19yZWdpb24gKGludCB4LCBpbnQgeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAo Q29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9jb2xvcl9tYXNrIChDb2dsLkNvbG9yTWFzayBjb2xvcl9tYXNrKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhf dGV4dHVyZV9lbmFibGVkIChDb2dsLkJvb2wgZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKENvZ2wu Qm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAoQ29nbC5Cb29sIGRpdGhlcl9lbmFi bGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRf bW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wu TWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCBzZXRfc2FtcGxlc19wZXJfcGl4ZWwgKGludCBzYW1wbGVzX3Blcl9waXhlbCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3N0ZXJlb19tb2Rl IChDb2dsLlN0ZXJlb01vZGUgc3RlcmVvX21vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ZpZXdwb3J0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm0gKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfdGV4dHVyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVi bGljIGludGVyZmFjZSBUZXh0dXJlIDogQ29nbC5PYmplY3QgeworLQkJcHVibGljIENvZ2wuQm9v bCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMy IGVycm9yX3F1YXJrICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1Ymxp YyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgpOworLQkJcHVibGljIGlu dCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50 OCBkYXRhKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2dsX3RleHR1cmUgKG91dCB1aW50IG91 dF9nbF9oYW5kbGUsIG91dCB1aW50IG91dF9nbF90YXJnZXQpOworLQkJcHVibGljIHVpbnQgZ2V0 X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21heF93YXN0ZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9wcmVtdWx0aXBsaWVk 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 aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlwZV0KKy0J cHVibGljIHN0cnVjdCBBbmdsZSA6IGludDMyIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3Qg Qm9vbCA6IGludCB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbG9yX2dldF9ndHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworLQkJcHVibGljIENvZ2wu Q29sb3I/IGNvcHkgKCk7CistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBlcXVhbCAodm9pZCog djEsIHZvaWQqIHYyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGEgKCk7CistCQlwdWJsaWMg dWludDggZ2V0X2FscGhhX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX2Zsb2F0 ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9ibHVlICgpOworLQkJcHVibGljIHVpbnQ4IGdldF9i bHVlX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2JsdWVfZmxvYXQgKCk7CistCQlwdWJs aWMgZmxvYXQgZ2V0X2dyZWVuICgpOworLQkJcHVibGljIHVpbnQ4IGdldF9ncmVlbl9ieXRlICgp OworLQkJcHVibGljIGZsb2F0IGdldF9ncmVlbl9mbG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBn ZXRfcmVkICgpOworLQkJcHVibGljIHVpbnQ4IGdldF9yZWRfYnl0ZSAoKTsKKy0JCXB1YmxpYyBm bG9hdCBnZXRfcmVkX2Zsb2F0ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgaW5pdF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBi bHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBpbml0X2Zyb21fNGZ2IChmbG9hdCBjb2xvcl9hcnJheSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fNHViICh1aW50OCByZWQs IHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGluaXRfZnJvbV9oc2wgKG91dCBD b2dsLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IHNhdHVyYXRpb24sIGZsb2F0IGx1bWlu YW5jZSk7CistCQlwdWJsaWMgdm9pZCBwcmVtdWx0aXBseSAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoZmxvYXQgYWxwaGEpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX2J5dGUg KHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9hbHBoYV9mbG9hdCAoZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsdWUgKGZsb2F0IGJsdWUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsdWVfYnl0ZSAodWludDgg Ymx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf Ymx1ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQg YWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNHViICh1 aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW4gKGZsb2F0IGdy ZWVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9n cmVlbl9ieXRlICh1aW50OCBncmVlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW5fZmxvYXQgKGZsb2F0IGdyZWVuKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWQgKGZsb2F0IHJlZCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVkX2J5dGUg KHVpbnQ4IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfcmVkX2Zsb2F0IChmbG9hdCByZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYi KV0KKy0JCXB1YmxpYyB2b2lkIHRvX2hzbCAob3V0IGZsb2F0IGh1ZSwgb3V0IGZsb2F0IHNhdHVy YXRpb24sIG91dCBmbG9hdCBsdW1pbmFuY2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgdW5wcmVtdWx0aXBseSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RydWN0IERlYnVnT2JqZWN0VHlwZUlu Zm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJsaWMgdWxvbmcgaW5zdGFu Y2VfY291bnQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0IEhhbmRsZSB7CistCQlwdWJsaWMg c3RhdGljIEdMaWIuVHlwZSBnZXRfdHlwZSAoKTsKKy0JCXB1YmxpYyBDb2dsLkhhbmRsZSBAcmVm ICgpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX21hdHJpeF9nZXRfZ3R5cGUg KCkiKV0KKy0JcHVibGljIHN0cnVjdCBNYXRyaXggeworLQkJcHVibGljIGZsb2F0IHh4OworLQkJ cHVibGljIGZsb2F0IHl4OworLQkJcHVibGljIGZsb2F0IHp4OworLQkJcHVibGljIGZsb2F0IHd4 OworLQkJcHVibGljIGZsb2F0IHh5OworLQkJcHVibGljIGZsb2F0IHl5OworLQkJcHVibGljIGZs b2F0IHp5OworLQkJcHVibGljIGZsb2F0IHd5OworLQkJcHVibGljIGZsb2F0IHh6OworLQkJcHVi bGljIGZsb2F0IHl6OworLQkJcHVibGljIGZsb2F0IHp6OworLQkJcHVibGljIGZsb2F0IHd6Owor LQkJcHVibGljIGZsb2F0IHh3OworLQkJcHVibGljIGZsb2F0IHl3OworLQkJcHVibGljIGZsb2F0 IHp3OworLQkJcHVibGljIGZsb2F0IHd3OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIENvZ2wuTWF0cml4PyBjb3B5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2 Mik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdm9pZCBmcmVlICgp OworLQkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0 IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCXB1Ymxp YyB1bm93bmVkIGZsb2F0W10gZ2V0X2FycmF5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGlu dmVyc2UpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVy KTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24g cXVhdGVybmlvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBpbml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZsb2F0IHR6KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfaWRlbnRpdHkg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBsb29rX2F0 IChmbG9hdCBleWVfcG9zaXRpb25feCwgZmxvYXQgZXllX3Bvc2l0aW9uX3ksIGZsb2F0IGV5ZV9w b3NpdGlvbl96LCBmbG9hdCBvYmplY3RfeCwgZmxvYXQgb2JqZWN0X3ksIGZsb2F0IG9iamVjdF96 LCBmbG9hdCB3b3JsZF91cF94LCBmbG9hdCB3b3JsZF91cF95LCBmbG9hdCB3b3JsZF91cF96KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0 IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8x LCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIp OworLQkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3BlY3Qs IGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQkJcHVibGljIHZvaWQgcHJvamVjdF9wb2lu dHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwg c2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CistCQlw dWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9l dWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5p b24pOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3op OworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVmIGZsb2F0 IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1f cG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNf aW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOwor LQkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCB0cmFuc3Bvc2UgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCB2aWV3XzJkX2lu X2ZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRv cCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6XzJkLCBmbG9hdCB3aWR0aF8yZCwgZmxvYXQgaGVpZ2h0 XzJkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHZpZXdf MmRfaW5fcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVh ciwgZmxvYXQgel8yZCwgZmxvYXQgd2lkdGhfMmQsIGZsb2F0IGhlaWdodF8yZCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdHJ1Y3QgT25z Y3JlZW5EaXJ0eUluZm8geworLQkJcHVibGljIGludCB4OworLQkJcHVibGljIGludCB5OworLQkJ cHVibGljIGludCB3aWR0aDsKKy0JCXB1YmxpYyBpbnQgaGVpZ2h0OworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgc3RydWN0IFRleHR1cmVWZXJ0ZXggeworLQkJcHVibGljIGZsb2F0IHg7CistCQlw dWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBmbG9hdCB6OworLQkJcHVibGljIGZsb2F0IHR4Owor LQkJcHVibGljIGZsb2F0IHR5OworLQkJcHVibGljIENvZ2wuQ29sb3IgY29sb3I7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0cnVjdCBVc2Vy RGF0YUtleSB7CistCQlwdWJsaWMgaW50IHVudXNlZDsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbENvbG9yU2l6ZUNoZWNrIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX0NvbG9yU2l6ZUNoZWNrIHsK Ky0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgY2hhcltd IGNvbXBpbGVfdGltZV9hc3NlcnRfQ29nbENvbG9yX3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xNYXRyaXhTaXplQ2hl Y2siLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBfTWF0cml4U2l6ZUNo ZWNrIHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsg Y2hhcltdIGNvbXBpbGVfdGltZV9hc3NlcnRfQ29nbE1hdHJpeF9zaXplOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsVGV4dHVy ZVZlcnRleFNpemVDaGVjayIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0 IF9UZXh0dXJlVmVydGV4U2l6ZUNoZWNrIHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXQorLQkJcHVibGljIHdlYWsgY2hhcltdIGNvbXBpbGVfdGltZV9hc3NlcnRfQ29nbFRleHR1 cmVWZXJ0ZXhfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQVRUUklCVVRFX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gQXR0cmli dXRlVHlwZSB7CistCQlCWVRFLAorLQkJVU5TSUdORURfQllURSwKKy0JCVNIT1JULAorLQkJVU5T SUdORURfU0hPUlQsCistCQlGTE9BVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9CSVRNQVBfRVJST1JfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0g Qml0bWFwRXJyb3IgeworLQkJRkFJTEVELAorLQkJVU5LTk9XTl9UWVBFLAorLQkJQ09SUlVQVF9J TUFHRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9CTEVORF9TVFJJTkdfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gQmxlbmRTdHJpbmdF cnJvciB7CistCQlQQVJTRV9FUlJPUiwKKy0JCUFSR1VNRU5UX1BBUlNFX0VSUk9SLAorLQkJSU5W QUxJRF9FUlJPUiwKKy0JCUdQVV9VTlNVUFBPUlRFRF9FUlJPUjsKKy0JCXB1YmxpYyBzdGF0aWMg dWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9CVUZGRVJfQklUXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVu dW0gQnVmZmVyQml0IHsKKy0JCUNPTE9SLAorLQkJREVQVEgsCistCQlTVEVOQ0lMCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KKy0JcHVibGljIGVudW0gQnVmZmVyVGFyZ2V0IHsKKy0JCVdJTkRPV19CVUZGRVIs CistCQlPRkZTQ1JFRU5fQlVGRkVSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0NPTE9SX01BU0tfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQ29sb3JNYXNrIHsKKy0JCU5PTkUs CistCQlSRUQsCistCQlHUkVFTiwKKy0JCUJMVUUsCistCQlBTFBIQSwKKy0JCUFMTAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9ERVBUSF9URVNUX0ZVTkNUSU9OXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMg ZW51bSBEZXB0aFRlc3RGdW5jdGlvbiB7CistCQlORVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwK Ky0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFM V0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3Nd CistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gRmVhdHVyZUZsYWdz IHsKKy0JCVRFWFRVUkVfUkVDVEFOR0xFLAorLQkJVEVYVFVSRV9OUE9ULAorLQkJVEVYVFVSRV9Z VVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJU0hBREVSU19HTFNMLAorLQkJT0ZGU0NS RUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExFLAorLQkJT0ZGU0NSRUVOX0JMSVQsCistCQlG T1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9CVUZGRVIsCistCQlWQk9TLAorLQkJUEJPUywK Ky0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJREVQVEhfUkFOR0UsCistCQlURVhUVVJFX05Q T1RfQkFTSUMsCistCQlURVhUVVJFX05QT1RfTUlQTUFQLAorLQkJVEVYVFVSRV9OUE9UX1JFUEVB VCwKKy0JCVBPSU5UX1NQUklURSwKKy0JCVRFWFRVUkVfM0QsCistCQlNQVBfQlVGRkVSX0ZPUl9S RUFELAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJVEUsCistCQlPTlNDUkVFTl9NVUxUSVBMRSwKKy0J CURFUFRIX1RFWFRVUkUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworLQkJQ09OVElOVUUsCistCQlSRU1PVkUKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7CistCQlMSU5FQVIsCistCQlFWFBP TkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVfRVZFTlRfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCXB1 YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworLQkJU1lOQywKKy0JCUNPTVBMRVRFCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZS QU1FQlVGRkVSX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBG cmFtZWJ1ZmZlckVycm9yIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GUkFNRUJVRkZFUl9F UlJPUl9BTExPQ0FURSIpXQorLQkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7CistCQlwdWJs aWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVE XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7Cist CQlCWVRFLAorLQkJU0hPUlQsCistCQlJTlQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfQUxQSEFfRlVOQ18i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxBbHBoYUZ1bmMg eworLQkJTkVWRVIsCistCQlMRVNTLAorLQkJRVFVQUwsCistCQlMRVFVQUwsCistCQlHUkVBVEVS LAorLQkJTk9URVFVQUwsCistCQlHRVFVQUwsCistCQlBTFdBWVMKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxf RklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbEZp bHRlciB7CistCQlORUFSRVNULAorLQkJTElORUFSLAorLQkJTkVBUkVTVF9NSVBNQVBfTkVBUkVT VCwKKy0JCUxJTkVBUl9NSVBNQVBfTkVBUkVTVCwKKy0JCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwK Ky0JCUxJTkVBUl9NSVBNQVBfTElORUFSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0xBWUVSX1RZUEVfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIGVudW0gTWF0ZXJpYWxMYXllclR5cGUgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX01B VEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRSIpXQorLQkJTUFURVJJQUxfTEFZRVJfVFlQRV9URVhU VVJFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX01BVEVSSUFMX1dSQVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbFdyYXBN b2RlIHsKKy0JCVJFUEVBVCwKKy0JCUNMQU1QX1RPX0VER0UsCistCQlBVVRPTUFUSUMKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfUElQRUxJTkVfQUxQSEFfRlVOQ18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IGVudW0gUGlwZWxpbmVBbHBoYUZ1bmMgeworLQkJTkVWRVIsCistCQlMRVNTLAorLQkJRVFVQUws CistCQlMRVFVQUwsCistCQlHUkVBVEVSLAorLQkJTk9URVFVQUwsCistCQlHRVFVQUwsCistCQlB TFdBWVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfUElQRUxJTkVfQ1VMTF9GQUNFX01PREVfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lQ3VsbEZhY2VNb2RlIHsKKy0JCU5PTkUsCist CQlGUk9OVCwKKy0JCUJBQ0ssCistCQlCT1RICistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5FX0ZJTFRFUl8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gUGlwZWxpbmVGaWx0ZXIgeworLQkJ TkVBUkVTVCwKKy0JCUxJTkVBUiwKKy0JCU5FQVJFU1RfTUlQTUFQX05FQVJFU1QsCistCQlMSU5F QVJfTUlQTUFQX05FQVJFU1QsCistCQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCistCQlMSU5FQVJf TUlQTUFQX0xJTkVBUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGVudW0gUGlw ZWxpbmVXcmFwTW9kZSB7CistCQlSRVBFQVQsCistCQlNSVJST1JFRF9SRVBFQVQsCistCQlDTEFN UF9UT19FREdFLAorLQkJQVVUT01BVElDCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJWEVMX0ZPUk1BVF8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCist CXB1YmxpYyBlbnVtIFBpeGVsRm9ybWF0IHsKKy0JCUFOWSwKKy0JCUFfOCwKKy0JCVJHQl81NjUs CistCQlSR0JBXzQ0NDQsCistCQlSR0JBXzU1NTEsCistCQlZVVYsCistCQlHXzgsCistCQlSR184 OCwKKy0JCVJHQl84ODgsCistCQlCR1JfODg4LAorLQkJUkdCQV84ODg4LAorLQkJQkdSQV84ODg4 LAorLQkJQVJHQl84ODg4LAorLQkJQUJHUl84ODg4LAorLQkJUkdCQV8xMDEwMTAyLAorLQkJQkdS QV8xMDEwMTAyLAorLQkJQVJHQl8yMTAxMDEwLAorLQkJQUJHUl8yMTAxMDEwLAorLQkJUkdCQV84 ODg4X1BSRSwKKy0JCUJHUkFfODg4OF9QUkUsCistCQlBUkdCXzg4ODhfUFJFLAorLQkJQUJHUl84 ODg4X1BSRSwKKy0JCVJHQkFfNDQ0NF9QUkUsCistCQlSR0JBXzU1NTFfUFJFLAorLQkJUkdCQV8x MDEwMTAyX1BSRSwKKy0JCUJHUkFfMTAxMDEwMl9QUkUsCistCQlBUkdCXzIxMDEwMTBfUFJFLAor LQkJQUJHUl8yMTAxMDEwX1BSRSwKKy0JCURFUFRIXzE2LAorLQkJREVQVEhfMzIsCistCQlERVBU SF8yNF9TVEVOQ0lMXzgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1JfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgZW51bSBSZWFkUGl4ZWxzRmxhZ3MgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX1JFQURf UElYRUxTX0NPTE9SX0JVRkZFUiIpXQorLQkJUkVBRF9QSVhFTFNfQ09MT1JfQlVGRkVSCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX1JFTkRFUkVSX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51 bSBSZW5kZXJlckVycm9yIHsKKy0JCVhMSUJfRElTUExBWV9PUEVOLAorLQkJQkFEX0NPTlNUUkFJ TlQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfU0hBREVSX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gU2hhZGVyVHlwZSB7CistCQlWRVJU RVgsCistCQlGUkFHTUVOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9TVEVSRU9fIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBlbnVtIFN0ZXJlb01vZGUgeworLQkJQk9USCwKKy0JCUxFRlQsCistCQlSSUdI VAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9TWVNURU1fRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gU3lzdGVtRXJyb3IgeworLQkJVU5T VVBQT1JURUQsCistCQlOT19NRU1PUlkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9DT01QT05FTlRTXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJs aWMgZW51bSBUZXh0dXJlQ29tcG9uZW50cyB7CistCQlBLAorLQkJUkcsCistCQlSR0IsCistCQlS R0JBLAorLQkJREVQVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgZW51bSBUZXh0dXJl RXJyb3IgeworLQkJU0laRSwKKy0JCUZPUk1BVCwKKy0JCUJBRF9QQVJBTUVURVIsCistCQlUWVBF OworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgZW51bSBUZXh0dXJlRmxhZ3MgeworLQkJTk9ORSwKKy0JCU5PX0FVVE9f TUlQTUFQLAorLQkJTk9fU0xJQ0lORywKKy0JCU5PX0FUTEFTCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfVFlQ RV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIGVudW0gVGV4dHVyZVR5cGUgeworLQkJQDJELAorLQkJQDNELAorLQkJUkVDVEFO R0xFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX1ZFUlRJQ0VTX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gVmVydGljZXNNb2RlIHsKKy0J CVBPSU5UUywKKy0JCUxJTkVTLAorLQkJTElORV9MT09QLAorLQkJTElORV9TVFJJUCwKKy0JCVRS SUFOR0xFUywKKy0JCVRSSUFOR0xFX1NUUklQLAorLQkJVFJJQU5HTEVfRkFOCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1dJ TkRJTkdfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFdpbmRpbmcgewor LQkJQ0xPQ0tXSVNFLAorLQkJQ09VTlRFUl9DTE9DS1dJU0UKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfV0lOU1lTX0ZFQVRV UkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFdpbnN5c0ZlYXR1cmUg eworLQkJTVVMVElQTEVfT05TQ1JFRU4sCistCQlTV0FQX1RIUk9UVExFLAorLQkJVkJMQU5LX0NP VU5URVIsCistCQlWQkxBTktfV0FJVCwKKy0JCVRFWFRVUkVfRlJPTV9QSVhNQVAsCistCQlTV0FQ X0JVRkZFUlNfRVZFTlQsCistCQlTV0FQX1JFR0lPTiwKKy0JCVNXQVBfUkVHSU9OX1RIUk9UVExF LAorLQkJU1dBUF9SRUdJT05fU1lOQ0hST05JWkVELAorLQkJQlVGRkVSX0FHRSwKKy0JCVNZTkNf QU5EX0NPTVBMRVRFX0VWRU5ULAorLQkJTl9GRUFUVVJFUworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgRGVidWdPYmplY3RG b3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUluZm8gaW5mbyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgTWF0ZXJp YWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9w b3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgZGVsZWdh dGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENv Z2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDMuOSldCistCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5SZXNpemVDYWxsYmFjayAo Q29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0K Ky0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgKENvZ2wuT25z Y3JlZW4gb25zY3JlZW4sIHVpbnQzMiBldmVudF9tYXNrKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgQ29nbC5Cb29sIFBpcGVsaW5lTGF5 ZXJDYWxsYmFjayAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgaW50IGxheWVyX2luZGV4KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0g MS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgU3dhcEJ1ZmZlcnNOb3RpZnkgKENvZ2wuRnJh bWVidWZmZXIgZnJhbWVidWZmZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBV c2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0YSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQUZJUlNUX0JJVCIpXQorLQlw dWJsaWMgY29uc3QgaW50IEFGSVJTVF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQV9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGlu dCBBX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ09HTF9CR1JfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9ERVBU SF9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBERVBUSF9CSVQ7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0K Ky0JcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorLQlwdWJs aWMgY29uc3QgaW50IFNURU5DSUxfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIildCistCXB1Ymxp YyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5n IG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9y LCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJfY2hlY2tfZXh0ZW5zaW9u X0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0 ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX21hdHJpeF9w cmludCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGRlYnVnX29iamVjdF9mb3JlYWNoX3R5cGUgKENvZ2wuRGVidWdPYmplY3RGb3Jl YWNoVHlwZUNhbGxiYWNrIGZ1bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNh YmxlX2ZvZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVhdHVyZUZsYWdzIGZlYXR1 cmVzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGZsdXNoICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQg cmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFy KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQg aW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3Rl c3RfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVk IENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRy aXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk KiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0 eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5Cb29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfb25zY3JlZW4gKHZvaWQqIG9iamVj dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX3BpcGVs aW5lICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNf dmVydGV4X2J1ZmZlcl9pbmRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90 dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcGVy c3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6 X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb2x5Z29uIChD b2dsLlRleHR1cmVWZXJ0ZXggdmVydGljZXMsIHVpbnQgbl92ZXJ0aWNlcywgQ29nbC5Cb29sIHVz ZV9jb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBwb3Bfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcmVjdGFuZ2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBm bG9hdCB5XzIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFu Z2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4 MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9j b29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0 IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIs IGZsb2F0IHR5Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0 YW5nbGVzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWlu dCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjguNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVj dGFuZ2xlc193aXRoX3RleHR1cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByb3RhdGUgKGZs b2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2Fs ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNl X2N1bGxpbmdfZW5hYmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9k ZXB0aF90ZXN0X2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf Zm9nIChDb2dsLkNvbG9yIGZvZ19jb2xvciwgQ29nbC5Gb2dNb2RlIG1vZGUsIGZsb2F0IGRlbnNp dHksIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9tb2RlbHZp ZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9wcm9qZWN0 aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X3NvdXJjZV9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVu LCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X3NvdXJjZV9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwg dWludDggYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfdGV4 dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X3ZpZXdwb3J0IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2hhZGVyX2NvbXBpbGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHN0 cmluZyBzaGFkZXJfZ2V0X2luZm9fbG9nIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBD b2dsLlNoYWRlclR5cGUgc2hhZGVyX2dldF90eXBlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhhbmRsZSBoYW5kbGUpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyBDb2dsLkhhbmRsZSBzaGFkZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNoYWRlcl9zb3VyY2UgKENvZ2wuSGFuZGxlIHNoYWRlciwgc3RyaW5nIHNvdXJj ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9iaXRtYXAg KENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRl eHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3Jt YXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCist CXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZmlsZSAoc3RyaW5n IGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBD b2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWlu dCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1 aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgs IHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAo Q29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhh bmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBD b2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgQ29nbC5Cb29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJp ZGUsIHZvaWQqIHBvaW50ZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChD b2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg dmVydGV4X2J1ZmZlcl9kaXNhYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1 dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBo YW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRs ZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9p bmRleCwgaW50IG1heF9pbmRleCwgaW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmlu ZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0 aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1 ZmZlcl9pbmRpY2VzX2dldF9mb3JfcXVhZHMgKHVpbnQgbl9pbmRpY2VzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5JbmRpY2VzVHlwZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5cGUgKENvZ2wuSGFuZGxl IGluZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX25ldyAodWludCBu X3ZlcnRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3JlZiAoQ29nbC5I YW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1pdCAoQ29nbC5I YW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5yZWYgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44 Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZpZXdwb3J0ICh1aW50 IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3Zpc3Vh bF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlkIChDb2dsLk9uc2Ny ZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHgx MV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVu LCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wuT25zY3JlZW5YMTFN YXNrQ2FsbGJhY2sgdXBkYXRlKTsKKy19CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXIt NS1jdXN0b20udmFsYSB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggYjhkODM4ZDAuLjAwMDAwMDAwCistLS0gdmFwaS9tdXR0 ZXItY2x1dHRlci01LWN1c3RvbS52YWxhCisrKysgL2Rldi9udWxsCitAQCAtMSwxNTggKzAsMCBA QAorLW5hbWVzcGFjZSBDbHV0dGVyIHsKKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZ UEVfQUNUT1JfQk9YIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LSAgcHVibGljIHN0cnVjdCBBY3RvckJveCB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLSAgICBwdWJsaWMgQWN0b3JCb3guZnJvbV92 ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CistICB9CistCistICBwdWJsaWMgc3Ry dWN0IE1hdHJpeCA6IENvZ2wuTWF0cml4IHsKKy0gIH0KKy0KKy0gIHB1YmxpYyBjbGFzcyBCYWNr ZW5kIDogR0xpYi5PYmplY3QgeworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVh bCB2b2lkIGFkZF9vcHRpb25zIChHTGliLk9wdGlvbkdyb3VwIGdyb3VwKTsKKy0gICAgW05vV3Jh cHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgYm9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAoQ2x1dHRlci5TdGFnZSB3cmFwcGVy KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1 YWwgdm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2Vy IGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZp cnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLSAgICBbTm9XcmFw cGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworLSAgICBbTm9X cmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZmVhdHVyZXMgKCk7CistICAg IFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIGJvb2wgcG9zdF9wYXJzZSAoKSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgYm9v bCBwcmVfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAg IHB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVkcmF3IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0gIH0K Ky0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9ib3hfZ2V0X3R5cGUgKCkiKV0KKy0gIHB1YmxpYyBjbGFzcyBCb3gg OiBDbHV0dGVyLkFjdG9yIHsKKy0gICAgcHVibGljIENsdXR0ZXIuTGF5b3V0TWFuYWdlciBsYXlv dXRfbWFuYWdlciB7IGdldDsgc2V0OyB9CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAi Q0xVVFRFUl9UWVBFX0NPTE9SIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLSAgcHVibGljIHN0cnVjdCBDb2xvciB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl9jb2xvcl9mcm9tX2hscyIpXQorLSAgICBwdWJsaWMgQ29sb3IuZnJvbV9obHMgKGZsb2F0 IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKy0gICAgW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fcGl4ZWwiKV0KKy0gICAgcHVibGljIENvbG9yLmZy b21fcGl4ZWwgKHVpbnQzMiBwaXhlbCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9j b2xvcl9mcm9tX3N0cmluZyIpXQorLSAgICBwdWJsaWMgQ29sb3IuZnJvbV9zdHJpbmcgKHN0cmlu ZyBzdHIpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmci KV0KKy0gICAgcHVibGljIGJvb2wgcGFyc2Vfc3RyaW5nIChzdHJpbmcgc3RyKTsKKy0gICAgcHVi bGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQ29sb3I/IGdldF9zdGF0aWMgKENsdXR0ZXIuU3Rh dGljQ29sb3IgY29sb3IpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NvbnRhaW5lcl9nZXRfdHlw ZSAoKSIpXQorLSAgcHVibGljIGludGVyZmFjZSBDb250YWluZXIgOiBHTGliLk9iamVjdCB7Cist ICAgIHB1YmxpYyB2b2lkIGFkZCAocGFyYW1zIENsdXR0ZXIuQWN0b3JbXSBhY3RvcnMpOworLSAg ICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNzX2ZpbmRfY2hpbGRfcHJv cGVydHkiKV0KKy0gICAgcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9j aGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLSAgICBbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVydGllcyIpXQorLSAg ICBwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlY1tdIGxpc3RfY2hpbGRfcHJvcGVy dGllcyAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlv biA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfZXZlbnRfZ2V0X3R5cGUgKCki KV0KKy0gIFtDb21wYWN0XQorLSAgcHVibGljIGNsYXNzIEV2ZW50IHsKKy0gICAgcHVibGljIENs dXR0ZXIuQW55RXZlbnQgYW55IHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckFueUV2ZW50ICop IildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5CdXR0b25FdmVudCBidXR0b24geyBbQ0Nv ZGUgKGNuYW1lID0gIihDbHV0dGVyQnV0dG9uRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1Ymxp YyBDbHV0dGVyLkNyb3NzaW5nRXZlbnQgY3Jvc3NpbmcgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0 dGVyQ3Jvc3NpbmdFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuS2V5RXZl bnQga2V5IHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlcktleUV2ZW50ICopIildIGdldDsgfQor LSAgICBwdWJsaWMgQ2x1dHRlci5Nb3Rpb25FdmVudCBtb3Rpb24geyBbQ0NvZGUgKGNuYW1lID0g IihDbHV0dGVyTW90aW9uRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlNj cm9sbEV2ZW50IHNjcm9sbCB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTY3JvbGxFdmVudCAq KSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuU3RhZ2VTdGF0ZUV2ZW50IHN0YWdlX3N0 YXRlIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclN0YWdlU3RhdGVFdmVudCAqKSIpXSBnZXQ7 IH0KKy0gICAgcHVibGljIENsdXR0ZXIuVG91Y2hFdmVudCB0b3VjaCB7IFtDQ29kZSAoY25hbWUg PSAiKENsdXR0ZXJUb3VjaEV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5U b3VjaHBhZFBpbmNoRXZlbnQgdG91Y2hwYWRfcGluY2ggeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0 dGVyVG91Y2hwYWRQaW5jaEV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5U b3VjaHBhZFN3aXBlRXZlbnQgdG91Y2hwYWRfc3dpcGUgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0 dGVyVG91Y2hwYWRTd2lwZUV2ZW50ICopIildIGdldDsgfQorLSAgfQorLQorLSAgW0NDb2RlICh0 eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfZ2V0X3R5cGUgKCkiLCBjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkdy b3VwIHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3JlZHJhdyIpXQorLSAgICBwdWJs aWMgdm9pZCByZWRyYXcgKCk7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBpbnRlcmZhY2UgU3RhZ2VXaW5kb3cg OiBHTGliLk9iamVjdCB7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2 b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOwor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfZ2VvbWV0cnkg KENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJs aWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworLSAgICBbTm9XcmFwcGVyXQor LSAgICBwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93cmFwcGVyICgp OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbCBoYXNfcmVkcmF3 X2NsaXBzICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBo aWRlICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbCBpZ25v cmluZ19yZWRyYXdfY2xpcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0 cmFjdCBib29sIHJlYWxpemUgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0 cmFjdCB2b2lkIHJlc2l6ZSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0gICAgW05vV3JhcHBl cl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1cnNvcl92aXNpYmxlIChib29sIGN1 cnNvcl92aXNpYmxlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZv aWQgc2V0X2Z1bGxzY3JlZW4gKGJvb2wgaXNfZnVsbHNjcmVlbik7CistICAgIFtOb1dyYXBwZXJd CistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF90aXRsZSAoc3RyaW5nIHRpdGxlKTsKKy0g ICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X3VzZXJfcmVzaXph YmxlIChib29sIGlzX3Jlc2l6YWJsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBh YnN0cmFjdCB2b2lkIHNob3cgKGJvb2wgZG9fcmFpc2UpOworLSAgICBbTm9XcmFwcGVyXQorLSAg ICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxpemUgKCk7CistICB9CistCistICBbQ0NvZGUg KHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX2dldF90eXBlICgpIiwgY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0 dGVyLkFjdG9yIHsKKy0gICAgcHVibGljIENvZ2wuTWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdl dDsgc2V0OyB9CistICAgIHB1YmxpYyBDb2dsLlRleHR1cmUgY29nbF90ZXh0dXJlIHsgZ2V0OyBz ZXQ7IH0KKy0gIH0KKy0KKy0gIFtDb21wYWN0XQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgY2xhc3MgVGltZW91dFBvb2wgewor LSAgICBbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistICAgIHB1Ymxp YyBUaW1lb3V0UG9vbCAoaW50IHByaW9yaXR5KTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY3ByZWZp eCA9ICJDTFVUVEVSX0ZFQVRVUkVfIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLSAgW0ZsYWdzXQorLSAgcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0gICAg VEVYVFVSRV9OUE9UOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9hdmFp bGFibGUiKV0KKy0gICAgcHVibGljIGJvb2wgaXNfYXZhaWxhYmxlICgpOworLSAgICBbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9nZXRfYWxsIildCistICAgIHB1YmxpYyBzdGF0aWMg Q2x1dHRlci5GZWF0dXJlRmxhZ3MgQGdldCAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9p ZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IFVuaXRzIHsKKy0gICAgW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX3VuaXRzX2Zyb21fY20iKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fY20gKGZs b2F0IGNtKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW0iKV0K Ky0gICAgcHVibGljIFVuaXRzLmZyb21fZW0gKGZsb2F0IGVtKTsKKy0gICAgW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW1fZm9yX2ZvbnQiKV0KKy0gICAgcHVibGljIFVuaXRz LmZyb21fZW1fZm9yX2ZvbnQgKHN0cmluZyBmb250X25hbWUsIGZsb2F0IGVtKTsKKy0gICAgW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fbW0iKV0KKy0gICAgcHVibGljIFVuaXRz LmZyb21fbW0gKGZsb2F0IG1tKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRz X2Zyb21fcGl4ZWxzIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX3BpeGVscyAoaW50IHB4KTsK Ky0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcHQiKV0KKy0gICAgcHVi bGljIFVuaXRzLmZyb21fcHQgKGZsb2F0IHB0KTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX3VuaXRzX2Zyb21fc3RyaW5nIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX3N0cmluZyAo c3RyaW5nIHN0cik7CistICB9CistfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTQt Y3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhCitzaW1pbGFyaXR5 IGluZGV4IDkyJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci00LWN1c3RvbS52YWxh CityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhCitpbmRleCBiOGQ4 MzhkMC4uODkyMjRiZTYgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci00LWN1c3RvbS52 YWxhCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhCitAQCAtMSw5ICsxLDQg QEAKKyBuYW1lc3BhY2UgQ2x1dHRlciB7CistICBbQ0NvZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9U WVBFX0FDVE9SX0JPWCIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0gIHB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfYWN0b3JfYm94X2Zyb21fdmVydGljZXMiKV0KKy0gICAgcHVibGljIEFjdG9yQm94LmZyb21f dmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworLSAgfQorIAorICAgcHVibGljIHN0 cnVjdCBNYXRyaXggOiBDb2dsLk1hdHJpeCB7CisgICB9CitAQCAtMTgsOCArMTMsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyB2aXJ0dWFsIHZv aWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworICAgICBbTm9XcmFwcGVy XQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRf ZGV2aWNlX21hbmFnZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyB2aXJ0dWFs IENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKyAgICAgW05vV3JhcHBlcl0K KyAgICAgcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKK0BAIC04MywxMCArNzYs NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCisgICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAgIHB1YmxpYyBpbnRlcmZhY2UgU3RhZ2VXaW5kb3cg OiBHTGliLk9iamVjdCB7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2 b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOwor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfZ2VvbWV0cnkg KENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJs aWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworICAgICBbTm9XcmFwcGVyXQor ZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTUuZGVwcyB2YXBpL211dHRlci1jbHV0dGVy LTYuZGVwcworc2ltaWxhcml0eSBpbmRleCA2MyUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNs dXR0ZXItNS5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci02LmRlcHMKK2luZGV4 IDNmNWE5MmE2Li43YTcwZDZkZiAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTUuZGVw cworKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitAQCAtMSw0ICsxLDQgQEAKKyBhdGsK KyBjYWlybworIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY29nbC01CisrbXV0dGVyLWNvZ2wtNgor ZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTUudmFwaSB2YXBpL211dHRlci1jbHV0dGVy LTYudmFwaQorc2ltaWxhcml0eSBpbmRleCA5MyUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNs dXR0ZXItNS52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci02LnZhcGkKK2luZGV4 IDI0ZjdmNmIxLi4wMTMwYTkzYyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTUudmFw aQorKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitAQCAtMSw2ICsxLDYgQEAKKy0vKiBt dXR0ZXItY2x1dHRlci01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnku ICovCisrLyogbXV0dGVyLWNsdXR0ZXItNi52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBu b3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJDbHV0dGVyIiwgZ2lyX25hbWVz cGFjZSA9ICJDbHV0dGVyIiwgZ2lyX3ZlcnNpb24gPSAiNSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9 ICJjbHV0dGVyXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJDbHV0dGVyIiwgZ2lyX25hbWVzcGFj ZSA9ICJDbHV0dGVyIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJj bHV0dGVyXyIpXQorIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJbmFtZXNwYWNlIEtleSB7CisgCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjbmFtZSA9ICJD TFVUVEVSX0tFWV8wIildCitAQCAtNDY2MSwyMiArNDY2MSwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BbGxv Y2F0aW9uRmxhZ3MgZmxhZ3MpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGUgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIC4u Lik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gYW5pbWF0ZV93aXRoX2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhLCAuLi4pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVf d2l0aF9hbHBoYXYgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2Nu YW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBzdHJpbmdbXSBw cm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBh cnJheV9sZW5ndGhfcG9zID0gMS41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRo X3RpbWVsaW5lICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCAuLi4pOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFu aW1hdGVfd2l0aF90aW1lbGluZXYgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxp bmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xl bmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5W YWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BbmltYXRpb24gYW5pbWF0ZXYgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3Mg PSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9 ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZh bHVlcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5W ZXJ0ZXggYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBh bmNlc3RvciwgQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfcmVs YXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgR3JhcGhl bmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfdHJhbnNmb3JtIChy ZWYgQ2x1dHRlci5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0 ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3RyYW5zZm9ybV90b19wb2lu dCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2 ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyB2b2lkIGJp bmRfbW9kZWwgKEdMaWIuTGlzdE1vZGVsPyBtb2RlbCwgb3duZWQgQ2x1dHRlci5BY3RvckNyZWF0 ZUNoaWxkRnVuYyBjcmVhdGVfY2hpbGRfZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCitAQCAtNDY4OCwyMCArNDY4MCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoQ2x1dHRlci5B Y3RvciBkZXNjZW5kYW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIGNvbnRpbnVlX3BhaW50ICgpOworKwkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQg KENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworKwkJcHVibGljIHZvaWQgY29u dGludWVfcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkNvbnRleHQgY3JlYXRlX3Bhbmdv X2NvbnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFu Z28uTGF5b3V0IGNyZWF0ZV9wYW5nb19sYXlvdXQgKHN0cmluZz8gdGV4dCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZGVzdHJveV9hbGxfY2hpbGRyZW4g KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZGV0YWNoX2FuaW1hdGlvbiAo KTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ldmVudCIpXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGJvb2wgZW1pdF9ldmVudCAoQ2x1dHRlci5F dmVudCBldmVudCwgYm9vbCBjYXB0dXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIENsdXR0ZXIuVmVydGV4IHZlcnRzWzRdKTsKKysJCXB1YmxpYyB2 b2lkIGdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIEdyYXBoZW5lLlBvaW50M0QgdmVydHNbNF0pOworIAkJcHVibGljIHZpcnR1YWwgdW5v d25lZCBBdGsuT2JqZWN0IGdldF9hY2Nlc3NpYmxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rpb24gZ2V0X2FjdGlvbiAoc3Ry aW5nIG5hbWUpOworQEAgLTQ3MDksMTYgKzQ3MDAsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0aW9uPiBnZXRfYWN0aW9ucyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94 IGdldF9hbGxvY2F0aW9uX2JveCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1 dHRlci5HZW9tZXRyeSBnZXRfYWxsb2NhdGlvbl9nZW9tZXRyeSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChD bHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIENs dXR0ZXIuVmVydGV4IHZlcnRzWzRdKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9p ZCBnZXRfYW5jaG9yX3BvaW50IChvdXQgZmxvYXQgYW5jaG9yX3gsIG91dCBmbG9hdCBhbmNob3Jf eSk7CisrCQlwdWJsaWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rv cj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2lu dDNEIHZlcnRzWzRdKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5HcmF2 aXR5IGdldF9hbmNob3JfcG9pbnRfZ3Jhdml0eSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBnZXRfYW5pbWF0aW9uICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9iYWNr Z3JvdW5kX2NvbG9yICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2dldF9hY3Rvcl9i eV9naWQiKV0KK0BAIC00NzY4LDggKzQ3NTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgYm9vbCBnZXRfZml4ZWRfcG9zaXRpb25fc2V0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JGbGFncyBnZXRfZmxhZ3MgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwg c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdWludDMyIGdldF9naWQgKCk7CisgCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfaGFzX3BvaW50ZXIiKV0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfcG9pbnRlciAoKTsKK0BAIC00ODQ4 LDggKzQ4MzEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0 RGlyZWN0aW9uIGdldF90ZXh0X2RpcmVjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybWF0aW9u X21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuUGFpbnRWb2x1bWUgZ2V0X3RyYW5zZm9ybWVkX3BhaW50X3ZvbHVtZSAoQ2x1 dHRlci5BY3RvciByZWxhdGl2ZV90b19hbmNlc3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCitAQCAtNDg5Miw3ICs0ODczLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGJvb2wgaGFzX21hcHBlZF9jbG9uZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgdmlydHVhbCBib29sIGhhc19vdmVybGFwcyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX2FsbCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNlcnRf Y2hpbGRfYWJvdmUgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcp OworQEAgLTQ5MTIsMTAgKzQ4OTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Ym9vbCBpc19zY2FsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVi bGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlciAoQ2x1dHRl ci5BY3Rvcj8gYWJvdmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyX2JvdHRvbSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwICgp OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjYiKV0KK0BAIC00OTI4LDE3ICs0OTA1LDEyIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIG5lZWRzX2V4cGFuZCAoQ2x1dHRlci5PcmllbnRhdGlv biBvcmllbnRhdGlvbik7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBw YWludF9ub2RlIChDbHV0dGVyLlBhaW50Tm9kZSByb290KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgdm9pZCBwaWNrX2JveCAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQs IENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCXB1YmxpYyB2b2lkIHBvcF9pbnRlcm5hbCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX2ludGVybmFsICgpOworIAkJ cHVibGljIHZvaWQgcXVldWVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhd193aXRoX2NsaXAgKENhaXJvLlJlY3Rhbmds ZUludD8gY2xpcCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2UgKENsdXR0ZXIuQWN0b3I/IGJl bG93KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZV90b3AgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfYWN0aW9uIChDbHV0dGVyLkFjdGlv biBhY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ5NjAsOCArNDkz Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9lZmZlY3Rf YnlfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIHJlbW92ZV90cmFuc2l0aW9uIChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuMiIpXQorLQkJcHVibGljIHZvaWQgcmVwYXJlbnQgKENsdXR0ZXIuQWN0b3IgbmV3X3BhcmVu dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVwbGFj ZV9jaGlsZCAoQ2x1dHRlci5BY3RvciBvbGRfY2hpbGQsIENsdXR0ZXIuQWN0b3IgbmV3X2NoaWxk KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTA0Niw4ICs1MDE2LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlIChkb3VibGUgc2Nh bGVfeCwgZG91YmxlIHNjYWxlX3kpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9zY2FsZV9mdWxsIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIGZsb2F0IGNl bnRlcl94LCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3NjYWxlX3dpdGhfZ3Jhdml0eSAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95 LCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3ogKGRvdWJsZSBzY2FsZV96KTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9zaXplIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKK0BAIC01MTEwLDEx ICs1MDc4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKyAJCXB1YmxpYyBib29sIGNoaWxkX3RyYW5zZm9ybV9zZXQgeyBnZXQ7IH0KKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IGNsaXAgeyBv d25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBn ZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgY2xpcF9yZWN0IHsgb3duZWQgZ2V0 OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNs aXBfdG9fYWxsb2NhdGlvbiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BA IC01MTk5LDEyICs1MTY0LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1aW50 IG9wYWNpdHkgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUG9pbnQgcGl2b3RfcG9pbnQg eyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50 IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgZmxvYXQgcGl2b3RfcG9pbnRfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Q b2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorIAkJcHVibGljIGJvb2wgcmVhY3RpdmUgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCitAQCAtNTIyNSwxMyArNTE5MCwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNj ZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4 IHJvdGF0aW9uX2NlbnRlcl94IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludDNEIHJvdGF0aW9uX2NlbnRlcl94IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRl eCByb3RhdGlvbl9jZW50ZXJfeSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhl bmUuUG9pbnQzRCByb3RhdGlvbl9jZW50ZXJfeSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0 ZXggcm90YXRpb25fY2VudGVyX3ogeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50M0Qgcm90YXRpb25fY2VudGVyX3ogeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuR3Jh dml0eSByb3RhdGlvbl9jZW50ZXJfel9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KK0BAIC01MjU3LDcg KzUyMjIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBzaG93X29uX3Nl dF9wYXJlbnQgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuU2l6ZSBzaXplIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNl dDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuVGV4 dERpcmVjdGlvbiB0ZXh0X2RpcmVjdGlvbiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KK0BAIC01MzE5LDExICs1Mjg0LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIG1vdGlvbl9ldmVudCAoQ2x1dHRlci5Nb3Rpb25FdmVu dCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhcmVu dF9zZXQgKENsdXR0ZXIuQWN0b3I/IG9sZF9wYXJlbnQpOworKwkJW0hhc0VtaXR0ZXJdCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBw aWNrIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtIYXNFbWl0dGVy XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgcXVldWVfcmVsYXlvdXQgKCk7CitAQCAtNTM2MSw2ICs1MzI3LDExIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVuYWJsZWQgeyBnZXQ7IHNldDsgfQorIAkJcHVi bGljIHN0cmluZyBuYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3Jfbm9k ZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQWN0b3JOb2RlIDogQ2x1dHRlci5QYWlu dE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBBY3Rvck5vZGUgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbGlnbl9jb25zdHJhaW50X2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIEFsaWduQ29u c3RyYWludCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNTM4OCwxOSArNTM1OSwxMiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgdWxvbmcgZ2V0X21vZGUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5l IGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9uZyByZWdp c3Rlcl9mdW5jIChDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3Vy ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZnVuYyAob3duZWQgQ2x1dHRlci5BbHBoYUZ1bmMgZnVu Yyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbW9k ZSAodWxvbmcgbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfdGltZWxpbmUgKENsdXR0ZXIuVGlt ZWxpbmUgdGltZWxpbmUpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEFscGhhLndpdGhf ZnVuYyAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgb3duZWQgQ2x1dHRlci5BbHBoYUZ1bmMg ZnVuYyk7CisgCQlwdWJsaWMgZG91YmxlIGFscGhhIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsg fQorQEAgLTU0MTEsMzUgKzUzNzUsMjYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMg Y2xhc3MgQW5pbWF0aW9uIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgQW5pbWF0 aW9uICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYmluZCAoc3RyaW5n IHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BbmltYXRpb24gYmluZF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIG93bmVk IENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOworIAkJcHVibGljIHVpbnQgZ2V0 X2R1cmF0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnRlcnZhbCBnZXRfaW50 ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1YmxpYyBib29sIGdldF9sb29wICgp OworIAkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5P YmplY3QgZ2V0X29iamVjdCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUg Z2V0X3RpbWVsaW5lICgpOworIAkJcHVibGljIGJvb2wgaGFzX3Byb3BlcnR5IChzdHJpbmcgcHJv cGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhh IChDbHV0dGVyLkFscGhhIGFscGhhKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAodWlu dCBtc2Vjcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbG9vcCAoYm9vbCBsb29wKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9tb2RlICh1bG9uZyBtb2RlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vYmplY3Qg KEdMaWIuT2JqZWN0IG9iamVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfdGltZWxpbmUgKENsdXR0 ZXIuVGltZWxpbmU/IHRpbWVsaW5lKTsKKy0JCXB1YmxpYyB2b2lkIHVuYmluZF9wcm9wZXJ0eSAo c3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gdXBkYXRlIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlw dWJsaWMgdm9pZCB1cGRhdGVfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBDbHV0dGVy LkludGVydmFsIGludGVydmFsKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKysJCXB1 YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1 aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7IHNl dDsgfQorIAkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIEdMaWIu T2JqZWN0IG9iamVjdCB7IGdldDsgc2V0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1 YmxpYyBHTGliLk9iamVjdCBvYmplY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIENs dXR0ZXIuVGltZWxpbmUgdGltZWxpbmUgeyBnZXQ7IHNldDsgfQorLQkJW0hhc0VtaXR0ZXJdCisg CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjb21wbGV0ZWQgKCk7CisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBzdGFydGVkICgpOworIAl9CitAQCAtNTQ2MCwyMSArNTQxNSwxOCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwcm90ZWN0ZWQgQmFja2VuZCAoKTsKKyAJCVtOb1dy YXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9vcHRpb25zIChHTGliLk9wdGlvbkdy b3VwIGdyb3VwKTsKKy0JCXB1YmxpYyB2b2lkIGJlbGxfbm90aWZ5ICgpOworIAkJW05vV3JhcHBl cl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIu RXJyb3I7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVy LlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAoQ2x1dHRlci5TdGFnZSB3cmFwcGVyKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3Vy ZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFn ZXIgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X2RlZmF1bHRfc2VhdCAo KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFn cyBnZXRfZmVhdHVyZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdW5vd25lZCBDYWlyby5Gb250T3B0aW9ucyBnZXRfZm9udF9vcHRpb25zICgpOworIAkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5JbnB1dE1ldGhvZCBnZXRfaW5wdXRfbWV0aG9kICgpOworLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKyAJCXB1YmxpYyBk b3VibGUgZ2V0X3Jlc29sdXRpb24gKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKK0BAIC01NDk2LDk1ICs1NDQ4LDExIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBzZXR0aW5nc19jaGFuZ2VkICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJf Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg QmVoYXZpb3VyIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmVoYXZpb3Vy ICgpOworLQkJcHVibGljIHZvaWQgYWN0b3JzX2ZvcmVhY2ggKENsdXR0ZXIuQmVoYXZpb3VyRm9y ZWFjaEZ1bmMgZnVuYyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBh bHBoYV9ub3RpZnkgKGRvdWJsZSBhbHBoYV92YWx1ZSk7CistCQlwdWJsaWMgdm9pZCBhcHBseSAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIu QWN0b3I+IGdldF9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFscGhhIGdl dF9hbHBoYSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fYWN0b3JzICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BY3RvciBnZXRfbnRoX2FjdG9yIChpbnQgaW5kZXhfKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIGlzX2FwcGxpZWQgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9h bGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOwor LQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYXBwbGllZCAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCByZW1vdmVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2RlcHRoX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9 ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2aW91ckRlcHRoIDogQ2x1dHRlci5CZWhhdmlv dXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIEJlaGF2aW91ckRlcHRoIChDbHV0dGVyLkFscGhhPyBh bHBoYSwgaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91dCBpbnQgZGVwdGhfc3Rh cnQsIG91dCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKGludCBkZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyBpbnQgZGVwdGhfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGludCBkZXB0aF9zdGFy dCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9vcGFjaXR5X2dldF90 eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2aW91ck9wYWNp dHkgOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIq IildCistCQlwdWJsaWMgQmVoYXZpb3VyT3BhY2l0eSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIHVp bnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91dCB1aW50OCBvcGFjaXR5 X3N0YXJ0LCBvdXQgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAodWludDggb3BhY2l0eV9zdGFydCwgdWlu dDggb3BhY2l0eV9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBv cGFjaXR5X2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyB1aW50IG9wYWNpdHlfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhh dmlvdXJfc2NhbGVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xh c3MgQmVoYXZpb3VyU2NhbGUgOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJCZWhhdmlvdXIqIildCistCQlwdWJsaWMgQmVoYXZpb3VyU2NhbGUgKENsdXR0ZXIuQWxw aGE/IGFscGhhLCBkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91YmxlIHlfc2NhbGVfc3RhcnQsIGRv dWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91dCBkb3VibGUgeF9zY2Fs ZV9zdGFydCwgb3V0IGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBvdXQgZG91YmxlIHhfc2NhbGVfZW5k LCBvdXQgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUg eV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOwor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgZG91YmxlIHhfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB4X3Nj YWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxlX2VuZCB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2Jpbl9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAlwdWJsaWMgY2xhc3MgQmluTGF5b3V0IDogQ2x1dHRlci5MYXlvdXRNYW5hZ2Vy IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorIAkJcHVibGljIEJpbkxheW91dCAoQ2x1dHRlci5CaW5B bGlnbm1lbnQgeF9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJULCBDbHV0dGVyLkJp bkFsaWdubWVudCB5X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZCAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1 dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRl ci5BY3Rvcj8gY2hpbGQsIG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1 dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3Rvcj8gY2hpbGQsIENsdXR0ZXIuQmluQWxp Z25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworIAkJW05vQWNj ZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQmluQWxp Z25tZW50IHhfYWxpZ24geyBnZXQ7IHNldDsgfQorQEAgLTU3NTgsMzcgKzU2MjYsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5Owor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9jYWlyb190ZXh0dXJlX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBjbGFzcyBDYWlyb1RleHR1cmUgOiBDbHV0dGVyLlRleHR1cmUsIEF0 ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBDYWlyb1RleHR1cmUgKHVp bnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlX3JlZ2lvbiAoaW50IHhfb2Zm c2V0LCBpbnQgeV9vZmZzZXQsIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXNpemUgKCk7CistCQlw dWJsaWMgdm9pZCBnZXRfc3VyZmFjZV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVp Z2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFs aWRhdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBp bnZhbGlkYXRlX3JlY3RhbmdsZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyByZWN0KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hdXRvX3Jlc2l6ZSAoYm9v bCB2YWx1ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3VyZmFjZV9zaXplICh1aW50IHdpZHRoLCB1 aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9v bCBhdXRvX3Jlc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyB1aW50IHN1cmZhY2VfaGVpZ2h0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV93aWR0aCB7IGdldDsgc2V0OyB9CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgQ2Fpcm8uU3Vy ZmFjZSBjcmVhdGVfc3VyZmFjZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZHJhdyAo Q2Fpcm8uQ29udGV4dCBjcik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhbnZhc19nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgQ2FudmFzIDog R0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNTkyMCw2MiArNTc1NywyNCBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfZmFjdG9yIChkb3VibGUgZmFj dG9yKTsKKyAJCXB1YmxpYyBkb3VibGUgZmFjdG9yIHsgZ2V0OyBzZXQ7IH0KKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfZGV2aWNlX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRGV2aWNlTWFuYWdlciA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBEZXZpY2VNYW5hZ2VyICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgYWRkX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3Mg KENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1dHRlci5FdmVudCBldmVudCwg Q2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmly dHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmlj ZVR5cGUgZGV2aWNlX3R5cGUpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklu cHV0RGV2aWNlIGdldF9jb3JlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNl X3R5cGUpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBn ZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERl dmljZSBnZXRfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9rYmRf YTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJcHVi bGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNl dHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERldmlj ZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsKKy0JCXB1YmxpYyBH TGliLlNMaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworLQkJ cHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLklucHV0RGV2aWNlPiBwZWVrX2Rldmlj ZXMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCByZW1vdmVfZGV2 aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBzZWxlY3Rfc3RhZ2VfZXZlbnRzIChDbHV0dGVyLlN0YWdlIHN0YWdl KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5 U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9kd2Vs bF9jbGlja190eXBlIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlw ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBv aW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBk ZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklu cHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3Nf Y2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVk X21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5 X2R3ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tU eXBlIGNsaWNrX3R5cGUpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRf c3RhcnRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlU aW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVpbnQgZGVsYXkpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2Us IENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIENs dXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19hY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xh c3MgRHJhZ0FjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisgCQlwdWJsaWMg RHJhZ0FjdGlvbiAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVj dCBkcmFnX2FyZWEpOworKwkJcHVibGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoR3JhcGhlbmUuUmVj dCBkcmFnX2FyZWEpOworIAkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZ2V0X2RyYWdfYXhpcyAo KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2RyYWdfaGFuZGxlICgpOwor IAkJcHVibGljIHZvaWQgZ2V0X2RyYWdfdGhyZXNob2xkIChvdXQgdWludCB4X3RocmVzaG9sZCwg b3V0IHVpbnQgeV90aHJlc2hvbGQpOworIAkJcHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29yZHMg KG91dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZsb2F0IG1vdGlvbl95KTsKKyAJCXB1YmxpYyB2b2lk IGdldF9wcmVzc19jb29yZHMgKG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7 CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3Q/IGRyYWdfYXJlYSk7 CisrCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19hcmVhIChHcmFwaGVuZS5SZWN0PyBkcmFnX2FyZWEp OworIAkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXhpcyAoQ2x1dHRlci5EcmFnQXhpcyBheGlzKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9kcmFnX2hhbmRsZSAoQ2x1dHRlci5BY3Rvcj8gaGFuZGxlKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9kcmFnX3RocmVzaG9sZCAoaW50IHhfdGhyZXNob2xkLCBpbnQg eV90aHJlc2hvbGQpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7 IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgZHJhZ19hcmVhIHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyBib29sIGRyYWdfYXJlYV9zZXQgeyBnZXQ7IH0KK0BAIC02MDExLDEzICs1 ODEwLDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMg dmlydHVhbCBib29sIG1vZGlmeV9wYWludF92b2x1bWUgKENsdXR0ZXIuUGFpbnRWb2x1bWUgdm9s dW1lKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0 dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWlu dCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCwgQ2x1dHRlci5FZmZlY3RQYWlu dEZsYWdzIGZsYWdzKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBp Y2sgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmly dHVhbCB2b2lkIHBvc3RfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQp OworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhaW50ICgpOwor KwkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBh aW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZv aWQgcXVldWVfcmVwYWludCAoKTsKKyAJfQorQEAgLTYwNjgsNyArNTg2Nyw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1aW50IGdldF9tb2RlX2dyb3VwICgpOworIAkJcHVibGlj IGJvb2wgZ2V0X3BhZF9ldmVudF9kZXRhaWxzIChvdXQgdWludCBudW1iZXIsIG91dCB1aW50IG1v ZGUsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9wb3NpdGlvbiAoQ2x1dHRlci5Qb2ludCBwb3NpdGlvbik7CisrCQlw dWJsaWMgdm9pZCBnZXRfcG9zaXRpb24gKEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X3JlbGF0ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTYzMDgs NyArNjEwNyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9heGlzX3ZhbHVlIChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gZG91YmxlW10gYXhlcywgQ2x1dHRlci5JbnB1dEF4aXMgYXhpcywgb3V0IGRv dWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJv b2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgQ2x1dHRlci5Q b2ludCBwb2ludCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRzIChDbHV0dGVyLkV2ZW50U2Vx dWVuY2U/IHNlcXVlbmNlLCBHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2VfaWQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCitAQCAtNjMyMiw3ICs2MTIxLDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZ3JhYmJlZF9h Y3RvciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2dyb3VwX25fbW9kZXMgKGludCBncm91cCk7Cisr CQlwdWJsaWMgdmlydHVhbCBpbnQgZ2V0X2dyb3VwX25fbW9kZXMgKGludCBncm91cCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX2N1cnNvciAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MzQ0LDE2ICs2MTQzLDE3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0 X3BvaW50ZXJfc3RhZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9kdWN0X2lkICgpOworKwkJcHVibGljIHVub3duZWQg Q2x1dHRlci5TZWF0IGdldF9zZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGdldF9zbGF2ZV9k ZXZpY2VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfdmVuZG9yX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIGdyYWIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGlj IGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworLQkJ cHVibGljIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRv bik7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX2dyb3VwZWQgKENsdXR0ZXIuSW5wdXREZXZp Y2Ugb3RoZXJfZGV2aWNlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfbW9kZV9zd2l0Y2hf YnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIGJvb2wga2V5Y29kZV90b19ldmRldiAodWludCBoYXJkd2FyZV9r ZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXlj b2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciBzZXF1ZW5jZV9nZXRfZ3JhYmJlZF9hY3RvciAoQ2x1dHRlci5FdmVudFNlcXVlbmNl IHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtNjM2OSwxMiAr NjE2OSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCB1bmdyYWIgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCB1cGRhdGVfZnJv bV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9vbCB1cGRhdGVfc3RhZ2UpOworKwkJW05v V3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2Zyb21fdG9vbCAoQ2x1dHRl ci5JbnB1dERldmljZVRvb2wgdG9vbCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2 aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIu SW5wdXRNb2RlIGRldmljZV9tb2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzdHJp bmcgZGV2aWNlX25vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorQEAgLTYzOTcsNiArNjE5Niw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyBwcm9kdWN0X2lkIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IGdldDsgY29uc3RydWN0OyB9 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyB2ZW5kb3Jf aWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtNjQzNCw3ICs2MjM0LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2Nhbl9zaG93X3ByZWVkaXQgKGJvb2wg Y2FuX3Nob3dfcHJlZWRpdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9oaW50cyAoQ2x1 dHRlci5JbnB1dENvbnRlbnRIaW50RmxhZ3MgaGludCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29u dGVudF9wdXJwb3NlIChDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgcHVycG9zZSk7CistCQlw dWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlw dWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJ cHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0 ZSBzdGF0ZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfcHJl ZWRpdF90ZXh0IChzdHJpbmcgcHJlZWRpdCwgdWludCBjdXJzb3IpOworQEAgLTY0NTMsNyArNjI1 Myw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIHJlc2V0ICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJ cHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0 ZSBzdGF0ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJlZWRpdF90ZXh0IChzdHJpbmc/IHByZWVk aXQsIHVpbnQgY3Vyc29yKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNjQ3MCw3ICs2MjcwLDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9z ZSBjb250ZW50X3B1cnBvc2UgeyBnZXQ7IHNldDsgfQorIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgY29tbWl0IChzdHJpbmcgdGV4dCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuUmVjdCBvYmplY3QpOworKwkJcHVi bGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChHcmFwaGVuZS5SZWN0IG9i amVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfc3Vy cm91bmRpbmcgKHVpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg aW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIG9iamVjdCk7CitAQCAt NjU0NiwyNyArNjM0NiwzMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgS2V5bWFwICgpOworIAkJ cHVibGljIHZpcnR1YWwgYm9vbCBnZXRfY2Fwc19sb2NrX3N0YXRlICgpOworKwkJcHVibGljIHZp cnR1YWwgUGFuZ28uRGlyZWN0aW9uIGdldF9kaXJlY3Rpb24gKCk7CisgCQlwdWJsaWMgdmlydHVh bCBib29sIGdldF9udW1fbG9ja19zdGF0ZSAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzdGF0 ZV9jaGFuZ2VkICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9sYXllcl9ub2RlX2dldF90eXBlICgpIild CisrCXB1YmxpYyBjbGFzcyBMYXllck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnRO b2RlKiIpXQorKwkJcHVibGljIExheWVyTm9kZSAoQ29nbC5NYXRyaXggcHJvamVjdGlvbiwgQ2Fp cm8uUmVjdGFuZ2xlIHZpZXdwb3J0LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCB1aW50OCBv cGFjaXR5KTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5b3V0X21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTGF5 b3V0TWFuYWdlciA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgTGF5b3V0TWFuYWdlciAoKTsK KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRh aW5lciwgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uLCBDbHV0dGVyLkFsbG9jYXRpb25GbGFn cyBmbGFncyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBD bHV0dGVyLkFscGhhIGJlZ2luX2FuaW1hdGlvbiAodWludCBkdXJhdGlvbiwgdWxvbmcgbW9kZSk7 CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwg Q2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldF9wcm9w ZXJ0eSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBz dHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlwdWJsaWMgdm9pZCBj aGlsZF9zZXQgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rv ciwgLi4uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldF9wcm9wZXJ0eSAoQ2x1dHRlci5Db250 YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBzdHJpbmcgcHJvcGVydHlfbmFt ZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEgY3JlYXRlX2NoaWxkX21ldGEgKENsdXR0ZXIuQ29u dGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIp XQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5kX2FuaW1hdGlvbiAo KTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkg KHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVi bGljIHZpcnR1YWwgZG91YmxlIGdldF9hbmltYXRpb25fcHJvZ3Jlc3MgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEg Z2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CitAQCAtNjYyMywxMiArNjQyNywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwcm90ZWN0ZWQgT2Zmc2NyZWVuRWZmZWN0ICgpOworIAkJcHVibGljIHZpcnR1YWwgQ29nbC5I YW5kbGUgY3JlYXRlX3RleHR1cmUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAo b3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIGJvb2wgZ2V0X3Rhcmdl dF9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjgi KV0KKyAJCXB1YmxpYyBib29sIGdldF90YXJnZXRfc2l6ZSAob3V0IGZsb2F0IHdpZHRoLCBvdXQg ZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgcGFpbnRfdGFyZ2V0ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJnZXQg KENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9w YWdlX3R1cm5fZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KK0BAIC02NjQ1LDYgKzY0NDksMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGRvdWJsZSBwZXJpb2QgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGZsb2F0IHJhZGl1cyB7IGdl dDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9yZWYiLCB0eXBl X2lkID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9u ID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0KKysJcHVibGlj IGNsYXNzIFBhaW50Q29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworKwkJcHVi bGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJs aWMgdm9pZCBwb3BfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwdXNoX2ZyYW1lYnVm ZmVyIChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKysJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuUGFpbnRDb250ZXh0IEByZWYgKCk7CisrCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfcGFpbnRfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGFpbnROb2RlIHsKK0BAIC02 NjU0LDcgKzY0NjgsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBhZGRf bXVsdGl0ZXh0dXJlX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0LCBmbG9hdCB0ZXh0 X2Nvb3JkcywgdWludCB0ZXh0X2Nvb3Jkc19sZW4pOworIAkJcHVibGljIHZvaWQgYWRkX3JlY3Rh bmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIGFkZF90ZXh0dXJl X3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0LCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwg ZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQkJcHVibGljIHZvaWQgcGFpbnQgKCk7CisrCQlwdWJs aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1Ymxp YyB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnROb2RlIEByZWYgKCk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIHZvaWQgdW5yZWYgKCk7CitAQCAtNjY3 Miw3ICs2NDg3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggZ2V0X29yaWdpbiAoKTsKKysJ CXB1YmxpYyB2b2lkIGdldF9vcmlnaW4gKG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVy dGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRf d2lkdGggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjY4Miw3ICs2NDk3 LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIHZvaWQgc2V0X2hlaWdodCAoZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKENsdXR0ZXIuVmVydGV4 IG9yaWdpbik7CisrCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChHcmFwaGVuZS5Qb2ludDNEIG9y aWdpbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRf d2lkdGggKGZsb2F0IHdpZHRoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02 NzY5LDI2ICs2NTg0LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVy LlBhdGggcGF0aCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbm9kZV9yZWFj aGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yLCB1aW50IGluZGV4KTsKKyAJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZfZnVuY3Rpb24gPSAiY2x1 dHRlcl9waWNrX2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF9n ZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlja19jb250ZXh0X3VucmVm IildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGlja0NvbnRleHQgeworKwkJcHVibGlj IHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGlja0NvbnRleHQg QHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waXBl bGluZV9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CXB1YmxpYyBjbGFzcyBQaXBlbGluZU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgUGlwZWxp bmVOb2RlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9 ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRfZ2V0X3R5cGUgKCkiKV0K Ky0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBjbGFz cyBQb2ludCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVi bGljIHN0YXRpYyBDbHV0dGVyLlBvaW50IGFsbG9jICgpOworLQkJcHVibGljIENsdXR0ZXIuUG9p bnQgY29weSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoQ2x1dHRlci5Qb2ludCBiLCBv dXQgZmxvYXQgeF9kaXN0YW5jZSwgb3V0IGZsb2F0IHlfZGlzdGFuY2UpOworLQkJcHVibGljIGJv b2wgZXF1YWxzIChDbHV0dGVyLlBvaW50IGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSk7Cist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCB6ZXJvICgpOworLQl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9wcm9wZXJ0eV90cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBQcm9wZXJ0eVRyYW5zaXRpb24gOiBDbHV0 dGVyLlRyYW5zaXRpb24sIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtNjc5OCwzMyArNjYwNiw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1l IChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworIAkJcHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1l IHsgZ2V0OyBzZXQ7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RfZ2V0X3R5cGUgKCki KV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBj bGFzcyBSZWN0IHsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuUG9pbnQgb3JpZ2luOworLQkJcHVi bGljIHdlYWsgQ2x1dHRlci5TaXplIHNpemU7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUmVj dCBhbGxvYyAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsYW1wX3RvX3BpeGVsICgpOworLQkJcHVibGlj IGJvb2wgY29udGFpbnNfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIGJv b2wgY29udGFpbnNfcmVjdCAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIENsdXR0ZXIuUmVj dCBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlJlY3QgYik7CistCQlw dWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2NlbnRlciAoQ2x1dHRlci5Q b2ludCBjZW50ZXIpOworLQkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMg ZmxvYXQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIGZsb2F0IGdldF94ICgpOworLQkJcHVibGlj IGZsb2F0IGdldF95ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5SZWN0IGluaXQgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQkJcHVibGljIHZv aWQgaW5zZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1YmxpYyBib29sIGludGVyc2Vj dGlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdD8gcmVzKTsKKy0JCXB1YmxpYyBDbHV0 dGVyLlJlY3Qgbm9ybWFsaXplICgpOworLQkJcHVibGljIHZvaWQgb2Zmc2V0IChmbG9hdCBkX3gs IGZsb2F0IGRfeSk7CistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc194LCBmbG9hdCBzX3kp OworLQkJcHVibGljIHZvaWQgdW5pb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3QgcmVz KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgemVybyAoKTsKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KKyAJcHVibGljIGNsYXNzIFJlY3RhbmdsZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5J bXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKK0BAIC02OTA3LDggKzY2ODgsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCisgCQlwdWJsaWMgU2Nyb2xsQWN0b3IgKCk7CisgCQlwdWJsaWMgQ2x1dHRl ci5TY3JvbGxNb2RlIGdldF9zY3JvbGxfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90 b19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9f cmVjdCAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50 IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcmVjdCAo R3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY3JvbGxfbW9kZSAoQ2x1 dHRlci5TY3JvbGxNb2RlIG1vZGUpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBzY3Jv bGxfbW9kZSB7IGdldDsgc2V0OyB9CisgCX0KK0BAIC02OTMwLDYgKzY3MTEsNDQgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfc2VhdF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgU2VhdCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWF0ICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTEx eVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYmVsbF9ub3RpZnkg KCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1dHRlci5FdmVu dCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKysJCVtOb1dyYXBwZXJdCisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIGNvcHlfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBzcmMsIENs dXR0ZXIuRXZlbnQgZGVzdCk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1 dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRl dmljZV90eXBlKTsKKysJCXB1YmxpYyB2b2lkIGVuc3VyZV9hMTF5X3N0YXRlICgpOworKwkJW05v V3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZnJlZV9ldmVudF9kYXRhIChDbHV0dGVy LkV2ZW50IGV2ZW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1 dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9rZXlib2FyZCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfcG9pbnRlciAoKTsKKysJCXB1YmxpYyB2 b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5n cyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZpY2VUeXBl IGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7CisrCQlwdWJsaWMgYm9vbCBn ZXRfdG91Y2hfbW9kZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIEdMaWIuTGlzdDx3ZWFrIENsdXR0 ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9rYmRf YTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVi bGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlIChDbHV0dGVyLlBvaW50 ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9p bnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3Mp OworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB3YXJwX3BvaW50ZXIgKGludCB4LCBpbnQgeSk7Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgYm9vbCB0b3VjaF9tb2RlIHsgZ2V0 OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0RGV2 aWNlIG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENsdXR0 ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9m bGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxh dGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRy X2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxD bGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGlt ZW91dF9zdGFydGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVy QTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgdWludCBkZWxheSk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRl dmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgYm9vbCBj bGlja2VkKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5w dXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CisrCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3NldHRpbmdzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIDogR0xpYi5PYmplY3QgeworQEAgLTcwMDIsMTgg KzY4MjEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hhZGVyTWF0cml4ICgpOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gImNsdXR0ZXJfc2l6ZV9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFNpemUgeworLQkJcHVibGlj IGZsb2F0IGhlaWdodDsKKy0JCXB1YmxpYyBmbG9hdCB3aWR0aDsKKy0JCXB1YmxpYyBzdGF0aWMg Q2x1dHRlci5TaXplIGFsbG9jICgpOworLQkJcHVibGljIENsdXR0ZXIuU2l6ZSBjb3B5ICgpOwor LQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlNpemUgYik7CistCQlwdWJsaWMgdm9pZCBm cmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TaXplIGluaXQgKGZsb2F0IHdpZHRo LCBmbG9hdCBoZWlnaHQpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zbmFwX2NvbnN0cmFpbnRfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAlwdWJsaWMgY2xhc3MgU25h cENvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTcwNTIsMTQgKzY4NTksMTIg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgZnJlZXplX3VwZGF0ZXMgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYWNjZXB0 X2ZvY3VzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRf cG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgaW50IHgsIGludCB5KTsKKysJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAoQ2x1dHRlci5QaWNrTW9k ZSBwaWNrX21vZGUsIGZsb2F0IHgsIGZsb2F0IHkpOworIAkJcHVibGljIGJvb2wgZ2V0X2NhcHR1 cmVfZmluYWxfc2l6ZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGludCB3aWR0aCwgaW50IGhl aWdodCwgZmxvYXQgc2NhbGUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jb2xv ciAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfZGVm YXVsdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZ2V0X2Zv ZyAoKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tl eV9mb2N1cyAoKTsKK0BAIC03MDY3LDE5ICs2ODcyLDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB2b2lkIGdldF9taW5pbXVtX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWlu dCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wg Z2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBib29sIGdldF9ub19jbGVhcl9oaW50ICgpOworIAkJcHVibGljIENsdXR0 ZXIuUGVyc3BlY3RpdmUgZ2V0X3BlcnNwZWN0aXZlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCBnZXRfcmVkcmF3X2NsaXBfYm91 bmRzICgpOworKwkJcHVibGljIENhaXJvLlJlZ2lvbiBnZXRfcmVkcmF3X2NsaXAgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGhyb3R0bGVfbW90 aW9uX2V2ZW50cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FscGhhICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBib29sIGdldF91c2VfZm9nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorIAkJcHVibGljIHZvaWQgaGlkZV9jdXJzb3IgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorQEAg LTcwOTQsMTYgKzY4OTQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg c2V0X2FjY2VwdF9mb2N1cyAoYm9vbCBhY2NlcHRfZm9jdXMpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2ZvZyAoQ2x1dHRlci5Gb2cgZm9nKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9rZXlfZm9jdXMgKENsdXR0ZXIuQWN0b3I/ IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9taW5pbXVtX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQg KGJvb2wgZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfbm9fY2xlYXJfaGludCAoYm9vbCBub19jbGVhcik7CisgCQlwdWJsaWMgdm9pZCBz ZXRfcGVyc3BlY3RpdmUgKENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Rocm90dGxlX21vdGlv bl9ldmVudHMgKGJvb2wgdGhyb3R0bGUpOworQEAgLTcxMTEsOCArNjkwNyw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF90aXRsZSAoc3RyaW5nIHRpdGxlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VfYWxwaGEg KGJvb2wgdXNlX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRf dXNlX2ZvZyAoYm9vbCBmb2cpOworIAkJcHVibGljIHZvaWQgc2hvd19jdXJzb3IgKCk7CisgCQlw dWJsaWMgdm9pZCB0aGF3X3VwZGF0ZXMgKCk7CisgCQlwdWJsaWMgdm9pZCB1cGRhdGVfcmVzb3Vy Y2Vfc2NhbGVzICgpOworQEAgLTcxMjIsMjAgKzY5MTYsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNj ZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgYm9vbCBjdXJzb3JfdmlzaWJsZSB7IGdldDsgc2V0OyB9 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGZvZyB7IGdldDsgc2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3Rv ciBrZXlfZm9jdXMgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIGJvb2wgbm9fY2xlYXJfaGludCB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2 ZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMg c3RyaW5nIHRpdGxlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KyAJCXB1YmxpYyBib29sIHVzZV9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIGJvb2wgdXNlX2ZvZyB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3RpdmF0ZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCitAQCAtNzE1OCw4ICs2OTQ2LDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLlN0YWdlPiBsaXN0X3N0YWdlcyAoKTsKKyAJCXB1Ymxp YyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5TdGFnZT4gcGVla19zdGFnZXMgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVmYXVsdF9zdGFnZSAoQ2x1dHRlci5T dGFnZSBzdGFnZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1 dHRlci5TdGFnZSBkZWZhdWx0X3N0YWdlIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCitAQCAtNzIwNiwxNiArNjk5MiwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVpbnQgZ2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJj ZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5TdGF0ZUtleT4gZ2V0X2tleXMg KHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIEdM aWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGF0ZSAoKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgc3RyaW5nPiBnZXRfc3RhdGVzICgpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0 X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9r ZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUs IEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJjZV9zdGF0 ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCB1aW50IGR1cmF0aW9uKTsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YXRlIHNldF9rZXkgKHN0 cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5P YmplY3Qgb2JqZWN0LCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgdWludCBtb2RlLCBHTGliLlZhbHVl IHZhbHVlLCBkb3VibGUgcHJlX2RlbGF5LCBkb3VibGUgcG9zdF9kZWxheSk7CitAQCAtNzIzNiwy NCArNzAxNiw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW0NvbXBhY3RdCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIFN0YXRlS2V5IHsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgZG91YmxlIGdldF9wb3N0X2RlbGF5ICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3ByZV9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIEdMaWIuVHlwZSBnZXRfcHJvcGVydHlfdHlwZSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NvdXJjZV9z dGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfdGFyZ2V0X3N0YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IGJvb2wgZ2V0X3ZhbHVlIChHTGliLlZhbHVlIHZhbHVlKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3dp cGVfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BA IC03MjY1LDUzICs3MDI5LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHN3aXBlIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3RhYmxlX2xheW91dF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuNCIp XQorLQlwdWJsaWMgY2xhc3MgVGFibGVMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRl ckxheW91dE1hbmFnZXIqIildCistCQlwdWJsaWMgVGFibGVMYXlvdXQgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuVGFibGVB bGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgaW50IGdldF9jb2x1bW5fY291bnQgKCk7Cist CQlwdWJsaWMgdWludCBnZXRfY29sdW1uX3NwYWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29s IHhfZXhwYW5kLCBvdXQgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmlsbCwg b3V0IGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3Jvd19jb3VudCAoKTsKKy0JCXB1 YmxpYyB1aW50IGdldF9yb3dfc3BhY2luZyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zcGFuIChD bHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgaW50IGNvbHVtbl9zcGFuLCBvdXQgaW50IHJvd19zcGFu KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMg KCk7CistCQlwdWJsaWMgdm9pZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1u LCBpbnQgcm93KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25t ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24s IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgdm9pZCBzZXRfY29s dW1uX3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBib29sIHhfZXhwYW5kLCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGwsIGJv b2wgeV9maWxsKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9yb3dfc3BhY2luZyAodWludCBzcGFjaW5n KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29s dW1uX3NwYW4sIGludCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3VzZV9hbmltYXRpb25zIChib29sIGFuaW1hdGUpOworLQkJcHVibGljIHVpbnQgY29s dW1uX3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHJv d19zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9v bCB1c2VfYW5pbWF0aW9ucyB7IGdldDsgc2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhcF9hY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGlj IGNsYXNzIFRhcEFjdGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CitAQCAtNzMzOSw3ICs3 MDU2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0 X2N1cnNvcl9jb2xvciAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnNvcl9wb3NpdGlvbiAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29y X3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIGdl dF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1Ymxp YyB1aW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9jdXJzb3Jfdmlz aWJsZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9lZGl0YWJsZSAoKTsKK0BAIC03NDU4LDcgKzcx NzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50 IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGN1cnNvcl9ldmVudCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0 ZV90ZXh0IChpbnQgc3RhcnRfcG9zLCBpbnQgZW5kX3Bvcyk7CitAQCAtNzQ5Nyw5MiArNzIxNCw5 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBUZXh0Tm9kZSAoUGFuZ28uTGF5b3V0 PyBsYXlvdXQsIENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVy ZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBj bGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFu aW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9y KiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyBUZXh0dXJlICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIFRleHR1cmUuZnJvbV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIFRleHR1cmUuZnJvbV9m aWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBDbHV0dGVyLlRleHR1cmVFcnJvcjsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgdm9pZCBnZXRfYmFzZV9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdo dCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0 X2NvZ2xfbWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHVub3duZWQg Q29nbC5IYW5kbGUgZ2V0X2NvZ2xfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBnZXRfZmlsdGVyX3F1YWxpdHkgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2tlZXBfYXNwZWN0X3JhdGlvICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2FzeW5jICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2RhdGFfYXN5bmMgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGludCBnZXRfbWF4X3RpbGVfd2FzdGUgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3BpY2tfd2l0aF9hbHBoYSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfcmVwZWF0IChvdXQgYm9vbCBy ZXBlYXRfeCwgb3V0IGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBib29sIGdldF9zeW5jX3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJv b2wgc2V0X2FyZWFfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBm bGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2NvZ2xfbWF0ZXJpYWwgKENvZ2wuSGFuZGxlIGNvZ2xfbWF0ZXJpYWwpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX3RleHR1cmUgKENvZ2wuSGFuZGxl IGNvZ2xfdGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmlsdGVy X3F1YWxpdHkgKENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxpdHkpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFt ZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wg c2V0X2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtd IGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dzdHJp ZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV95dXZfZGF0YSAo W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0LCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2tlZXBfYXNwZWN0X3JhdGlv IChib29sIGtlZXBfYXNwZWN0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfbG9hZF9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfbG9hZF9kYXRhX2FzeW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9waWNrX3dpdGhfYWxwaGEgKGJvb2wgcGlj a193aXRoX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVw ZWF0IChib29sIHJlcGVhdF94LCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfc3luY19zaXplIChib29sIHN5bmNfc2l6ZSk7CisrCXB1YmxpYyBj bGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciB7CisgCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBj b2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBDb2dsLlRleHR1cmUgY29nbF90 ZXh0dXJlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJv b2wgZGlzYWJsZV9zbGljaW5nIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyBzdHJpbmcgZmlsZW5hbWUgeyBvd25lZCBnZXQ7IHNldDsgfQor LQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxpdHkgeyBnZXQ7IHNl dCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBib29sIGtlZXBfYXNwZWN0X3JhdGlvIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBsb2FkX2FzeW5jIHsgc2V0 OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9kYXRhX2FzeW5jIHsg c2V0OyB9CistCQlwdWJsaWMgYm9vbCBwaWNrX3dpdGhfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeCB7IGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF95IHsgZ2V0OyBz ZXQ7IH0KKy0JCXB1YmxpYyBib29sIHN5bmNfc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgdGlsZV93YXN0ZSB7IGdldDsgfQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGxvYWRfZmluaXNoZWQgKEdM aWIuRXJyb3IgZXJyb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpeGJ1 Zl9jaGFuZ2UgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc2l6ZV9jaGFu Z2UgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfbm9k ZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2MDgs NyArNzI0Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hdXRvX3JldmVyc2UgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemllcl9wcm9ncmVz cyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1YmxpYyBib29s IGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUu UG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50 IGdldF9jdXJyZW50X3JlcGVhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KK0BA IC03NjQ1LDcgKzcyNzksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXZlcnNlIChib29sIHJldmVy c2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9j dWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNf Mik7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Q b2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorQEAgLTc3NDQsNiArNzM3OCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl90cmFuc2Zvcm1fbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVHJhbnNm b3JtTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMg VHJhbnNmb3JtTm9kZSAoQ29nbC5NYXRyaXggcHJvamVjdGlvbik7CisrCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFRyYW5zaXRpb24gOiBDbHV0dGVyLlRpbWVsaW5lLCBD bHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTc3ODMsNyArNzQyMiw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXBy b3RlY3RlZCBWaXJ0dWFsSW5wdXREZXZpY2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2Vf dHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfbWFu YWdlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Fic29sdXRlX21vdGlvbiAo dWludDY0IHRpbWVfdXMsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIG5vdGlmeV9idXR0b24gKHVpbnQ2NCB0aW1lX3VzLCB1aW50MzIgYnV0dG9uLCBDbHV0dGVy LkJ1dHRvblN0YXRlIGJ1dHRvbl9zdGF0ZSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlm eV9kaXNjcmV0ZV9zY3JvbGwgKHVpbnQ2NCB0aW1lX3VzLCBDbHV0dGVyLlNjcm9sbERpcmVjdGlv biBkaXJlY3Rpb24sIENsdXR0ZXIuU2Nyb2xsU291cmNlIHNjcm9sbF9zb3VyY2UpOworQEAgLTc3 OTQsMjUgKzc0MzIsMjUgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwg dm9pZCBub3RpZnlfdG91Y2hfZG93biAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUg eCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfbW90aW9u ICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF91cCAodWludDY0IHRpbWVfdXMsIGludCBzbG90 KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdl ciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1 dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJ W05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5TZWF0IHNlYXQgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl96b29tX2FjdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJsaWMgY2xhc3MgWm9vbUFj dGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorIAkJcHVibGljIFpv b21BY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9p bnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2ZvY2FsX3BvaW50IChD bHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9wb2ludCAoR3Jh cGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2ZvY2Fs X3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhp cyBnZXRfem9vbV9heGlzICgpOworIAkJcHVibGljIHZvaWQgc2V0X3pvb21fYXhpcyAoQ2x1dHRl ci5ab29tQXhpcyBheGlzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIHpvb21fYXhpcyB7 IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVy LkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFjdG9yKTsK KysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3Is IEdyYXBoZW5lLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFjdG9yKTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2NuYW1lID0g IkNsdXR0ZXJBbmltYXRhYmxlSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1hdGFi bGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBBbmltYXRhYmxlIDogR0xpYi5P YmplY3QgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyBhYnN0 cmFjdCBib29sIGFuaW1hdGVfcHJvcGVydHkgKENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGlvbiwg c3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgaW5pdGlhbF92YWx1ZSwgR0xpYi5WYWx1 ZSBmaW5hbF92YWx1ZSwgZG91YmxlIHByb2dyZXNzLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIEdMaWIu UGFyYW1TcGVjIGZpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKK0BAIC03ODMw LDggKzc0NjgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUg PSAiYWRkIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRk X2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgdm9pZCBhZGRfdmFsaXN0IChDbHV0dGVyLkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZh cl9hcmdzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGNo aWxkX2dldCAoQ2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KK0BAIC03ODUzLDEwICs3NDg5LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBmaW5kX2NoaWxkX2J5X25hbWUgKHN0cmluZyBj aGlsZF9uYW1lKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3Nf ZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorIAkJcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJh bVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEBmb3JlYWNoIChDbHV0dGVyLkNh bGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGZvcmVhY2hfd2l0aF9pbnRlcm5hbHMgKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBD bHV0dGVyLkNoaWxkTWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuNCIpXQorQEAgLTc4NzQsOCArNzUwNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJyZW1vdmUiKV0KKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40Iild CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV92YWxpc3QgKENs dXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjYiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNvcnRfZGVwdGhfb3JkZXIgKCk7CisgCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3Rvcl9hZGRlZCAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CitAQCAtNzg5Miw3ICs3NTIyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZSAoKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGlu dmFsaWRhdGVfc2l6ZSAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBu b2RlKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUsIENsdXR0ZXIuUGFpbnRDb250ZXh0IHBh aW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGF0dGFjaGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzkwOCwxMCArNzUzOCw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKyAJcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2Ns aXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfZ2VvbWV0cnkgKENsdXR0ZXIuR2VvbWV0cnkgZ2Vv bWV0cnkpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3BlbmRp bmdfc3dhcHMgKCk7CisgCQlbTm9XcmFwcGVyXQorQEAgLTc5MzksMTQgKzc1NjUsMTYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lk IHVucmVhbGl6ZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBB Y3RvckJveCB7CisgCQlwdWJsaWMgZmxvYXQgeDE7CisgCQlwdWJsaWMgZmxvYXQgeTE7CisgCQlw dWJsaWMgZmxvYXQgeDI7CisgCQlwdWJsaWMgZmxvYXQgeTI7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkFjdG9yQm94PyBhbGxvYyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGNsYW1wX3RvX3Bp eGVsICgpOworKwkJcHVibGljIHN0YXRpYyB2b2lkIGNsYW1wX3RvX3BpeGVsIChyZWYgQ2x1dHRl ci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IGJvb2wgY29udGFpbnMgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorQEAgLTc5NTUsOCArNzU4Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLkFjdG9yQm94IGJveF9iKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfYWN0b3JfYm94X2Zyb21fdmVydGljZXMiKV0KKy0JCXB1YmxpYyBBY3RvckJv eC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfYXJlYSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KK0BAIC04MDAyLDcgKzc2MjgsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgd2VhayBDYWlyby5TdXJmYWNlIGltYWdlOworIAkJcHVibGljIENhaXJv LlJlY3RhbmdsZUludCByZWN0OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gIkNMVVRURVJfVFlQRV9DT0xPUiIpXQorIAlwdWJsaWMgc3RydWN0IENvbG9yIHsKKyAJ CXB1YmxpYyB1aW50OCByZWQ7CisgCQlwdWJsaWMgdWludDggZ3JlZW47CitAQCAtODA0MSwyNCAr NzY2Nyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mb2df Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0cnVjdCBGb2cgewor LQkJcHVibGljIGZsb2F0IHpfbmVhcjsKKy0JCXB1YmxpYyBmbG9hdCB6X2ZhcjsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfZ2VvbWV0cnlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBHZW9t ZXRyeSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgdWlu dCB3aWR0aDsKKy0JCXB1YmxpYyB1aW50IGhlaWdodDsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBib29sIGludGVyc2VjdHMgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0 cnkxKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdl b21ldHJ5IHVuaW9uIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5X2IpOworLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEtiZEExMXlTZXR0aW5ncyB7CisgCQlwdWJsaWMgQ2x1 dHRlci5LZXlib2FyZEExMXlGbGFncyBjb250cm9sczsKK0BAIC04MDY5LDcgKzc2NzcsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgaW50IG1vdXNla2V5c19tYXhfc3BlZWQ7Cisg CQlwdWJsaWMgaW50IG1vdXNla2V5c19hY2NlbF90aW1lOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90 X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9 ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBzdHJ1Y3QgS25vdCB7CisgCQlw dWJsaWMgaW50IHg7CitAQCAtODEyMSw3ICs3NzI5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGRvdWJsZSB2YWx1ZTsKKyAJCXB1YmxpYyB1aW50MzIgbW9kZTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfcGF0aF9ub2RlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGF0 aF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVi bGljIHN0cnVjdCBQYXRoTm9kZSB7CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoTm9kZVR5cGUgdHlw ZTsKK0BAIC04MTMxLDcgKzc3MzksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Ym9vbCBlcXVhbCAoQ2x1dHRlci5QYXRoTm9kZSBub2RlX2IpOworIAkJcHVibGljIHZvaWQgZnJl ZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCisgCXB1YmxpYyBzdHJ1Y3QgUGVyc3BlY3RpdmUgeworIAkJcHVibGljIGZs b2F0IGZvdnk7CitAQCAtODE2Miw3ICs3NzcwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVy LklucHV0RGV2aWNlIGRldmljZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAlwdWJsaWMgc3RydWN0IFVuaXRzIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlVuaXRzPyBjb3B5 ICgpOworQEAgLTgxODYsMjMgKzc3OTQsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgZmxvYXQgdG9fcGl4ZWxzICgpOworIAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3ZlcnRleF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCXB1YmxpYyBzdHJ1Y3QgVmVydGV4IHsKKy0JCXB1YmxpYyBmbG9hdCB4Owor LQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgZmxvYXQgejsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuVmVydGV4PyBhbGxvYyAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleD8g Y29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGVx dWFsIChDbHV0dGVyLlZlcnRleCB2ZXJ0ZXhfYik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVmVydGV4PyBpbml0IChmbG9hdCB4LCBmbG9h dCB5LCBmbG9hdCB6KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQUNUT1JfQUxJR05fIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2FjdG9yX2FsaWduX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCXB1YmxpYyBlbnVtIEFjdG9yQWxpZ24geworQEAgLTgzNDAsNiArNzkzMSwy NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZX0FYSVMsCisgCQlCT1RICisgCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZWJ1Z19mbGFnX2dldF90eXBlICgp IildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRGVidWdGbGFnIHsKKysJCU1JU0MsCisrCQlB Q1RPUiwKKysJCVRFWFRVUkUsCisrCQlFVkVOVCwKKysJCVBBSU5ULAorKwkJUEFOR08sCisrCQlC QUNLRU5ELAorKwkJU0NIRURVTEVSLAorKwkJU0NSSVBULAorKwkJU0hBREVSLAorKwkJTVVMVElT VEFHRSwKKysJCUFOSU1BVElPTiwKKysJCUxBWU9VVCwKKysJCVBJQ0ssCisrCQlFVkVOVExPT1As CisrCQlDTElQUElORywKKysJCU9PQl9UUkFOU0ZPUk1TCisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RSQUdf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIERyYWdBeGlzIHsKK0BAIC04MzQ3LDYg Kzc5NTksMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWF9BWElTLAorIAkJWV9BWElTCisg CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmF3X2RlYnVnX2Zs YWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBEcmF3RGVidWdGbGFn IHsKKysJCURJU0FCTEVfU1dBUF9FVkVOVFMsCisrCQlESVNBQkxFX0NMSVBQRURfUkVEUkFXUywK KysJCVJFRFJBV1MsCisrCQlQQUlOVF9WT0xVTUVTLAorKwkJRElTQUJMRV9DVUxMSU5HLAorKwkJ RElTQUJMRV9PRkZTQ1JFRU5fUkVESVJFQ1QsCisrCQlDT05USU5VT1VTX1JFRFJBVywKKysJCVBB SU5UX0RFRk9STV9USUxFUywKKysJCVBBSU5UX0RBTUFHRV9SRUdJT04KKysJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfRUZGRUNUX1BBSU5UX0FDVE9SXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9lZmZlY3RfcGFpbnRf ZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBFZmZlY3RQYWlu dEZsYWdzIHsKK0BAIC04Mzk4LDggKzgwMjMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1 YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CisgCQlURVhUVVJFX05QT1QsCisgCQlTV0FQX1RIUk9U VExFLAorLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorIAkJU1RBR0Vf U1RBVElDLAorIAkJU1RBR0VfQ1VSU09SLAorIAkJU0hBREVSU19HTFNMLAorQEAgLTg2NTcsNiAr ODI4MCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlSRUxfTElORV9UTywKKyAJCVJFTF9D VVJWRV9UTworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR19OT1BfIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3BpY2tfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVt IFBpY2tEZWJ1Z0ZsYWcgeworKwkJUElDS0lORworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QSUNLXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9waWNrX21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZW51bSBQaWNrTW9kZSB7CitAQCAtODg1MSwxMyArODQ3 OSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUxFRlQsCisgCQlSSUdIVAorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAi Q0xVVFRFUl9UQUJMRV9BTElHTk1FTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2FsaWdu bWVudF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBUYWJs ZUFsaWdubWVudCB7CistCQlTVEFSVCwKKy0JCUNFTlRFUiwKKy0JCUVORAorLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9URVhUX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dF9kaXJlY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgZW51 bSBUZXh0RGlyZWN0aW9uIHsKK0BAIC04OTMzLDI4ICs4NTU0LDE5IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVZBTFVFOworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9URVhUVVJFX0VSUk9SXyIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCXB1YmxpYyBlcnJvcmRvbWFpbiBUZXh0dXJlRXJyb3IgeworLQkJT1VUX09GX01F TU9SWSwKKy0JCU5PX1lVViwKKy0JCUJBRF9GT1JNQVQ7CistCQlwdWJsaWMgc3RhdGljIEdMaWIu UXVhcmsgcXVhcmsgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMjQiKV0KKyAJcHVibGljIGRlbGVnYXRlIENsdXR0ZXIuQWN0b3IgQWN0b3JDcmVhdGVDaGls ZEZ1bmMgKEdMaWIuT2JqZWN0IGl0ZW0pOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuMiIp XQorIAlwdWJsaWMgZGVsZWdhdGUgZG91YmxlIEFscGhhRnVuYyAoQ2x1dHRlci5BbHBoYSBhbHBo YSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGlu c3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgQmVoYXZpb3VyRm9yZWFjaEZ1bmMgKENsdXR0ZXIuQmVoYXZpb3VyIGJlaGF2aW91ciwgQ2x1 dHRlci5BY3RvciBhY3Rvcik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgQmluZGluZ0FjdGlvbkZ1bmMgKEdMaWIuT2Jq ZWN0IGdvYmplY3QsIHN0cmluZyBhY3Rpb25fbmFtZSwgdWludCBrZXlfdmFsLCBDbHV0dGVyLk1v ZGlmaWVyVHlwZSBtb2RpZmllcnMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUg dm9pZCBDYWxsYmFjayAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisrCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIEVtaXRJbnB1dERldmljZUV2ZW50IChDbHV0dGVyLkV2ZW50IGV2 ZW50LCBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEV2ZW50RmlsdGVy RnVuYyAoQ2x1dHRlci5FdmVudCBldmVudCk7CitAQCAtODk4NSw5ICs4NTk3LDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBjb25z dCBpbnQgUFJJT1JJVFlfUkVEUkFXOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGlj IHN0YXRpYyBDbHV0dGVyLkFjdG9yQm94PyBhY3Rvcl9ib3hfYWxsb2MgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGlj IHZvaWQgYmFzZV9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC05MDUxLDkg Kzg2NjAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnRNYXAgZ2V0X2ZvbnRfbWFwICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciBnZXRfa2V5Ym9hcmRfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJ cHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwNjEs MTcgKzg2NjcsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBzdGF0aWMgR0xpYi5P cHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCAoKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3Bv aW50ZXJfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJcHVibGljIHN0YXRpYyB1 bm93bmVkIHN0cmluZyBnZXRfc2NyaXB0X2lkIChHTGliLk9iamVjdCBnb2JqZWN0KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfa2V5Ym9hcmQgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgZ3JhYl9wb2ludGVyIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMg Q2x1dHRlci5Jbml0RXJyb3IgaW5pdCAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAiYXJn YyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUpXSByZWYgdW5vd25lZCBzdHJpbmdbXT8gYXJndik7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtOTA4NywyOSArODY4NCw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfY3VzdG9tX2JhY2tlbmRfZnVuYyAodm9p ZCogZnVuYyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg dGVzdF9hZGRfZGF0YV9mdWxsIChzdHJpbmcgdGVzdF9wYXRoLCBvd25lZCBHTGliLlRlc3REYXRh RnVuYyB0ZXN0X2Z1bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRp YyBib29sIHRlc3RfY2hlY2tfYWN0b3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENs dXR0ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLkFjdG9y PyByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBib29s IHRlc3RfY2hlY2tfY29sb3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0ZXIu UG9pbnQgcG9pbnQsIENsdXR0ZXIuQ29sb3IgY29sb3IsIG91dCBDbHV0dGVyLkNvbG9yIHJlc3Vs dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciB0ZXN0X2dldF9zdGFnZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2luaXQg KGludCBhcmdjLCBzdHJpbmcgYXJndik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJs aWMgc3RhdGljIGludCB0ZXN0X3J1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9wb2ludGVyICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50IHVuaWNvZGVfdG9fa2V5c3ltICh1aW50 MzIgd2MpOworIH0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00LmRlcHMgdmFwaS9t dXR0ZXItY2x1dHRlci03LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggNTQlCityZW5hbWUgZnJvbSB2 YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcworcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXIt Ny5kZXBzCitpbmRleCA5NTA5NDAyNi4uNmJkMWNjZjcgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXIt Y2x1dHRlci00LmRlcHMKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTcuZGVwcworQEAgLTEsNSAr MSw0IEBACisgYXRrCisgY2Fpcm8KKyBqc29uLWdsaWItMS4wCistbXV0dGVyLWNvZ2wtNAorLXBh bmdvCisrbXV0dGVyLWNvZ2wtNworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTQudmFw aSB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQorc2ltaWxhcml0eSBpbmRleCA4NiUKK3JlbmFt ZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXIt Y2x1dHRlci03LnZhcGkKK2luZGV4IGM4YTFkMjNiLi5hZWE2YTMxYSAxMDA2NDQKKy0tLSB2YXBp L211dHRlci1jbHV0dGVyLTQudmFwaQorKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy52YXBpCitA QCAtMSw2ICsxLDYgQEAKKy0vKiBtdXR0ZXItY2x1dHRlci00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZh cGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbXV0dGVyLWNsdXR0ZXItNy52YXBpIGdlbmVy YXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9 ICJDbHV0dGVyIiwgZ2lyX25hbWVzcGFjZSA9ICJDbHV0dGVyIiwgZ2lyX3ZlcnNpb24gPSAiNCIs IGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjbHV0dGVyXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJD bHV0dGVyIiwgZ2lyX25hbWVzcGFjZSA9ICJDbHV0dGVyIiwgZ2lyX3ZlcnNpb24gPSAiNyIsIGxv d2VyX2Nhc2VfY3ByZWZpeCA9ICJjbHV0dGVyXyIpXQorIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ bmFtZXNwYWNlIEtleSB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjbmFtZSA9ICJDTFVUVEVSX0tFWV8wIildCitAQCAtNDU3NiwyMCArNDU3Niw4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgc3RhdGljIHVpbnQgYWRkX3JlcGFpbnRfZnVuY19mdWxsIChDbHV0dGVyLlJlcGFp bnRGbGFncyBmbGFncywgb3duZWQgR0xpYi5Tb3VyY2VGdW5jIGZ1bmMpOworIAkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVudGVyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgbGVhdmUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBzdGF0 aWMgdm9pZCByZW1vdmVfcmVwYWludF9mdW5jICh1aW50IGhhbmRsZV9pZCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbG9ja19mdW5jdGlvbnMg KEdMaWIuQ2FsbGJhY2sgZW50ZXJfZm4sIEdMaWIuQ2FsbGJhY2sgbGVhdmVfZm4pOworIAl9Cisg CW5hbWVzcGFjZSBWYWx1ZSB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KK0BAIC00NjM2LDcgKzQ2MjQsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgdGFrZV9wYWludF9ub2RlIChHTGliLlZhbHVlIHZhbHVl LCBDbHV0dGVyLlBhaW50Tm9kZT8gbm9kZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdGlvbl9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBBY3Rpb24gOiBDbHV0dGVyLkFjdG9yTWV0YSB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0aW9uICgpOworQEAgLTQ2 NjQsMzMgKzQ2NTEsMjMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGFkZF90cmFuc2l0aW9uIChzdHJpbmcgbmFtZSwg Q2x1dHRlci5UcmFuc2l0aW9uIHRyYW5zaXRpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5BY3RvckJveCBi b3gsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgYWxsb2NhdGUgKENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFsbG9jYXRlX2FsaWduX2ZpbGwgKENsdXR0ZXIuQWN0 b3JCb3ggYm94LCBkb3VibGUgeF9hbGlnbiwgZG91YmxlIHlfYWxpZ24sIGJvb2wgeF9maWxsLCBi b29sIHlfZmlsbCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZv aWQgYWxsb2NhdGVfYWxpZ25fZmlsbCAoQ2x1dHRlci5BY3RvckJveCBib3gsIGRvdWJsZSB4X2Fs aWduLCBkb3VibGUgeV9hbGlnbiwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGFsbG9jYXRlX2F2YWlsYWJsZV9z aXplIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBhdmFpbGFibGVfd2lkdGgsIGZsb2F0IGF2YWls YWJsZV9oZWlnaHQsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2 b2lkIGFsbG9jYXRlX2F2YWlsYWJsZV9zaXplIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBhdmFp bGFibGVfd2lkdGgsIGZsb2F0IGF2YWlsYWJsZV9oZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0 ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0 aW9uLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgLi4uKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBh bmltYXRlX3dpdGhfYWxwaGF2IChDbHV0dGVyLkFscGhhIGFscGhhLCBbQ0NvZGUgKGFycmF5X2xl bmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41KV0gc3Ry aW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0 aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1h dGVfd2l0aF90aW1lbGluZSAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwg Li4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmV2ICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5l IHRpbWVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBh cnJheV9sZW5ndGhfcG9zID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJh eV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSld IEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGV2ICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9u LCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5n dGhfcG9zID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhf Y25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIuVmFs dWVbXSB2YWx1ZXMpOworKwkJcHVibGljIHZvaWQgYWxsb2NhdGVfcHJlZmVycmVkX3NpemUgKGZs b2F0IHgsIGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4IGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRl ci5BY3Rvcj8gYW5jZXN0b3IsIENsdXR0ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lk IGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0 b3IsIEdyYXBoZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Qg dmVydGV4KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X3Ry YW5zZm9ybSAocmVmIENsdXR0ZXIuTWF0cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlfdHJhbnNmb3JtX3RvX3Bv aW50IChDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV90cmFuc2Zv cm1fdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5l LlBvaW50M0QgdmVydGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJs aWMgdm9pZCBiaW5kX21vZGVsIChHTGliLkxpc3RNb2RlbD8gbW9kZWwsIG93bmVkIENsdXR0ZXIu QWN0b3JDcmVhdGVDaGlsZEZ1bmMgY3JlYXRlX2NoaWxkX2Z1bmMpOworKwkJW05vV3JhcHBlcl0K KysJCXB1YmxpYyB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZV9yZXNvdXJjZV9zY2FsZSAoaW50IHBo YXNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIGNsZWFy X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDcwMCwyMCAr NDY3NywxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoQ2x1dHRlci5BY3RvciBkZXNjZW5kYW50KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3Bh aW50ICgpOworKwkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250 ZXh0IHBhaW50X2NvbnRleHQpOworKwkJcHVibGljIHZvaWQgY29udGludWVfcGljayAoQ2x1dHRl ci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIFBhbmdvLkNvbnRleHQgY3JlYXRlX3BhbmdvX2NvbnRleHQgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28uTGF5b3V0IGNyZWF0ZV9w YW5nb19sYXlvdXQgKHN0cmluZz8gdGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgZGVzdHJveV9hbGxfY2hpbGRyZW4gKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgZGV0YWNoX2FuaW1hdGlvbiAoKTsKKyAJCVtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl9hY3Rvcl9ldmVudCIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorIAkJcHVibGljIGJvb2wgZW1pdF9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9vbCBj YXB0dXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IENsdXR0ZXIuVmVydGV4IHZlcnRzWzRdKTsKKysJCXB1YmxpYyB2b2lkIGdldF9hYnNfYWxsb2Nh dGlvbl92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBoZW5lLlBv aW50M0QgdmVydHNbNF0pOworIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBBdGsuT2JqZWN0IGdl dF9hY2Nlc3NpYmxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BY3Rpb24gZ2V0X2FjdGlvbiAoc3RyaW5nIG5hbWUpOworQEAgLTQ3 MjEsMjEgKzQ2OTcsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgR0xpYi5MaXN0 PHdlYWsgQ2x1dHRlci5BY3Rpb24+IGdldF9hY3Rpb25zICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggZ2V0X2FsbG9jYXRpb25fYm94 ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IGdldF9h bGxvY2F0aW9uX2dlb21ldHJ5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0b3I/IGFuY2Vz dG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNb NF0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbmNob3JfcG9pbnQg KG91dCBmbG9hdCBhbmNob3JfeCwgb3V0IGZsb2F0IGFuY2hvcl95KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF9hbmNob3JfcG9pbnRfZ3Jhdml0eSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlv biBnZXRfYW5pbWF0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9iYWNrZ3JvdW5kX2NvbG9yICgpOworLQkJW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX2dldF9hY3Rvcl9ieV9naWQiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9ieV9naWQgKHVpbnQzMiBp ZF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X2NoaWxkX2F0X2luZGV4IChpbnQgaW5kZXhfKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCitAQCAtNDc2Miw4ICs0NzI1LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZvaWQgZ2V0X2NvbnRlbnRfc2NhbGluZ19maWx0ZXJzIChvdXQgQ2x1 dHRlci5TY2FsaW5nRmlsdGVyIG1pbl9maWx0ZXIsIG91dCBDbHV0dGVyLlNjYWxpbmdGaWx0ZXIg bWFnX2ZpbHRlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5QYWludFZvbHVtZSBnZXRfZGVmYXVsdF9wYWludF92b2x1bWUgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIGZsb2F0IGdldF9kZXB0aCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdWludCBnZXRfZWFzaW5nX2RlbGF5ICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KK0BAIC00Nzc2LDEyICs0NzM3LDExIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLkVmZmVjdD4gZ2V0X2VmZmVj dHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfZmlyc3RfY2hpbGQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZml4 ZWRfcG9zaXRpb24gKG91dCBmbG9hdCB4LCBvdXQgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZml4ZWRfcG9zaXRpb25fc2V0ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JGbGFn cyBnZXRfZmxhZ3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdWludDMyIGdldF9n aWQgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfaGFzX3BvaW50ZXIiKV0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfcG9p bnRlciAoKTsKK0BAIC00ODM5LDE3ICs0Nzk5LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBib29sIGdldF9yZWFjdGl2ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKyAJCXB1YmxpYyBDbHV0dGVyLlJlcXVlc3RNb2RlIGdldF9yZXF1ZXN0X21vZGUgKCk7Cist CQlwdWJsaWMgYm9vbCBnZXRfcmVzb3VyY2Vfc2NhbGUgKG91dCBmbG9hdCByZXNvdXJjZV9zY2Fs ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRfcm90YXRpb24gKENs dXR0ZXIuUm90YXRlQXhpcyBheGlzLCBvdXQgZmxvYXQgeCwgb3V0IGZsb2F0IHksIG91dCBmbG9h dCB6KTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVzb3VyY2Vfc2NhbGUgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfcm90YXRpb25fYW5nbGUg KENsdXR0ZXIuUm90YXRlQXhpcyBheGlzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0K KyAJCXB1YmxpYyB2b2lkIGdldF9zY2FsZSAob3V0IGRvdWJsZSBzY2FsZV94LCBvdXQgZG91Ymxl IHNjYWxlX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zY2FsZV9j ZW50ZXIgKG91dCBmbG9hdCBjZW50ZXJfeCwgb3V0IGZsb2F0IGNlbnRlcl95KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF9zY2FsZV9ncmF2aXR5ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Nj YWxlX3ogKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtNDg2MCw4ICs0ODE0 LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuVGV4dERpcmVjdGlv biBnZXRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm0gKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm1hdGlvbl9tYXRyaXgg KCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZXh0ZW50cyAob3V0IHVub3duZWQg R3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnRWb2x1bWUgZ2V0X3RyYW5zZm9ybWVkX3BhaW50X3Zv bHVtZSAoQ2x1dHRlci5BY3RvciByZWxhdGl2ZV90b19hbmNlc3Rvcik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCitAQCAtNDg4NSwxMCArNDgzOCw5IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBib29sIGdldF95X2V4cGFuZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3pfcG9zaXRpb24gKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfel9yb3RhdGlvbl9ncmF2aXR5 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgZ3JhYl9r ZXlfZm9jdXMgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGhhc19hY2Nlc3NpYmxlICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBib29sIGhhc19hY3Rpb25z ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ5MDAsMTggKzQ4NTIsMjAg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgaGFzX2VmZmVjdHMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBoYXNfa2V5X2ZvY3Vz ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBib29sIGhhc19t YXBwZWRfY2xvbmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGlj IHZpcnR1YWwgYm9vbCBoYXNfb3ZlcmxhcHMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorKwkJW05v V3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV9hbGwgKCk7CisrCQlwdWJsaWMg dm9pZCBpbmhpYml0X2N1bGxpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2Fib3ZlIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBD bHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdm9pZCBpbnNlcnRfY2hpbGRfYXRfaW5kZXggKENsdXR0ZXIuQWN0b3IgY2hpbGQs IGludCBpbmRleF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIGluc2VydF9jaGlsZF9iZWxvdyAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rv cj8gc2libGluZyk7CisrCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX3RyYW5zZm9ybSAoKTsKKysJ CXB1YmxpYyBib29sIGlzX2VmZmVjdGl2ZWx5X29uX3N0YWdlX3ZpZXcgKENsdXR0ZXIuU3RhZ2VW aWV3IHZpZXcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wg aXNfaW5fY2xvbmVfcGFpbnQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorQEAg LTQ5MjQsMzMgKzQ4NzgsMjAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wg aXNfc2NhbGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyBi b29sIGlzX3Zpc2libGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXIgKENsdXR0ZXIuQWN0 b3I/IGFib3ZlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlcl9ib3R0b20gKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBtb3ZlX2FuY2hvcl9wb2ludCAoZmxvYXQg YW5jaG9yX3gsIGZsb2F0IGFuY2hvcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBtb3ZlX2FuY2hvcl9wb2ludF9mcm9tX2dyYXZpdHkgKENsdXR0ZXIuR3Jhdml0eSBncmF2 aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2b2lkIG1vdmVf YnkgKGZsb2F0IGR4LCBmbG9hdCBkeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIGJvb2wgbmVlZHNfZXhwYW5kIChDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0 aW9uKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X25vZGUg KENsdXR0ZXIuUGFpbnROb2RlIHJvb3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2 b2lkIHBvcF9pbnRlcm5hbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBw dXNoX2ludGVybmFsICgpOworKwkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0ZXIuU3Rh Z2VWaWV3PiBwZWVrX3N0YWdlX3ZpZXdzICgpOworKwkJcHVibGljIHZvaWQgcGlja19ib3ggKENs dXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0LCBDbHV0dGVyLkFjdG9yQm94IGJveCk7Cisr CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkZyYW1lQ2xvY2sgcGlja19mcmFtZV9jbG9jayAoKTsK KyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXdfd2l0aF9jbGlwIChDYWlyby5SZWN0 YW5nbGVJbnQ/IGNsaXApOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlIChDbHV0dGVyLkFjdG9y PyBiZWxvdyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2VfdG9wICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX2FjdGlvbiAoQ2x1dHRlci5B Y3Rpb24gYWN0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTcyLDgg KzQ5MTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZWZm ZWN0X2J5X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHJlcGFyZW50IChDbHV0dGVyLkFjdG9yIG5ld19w YXJlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJl cGxhY2VfY2hpbGQgKENsdXR0ZXIuQWN0b3Igb2xkX2NoaWxkLCBDbHV0dGVyLkFjdG9yIG5ld19j aGlsZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTQ5ODEsMTEgKzQ5MjAs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHZvaWQgc2F2ZV9lYXNpbmdfc3RhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsbG9jYXRpb24gKENsdXR0ZXIuQWN0b3JC b3ggYm94LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgc2V0X2FuY2hvcl9wb2ludCAoZmxvYXQgYW5jaG9yX3gsIGZsb2F0 IGFuY2hvcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYW5jaG9y X3BvaW50X2Zyb21fZ3Jhdml0eSAoQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworKwkJcHVibGlj IHZvaWQgc2V0X2FsbG9jYXRpb24gKENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmFja2dyb3VuZF9jb2xvciAo Q2x1dHRlci5Db2xvcj8gY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BA IC01MDA4LDggKzQ5NDMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBz ZXRfY29udGVudF9yZXBlYXQgKENsdXR0ZXIuQ29udGVudFJlcGVhdCByZXBlYXQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3NjYWxp bmdfZmlsdGVycyAoQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1pbl9maWx0ZXIsIENsdXR0ZXIuU2Nh bGluZ0ZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGggKGZs b2F0IGRlcHRoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfZWFzaW5nX2RlbGF5ICh1aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCitAQCAtNTAzOSw4ICs0OTcyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHZvaWQgc2V0X29mZnNjcmVlbl9yZWRpcmVjdCAoQ2x1dHRlci5PZmZzY3JlZW5SZWRpcmVj dCByZWRpcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb3BhY2l0eSAodWludDggb3BhY2l0eSk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfb3BhY2l0eV9vdmVycmlkZSAoaW50IG9wYWNpdHkpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9wYXJlbnQgKENsdXR0ZXIuQWN0b3IgcGFyZW50KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcGl2b3RfcG9pbnQg KGZsb2F0IHBpdm90X3gsIGZsb2F0IHBpdm90X3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KK0BAIC01MDUwLDE2ICs0OTgxLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB2b2lkIHNldF9yZWFjdGl2ZSAoYm9vbCByZWFjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcmVxdWVzdF9tb2RlIChDbHV0dGVyLlJl cXVlc3RNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9y b3RhdGlvbiAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMsIGRvdWJsZSBhbmdsZSwgZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3JvdGF0aW9uX2FuZ2xlIChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhpcywgZG91 YmxlIGFuZ2xlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9zY2FsZSAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfZnVsbCAoZG91YmxlIHNjYWxlX3gsIGRv dWJsZSBzY2FsZV95LCBmbG9hdCBjZW50ZXJfeCwgZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zY2FsZV93aXRoX2dyYXZpdHkgKGRvdWJsZSBz Y2FsZV94LCBkb3VibGUgc2NhbGVfeSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZV96IChkb3Vi bGUgc2NhbGVfeik7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2l6ZSAoZmxvYXQgd2lkdGgsIGZsb2F0 IGhlaWdodCk7CitAQCAtNTA4NSwxNyArNTAxMCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdm9pZCBzZXRfeV9leHBhbmQgKGJvb2wgZXhwYW5kKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfel9wb3NpdGlvbiAoZmxvYXQgel9w b3NpdGlvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3pfcm90YXRp b25fZnJvbV9ncmF2aXR5IChkb3VibGUgYW5nbGUsIENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsK KyAJCXB1YmxpYyBib29sIHNob3VsZF9waWNrX3BhaW50ICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd19hbGwgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCisgCQlwdWJsaWMgYm9vbCB0cmFuc2Zvcm1fc3RhZ2VfcG9pbnQgKGZsb2F0IHgs IGZsb2F0IHksIG91dCBmbG9hdCB4X291dCwgb3V0IGZsb2F0IHlfb3V0KTsKKysJCXB1YmxpYyB2 b2lkIHVuaW5oaWJpdF9jdWxsaW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1hcCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlw dWJsaWMgdm9pZCB1bnBhcmVudCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHVuc2V0X2ZsYWdzIChDbHV0dGVyLkFjdG9yRmxhZ3MgZmxhZ3MpOworIAkJ W05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTEwMywxNiArNTAyMyw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkFjdGlvbiBhY3Rpb25zIHsgc2V0OyB9CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24geyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgYW5jaG9yX2dy YXZpdHkgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIGZsb2F0IGFuY2hvcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBhbmNob3JfeSB7 IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uIHsgb3du ZWQgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0 ZXIuQ29sb3IgYmFja2dyb3VuZF9jb2xvciB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KK0BAIC01MTIyLDExICs1MDMzLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBib29sIGNoaWxkX3RyYW5zZm9ybV9z ZXQgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVy Lkdlb21ldHJ5IGNsaXAgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUmVjdCBjbGlwX3Jl Y3QgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgY2xpcF9yZWN0 IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyBib29sIGNsaXBfdG9fYWxsb2NhdGlvbiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KK0BAIC01MTQwLDggKzUwNDgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgQ2x1dHRlci5Db250ZW50R3Jhdml0eSBjb250ZW50X2dyYXZpdHkgeyBnZXQ7IHNldDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbnRl bnRSZXBlYXQgY29udGVudF9yZXBlYXQgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0K Ky0JCXB1YmxpYyBmbG9hdCBkZXB0aCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkVmZmVj dCBlZmZlY3QgeyBzZXQ7IH0KK0BAIC01MjExLDEyICs1MTE3LDEyIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB1aW50IG9wYWNpdHkgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0 ZXIuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgcGl2b3RfcG9pbnRfeiB7IGdldDsgc2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGJvb2wgcmVhY3RpdmUgeyBnZXQ7 IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTIyNSw4ICs1MTMxLDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IENsdXR0ZXIuUmVxdWVzdE1vZGUgcmVxdWVzdF9tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGZsb2F0IHJlc291cmNlX3NjYWxlIHsgZ2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1 YmxpYyBkb3VibGUgcm90YXRpb25fYW5nbGVfeCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KK0BAIC01MjM2LDI3ICs1MTQwLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSByb3RhdGlvbl9hbmds ZV96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeCB7IGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg Q2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3kgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4 IHJvdGF0aW9uX2NlbnRlcl96IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgcm90YXRpb25fY2Vu dGVyX3pfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgc2NhbGVfY2VudGVyX3ggeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZs b2F0IHNjYWxlX2NlbnRlcl95IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgc2NhbGVfZ3Jhdml0 eSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgc2NhbGVfeCB7IGdldDsgc2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjY5LDcgKzUxNTIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYm9vbCBzaG93X29uX3NldF9wYXJlbnQgeyBnZXQ7IHNldDsgfQorIAkJ W05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVi bGljIENsdXR0ZXIuU2l6ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFw aGVuZS5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuVGV4dERpcmVjdGlvbiB0ZXh0X2RpcmVjdGlvbiB7 IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01Mjk5LDggKzUxODIsNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCB5X2V4cGFuZCB7IGdldDsgc2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IHpfcG9z aXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHNpZ25hbCB2b2lkIGFsbG9jYXRpb25fY2hhbmdlZCAoQ2x1dHRlci5BY3RvckJveCBib3gs IENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGJ1dHRvbl9wcmVzc19ldmVudCAo Q2x1dHRlci5CdXR0b25FdmVudCBldmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CitAQCAtNTMzMSwyMiArNTIxMiwyNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgYm9vbCBtb3Rpb25fZXZlbnQgKENsdXR0ZXIuTW90aW9uRXZlbnQgZXZl bnQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBw YWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYXJlbnRfc2V0 IChDbHV0dGVyLkFjdG9yPyBvbGRfcGFyZW50KTsKKysJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAo Q2x1dHRlci5Db2xvciBjb2xvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNr IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IHF1ZXVlX3JlbGF5b3V0ICgpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjAuOCIpXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVhbGl6ZSAoKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHJlc291cmNlX3NjYWxlX2NoYW5nZWQgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBzY3JvbGxfZXZl bnQgKENsdXR0ZXIuU2Nyb2xsRXZlbnQgZXZlbnQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzaG93 ICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHN0YWdlX3ZpZXdzX2NoYW5nZWQgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wg dG91Y2hfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KK0BAIC01MzU4LDIxICs1MjQyLDMzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHVucmVhbGl6ZSAoKTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfYWN0b3JfbWV0YV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBY3Rvck1ldGEgOiBHTGliLkluaXRpYWxseVVub3du ZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJv dGVjdGVkIEFjdG9yTWV0YSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQgKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7 CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfYWN0b3IgKENsdXR0 ZXIuQWN0b3I/IGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9lbmFibGVkIChib29sIGlzX2Vu YWJsZWQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIHZpcnR1YWwg dm9pZCBzZXRfZW5hYmxlZCAoYm9vbCBpc19lbmFibGVkKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBhY3RvciB7IGdl dDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgZW5hYmxl ZCB7IGdldDsgc2V0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg c3RyaW5nIG5hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9ub2RlX2dl dF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBBY3Rvck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9k ZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIEFjdG9yTm9kZSAoQ2x1dHRlci5BY3RvciBh Y3Rvcik7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FsaWduX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgQWxpZ25Db25zdHJh aW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC01MzgwLDgxICs1Mjc2LDE4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBBbGlnbkNvbnN0cmFpbnQgKENsdXR0ZXIuQWN0b3I/ IHNvdXJjZSwgQ2x1dHRlci5BbGlnbkF4aXMgYXhpcywgZmxvYXQgZmFjdG9yKTsKKyAJCXB1Ymxp YyBDbHV0dGVyLkFsaWduQXhpcyBnZXRfYWxpZ25fYXhpcyAoKTsKKyAJCXB1YmxpYyBmbG9hdCBn ZXRfZmFjdG9yICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3Bpdm90X3BvaW50IChvdXQgdW5vd25l ZCBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF9zb3VyY2UgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25fYXhpcyAoQ2x1 dHRlci5BbGlnbkF4aXMgYXhpcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZmFjdG9yIChmbG9hdCBm YWN0b3IpOworKwkJcHVibGljIHZvaWQgc2V0X3Bpdm90X3BvaW50IChHcmFwaGVuZS5Qb2ludCBw aXZvdF9wb2ludCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc291cmNlIChDbHV0dGVyLkFjdG9yPyBz b3VyY2UpOworIAkJcHVibGljIENsdXR0ZXIuQWxpZ25BeGlzIGFsaWduX2F4aXMgeyBnZXQ7IHNl dCBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBmbG9hdCBmYWN0b3IgeyBnZXQ7IHNldCBjb25zdHJ1 Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBp dm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIHNv dXJjZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbHBoYV9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQWxwaGEgOiBHTGli LkluaXRpYWxseVVub3duZWQsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgQWxwaGEgKCk7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQWxwaGEuZnVsbCAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGlu ZSwgdWxvbmcgbW9kZSk7CistCQlwdWJsaWMgZG91YmxlIGdldF9hbHBoYSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9uZyByZWdpc3Rlcl9jbG9z dXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Z1bmMgKENsdXR0ZXIuQWxwaGFGdW5j IGZ1bmMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9mdW5j IChvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1bG9uZyBtb2RlKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQWxwaGEud2l0aF9mdW5jIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVs aW5lLCBvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBkb3VibGUgYWxw aGEgeyBnZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bG9u ZyBtb2RlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGlu ZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1hdGlvbl9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgY2xhc3MgQW5pbWF0aW9uIDog R0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgQW5pbWF0aW9uICgpOworLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYmluZCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdM aWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYmlu ZF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIG93bmVkIENsdXR0ZXIuSW50ZXJ2YWwg aW50ZXJ2YWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QWxwaGEgZ2V0X2FscGhhICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2R1cmF0aW9uICgpOworLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5JbnRlcnZhbCBnZXRfaW50ZXJ2YWwgKHN0cmluZyBwcm9w ZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyBib29sIGdldF9sb29wICgpOworLQkJcHVibGljIHVsb25n IGdldF9tb2RlICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOwor LQkJcHVibGljIGJvb2wgaGFzX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFs cGhhKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlwdWJs aWMgdm9pZCBzZXRfbG9vcCAoYm9vbCBsb29wKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1 bG9uZyBtb2RlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vYmplY3QgKEdMaWIuT2JqZWN0IG9iamVj dCk7CistCQlwdWJsaWMgdm9pZCBzZXRfdGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmU/IHRpbWVs aW5lKTsKKy0JCXB1YmxpYyB2b2lkIHVuYmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25h bWUpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gdXBkYXRlIChzdHJpbmcg cHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdm9pZCB1cGRhdGVf aW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBDbHV0dGVyLkludGVydmFsIGludGVydmFs KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdl dDsgc2V0OyB9CistCQlwdWJsaWMgdWludCBkdXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlwdWJs aWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBz ZXQ7IH0KKy0JCXB1YmxpYyBHTGliLk9iamVjdCBvYmplY3QgeyBnZXQ7IHNldDsgfQorLQkJcHVi bGljIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUgeyBnZXQ7IHNldDsgfQorLQkJW0hhc0VtaXR0 ZXJdCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjb21wbGV0ZWQgKCk7CistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBzdGFydGVkICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTU0NjcsMzcgKzUz MDAsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iYWNrZW5kX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIGNsYXNz IEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYWNrZW5k IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25Hcm91cCBncm91cCk7CistCQlw dWJsaWMgdm9pZCBiZWxsX25vdGlmeSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5TdGFnZVdpbmRvdyBjcmVh dGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1dHRl ci5TdGFnZSBzdGFnZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJl cyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfZGVmYXVsdF9zZWF0ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHVub3duZWQgQ2Fpcm8u Rm9udE9wdGlvbnMgZ2V0X2ZvbnRfb3B0aW9ucyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuSW5wdXRNZXRob2QgZ2V0X2lucHV0X21ldGhvZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7CisgCQlwdWJsaWMgZG91YmxlIGdldF9yZXNvbHV0 aW9uICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVu dHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2ZlYXR1 cmVzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcG9zdF9wYXJz ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCBib29sIHByZV9wYXJzZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlZHJhdyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZm9udF9vcHRpb25z IChDYWlyby5Gb250T3B0aW9ucyBvcHRpb25zKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9t ZXRob2QgKENsdXR0ZXIuSW5wdXRNZXRob2QgbWV0aG9kKTsKK0BAIC01NTA4LDk1ICs1MzE4LDEx IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBzZXR0aW5nc19jaGFuZ2VkICgpOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9iZWhhdmlvdXJfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgQmVoYXZpb3VyIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgQmVoYXZpb3VyICgpOworLQkJcHVibGljIHZvaWQgYWN0b3JzX2ZvcmVhY2ggKENsdXR0ZXIu QmVoYXZpb3VyRm9yZWFjaEZ1bmMgZnVuYyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBhbHBoYV9ub3RpZnkgKGRvdWJsZSBhbHBoYV92YWx1ZSk7CistCQlwdWJsaWMg dm9pZCBhcHBseSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3 ZWFrIENsdXR0ZXIuQWN0b3I+IGdldF9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFscGhhIGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fYWN0b3JzICgpOwor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfbnRoX2FjdG9yIChpbnQgaW5kZXhf KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIGlzX2FwcGxp ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHJlbW92ZV9hbGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxw aGEgYWxwaGEpOworLQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCByZW1vdmVkIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2RlcHRoX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2aW91ckRlcHRoIDogQ2x1 dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIEJlaGF2aW91ckRlcHRoIChDbHV0 dGVyLkFscGhhPyBhbHBoYSwgaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91dCBp bnQgZGVwdGhfc3RhcnQsIG91dCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKGludCBkZXB0aF9zdGFydCwgaW50 IGRlcHRoX2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGlu dCBkZXB0aF9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9v cGFjaXR5X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJl aGF2aW91ck9wYWNpdHkgOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJCZWhhdmlvdXIqIildCistCQlwdWJsaWMgQmVoYXZpb3VyT3BhY2l0eSAoQ2x1dHRlci5BbHBo YT8gYWxwaGEsIHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91dCB1 aW50OCBvcGFjaXR5X3N0YXJ0LCBvdXQgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAodWludDggb3BhY2l0 eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgdWludCBvcGFjaXR5X2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9iZWhhdmlvdXJfc2NhbGVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQor LQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyU2NhbGUgOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlwdWJsaWMgQmVoYXZpb3VyU2NhbGUg KENsdXR0ZXIuQWxwaGE/IGFscGhhLCBkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91YmxlIHlfc2Nh bGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91dCBk b3VibGUgeF9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBvdXQgZG91Ymxl IHhfc2NhbGVfZW5kLCBvdXQgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKGRvdWJsZSB4X3NjYWxlX3N0 YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9z Y2FsZV9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IGRvdWJsZSB4X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxl X2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9zdGFydCB7IGdldDsgc2V0 OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Jpbl9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgY2xhc3MgQmluTGF5b3V0IDogQ2x1dHRlci5M YXlvdXRNYW5hZ2VyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorIAkJcHVibGljIEJpbkxheW91dCAo Q2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJU LCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RB UlQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZCAoQ2x1dHRlci5BY3Rv ciBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1l bnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdu bWVudCAoQ2x1dHRlci5BY3Rvcj8gY2hpbGQsIG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2Fs aWduLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3Rvcj8gY2hpbGQsIENs dXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24p OworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENs dXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24geyBnZXQ7IHNldDsgfQorQEAgLTU2NDQsOTggKzUz NzAsMjkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckVmZmVjdCoiKV0KKyAJCXB1YmxpYyBCbHVy RWZmZWN0ICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ib3hfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgY2xhc3MgQm94IDogQ2x1dHRlci5BY3Rvciwg QXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBD bHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBCb3ggKENsdXR0ZXIuTGF5b3V0TWFuYWdlciBtYW5hZ2VyKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGdldF9sYXlvdXRf bWFuYWdlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lk IHBhY2tfYWZ0ZXIgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcs IC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19hdCAoQ2x1dHRl ci5BY3RvciBhY3RvciwgaW50IHBvc2l0aW9uLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyB2b2lkIHBhY2tfYmVmb3JlIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLkFj dG9yPyBzaWJsaW5nLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBh Y2t2IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41LCBhcnJheV9sZW5ndGhfdHlwZSA9 ICJndWludCIpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFt ZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41LCBhcnJheV9sZW5ndGhf dHlwZSA9ICJndWludCIpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5b3V0X21hbmFnZXIgKENsdXR0ZXIu TGF5b3V0TWFuYWdlciBtYW5hZ2VyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ2x1 dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBjb2xvcl9zZXQgeyBnZXQ7IHNldDsgfQor LQkJcHVibGljIENsdXR0ZXIuTGF5b3V0TWFuYWdlciBsYXlvdXRfbWFuYWdlciB7IGdldDsgc2V0 OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JveF9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgY2xhc3MgQm94TGF5b3V0IDogQ2x1dHRlci5M YXlvdXRNYW5hZ2VyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorIAkJcHVibGljIEJveExheW91dCAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENs dXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB1aW50IGdldF9lYXNpbmdfZHVyYXRpb24gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHVsb25nIGdldF9lYXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgYm9vbCBnZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgdm9pZCBnZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJv b2wgeF9maWxsLCBvdXQgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIGJvb2wgZ2V0X2hvbW9nZW5lb3VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLk9yaWVudGF0aW9uIGdldF9vcmllbnRhdGlv biAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9wYWNrX3N0YXJ0ICgpOworIAkJcHVibGljIHVpbnQg Z2V0X3NwYWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3Vz ZV9hbmltYXRpb25zICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF92 ZXJ0aWNhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBib29sIGV4cGFuZCwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsLCBD bHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJveEFsaWdubWVudCB5X2FsaWdu KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJv eEFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBz ZXRfZWFzaW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgdm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wg ZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfZmlsbCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ob21vZ2VuZW91cyAoYm9vbCBo b21vZ2VuZW91cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZv aWQgc2V0X29yaWVudGF0aW9uIChDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0aW9uKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9wYWNrX3N0YXJ0IChib29sIHBhY2tfc3RhcnQpOworIAkJcHVibGlj IHZvaWQgc2V0X3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3VzZV9hbmltYXRpb25zIChib29sIGFuaW1hdGUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF92ZXJ0aWNhbCAoYm9vbCB2ZXJ0aWNhbCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5nX2R1cmF0aW9uIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWxvbmcgZWFzaW5nX21vZGUgeyBn ZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wg aG9tb2dlbmVvdXMgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K KyAJCXB1YmxpYyBDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0aW9uIHsgZ2V0OyBzZXQ7IH0K KyAJCXB1YmxpYyBib29sIHBhY2tfc3RhcnQgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHVpbnQg c3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wg dXNlX2FuaW1hdGlvbnMgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyBib29sIHZlcnRpY2FsIHsgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYnJpZ2h0bmVz c19jb250cmFzdF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KK0BAIC01NzQ5LDkgKzU0MDYsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdm9pZCBzZXRfY29udHJhc3QgKGZsb2F0IGNvbnRyYXN0KTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9jb250cmFzdF9mdWxsIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlKTsKKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgYnJpZ2h0bmVzcyB7 IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBicmlnaHRuZXNzIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuQ29s b3IgY29udHJhc3QgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29udHJh c3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0K K0BAIC01NzcwLDM3ICs1NDI3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZs b2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2Fpcm9fdGV4dHVy ZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgY2xhc3MgQ2Fpcm9U ZXh0dXJlIDogQ2x1dHRlci5UZXh0dXJlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0 YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIild CistCQlwdWJsaWMgQ2Fpcm9UZXh0dXJlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlw dWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDYWlyby5D b250ZXh0IGNyZWF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDYWlyby5Db250 ZXh0IGNyZWF0ZV9yZWdpb24gKGludCB4X29mZnNldCwgaW50IHlfb2Zmc2V0LCBpbnQgd2lkdGgs IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJv b2wgZ2V0X2F1dG9fcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3N1cmZhY2Vfc2l6ZSAo b3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV9yZWN0YW5nbGUgKENhaXJvLlJl Y3RhbmdsZUludD8gcmVjdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgdm9pZCBzZXRfYXV0b19yZXNpemUgKGJvb2wgdmFsdWUpOworLQkJcHVibGljIHZvaWQgc2V0 X3N1cmZhY2Vfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJvb2wgYXV0b19yZXNpemUgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNlX2hlaWdodCB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2Vf d2lkdGggeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIENhaXJvLlN1cmZhY2UgY3JlYXRlX3N1cmZhY2UgKHVpbnQgd2lk dGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYXcgKENhaXJvLkNvbnRleHQgY3IpOworLQl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9jYW52YXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJcHVibGljIGNsYXNzIENhbnZhcyA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQg eworQEAgLTU4MjcsMTcgKzU0NTMsMjAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciB7IGdldDsgY29uc3RydWN0OyB9CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2NsaWNrX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBDbGlja0FjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJBY3Rpb24qIildCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgQ2xp Y2tBY3Rpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdWlu dCBnZXRfYnV0dG9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGlj IHZvaWQgZ2V0X2Nvb3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLk1vZGlmaWVy VHlwZSBnZXRfc3RhdGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgdm9pZCByZWxlYXNlICgpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBoZWxkIHsgZ2V0OyB9CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC01ODQ2LDcgKzU0 NzUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCQlwdWJsaWMgaW50IGxvbmdfcHJlc3NfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGlj IGJvb2wgcHJlc3NlZCB7IGdldDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY2xpY2tlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg Ym9vbCBsb25nX3ByZXNzIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLkxvbmdQcmVzc1N0 YXRlIHN0YXRlKTsKK0BAIC01ODg4LDggKzU1MTksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwcm90ZWN0ZWQgQ29uc3RyYWludCAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIHVwZGF0ZV9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVy LkFjdG9yQm94IGFsbG9jYXRpb24pOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgdXBkYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVy Lk9yaWVudGF0aW9uIGRpcmVjdGlvbiwgZmxvYXQgZm9yX3NpemUsIGZsb2F0IG1pbmltdW1fc2l6 ZSwgZmxvYXQgbmF0dXJhbF9zaXplKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX3By ZWZlcnJlZF9zaXplIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLk9yaWVudGF0aW9uIGRp cmVjdGlvbiwgZmxvYXQgZm9yX3NpemUsIHJlZiBmbG9hdCBtaW5pbXVtX3NpemUsIHJlZiBmbG9h dCBuYXR1cmFsX3NpemUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KK0BAIC01 ODk4LDYgKzU1MjgsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDbHV0 dGVyLklucHV0RGV2aWNlIGRldmljZTsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50RmxhZ3MgZmxh Z3M7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLkFjdG9yIHJlbGF0ZWQ7CisrCQlwdWJsaWMgd2Vh ayBDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVy LkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuU3RhZ2Ugc3RhZ2U7CisgCQlw dWJsaWMgdWludDMyIHRpbWU7CitAQCAtNTkzMSw5OCArNTU2MiwyMSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfZmFjdG9yIChkb3VibGUgZmFjdG9yKTsKKyAJCXB1 YmxpYyBkb3VibGUgZmFjdG9yIHsgZ2V0OyBzZXQ7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZGV2aWNl X21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQlw dWJsaWMgYWJzdHJhY3QgY2xhc3MgRGV2aWNlTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEZXZp Y2VNYW5hZ2VyICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRk X2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2Jk QTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5FdmVu dCB0b19kaXNjYXJkKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2 aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNl X3R5cGUpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdl dF9jb3JlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOworLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfZGVmYXVsdCAo KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZGV2 aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9rYmRfYTExeV9zZXR0aW5n cyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJcHVibGljIHZpcnR1YWwg Q2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5 cGVzICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBs aXN0X2RldmljZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLlNMaXN0PENsdXR0ZXIuSW5w dXREZXZpY2U+IHBlZWtfZGV2aWNlcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIHJlbW92ZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNlbGVjdF9zdGFnZV9ldmVudHMg KENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRp bmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29u c3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklu cHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQg KENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRf YTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFz ayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1 aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1 dERldmljZVRvb2wgcDApOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2FjdGlvbl9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBjbGFzcyBEcmFnQWN0 aW9uIDogQ2x1dHRlci5BY3Rpb24geworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKy0JCXB1YmxpYyBEcmFnQWN0aW9u ICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0IGRyYWdfYXJl YSk7CistCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBnZXRfZHJhZ19heGlzICgpOworLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZHJhZ19oYW5kbGUgKCk7CistCQlwdWJsaWMg dm9pZCBnZXRfZHJhZ190aHJlc2hvbGQgKG91dCB1aW50IHhfdGhyZXNob2xkLCBvdXQgdWludCB5 X3RocmVzaG9sZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9uX2Nvb3JkcyAob3V0IGZsb2F0 IG1vdGlvbl94LCBvdXQgZmxvYXQgbW90aW9uX3kpOworLQkJcHVibGljIHZvaWQgZ2V0X3ByZXNz X2Nvb3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdD8gZHJhZ19hcmVhKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9kcmFnX2F4aXMgKENsdXR0ZXIuRHJhZ0F4aXMgYXhpcyk7CistCQlwdWJsaWMg dm9pZCBzZXRfZHJhZ19oYW5kbGUgKENsdXR0ZXIuQWN0b3I/IGhhbmRsZSk7CistCQlwdWJsaWMg dm9pZCBzZXRfZHJhZ190aHJlc2hvbGQgKGludCB4X3RocmVzaG9sZCwgaW50IHlfdGhyZXNob2xk KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgZHJhZ19hcmVhIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBib29sIGRyYWdfYXJlYV9zZXQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkRyYWdB eGlzIGRyYWdfYXhpcyB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBkcmFn X2hhbmRsZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBp bnQgeF9kcmFnX3RocmVzaG9sZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBpbnQgeV9kcmFnX3RocmVzaG9sZCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBkcmFnX2JlZ2luIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9h dCBldmVudF94LCBmbG9hdCBldmVudF95LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RpZmllcnMp OworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJhZ19lbmQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3ksIENsdXR0ZXIuTW9kaWZpZXJUeXBl IG1vZGlmaWVycyk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkcmFnX21vdGlvbiAo Q2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZGVsdGFfeCwgZmxvYXQgZGVsdGFfeSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wg ZHJhZ19wcm9ncmVzcyAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZGVsdGFfeCwgZmxvYXQg ZGVsdGFfeSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Ryb3BfYWN0aW9uX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIGNsYXNzIERyb3BBY3Rpb24gOiBD bHV0dGVyLkFjdGlvbiB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorLQkJcHVibGljIERyb3BBY3Rpb24gKCk7Cist CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBjYW5fZHJvcCAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7CistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBkcm9wIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBl dmVudF95KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc2lnbmFs IHZvaWQgZHJvcF9jYW5jZWwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZs b2F0IGV2ZW50X3kpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgb3Zlcl9pbiAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBvdmVyX291 dCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBhYnN0cmFjdCBj bGFzcyBFZmZlY3QgOiBDbHV0dGVyLkFjdG9yTWV0YSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgRWZmZWN0ICgpOworIAkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5Q YWludFZvbHVtZSB2b2x1bWUpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBtb2RpZnlfcGFpbnRf dm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7CisgCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdz KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBh aW50X2NvbnRleHQsIENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisgCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0dGVyLkVmZmVjdFBhaW50Rmxh Z3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0dGVyLlBpY2tDb250 ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBwb3N0X3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwb3N0X3BhaW50IChDbHV0 dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCBib29sIHByZV9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJl X3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlcGFpbnQgKCk7CisgCX0K K0BAIC02MDMzLDggKzU1ODcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENs dXR0ZXIuRXZlbnRUeXBlIHR5cGU7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisgCQlwdWJsaWMgRXZlbnQgKENsdXR0ZXIuRXZlbnRUeXBlIHR5cGUpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyBzdGF0aWMgdWludCBhZGRfZmls dGVyIChDbHV0dGVyLlN0YWdlPyBzdGFnZSwgW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0g Mi4yLCBkZXN0cm95X25vdGlmeV9wb3MgPSAyLjEpXSBvd25lZCBDbHV0dGVyLkV2ZW50RmlsdGVy RnVuYyBmdW5jKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50IGNvcHkgKCk7CisgCQlwdWJsaWMg dm9pZCBmcmVlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorKwkJcHVibGljIHN0 YXRpYyBDbHV0dGVyLkV2ZW50IEBnZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIGRvdWJsZSBnZXRfYW5nbGUgKENsdXR0ZXIuRXZlbnQgdGFyZ2V0KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MDczLDcgKzU2MzEsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBnZXRfbW9kZV9ncm91cCAoKTsKKyAJCXB1Ymxp YyBib29sIGdldF9wYWRfZXZlbnRfZGV0YWlscyAob3V0IHVpbnQgbnVtYmVyLCBvdXQgdWludCBt b2RlLCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRpb24gKENsdXR0ZXIuUG9pbnQgcG9zaXRpb24pOworKwkJ cHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9uIChHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9yZWxhdGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC02MTA2 LDggKzU2NjQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgaGFzX3No aWZ0X21vZGlmaWVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1Ymxp YyBib29sIGlzX3BvaW50ZXJfZW11bGF0ZWQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5FdmVudCBwZWVrICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgcHV0ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfZmls dGVyICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9idXR0b24gKHVpbnQzMiBidXR0b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorQEAgLTYxNDAsMTYgKzU3MDIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdm9pZCBzZXRfc3RhdGUgKENsdXR0ZXIuTW9kaWZpZXJUeXBlIHN0YXRlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lICh1aW50MzIgdGlt ZV8pOworLQkJcHVibGljIENsdXR0ZXIuQW55RXZlbnQgYW55IHtbQ0NvZGUgKGNuYW1lID0gIihD bHV0dGVyQW55RXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuQnV0dG9uRXZl bnQgYnV0dG9uIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQnV0dG9uRXZlbnQgKikiKV0gIGdl dDsgfQorLQkJcHVibGljIENsdXR0ZXIuQ3Jvc3NpbmdFdmVudCBjcm9zc2luZyB7W0NDb2RlIChj bmFtZSA9ICIoQ2x1dHRlckNyb3NzaW5nRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENs dXR0ZXIuS2V5RXZlbnQga2V5IHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyS2V5RXZlbnQgKiki KV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuTW90aW9uRXZlbnQgbW90aW9uIHtbQ0NvZGUg KGNuYW1lID0gIihDbHV0dGVyTW90aW9uRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENs dXR0ZXIuU2Nyb2xsRXZlbnQgc2Nyb2xsIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU2Nyb2xs RXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuU3RhZ2VTdGF0ZUV2ZW50IHN0 YWdlX3N0YXRlIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU3RhZ2VTdGF0ZUV2ZW50ICopIild ICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRvdWNoRXZlbnQgdG91Y2gge1tDQ29kZSAoY25h bWUgPSAiKENsdXR0ZXJUb3VjaEV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVy LlRvdWNocGFkUGluY2hFdmVudCB0b3VjaHBhZF9waW5jaCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlclRvdWNocGFkUGluY2hFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5U b3VjaHBhZFN3aXBlRXZlbnQgdG91Y2hwYWRfc3dpcGUge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0 ZXJUb3VjaHBhZFN3aXBlRXZlbnQgKikiKV0gIGdldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0 ZXJfZXZlbnRfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtNjE5OCwx MCArNTc1MCwyNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNiIpXQorIAkJcHVibGljIGJvb2wgc25hcF90b19ncmlkIHsgZ2V0OyBzZXQ7IH0KKyAJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfZnJhbWVfY2xvY2tfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEZy YW1lQ2xvY2sgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisrCQlwdWJsaWMgRnJhbWVDbG9jayAoZmxvYXQgcmVmcmVzaF9yYXRlLCBD bHV0dGVyLkZyYW1lTGlzdGVuZXJJZmFjZSBpZmFjZSwgdm9pZCogdXNlcl9kYXRhKTsKKysJCXB1 YmxpYyB2b2lkIGFkZF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CisrCQlw dWJsaWMgZmxvYXQgZ2V0X3JlZnJlc2hfcmF0ZSAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXQg KCk7CisrCQlwdWJsaWMgdm9pZCByZW1vdmVfdGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmUgdGlt ZWxpbmUpOworKwkJcHVibGljIHZvaWQgc2NoZWR1bGVfdXBkYXRlICgpOworKwkJcHVibGljIHZv aWQgc2NoZWR1bGVfdXBkYXRlX25vdyAoKTsKKysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdCAoKTsK KysJCVtIYXNFbWl0dGVyXQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRlc3Ryb3kgKCk7CisrCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2dlc3R1cmVfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGNsYXNzIEdlc3R1cmVBY3Rpb24gOiBDbHV0dGVyLkFj dGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyQWN0aW9uKiIpXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVi bGljIEdlc3R1cmVBY3Rpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJ cHVibGljIHZvaWQgY2FuY2VsICgpOworQEAgLTYyMTEsNiArNTc3Nyw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2Rldmlj ZSAodWludCBwb2ludCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5FdmVudCBnZXRfbGFzdF9ldmVudCAodWludCBwb2ludCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9uX2Nvb3Jk cyAodWludCBwb2ludCwgb3V0IGZsb2F0IG1vdGlvbl94LCBvdXQgZmxvYXQgbW90aW9uX3kpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfbW90aW9u X2RlbHRhICh1aW50IHBvaW50LCBvdXQgZmxvYXQgZGVsdGFfeCwgb3V0IGZsb2F0IGRlbHRhX3kp OworQEAgLTYyMTgsNyArNTc4NSw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1 aW50IGdldF9uX2N1cnJlbnRfcG9pbnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyBpbnQgZ2V0X25fdG91Y2hfcG9pbnRzICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3ByZXNzX2Nvb3JkcyAodWludCBwb2lu dCwgb3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9yZWxlYXNlX2Nvb3JkcyAodWludCBw b2ludCwgb3V0IGZsb2F0IHJlbGVhc2VfeCwgb3V0IGZsb2F0IHJlbGVhc2VfeSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5FdmVudFNl cXVlbmNlIGdldF9zZXF1ZW5jZSAodWludCBwb2ludCk7CitAQCAtNjI0Niw5ICs1ODE1LDEzIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB0aHJlc2hvbGRfdHJpZ2dlcl9k aXN0YW5jZV95IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4 IildCisgCQlwdWJsaWMgQ2x1dHRlci5HZXN0dXJlVHJpZ2dlckVkZ2UgdGhyZXNob2xkX3RyaWdn ZXJfZWRnZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBnZXN0dXJlX2JlZ2luIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGdlc3R1cmVfY2FuY2VsIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IGdlc3R1cmVfZW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGdlc3R1cmVfcHJvZ3Jlc3Mg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ncmlkX2xheW91dF9nZXRf dHlwZSAoKSIpXQorQEAgLTYyNzgsMTkgKzU4NTEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgYm9vbCByb3dfaG9tb2dlbmVvdXMgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHVp bnQgcm93X3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ncm91cF9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBH cm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgR3JvdXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIGludCBn ZXRfbl9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF9udGhfY2hpbGQgKGludCBpbmRleF8pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJlbW92ZV9hbGwgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ltYWdlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBJbWFnZSA6IEdM aWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworQEAgLTYzMDYsNiArNTg2Niw4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNzIElucHV0RGV2aWNlIDogR0xpYi5PYmplY3Qg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVj dGVkIElucHV0RGV2aWNlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKENsdXR0ZXIuRXZlbnRTZXF1ZW5j ZT8gc2VxdWVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfYXNzb2NpYXRlZF9kZXZpY2UgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjMxMyw3ICs1ODc1LDcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wg Z2V0X2F4aXNfdmFsdWUgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBkb3VibGVbXSBh eGVzLCBDbHV0dGVyLklucHV0QXhpcyBheGlzLCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRzIChDbHV0dGVy LkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBDbHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1Ymxp YyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIEdyYXBo ZW5lLlBvaW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyBpbnQgZ2V0X2RldmljZV9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BA IC02MzI1LDEyICs1ODg3LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0 ZXIuSW5wdXREZXZpY2VUeXBlIGdldF9kZXZpY2VfdHlwZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9lbmFibGVkICgpOworLQkJW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX2dldF9pbnB1dF9kZXZpY2VfZm9yX2lkIildCistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2Zv cl9pZCAoaW50IGlkXyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZ3JhYmJlZF9hY3RvciAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X2dyb3VwX25fbW9kZXMgKGludCBncm91cCk7CisrCQlwdWJsaWMgdmlydHVhbCBpbnQg Z2V0X2dyb3VwX25fbW9kZXMgKGludCBncm91cCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX2N1cnNvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KK0BAIC02MzQ2LDIzICs1OTA1LDIxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBpbnQgZ2V0X25fbW9kZV9ncm91cHMgKCk7CisgCQlwdWJsaWMgaW50IGdldF9u X3JpbmdzICgpOworIAkJcHVibGljIGludCBnZXRfbl9zdHJpcHMgKCk7CistCQlwdWJsaWMgYm9v bCBnZXRfcGh5c2ljYWxfc2l6ZSAoZG91YmxlIHdpZHRoLCBkb3VibGUgaGVpZ2h0KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X3BvaW50ZXJfYWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9wb2ludGVyX3N0YWdlICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJv ZHVjdF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfc2VhdCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBD bHV0dGVyLklucHV0RGV2aWNlPiBnZXRfc2xhdmVfZGV2aWNlcyAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3ZlbmRvcl9pZCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBncmFiIChD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBib29sIGlzX2dyb3VwZWQgKENsdXR0ZXIu SW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKy0JCXB1YmxpYyBib29sIGlzX21vZGVfc3dpdGNo X2J1dHRvbiAodWludCBncm91cCwgdWludCBidXR0b24pOworKwkJcHVibGljIHZpcnR1YWwgYm9v bCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CisrCQlwdWJs aWMgdmlydHVhbCBib29sIGlzX21vZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91cCwgdWludCBi dXR0b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIGtl eWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2Rl KTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5Y29kZV90b19ldmRldiAodWludCBoYXJkd2Fy ZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Igc2VxdWVuY2VfZ2V0X2dyYWJi ZWRfYWN0b3IgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBzZXF1ZW5jZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorQEAgLTYzNzgsMTIgKzU5MzUsMTEgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZvaWQgdW5ncmFiICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorIAkJcHVibGljIHZvaWQgdXBkYXRlX2Zyb21fZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZl bnQsIGJvb2wgdXBkYXRlX3N0YWdlKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVh bCB2b2lkIHVwZGF0ZV9mcm9tX3Rvb2wgKENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHRvb2wpOwor IAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlw dWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3duZWQgZ2V0OyBj b25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0TW9kZSBkZXZpY2VfbW9kZSB7IGdl dDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc3RyaW5nIGRldmljZV9ub2RlIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KK0BAIC02NDA2LDYgKzU5NjIs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1Ymxp YyBzdHJpbmcgcHJvZHVjdF9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgQ2x1dHRl ci5TZWF0IHNlYXQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdmVuZG9yX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJ fQorQEAgLTY0MzAsNyArNTk4Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbW1pdF90ZXh0IChzdHJpbmcgdGV4dCk7Cisg CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZWxldGVfc3Vycm91bmRpbmcg KHVpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlbGV0ZV9z dXJyb3VuZGluZyAoaW50IG9mZnNldCwgdWludCBsZW4pOworIAkJcHVibGljIGJvb2wgZmlsdGVy X2tleV9ldmVudCAoQ2x1dHRlci5LZXlFdmVudCBrZXkpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgZm9jdXNfaW4gKENsdXR0ZXIuSW5wdXRNZXRob2QgaW5wdXRfbWV0 aG9kKTsKK0BAIC02NDQzLDcgKzYwMDAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdm9pZCBzZXRfY2FuX3Nob3dfcHJlZWRpdCAoYm9vbCBjYW5fc2hvd19wcmVlZGl0KTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9jb250ZW50X2hpbnRzIChDbHV0dGVyLklucHV0Q29udGVudEhpbnRG bGFncyBoaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3B1cnBvc2UgKENsdXR0ZXIu SW5wdXRDb250ZW50UHVycG9zZSBwdXJwb3NlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jdXJzb3Jf bG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdXJzb3Jf bG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRf cGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZyBwcmVl ZGl0LCB1aW50IGN1cnNvcik7CitAQCAtNjQ2Miw3ICs2MDE5LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVzZXQgKCk7Cisg CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9u IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3Jf bG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRf cGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZz8gcHJlZWRpdCwgdWludCBjdXJzb3IpOworIAkJ W05vV3JhcHBlcl0KK0BAIC02NDc5LDkgKzYwMzYsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIGNvbnRlbnRfcHVycG9zZSB7IGdl dDsgc2V0OyB9CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb21taXQg KHN0cmluZyB0ZXh0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hh bmdlZCAoQ2x1dHRlci5SZWN0IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29y X2xvY2F0aW9uX2NoYW5nZWQgKEdyYXBoZW5lLlJlY3Qgb2JqZWN0KTsKKyAJCVtIYXNFbWl0dGVy XQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZzZXQs IHVpbnQgbGVuKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfc3Vycm91bmRpbmcgKGlu dCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBpbnB1dF9wYW5lbF9z dGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgb2JqZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQor IAkJcHVibGljIHNpZ25hbCB2b2lkIHJlcXVlc3Rfc3Vycm91bmRpbmcgKCk7CitAQCAtNjU1NSwy OCArNjExMiwyOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgS2V5bWFwICgpOworIAkJcHVibGlj IHZpcnR1YWwgYm9vbCBnZXRfY2Fwc19sb2NrX3N0YXRlICgpOworKwkJcHVibGljIHZpcnR1YWwg UGFuZ28uRGlyZWN0aW9uIGdldF9kaXJlY3Rpb24gKCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29s IGdldF9udW1fbG9ja19zdGF0ZSAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzdGF0ZV9jaGFu Z2VkICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9sYXllcl9ub2RlX2dldF90eXBlICgpIildCisrCXB1 YmxpYyBjbGFzcyBMYXllck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIp XQorKwkJcHVibGljIExheWVyTm9kZSAoQ29nbC5NYXRyaXggcHJvamVjdGlvbiwgQ2Fpcm8uUmVj dGFuZ2xlIHZpZXdwb3J0LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCB1aW50OCBvcGFjaXR5 KTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5b3V0X21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTGF5b3V0TWFu YWdlciA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgTGF5b3V0TWFuYWdlciAoKTsKKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwg Q2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uLCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFn cyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVy LkFscGhhIGJlZ2luX2FuaW1hdGlvbiAodWludCBkdXJhdGlvbiwgdWxvbmcgbW9kZSk7CisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIs IENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQg KENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsK KyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldF9wcm9wZXJ0eSAoQ2x1dHRlci5Db250YWluZXIgY29u dGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5W YWx1ZSB2YWx1ZSk7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9zZXQgKENsdXR0ZXIuQ29udGFpbmVy IGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKyAJCXB1YmxpYyB2b2lkIGNo aWxkX3NldF9wcm9wZXJ0eSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFj dG9yIGFjdG9yLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEg Y3JlYXRlX2NoaWxkX21ldGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBl bmRfYW5pbWF0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9j aGlsZF9wcm9wZXJ0eSAoc3RyaW5nIG5hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2aXJ0dWFsIGRvdWJsZSBnZXRfYW5pbWF0aW9uX3Byb2dyZXNzICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGdl dF9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworIAkJW05vV3JhcHBlcl0KK0BAIC02NjMyLDEyICs2MTg5LDEyIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBPZmZzY3JlZW5FZmZlY3QgKCk7CisgCQlwdWJsaWMg dmlydHVhbCBDb2dsLkhhbmRsZSBjcmVhdGVfdGV4dHVyZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhl aWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0 X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMg Ym9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIs IHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9zaXplIChvdXQgZmxv YXQgd2lkdGgsIG91dCBmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJnZXQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lk IHBhaW50X3RhcmdldCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3BhZ2VfdHVybl9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorQEAgLTY2NTQsNiArNjIxMSwxNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgZG91YmxlIHBlcmlvZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgZmxv YXQgcmFkaXVzIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250 ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X2dldF90eXBlICgpIiwg dW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3VucmVmIildCisrCVtDb21w YWN0XQorKwlwdWJsaWMgY2xhc3MgUGFpbnRDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ry b3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZl ciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENhaXJvLlJlZ2lvbiBnZXRfcmVkcmF3X2NsaXAgKCk7 CisrCQlwdWJsaWMgdm9pZCBwb3BfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwdXNo X2ZyYW1lYnVmZmVyIChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKysJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuUGFpbnRDb250ZXh0IEByZWYgKCk7CisrCQlwdWJsaWMgdm9pZCB1bnJl ZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGFpbnROb2Rl IHsKK0BAIC02NjYzLDcgKzYyMzEsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dm9pZCBhZGRfbXVsdGl0ZXh0dXJlX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0LCBm bG9hdCB0ZXh0X2Nvb3JkcywgdWludCB0ZXh0X2Nvb3Jkc19sZW4pOworIAkJcHVibGljIHZvaWQg YWRkX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIGFk ZF90ZXh0dXJlX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0LCBmbG9hdCB4XzEsIGZs b2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQkJcHVibGljIHZvaWQgcGFpbnQgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsK KysJCXB1YmxpYyB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0 KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnROb2RlIEByZWYgKCk7CisgCQlwdWJs aWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIHZvaWQgdW5yZWYgKCk7 CitAQCAtNjY4MSw3ICs2MjUwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggZ2V0X29yaWdp biAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9vcmlnaW4gKG91dCB1bm93bmVkIEdyYXBoZW5lLlBv aW50M0QgdmVydGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBm bG9hdCBnZXRfd2lkdGggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjY5 MSw3ICs2MjYwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2hlaWdodCAoZmxvYXQgaGVpZ2h0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKENsdXR0 ZXIuVmVydGV4IG9yaWdpbik7CisrCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChHcmFwaGVuZS5Q b2ludDNEIG9yaWdpbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg dm9pZCBzZXRfd2lkdGggKGZsb2F0IHdpZHRoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KK0BAIC02Nzc4LDg4ICs2MzQ3LDI5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBDbHV0dGVyLlBhdGggcGF0aCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg bm9kZV9yZWFjaGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yLCB1aW50IGluZGV4KTsKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZfZnVuY3Rp b24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tf Y29udGV4dF9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlja19jb250 ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGlja0NvbnRleHQgewor KwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGlj a0NvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9waXBlbGluZV9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0 ZWQgUGlwZWxpbmVOb2RlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9m dW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRfZ2V0X3R5 cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1 YmxpYyBjbGFzcyBQb2ludCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5 OworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlBvaW50IGFsbG9jICgpOworLQkJcHVibGljIENs dXR0ZXIuUG9pbnQgY29weSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoQ2x1dHRlci5Q b2ludCBiLCBvdXQgZmxvYXQgeF9kaXN0YW5jZSwgb3V0IGZsb2F0IHlfZGlzdGFuY2UpOworLQkJ cHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlBvaW50IGIpOworLQkJcHVibGljIHZvaWQgZnJl ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgaW5pdCAoZmxvYXQgeCwgZmxv YXQgeSk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCB6ZXJvICgpOwor LQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9wcm9wZXJ0eV90cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBQcm9wZXJ0eVRyYW5zaXRp b24gOiBDbHV0dGVyLlRyYW5zaXRpb24sIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyVHJhbnNpdGlv bioiKV0KKyAJCXB1YmxpYyBQcm9wZXJ0eVRyYW5zaXRpb24gKHN0cmluZz8gcHJvcGVydHlfbmFt ZSk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyVHJhbnNpdGlvbioiKV0KKysJCXB1YmxpYyBQcm9wZXJ0eVRyYW5zaXRpb24uZm9yX2Fj dG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOworIAkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1lICgpOworLQkJcHVibGljIHZvaWQg c2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMgc3Ry aW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9j b3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJf cmVjdF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3QgeworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5Qb2lu dCBvcmlnaW47CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlNpemUgc2l6ZTsKKy0JCXB1YmxpYyBz dGF0aWMgQ2x1dHRlci5SZWN0IGFsbG9jICgpOworLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4 ZWwgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2lu dCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChDbHV0dGVyLlJlY3QgYik7CistCQlw dWJsaWMgQ2x1dHRlci5SZWN0IGNvcHkgKCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0 ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRf Y2VudGVyIChDbHV0dGVyLlBvaW50IGNlbnRlcik7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdo dCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0 X3ggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLlJlY3QgaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo dCk7CistCQlwdWJsaWMgdm9pZCBpbnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVi bGljIGJvb2wgaW50ZXJzZWN0aW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0PyByZXMp OworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBub3JtYWxpemUgKCk7CistCQlwdWJsaWMgdm9pZCBv ZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9h dCBzX3gsIGZsb2F0IHNfeSk7CistCQlwdWJsaWMgdm9pZCB1bmlvbiAoQ2x1dHRlci5SZWN0IGIs IENsdXR0ZXIuUmVjdCByZXMpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUmVj dCB6ZXJvICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgUmVjdGFuZ2xlIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyBSZWN0YW5nbGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29s b3IgZ2V0X2JvcmRlcl9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdWlu dCBnZXRfYm9yZGVyX3dpZHRoICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9j b2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfYm9yZGVyX2NvbG9yIChDbHV0dGVyLkNv bG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfYm9yZGVy X3dpZHRoICh1aW50IHdpZHRoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0 ZXIuQ29sb3IgY29sb3IpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBSZWN0YW5nbGUud2l0 aF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBi b3JkZXJfY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgYm9yZGVyX3dpZHRoIHsg Z2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgaGFzX2JvcmRlciB7IGdldDsg c2V0OyB9CisrCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAoc3RyaW5nPyBwcm9wZXJ0 eV9uYW1lKTsKKysJCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7IGdldDsgc2V0OyB9Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3Jvb3Rfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3Mg Um9vdE5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CitAQCAtNjg4MCwxNSArNjM5MCwxMSBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgU2NyaXB0ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgYWRkX3NlYXJjaF9wYXRocyAoW0NDb2RlIChh cnJheV9sZW5ndGhfY25hbWUgPSAibl9wYXRocyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjEsIGFy cmF5X2xlbmd0aF90eXBlID0gImdzaXplIildIHN0cmluZ1tdIHBhdGhzKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBhZGRfc3RhdGVzIChzdHJpbmc/IG5hbWUsIENsdXR0ZXIu U3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgY29ubmVjdF9zaWduYWxzICh2b2lkKiB1c2Vy X2RhdGEpOworIAkJcHVibGljIHZvaWQgY29ubmVjdF9zaWduYWxzX2Z1bGwgKENsdXR0ZXIuU2Ny aXB0Q29ubmVjdEZ1bmMgZnVuYyk7CisgCQlwdWJsaWMgdm9pZCBlbnN1cmVfb2JqZWN0cyAoKTsK KyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKHN0cmluZyBuYW1lKTsK KyAJCXB1YmxpYyBpbnQgZ2V0X29iamVjdHMgKC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5TdGF0ZSBnZXRfc3RhdGVzIChzdHJpbmc/IG5hbWUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfdHJhbnNsYXRpb25fZG9tYWluICgpOworIAkJcHVibGljIHZpcnR1YWwgR0xpYi5UeXBlIGdl dF90eXBlX2Zyb21fbmFtZSAoc3RyaW5nIHR5cGVfbmFtZSk7CitAQCAtNjkxNiw4ICs2NDIyLDgg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJcHVibGljIFNjcm9sbEFjdG9y ICgpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBnZXRfc2Nyb2xsX21vZGUgKCk7Cist CQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJ cHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1Ymxp YyB2b2lkIHNjcm9sbF90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGlj IHZvaWQgc2Nyb2xsX3RvX3JlY3QgKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9p ZCBzZXRfc2Nyb2xsX21vZGUgKENsdXR0ZXIuU2Nyb2xsTW9kZSBtb2RlKTsKKyAJCXB1YmxpYyBD bHV0dGVyLlNjcm9sbE1vZGUgc2Nyb2xsX21vZGUgeyBnZXQ7IHNldDsgfQorIAl9CitAQCAtNjkz OSw2ICs2NDQ1LDQ3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4Owor IAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NlYXRfZ2V0X3R5cGUgKCkiKV0K KysJcHVibGljIGFic3RyYWN0IGNsYXNzIFNlYXQgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU2VhdCAoKTsK KysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3Nl dHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmly dHVhbCB2b2lkIGJlbGxfbm90aWZ5ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21wcmVz c19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7 CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBjb3B5X2V2ZW50X2RhdGEg KENsdXR0ZXIuRXZlbnQgc3JjLCBDbHV0dGVyLkV2ZW50IGRlc3QpOworKwkJcHVibGljIHZpcnR1 YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0 dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBlbnN1cmVf YTExeV9zdGF0ZSAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZy ZWVfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBldmVudCk7CisrCQlwdWJsaWMgdm9pZCBnZXRf a2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfa2V5Ym9hcmQg KCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuS2V5bWFwIGdldF9rZXltYXAg KCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X3Bv aW50ZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0 dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIGJvb2wgZ2V0X3Rv dWNoX21vZGUgKCk7CisrCQlwdWJsaWMgdm9pZCBpbmhpYml0X3VuZm9jdXMgKCk7CisrCQlwdWJs aWMgYm9vbCBpc191bmZvY3VzX2luaGliaXRlZCAoKTsKKysJCXB1YmxpYyBHTGliLkxpc3Q8d2Vh ayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsK KysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1dHRl ci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHZvaWQg c2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNl dHRpbmdzKTsKKysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdF91bmZvY3VzICgpOworKwkJcHVibGlj IHZpcnR1YWwgdm9pZCB3YXJwX3BvaW50ZXIgKGludCB4LCBpbnQgeSk7CisrCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CisrCQlwdWJsaWMgYm9vbCB0b3VjaF9tb2RlIHsgZ2V0OyB9CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENsdXR0ZXIuSW5wdXREZXZp Y2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBpc191bmZvY3VzX2luaGliaXRlZF9j aGFuZ2VkICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQg KHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1 aW50IGxvY2tlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2VsbF9j bGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlj a190eXBlKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0ZWQg KENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5 cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJf YTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVy LlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCBib29sIGNsaWNrZWQpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmpl Y3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2V0dGlu Z3NfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMg Y2xhc3MgU2V0dGluZ3MgOiBHTGliLk9iamVjdCB7CitAQCAtNzAxMSwxOCArNjU1OCw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBTaGFkZXJNYXRyaXggKCk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9zaXplX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgU2l6ZSB7CistCQlwdWJsaWMgZmxvYXQgaGVpZ2h0 OworLQkJcHVibGljIGZsb2F0IHdpZHRoOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlNpemUg YWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIGNvcHkgKCk7CistCQlwdWJsaWMgYm9v bCBlcXVhbHMgKENsdXR0ZXIuU2l6ZSBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlNpemUgaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo dCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NuYXBfY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCXB1YmxpYyBjbGFzcyBTbmFwQ29uc3RyYWludCA6 IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNzA0MywxMzUgKzY1NzgsNjYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuR3Jv dXAsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5B Y3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFp bmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuOCIpXQorIAkJcHVibGljIFN0YWdlICgpOworLQkJcHVibGljIGJvb2wgY2FwdHVyZSAo Ym9vbCBwYWludCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIENsdXR0ZXIuQ2FwdHVyZSBjYXB0 dXJlcywgaW50IG5fY2FwdHVyZXMpOworIAkJcHVibGljIHZvaWQgY2FwdHVyZV9pbnRvIChib29s IHBhaW50LCBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgdWludDggZGF0YSk7CisrCQlwdWJsaWMg dm9pZCBjbGVhcl9zdGFnZV92aWV3cyAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9z dGFnZV9ldmVudCIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIGJv b2wgZW1pdF9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgZW5zdXJlX2N1cnJl bnQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBlbnN1 cmVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZv aWQgZW5zdXJlX3ZpZXdwb3J0ICgpOworLQkJcHVibGljIHZvaWQgZnJlZXplX3VwZGF0ZXMgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgYm9vbCBnZXRfYWNjZXB0 X2ZvY3VzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRf cG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgaW50IHgsIGludCB5KTsKKysJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAoQ2x1dHRlci5QaWNrTW9k ZSBwaWNrX21vZGUsIGZsb2F0IHgsIGZsb2F0IHkpOworIAkJcHVibGljIGJvb2wgZ2V0X2NhcHR1 cmVfZmluYWxfc2l6ZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGludCB3aWR0aCwgaW50IGhl aWdodCwgZmxvYXQgc2NhbGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jb2xv ciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfZGVm YXVsdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZ2V0X2Zv ZyAoKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9mdWxsc2NyZWVuICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfa2V5X2ZvY3VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVi bGljIHZvaWQgZ2V0X21pbmltdW1fc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdo dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfbW90 aW9uX2V2ZW50c19lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X25vX2NsZWFyX2hpbnQgKCk7CisgCQlwdWJsaWMgQ2x1dHRlci5QZXJz cGVjdGl2ZSBnZXRfcGVyc3BlY3RpdmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IGdldF9yZWRyYXdfY2xpcF9ib3VuZHMgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGhyb3R0 bGVfbW90aW9uX2V2ZW50cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FscGhhICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfZm9nICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZXJfcmVzaXphYmxlICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgaGlkZV9jdXJzb3IgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIGJvb2wgaXNfZGVmYXVsdCAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXcgKCk7CisrCQlwdWJsaWMgYm9vbCBw YWludF90b19idWZmZXIgKENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBmbG9hdCBzY2FsZSwgdWlu dDggZGF0YSwgaW50IHN0cmlkZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENsdXR0ZXIuUGFp bnRGbGFnIHBhaW50X2ZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2b2lkIHBh aW50X3RvX2ZyYW1lYnVmZmVyIChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyLCBDYWlyby5S ZWN0YW5nbGVJbnQgcmVjdCwgZmxvYXQgc2NhbGUsIENsdXR0ZXIuUGFpbnRGbGFnIHBhaW50X2Zs YWdzKTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorIAkJcHVibGljIHVpbnQ4 W10gcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoID0gLTEsIGludCBoZWlnaHQg PSAtMSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfcmVkcmF3IildCistCQlwdWJsaWMg dm9pZCByZWRyYXcgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMg dm9pZCBzZXRfYWNjZXB0X2ZvY3VzIChib29sIGFjY2VwdF9mb2N1cyk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgdm9pZCBzZXRfZm9nIChDbHV0dGVyLkZvZyBmb2cpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Z1bGxzY3JlZW4gKGJvb2wgZnVs bHNjcmVlbik7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGUgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfa2V5X2ZvY3VzIChDbHV0dGVy LkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMg dm9pZCBzZXRfbWluaW11bV9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50c19l bmFibGVkIChib29sIGVuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X25vX2NsZWFyX2hpbnQgKGJvb2wgbm9fY2xlYXIpOworLQkJcHVibGlj IHZvaWQgc2V0X3BlcnNwZWN0aXZlIChDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90aHJvdHRs ZV9tb3Rpb25fZXZlbnRzIChib29sIHRocm90dGxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90aXRsZSAoc3RyaW5nIHRpdGxlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VfYWxwaGEgKGJvb2wg dXNlX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2Zv ZyAoYm9vbCBmb2cpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3VzZXJfcmVzaXphYmxlIChib29sIHJlc2l6YWJsZSk7CistCQlwdWJsaWMgdm9pZCBz aG93X2N1cnNvciAoKTsKKy0JCXB1YmxpYyB2b2lkIHRoYXdfdXBkYXRlcyAoKTsKKy0JCXB1Ymxp YyB2b2lkIHVwZGF0ZV9yZXNvdXJjZV9zY2FsZXMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCistCQlwdWJsaWMgYm9vbCBhY2NlcHRfZm9jdXMgeyBnZXQ7IHNldDsgfQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgY3Vyc29yX3Zpc2libGUgeyBnZXQ7IHNldDsgfQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBmb2cgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBmdWxsc2NyZWVuX3NldCB7IGdl dDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0 b3Iga2V5X2ZvY3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBib29sIG5vX2NsZWFyX2hpbnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wgb2Zmc2NyZWVuIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZl IHBlcnNwZWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZl IHBlcnNwZWN0aXZlIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlw dWJsaWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIGJvb2wgdXNlX2ZvZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCB1c2VyX3Jlc2l6YWJsZSB7IGdldDsg c2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBhY3RpdmF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCist CQlwdWJsaWMgc2lnbmFsIHZvaWQgYWZ0ZXJfcGFpbnQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgYWZ0ZXJfcGFpbnQgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25h bCB2b2lkIGFmdGVyX3VwZGF0ZSAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgYmVmb3JlX3BhaW50IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBiZWZvcmVfdXBkYXRlIChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGRlYWN0aXZhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgYm9vbCBkZWxldGVfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgZnVsbHNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHVuZnVsbHNjcmVlbiAoKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHBhaW50X3ZpZXcgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcsIENhaXJv LlJlZ2lvbiByZWRyYXdfY2xpcCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX21hbmFnZXJfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTcxODUsOCArNjY1 MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K KyAJCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5TdGFnZT4gbGlzdF9zdGFnZXMgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlNMaXN0PENsdXR0ZXIuU3RhZ2U+IHBlZWtfc3RhZ2Vz ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlZmF1bHRfc3RhZ2Ug KENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJ cHVibGljIENsdXR0ZXIuU3RhZ2UgZGVmYXVsdF9zdGFnZSB7IGdldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorQEAgLTcyMDYsNjMgKzY2NzAsMzMgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHVpbnQzMiB0aW1lOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRUeXBl IHR5cGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRlX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIFN0YXRlIDogR0xpYi5PYmplY3QsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV92aWV3X2dldF90eXBlICgpIild CisrCXB1YmxpYyBjbGFzcyBTdGFnZVZpZXcgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIFN0YXRlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9kdXJh dGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFt ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIu U3RhdGVLZXk+IGdldF9rZXlzIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRh cmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0LCBzdHJpbmc/IHByb3BlcnR5X25h bWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3Rh dGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIHN0cmlu Zz4gZ2V0X3N0YXRlcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCByZW1vdmVfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/ IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0LCBzdHJpbmc/IHByb3BlcnR5 X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAo c3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgdWlu dCBkdXJhdGlvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5TdGF0ZSBzZXRfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmcgdGFyZ2V0 X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0IG9iamVjdCwgc3RyaW5nIHByb3BlcnR5X25hbWUsIHVp bnQgbW9kZSwgR0xpYi5WYWx1ZSB2YWx1ZSwgZG91YmxlIHByZV9kZWxheSwgZG91YmxlIHBvc3Rf ZGVsYXkpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGlt ZWxpbmUgc2V0X3N0YXRlIChzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgd2FycF90b19zdGF0ZSAo c3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lKTsKKysJCXByb3RlY3RlZCBTdGFnZVZpZXcgKCk7Cisr CQlwdWJsaWMgdm9pZCBhc3NpZ25fbmV4dF9zY2Fub3V0IChDb2dsLlNjYW5vdXQgc2Nhbm91dCk7 CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsK KysJCXB1YmxpYyB2b2lkIGdldF9sYXlvdXQgKENhaXJvLlJlY3RhbmdsZUludCByZWN0KTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgZ2V0X29mZnNjcmVlbl90cmFuc2Zvcm1hdGlvbl9tYXRyaXgg KENvZ2wuTWF0cml4IG1hdHJpeCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVy IGdldF9vbnNjcmVlbiAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfc2NhbGUgKCk7CisrCQlwdWJs aWMgdm9pZCBpbnZhbGlkYXRlX29mZnNjcmVlbl9ibGl0X3BpcGVsaW5lICgpOworKwkJW05vV3Jh cHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0dXBfb2Zmc2NyZWVuX2JsaXRfcGlwZWxp bmUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgdHJhbnNmb3JtX3JlY3RfdG9fb25zY3JlZW4gKENhaXJvLlJlY3RhbmdsZUlu dCBzcmNfcmVjdCwgaW50IGRzdF93aWR0aCwgaW50IGRzdF9oZWlnaHQsIENhaXJvLlJlY3Rhbmds ZUludCBkc3RfcmVjdCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdWludCBkdXJhdGlvbiB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2Fpcm8u UmVjdGFuZ2xlSW50IGxheW91dCB7IG93bmVkIGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHN0cmluZyBzdGF0 ZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3Rh dGVfa2V5X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCistCXB1YmxpYyBjbGFzcyBTdGF0ZUtleSB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGRvdWJsZSBnZXRfcG9zdF9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgZG91YmxlIGdldF9wcmVfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBHTGliLlR5cGUgZ2V0X3Byb3BlcnR5X3R5cGUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zb3VyY2Vfc3RhdGVfbmFtZSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Rhcmdl dF9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF92 YWx1ZSAoR0xpYi5WYWx1ZSB2YWx1ZSk7CisrCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgZmxvYXQg cmVmcmVzaF9yYXRlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKysJCXB1YmxpYyBmbG9hdCBzY2FsZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05v QWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5TdGFnZSBzdGFnZSB7IG93bmVkIGdl dDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBib29sIHVz ZV9zaGFkb3dmYiB7IGdldDsgY29uc3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N3aXBlX2Fj dGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNzI3 NCw1MyArNjcwOCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE0IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBzd2lwZSAoQ2x1dHRlci5B Y3RvciBhY3RvciwgQ2x1dHRlci5Td2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl90YWJsZV9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjQiKV0KKy0J cHVibGljIGNsYXNzIFRhYmxlTGF5b3V0IDogQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJMYXlv dXRNYW5hZ2VyKiIpXQorLQkJcHVibGljIFRhYmxlTGF5b3V0ICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91 dCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLlRhYmxlQWxpZ25t ZW50IHlfYWxpZ24pOworLQkJcHVibGljIGludCBnZXRfY29sdW1uX2NvdW50ICgpOworLQkJcHVi bGljIHVpbnQgZ2V0X2NvbHVtbl9zcGFjaW5nICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB1aW50IGdldF9lYXNpbmdfZHVyYXRpb24gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVsb25nIGdldF9lYXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBnZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2V4 cGFuZCwgb3V0IGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGwsIG91dCBi b29sIHlfZmlsbCk7CistCQlwdWJsaWMgaW50IGdldF9yb3dfY291bnQgKCk7CistCQlwdWJsaWMg dWludCBnZXRfcm93X3NwYWNpbmcgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3BhbiAoQ2x1dHRl ci5BY3RvciBhY3Rvciwgb3V0IGludCBjb2x1bW5fc3Bhbiwgb3V0IGludCByb3dfc3Bhbik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbmltYXRpb25zICgpOwor LQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVtbiwgaW50 IHJvdyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAo Q2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBDbHV0 dGVyLlRhYmxlQWxpZ25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIHZvaWQgc2V0X2NvbHVtbl9z cGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9lYXNpbmdfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9v bCB4X2V4cGFuZCwgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9maWxsLCBib29sIHlf ZmlsbCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcm93X3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7Cist CQlwdWJsaWMgdm9pZCBzZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVtbl9z cGFuLCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF91c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCXB1YmxpYyB1aW50IGNvbHVtbl9z cGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBl YXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCByb3dfc3Bh Y2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgdXNl X2FuaW1hdGlvbnMgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YXBfYWN0aW9uX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBjbGFz cyBUYXBBY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworQEAgLTczNDgsNyArNjczNSw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jdXJz b3JfY29sb3IgKCk7CisgCQlwdWJsaWMgaW50IGdldF9jdXJzb3JfcG9zaXRpb24gKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0 IChvdXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfY3Vy c29yX3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdWlu dCBnZXRfY3Vyc29yX3NpemUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY3Vyc29yX3Zpc2libGUg KCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfZWRpdGFibGUgKCk7CitAQCAtNzQ2Nyw3ICs2ODU0LDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAoQ2x1 dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBj dXJzb3JfZXZlbnQgKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfdGV4 dCAoaW50IHN0YXJ0X3BvcywgaW50IGVuZF9wb3MpOworQEAgLTc1MDUsOTQgKzY4OTIsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorIAkJcHVibGljIFRleHROb2RlIChQ YW5nby5MYXlvdXQ/IGxheW91dCwgQ2x1dHRlci5Db2xvcj8gY29sb3IpOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl90ZXh0dXJlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0K Ky0JcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3Is IENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIFRleHR1cmUgKCk7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwg c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2FjdG9yIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgVGV4 dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIENsdXR0ZXIuVGV4dHVyZUVy cm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9iYXNlX3NpemUgKG91dCBpbnQgd2lkdGgsIG91 dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDb2ds LkhhbmRsZSBnZXRfY29nbF9tYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGdldF9maWx0ZXJfcXVhbGl0 eSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfa2VlcF9hc3BlY3Rf cmF0aW8gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfYXN5 bmMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfZGF0YV9h c3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgaW50IGdldF9tYXhfdGlsZV93 YXN0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfcGlja193aXRo X2FscGhhICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9yZXBlYXQg KG91dCBib29sIHJlcGVhdF94LCBvdXQgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIGJvb2wgZ2V0X3N5bmNfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgYm9vbCBzZXRfYXJlYV9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHgsIGludCB5LCBp bnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4 dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgdm9pZCBzZXRfY29nbF9tYXRlcmlhbCAoQ29nbC5IYW5kbGUgY29nbF9tYXRlcmlh bCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfdGV4dHVyZSAo Q29nbC5IYW5kbGUgY29nbF90ZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9maWx0ZXJfcXVhbGl0eSAoQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0 eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21fZmlsZSAoc3Ry aW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgYm9vbCBzZXRfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwg aW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93 cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9t X3l1dl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBp bnQgd2lkdGgsIGludCBoZWlnaHQsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfa2VlcF9h c3BlY3RfcmF0aW8gKGJvb2wga2VlcF9hc3BlY3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sb2FkX2FzeW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2RhdGFfYXN5bmMgKGJvb2wgbG9hZF9hc3lu Yyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BpY2tfd2l0aF9hbHBo YSAoYm9vbCBwaWNrX3dpdGhfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9yZXBlYXQgKGJvb2wgcmVwZWF0X3gsIGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zeW5jX3NpemUgKGJvb2wgc3luY19zaXplKTsK Ky0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBnZXQ7IHNldDsgfQorLQkJ cHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkaXNhYmxlX3NsaWNpbmcgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0cmluZyBmaWxl bmFtZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0 eSBmaWx0ZXJfcXVhbGl0eSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIGJvb2wg a2VlcF9hc3BlY3RfcmF0aW8geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBib29sIGxvYWRfYXN5bmMgeyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgYm9vbCBsb2FkX2RhdGFfYXN5bmMgeyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIHBpY2tfd2l0 aF9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIHJlcGVhdF94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgcmVwZWF0X3kgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIGJvb2wgc3luY19zaXpl IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB0aWxl X3dhc3RlIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgbG9hZF9maW5pc2hlZCAoR0xpYi5FcnJvciBlcnJvcik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgcGl4YnVmX2NoYW5nZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBzaXplX2NoYW5nZSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfdGV4dHVyZV9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBUZXh0dXJlTm9kZSA6IENsdXR0ZXIuUGlw ZWxpbmVOb2RlIHsKK0BAIC03NjA0LDcgKzY5MDMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CXB1YmxpYyBjbGFzcyBUaW1lbGluZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIFRpbWVsaW5lICh1aW50IG1zZWNzKTsKKysJ CXB1YmxpYyBUaW1lbGluZSAodWludCBkdXJhdGlvbl9tcyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNCIpXQorIAkJcHVibGljIHZvaWQgYWRkX21hcmtlciAoc3RyaW5nIG1hcmtlcl9uYW1l LCBkb3VibGUgcHJvZ3Jlc3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTc2 MTIsMTIgKzY5MTEsMTUgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWR2 YW5jZSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdm9pZCBhZHZhbmNlX3RvX21hcmtlciAoc3RyaW5nIG1hcmtlcl9uYW1lKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZSBjbG9uZSAoKTsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBUaW1lbGluZS5m b3JfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgZHVyYXRpb25fbXMpOworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFRpbWVsaW5l LmZvcl9mcmFtZV9jbG9jayAoQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrLCB1aW50IGR1 cmF0aW9uX21zKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2F1dG9f cmV2ZXJzZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9v bCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRlci5Q b2ludCBjXzIpOworKwkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoR3Jh cGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfcmVwZWF0ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2MzEsOCArNjkzMyw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50NjQg Z2V0X2R1cmF0aW9uX2hpbnQgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfZWxhcHNlZF90aW1lICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb29wICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfcHJvZ3Jlc3MgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorQEAgLTc2NTEsMTggKzY5NTEsMTggQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3Zl X21hcmtlciAoc3RyaW5nIG1hcmtlcl9uYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHJld2luZCAoKTsK KysJCXB1YmxpYyB2b2lkIHNldF9hY3RvciAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmV2ZXJzZSAo Ym9vbCByZXZlcnNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMg dm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRl ci5Qb2ludCBjXzIpOworKwkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAo R3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RlbGF5ICh1aW50IG1zZWNzKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kaXJlY3Rpb24g KENsdXR0ZXIuVGltZWxpbmVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAodWludCBtc2Vjcyk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfZnJhbWVfY2xvY2sgKENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jayk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Byb2dyZXNzX2Z1bmMg KG93bmVkIENsdXR0ZXIuVGltZWxpbmVQcm9ncmVzc0Z1bmM/IGZ1bmMpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KK0BAIC03Njc0LDYgKzY5NzQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdm9pZCBza2lwICh1aW50IG1zZWNzKTsKKyAJCXB1YmxpYyB2b2lkIHN0 YXJ0ICgpOworIAkJcHVibGljIHZvaWQgc3RvcCAoKTsKKysJCXB1YmxpYyBDbHV0dGVyLkFjdG9y IGFjdG9yIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgYm9vbCBhdXRvX3JldmVyc2UgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2ODIsOCArNjk4Myw4IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lRGlyZWN0aW9uIGRpcmVjdGlvbiB7IGdl dDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdWludCBk dXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wgbG9vcCB7IGdldDsgc2V0 OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLkZyYW1lQ2xvY2sg ZnJhbWVfY2xvY2sgeyBvd25lZCBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5BbmltYXRpb25Nb2RlIHByb2dyZXNz X21vZGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03 Njk3LDEyICs2OTk4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHN0b3BwZWQgKGJvb2wg aXNfZmluaXNoZWQpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFRpbWVvdXRQb29sIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBU aW1lb3V0UG9vbCAoaW50IHByaW9yaXR5KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBh Y3RdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzc1Myw2ICs3MDQ4LDExIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0 IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5zZm9ybV9ub2RlX2dldF90eXBlICgpIildCisrCXB1 YmxpYyBjbGFzcyBUcmFuc2Zvcm1Ob2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9k ZSoiKV0KKysJCXB1YmxpYyBUcmFuc2Zvcm1Ob2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uKTsK KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVHJhbnNpdGlvbiA6IENs dXR0ZXIuVGltZWxpbmUsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtNzc5Miw3ICs3MDkyLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFZpcnR1YWxJbnB1dERldmljZSAoKTsKKyAJCXB1Ymxp YyBpbnQgZ2V0X2RldmljZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5EZXZp Y2VNYW5hZ2VyIGdldF9tYW5hZ2VyICgpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlf YWJzb2x1dGVfbW90aW9uICh1aW50NjQgdGltZV91cywgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2J1dHRvbiAodWludDY0IHRpbWVfdXMsIHVpbnQz MiBidXR0b24sIENsdXR0ZXIuQnV0dG9uU3RhdGUgYnV0dG9uX3N0YXRlKTsKKyAJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgbm90aWZ5X2Rpc2NyZXRlX3Njcm9sbCAodWludDY0IHRpbWVfdXMsIENsdXR0 ZXIuU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgQ2x1dHRlci5TY3JvbGxTb3VyY2Ugc2Nyb2xs X3NvdXJjZSk7CitAQCAtNzgwMywyOCArNzEwMiwyNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9kb3duICh1aW50NjQgdGltZV91cywg aW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5v dGlmeV90b3VjaF9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRv dWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX3VwICh1aW50NjQg dGltZV91cywgaW50IHNsb3QpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1 dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSB7IGdldDsg Y29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlNl YXQgc2VhdCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3pvb21f YWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1 YmxpYyBjbGFzcyBab29tQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24q IildCisgCQlwdWJsaWMgWm9vbUFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9w b2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3Jt ZWRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0 X2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRf dHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCXB1Ymxp YyBDbHV0dGVyLlpvb21BeGlzIGdldF96b29tX2F4aXMgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf em9vbV9heGlzIChDbHV0dGVyLlpvb21BeGlzIGF4aXMpOworIAkJcHVibGljIENsdXR0ZXIuWm9v bUF4aXMgem9vbV9heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBi b29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUG9pbnQgZm9jYWxfcG9pbnQs IGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1 dHRlci5BY3RvciBhY3RvciwgR3JhcGhlbmUuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0 b3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfY25hbWUgPSAiQ2x1dHRlckFuaW1hdGFibGVJbnRlcmZhY2UiLCB0eXBlX2lkID0g ImNsdXR0ZXJfYW5pbWF0YWJsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIEFu aW1hdGFibGUgOiBHTGliLk9iamVjdCB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYWJz dHJhY3QgYm9vbCBhbmltYXRlX3Byb3BlcnR5IChDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRpb24s IHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGluaXRpYWxfdmFsdWUsIEdMaWIuVmFs dWUgZmluYWxfdmFsdWUsIGRvdWJsZSBwcm9ncmVzcywgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBHTGli LlBhcmFtU3BlYyBmaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CisrCQlwdWJs aWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9pbml0aWFs X3N0YXRlIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNzgzNSwxMiArNzEzMyw5IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NvbnRhaW5lcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBpbnRlcmZhY2UgQ29udGFpbmVyIDogR0xpYi5P YmplY3QgeworLQkJcHVibGljIHZvaWQgYWRkIChwYXJhbXMgQ2x1dHRlci5BY3RvcltdIGFjdG9y cyk7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAiYWRkIildCisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQor IAkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBhZGRfdmFsaXN0IChDbHV0dGVyLkFj dG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg Li4uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03ODYwLDE4ICs3MTU1LDEw IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVzdHJveV9j aGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZmluZF9jaGlsZF9ieV9uYW1l IChzdHJpbmcgY2hpbGRfbmFtZSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29udGFp bmVyX2NsYXNzX2ZpbmRfY2hpbGRfcHJvcGVydHkiKV0KKy0JCXB1YmxpYyBjbGFzcyB1bm93bmVk IEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1l KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBAZm9yZWFjaCAo Q2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBmb3JlYWNoX3dpdGhfaW50ZXJuYWxzIChDbHV0dGVyLkNhbGxiYWNrIGNh bGxiYWNrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5DaGlsZE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0 dGVyLkFjdG9yPiBnZXRfY2hpbGRyZW4gKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJf Y29udGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVydGllcyIpXQorLQkJcHVibGljIGNsYXNz IHVub3duZWQgR0xpYi5QYXJhbVNwZWNbXSBsaXN0X2NoaWxkX3Byb3BlcnRpZXMgKCk7CisgCQlb Q0NvZGUgKHZmdW5jX25hbWUgPSAibG93ZXIiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIGxvd2VyX2NoaWxkIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVy LkFjdG9yPyBzaWJsaW5nID0gbnVsbCk7CitAQCAtNzg4Myw4ICs3MTcwLDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gInJlbW92ZSIpXQorIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlbW92ZV9hY3RvciAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3Zh bGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNiIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc29ydF9kZXB0aF9vcmRlciAo KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdG9yX2FkZGVkIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKK0BAIC03OTAxLDcgKzcxODYsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlICgpOworIAkJcHVibGljIGFic3RyYWN0 IHZvaWQgaW52YWxpZGF0ZV9zaXplICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0 cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFp bnROb2RlIG5vZGUpOworKwkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSwgQ2x1dHRlci5QYWludENv bnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYXR0YWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03OTE1LDQ3ICs3MjAwLDE2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9jdXN0b21f cHJvcGVydHkgKENsdXR0ZXIuU2NyaXB0IHNjcmlwdCwgc3RyaW5nIG5hbWUsIEdMaWIuVmFsdWUg dmFsdWUpOworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2lkIChzdHJpbmcgaWRfKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J cHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2NsaXAgKENsdXR0ZXIuR2Vv bWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJh Y3Qgdm9pZCBnZXRfZ2VvbWV0cnkgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHVub3duZWQgQ2x1dHRlci5BY3RvciBn ZXRfd3JhcHBlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBo YXNfcmVkcmF3X2NsaXBzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIGhpZGUgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgaWdu b3JpbmdfcmVkcmF3X2NsaXBzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFj dCBib29sIHJlYWxpemUgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZv aWQgcmVzaXplIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9jdXJzb3JfdmlzaWJsZSAoYm9vbCBjdXJzb3JfdmlzaWJs ZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2Z1bGxzY3Jl ZW4gKGJvb2wgaXNfZnVsbHNjcmVlbik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3Ry YWN0IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyBhYnN0cmFjdCB2b2lkIHNldF91c2VyX3Jlc2l6YWJsZSAoYm9vbCBpc19yZXNpemFibGUp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNob3cgKGJvb2wgZG9f cmFpc2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHVucmVhbGl6 ZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9hY3Rvcl9ib3hfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBBY3RvckJveCB7 CisgCQlwdWJsaWMgZmxvYXQgeDE7CisgCQlwdWJsaWMgZmxvYXQgeTE7CisgCQlwdWJsaWMgZmxv YXQgeDI7CisgCQlwdWJsaWMgZmxvYXQgeTI7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkFjdG9yQm94PyBhbGxvYyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGNsYW1wX3RvX3BpeGVsICgpOwor KwkJcHVibGljIHN0YXRpYyB2b2lkIGNsYW1wX3RvX3BpeGVsIChyZWYgQ2x1dHRlci5BY3RvckJv eCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY29u dGFpbnMgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor QEAgLTc5NjQsOCArNzIxOCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29s IGVxdWFsIChDbHV0dGVyLkFjdG9yQm94IGJveF9iKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfYWN0b3JfYm94X2Zyb21fdmVydGljZXMiKV0KKy0JCXB1YmxpYyBBY3RvckJveC5mcm9tX3Zl cnRpY2VzIChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfYXJlYSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KK0BAIC03OTg2LDYgKzcyMzgsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdm9pZCBpbml0X3JlY3QgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9h dCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0 ZXIuQWN0b3JCb3ggaW50ZXJwb2xhdGUgKENsdXR0ZXIuQWN0b3JCb3ggZmluYWwsIGRvdWJsZSBw cm9ncmVzcyk7CisrCQlwdWJsaWMgYm9vbCBpc19pbml0aWFsaXplZCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzY2FsZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtODAxMSw3ICs3MjY0LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2Fpcm8uU3VyZmFjZSBpbWFnZTsKKyAJCXB1 YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xP UiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NvbG9yX2dldF90eXBlICgpIildCisgCXB1YmxpYyBz dHJ1Y3QgQ29sb3IgeworIAkJcHVibGljIHVpbnQ4IHJlZDsKKyAJCXB1YmxpYyB1aW50OCBncmVl bjsKK0BAIC04MDI3LDEyICs3MjgwLDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBib29sIGVxdWFsIChDbHV0dGVyLkNvbG9yIHYyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjIiKV0KKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfY29sb3JfZnJvbV9obHMiKV0KKy0JCXB1YmxpYyBDb2xvci5mcm9tX2hscyAoZmxvYXQgaHVl LCBmbG9hdCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24pOworLQkJW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX2NvbG9yX2Zyb21fcGl4ZWwiKV0KKy0JCXB1YmxpYyBDb2xvci5mcm9tX3BpeGVs ICh1aW50MzIgcGl4ZWwpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21f c3RyaW5nIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpOworKwkJ cHVibGljIHN0YXRpYyB2b2lkIGZyb21faGxzIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgZmxv YXQgaHVlLCBmbG9hdCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24pOworKwkJcHVibGljIHN0 YXRpYyB2b2lkIGZyb21fcGl4ZWwgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCB1aW50MzIgcGl4 ZWwpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyBib29s IGZyb21fc3RyaW5nIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgc3RyaW5nIHN0cik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5Db2xvcj8gZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdWludCBoYXNoICgpOworQEAgLTgwNDEs OCArNzI5Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGludGVycG9sYXRlIChDbHV0dGVyLkNvbG9y IGZpbmFsLCBkb3VibGUgcHJvZ3Jlc3MpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgbGlnaHRl biAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQor LQkJcHVibGljIGJvb2wgcGFyc2Vfc3RyaW5nIChzdHJpbmcgc3RyKTsKKyAJCXB1YmxpYyBDbHV0 dGVyLkNvbG9yIHNoYWRlIChkb3VibGUgZmFjdG9yKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9y IHN1YnRyYWN0IChDbHV0dGVyLkNvbG9yIGIpOworIAkJcHVibGljIHZvaWQgdG9faGxzIChvdXQg ZmxvYXQgaHVlLCBvdXQgZmxvYXQgbHVtaW5hbmNlLCBvdXQgZmxvYXQgc2F0dXJhdGlvbik7CitA QCAtODA1MCwyMyArNzMwMCwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfZm9nX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBz dHJ1Y3QgRm9nIHsKKy0JCXB1YmxpYyBmbG9hdCB6X25lYXI7CistCQlwdWJsaWMgZmxvYXQgel9m YXI7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dlb21ldHJ5X2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdHJ1Y3QgR2VvbWV0cnkgeworLQkJcHVibGljIGludCB4OworLQkJcHVibGljIGludCB5Owor LQkJcHVibGljIHVpbnQgd2lkdGg7CistCQlwdWJsaWMgdWludCBoZWlnaHQ7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzIChDbHV0dGVyLkdl b21ldHJ5IGdlb21ldHJ5MSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgQ2x1dHRlci5HZW9tZXRyeSB1bmlvbiAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeV9iKTsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgRnJhbWVMaXN0ZW5lcklmYWNlIHsKKysJ CXB1YmxpYyB3ZWFrIGdsb2JhbDo6YmVmb3JlX2ZyYW1lIGJlZm9yZV9mcmFtZTsKKysJCXB1Ymxp YyB3ZWFrIGdsb2JhbDo6ZnJhbWUgZnJhbWU7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1Ymxp YyBzdHJ1Y3QgS2JkQTExeVNldHRpbmdzIHsKK0BAIC04MDc4LDcgKzczMTUsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgaW50IG1vdXNla2V5c19tYXhfc3BlZWQ7CisgCQlwdWJs aWMgaW50IG1vdXNla2V5c19hY2NlbF90aW1lOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90 eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBzdHJ1Y3QgS25vdCB7CisgCQlwdWJsaWMg aW50IHg7CitAQCAtODA4Nyw4ICs3MzI0LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLktub3Qga25vdF9iKTsKKyAJCXB1YmxpYyB2b2lkIGZy ZWUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3RydWN0IE1hdHJpeCA6 IENvZ2wuTWF0cml4IHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuTWF0cml4PyBhbGxvYyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisrCQlwdWJsaWMgdm9pZCBmcmVlICgpOworKwkJcHVibGljIHN0YXRpYyBHTGliLlR5 cGUgZ2V0X3R5cGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfZnJvbV9hcnJheSAoW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIGZsb2F0IHZhbHVlc1sxNl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTWF0cml4PyBpbml0X2Zyb21fbWF0 cml4IChDbHV0dGVyLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisr CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9pZGVudGl0eSAoKTsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBQYWRCdXR0b25FdmVudCB7CitAQCAtODEz MCw3ICs3Mzc4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGRvdWJsZSB2YWx1 ZTsKKyAJCXB1YmxpYyB1aW50MzIgbW9kZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGF0aF9ub2RlX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGF0aF9ub2RlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVjdCBQYXRoTm9kZSB7 CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoTm9kZVR5cGUgdHlwZTsKK0BAIC04MTQwLDcgKzczODgs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5Q YXRoTm9kZSBub2RlX2IpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVj dGl2ZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1Ymxp YyBzdHJ1Y3QgUGVyc3BlY3RpdmUgeworIAkJcHVibGljIGZsb2F0IGZvdnk7CitAQCAtODE0OSw2 ICs3Mzk3LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB6X2ZhcjsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBQb2ludGVyQTExeVNldHRpbmdz IHsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RmxhZ3MgY29udHJvbHM7CisrCQlwdWJs aWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGR3ZWxsX2NsaWNrX3R5cGU7Cisr CQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsTW9kZSBkd2VsbF9tb2RlOworKwkJcHVi bGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX3Npbmds ZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2Vz dHVyZV9kb3VibGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9u IGR3ZWxsX2dlc3R1cmVfZHJhZzsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxE aXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9zZWNvbmRhcnk7CisrCQlwdWJsaWMgaW50IHNlY29uZGFy eV9jbGlja19kZWxheTsKKysJCXB1YmxpYyBpbnQgZHdlbGxfZGVsYXk7CisrCQlwdWJsaWMgaW50 IGR3ZWxsX3RocmVzaG9sZDsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMjgiKV0KKyAJcHVibGljIHN0cnVjdCBQcm94aW1pdHlFdmVudCB7CisgCQlwdWJsaWMg Q2x1dHRlci5FdmVudFR5cGUgdHlwZTsKK0BAIC04MTU4LDQ3ICs3NDE5LDE2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Igc291cmNlOworIAkJcHVi bGljIHdlYWsgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2U7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZ UEVfVU5JVFMiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl91bml0c19nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgVW5pdHMgeworIAkJcHVi bGljIENsdXR0ZXIuVW5pdHM/IGNvcHkgKCk7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJ W0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fY20iKV0KKy0JCXB1YmxpYyBVbml0 cy5mcm9tX2NtIChmbG9hdCBjbSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNf ZnJvbV9lbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fZW0gKGZsb2F0IGVtKTsKKy0JCVtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtX2Zvcl9mb250IildCistCQlwdWJsaWMg VW5pdHMuZnJvbV9lbV9mb3JfZm9udCAoc3RyaW5nIGZvbnRfbmFtZSwgZmxvYXQgZW0pOworLQkJ W0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fbW0iKV0KKy0JCXB1YmxpYyBVbml0 cy5mcm9tX21tIChmbG9hdCBtbSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNf ZnJvbV9waXhlbHMiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3BpeGVscyAoaW50IHB4KTsKKy0J CVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3B0IildCistCQlwdWJsaWMgVW5p dHMuZnJvbV9wdCAoZmxvYXQgcHQpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRz X2Zyb21fc3RyaW5nIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIp OworIAkJcHVibGljIENsdXR0ZXIuVW5pdFR5cGUgZ2V0X3VuaXRfdHlwZSAoKTsKKyAJCXB1Ymxp YyBmbG9hdCBnZXRfdW5pdF92YWx1ZSAoKTsKKyAJCXB1YmxpYyBmbG9hdCB0b19waXhlbHMgKCk7 CisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdmVydGV4 X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0 cnVjdCBWZXJ0ZXggeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0J CXB1YmxpYyBmbG9hdCB6OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgQ2x1dHRlci5WZXJ0ZXg/IGFsbG9jICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4PyBjb3B5ICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuVmVydGV4IHZl cnRleF9iKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGZy ZWUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5WZXJ0ZXg/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXgg PSAiQ0xVVFRFUl9BQ1RPUl9BTElHTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYWxpZ25f Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGVu dW0gQWN0b3JBbGlnbiB7CitAQCAtODIyMywxNCArNzQ1Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2FsbG9jYXRpb25fZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEFsbG9jYXRpb25GbGFncyB7Cist CQlBTExPQ0FUSU9OX05PTkUsCistCQlBQlNPTFVURV9PUklHSU5fQ0hBTkdFRCwKKy0JCURFTEVH QVRFX0xBWU9VVAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0 aW9uX21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlw dWJsaWMgZW51bSBBbmltYXRpb25Nb2RlIHsKK0BAIC04MzM2LDYgKzc1NTgsMjcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9USAorIAl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJV R18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxh Z3NdCisrCXB1YmxpYyBlbnVtIERlYnVnRmxhZyB7CisrCQlNSVNDLAorKwkJQUNUT1IsCisrCQlU RVhUVVJFLAorKwkJRVZFTlQsCisrCQlQQUlOVCwKKysJCVBBTkdPLAorKwkJQkFDS0VORCwKKysJ CVNDSEVEVUxFUiwKKysJCVNDUklQVCwKKysJCVNIQURFUiwKKysJCU1VTFRJU1RBR0UsCisrCQlB TklNQVRJT04sCisrCQlMQVlPVVQsCisrCQlQSUNLLAorKwkJRVZFTlRMT09QLAorKwkJQ0xJUFBJ TkcsCisrCQlPT0JfVFJBTlNGT1JNUworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9EUkFHXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9kcmFnX2F4aXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorIAlwdWJsaWMgZW51bSBEcmFnQXhpcyB7CitAQCAtODM0MywxMSArNzU4NiwyNCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlYX0FYSVMsCisgCQlZX0FYSVMKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNM VVRURVJfRUZGRUNUX1BBSU5UX0FDVE9SXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9lZmZlY3RfcGFp bnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9kcmF3X2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJs aWMgZW51bSBEcmF3RGVidWdGbGFnIHsKKysJCURJU0FCTEVfU1dBUF9FVkVOVFMsCisrCQlESVNB QkxFX0NMSVBQRURfUkVEUkFXUywKKysJCVJFRFJBV1MsCisrCQlQQUlOVF9WT0xVTUVTLAorKwkJ RElTQUJMRV9DVUxMSU5HLAorKwkJRElTQUJMRV9PRkZTQ1JFRU5fUkVESVJFQ1QsCisrCQlDT05U SU5VT1VTX1JFRFJBVywKKysJCVBBSU5UX0RFRk9STV9USUxFUywKKysJCVBBSU5UX0RBTUFHRV9S RUdJT04KKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRUZGRUNUX1BBSU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9lZmZlY3RfcGFpbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMg ZW51bSBFZmZlY3RQYWludEZsYWdzIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ0xVVFRFUl9FRkZF Q1RfUEFJTlRfQUNUT1JfRElSVFkiKV0KKy0JCUFDVE9SX0RJUlRZCisrCQlBQ1RPUl9ESVJUWSwK KysJCUJZUEFTU19FRkZFQ1QKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRVZFTlRfIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2V2ZW50X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KK0BAIC04MzkyLDIx ICs3NjQ4LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCisgCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJF X05QT1QsCistCQlTV0FQX1RIUk9UVExFLAorLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JF QURfUElYRUxTLAorIAkJU1RBR0VfU1RBVElDLAorLQkJU1RBR0VfVVNFUl9SRVNJWkUsCisgCQlT VEFHRV9DVVJTT1IsCisgCQlTSEFERVJTX0dMU0wsCisgCQlPRkZTQ1JFRU4sCisgCQlTVEFHRV9N VUxUSVBMRSwKKy0JCVNXQVBfRVZFTlRTOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2Zl YXR1cmVfYXZhaWxhYmxlIildCistCQlwdWJsaWMgYm9vbCBpc19hdmFpbGFibGUgKCk7CistCQlb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9nZXRfYWxsIildCistCQlwdWJsaWMgc3Rh dGljIENsdXR0ZXIuRmVhdHVyZUZsYWdzIEBnZXQgKCk7CisrCQlTV0FQX0VWRU5UUworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXgg PSAiQ0xVVFRFUl9GTE9XXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mbG93X29yaWVudGF0aW9uX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KK0BAIC04NDE0LDEyICs3 NjYxLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUhPUklaT05UQUwsCisgCQlWRVJUSUNB TAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl9GT05UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mb250X2ZsYWdz X2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVu dW0gRm9udEZsYWdzIHsKKy0JCU1JUE1BUFBJTkcsCistCQlISU5USU5HCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9G UkFNRV9SRVNVTFRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZyYW1lX3Jlc3VsdF9nZXRfdHlwZSAo KSIpXQorKwlwdWJsaWMgZW51bSBGcmFtZVJlc3VsdCB7CisrCQlQRU5ESU5HX1BSRVNFTlRFRCwK KysJCUlETEUKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfR0VTVFVSRV9UUklHR0VSX0VER0VfIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2dlc3R1cmVfdHJpZ2dlcl9lZGdlX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCitAQCAtODYzNCw3ICs3ODc5LDggQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBlbnVtIE9mZnNj cmVlblJlZGlyZWN0IHsKKyAJCUFVVE9NQVRJQ19GT1JfT1BBQ0lUWSwKKy0JCUFMV0FZUworKwkJ QUxXQVlTLAorKwkJT05fSURMRQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9PUklFTlRBVElPTl8iLCB0eXBl X2lkID0gImNsdXR0ZXJfb3JpZW50YXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KK0BAIC04NjQyLDYgKzc4ODgsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BBSU5UX0ZM QUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0Zs YWdzXQorKwlwdWJsaWMgZW51bSBQYWludEZsYWcgeworKwkJTk9ORSwKKysJCU5PX0NVUlNPUlMs CisrCQlGT1JDRV9DVVJTT1JTCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BBTl8iLCB0eXBlX2lkID0gImNs dXR0ZXJfcGFuX2F4aXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJcHVibGljIGVudW0gUGFuQXhpcyB7CitAQCAtODY2MSw2ICs3OTE0LDExIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVJFTF9MSU5FX1RPLAorIAkJUkVMX0NVUlZFX1RPCisgCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9 ICJDTFVUVEVSX0RFQlVHX05PUF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19kZWJ1Z19mbGFn X2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUGlja0RlYnVnRmxhZyB7 CisrCQlQSUNLSU5HCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BJQ0tfIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3BpY2tfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CXB1YmxpYyBlbnVtIFBpY2tNb2RlIHsKK0BAIC04NjY4LDEzICs3OTI2LDQ2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVJFQUNUSVZFLAorIAkJQUxMCisgCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlf RFdFTExfQ0xJQ0tfVFlQRV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2R3ZWxs X2NsaWNrX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gUG9pbnRlckExMXlEd2Vs bENsaWNrVHlwZSB7CisrCQlOT05FLAorKwkJUFJJTUFSWSwKKysJCVNFQ09OREFSWSwKKysJCU1J RERMRSwKKysJCURPVUJMRSwKKysJCURSQUcKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VMTF9E SVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9kd2VsbF9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gUG9pbnRlckExMXlEd2VsbERpcmVjdGlv biB7CisrCQlOT05FLAorKwkJTEVGVCwKKysJCVJJR0hULAorKwkJVVAsCisrCQlET1dOCisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZp eCA9ICJDTFVUVEVSX0ExMVlfRFdFTExfTU9ERV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRl cl9hMTF5X2R3ZWxsX21vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gUG9pbnRlckEx MXlEd2VsbE1vZGUgeworKwkJV0lORE9XLAorKwkJR0VTVFVSRQorKwl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9B MTFZXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZmxhZ3NfZ2V0X3R5cGUgKCki KV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUZsYWdzIHsKKysJCVNFQ09O REFSWV9DTElDS19FTkFCTEVELAorKwkJRFdFTExfRU5BQkxFRAorKwl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9B MTFZX1RJTUVPVVRfVFlQRV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X3RpbWVv dXRfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeVRpbWVvdXRU eXBlIHsKKysJCVNFQ09OREFSWV9DTElDSywKKysJCURXRUxMLAorKwkJR0VTVFVSRQorKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXgg PSAiQ0xVVFRFUl9SRVBBSU5UX0ZMQUdTXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZXBhaW50X2Zs YWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJcHVibGljIGVudW0gUmVwYWludEZsYWdzIHsKKyAJCVBSRV9QQUlOVCwKKy0JCVBPU1Rf UEFJTlQsCistCQlRVUVVRV9SRURSQVdfT05fQURECisrCQlQT1NUX1BBSU5UCisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX1JFUVVFU1RfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlcXVlc3RfbW9kZV9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtODc1NSw4ICs4MDQ2LDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKyAJcHVibGljIGVudW0gU3RhZ2VTdGF0ZSB7CistCQlGVUxMU0NSRUVOLAorLQkJT0ZG U0NSRUVOLAorIAkJQUNUSVZBVEVECisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0NPTE9SXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9zdGF0aWNfY29sb3JfZ2V0X3R5cGUgKCkiKV0KK0BAIC04ODIzLDEzICs4MTEy LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJTEVGVCwKKyAJCVJJR0hUCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX1RBQkxFX0FMSUdOTUVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfYWxpZ25t ZW50X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjIyIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFRhYmxl QWxpZ25tZW50IHsKKy0JCVNUQVJULAorLQkJQ0VOVEVSLAorLQkJRU5ECistCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX1RFWFRfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0X2RpcmVjdGlvbl9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBlbnVt IFRleHREaXJlY3Rpb24geworQEAgLTg5MDUsMjggKzgxODcsMTYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJVkFMVUU7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX1RFWFRVUkVfRVJST1JfIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKy0JcHVibGljIGVycm9yZG9tYWluIFRleHR1cmVFcnJvciB7CistCQlPVVRfT0ZfTUVN T1JZLAorLQkJTk9fWVVWLAorLQkJQkFEX0ZPUk1BVDsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5R dWFyayBxdWFyayAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4yNCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgQ2x1dHRlci5BY3RvciBBY3RvckNyZWF0ZUNoaWxk RnVuYyAoR0xpYi5PYmplY3QgaXRlbSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC4yIild CistCXB1YmxpYyBkZWxlZ2F0ZSBkb3VibGUgQWxwaGFGdW5jIChDbHV0dGVyLkFscGhhIGFscGhh KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5z dGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9p ZCBCZWhhdmlvdXJGb3JlYWNoRnVuYyAoQ2x1dHRlci5CZWhhdmlvdXIgYmVoYXZpb3VyLCBDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBCaW5kaW5nQWN0aW9uRnVuYyAoR0xpYi5PYmpl Y3QgZ29iamVjdCwgc3RyaW5nIGFjdGlvbl9uYW1lLCB1aW50IGtleV92YWwsIENsdXR0ZXIuTW9k aWZpZXJUeXBlIG1vZGlmaWVycyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIENhbGxiYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKysJcHVi bGljIGRlbGVnYXRlIHZvaWQgRW1pdElucHV0RGV2aWNlRXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZl bnQsIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgRXZlbnRGaWx0ZXJG dW5jIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKK0BAIC04OTU3LDkgKzgyMjcsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIGNvbnN0 IGludCBQUklPUklUWV9SRURSQVc7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFjdG9yX2JveF9hbGxvYyAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMg dm9pZCBiYXNlX2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTg5NzEsMzcg KzgyMzgsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgY2hlY2tfd2luZG93aW5nX2JhY2tlbmQgKHN0cmlu ZyBiYWNrZW5kX3R5cGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFy X2dseXBoX2NhY2hlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNvbG9yX2Zyb21faGxzIChvdXQgQ2x1 dHRlci5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVy YXRpb24pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNvbG9yX2Zyb21fcGl4ZWwgKG91dCBDbHV0dGVyLkNv bG9yIGNvbG9yLCB1aW50MzIgcGl4ZWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIGJvb2wgY29sb3JfZnJvbV9zdHJpbmcgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9y LCBzdHJpbmcgc3RyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuQ29sb3I/IGNvbG9yX2dldF9zdGF0aWMgKENsdXR0ZXIuU3RhdGljQ29s b3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lk IGRpc2FibGVfYWNjZXNzaWJpbGl0eSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVi bGljIHN0YXRpYyB2b2lkIGRvX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdWludCBldmVudF9hZGRfZmlsdGVyIChD bHV0dGVyLlN0YWdlPyBzdGFnZSwgW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMi4yLCBk ZXN0cm95X25vdGlmeV9wb3MgPSAyLjEpXSBvd25lZCBDbHV0dGVyLkV2ZW50RmlsdGVyRnVuYyBm dW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDbHV0dGVyLkV2 ZW50IGV2ZW50X2dldCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuRXZlbnQgZXZlbnRfcGVlayAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE4IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBldmVudF9yZW1vdmVfZmlsdGVyICh1aW50IGlk KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGV2ZW50c19w ZW5kaW5nICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KK0BAIC05MDE0LDkgKzgyNTYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50MzIgZ2V0X2N1cnJlbnRf ZXZlbnRfdGltZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGVidWdfZW5hYmxlZCAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIu QmFja2VuZCBnZXRfZGVmYXVsdF9iYWNrZW5kICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDI2LDE4ICs4MjY1LDkgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBzdGF0 aWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIGdldF9kZWZhdWx0X3RleHRfZGlyZWN0aW9uICgpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDbHV0dGVyLkZvbnRGbGFncyBnZXRfZm9udF9m bGFncyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVk IFBhbmdvLkZvbnRNYXAgZ2V0X2ZvbnRfbWFwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfa2V5Ym9hcmRfZ3JhYiAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBz aW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9tb3Rpb25fZXZlbnRzX2Vu YWJsZWQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5P cHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDQ1LDI2ICs4Mjc1LDggQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlv bl9ncm91cF93aXRob3V0X2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9wb2ludGVyX2dyYWIgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Nj cmlwdF9pZCAoR0xpYi5PYmplY3QgZ29iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3Rh dGljIGJvb2wgZ2V0X3Nob3dfZnBzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB1bG9uZyBnZXRfdGltZXN0 YW1wICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3Jh Yl9rZXlib2FyZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXIgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfcG9pbnRlcl9mb3JfZGV2 aWNlIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgaWRfKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5J bml0RXJyb3IgaW5pdCAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAiYXJnYyIsIGFycmF5 X2xlbmd0aF9wb3MgPSAwLjUpXSByZWYgdW5vd25lZCBzdHJpbmdbXT8gYXJndik7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMC4yIildCitAQCAtOTA4MCw0MSArODI5Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfY3VzdG9tX2JhY2tlbmRfZnVuYyAodm9pZCogZnVuYyk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlZmF1bHRfZnJhbWVfcmF0 ZSAodWludCBmcmFtZXNfcGVyX3NlYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X2ZvbnRfZmxhZ3MgKENsdXR0ZXIuRm9udEZsYWdzIGZsYWdzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKGJvb2wgZW5h YmxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0 X2FkZF9kYXRhX2Z1bGwgKHN0cmluZyB0ZXN0X3BhdGgsIG93bmVkIEdMaWIuVGVzdERhdGFGdW5j IHRlc3RfZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJv b2wgdGVzdF9jaGVja19hY3Rvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRl ci5Qb2ludCBwb2ludCwgQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuQWN0b3I/IHJl c3VsdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVz dF9jaGVja19jb2xvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2lu dCBwb2ludCwgQ2x1dHRlci5Db2xvciBjb2xvciwgb3V0IENsdXR0ZXIuQ29sb3IgcmVzdWx0KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIHRlc3RfZ2V0X3N0YWdlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoaW50 IGFyZ2MsIHN0cmluZyBhcmd2KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBz dGF0aWMgaW50IHRlc3RfcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXIgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXJfZm9yX2RldmljZSAoaW50IGlkXyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQgdW5pY29kZV90b19r ZXlzeW0gKHVpbnQzMiB3Yyk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTUtY3Vz dG9tLnZhbGEgdmFwaS9tdXR0ZXItY29nbC02LWN1c3RvbS52YWxhCitzaW1pbGFyaXR5IGluZGV4 IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNS1jdXN0b20udmFsYQorcmVuYW1l IHRvIHZhcGkvbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFsYQorZGlmZiAtLWdpdCB2YXBpL211dHRl ci1jb2dsLTQuZGVwcyB2YXBpL211dHRlci1jb2dsLTYuZGVwcworc2ltaWxhcml0eSBpbmRleCAx MDAlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTQuZGVwcworcmVuYW1lIHRvIHZhcGkv bXV0dGVyLWNvZ2wtNi5kZXBzCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNS52YXBpIHZh cGkvbXV0dGVyLWNvZ2wtNi52YXBpCitzaW1pbGFyaXR5IGluZGV4IDY4JQorcmVuYW1lIGZyb20g dmFwaS9tdXR0ZXItY29nbC01LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTYudmFw aQoraW5kZXggYTg5NjEyMjQuLjE5NWUzYjE3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNvZ2wt NS52YXBpCisrKysgdmFwaS9tdXR0ZXItY29nbC02LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8q IG11dHRlci1jb2dsLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4g Ki8KKysvKiBtdXR0ZXItY29nbC02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBt b2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0g IkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIild CisrW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJf dmVyc2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisgbmFtZXNwYWNl IENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFt ZSA9ICJDb2dsSGFuZGxlIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0K KyAJW0NvbXBhY3RdCitAQCAtMjgsOSArMjgsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVi bGljIGJvb2wgc2V0X2RhdGEgKHNpemVfdCBvZmZzZXQsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX3R5 cGUgPSAic2l6ZV90IildIHVpbnQ4W10gZGF0YSk7CisgCQlwdWJsaWMgdm9pZCB1bm1hcCAoKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBFdWxlciB7CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9j b250ZXh0X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQ29udGV4dCA6IENvZ2wuT2Jq ZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXBy b3RlY3RlZCBDb250ZXh0ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlv biA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVfY2xvc3VyZV9nZXRfZ3R5 cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtNjUsNjIgKzY2LDE3IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlw dWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNo X2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9y IGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lv biAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJv b2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdl dF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42Iild CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRl cmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKy0J CXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxDb2dsLk1hdGVyaWFsTGF5ZXI+IGdldF9sYXllcnMg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGludCBnZXRfbl9sYXllcnMgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9wb2ludF9zaXplICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVj dWxhcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUg Z2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDb2dsLkhhbmRsZSBAcmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLk1hdGVy aWFsQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVu dCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2Rp ZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBi b29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2ds LkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVl LCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Nv bG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29s b3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNz aW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5kbGUgdGV4dHVyZSk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBs YXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CitAQCAt MTMzLDQxICs4OSwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIGJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxh eWVyX2luZGV4LCBib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4 LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0 ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBN b2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93 cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0 IHBvaW50X3NpemUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zaGlu aW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAoQ29nbC5IYW5k bGUgbWF0ZXJpYWwpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNz IE1hdGVyaWFsTGF5ZXIgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmlsdGVyIGdldF9t YWdfZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmlsdGVyIGdldF9taW5f ZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJl ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsTGF5ZXJUeXBlIGdldF90eXBlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dy YXBfbW9kZV9wICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9zICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV90ICgpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vYmpl Y3RfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBPYmplY3QgeworQEAg LTE3OCwxMyArMTA2LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY2xhc3MgT2Zmc2Ny ZWVuIDogQ29nbC5PYmplY3QsIENvZ2wuRnJhbWVidWZmZXIgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIE9mZnNjcmVlbiAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgT2Zmc2Ny ZWVuLnRvX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCB1bnJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90ZXh0dXJlIChD b2dsLlRleHR1cmUgdGV4dHVyZSk7CisgCX0KK0BAIC0xOTYsOSArMTIwLDYgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJcHVibGljIENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1cmUgYWRkX2RpcnR5X2Nh bGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVu RGlydHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVz dHJveSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5PbnNj cmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90 YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxiYWNrIGNhbGxiYWNrLCBD b2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFjayAoQ29nbC5Td2FwQnVm ZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9iYWNr ZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludCBnZXRfYnVmZmVyX2FnZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCitAQCAtMjEzLDggKzEzNCw2IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29nbC5GcmFt ZUNsb3N1cmUgY2xvc3VyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3Vy ZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3N3 YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChib29sIHJlc2l6YWJsZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAtMjQ0LDcgKzE2Myw4IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9p ZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxp bmUgOiBDb2dsLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisrCQlwdWJsaWMgUGlwZWxpbmUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAtMjU0LDE2ICsxNzQsMTAgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGZs b2F0IGdldF9hbHBoYV90ZXN0X3JlZmVyZW5jZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2Nv bG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlw ZWxpbmVDdWxsRmFjZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlm ZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRf ZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5kaW5nICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmls dGVyIGdldF9sYXllcl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworQEAgLTI3NCw4ICsx ODgsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5 ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wu UGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdy YXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0 X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworQEAgLTI4NiwxMCArMTk4LDYg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIGZsb2F0IGdldF9wb2ludF9zaXplICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3Vs YXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGludCBnZXRfdW5p Zm9ybV9sb2NhdGlvbiAoc3RyaW5nIHVuaWZvcm1fbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFt ICgpOworQEAgLTI5OCwxMCArMjA2LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24g KENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJp ZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3Ip OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2JsZW5k IChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5D b2xvciBjb25zdGFudF9jb2xvcik7CitAQCAtMzE0LDEwICsyMTgsNiBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY3Vs bF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgY3VsbF9mYWNlX21vZGUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2Ug KENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Zyb250X2ZhY2Vfd2luZGlu ZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwg c3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CitAQCAtMzM1LDggKzIzNSw2 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBl bGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlw ZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCwgQ29nbC5Q aXBlbGluZVdyYXBNb2RlIG1vZGUpOworQEAgLTM0NSwxMCArMjQzLDYgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Bv aW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29n bC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0IHZhbHVl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlm b3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVlKTsKK0BAIC0zODIsMTAgKzI3 Niw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmlmb3JtX21h dHJpeCAoaW50IHVuaWZvcm1fbm8sIGludCBzaXplLCBib29sIHRyYW5zcG9zZSwgW0NDb2RlIChh cnJheV9sZW5ndGhfcG9zID0gMi45KV0gZmxvYXRbXSB2YWx1ZSk7CisgCQlwdWJsaWMgdm9pZCB1 c2UgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgUXVhdGVy bmlvbiB7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3NoYWRlcl9yZWYiLCB1 bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3NoYWRlcl91bnJlZiIpXQorIAlbQ29tcGFjdF0KKyAJcHVi bGljIGNsYXNzIFNoYWRlciA6IENvZ2wuSGFuZGxlIHsKK0BAIC00NjUsMTIgKzM1NSwxMCBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgaW50IGdldF9hbHBoYV9iaXRzICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfYmx1ZV9iaXRzICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorKwkJcHVibGljIHVub3duZWQgQ29nbC5Db250 ZXh0IGdldF9jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2RlcHRoX3Rl eHR1cmVfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisgCQlwdWJs aWMgYm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KK0BAIC01MTYsNiArNDA0LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IHZvaWQgcHVzaF9tYXRyaXggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZvaWQgcHVzaF9yZWN0YW5nbGVfY2xpcCAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZs b2F0IHhfMiwgZmxvYXQgeV8yKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfcmVnaW9uX2NsaXAgKENh aXJvLlJlZ2lvbiByZWdpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIHB1c2hfc2Npc3Nvcl9jbGlwIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50 IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUyOSwxMyArNDE4 LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRl X2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVy bmlvbik7CisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVy KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzY2FsZSAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoYm9vbCBlbmFibGVk KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGVw dGhfd3JpdGVfZW5hYmxlZCAoYm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KK0BAIC02MzUsMTAgKzUyMCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfZmxvYXQgKGZsb2F0IGJs dWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNGYgKGZsb2F0 IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBncmVl biwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCitAQCAtNjYyLDcgKzU0Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworIAkJcHVibGljIHVsb25nIGluc3RhbmNlX2NvdW50 OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVf aWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisgCXB1 YmxpYyBzdHJ1Y3QgTWF0cml4IHsKKyAJCXB1YmxpYyBmbG9hdCB4eDsKKyAJCXB1YmxpYyBmbG9h dCB5eDsKK0BAIC02OTIsOCArNTczLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJv b2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKyAJCVtDQ29kZSAoY25h bWUgPSAiY29nbF9tYXRyaXhfaW5pdF9pZGVudGl0eSIpXQorIAkJcHVibGljIE1hdHJpeC5pZGVu dGl0eSAoKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxl cik7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9u IHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5F dWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBpbml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZsb2F0IHR6KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03MDIsMTkgKzU4MiwxNSBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlwdWJsaWMgdm9pZCBsb29rX2F0IChmbG9hdCBleWVfcG9zaXRpb25feCwgZmxv YXQgZXllX3Bvc2l0aW9uX3ksIGZsb2F0IGV5ZV9wb3NpdGlvbl96LCBmbG9hdCBvYmplY3RfeCwg ZmxvYXQgb2JqZWN0X3ksIGZsb2F0IG9iamVjdF96LCBmbG9hdCB3b3JsZF91cF94LCBmbG9hdCB3 b3JsZF91cF95LCBmbG9hdCB3b3JsZF91cF96KTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY29nbF9t YXRyaXhfbXVsdGlwbHkiKV0KKyAJCXB1YmxpYyBNYXRyaXgubXVsdGlwbHkgKENvZ2wuTWF0cml4 IGEsIENvZ2wuTWF0cml4IGIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0 LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0 IGZhcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgb3J0 aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZs b2F0IG5lYXIsIGZsb2F0IGZhcik7CisgCQlwdWJsaWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQg Zm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisgCQlwdWJs aWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9p biwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291dCwg aW50IG5fcG9pbnRzKTsKKyAJCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2ds LlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdy YXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzeCwgZmxv YXQgc3ksIGZsb2F0IHN6KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludCAocmVmIGZs b2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwgcmVmIGZsb2F0IHcpOworKwkJcHVibGlj IHN0YXRpYyB2b2lkIHRyYW5zZm9ybV9wb2ludCAocmVmIENvZ2wuTWF0cml4IG1hdHJpeCwgcmVm IGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwgcmVmIGZsb2F0IHcpOworIAkJcHVi bGljIHZvaWQgdHJhbnNmb3JtX3BvaW50cyAoaW50IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlk ZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291 dCwgaW50IG5fcG9pbnRzKTsKKyAJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTgxOCwz OCArNjk0LDMzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5PTkUsCisgCQlOT19HRVRfREFUQQor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0J CVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCU9GRlNDUkVFTiwKKy0J CU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCUZPVVJfQ0xJUF9QTEFORVMsCistCQlTVEVOQ0lM X0JVRkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdORURfSU5UX0lORElDRVMsCist CQlERVBUSF9SQU5HRSwKKy0JCVBPSU5UX1NQUklURSwKKy0JCU1BUF9CVUZGRVJfRk9SX1JFQUQs CistCQlNQVBfQlVGRkVSX0ZPUl9XUklURSwKKy0JCU9OU0NSRUVOX01VTFRJUExFLAorLQkJREVQ VEhfVEVYVFVSRQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfRkVBVFVSRV9JRF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIGVudW0gRmVhdHVyZUlEIHsKKysJCVtD Q29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTIildCisr CQlPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUywKKysJCVtDQ29kZSAoY25hbWUg PSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQiKV0KKysJCU9HTF9GRUFUVVJF X0lEX01BUF9CVUZGRVJfRk9SX1JFQUQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVS RV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZF Ul9GT1JfV1JJVEUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9TV0FQX0JV RkZFUlNfRVZFTlQiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVOVCwKKysJ CVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1BSRVNFTlRBVElPTl9USU1FIildCisr CQlPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSwKKysJCVtDQ29kZSAoY25hbWUgPSAi Q09HTF9GRUFUVVJFX0lEX0ZFTkNFIildCisrCQlPR0xfRkVBVFVSRV9JRF9GRU5DRSwKKysJCVtD Q29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkciKV0KKysJCU9HTF9GRUFU VVJFX0lEX1RFWFRVUkVfUkcsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9C VUZGRVJfQUdFIildCisrCQlPR0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdFLAorKwkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJOQUwiKV0KKysJ CU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMCisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZJTFRF Ul8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gRmlsdGVyUmV0dXJuIHsK KyAJCUNPTlRJTlVFLAorIAkJUkVNT1ZFCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZPR19NT0RFXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEZv Z01vZGUgeworLQkJTElORUFSLAorLQkJRVhQT05FTlRJQUwsCistCQlFWFBPTkVOVElBTF9TUVVB UkVECistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX0ZSQU1FX0VWRU5UXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgZW51bSBGcmFtZUV2ZW50IHsKK0BAIC04 NjIsNiArNzMzLDE0IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUZSQU1FQlVGRkVSX0VSUk9SX0FM TE9DQVRFOworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7CisgCX0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0dSQVBI SUNTX1JFU0VUX1NUQVRVU18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIGVudW0g R3JhcGhpY3NSZXNldFN0YXR1cyB7CisrCQlOT19FUlJPUiwKKysJCUdVSUxUWV9DT05URVhUX1JF U0VULAorKwkJSU5OT0NFTlRfQ09OVEVYVF9SRVNFVCwKKysJCVVOS05PV05fQ09OVEVYVF9SRVNF VCwKKysJCVBVUkdFRF9DT05URVhUX1JFU0VUCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0lORElDRVNfVFlQRV9VTlNJR05F RF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gSW5kaWNlc1R5cGUgewor IAkJQllURSwKK0BAIC04ODgsMTIgKzc2Nyw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5FQVJF U1RfTUlQTUFQX0xJTkVBUiwKKyAJCUxJTkVBUl9NSVBNQVBfTElORUFSCisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVS SUFMX0xBWUVSX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxMYXllclR5cGUgeworLQkJW0NDb2Rl IChjbmFtZSA9ICJDT0dMX01BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRSIpXQorLQkJTUFURVJJ QUxfTEFZRVJfVFlQRV9URVhUVVJFCistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX1dSQVBfTU9ERV8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMg ZW51bSBNYXRlcmlhbFdyYXBNb2RlIHsKK0BAIC05NzEsNiArODQ0LDggQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJREVQVEhfMTYsCisgCQlERVBUSF8zMiwKKyAJCURFUFRIXzI0X1NURU5DSUxfODsK KysJCXB1YmxpYyBpbnQgZ2V0X2J5dGVzX3Blcl9waXhlbCAoaW50IHBsYW5lKTsKKysJCXB1Ymxp YyBpbnQgZ2V0X25fcGxhbmVzICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmlu ZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CitAQCAtMTA2NCw5ICs5MzksOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgRGVidWdPYmplY3RG b3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUluZm8gaW5mbyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBib29sIE1hdGVyaWFsTGF5 ZXJDYWxsYmFjayAoQ29nbC5NYXRlcmlhbCBtYXRlcmlhbCwgaW50IGxheWVyX2luZGV4KTsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0g MS45KV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjAuMTAiKV0KKysJcHVibGljIGRlbGVnYXRlIHZv aWQgRmVhdHVyZUNhbGxiYWNrIChDb2dsLkZlYXR1cmVJRCBmZWF0dXJlKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3Jl ZW5EaXJ0eUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLk9uc2NyZWVuRGly dHlJbmZvIGluZm8pOworQEAgLTEwNzQsMTMgKzk0OSw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVl blJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBo ZWlnaHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0 YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tD YWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAy LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29s IFBpcGVsaW5lTGF5ZXJDYWxsYmFjayAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgaW50IGxheWVy X2luZGV4KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5z dGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgU3dhcEJ1ZmZlcnNOb3Rp ZnkgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVs ZWdhdGUgYm9vbCBUZXh0dXJlMkRFR0xJbWFnZUV4dGVybmFsQWxsb2MgKENvZ2wuVGV4dHVyZTJE IHRleF8yZCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsKK0BAIC0xMDkyLDYgKzk2 Myw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNvbnN0IGludCBCR1JfQklUOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0RF UFRIX0JJVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QSVhFTF9GT1JNQVRf TUFYX1BMQU5FUyIpXQorKwlwdWJsaWMgY29uc3QgaW50IFBJWEVMX0ZPUk1BVF9NQVhfUExBTkVT OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJD T0dMX1BSRU1VTFRfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJFTVVMVF9CSVQ7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfU1RF TkNJTF9CSVQiKV0KK0BAIC0xMDk5LDE5ICs5NzIsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfVEVY VFVSRV9NQVhfV0FTVEUiKV0KKyAJcHVibGljIGNvbnN0IGludCBURVhUVVJFX01BWF9XQVNURTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBibGl0 X2ZyYW1lYnVmZmVyIChDb2dsLkZyYW1lYnVmZmVyIHNyYywgQ29nbC5GcmFtZWJ1ZmZlciBkZXN0 LCBpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIGludCB3aWR0aCwg aW50IGhlaWdodCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBjaGVja19leHRlbnNp b24gKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVhciAoQ29nbC5D b2xvciBjb2xvciwgdWxvbmcgYnVmZmVycyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl9jaGVja19leHRl bnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGNsdXR0 ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJl KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC0xMTI5LDU3ICs5OTEsMzggQEAgbmFtZXNwYWNlIENv Z2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBk ZWJ1Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfZm9n ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgYm9v bCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVhdHVyZUZsYWdzIGZlYXR1cmVzKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGZsdXNoICgpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0 IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGZvcmVhY2hfZmVhdHVy ZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUNhbGxiYWNrIGNhbGxiYWNrKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1Ymxp YyBzdGF0aWMgYm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0IGludCBibHVl LCBvdXQgaW50IGFscGhhKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJcHVibGlj IHN0YXRpYyBpbnQ2NCBnZXRfY2xvY2tfdGltZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0 YXRpYyBib29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9kcmF3X2ZyYW1lYnVm ZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1cmVGbGFncyBnZXRfZmVh dHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOwor KwlwdWJsaWMgc3RhdGljIENvZ2wuR3JhcGhpY3NSZXNldFN0YXR1cyBnZXRfZ3JhcGhpY3NfcmVz ZXRfc3RhdHVzIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGlj IEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5DYWxsYmFj ayBnZXRfcHJvY19hZGRyZXNzIChzdHJpbmcgcyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9w cm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCogZ2V0X3Nv dXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBndHlwZV9tYXRy aXhfZ2V0X3R5cGUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wg aGFzX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBDb2dsLkZlYXR1cmVJRCBmZWF0dXJl KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisrCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19jb250ZXh0ICh2 b2lkKiBvYmplY3QpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGlz X2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC0xMTkz LDUzICsxMDM2LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdGV4dHVyZV8yZF9zbGljZWQgKHZvaWQqIG9i amVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdmVydGV4X2J1ZmZlcl9pbmRp Y2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgc3Rh dGljIGJvb2wgbWF0cml4X2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90 dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcGVy c3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6 X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb2x5Z29uIChD b2dsLlRleHR1cmVWZXJ0ZXggdmVydGljZXMsIHVpbnQgbl92ZXJ0aWNlcywgYm9vbCB1c2VfY29s b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHBvcF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcG9wX3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHJlY3RhbmdsZSAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQg eV8yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93 aXRoX211bHRpdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZs b2F0IHkyLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB0ZXhfY29vcmRz LCBpbnQgdGV4X2Nvb3Jkc19sZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcmVjdGFuZ2xlX3dpdGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwg ZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwgZmxvYXQgdHgyLCBmbG9h dCB0eTIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xl cyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9y ZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3Rhbmds ZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZs b2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRlIChmbG9hdCBh bmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2NhbGUgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxs aW5nX2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorQEAgLTEyNDcsNTMgKzEwNDYsMTEgQEAgbmFtZXNwYWNlIENvZ2wg eworIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoYm9vbCBzZXR0 aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9nIChDb2dsLkNvbG9yIGZvZ19jb2xvciwgQ29nbC5G b2dNb2RlIG1vZGUsIGZsb2F0IGRlbnNpdHksIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvciAoQ29nbC5Db2xv ciBjb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjRm IChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjR1YiAodWludDggcmVkLCB1 aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9zb3VyY2VfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3ZpZXdwb3J0IChpbnQgeCwgaW50IHksIGludCB3 aWR0aCwgaW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX2NvbXBpbGUgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHN0cmluZyBzaGFkZXJfZ2V0X2luZm9fbG9nIChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKyAJcHVibGljIHN0YXRpYyBDb2dsLlNoYWRlclR5cGUgc2hhZGVyX2dldF90eXBlIChD b2dsLkhhbmRsZSBoYW5kbGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHNoYWRlcl9pc19jb21waWxlZCAoQ29n bC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBzaGFkZXJfcmVm IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9zb3VyY2UgKENvZ2wu SGFuZGxlIHNoYWRlciwgc3RyaW5nIHNvdXJjZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3VucmVm IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1 cmUgdGV4dHVyZV9uZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0 dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCitAQCAtMTMwNiw1OSArMTA2 Myw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhl aWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm0gKENvZ2wuTWF0 cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2FkZCAoQ29nbC5IYW5kbGUgaGFu ZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUsIHVpbnQ4IG5fY29tcG9uZW50cywgQ29nbC5BdHRy aWJ1dGVUeXBlIHR5cGUsIGJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCogcG9p bnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxlIGhh bmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVy X2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5W ZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZl cnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRp Y2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQgbWF4 X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVy dGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9u YW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJf aW5kaWNlc19nZXRfZm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSW5k aWNlc1R5cGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRsZSBpbmRp Y2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX25ldyAodWlu dCBuX3ZlcnRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjIiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJf cmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3Vi bWl0IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJl ZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmll d3BvcnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVl bl9nZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQg KENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wuT25zY3Jl ZW4gb25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5P bnNjcmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUpOworIH0KK2RpZmYgLS1naXQgdmFwaS9tdXR0 ZXItY29nbC00LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNvZ2wtNy1jdXN0b20udmFsYQorc2lt aWxhcml0eSBpbmRleCA4MSUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC1jdXN0b20u dmFsYQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNy1jdXN0b20udmFsYQoraW5kZXggMjU1 MTg4NWEuLmM0ZDRiOTNhIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNvZ2wtNC1jdXN0b20udmFs YQorKysrIHZhcGkvbXV0dGVyLWNvZ2wtNy1jdXN0b20udmFsYQorQEAgLTEsMTAgKzEsNCBAQAor IG5hbWVzcGFjZSBDb2dsIHsKKy0JW0NvbXBhY3RdCistCVtDQ29kZSAoY25hbWUgPSAiQ29nbEhh bmRsZSIpXQorLQlwdWJsaWMgY2xhc3MgQml0bWFwOiBIYW5kbGUgeworLQkJcHVibGljIHN0YXRp YyBCaXRtYXAgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JfQorLQorIAlbQ29tcGFjdF0KKyAJW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIild CisgCXB1YmxpYyBjbGFzcyBCdWZmZXI6IEhhbmRsZSB7CitAQCAtNDIsNyArMzYsNyBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBpc192ZXJ0ZXhfYnVmZmVyICgpOworIAl9Cisg CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rp b24gPSAiY29nbF9wYXRoX2NvcHkiKV0gCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiY29nbF9wYXRoX2NvcHkiKV0KKyAJW0NvbXBh Y3RdCisgCXB1YmxpYyBjbGFzcyBQYXRoIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBAbmV3ICgp OworQEAgLTgyLDE4ICs3Niw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHNv dXJjZSAoc3RyaW5nIHNvdXJjZSk7CisgCX0KKyAKKy0JW0NvbXBhY3RdCistCVtDQ29kZSAoY25h bWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3RleHR1cmVfcmVmIiwgdW5y ZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3VucmVmIildCistCXB1YmxpYyBjbGFzcyBUZXh0 dXJlOiBIYW5kbGUgeworLQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdCAoKTsK Ky0JCXB1YmxpYyB1aW50IGdldF9yb3dzdHJpZGUgKCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9t X2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1wX2hhbmRsZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3Ms IENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZy b21fZGF0YSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdz LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3Jt YXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWNoYXJb XSBkYXRhKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQp IHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9zdWJfdGV4dHVyZSAo Q29nbC5UZXh0dXJlIGZ1bGxfdGV4dHVyZSwgaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJf d2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCXB1YmxpYyBUZXh0dXJlLndpdGhfc2l6ZSAodWlu dCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVs Rm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCX0KKy0KKyAJW0NvbXBhY3RdCisgCVtDQ29kZSAo Y25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZmZXJf cmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3VucmVmIildCisgCXB1 YmxpYyBjbGFzcyBWZXJ0ZXhCdWZmZXI6IEhhbmRsZSB7CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVy LWNvZ2wtNS5kZXBzIHZhcGkvbXV0dGVyLWNvZ2wtNy5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDEw MCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNS5kZXBzCityZW5hbWUgdG8gdmFwaS9t dXR0ZXItY29nbC03LmRlcHMKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC00LnZhcGkgdmFw aS9tdXR0ZXItY29nbC03LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNTklCityZW5hbWUgZnJvbSB2 YXBpL211dHRlci1jb2dsLTQudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNy52YXBp CitpbmRleCA1ZGU4ZjQ0Ny4uNjIwYzIzMTcgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC00 LnZhcGkKKysrKyB2YXBpL211dHRlci1jb2dsLTcudmFwaQorQEAgLTEsMTIgKzEsMTMgQEAKKy0v KiBtdXR0ZXItY29nbC00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnku ICovCisrLyogbXV0dGVyLWNvZ2wtNy52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3Qg bW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9 ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIp XQorK1tDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2ly X3ZlcnNpb24gPSAiNyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorIG5hbWVzcGFj ZSBDb2dsIHsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ29nbEhhbmRsZSIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIild CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQml0bWFwIDogQ29nbC5IYW5kbGUgeworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf Yml0bWFwX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQml0bWFwIDogQ29nbC5PYmpl Y3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJv dGVjdGVkIEJpdG1hcCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgp OworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ29n bEJpdG1hcCoiKV0KKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBCaXRtYXAuZnJvbV9maWxl IChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KK0BAIC0xNiwxMCArMTcsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfcm93c3RyaWRlICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wg Z2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIG91dCBpbnQgd2lkdGgsIG91dCBp bnQgaGVpZ2h0KTsKKysJCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUgKHN0 cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQkJcHVi bGljIHN0YXRpYyBDb2dsLkJpdG1hcCBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRo cm93cyBHTGliLkVycm9yOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKyAJW0NvbXBhY3RdCitAQCAtMjgsMTUg KzI4LDI4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIHNldF9kYXRhIChzaXpl X3Qgb2Zmc2V0LCBbQ0NvZGUgKGFycmF5X2xlbmd0aF90eXBlID0gInNpemVfdCIpXSB1aW50OFtd IGRhdGEpOworIAkJcHVibGljIHZvaWQgdW5tYXAgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgRXVsZXIgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfY29udGV4dF9nZXRfZ3R5cGUgKCkiKV0K KysJcHVibGljIGNsYXNzIENvbnRleHQgOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQ29udGV4dCAoKTsKKysJ CXB1YmxpYyBib29sIGlzX2hhcmR3YXJlX2FjY2VsZXJhdGVkICgpOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xf ZnJhbWVfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBjbGFzcyBGcmFtZUNsb3N1cmUgeworIAl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9m cmFtZV9pbmZvX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgRnJhbWVJbmZvIDogQ29n bC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor KwkJcHJvdGVjdGVkIEZyYW1lSW5mbyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CisrCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorKwkJcHVibGljIGludDY0IGdldF9wcmVzZW50YXRpb25fdGltZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3JlZnJl c2hfcmF0ZSAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9oYW5kbGVfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAi Y29nbF9oYW5kbGVfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBIYW5kbGUg eworQEAgLTY1LDY1ICs3OCwyMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE1hdGVyaWFsICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvcHkgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9sYXllciAoQ29nbC5NYXRlcmlh bExheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Np b24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2xheWVyX3Bv aW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS42IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21v ZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29n bC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdl dF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKy0JCXB1YmxpYyB1bm93bmVk IEdMaWIuTGlzdDxDb2dsLk1hdGVyaWFsTGF5ZXI+IGdldF9sYXllcnMgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGludCBnZXRfbl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIGZsb2F0IGdldF9wb2ludF9zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3Jh bSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhh bmRsZSBAcmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVt b3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLk1hdGVyaWFsQWxwaGFGdW5jIGFs cGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29s b3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2Js ZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBi b29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2ds LkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVl LCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Nv bG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29s b3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNz aW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5kbGUgdGV4dHVyZSk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAo aW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsK KysJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmlu ZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9sYXllcl9jb21iaW5lX2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgs IENvZ2wuQ29sb3IgY29uc3RhbnQpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KK0BAIC0xMzEsNDMgKzk5LDE1IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9p bmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1v ZGUpOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxl ZCAoaW50IGxheWVyX2luZGV4LCBib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50 X3NpemUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zaGluaW5lc3Mg KGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAoQ29nbC5IYW5kbGUgbWF0 ZXJpYWwpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIE1hdGVy aWFsTGF5ZXIgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmlsdGVyIGdldF9tYWdfZmls dGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmlsdGVyIGdldF9taW5fZmlsdGVy ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsTGF5ZXJUeXBlIGdldF90eXBlICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9k ZV9wICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1v ZGUgZ2V0X3dyYXBfbW9kZV9zICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV90ICgpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vYmplY3RfZ2V0 X2d0eXBlICgpIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBPYmplY3QgeworQEAgLTE3OCwx MyArMTE4LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY2xhc3MgT2Zmc2NyZWVuIDog Q29nbC5PYmplY3QsIENvZ2wuRnJhbWVidWZmZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIE9mZnNjcmVlbiAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgT2Zmc2NyZWVuLnRv X3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCB1bnJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90ZXh0dXJlIChDb2dsLlRl eHR1cmUgdGV4dHVyZSk7CisgCX0KK0BAIC0xOTQsMTcgKzEzMCwxNiBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlwcm90ZWN0ZWQgT25zY3JlZW4gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NiIpXQorIAkJcHVibGljIENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1cmUgYWRkX2RpcnR5X2NhbGxi YWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuRGly dHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJv eSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVibGljIENvZ2wuRnJhbWVD bG9zdXJlIGFkZF9mcmFtZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0g MS41KV0gQ29nbC5GcmFtZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNh bGxiYWNrPyBkZXN0cm95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBhZGRfcmVzaXplX2NhbGxiYWNrIChbQ0NvZGUg KGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sg Y2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBhZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNrIChD b2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBj bHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRFUiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgaW50IGdldF9idWZmZXJf YWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQ2NCBn ZXRfZnJhbWVfY291bnRlciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9yZXNp emFibGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBo aWRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KK0BAIC0yMTMsMTggKzE0OCwx NiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJh Y2sgKENvZ2wuRnJhbWVDbG9zdXJlIGNsb3N1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVl blJlc2l6ZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJlbW92ZV9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoQ29nbC5Cb29s IHJlc2l6YWJsZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChib29sIHJlc2l6YWJs ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzaG93ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVm ZmVycyAoKTsKKysJCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVycyAoQ29nbC5GcmFtZUluZm8gZnJh bWVfaW5mbyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQg c3dhcF9idWZmZXJzX3dpdGhfZGFtYWdlIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xl cyk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5n bGVzLCBpbnQgbl9yZWN0YW5nbGVzLCBDb2dsLkZyYW1lSW5mbyBpbmZvKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3Rh bmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworKwkJcHVibGljIHZvaWQgc3dhcF9yZWdpb24gKGlu dCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzLCBDb2dsLkZyYW1lSW5mbyBpbmZvKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJjb2dsX29uc2NyZWVuX2RpcnR5X2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCisgCVtD b21wYWN0XQorQEAgLTI0NCw3ICsxNzcsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9waXBlbGlu ZV9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5lIDogQ29nbC5PYmplY3Qg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFBpcGVsaW5lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorKwkJcHVibGlj IFBpcGVsaW5lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorQEAgLTI1NCw0NCArMTg4LDMwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVz dF9yZWZlcmVuY2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yTWFzayBnZXRfY29sb3Jf bWFzayAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBp cGVsaW5lQ3VsbEZhY2VNb2RlIGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRp ZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyBDb2dsLldpbmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZp bHRlciBnZXRfbGF5ZXJfbWFnX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5 ZXJfbWluX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNf ZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKysJCXB1YmxpYyBib29sIGdldF9sYXllcl9wb2lu dF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9sYXll cl90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3Ag KGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJs aWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVy X2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGludCBnZXRfbl9sYXllcnMg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfcGVyX3ZlcnRl eF9wb2ludF9zaXplICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IGZsb2F0IGdldF9wb2ludF9zaXplICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGludCBnZXRfdW5pZm9y bV9sb2NhdGlvbiAoc3RyaW5nIHVuaWZvcm1fbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgp OworQEAgLTMwMCwxMSArMjIwLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENv Z2wuUGlwZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50 IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxl bmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJv b2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25z dGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCitAQCAtMzEzLDQ2ICsyMjksMzUgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZs b2F0IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDgg YWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2dsLlBp cGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2Up OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNz aW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBmcm9u dF93aW5kaW5nKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0 cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmlu ZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJv cjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXll cl9jb21iaW5lX2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXll cl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWluX2ZpbHRl ciwgQ29nbC5QaXBlbGluZUZpbHRlciBtYWdfZmlsdGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF4X21p cG1hcF9sZXZlbCAoaW50IGxheWVyLCBpbnQgbWF4X2xldmVsKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbnVsbF90ZXh0dXJlIChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuVGV4dHVyZVR5cGUgdGV4dHVyZV90eXBlKTsKKysJCXB1YmxpYyB2 b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9wb2ludF9z cHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVuYWJsZSkg dGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRl X2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwgQ29n bC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENv Z2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBD b2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCwg Q29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplIChDb2dsLkJv b2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9wZXJfdmVy dGV4X3BvaW50X3NpemUgKGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9h dCBwb2ludF9zaXplKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3Vs YXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Vu aWZvcm1fMWYgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBmbG9hdCB2YWx1ZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xaSAoaW50IHVu aWZvcm1fbG9jYXRpb24sIGludCB2YWx1ZSk7CitAQCAtMzYxLDcgKzI2Niw3IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF91bmlmb3JtX2ludCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBuX2NvbXBvbmVudHMsIGlu dCBjb3VudCwgaW50IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF91bmlmb3JtX21hdHJpeCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBk aW1lbnNpb25zLCBpbnQgY291bnQsIENvZ2wuQm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVlKTsK KysJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX21hdHJpeCAoaW50IHVuaWZvcm1fbG9jYXRpb24s IGludCBkaW1lbnNpb25zLCBpbnQgY291bnQsIGJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9w cm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKyAJfQorQEAgLTM4OCw3ICsyOTMsNyBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorLQlwdWJsaWMgY2xh c3MgUXVhdGVybmlvbiB7CisrCXB1YmxpYyBjbGFzcyBTY2Fub3V0IHsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwg cmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xf c2hhZGVyX3VucmVmIildCisgCVtDb21wYWN0XQorQEAgLTQwMSw0OCArMzA2LDIzIEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIGlzX2NvbXBpbGVkICgpOworIAkJcHVibGljIHZv aWQgc291cmNlIChzdHJpbmcgc291cmNlKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0g ImNvZ2xfdGV4dHVyZV9yZWYiLCB0eXBlX2lkID0gImNvZ2xfdGV4dHVyZV9nZXRfZ3R5cGUgKCki LCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3RleHR1cmVfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCist CXB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ29nbC5IYW5kbGUgeworLQkJcHVibGljIENvZ2wuQm9v bCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMy IGVycm9yX3F1YXJrICgpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9iaXRtYXAgKENvZ2wuQml0 bWFwIGJtcF9oYW5kbGUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0 IGludGVybmFsX2Zvcm1hdCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2RhdGEgKHVpbnQgd2lk dGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCB1aW50IHJvd3N0cmlk ZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVjaGFyW10gZGF0YSk7CistCQlwdWJs aWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3Mg ZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fc3ViX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBmdWxs X3RleHR1cmUsIGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hl aWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuVGV4 dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9kYXRh IChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOwor LQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdCAoKTsKKy0JCXB1YmxpYyBDb2ds LkJvb2wgZ2V0X2dsX3RleHR1cmUgKG91dCB1aW50IG91dF9nbF9oYW5kbGUsIG91dCB1aW50IG91 dF9nbF90YXJnZXQpOworLQkJcHVibGljIHVpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X21heF93YXN0ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlw dWJsaWMgQ29nbC5Cb29sIGdldF9wcmVtdWx0aXBsaWVkICgpOworLQkJcHVibGljIHVpbnQgZ2V0 X3Jvd3N0cmlkZSAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBD b2dsLkJvb2wgaXNfc2xpY2VkICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgi LCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9t X2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwg aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRo cm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29n bC5UZXh0dXJlIG5ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3Rhcmdl dCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rf d2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX3N1Yl90ZXh0dXJlIChpbnQgc3ViX3gsIGludCBz dWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld193aXRoX3NpemUgKHVpbnQgd2lkdGgs IHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb21wb25lbnRzIChDb2dsLlRleHR1cmVDb21wb25lbnRzIGNvbXBvbmVudHMp OworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQs IGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ByZW11 bHRpcGxpZWQgKENvZ2wuQm9vbCBwcmVtdWx0aXBsaWVkKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wg c2V0X3JlZ2lvbiAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1 aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb25f ZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwg dWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKy0J CXB1YmxpYyBUZXh0dXJlLndpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wu VGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGxvd2VyX2Nhc2VfY3N1 ZmZpeCA9ICJ0ZXh0dXJlXzJkIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfMmRfZ2V0X2d0eXBl ICgpIildCisrCXB1YmxpYyBjbGFzcyBUZXh0dXJlMkQgOiBDb2dsLk9iamVjdCwgQ29nbC5UZXh0 dXJlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXBy b3RlY3RlZCBUZXh0dXJlMkQgKCk7CisrCQlwdWJsaWMgdm9pZCBlZ2xfaW1hZ2VfZXh0ZXJuYWxf YWxsb2NfZmluaXNoICh2b2lkKiB1c2VyX2RhdGEsIEdMaWIuRGVzdHJveU5vdGlmeSBkZXN0cm95 KTsKKysJCXB1YmxpYyB2b2lkIGVnbF9pbWFnZV9leHRlcm5hbF9iaW5kICgpOworKwkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorKwkJcHVibGljIFRleHR1cmUyRC5mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0 bWFwKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBs b3dlcl9jYXNlX2NzdWZmaXggPSAidGV4dHVyZV8yZF9zbGljZWQiLCB0eXBlX2lkID0gImNvZ2xf dGV4dHVyZV8yZF9zbGljZWRfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBUZXh0dXJl MkRTbGljZWQgOiBDb2dsLk9iamVjdCwgQ29nbC5UZXh0dXJlIHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBUZXh0dXJlMkRTbGljZWQg KCk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNiIpXQorKwkJcHVibGljIFRleHR1cmUyRFNsaWNlZC5mcm9tX2Jp dG1hcCAoQ29nbC5CaXRtYXAgYm1wLCBpbnQgbWF4X3dhc3RlKTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVm X2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJj b2dsX3ZlcnRleF9idWZmZXJfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCitAQCAtNDY4LDcgKzM0OCw3 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lYnVmZmVyX2dldF9ndHlwZSAoKSIpXQorIAlw dWJsaWMgaW50ZXJmYWNlIEZyYW1lYnVmZmVyIDogQ29nbC5PYmplY3QgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9y OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgY2xlYXIgKHVs b25nIGJ1ZmZlcnMsIENvZ2wuQ29sb3IgY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorQEAgLTQ4OCw2ICszNjgsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgc3Rh dGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBmaW5pc2ggKCk7CisrCQlwdWJsaWMgdm9pZCBmbHVzaCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBmcnVzdHVtIChmbG9h dCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVh ciwgZmxvYXQgel9mYXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTQ5NSwy MiArMzc2LDE4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2JsdWVfYml0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yTWFzayBnZXRfY29sb3JfbWFzayAoKTsKKysJ CXB1YmxpYyB1bm93bmVkIENvZ2wuQ29udGV4dCBnZXRfY29udGV4dCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RlcHRoX2JpdHMgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJl IGdldF9kZXB0aF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kZXB0aF93cml0 ZV9lbmFibGVkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9k aXRoZXJfZW5hYmxlZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kaXRoZXJfZW5hYmxlZCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2dyZWVuX2Jp dHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9o ZWlnaHQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pc19zdGVyZW8gKCk7CisrCQlwdWJs aWMgYm9vbCBnZXRfaXNfc3RlcmVvICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTQ3LDEyICs0MjQsMTMgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9yZWN0YW5nbGVfY2xpcCAoZmxvYXQgeF8x LCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hf cmVnaW9uX2NsaXAgKENhaXJvLlJlZ2lvbiByZWdpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfc2Npc3Nvcl9jbGlwIChpbnQgeCwgaW50IHks IGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgs IGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworKwkJ cHVibGljIGJvb2wgcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludDggcGl4ZWxzKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJlYWRfcGl4ZWxzX2ludG9f Yml0bWFwIChpbnQgeCwgaW50IHksIENvZ2wuUmVhZFBpeGVsc0ZsYWdzIHNvdXJjZSwgQ29nbC5C aXRtYXAgYml0bWFwKTsKKysJCXB1YmxpYyBib29sIHJlYWRfcGl4ZWxzX2ludG9fYml0bWFwIChp bnQgeCwgaW50IHksIENvZ2wuUmVhZFBpeGVsc0ZsYWdzIHNvdXJjZSwgQ29nbC5CaXRtYXAgYml0 bWFwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHJlc29s dmVfc2FtcGxlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC01NjAsMTkg KzQzOCwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBy b3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBx dWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIg ZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNj YWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcl9tYXNrIChDb2dsLkNvbG9yTWFzayBjb2xv cl9tYXNrKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkIChDb2dsLkJvb2wgZW5hYmxlZCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJs ZWQgKENvZ2wuQm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKysJCXB1YmxpYyB2b2lkIHNldF9k ZXB0aF93cml0ZV9lbmFibGVkIChib29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpdGhlcl9lbmFibGVkIChD b2dsLkJvb2wgZGl0aGVyX2VuYWJsZWQpOworKwkJcHVibGljIHZvaWQgc2V0X2RpdGhlcl9lbmFi bGVkIChib29sIGRpdGhlcl9lbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTg4LDYgKzQ2MCwzOSBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfdGV4 dHVyZV9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGludGVyZmFjZSBUZXh0dXJlIDogQ29nbC5P YmplY3QgeworKwkJcHVibGljIGJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7Cisr CQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE4IildCisrCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBnZXRfY29tcG9u ZW50cyAoKTsKKysJCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0 LCB1aW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10/ IGRhdGEpOworKwkJcHVibGljIGJvb2wgZ2V0X2dsX3RleHR1cmUgKG91dCB1aW50IG91dF9nbF9o YW5kbGUsIG91dCB1aW50IG91dF9nbF90YXJnZXQpOworKwkJcHVibGljIHVpbnQgZ2V0X2hlaWdo dCAoKTsKKysJCXB1YmxpYyBpbnQgZ2V0X21heF93YXN0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE4IildCisrCQlwdWJsaWMgYm9vbCBnZXRfcHJlbXVsdGlwbGllZCAoKTsKKysJCXB1 YmxpYyB1aW50IGdldF93aWR0aCAoKTsKKysJCXB1YmxpYyBib29sIGlzX3NsaWNlZCAoKTsKKysJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwg c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9i aXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wu UGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisrCQlwdWJs aWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWln aHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29n bC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKysJ CXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFt ZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgQ29n bC5UZXh0dXJlIG5ld19mcm9tX3N1Yl90ZXh0dXJlIChpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50 IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKysJCXB1Ymxp YyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVp Z2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9m b3JtYXQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyB2b2lkIHNl dF9jb21wb25lbnRzIChDb2dsLlRleHR1cmVDb21wb25lbnRzIGNvbXBvbmVudHMpOworKwkJcHVi bGljIGJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93c3RyaWRl LCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBpbnQgbGV2ZWwp IHRocm93cyBHTGliLkVycm9yOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1 YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChib29sIHByZW11bHRpcGxpZWQpOworKwkJcHVi bGljIGJvb2wgc2V0X3JlZ2lvbiAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50 IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCisrCQlwdWJsaWMgYm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQgc3Jj X3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50 IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtTaW1wbGVUeXBlXQorIAlwdWJsaWMgc3Ry dWN0IEFuZ2xlIDogaW50MzIgeworQEAgLTYzNSwxMCArNTQwLDYgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfYnl0ZSAodWludDggYmx1ZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9mbG9hdCAoZmxvYXQg Ymx1ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80ZiAoZmxv YXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNHViICh1aW50OCByZWQsIHVpbnQ4IGdy ZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW4gKGZsb2F0IGdyZWVuKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KK0BAIC02NjIsNyArNTYzLDcgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CisgCQlwdWJsaWMgdWxvbmcgaW5zdGFuY2VfY291 bnQ7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlw ZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5j dGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJ cHVibGljIHN0cnVjdCBNYXRyaXggeworIAkJcHVibGljIGZsb2F0IHh4OworIAkJcHVibGljIGZs b2F0IHl4OworQEAgLTY4OSwzMiArNTkwLDI3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1Ymxp YyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZs b2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisgCQlwdWJsaWMgdW5vd25lZCBm bG9hdFtdIGdldF9hcnJheSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKysJ CXB1YmxpYyBib29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CisgCQlb Q0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X2luaXRfaWRlbnRpdHkiKV0KKyAJCXB1YmxpYyBN YXRyaXguaWRlbnRpdHkgKCk7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wu RXVsZXIgZXVsZXIpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wu UXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAo R3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIHZvaWQgaW5pdF90cmFuc2xhdGlvbiAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0 eik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGlz X2lkZW50aXR5ICgpOworKwkJcHVibGljIGJvb2wgaXNfaWRlbnRpdHkgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBsb29rX2F0IChmbG9hdCBleWVfcG9z aXRpb25feCwgZmxvYXQgZXllX3Bvc2l0aW9uX3ksIGZsb2F0IGV5ZV9wb3NpdGlvbl96LCBmbG9h dCBvYmplY3RfeCwgZmxvYXQgb2JqZWN0X3ksIGZsb2F0IG9iamVjdF96LCBmbG9hdCB3b3JsZF91 cF94LCBmbG9hdCB3b3JsZF91cF95LCBmbG9hdCB3b3JsZF91cF96KTsKKyAJCVtDQ29kZSAoY25h bWUgPSAiY29nbF9tYXRyaXhfbXVsdGlwbHkiKV0KKyAJCXB1YmxpYyBNYXRyaXgubXVsdGlwbHkg KENvZ2wuTWF0cml4IGEsIENvZ2wuTWF0cml4IGIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhv IChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0 IG5lYXIsIGZsb2F0IGZhcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgb3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBm bG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CisgCQlwdWJsaWMgdm9pZCBwZXJzcGVj dGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zh cik7CisgCQlwdWJsaWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5fY29tcG9uZW50cywgc2l6 ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9pZCog cG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKyAJCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQg YW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0 ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCByb3Rh dGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChm bG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN6KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9w b2ludCAocmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwgcmVmIGZsb2F0IHcp OworKwkJcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybV9wb2ludCAocmVmIENvZ2wuTWF0cml4 IG1hdHJpeCwgcmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwgcmVmIGZsb2F0 IHcpOworIAkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50cyAoaW50IG5fY29tcG9uZW50cywg c2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9p ZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKyAJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorQEAgLTgwMSwxNiArNjk3LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJV0lORE9XX0JVRkZF UiwKKyAJCU9GRlNDUkVFTl9CVUZGRVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQ09MT1JfTUFTS18iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBDb2xvck1hc2sgeworLQkJTk9O RSwKKy0JCVJFRCwKKy0JCUdSRUVOLAorLQkJQkxVRSwKKy0JCUFMUEhBLAorLQkJQUxMCistCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX0RFUFRIX1RFU1RfRlVOQ1RJT05fIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1Ymxp YyBlbnVtIERlcHRoVGVzdEZ1bmN0aW9uIHsKKyAJCU5FVkVSLAorQEAgLTgyMiw0NiArNzA4LDQx IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUdFUVVBTCwKKyAJCUFMV0FZUworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GRUFU VVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRUdMX0lNQUdFX0ZMQUdfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor LQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9SRUNUQU5HTEUsCistCQlU RVhUVVJFX05QT1QsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCist CQlTSEFERVJTX0dMU0wsCistCQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JFRU5fTVVMVElTQU1QTEUs CistCQlPRkZTQ1JFRU5fQkxJVCwKKy0JCUZPVVJfQ0xJUF9QTEFORVMsCistCQlTVEVOQ0lMX0JV RkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdORURfSU5UX0lORElDRVMsCistCQlE RVBUSF9SQU5HRSwKKy0JCVRFWFRVUkVfTlBPVF9CQVNJQywKKy0JCVRFWFRVUkVfTlBPVF9NSVBN QVAsCistCQlURVhUVVJFX05QT1RfUkVQRUFULAorLQkJUE9JTlRfU1BSSVRFLAorLQkJVEVYVFVS RV8zRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1JFQUQsCistCQlNQVBfQlVGRkVSX0ZPUl9XUklURSwK Ky0JCU9OU0NSRUVOX01VTFRJUExFLAorLQkJREVQVEhfVEVYVFVSRQorKwlwdWJsaWMgZW51bSBF Z2xJbWFnZUZsYWdzIHsKKysJCU5PTkUsCisrCQlOT19HRVRfREFUQQorKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GRUFUVVJF X0lEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwlwdWJsaWMgZW51bSBGZWF0dXJlSUQgeworKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1VOU0lH TkVEX0lOVF9JTkRJQ0VTLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQ X0JVRkZFUl9GT1JfUkVBRCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVB RCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dS SVRFIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSwKKysJCVtDQ29k ZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVOVCIpXQorKwkJT0dM X0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5ULAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1BSRVNF TlRBVElPTl9USU1FLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfRkVOQ0Ui KV0KKysJCU9HTF9GRUFUVVJFX0lEX0ZFTkNFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfVEVYVFVSRV9SRyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRywKKysJ CVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UiKV0KKysJCU9HTF9G RUFUVVJFX0lEX0JVRkZFUl9BR0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9J RF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVS RV9FR0xfSU1BR0VfRVhURVJOQUwsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9J RF9CTElUX0ZSQU1FQlVGRkVSIildCisrCQlPR0xfRkVBVFVSRV9JRF9CTElUX0ZSQU1FQlVGRkVS CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0g RmlsdGVyUmV0dXJuIHsKKyAJCUNPTlRJTlVFLAorIAkJUkVNT1ZFCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZPR19NT0RF XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBlbnVtIEZvZ01vZGUgeworLQkJTElORUFSLAorLQkJRVhQT05FTlRJQUwsCistCQlF WFBPTkVOVElBTF9TUVVBUkVECistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZSQU1FX0VWRU5UXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgZW51bSBGcmFt ZUV2ZW50IHsKK0BAIC04NzQsNiArNzU1LDE0IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUZSQU1F QlVGRkVSX0VSUk9SX0FMTE9DQVRFOworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7 CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0dSQVBISUNTX1JFU0VUX1NUQVRVU18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KysJcHVibGljIGVudW0gR3JhcGhpY3NSZXNldFN0YXR1cyB7CisrCQlOT19FUlJPUiwKKysJCUdV SUxUWV9DT05URVhUX1JFU0VULAorKwkJSU5OT0NFTlRfQ09OVEVYVF9SRVNFVCwKKysJCVVOS05P V05fQ09OVEVYVF9SRVNFVCwKKysJCVBVUkdFRF9DT05URVhUX1JFU0VUCisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0lORElD RVNfVFlQRV9VTlNJR05FRF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0g SW5kaWNlc1R5cGUgeworIAkJQllURSwKK0BAIC05MDAsMTIgKzc4OSw2IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKyAJCUxJTkVBUl9NSVBNQVBfTElORUFS CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX01BVEVSSUFMX0xBWUVSX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxMYXllclR5 cGUgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX01BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVS RSIpXQorLQkJTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFCistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX1dS QVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAlwdWJsaWMgZW51bSBNYXRlcmlhbFdyYXBNb2RlIHsKK0BAIC05NzAsNiArODUzLDEw IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUJHUkFfMTAxMDEwMiwKKyAJCUFSR0JfMjEwMTAxMCwK KyAJCUFCR1JfMjEwMTAxMCwKKysJCVJHQkFfRlBfMTYxNjE2MTYsCisrCQlCR1JBX0ZQXzE2MTYx NjE2LAorKwkJQVJHQl9GUF8xNjE2MTYxNiwKKysJCUFCR1JfRlBfMTYxNjE2MTYsCisgCQlSR0JB Xzg4ODhfUFJFLAorIAkJQkdSQV84ODg4X1BSRSwKKyAJCUFSR0JfODg4OF9QUkUsCitAQCAtOTgw LDkgKzg2NywxNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlCR1JBXzEwMTAxMDJfUFJFLAorIAkJ QVJHQl8yMTAxMDEwX1BSRSwKKyAJCUFCR1JfMjEwMTAxMF9QUkUsCisrCQlSR0JBX0ZQXzE2MTYx NjE2X1BSRSwKKysJCUJHUkFfRlBfMTYxNjE2MTZfUFJFLAorKwkJQVJHQl9GUF8xNjE2MTYxNl9Q UkUsCisrCQlBQkdSX0ZQXzE2MTYxNjE2X1BSRSwKKyAJCURFUFRIXzE2LAorIAkJREVQVEhfMzIs CistCQlERVBUSF8yNF9TVEVOQ0lMXzgKKysJCURFUFRIXzI0X1NURU5DSUxfODsKKysJCXB1Ymxp YyBpbnQgZ2V0X2J5dGVzX3Blcl9waXhlbCAoaW50IHBsYW5lKTsKKysJCXB1YmxpYyBpbnQgZ2V0 X25fcGxhbmVzICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfUkVBRF9QSVhFTFNfQ09MT1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtGbGFn c10KK0BAIC0xMDQxLDEzICs5MzUsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlOT19TTElDSU5H LAorIAkJTk9fQVRMQVMKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgZW51bSBUZXh0dXJl VHlwZSB7CistCQlAMkQsCistCQlAM0QsCistCQlSRUNUQU5HTEUKKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVkVSVElDRVNf TU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAlwdWJsaWMgZW51bSBWZXJ0aWNlc01vZGUgeworQEAgLTEwNjcsNyArOTU0LDYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfV0lOU1lTX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCXB1YmxpYyBlbnVtIFdpbnN5c0ZlYXR1cmUgeworIAkJTVVMVElQTEVfT05TQ1JFRU4sCist CQlTV0FQX1RIUk9UVExFLAorIAkJVkJMQU5LX0NPVU5URVIsCisgCQlWQkxBTktfV0FJVCwKKyAJ CVRFWFRVUkVfRlJPTV9QSVhNQVAsCitAQCAtMTA4Miw5ICs5NjgsMTIgQEAgbmFtZXNwYWNlIENv Z2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIERlYnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayAoQ29nbC5EZWJ1Z09iamVj dFR5cGVJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZGVs ZWdhdGUgQ29nbC5Cb29sIE1hdGVyaWFsTGF5ZXJDYWxsYmFjayAoQ29nbC5NYXRlcmlhbCBtYXRl cmlhbCwgaW50IGxheWVyX2luZGV4KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjAu MTAiKV0KKysJcHVibGljIGRlbGVnYXRlIHZvaWQgRmVhdHVyZUNhbGxiYWNrIChDb2dsLkZlYXR1 cmVJRCBmZWF0dXJlKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgaW5zdGFuY2VfcG9zID0gMy45KV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJ cHVibGljIGRlbGVnYXRlIHZvaWQgRnJhbWVDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVl biwgQ29nbC5GcmFtZUV2ZW50IGV2ZW50LCBDb2dsLkZyYW1lSW5mbyBpbmZvKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgT25z Y3JlZW5EaXJ0eUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLk9uc2NyZWVu RGlydHlJbmZvIGluZm8pOworQEAgLTEwOTIsMTIgKzk4MSwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgT25z Y3JlZW5SZXNpemVDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5YMTFN YXNrQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiBldmVudF9tYXNrKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9z ID0gMi45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZGVsZWdhdGUg Q29nbC5Cb29sIFBpcGVsaW5lTGF5ZXJDYWxsYmFjayAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwg aW50IGxheWVyX2luZGV4KTsKKysJcHVibGljIGRlbGVnYXRlIGJvb2wgUGlwZWxpbmVMYXllckNh bGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkp XQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1 ZmZlciBmcmFtZWJ1ZmZlcik7CisrCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFRleHR1cmUyREVHTElt YWdlRXh0ZXJuYWxBbGxvYyAoQ29nbC5UZXh0dXJlMkQgdGV4XzJkKSB0aHJvd3MgR0xpYi5FcnJv cjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3Rhcmdl dCA9IGZhbHNlKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRhdGFEZXN0cm95Q2FsbGJh Y2sgKHZvaWQqIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjbmFtZSA9ICJDT0dMX0FGSVJTVF9CSVQiKV0KK0BAIC0xMTA4LDYgKzk5NSw4IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNvbnN0IGludCBCR1JfQklUOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0RFUFRIX0JJVCIp XQorIAlwdWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QSVhFTF9GT1JNQVRfTUFYX1BMQU5F UyIpXQorKwlwdWJsaWMgY29uc3QgaW50IFBJWEVMX0ZPUk1BVF9NQVhfUExBTkVTOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BSRU1V TFRfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJFTVVMVF9CSVQ7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfU1RFTkNJTF9CSVQi KV0KK0BAIC0xMTE1LDIxICsxMDA0LDEyIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01B WF9XQVNURSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFYX1dBU1RFOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjaGVj a19leHRlbnNpb24gKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVh ciAoQ29nbC5Db2xvciBjb2xvciwgdWxvbmcgYnVmZmVycyk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0 dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVSIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7Cisr CXB1YmxpYyBzdGF0aWMgYm9vbCBibGl0X2ZyYW1lYnVmZmVyIChDb2dsLkZyYW1lYnVmZmVyIHNy YywgQ29nbC5GcmFtZWJ1ZmZlciBkZXN0LCBpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94 LCBpbnQgZHN0X3ksIGludCB3aWR0aCwgaW50IGhlaWdodCkgdGhyb3dzIEdMaWIuRXJyb3I7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBjbHV0dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldp bnN5c0ZlYXR1cmUgZmVhdHVyZSk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX3dpbnN5 c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVyZSk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNvbG9yX2VxdWFsICh2b2lk KiB2MSwgdm9pZCogdjIpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgY29sb3JfZXF1YWwgKHZvaWQq IHYxLCB2b2lkKiB2Mik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQg Y29sb3JfaW5pdF9mcm9tX2hzbCAob3V0IENvZ2wuQ29sb3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxv YXQgc2F0dXJhdGlvbiwgZmxvYXQgbHVtaW5hbmNlKTsKK0BAIC0xMTQzLDIzNCArMTAyMyw4NyBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGlj IHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9wcmludF9pbnN0YW5jZXMgKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgZGlzYWJsZV9mb2cgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgZmVhdHVyZXNfYXZhaWxhYmxlIChDb2dsLkZlYXR1cmVGbGFn cyBmZWF0dXJlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBmbHVz aCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQs IGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9h dCB6X2Zhcik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMg dm9pZCBmb3JlYWNoX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBDb2dsLkZlYXR1cmVD YWxsYmFjayBjYWxsYmFjayk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfYmFja2ZhY2VfY3VsbGlu Z19lbmFibGVkICgpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdf ZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF9iaXRtYXNrcyAob3V0IGludCByZWQsIG91dCBp bnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGludCBhbHBoYSk7CisrCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE0IildCisrCXB1YmxpYyBzdGF0aWMgaW50NjQgZ2V0X2Nsb2NrX3RpbWUgKENvZ2wu Q29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9kZXB0aF90ZXN0X2VuYWJs ZWQgKCk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZl ciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5G ZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfbW9k ZWx2aWV3X21hdHJpeCAoKTsKKysJcHVibGljIHN0YXRpYyBDb2dsLkdyYXBoaWNzUmVzZXRTdGF0 dXMgZ2V0X2dyYXBoaWNzX3Jlc2V0X3N0YXR1cyAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMg c3RhdGljIEdMaWIuQ2FsbGJhY2sgZ2V0X3Byb2NfYWRkcmVzcyAoc3RyaW5nIHMpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQqIGdldF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiKV0KKyAJcHVibGljIHN0YXRpYyBH TGliLlR5cGUgZ3R5cGVfbWF0cml4X2dldF90eXBlICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7Cisr CXB1YmxpYyBzdGF0aWMgYm9vbCBoYXNfZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENv Z2wuRmVhdHVyZUlEIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgaXNfb25zY3JlZW4gKHZvaWQqIG9iamVjdCk7CisrCXB1YmxpYyBzdGF0aWMg Ym9vbCBpc19jb250ZXh0ICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuQm9vbCBpc19waXBlbGluZSAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX3ZlcnRleF9idWZmZXJfaW5kaWNlcyAoQ29nbC5I YW5kbGUgaGFuZGxlKTsKKysJcHVibGljIHN0YXRpYyBib29sIGlzX2ZyYW1lX2luZm8gKHZvaWQq IG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIG1h dHJpeF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQg dG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBlcnNwZWN0aXZlIChm bG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAoQ29nbC5UZXh0dXJl VmVydGV4IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIENvZ2wuQm9vbCB1c2VfY29sb3IpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHBvcF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cG9wX3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBwdXNoX3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHJlY3RhbmdsZSAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX211 bHRpdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0IHky LCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB0ZXhfY29vcmRzLCBpbnQg dGV4X2Nvb3Jkc19sZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cmVjdGFuZ2xlX3dpdGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQg eDIsIGZsb2F0IHkyLCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwgZmxvYXQgdHgyLCBmbG9hdCB0eTIp OworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNf ZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCByZWN0YW5nbGVzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxv YXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJcHVibGljIHN0YXRpYyBib29sIGlzX29uc2NyZWVuICh2b2lkKiBvYmplY3QpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzX3dpdGhfdGV4dHVy ZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1 aW50IG5fcmVjdHMpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCXB1YmxpYyBzdGF0 aWMgYm9vbCBpc19waXBlbGluZSAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByb3RhdGUg KGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJcHVibGljIHN0YXRp YyBib29sIGlzX3RleHR1cmVfMmQgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2NhbGUg KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdGV4dHVyZV8yZF9zbGljZWQgKHZvaWQqIG9iamVj dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoQ29nbC5Cb29s IHNldHRpbmcpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCXB1YmxpYyBzdGF0aWMg Ym9vbCBtYXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X2RlcHRoX3Rlc3RfZW5hYmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOworKwlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoYm9vbCBzZXR0aW5nKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfZm9nIChDb2dsLkNvbG9yIGZvZ19jb2xvciwgQ29nbC5Gb2dNb2RlIG1vZGUs IGZsb2F0IGRlbnNpdHksIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwlwdWJsaWMgc3Rh dGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoYm9vbCBzZXR0aW5nKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKysJcHVibGlj IHN0YXRpYyB2b2lkIHNldF90cmFjaW5nX2Rpc2FibGVkX29uX3RocmVhZCAodm9pZCogZGF0YSk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFs KTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNldF90cmFjaW5nX2VuYWJsZWRfb25fdGhyZWFkICh2 b2lkKiBkYXRhLCBzdHJpbmcgZ3JvdXAsIHN0cmluZyBmaWxlbmFtZSk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjRmIChmbG9hdCByZWQsIGZs b2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWlu dDggYmx1ZSwgdWludDggYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9z b3VyY2VfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2V0X3ZpZXdwb3J0IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX2NvbXBpbGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHN0cmluZyBzaGFkZXJfZ2V0X2luZm9fbG9nIChDb2dsLkhhbmRsZSBoYW5kbGUpOwor KwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZW5hYmxlZF9vbl90aHJlYWRfd2l0aF9m ZCAodm9pZCogZGF0YSwgc3RyaW5nIGdyb3VwLCBpbnQgZmQpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyBDb2dsLlNoYWRl clR5cGUgc2hhZGVyX2dldF90eXBlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1 bm93bmVkIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3Rh dGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcgc291cmNl KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIp XQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2JpdG1hcCAo Q29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1 cmUgdGV4dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1h dCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworKwlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50 IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0 LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFt ZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIHRleHR1cmVfbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFy Z2V0LCB1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3Bv dF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhl aWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm0gKENvZ2wuTWF0 cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2FkZCAoQ29nbC5IYW5kbGUgaGFu ZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUsIHVpbnQ4IG5fY29tcG9uZW50cywgQ29nbC5BdHRy aWJ1dGVUeXBlIHR5cGUsIENvZ2wuQm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lk KiBwb2ludGVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5k bGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9i dWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBD b2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmVydGV4X2J1ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wu VmVydGljZXNNb2RlIG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGlu dCBtYXhfaW5kZXgsIGludCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmli dXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENv Z2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1 ZmZlcl9pbmRpY2VzX2dldF9mb3JfcXVhZHMgKHVpbnQgbl9pbmRpY2VzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5JbmRpY2VzVHlwZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5cGUgKENvZ2wuSGFuZGxl IGluZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3 ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1 ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZl cl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVy X3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB2aWV3cG9ydCAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29u c2NyZWVuX2dldF92aXN1YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93 X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB4MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5P bnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBD b2dsLk9uc2NyZWVuWDExTWFza0NhbGxiYWNrIHVwZGF0ZSk7CisgfQorZGlmZiAtLWdpdCB2YXBp L3BvbGtpdC1nb2JqZWN0LTEudmFwaSB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaQoraW5kZXgg OTNlZmY4YTUuLmZlZGM2YTRhIDEwMDY0NAorLS0tIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBp CisrKysgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKK0BAIC03LDcgKzcsNyBAQCBuYW1lc3Bh Y2UgUG9sa2l0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXByb3RlY3RlZCBBY3Rpb25EZXNjcmlwdGlvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfYWN0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9hbm5v dGF0aW9uIChzdHJpbmcga2V5KTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gZ2V0X2Fubm90 YXRpb24gKHN0cmluZyBrZXkpOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJy YXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmdbXSBn ZXRfYW5ub3RhdGlvbl9rZXlzICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNj cmlwdGlvbiAoKTsKK0BAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJcHVi bGljIFBvbGtpdC5BdXRob3JpdHlGZWF0dXJlcyBnZXRfYmFja2VuZF9mZWF0dXJlcyAoKTsKKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYmFja2VuZF9uYW1lICgpOworIAkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9iYWNrZW5kX3ZlcnNpb24gKCk7CistCQlwdWJsaWMgc3RyaW5nIGdl dF9vd25lciAoKTsKKysJCXB1YmxpYyBzdHJpbmc/IGdldF9vd25lciAoKTsKKyAJCXB1YmxpYyBz dGF0aWMgUG9sa2l0LkF1dGhvcml0eSBnZXRfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2Vs bGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyBhc3luYyBib29sIHJl Z2lzdGVyX2F1dGhlbnRpY2F0aW9uX2FnZW50IChQb2xraXQuU3ViamVjdCBzdWJqZWN0LCBzdHJp bmcgbG9jYWxlLCBzdHJpbmcgb2JqZWN0X3BhdGgsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxh YmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyBib29sIHJlZ2lzdGVyX2F1dGhlbnRp Y2F0aW9uX2FnZW50X3N5bmMgKFBvbGtpdC5TdWJqZWN0IHN1YmplY3QsIHN0cmluZyBsb2NhbGUs IHN0cmluZyBvYmplY3RfcGF0aCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxs KSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC01NiwyMSArNTYsMjIgQEAgbmFtZXNwYWNlIFBvbGtp dCB7CisgCXB1YmxpYyBjbGFzcyBBdXRob3JpemF0aW9uUmVzdWx0IDogR0xpYi5PYmplY3Qgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIEF1 dGhvcml6YXRpb25SZXN1bHQgKGJvb2wgaXNfYXV0aG9yaXplZCwgYm9vbCBpc19jaGFsbGVuZ2Us IFBvbGtpdC5EZXRhaWxzPyBkZXRhaWxzKTsKKy0JCXB1YmxpYyB1bm93bmVkIFBvbGtpdC5EZXRh aWxzIGdldF9kZXRhaWxzICgpOworKwkJcHVibGljIHVub3duZWQgUG9sa2l0LkRldGFpbHM/IGdl dF9kZXRhaWxzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMTAxIildCisgCQlwdWJsaWMg Ym9vbCBnZXRfZGlzbWlzc2VkICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2lzX2F1dGhvcml6ZWQg KCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaXNfY2hhbGxlbmdlICgpOworIAkJcHVibGljIGJvb2wg Z2V0X3JldGFpbnNfYXV0aG9yaXphdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfdGVtcG9yYXJ5X2F1dGhvcml6YXRpb25faWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJp bmc/IGdldF90ZW1wb3JhcnlfYXV0aG9yaXphdGlvbl9pZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgdHlwZV9pZCA9ICJwb2xraXRfZGV0 YWlsc19nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRGV0YWlscyA6IEdMaWIuT2JqZWN0 IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1Ymxp YyBEZXRhaWxzICgpOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVs bF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgc3RyaW5nW10gZ2V0X2tleXMgKCk7Cisr CQlwdWJsaWMgc3RyaW5nW10/IGdldF9rZXlzICgpOworIAkJcHVibGljIHZvaWQgaW5zZXJ0IChz dHJpbmcga2V5LCBzdHJpbmc/IHZhbHVlKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBsb29r dXAgKHN0cmluZyBrZXkpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBsb29rdXAgKHN0cmlu ZyBrZXkpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0 LmgiLCB0eXBlX2lkID0gInBvbGtpdF9wZXJtaXNzaW9uX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBjbGFzcyBQZXJtaXNzaW9uIDogR0xpYi5QZXJtaXNzaW9uLCBHTGliLkFzeW5jSW5pdGFibGUs IEdMaWIuSW5pdGFibGUgeworQEAgLTg4LDcgKzg5LDggQEAgbmFtZXNwYWNlIFBvbGtpdCB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg U3lzdGVtQnVzTmFtZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsK Ky0JCXB1YmxpYyBQb2xraXQuU3ViamVjdCBnZXRfcHJvY2Vzc19zeW5jIChHTGliLkNhbmNlbGxh YmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIFBv bGtpdC5TdWJqZWN0PyBnZXRfcHJvY2Vzc19zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxs YWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIFBvbGtpdC5Vbml4VXNl cj8gZ2V0X3VzZXJfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3QgQG5ldyAo c3RyaW5nIG5hbWUpOworIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJ CXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorQEAgLTE0Niw5ICsx NDgsMTAgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwcm90ZWN0ZWQgVW5peFNlc3Npb24gKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Nlc3Npb25faWQgKCk7CisgCQlwdWJsaWMg c3RhdGljIFBvbGtpdC5TdWJqZWN0IEBuZXcgKHN0cmluZyBzZXNzaW9uX2lkKTsKKy0JCXB1Ymxp YyBzdGF0aWMgYXN5bmMgUG9sa2l0LlN1YmplY3QgbmV3X2Zvcl9wcm9jZXNzIChpbnQgcGlkLCBH TGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJs aWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IG5ld19mb3JfcHJvY2Vzc19zeW5jIChpbnQgcGlkLCBH TGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOwor KwkJcHVibGljIHN0YXRpYyBhc3luYyBQb2xraXQuU3ViamVjdD8gbmV3X2Zvcl9wcm9jZXNzIChp bnQgcGlkLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7 CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0PyBuZXdfZm9yX3Byb2Nlc3Nfc3luYyAo aW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKyAJCXB1YmxpYyB2b2lkIHNldF9zZXNzaW9uX2lkIChzdHJpbmcgc2Vzc2lvbl9p ZCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBpbnQgcGlkIHsgY29uc3RydWN0 OyB9CisgCQlwdWJsaWMgc3RyaW5nIHNlc3Npb25faWQgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0K KyAJfQorQEAgLTE1NiwxNyArMTU5LDE3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAlwdWJsaWMg Y2xhc3MgVW5peFVzZXIgOiBHTGliLk9iamVjdCwgUG9sa2l0LklkZW50aXR5IHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBVbml4VXNl ciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKysJCXB1YmxpYyB1 bm93bmVkIHN0cmluZz8gZ2V0X25hbWUgKCk7CisgCQlwdWJsaWMgaW50IGdldF91aWQgKCk7Cisg CQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBAbmV3IChpbnQgdWlkKTsKKy0JCXB1Ymxp YyBzdGF0aWMgUG9sa2l0LklkZW50aXR5IG5ld19mb3JfbmFtZSAoc3RyaW5nIG5hbWUpIHRocm93 cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHk/IG5ld19mb3Jf bmFtZSAoc3RyaW5nIG5hbWUpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHZvaWQgc2V0 X3VpZCAoaW50IHVpZCk7CisgCQlwdWJsaWMgaW50IHVpZCB7IGdldDsgc2V0IGNvbnN0cnVjdDsg fQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCB0 eXBlX2lkID0gInBvbGtpdF9pZGVudGl0eV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgaW50ZXJm YWNlIElkZW50aXR5IDogR0xpYi5PYmplY3QgeworIAkJcHVibGljIGFic3RyYWN0IGJvb2wgZXF1 YWwgKFBvbGtpdC5JZGVudGl0eSBiKTsKKy0JCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5 IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBz dGF0aWMgUG9sa2l0LklkZW50aXR5PyBmcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdM aWIuRXJyb3I7CisgCQlwdWJsaWMgYWJzdHJhY3QgdWludCBoYXNoICgpOworIAkJcHVibGljIGFi c3RyYWN0IHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KK0BAIC0yMDEsNyArMjA0LDcgQEAgbmFt ZXNwYWNlIFBvbGtpdCB7CisgCQlBRE1JTklTVFJBVE9SX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVE X1JFVEFJTkVELAorIAkJQVVUSE9SSVpFRDsKKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBmcm9tX3N0 cmluZyAoc3RyaW5nIHN0cmluZywgUG9sa2l0LkltcGxpY2l0QXV0aG9yaXphdGlvbiBvdXRfaW1w bGljaXRfYXV0aG9yaXphdGlvbik7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHRv X3N0cmluZyAoUG9sa2l0LkltcGxpY2l0QXV0aG9yaXphdGlvbiBpbXBsaWNpdF9hdXRob3JpemF0 aW9uKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIGNwcmVmaXggPSAiUE9M S0lUX0VSUk9SXyIpXQorIAlwdWJsaWMgZXJyb3Jkb21haW4gRXJyb3IgeworQEAgLTIxMiw3ICsy MTUsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBx dWFyayAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtp dC5oIildCistCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5IGlkZW50aXR5X2Zyb21fc3Ry aW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJcHVibGljIHN0YXRpYyBQb2xr aXQuSWRlbnRpdHk/IGlkZW50aXR5X2Zyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIp XQorIAlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IHN1YmplY3RfZnJvbV9zdHJpbmcgKHN0 cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworIH0KKy0tIAorMi4yOC4wCisKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUgYi9zcmNwa2dzL2J1ZGdpZS1kZXNr dG9wL3RlbXBsYXRlCmluZGV4IGIzMmU3NzM0ZDNiLi5hZTVhOWQ1Zjc2OSAxMDA2NDQKLS0tIGEv c3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2J1ZGdpZS1kZXNr dG9wL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYnVkZ2ll LWRlc2t0b3AnCiBwa2duYW1lPWJ1ZGdpZS1kZXNrdG9wCiB2ZXJzaW9uPTEwLjUuMQotcmV2aXNp b249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1naXIKIGNv bmZpZ3VyZV9hcmdzPSItRHdpdGgtZ3RrLWRvYz1mYWxzZSAtRHdpdGgtZGVza3RvcC1pY29ucz1u b25lIgo= --===============0545318341629805724==--